(Link to video)

Game objectives

  • Emulator used: VBA-RR v24 svn391 (should work on latest svn)
  • Heavy glitch abuse
  • Genre: Platform

Comments by MUGG



Please watch the run first if you want to be surprised.

Step by step we get closer to beating every single game by magically warping to the end. This run is the result of intensively trying to find ways to make use of the Pause Glitch to finish the game even faster than the previous run. The previous run used the v1.0 exclusive Pipe Glitch to travel through ROM, VRAM and SRAM to destroy a block corresponding to address $A2D5. If this address is non-zero, the game will run the credits the next time you enter a level.
In this run, however, the Pipe Glitch is never used. Instead we use the Pause Glitch that was found in 2011. The game would reset itself or create blocks above Mario's head when pausing rapidly at the same time the game is lagging from having too many enemies onscreen. I didn't really understand why this glitch occurs but I went on and used a lot of trial-and-error to come up with some interesting results [dead link removed]. Later on, Spikeman would contact me to ask questions and investigate the glitch for me which I really appreciated. Please read this post to learn more about the Pause Glitch. It was thanks to his investigation that we found that the Pause Glitch sometimes executes code starting at $A201. Back then, I didn't really understand anything about opcodes, registers, and all that so I couldn't do much more than keep asking for help and keep using trial-and-error blindly.
In 2014, I became a bit more familiar with opcodes after I googled for this page. I tried to actively look into how different code causes different stuff to happen. The first idea was to set $A2D5 to nonzero or $FF9B to 12,13 or 23, which would trigger the credits. The former could be easily done by EA D5 A2 or 08 D5 A2 so I tried to make $A203~$A205 read this code.
($A2D5 is an address whose purpose I don't really know. It never changes throughout a playthrough, but if it is nonzero, it will start the credits the next time you enter a level. $FF9B tells the game what mode it is currently in. "01" for title screen, "0C" for being on the map, "04" for being in a level, "08" for when you paused the game, etc. "12", "13", "23" will trigger the credits immediately.)
$A203 depends on the screen X position in the level and can become 08 at the beginning of a level and EA at the end of some levels.
$A204 seems to depend on Mario's Y position and can become D4 which is sufficient to reach $A2D5.
$A205 was the trouble maker though because it cannot become A2 in the first level. This address changes when you hit a breakable block or touch a coin in a certain location in the level. Spelling A2 can only be done with a coin and there is no such coin in the first level. It took way too much time to go to another level to touch a certain coin, and then go to yet another level to get in the right position and make the game lag.
The next idea was to use the Demo Mode. On version 1.0, you can press certain button combinations on the title screen to start in a level immediately. Up+Select makes you start in the first level for example. While in this mode, there is no music and the game records input and input durations in $A300~$A3FF. This mode was probably used by the developers to create the title screen demo sequences and they might have forgotten to remove it for version 1.0. Being an ingame code, we always neglected using this in a TAS but this seemed to be the last resort to make Pause Glitch work for us. So what I tried was spelling a code in $A203~$A205 that jumps to anywhere after $A300 to execute any code we want. Unfortunately, I discovered later that the Pause Glitch doesn't work at all in Demo Mode, apparently due to the absence of the function that handles the music.
I didn't really expect much after this happened, but somehow I found later that jumping to certain parts of ROM (around $05C8 for example) can cause interesting stuff, like gameovers or instant level finishes. I found that $FF9B could be set to 12,13 or 23 and it was easy to spell code in $A203~$A205 that jumps to ROM but unfortunately the game would always reset or freeze after jumping. With help from Masterjun, who became interested in SML2 after I kept asking for help in IRC, it didn't take long to find the one good way to start the credits and keep the game from freezing. Masterjun was also the first one to accomplish this while testing.
C4 CZ 05 ... C0, where Z can be almost any value, was the code that managed to do what we wanted.
$A203 and $A204 were made to read C4 CZ easily. $A205 was made to read 05 by touching a certain coin in the underground in the first level. $A227 (Mario Xposition) was made to read C0 by standing in the correct pixel position. C0 would return to where the program counter left off. The game would then silently and slowly fade into a mute credits sequence. Success! :)
I used the Pixel Trick from the previous runs to improve my speed. I want to try to explain it here again. The game doesn't use subpixels but still uses speeds that are more precise than 1 pixel/frame or 2 pixels/frame. The game does this by using pixel oscillations. When running, Mario moves 1, 2, 1, 2, 1, 2... pixels. By switching between different oscillation sequences, you can squeeze out an additional 2 every 8th frame or so. I watched $A200 (oscillation pattern that is currently used. I think it points to a certain location in ROM somewhere) and $A202 (Mario's speed) to optimize it as best as I could.
I also want to show you the latest version of the lua script that I used. It is Spikeman's lua script that helps use the Pause Glitch, with amateurish additions by me (lol).

