Editor, Player (69)
Joined: 1/18/2008
Posts: 663
Some description is at about 8:47, is I think running his code around 10:40, but it still had problems. the ending minutes he said he was writing everything and running...still a WIP but it looks like it's there.
true on twitch - lsnes windows builds 20230425 - the date this site is buried
Active player (251)
Joined: 1/26/2014
Posts: 14
Yeah I did get total control. The final state I got was a short program in map data that would read controller input (1 byte) each frame into another part of map data and run after the composition of input after 255 frames. Obviously this is enough for total control. I didn't do anything with it though because I didn't see how to get left+right stuff in the emulator at the time, and because it took longer than expected and I was tired. I will describe how I did the important part. When you do Veran warp, it starts by trying to run OAM (actually it starts executing a bit before 0xFB00). OAM is normally inaccessible and read as 0xFF (instruction = rst 0x38). However, for some reason, if you want like 20seconds or so, when you click the tile, it will read OAM as it is. It all depends how the LCD writing timer and the code sync up, which was behaving erratically. It would often take many many tries before the code would run, which is why this is quite frustrating. The OAM code I used would read of a timer at 0xCC00 that ticked every frame, and write that into an array at 0xFC00, where it would be run next time the magic map square was selected. The first stuff I wrote was a branch to 0xCB00 (where the copy of OAM is) so that the timing was no longer an issue. From there, total control is straight forward. The annoying thing about the OAM code is that y is always set to E0 since most of the sprites are disabled. Then you can code in x, somewhat in the tile#, and then in the attribute. Also, E0 starts a 2byte instruction, which would steal away the x byte, the only truly controllable value. Then the attribute of the previous sprite needs to be the start of a 2byte instruction. Also, you can manipulate some tiles (bombs, rupees, fairies, and in a separate group enemies) in multiples of 0x20 since they are dynamically created. All you have to do is go through time enough times until they are the multiple you want. So, here is the code (OAM): 1. E0 5D 72 28 Link facing right, left half 2. E0 65 70 28 Link facing right, right half 3. E0 1E 1A 08 Mystery seed poof, left half 4. E0 26 1A 28 Mystery seed poof, right half 5. E0 32 08 2A Fire, right half 6. E0 12 70 28 Link, right half 7. E0 12 70 28 Link, right half 8. E0 6F 70 28 Link, right half 9. E0 26 FC 00 Spider thing, right half 10. E0 5E 1A 28 Mystery poof, right half 11. E0 5E 1A 28 Mystery poof, right half 12. E0 47 70 28 Link, right half 13. E0 4F C0 22 Fairy You just create these sprites in these positions from bottom to top, using stuff like bombing, bombing on the side of the screen, sword slashing, playing music, or pegasus seeding to fill up sprites to get things to the right position.
Post subject: possible pitwalking uses in Ages
Joined: 4/23/2013
Posts: 59
I would recommend pitwalking in Past Maku Road (saves 20 seconds), Past Forest (saves 10 seconds), Wing Dungeon (saves 1.5 minutes, allows you to skip 2 keys) and Mermaid's Cave Present and Past
Joined: 3/11/2014
Posts: 46
It should be possible to skip most of d2 in a TAS. In d2, you would go as far as getting the feather. With a bit of pitwalking, all that's required is a miniboss fight, not even a small key is necessary. Now, normally, you need to finish d2 to trigger the event where moosh appears at Yoll Graveyard. But if you have the feather, a bomb, and pegasus seeds (obtainable via the text warp + pitwalking), it is possible to cross the holes without moosh. You can't pitwalk because they're 1 tile wide. But with a precise bomb jump, you can cross the 4-hole gap to get cheval's rope, which triggers the rest of the events to get to Tokay Island. I've tested this with walk-through-walls instead of pitwalking, and it appears to work, at least up to tokay island. The text warp is a significant detour, however you can get a bomb chest to skip the cutscene at Ambi's palace, and you'll also get the pegasus seeds pretty early... so it's probably worth it.
Zarmakuizz
He/Him
Joined: 10/12/2013
Posts: 279
Location: France
Wow. Is it possible to see how it looks like?
Tompa
Any
Editor, Expert player (2213)
Joined: 8/15/2005
Posts: 1940
Location: Mullsjö, Sweden
A pretty old skip really. Here's what I made back in 2009: http://dehacked.2y.net/microstorage.php/info/39524758/Success.vbm VBA 23 needed.
Joined: 3/11/2014
Posts: 46
I know I'm not the first to suggest it. At least now it could be more useful, since you don't need the essences, you never need to return with text warping shenanigans. Do you know what happens when you return to save Nayru? The guards should be gone, but since you have the mystery seeds it should try to start the cutscene...
Joined: 3/11/2014
Posts: 46
Here's the route I have in mind: http://pastebin.com/2VyMtk7q I'm interested in helping to make the TAS for this. I'm not sure if anyone else (SBD?) wants to help at the moment. If not I'll just work on it myself. Of course, I'll post WIPs, so that the keen eyes of the TASing community can let me know if there are any tricks I'm not using. But I'll do a sloppy run-through first, to make sure the route works. Probably the iffiest part about the route is how to get 40 kills for the gasha trees to grow. Inevitably we'll need to farm some kills. The best place I could think of is the feather room in d2 since it has a bunch of keese, but, it will be a pain...
Tompa
Any
Editor, Expert player (2213)
Joined: 8/15/2005
Posts: 1940
Location: Mullsjö, Sweden
I'll try to help out with this at least. Also, if you haven't already, be sure to check SBD's wips here: http://tasvideos.org/userfiles/user/SBD
SBD
Player (169)
Joined: 10/3/2012
Posts: 17
About the route: If you play in GBA mode, you can buy a Gasha Seed from the Advance Shop, which would be faster than getting the one in D1. It also means that you can plant both Seeds before entering D1 so there's a good chance you don't have to farm kills later on. After getting the Gasha Nut at the farmer's spot you can do another Toilet warp, savewarp and hold up while respawning, which gets you to Yoll Graveyard faster. Savewarping after rescuing Nayru is probably faster than using the harp. There's quite a long cutscene after you defeat Veran that also counts towards the final time so it would be nice if you could call the credits directly. Although I have no idea if that's possible at all and how long it would take. I've uploaded scripts that help determine drops to my userfiles. You should use the ones labeled "(slash)" when you use a swordslash to kill an enemy, and the other ones in any other instance. Hopefully they'll make luck manipulation a bit more enjoyable. Another thing that is going to become important is health management since you don't need to carry a potion around anymore and deathwarps are faster than savewarps on the English version.
Joined: 3/11/2014
Posts: 46
SBD wrote:
About the route: If you play in GBA mode, you can buy a Gasha Seed from the Advance Shop, which would be faster than getting the one in D1. It also means that you can plant both Seeds before entering D1 so there's a good chance you don't have to farm kills later on. After getting the Gasha Nut at the farmer's spot you can do another Toilet warp, savewarp and hold up while respawning, which gets you to Yoll Graveyard faster. Savewarping after rescuing Nayru is probably faster than using the harp. There's quite a long cutscene after you defeat Veran that also counts towards the final time so it would be nice if you could call the credits directly. Although I have no idea if that's possible at all and how long it would take. I've uploaded scripts that help determine drops to my userfiles. You should use the ones labeled "(slash)" when you use a swordslash to kill an enemy, and the other ones in any other instance. Hopefully they'll make luck manipulation a bit more enjoyable. Another thing that is going to become important is health management since you don't need to carry a potion around anymore and deathwarps are faster than savewarps on the English version.
A bunch of great suggestions! The warp to yoll graveyard is completely new to me :O It should be possible to call the credits, using sockfolder's setup for arbitrary code execution. But it'll take some time, it might not end up being very much faster than just going through the cutscenes. Should be interesting to mess around with, though.
Pokota
He/Him
Joined: 2/5/2014
Posts: 779
I didn't know GBA mode was kosher for a GBC TAS. I'm assuming that a Linked Game TAS would be a different beast entirely? The Red Ring is (supposed to be) earned in Seasons for killing the four golden beasts so it's probably better to assume it's unavailable for an Ages-first arc. The Green Ring might be more beneficial since it can be generated legit in either game, reduces the time spent fighting bosses, and allows for more damage boosting. Not to the same degree as the specialized Red and Blue rings, but the potential is there.
Adventures in Lua When did I get a vest?
Joined: 3/11/2014
Posts: 46
Pokota wrote:
I didn't know GBA mode was kosher for a GBC TAS. I'm assuming that a Linked Game TAS would be a different beast entirely? The Red Ring is (supposed to be) earned in Seasons for killing the four golden beasts so it's probably better to assume it's unavailable for an Ages-first arc. The Green Ring might be more beneficial since it can be generated legit in either game, reduces the time spent fighting bosses, and allows for more damage boosting. Not to the same degree as the specialized Red and Blue rings, but the potential is there.
I don't see much of a problem with GBA mode, it's just a simple flag the game checks for. It doesn't use any extra hardware or anything. As for a linked game, though, I feel like it would be taking the easy way out if we just coded in all the rings we need... though I'm not sure if that's what you're suggesting. Doesn't sit well with me at least. I mean, I'm down for a normal linked game TAS that doesn't abuse passwords... but if we end up calling the credits, it would be kind of pointless :P
Pokota
He/Him
Joined: 2/5/2014
Posts: 779
Password Abuse only works in a linked game anyway, which is when the Red Ring would be viable for Ages. For a non-linked game the Green Ring would be viable since it's something you can acquire with sufficient luck manipulation. Each room has a Monster 0; their HP is at address 0000D0A9 and as far as I can see bosses take the Monster 0 spot. I'll post if I find contradictory results. An unboosted Wooden Sword deals 2 HP damage with each hit. EDIT: Monster HPs are at 0000DXA9, where X is 0 through 5. The Maple Counter is at 0000C641.
Adventures in Lua When did I get a vest?
Joined: 3/11/2014
Posts: 46
Pokota wrote:
Password Abuse only works in a linked game anyway, which is when the Red Ring would be viable for Ages. For a non-linked game the Green Ring would be viable since it's something you can acquire with sufficient luck manipulation. Each room has a Monster 0; their HP is at address 0000D0A9 and as far as I can see bosses take the Monster 0 spot. I'll post if I find contradictory results. An unboosted Wooden Sword deals 2 HP damage with each hit.
The green ring really isn't viable without password abuse... there are only 2 gasha spots which can give it to you, neither of which are convenient in the slightest... one of which is only accessible in a linked game... I can't imagine it would save all that much time, either. We already have the expert's ring, which does a spin-attack's worth of damage, useful for certain bosses. Thx for the address though :)
Pokota
He/Him
Joined: 2/5/2014
Posts: 779
Huh, I'd forgotten that rings were tiered. And now to jump topics again: It's theoretically possible to have the entire trading sequence completed by the time you make the first journey up to Patch's Hideaway, since you can pitwalk to the Old Zora Hermit's cave and you'll have gale seeds by that point anyway, mitigating some of the backtrackery. However, it may be entirely possible that Patch won't recognize that you have the broken sword until you've returned the repaired Tuni Nut. I'll test this and report results. EDIT: It may be unnecessary, as the Expert Ring's punch deals 4 damage anyway.
Adventures in Lua When did I get a vest?
Joined: 3/11/2014
Posts: 46
Pokota wrote:
Huh, I'd forgotten that rings were tiered. And now to jump topics again: It's theoretically possible to have the entire trading sequence completed by the time you make the first journey up to Patch's Hideaway, since you can pitwalk to the Old Zora Hermit's cave and you'll have gale seeds by that point anyway, mitigating some of the backtrackery. However, it may be entirely possible that Patch won't recognize that you have the broken sword until you've returned the repaired Tuni Nut. I'll test this and report results. EDIT: It may be unnecessary, as the Expert Ring's punch deals 4 damage anyway.
The trading sequence is just too long... I can't imagine the noble sword would make up the time it takes to get it. In particular, getting the tasty meat will waste a ton of time, due to the expert's ring skip.
Pokota
He/Him
Joined: 2/5/2014
Posts: 779
The Tasty Meat and everything after the moustache is out of the way enough for it to be worth skipping, yeah, but there's a couple of disadvantages to using the Expert's Ring that may make a difference entertainment-wise: range and compatability. The Sword gives you the range to attack at an earlier frame, and can be used in conjunction with other items/rings. The Expert Ring can (as far as I know) only be used when nothing is equipped to the buttons and by nature precludes wearing other rings - and since items get used a lot more in Ages than in Seasons, that could mean a lot of menu-switching In short, I agree with you, I just don't like that fact that I do. Still, getting the Noble Sword hinges on whether or not Patch accepts that you have the Broken Sword before L4 is opened up, so it may be a moot argument either way we go. EDIT: Scent Seeds. Is there a way to get them before L6 without planting the Scent Seedling? If there is, it's faster to get the Scent Seed Key in Present Mermaid's Cave than the Switch Hook key by several room transitions and an item switch.
Adventures in Lua When did I get a vest?
Joined: 3/11/2014
Posts: 46
Pokota wrote:
The Tasty Meat and everything after the moustache is out of the way enough for it to be worth skipping, yeah, but there's a couple of disadvantages to using the Expert's Ring that may make a difference entertainment-wise: range and compatability. The Sword gives you the range to attack at an earlier frame, and can be used in conjunction with other items/rings. The Expert Ring can (as far as I know) only be used when nothing is equipped to the buttons and by nature precludes wearing other rings - and since items get used a lot more in Ages than in Seasons, that could mean a lot of menu-switching In short, I agree with you, I just don't like that fact that I do. Still, getting the Noble Sword hinges on whether or not Patch accepts that you have the Broken Sword before L4 is opened up, so it may be a moot argument either way we go. EDIT: Scent Seeds. Is there a way to get them before L6 without planting the Scent Seedling? If there is, it's faster to get the Scent Seed Key in Present Mermaid's Cave than the Switch Hook key by several room transitions and an item switch.
Yep, the respawning bushes in d3 are bugged. They always have a chance of dropping scent seeds, even if you never got them from the tree. So we can use them in d6 and for the guard skip in ambi's palace.
Pokota
He/Him
Joined: 2/5/2014
Posts: 779
...that breaks Crescent Island into little itty bitty bits for a nonlinked game. Unfortunately, the Ages Noble Sword is completely impractical at all points - if you have both the Broken Sword and the Broken Tuni Nut when you talk to Patch, you can't get the Tuni Nut repaired.
Adventures in Lua When did I get a vest?
Joined: 3/11/2014
Posts: 46
Use ram watch on link's coordinates, at 0x100D and 0x100B. Also 0x100C and 0x100A for x and y subpixels. Helped me a lot :) Though, sometimes, there's a frame of lag before a directional button updates his coordinates, which makes pitwalking more confusing. Pausing and unpausing gets rid of the lag, but idk what causes it... it might have something to do with going through time. Anyway, I've finished my little route test. It's not optimized of course, though I did try to be optimal in the very beginning, while learning the ropes. It clocks at 1 hour 33 minutes. Some notes about it: - I didn't use GBA mode for the gasha seed in the advance shop, which I'll do for the real thing. - I forgot to visit the ember tree in Lynna! Well, this is what tests are for. I'm supposed to use it to get to ambi's palace. Surprisingly though, it's only several seconds slower to swim there. I'll need to time how long it takes to visit the tree. - I will, of course, use "A" as the filename in the real thing. - Exactly 2048 rerecords :O Also, the veran warp behaved differently than it would in an RTA run. The main difference was the sprites. The "old man" sprite replaced the cursor, I don't think I've ever seen that in an RTA run... and also the portal sprite was corrupted in a different way than usual. It still works, I just find it interesting.
Pokota
He/Him
Joined: 2/5/2014
Posts: 779
Since I edited it in while you were posting your thing: the Ages Noble Sword is completely impractical at all points - if you have both the Broken Sword and the Broken Tuni Nut when you talk to Patch, you can't get the Tuni Nut repaired.
Adventures in Lua When did I get a vest?
Warepire
He/Him
Editor
Joined: 3/2/2010
Posts: 2178
Location: A little to the left of nowhere (Sweden)
The following comments may be stupid because I am not that knowledgeable in this game, but: In level 1, is there something special about those pits that you activated the bridges for? Pitwalking would be faster in both cases?
Pokota
He/Him
Joined: 2/5/2014
Posts: 779
You need to have at least two tiles of walkable space at both the entry point and the exit point, otherwise you'll just fall into a pit. The reason is that you're switching back and forth between tiles as you pitwalk, which makes the game try to pull you into the other pit. If there's an obstruction to where there's a pit of width 1 you can't fool the game into trying to pull you into the other pit because there is no other pit. EDIT: I'm a complete newbie at setting up Bizhawk; when I tried to play back that file I got this: EDIT2: Never mind, I was using an interim build instead of the official release. Doy. EDIT3: And as it turns out, Bizhawk's Ram Watch and VBA-RR's Ram Watch show different values for the addresses I gave earlier, so it's back to the salt mines for me. At least I have a workable test case for finding Monster 0 HP ^^;....
Adventures in Lua When did I get a vest?
Joined: 3/11/2014
Posts: 46
Pokota wrote:
You need to have at least two tiles of walkable space at both the entry point and the exit point, otherwise you'll just fall into a pit. The reason is that you're switching back and forth between tiles as you pitwalk, which makes the game try to pull you into the other pit. If there's an obstruction to where there's a pit of width 1 you can't fool the game into trying to pull you into the other pit because there is no other pit. EDIT: I'm a complete newbie at setting up Bizhawk; when I tried to play back that file I got this: EDIT2: Never mind, I was using an interim build instead of the official release. Doy. EDIT3: And as it turns out, Bizhawk's Ram Watch and VBA-RR's Ram Watch show different values for the addresses I gave earlier, so it's back to the salt mines for me. At least I have a workable test case for finding Monster 0 HP ^^;....
It's simple to convert if you understand memory domains. In fact, if you set bizhawk to use the "System Bus" under "Memory Domains", the addresses will match. Though I'd recommend using the WRAM memory domain when dealing with memory in the Cxxx-Dxxx region. Simply subtract C000 from your VBA address to convert it to a WRAM-domain Bizhawk address.