Рет қаралды 948
For a few years now, Ocarina of Time, Majora's Mask, and Majora's Mask 3D have been upended by the discovery of SRM. But OoT3D was the odd one out, because although SRM was possible, no one was ever able to achieve any useful effect with it.
This demo, doesn't quite change that, because we still don't have any setup to warp somewhere RTA at all, let alone somewhere useful. But it does show that warping places is in fact possible in this game.
Shoutouts to @gamestabled and @exodus122 who did the actual theory for this stuff a while back. I just found the heap. Also to @lotusspacia548 for testing this stuff for ages and showing off the method of SRM used here.
Anyway, some notes, first on the heap manip:
Spawn at the bottom end of the river as child. The owl should not be present. Surprisingly, it does not matter for the heap which bomb rocks you have or haven't broken.
The load plane between the two zora river rooms is on the bridge. I'm not sure about this, but I think the state of the heap may vary slightly depending on which way the camera is pointed when you cross the load plane (like it does for kokiri SRM in oot64). In any case, we toss the cucco to the upper room, then enter the room while holding a bombchu. We then continue upwards towards the cluster of butterflies over the music staff, so that those butterflies spawn BEFORE our chu explodes.
Cucco attack SRM is super easy. The one tricky thing is that you need to not to actually get hurt by a cucco, which will make you drop your hands.
We want the attack cuccos to have despawned before we cross the bridge back to the lower room. Conversely, we do NOT want the butterflies from the butterfly spawner to have despawned.
Once you actually cross the bridge back to the lower room, your position immediately becomes very important. Specifically, the X and Y position of your hands are written into the z rotation and parameters of the grotto (which determine where it warps you), and the Y position is also written into a variable called "objBankIndex", which is important only in that it will unfortunately cause the grotto to despawn if it ever has a value outside the range 0x00-0x10 for even a single frame. So, in order to get a useful grotto SRM, you must ensure the following:
Let's say your hand Y position float is 0xZZAABZZZ. To avoid deleting the grotto, AA must be in the range 00-10 during every frame between when you cross the load plane and when you drop the actor. That's why I jump off the bridge and cross the loading plane while I'm falling - the position on the bridge kills the grotto, but the position right above the water surface is fine.
In order for the grotto to actually warp you somewhere useful (i.e. not one of the normal grottos), B must equal 0 or 8 on the frame you drop the held actor.
Now say your hand X position float is 0xZZZZCCCC. Assuming the previous requirements were met, the game will look up grotto array index (CCCC+1) in this table that gameestabled made, and take the corresponding entrance as the destination that the grotto takes you to: docs.google.co...
Let's make it more concrete. In this demo, I fall in the water and drop my hands with an X position of 0x453E1C9F and a Y position of 0x44000D5E. This means that AA=00, which is a safe value (and it was also some safe value on the preceding frames). So the grotto doesn't despawn. B=0, so the grotto is capable of taking us somewhere other than a grotto. And CCCC=1C9F, so the grotto looks up index 1CA0 in the table, which says that that index takes us to entrance 0224. And according to wiki.cloudmodd...) , entrance 0224 as child at night takes us to Zora's Fountain from Zora's Domain, which is exactly what happens! So we can accurately predict the warp for a given position.
By the way, the position of link's hands depends on the exact frame he is on within his breathing animation. I sure hope it's possible to work around these difficulties and make an RTA-viable setup to warp somewhere useful with this - or even better, to a manipulable variable glitched entrance - but it is far from guaranteed that this can be done.