lfg
<:Tea:612680029171875850> <:Tea:612680029171875850> <:Tea:612680029171875850> E3 cancelled, E4 is in.
Jump to date
Saturday, January 18, 2020
Arbitrary Code Execution in Ocarina of Time
This method was thought of and implemented by fasch and NatalyaHasDied. Arbitrary code execution allows us to create MIPS CPU instructions from within the game and run them, giving us lots of control over what can be achieved in the game. Currently we are limited to only a ...
www.youtube.comlol
it is asexuals
wait
from the title screen
fuck oot is getting fucking destroyed
soon we will have pokemon red levels of any% runs
1 minute
Kappa
100% Source reqs is probably the best run
because you have to actually do everything
and that is cool to see that get optimized and destroyed
yeah
any% was cool back when cosmo was not a tranny
then any% kinda got lame
I still think my favorite things for OoT are the challenge lotads
that and majora
those are the most fun to watch because of the super crazy shit you need to do to overcome problems
as in twilight?
yeah
only major thing I know about that is getting items by warping to the intro sequence
or whatever it is they do
TP is somehow mostly unbroken though
WW is just fucked in the post barrier skip world
find a way to win using only wolf
never reverting to human
Kappa
So the general idea behind the trick is this:
You want to pick up a rock and then have it unload from memory without Link becoming aware that it has unloaded. This results in Link's held actor pointer pointing to a memory location that is free for reuse. Most of the "random" stuff happening before the rock is lifted is done to force the rock to load at a specific memory address. With nothing in hand, we reload the room, and now the the memory address that use to store the rotation of the rock now stores the low half of the draw function pointer of the rock that the Kokiri child is trying to lift (which I'll call "kid rock"). Since "kid rock" isn't in view range, the draw function doesn't execute, and we can safely spin Link around to set the draw pointer to jump to a specific address, and lock it in by throwing the held nothing. You then use the slingshot to fire a Deku Seed that has a specific set of X and Y rotation values. You do a few things before this though to force the Deku Seed to be in a memory location such that the draw function pointer points to the seed's X and Y rotation values. Lastly, you get into a specific position and hold down a specific set of joystick and buttons on controller one and controller three. The game camera then moves automatically such that "kid rock" now starts drawing itself and activates it's payload.The payload itself works like such:
The "kid rock" draw routine jumps into the XY rotation components of the Deku Seed
the XY rotation forms a jump into the player's name.
the player name is crafted to run a single opcode that sets the current cutscene number to the state of the $gp register (which is 0) and another jump, this time into controller input
the $gp register is special in that the game never uses it for anything
controller 1's input attempts to set the $gp register to either 0xFFF6 or 0xFFF7
controller 3's input simply sets a jump that will eventually give control back to the game
finally, since the draw function is called on multiple frames, the next update cycle will write a cutscene number 0xFFF6/0xFFF7
with the cutscene number set, a cutscene plays. In the RTA route, the last cutscene that was played is going to be the title screen cutscene, which forces Link's position to be out of bounds, forcing a void out
finally, you respawn into the the creditslol
yeah
it really is nowadays
I think broken games in order for zelda goes oot > mm > WW> WWHD >SS > TP
as far as I am aware
number and how intense they are
factoring in both
I am not too familiar with SS so I can be argued into that being higher
just from what I know about oot, its fucked, and by extension mm is mostly fucked too