Special Thanks to

  • Spikeman for investigation the Pause Glitch and finding that it executes $A201 onwards
Honorable mention to
  • andymac although he hasn't been involved since 2011, I want to thank him for finding the best way to do the Pixel Trick and for the previous runs that we worked on together

Nach: After doing way more research than is sane, and speaking to some emulator authors, it looks like what this movie does has a reasonable chance at being possible. Since feedback is good, and it's a considerable improvement over the previous run, I'm accepting this as an improvement.
Fog: Publishing with an encode from sheela901...

Editor, Player (68)
Joined: 1/18/2008
Posts: 663
Get me a Gameboy and SML2 and I'll verify this and other runs. Or someone determine timings for SGB, write a .vbm parser, and get me SML2 and I'll verify it with that.
true on twitch - lsnes windows builds 20230425 - the date this site is buried
Editor, Expert player (2313)
Joined: 5/15/2007
Posts: 3855
Location: Germany
No, I mean console verifying the pause glitch with return address 4067. It would require a setup that is easy and fast to do over and over. The setup for the credits glitch is tedious and requires pixelperfectness and takes a long time. E: Unfortunately, without the C0 byte at $A227 (which requires frame perfectness) it looks like the game would usually freeze... E: Also, 4067 is very rare. Even with an easy setup, it would take a very long time until I would get it. And then I must not have messed up my positioning...
Joined: 11/9/2012
Posts: 23
Another game broken in a stupid low amount of time. Doesn't showcase the game and quite similar to all the other runs. I don't enjoy these runs.
Masterjun
He/Him
Site Developer, Skilled player (1970)
Joined: 10/12/2010
Posts: 1179
Location: Germany
>A site dedicated to hosting fast runs of games. >People getting angry about games being completed too fast.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Spikestuff
They/Them
Editor, Publisher, Expert player (2292)
Joined: 10/12/2011
Posts: 6337
Location: The land down under.
Masterjun wrote:
>People getting angry about games being completed too fast.
Nah, it's just Cyber_Kun complaining again.
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account. Something better for yourself and also others.
Joined: 11/9/2012
Posts: 23
Masterjun wrote:
>A site dedicated to hosting fast runs of games. >People getting angry about games being completed too fast.
Spikestuff wrote:
Nah, it's just Cyber_Kun complaining again.
My issue with these runs is not that they complete the game. I agree that 100% this site should house the game. My issue is I don't find this run entertaining, and I feel like not putting these into the Vault is getting silly. I'm just amazed with the amount of runs that fit the sub 1 minute, random stuff, game ends, and everyone loves it. Like, there is no doubt in my mind that these are technically impressed, but they are all the same. Once again, here are some videos that fit the bill. http://tasvideos.org/2609M.html http://tasvideos.org/2601M.html http://tasvideos.org/2604M.html http://tasvideos.org/2406M.html Edit here. I missed thatguy's post. Just read what he wrote again, tis what I think of this. Kind of. I disagree with the art form/science comparison.
Experienced player (630)
Joined: 11/23/2013
Posts: 2208
Location: Guatemala
Spikestuff wrote:
Masterjun wrote:
>People getting angry about games being completed too fast.
Nah, it's just Cyber_Kun complaining again.
Of course.
Here, my YouTube channel: http://www.youtube.com/user/dekutony
Emulator Coder
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Cyber_Kun wrote:
I feel like not putting these into the Vault is getting silly.
I agree with you. Please vote no on runs like this, so we know to put them into the vault.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Joined: 3/9/2009
Posts: 530
Nach wrote:
Cyber_Kun wrote:
I feel like not putting these into the Vault is getting silly.
I agree with you. Please vote no on runs like this, so we know to put them into the vault.
People are always going to vote overwhelmingly yes if there's any improvement at all. It already happens with those horrible Atari games. Someone submits a movie, it gets overwhelmingly no votes, then with a cry of "frame wars!" three submissions later and a second or two faster, it's at 95%+ yes votes. What the question actually says has only the barest relevance on how the vast majority of people vote. I really can't understand the yes votes on this kind of movie either. If you stopped them a quarter second before the glitch and asked "has this movie been entertaining so far?" the answer would be an overwhelming no, and the glitches themselves are about as uninteresting as it comes on anything but an extremely technical level.
Emulator Coder
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Tangent, you have some good points here. This is along the lines of what Warp was saying a few weeks back. I'm thinking I'll be introducing some voting reform when I get a chance, stay tuned.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Joined: 7/30/2013
Posts: 79
Oh just realized I had forgot to vote. Voted yes. ;)
(◕‿◕)
Eszik
He/Him
Joined: 2/9/2014
Posts: 163
Basically most of the people (including me) answer the question "Should this movie get published?" instead of "Did you find this movie entertaining?". I found this run entertaining and interesting though‚ as long as this kind of runs are very short‚ I don't have the time to find them boring. That's why I voted yes. On the other hand‚ I gave my vote to the latest Super Metroid movie even though I found it really boring. So I only voted yes because it was a nice improvement.
I problably made mistakes, sorry for my bad English, I'm French :v
Joined: 10/23/2009
Posts: 545
Location: Where?
Nach wrote:
I'm thinking I'll be introducing some voting reform when I get a chance, stay tuned.
Can't wait to see that!
ALAKTORN
He/Him
Player (99)
Joined: 10/19/2009
Posts: 2527
Location: Italy
Nach wrote:
I'm thinking I'll be introducing some voting reform when I get a chance, stay tuned.
I think if the option choices were actually “I found this movie entertaining” and “I didn’t find this movie entertaining” or something like that, people would vote much better than with “Yes” “No” “Meh” choices
Spikestuff
They/Them
Editor, Publisher, Expert player (2292)
Joined: 10/12/2011
Posts: 6337
Location: The land down under.
Cyber_Kun wrote:
My issue is I don't find this run entertaining, and I feel like not putting these into the Vault is getting silly.
Then why don't you go ahead and vote No. Also do not make the reason "It's another "game end glitch" TAS no vote" because that would be the laziest reason on a no vote I have ever seen.
Cyber_Kun wrote:
[2604] SNES Super Mario World "game end glitch" by Masterjun in 00:41.98 [2406] NES Kirby's Adventure "game end glitch" by MESHUGGAH, CoolKirby, Masterjun, MUGG, TASeditor & illayaya in 00:35.91
I see that you have Kirby there, oh and Super Mario World. What do those two have in common? They both obsolete the previous one. Also the original branch name for Kirby's Adventure was "glitched". Let me point out what the old branching system called these "game end glitch" TASes. They were all called "glitched". So including especially this it was given the branch "glitched" before we actually ended up replacing the branch entirely and well we had to change the branch's name to compensate with the game. [1457] PSX Crash Bandicoot 2: Cortex Strikes Back by Mukki in 47:37.62 [1506] PSX Crash Bandicoot 2: Cortex Strikes Back "item glitch" by pirohiko in 11:34.85 Sometimes the branching needs to be explained because of the new branch it was given, "box glitch" needed to be explained but the explanation was there to begin with when it was called "glitched". So the problem occurred when a few games carrying the same branch were under the game's branch was not a properly clear one, where each game carrying that "game end glitch" allows us to place the game which contains skipping majority of the game and the final boss. So calling it "game end glitch" for well what used to be known as "glitched" branch clears up the name of the TASes and also saves time explaining these things in the Movie's description. No seriously take everything with the word "glitch" in the branch and remove the entire branch name and switch it with "glitched" How does it make you feel knowing all these TASes all fall along one single branch only that it was expanded and well made it easier for viewers to understand.
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account. Something better for yourself and also others.
Joined: 11/9/2012
Posts: 23
Spikestuff wrote:
Basically as I see it. You're just hating on the branch without even using proper evidence on why you hate the TAS itself. You're just simply being that *mini-troll under the bridge trying to scare this run off into the vault even though the majority were mostly entertained.
As you honestly think my issue with the run is the branch name, you are so off the road it hurts. I've been insulted by a few members of this community for finding these kinds of runs boring and people honestly think it is because of the branch name? You call my opinion lazy, Masterjun insults me by acting like I just hate it because it is done fast, and Kura just agrees with the lot of you without debating anything. Bless Nach and a few others for being able to look critically at this run. I find this run boring. It is about 35 seconds of indistinguishable play that could be a human followed by Mario doing random things for 5 seconds, and then the run is over. Yes, I find that boring. Try to say why I should be entertained in that 40 seconds. I know it is technically impressive, but so what? Transformers the Movie is technically impressive. Why is this run entertaining?
Editor, Player (68)
Joined: 1/18/2008
Posts: 663
Cyber_Kun wrote:
otherwise I would have to write this site off for being quite elitist and dumb.
but it is. and that's your example? I lold.
true on twitch - lsnes windows builds 20230425 - the date this site is buried
Player (12)
Joined: 6/17/2006
Posts: 501
Eszik wrote:
Basically most of the people (including me) answer the question "Should this movie get published?" instead of "Did you find this movie entertaining?".
Not sure why you're thinking that. I always vote about on the entertainment factor. And seeing a classic game betting completely broken in a few seconds is definitely entertaining for me. :) By the way, this submission has been on the queue for a while now. What's the hold up?
Player (53)
Joined: 11/20/2013
Posts: 103
Was playing this game just earlier today, then I saw this. I'll never cease to be amazed by these glitch abuses. Absolute yes vote!
Experienced player (630)
Joined: 11/23/2013
Posts: 2208
Location: Guatemala
Ok, it has been 2 months now and this is still on workbench. Whats the problem now!?
Here, my YouTube channel: http://www.youtube.com/user/dekutony
Spikestuff
They/Them
Editor, Publisher, Expert player (2292)
Joined: 10/12/2011
Posts: 6337
Location: The land down under.
Kurabupengin wrote:
Ok, it has been 2 months now and this is still on workbench. Whats the problem now!?
Master Nach is a very technical judge when it comes to glitch TASes on consoles. Just wait.
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account. Something better for yourself and also others.
Joined: 10/23/2009
Posts: 545
Location: Where?
I'm wondering He claimed like 3 other runs to judge while he (supposedly) judges this run He just accepted a TAS of 2 hours(Super demo world) for example.
Masterjun
He/Him
Site Developer, Skilled player (1970)
Joined: 10/12/2010
Posts: 1179
Location: Germany
Yeah so? Guys, you are starting to sound as if judging would be the easiest job in the world. Does anyone of you have a proof that this even works on console? Is there a rule that says that there is a timelimit for a judge to judge stuff? The judge is the one that has to take responsibility, so let him have his time to gather enough information about stuff.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11268
Location: RU
Masterjun wrote:
Does anyone of you have a proof that this even works on console?
Not that it invalidates the run if it doesn't sync on console.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Patashu
He/Him
Joined: 10/2/2005
Posts: 4016
feos wrote:
Masterjun wrote:
Does anyone of you have a proof that this even works on console?
Not that it invalidates the run if it doesn't sync on console.
It's not invalidated if it doesn't sync on console, no. But if it's not possible to do the glitch on console, then the run is no good. It's not valid to do a TAS that exploits an emulator only glitch, because it's a flaw in the emulator, not in the game's programming.
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu