@MrCheeze
  @MrCheeze
MrCheeze | Ocarina of Time - SRM Age Change and Mirror Shield as Child @MrCheeze | Uploaded May 2020 | Updated October 2024, 3 days ago.
Two Ocarina of Time speedrun categories have recently been revolutionized by new SRM discoveries, but both have a major catch.

In No Wrong Warp, it is possible to obtain every item early in the game via loading the debug/title screen file (youtube.com/watch?v=e-KrKn5D59w). This turns the run into mostly a rush through Ganon's Castle, but with the downside that an annoyingly large percentage of the run becomes waiting through the long and boring cutscene from becoming adult for the first time.

In All Dungeons, we can modify your Farore's Wind restore point to a very specific glitched value (youtube.com/watch?v=74ZxCv8u_KE), so that every time you die/void/return to FW, the game reads past the end of the entrance table and ends up using your angle to determine what scene to spawn you in. This can also be chained indefinitely, which would mean that AD turns into a rapid-fire boss rush from one boss room to the next, if not for one thing. The glitch only works as child at night, and it's impossible to defeat Twinrova as child due to not being able to equip mirror shield.

This video is a setup for how to solve both problems (NTSC 1.2 only). This technique was found by natalyahasdied and myself (with help from experimentation by Blini, as usual).

If we spawn a fish overlay at exactly 801F8F30 on the heap, and then modify a bush's draw function pointer to jump midway through one of the fish functions at 801F9108, certain registers aren't set up in the expected way for the fish code. The effect is that instead of the code writing to 801FAC84 (some random variable in the overlay), it writes to 8011AC84 (Link's current age).

We want to write the value 0 for adult (1 is child, basically every other value crashes). It turns out the specific value written depends on the angle of the bush whose draw pointer we modified (more precisely, the cosine of their angle). Luckily, these bushes in lost woods have angle C000 which will cause them to write exactly the zero that we need. (Thanks Exodus for working out where the values come from.)

The heap manip for dropping the fish is as shown in the first few seconds of the video. (It's interesting that we can actually jump into the fish's code even after it unloads, as long as nothing loads over the same memory and overwrites it. This is called "stale SRM" and makes heap manips much easier to find.)

After dropping the fish, it's not necessary to recapture the bugs and fish like I do, I just wanted them for later. It makes no difference to the heap manip at all -- the entrance room to Lost Woods is so empty that entering it will "reset" the heap to a clean state either way.

In the next step of heap manip, you need to make sure these events occur in order 1) collect the two bush rupees 2) drop bombchu 3) drop bugs 4) bombchu explodes 5) drop two bombs 6) bugs burrow and despawn 7) load goron city room 8) bombs explode.

At that point, the tricky part of the heap manip is done, and it's time to SRM off the bushes using the oldschool method - inverse camera plus superslide. Any of the three bushes should work, actually, although as usual you have to make sure the bomb explosion doesn't destroy whichever bush you're grabbing. Since we've loaded the debug file and actually have Nayru's love, we can optionally use it to remove the timing aspect of the superslide.

Once you SRM grab the bush successfully, you need to do the following in any order:
- Return to the entrance room of Lost Woods to restore the heap to a clean state.
- Use some setup to get angle 9108. I use a bad speen setup in the video, I think Blini has something better.
- If you used it, wait for Nayru to expire before leaving the entrance room and heading back towards the bushes.

Then enter the southeast room again. From here, as soon as we walk into the tunnel, the bush's code will run, so we need to be a little careful. Walking directly forward will temporarily mess up your angle, but sideways and diagonal seem to both be fine. Once Link starts hovering above the ground, we have transformed into Adult Link successfully!

There's a bit more to this, though, we're not out of the (lost) woods yet. Currently we're in a sort of hybrid state. The game really does think we're adult, but the adult object files aren't properly properly loaded, so certain actions will crash the game (VC is better, but still be careful). Also, separately from current age, there is a flag for "age on next loading zone" which is still set to child.

Anyway, there are two ways to resolve this hybrid state, depending on your goals.
- To become permanently adult, simply save the game and reset.
- To equip adult equipment and items as child, pause the game, equip it, unpause, and walk into a loading zone. In particular, you can use this to equip mirror shield as child, and then use SRM Farore's Wind to warp to Twinrova.

tl;dr "all dungeons as child" has gone from a crazy LOTAD requiring ACE, into the optimal strat.
Ocarina of Time - SRM Age Change and Mirror Shield as ChildSuper Mario Bros. in 35 seconds, via Hayauchi Super Igo Cartridge Swap!M&L Paper Jam Glitch: Papercraft Goomba and Bowser Cutscene SkipMajoras Mask 3D - Early Deku Palace setupHomestuck - Extraterrestrial (Extended)Pokemon G/S Spaceworld Demo - Glitching into Prof. Oaks LabDo F Boots crash as adult on Wii U?SMW exit #107 - Bowsers Castle Back Door secret exit using Powerup Incrementation.Revealing hidden Pokemon via memory corruption - Pokemon Gold 1997 Spaceworld DemoOcarina of Time - Setting up Total Control ACE with Arbitrary Ramwrites, also a new 100% NSR routeSuper Mario Maker - NSMBU Castle Theme (Editor / Level Mashup)Spaceworld Deku Tree

Ocarina of Time - SRM Age Change and Mirror Shield as Child @MrCheeze

SHARE TO X SHARE TO REDDIT SHARE TO FACEBOOK WALLPAPER