edit: No need for me to repeat Baxter's timeline! Although I would like to say that in this case it seems that sharing findings has helped a lot with the collaborative process of research and discovery. As such, I'm going to list some other glitches that I think might deserve some further exploration.
1. Red potion crashes: A long time back Sleepz pointed out that you can crash the game by using a potion on the same frame as picking up a triforce piece. I've also found that the game crashes if you use a potion while entering a dungeon, going down a staircase, or meeting Princess Zelda. Haven't yet been able to do much besides crash the game or kill the overworld music, but maybe there are other possibilities. Demo: zelda_potioncrash.fcm
2. Window of opportunity: Just like in Rockman 3 ~ 6, you can do a useless move before the fight with Gannon starts. Demo: zelda_windowofopportunity.fcm
3. Turning everything gray: This effect is only graphical, but the point here is that whistle has some of the same game freezing properties as the red potion (while being less prone to crashing the game). Who knows, maybe it could cancel some other effects that aren't merely graphical? Demo: zelda_grayscreen.fcm
Joined: 5/2/2006
Posts: 1020
Location: Boulder, CO
What makes it even shittier is that all 4 of the games I listed are glitched insanely, but each one in a different way. Each new version leads to a new bizare and exploitable glitch.
I'd expect the problem with the dungeons to be the thick walls around each room, they're two tiles thick I think. Once you can skip two non-ladderable tiles you can do that everywhere.
Joined: 5/2/2006
Posts: 1020
Location: Boulder, CO
Have you tried it in any of the dungeon underground passages, like the ones where you find the items?
I wonder if that might glitch things even further...
Joined: 11/17/2005
Posts: 278
Location: Massachusetts, USA
1) Open a bomb passage north
2) Walk thru
3) Go back
4) Press L+R+A
5) Wait enough time to be able to swing your sword again
6) Press L+R+A
And the game crashes? The requirements are: xpos (0x70) = 78h, ypos (0x84) == 5dh, and "most recent door" = north. If one of these things is not true then the crash will not happen.
So what is the game checking for? When I do this on a south bomb-door nothing special happens. I'll be unable to press L,R,A, or B just like when I'm in a normal doorway, but it doesn't crash. Maybe if I knew why the game crashed then I could figure out what the game is thinking.
Sadly, the game seems to be programmed to look for underworld walls in the following way:
if (x < 20h) return DoorTypes[LEFT] != NONE && DoorStatus[LEFT] == OPEN
if (x > d0h) return DoorTypes[RIGHT] != NONE && DoorStatus[RIGHT] == OPEN
if (y < 8dx && this is a talking room && room is not cleared) return FALSE
if (y < 5Dh) return DoorType[UP] != NONE && DoorStatus[UP] == OPEN
if (y > BDh) return DooeTypes[DOWN] != NONE && DoorStatus[DOWN] == OPEN
otherwise check the map data
Which makes sense because there is no map data for those coordinates. So even with my cheating and setting values to 0x70 and 0x84, it's still just about impossible to make the screen scroll when it shouldn't. (You need to be able to take a step to cause a scroll.) The crappy part is that when I did cause an illegal scroll it just took me back to the same map. For example: enter level 3, scroll right, enter level 3 from the left. Or enter level 2, up one, right one, kill 3/5 Ropes, scroll right, re-enter the same map and 2 Ropes spawn. It's just like the Lost Woods. :(
Catastrophe, thanks for doing all this research. It's certainly helpful to directly test 'what if' scenarios, before people theorize about them endlessly.
I believe you can take away the sword and the A button to simplify this sample procedure I a bit. More generally, the game will crash provided the requirements you've already outlined:
Sleepz actually mentioned the left+right game crash technique long back in one of the Zelda threads. Its requirements (other than pressing left+right a couple times) are merely xpos (0x70) = 78h, ypos (0x84) == 5dh. Have you watched Phil's Zelda April Fool's movie from this year 2006? The "most recent door" need not be north. You can crash the game there regardless of whether the door is open, a bomb hole, a shutter, or a wall.
Here is another idea for which I think you might have the know-how to disprove: dungeon linking by Ramzi. I have never been unable to spontaneously generate doors by poking at the RAM, so I think this might require using a level editor or putting in Game Genie-like codes (that shadow the ROM instead of the RAM).
edit: Added link to Sleepz' mention of the left+right crash glitch from May 2005. Couldn't find Phil's...
Check my 2006 april fool submission. The game doesn't crash because of the glitch... but by pressing left + right on upper-middle wall(Door or not).
Huh btw, it's not Sleepz who pointed it out :P but me.
Joined: 11/17/2005
Posts: 278
Location: Massachusetts, USA
I should've assumed that any potentially novel idea that I might have ever had about this game really wasn't novel. I was hoping to do what Ramzi was suggesting. I think I remember reading Ramzi's thread awhile back, too. That, and some other post where the suggestion was to rocket boost with the candle.
Just in case anyone didn't know, the levels fit together like a jigsaw puzzle. Take levels 4-1-5-6-3-2 and place them together in that order. They should form a nice overworld sized block of rooms. The 'gaps' are the tunnel and item rooms. For example, two screens right of the first room of level 1 is the room with the magic wand in it. If you glitch into that room then the magic wand will just be sitting there on the ground and you can pick it up the same as the boomerang.
Levels 9-7-8 are on another 'map' entirely, and level 7 is the only dungeon that borders level 9. Just in case a glitch is found it might be good to know that.
Thanks to Euclid's new underworld editor (and no thanks to Vista for making VB6 apps a btich to run) I was able to test what happens when doors appear where they should not.
UNDERWORLD ONLY:
1. If you scroll the screen in a direction where there is no door, then you will get the "Lost Woods" type of effect. (Old news, useless.)
2. Walking into one level from another does exactly what it does in pretty much every other video game - the game still thinks you're in whatever level you started in.
3. If you 'do damage' (unlock a door, bomb a wall, take an item, etc) to any room of any level then the game will remember this information correctly. Each wall/door/item is permanently saved independent of each other. For example, if you somehow enter level 4 from level 1 and you start bombing walls, then those walls will remain remain down if you later reenter 'the level' from level 4's entrance. (Triforce pieces are just ordinary items. So don't take two triforce pieces for the same level!)
4. If you walk off the edge of the underworld map you'll merely exit whatever dungeon you were in.
5. The talking quotes use the lines from the dungeon that you actually entered. I was hoping that walking from level 7 to 9 would cause Mr Grumbles to replace Mr Triforce. But instead I got the message "DODONGO DISLIKES SMOKE." Darn.
6. The stairs may or may not be wrong in other levels. If you walk from level 1 to level 4 and try to pick up the Ladder you'll end up stuck in a wall instead. However, if you walk from level 7 to level 9 then you can pick up the Red Ring no problem.
7. If you touch Zelda anywhere, you win. It doesn't matter what level you're in.
And that's it! So if a glitch is found then it needs to be more like the boomerang-whistle (FDS) glitch that moves your map rather than the clipping type. That way you could maybe do something like use the door that actually exists on one screen to cause a scroll to another screen that is two screens away.
If anyone wants to try to break scrolling with lag then I recommend: 5 enemies plus the boomerang, the red candle, and the Patras in level 9. The problem is, once you start scrolling, the enemies go away, and so does your lag source.
I noticed the same thing using memory poke. It looks funny since zelda's sprites are loaded from the current dungeons "palette" so she does not look like herself :) Example movie
What I really wanted to post about was the wrapping glitch. Obviously a lot of you are familiar with and understand how to make it work, but I think if we can understand why it works a bit better then maybe we can find a similar glitch (or not...)
(all numbers below are in hex btw)
So it looks like it works because when you steer in a perpendicular direction to your walking for one frame at the right time it changes link's movement pattern in such a way that he "misses" the position that triggers an exit (or a wall).
For example, walking off to the right, he will go E8, E9, EB, EC, EE, EF then F0. So that's a movement pattern of 1 2 1 2 1 1. Pushing right when he is at F0 scrolls the screen. But, if you hold up or down when he's at EB, he gets pushed back to E9, then when you hold right again it goes EB, EC, EE, EF then F1. That pattern is essentially 1 2 1 2 1 2 (if you ignore the back and forth part between EB and E9). It skips the boundary at F0, and his x position will keep increasing until FF when it wraps back to 0 which is the left side of the screen.
Why does link's x position change if you press up or down? While it appears that he can walk pretty much anywhere he wants, link can only walk on what is essentially a "grid", kind of like evenly spaced streets. They are 8 positions apart from each other; valid x values to walk up and down on start with 0, then 8, then 10, etc. and valid y values to walk left and right on start with 5, D, 15 and so forth. If you are not on one of these "streets", the game first pushes you to the closest one before letting you go on. So if your x position is 81, pressing up for one frame first takes you to 80 by moving left before link actually starts moving up.
So, you can glitch over all four sides of the overworld screens (if you can reach them), blocks etc. You can even skip over the boundary of a cave door in the overworld so that link walks up past it without entering and has his head stuck over the doorframe.
The problem in dungeons is that the walls are not only thick, but dense with boundaries. You can actually glitch 1 position further into the wall than usual, but that is also a boundary so can go no further than that. Theoretically you could do it in doorways, but the game does not let you turn when you are close enough to perform the trick. This also goes for the stairs leading out of underground item rooms (though you can glitch 8 positions into the walls down there).
The real part I wanted to bring up is an interesting ram address, 394. When you walk down or left, it is a value from 0 to 7 that is equal to the distance between link's current position and the last "street" he passed. For example, if link walks right from 80 to 83, it's value will be 3, because link can move up/down on 80.
Going up or left, it holds the "negative" of those values, F9 to 0. For example, if he walks up from 85 to 82, the value would be FD (because 85 + FD = 182, which is equivalent in this case to 82 (values greater than FF wrap back to 0)).
So we would expect, when the glitch is performed going to the right, for the values to be 0, 1, 3, 1, 3, 4, 6, 7, 1. BUT, what happens when you push up at the right time it actually reverses to the negative values... the values are 0, 1, 3, F9, FB, FC, FE, FF and then finally 1. Whereas if you push up anywhere else it stays within the same set of values, in this case 0 to 7.
One theory I have is that this value somehow helps determine which way link is pushed when you hold a perpendicular direction. In further support of the this theory, you can actually perform the glitch in a slightly different way (though never in circumstances where it couldn't be performed before). Going right, you can push up/down on the proper frame, hold right again for 1 frame, and go back to holding up or down, and instead of link going backwards (left) he continues going right until he reaches 1.
Hope that makes sense and that this wasn't overly obvious!
It made enough sense to me to follow, and I'm pretty stupid when it comes to hex values and such.
I'm really looking forward to this. This is the one Zelda game I suck at the most and never ended up glitching (unlike my Zelda 2 cart, which I glitched to hell without even realizing what the heck I was doing), so these new tricks to cheat the game are quite interesting to me.
I hope some of the new theories and such work for you guys. I'd love to see the game done in under 20 minutes, if this new stuff will allow for it.
I still remember back when everyone was looking to get the game sub-30. Man, how things changed since, eh?
Couldn't that "grid snapping" effect be used for faster movement? That is, move until you're within snapping distance of the next grid line, then press perpendicular for one frame? Or is this already done?
Not that I know of. Unfortunately it's not so snappy -- link doesn't move any faster. If you are in the middle of two gridlines it still takes a couple of frames before he gets there, unlike in Kickle Cubicle where a similar trick can make you go significantly faster.
One thing that is used in the current movie to move faster is taking advantage of yet another movement pattern that only takes 5 frames to cross 8 units of space. It seems to happen the first block moving up or right, so if you alternate between the two you can go pretty quick.
Joined: 7/30/2006
Posts: 208
Location: Alefgard, USA
Great job finding this. That is an amazing glitch. I back read most of this thread, and someone mentioned that you were stuck in a tile in a room you wanted to glitch. Would it be possible for an enemy to bump you out?
Who is going to redo Zelda with the glitches? I'm sure it will obsolete the current run by at least a couple of minutes!!
Well, Phil and I will eventually improve the Zelda run... but not anytime soon (not in 2007). The current run is not bad at all, it just doesn't utilize the glitch to its fullest, so there is no need to rush and make a new run of it right away. The second quest run is a lot more outdated... I'll be improving that with Morrison soon.
I don't know how many minutes you meant by "a couple"... but I think it will save less than you might think.
MM has a good deal of glitches, and no doubt some can be put to use in a TAS. Speedrunners already glitch outside on day 1 anyhow.
I'm really looking forward to when someone does the run, but it's going to be a bit crazy to put together all the tricks out there into one movie.
This TAS of the water temple from MM is really good for now though:
http://youtube.com/watch?v=OKe_G6m6Or4
While I realize there will eventually be a glitched version that involves the donut shaped screen principle, I am working on small refinements on the game.
Does anyone involved in previous TASes know how many frames earlier than the current run I'd have to get into the money making game to get 50 rupees? I can get in about 25 frames faster right now, but then I have to wait that long for +50 to come up in the center.
~Ryan
Why oh why did you make a new thread for that? Couldn't you ask this question in the existing ALttP thread?? ...
Moderator! Move that post! (Ref. to Extreme Makeover Home Edition)
EDIT: Ok, this might not be about ALttP, but my post is still valid ... this has to be moved to the already existing thread of the correct game.