@MrCheeze
  @MrCheeze
MrCheeze | Ocarina of Time - Kokiri Forest Credits Warp (RTA viable N64 version) @MrCheeze | Uploaded January 2020 | Updated October 2024, 3 days ago.
Several new innovations means that SRM ACE any% can now be done on humans on the N64 console. Speedruns can be done in under 14 minutes using this method, meaning over three minutes are saved by it.

- By adding a few more transitions back and forth between the deku and kokiri room, spawning different actors each time, we add a lot of degrees of freedom to manipulate the heap. This allows us to find a heap manip that not only allows us to SRM an actors's function draw pointer (which is harder on N64 compared to iQue), we can also influence the angle we have to drop our unloaded rock at to be C000, a cardinal angle which is fairly easy to get. Finding this manip required hacking together a heap simulator specific to Kokiri forest (which has many unusual actor allocation behaviours).

- Two obvious things I missed previously: you can pause during Walking While Talking to make the A button no longer softlock, giving unlimited tries and picking up and SRMing the rock. Also you can walk behind the kokiri shop which makes navigating during the blind section safe and easy.

- The camera "likes" to lock to cardinal angles, especially when Link is almost facing them, holds ess forward, and some other situations. This lets us drop the rock with angle C000 making a certain immobile rock's draw function pointer be 801F0000

- Thanks to the new heap manip, when we spawn the seed its rotation will itself be located at 801FC000. We get its horizontal angle to the right value by climbing the fence and pause buffering an exact number of max inputs to the right, and its vertical angle using an idea by Jolin012 where we can tell exactly what our Y input is by going into c-up mode and checking exactly where the camera settles. We use the N64 controller's neutral reset feature (L+R+Start on a real controller) to transfer such an exactly measured input into slingshot mode and rotate up by a certain number of frames, then max input down and rotate a bit more. All this gives Link an overall angle of 0CAE5DA3. At this point, we need to ready a seed and cancel it at the third frame, giving it an angle of 0804697D. Interpreted as code, this is a jump to filename (on version 1.0).

- Finally, the ACE itself had to be reworked to not require any non-RTA viable inputs (meaning no precise joysticks). Brainstorming together with Natalyahasdied we were just barely able to find a way to do this. The immobile rock next to the punching Kokiri has been SRM'd to jump to seed rotation. The seed rotation jumps to filename. The filename stores the value in the "$gp" register into the game's current cutscene, and then jumps to controller 1. Controller 1 loads the value FFF6 or FFF7 into $gp (both work) using the buttons Z + ddown + cup + cdown + R, and the joystick in position X = -1, Y = -9/-10. The Y position can be found easily enough using the visual cue of the screen rotating very slowly with the slingshot out. The X position has no cue, but if you get the value wrong, the game will simply continue without any issue and you can continue to adjust the stick (also -1 isn't exactly a hard value to begin with). Controller 3 is simply a jump to safety that uses only easy inputs, specifically ddup + cleft with the joystick at -128,-128 (which requires resetting neutral while the stick is in the top right, then moving it to the bottom left). All this code actually has to run twice before the credits warp will be triggered, but this happens anyway because draw functions run every time. So if our heap manip, drop angle, seed angle, and controllers were all right, we get a credits warp!

Already gave specific shoutouts to Jolin and Nat above, but also a more general credit goes to Tharo who's been involved all over the place in the development of this run to where it is today.

Sketch of the entire route: pastebin.com/eXHEyW5w (fairly rough instructions, but given that runners are already looking into doing runs with this method, I figure better to release it sooner rather than later.)

A more complete writeup about how this works and how to do it should come in time, but for now feel free to ask about anything.
(Update: MZX has written a pretty good explanation in the reddit discussion on this video, check it out: reddit.com/r/speedrun/comments/ep0edw/rta_viable_credits_warp_in_kokiri_forest/fehg486 )
(And now a much more elaborated explanation by GlitchesAndStuff. Well worth watching, check it out: youtube.com/watch?v=wdRJWDKb5Bo )
Ocarina of Time - Kokiri Forest Credits Warp (RTA viable N64 version)Ocarina of Time - any% Slingshot Skip (TAS Only)Ocarina of Time - Credits Warp (ramwrite method) for N64/Wii/Wii UOcarina 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 Demo

Ocarina of Time - Kokiri Forest Credits Warp (RTA viable N64 version) @MrCheeze

SHARE TO X SHARE TO REDDIT SHARE TO FACEBOOK WALLPAPER