Posts for mzxrules

Experienced Forum User
Joined: 3/17/2010
Posts: 33
I want to say that skipping the messengers makes the game impossible to beat, but I don't remember if that's really the case. But yea, you'd lose way too much time skipping them because you'd have to spend a good chunk of time back tracking though the forest, and then again to warp the bridge.
Experienced Forum User
Joined: 3/17/2010
Posts: 33
r0bd0g wrote:
OK, thanks for the explanation. Just a couple more questions and then I'm done. If you're not warping into a cutscene, should the same prior cutscenes have about the same effects when used in combination with the same blue warp, as long as you take the same route from the cutscene to the warp? Or I guess, the area you warp to could end up overwritting the cutscene as well?
I believe the area you warp to can overwrite the cutscene, but I can't remember a test that proved that for certain. This will be much easier to prove for Child warps because the game queues the FW warp until after the screen fades away, meaning there is only one virtual frame to test. Adult warps are considerably different, as there appears to be a single "static" warp time then a number of different windows timings that change depending on an unknown number of factors.
And still no explanation for why there are differences when WWing as an adult or WWing as a child? I had a weird theory that the title screen crashes as child b/c it has Link on Epona but that's just a wild guess. It's probably wrong because it seems like we need to explain why it works as adult, not why it doesn't work as child.
I haven't observed a definitive difference between WWing as an adult vs as a child, so I can't really provide an explanation.
What would it take to get WW to a point where you could know beforehand whether or not a particular WW will work? What else might possibly be factors?
A considerable amount of effort. According to a cutscene extractor I found on The GCN, there are about 70+ cutscenes. A good chunk of them are probably inaccessible for wrong warping, so that narrows it down to about probably 40-50 cutscenes which means about 40-50 unique cutscene pointers. Each cutscene is probably a couple hundred bytes long, so you'd have to analyse a considerably large block of ram for each. Then take into account that there are approximately 100 scenes which each load data into different blocks of ram, and may or may not actually load scenes into the same spot(s) each time. So you'd have check some 40-50 different blocks of ram somehow to see if the cutscene data becomes corrupt, then you have to consider the possibility that cutscene corruption may not actually guarantee a crash, then you have to consider the hundreds/thousands of different combinations of scenes you could/would want to travel through and so on. There are so many possibilities that can happen because the cutscene pointer is pointing to ram that is "free" for re-use, and so many things I'm not entirely sure about the Zelda 64 engine. So I predict that there won't be a way to determine if all wrong warps will work/can be made to work because of the sheer number of variables. And that's without considering the fairly likely possibility that there may exist some version specific differences. I seriously doubt that the cutscene pointers will end up pointing to the same locations across every version of the game. That said, if you were to ask "Given a particular FW entrance, can we warp here with some method and keep control afterwards?", I'd say that probably that 80-90% of all wrong warps of this type are known.
Experienced Forum User
Joined: 3/17/2010
Posts: 33
That makes sense. DT/DC do have working doors back to the dungeon, and I know for sure that Fire Temple has an entrance next to the fire temple boss door as well. That would mean that there would also be a map for the low poly boss room as well, would there not?
Experienced Forum User
Joined: 3/17/2010
Posts: 33
r0bd0g wrote:
OK, lemme see if I understand this, and hopefully you can correct me if I'm mistaken on anything. When you wrong warp into an area without a "cutscene entrance table", some sort of attempt is made to load or play (or something) the last cutscene that you watched (and this can sometimes affect your position, the camera, whether or not you have control, whether or not you respawn in the area you warped to or the area you set FW, or maybe have some other weird effects).
Your warp position should always be set to the coords of Farore's Wind, but the cutscene can manipulate your coordinates afterwards.
Whether or not the game crashes depends on whether or not that cutscene's data is overwritten in the process of reaching the warp. You can control this by having previously watched a different cutscene or maybe taking a different route to the boss room. Why are the results sometimes different (say, savewarping after blowing up the wall and then doing DC WW) as child or adult?
There's also the possibility that it's impossible to keep the cutscene in memory. DC Boss room overwrites the intro, so I'm rather stumped about this.
When you wrong warp into an area with a cutscene entrance table... , an attempt is made to play that area's cutscene ... If no cutscene in that area has the same "value" (IDK what to call this) as the cutscene that would normally play after the blue warp that you used, you get a crash. This crash can be averted by setting FW at the first (usually the main?) entrance to a scene, since the cutscene data will be loaded normally so there is no danger of overwriting the data somehow. It is not possible to set FW at the first entrance and not WW to that same area?
Not quite right. The "value" I believe you are referring to is called the stage value in the debug rom. Wrong warping from Deku/DC sets this to FF01 (01) and Fire sets it to FF03 (03). It works like this... We have here a table of all significant entrance indexes, and one that should make everything a thousand times clearer. If you look at Temple of Time entrance 0 (entrance index 0053), you'll see that the cutscene entrances follow immediately after it. If you wrong warp with an entrance index of 0053 stored in FW and a stage value of FF01 (stage 01), you end up with a "real" entrance index of 58 (Cutscene 01), but more importantly, the cutscene pointer is updated, and the cutscene data is re-loaded into memory, meaning that wrong warping with a FW point at the entrance to the Temple of Time should never crash, and never actually "wrong warp". Now if we have a situation where the stage value is "bad", we end up wrong warping and using the last cutscene data and we have to worry about overwriting the old cutscene and whatnot. However, I've observed a third situation that can occur, and that's when we wrong warp when the entrance index is not the 0th entrance to a scene with cutscene entrances. This is what I was talking about with the Light Arrow cutscene wrong warp. This has an entrance index of 058C, and following it there are no cutscenes of any sort listed. If you wrong warp with 058C stored in Farore's Wind, a stage value of FF01, the cutscene pointer is updated to point at where cutscene 01 should be loaded in ram, but the cutscene data is not refreshed (unless it's doing something screwy that I'm unaware of). In this situation, we can't change what cutscene plays, so we have to make sure that the particular cutscene ends up playing. In this situation the only way to reload the cutscene data is to return back to the scene (and in some cases the map) that it is associated with.
If the data for the cutscene in that area is overwritten on the way to the warp, you get a crash
In theory it could be possible to load a corrupt cutscene, but it would require some insane luck to find a setup that doesn't crash or hang or take four years to play, or cause you to fall OoB indefinitely. But it doesn't hurt to look.
Regardless of whether or not an area has a cutscene entrance table, you can get crashes by attempting to warp into an invalid scene, or setting FW in a map in a scene for which the scene you try to warp into has no corresponding map. Do I understand this right? Anything I've missed?
Barinade's room has a map value of 01, but can be warped to without crashing with a map value of 00 set. Is there a map 00 for Barinade's room?
So the only way to avoid having to leave an reenter ToT is to warp to the graveyard instead of going through HF and I'm assuming that that's way slower? For one thing you'd have to spend a few seconds getting a 2nd bottle to keep bugs to RBA the Saw with, and I'm not sure you'd have anything to OI with without having to go to the castle.
Entering Kak overwrites the end credits cutscene the moment you enter it... but when I tested this I'm almost certain I did so during the day...
Experienced Forum User
Joined: 3/17/2010
Posts: 33
Slowking wrote:
r0bd0g wrote:
When Sock first found WWing to the credits from ToT, he set FW immediately after LACS, but when this was tested on console, it froze. It was originally presumed to be "another emulator/console difference" but now that we know that's probably not the case, it's possible there's a way to set FW without having to leave and reenter ToT.
He probably didn't warp into ToT to start the cutscene, but walked in. The LACS doesn't change the entrance you came in. The warp entrance just doesn't do it.
LACS changes your last entrance to 058C and sets the cutscene pointer to 8037C150 regardless of whether you warp in or walk in, so in theory it shouldn't matter what you do, unless preserving the previous cutscene data in ram is required for the wrong warp to be successful on console. Edit: I think I figured it out. The entrance index stored in Farore's Wind determines whether or not the game automatically loads the cutscene data for the scene when wrong warping. From what I've been able to gather, the cutscene data is loaded every time you enter a scene (Temple of Time) under normal circumstances, even if it's not needed. The cutscene pointer (which points to the cutscene data in ram) is set based on the scene being entered and the stage value (stage value determines which cutscene to play). However, if the entrance index stored in Farore's Wind isn't the first entrance index for the scene, the cutscene data is not loaded to memory, meaning that you could potentially end up playing a garbage cutscene and crash the game. Now, when you cast FW immediately after the LACS, the end credits segment in the ToT will be loaded into memory, and will stay in memory until another game object overwrites the cutscene data. Unfortunately, Hyrule Field does just this.
Experienced Forum User
Joined: 3/17/2010
Posts: 33
I discovered today the reason why watching the title intro crashes the DC wrong warp. The pointer value stored at 801CA208 points to the RAM at which the next cutscene data is stored. Once the intro starts, the pointer value is set to 80365080. The block of ram at 80365080 does not seem to change when swapping to different scenes, but the DC boss room scene overwrites this block, "corrupting" the cutscene, and causing the crash. Also, wrong warping into scenes without a cutscene entrance table is definitely turning out to be a hell of a lot more complex than previously assumed.
Experienced Forum User
Joined: 3/17/2010
Posts: 33
Why is the quick reply box so damn small on these boards... Anyway, I'm wondering what's going on with the MST route. As discussed on ZSR, it was discovered that some wrong warping crashes resulted by watching a different cutscene (aside from the intro) before attempting the wrong warp. So I played through the fire temple to check and see if simply playing through the dungeon itself could change the last cutscene played. It didn't, which means that we should be able to death warp to Forest without crashing the game by either save warping as soon as we enter the Fire Temple, dying and returning to the title screen and continuing, or intentionally encountering a cutscene that does not crash the game or replay itself (I don't know if cutscenes replay on death, but they do with FWWW). This should mean that death warping from Fire to Forest is faster since you end up not only warping directly to the dungeon, but you end up skipping the Fire Medallion Cutscene. The only issue with wrong warping directly to Forest is that after doing the Forest Medallion skip, the only way to leave is to head out the main entrance and watch Minuet. However, I don't think skipping Minuet from the Forest Temple will be all that difficult. If you were to die and enter the Sacred Forest Meadow trigger, should skip it.
Experienced Forum User
Joined: 3/17/2010
Posts: 33
Since people are bound to keep asking, mzxrules explains: Bottle Adventure! The best way i can think to do this is to break down the multitude of glitches in order that they are done in the TAS. Stealing the Rod is a simple trick. Basically you just have to be a couple pixels above the ground when casting the fishing rod so that when Link lands, he becomes "unlocked". Outside the pond, the fishing rod is a bit strange. For whatever reason, diving underwater and surfacing turns it into a Deku Stick. Ocarina Items is a glitch that allows you to play the ocarina with most items. If the item cannot be withdrawn, it instead creates a bottle over the item. This trick is done by getting a filled bottle in hand, jumping into the air, and pressing the bottle C-Item and the item you want to play Ocarina/Bottle Dupe with. By having a Deku Stick on B, but no sticks in stock, we can overwrite this Deku Stick with a bottle. Reverse Bottle Adventure is the act of "hacking" your own inventory. Whenever Adult Link's B button is changed into one of the "bottle" items (including the time you overwrite the deku stick with Ocarina Items), it also writes the bottle's item value to another part of the ram. The address picked is based on Adult Link's C-Right Item value. Getting the Broken Goron's Knife through the trade sequence is the key to obtaining the Spirit and Shadow Medallions. Bottle Adventure is really the act of getting a non-sword, non-bottle item on Adult Link's B (Although most would consider putting a Bottle on B with Ocarina Items being part of Bottle Adventure, it makes explaining this more confusing). This is done by going back in time with a Bottle on B, and then going forward in time. Adult Link's B button item value is determined by the value of an address in memory, and in turn the specific memory address is determined by the item on Young Link's C button. With this trick we can get up to 128 different "items" on B. This trick actually isn't used in the TAS however.