Bowser left a back door open into the Princess' chamber, letting Mario rescue her 7 minutes and 30 seconds faster. This run uses a glitched pipe entry in 7-1 to go out of bounds, where a glitched tile and enemy x-positions are used to execute arbitrary code that jumps straight to the Princess rescue.
Enable subtitles on the encode if you want some explanation as the movie plays.

Lord Tom's Comments

Tompa and I had been working pretty steadily on a 100% run when RAT926 found the glitch. I wasn't good enough with assembly to try to do anything with it until HHS figured out a way to use it to reach the credits. The prospect of cutting 7 minutes off the any% was too much to pass up, so here we are!
It was a challenge to understand the spawning/despawning behavior and translate that into strats that would both be fast and gives us the memory values we needed. But my biggest surprise was how hard it was to optimize Mario's movements with the tail on a vertical level like 7-1...we re-did various portions countless times for frame savings big and small.
Along the way I was happy to work with Producks on strats that might be possible realtime, a feat at least 3 speed-runners have accomplished, with the fastest time currently 3:31 with room for improvement.
My personal preference would be that this run not obsolete the prior any%, with a new category created whichever labels are chosen. I know there's active discussion presently on how to handle this sort of glitched run, so here's some more fodder for discussion. :)

Tompa's Comments

I had tried to improve the previous run for a long time, just to see if we could push it lower. Thanks to Glitchman, 9 of the 14 needed frames for the first world were improved. And with a few extra frames by Tom and I, we reached 13. I gave up for the moment. Until this glitch came around!
I expected us to be done fairly quickly, for an April 1st submission, though we kept pushing it. When you are just one frame to bypass another frame rule, we just got to go for it.
I'm quite happy with the result. Meaning it's finally time to get back to the 100% TAS and work on fun autoscrollers again...

World 1

Not much is new here. GlitchMan found a faster way to collect the mushroom in 1-1. We managed to save a few more frames in the fortress using less slowdown to get past the balls.

7-1

Recent warpless TAS's have gone through the wall to skip most of 7-1 so TAS'ing the vertical portion was pretty new. Having the racoon suit left over from 1-F is helpful since the tail-flip lets Mario grab shells very quickly and Mario can also tail-flip shells on the same frame he stomps them to climb faster. Wall jumps are also crucial to climbing without needing either P-speed or entering extra tubes (which are very slow).

Wrong-warping SMB3

Touching the glitch tile, an invisible note block, makes the processor try to update memory outside of the normal tile data, at an address ($9c70) that reprograms how the processor interprets addresses. This causes execution to jump to an unintended area of the ROM and execute incorrect instructions. Eventually, the stack overflows and it starts executing RAM instructions starting at address $0081, which is just before the location of the player x value at $0090 and enemy x values $0091-5.
Devising an effective strat requires understanding how enemies spawn into the five enemy slots. New enemies spawn when the screen scrolls close enough to their spawn position, and that enemy has not previously been killed. The new enemy will be placed into the first slot that doesn't already hold an active enemy, starting at $0095 and working backwards.
To jump to the Princess, we need 3 consecutive x values to read, in order: 32, 225 or 227, 143. This results in the assembly instruction "JSR $8FE1", which reads as "Jump to the subroutine at address $8FE1."
Mario's x must be 232-240 to activate the glitch, so 3 enemies must be used. The leftmost piranha plant's x range includes 32; the other 2 plants aren't useful so 225/227 and 143 have to come from koopas.
The piranha plant unavoidably spawns into $0094 at the start of the level, but we need it at $0093 or lower to have 2 enemy slots follow it. Therefore we have to climb at least until the piranha despawns. But doing so (bringing the first koopa along to keep $0095 occupied) spawns the koopa between the ?'s into $0094 and the flying koopa into $0093. Initial efforts killed the flying koopa to allow the piranha to spawn into $0093 on the way down. Later, we found that by optimizing a 4-frame despawn rule and grabbing the ?'s koopa and falling very quickly we could despawn the flying koopa just before the piranha spawns, putting the piranha into the correct slot. Note also that the right-most piranha must be killed on the way up or it will spawn into $0093 on the way back down.
Mario can only carry one shell at time. So to grab the ?'s shell, we need to throw the $0095 shell such that it doesn't despawn and also ends up where we can grab it again. There's not much margin for this, but it's just possible to throw the shell so it ends up spinning between the middle pipes down below. This lets Mario grab it after throwing the $0094 shell without breaking stride.
As we fall from the ?'s area, we now have the left piranha plant in $0093, the ?'s shell in $0094, and the first shell from the level entry in $0095. All that remains is to throw the two shells such that they hit the right x values on the same (single) frame the plant's x value hits 32...and then execute the pipe glitch on that same frame.

The Pipe Glitch

This glitch has been known for some time. If Mario presses down while being ejected from the right side of a pipe end-cap, the game thinks he's standing in the middle and lets Mario enter the pipe.

Thanks

RAT926 for discovering the glitch tile that enables the wrong warp.
HHS for figuring out the technical details of the glitch, determining the instruction that would skip to the ending, and writing a script to troubleshoot sprite placement.
vgmaps.com for making TAS'ing so much easier.

Noxxa: Judging.
Noxxa: Great to see another big title broken with arbitrary code execution to jump to the ending. Accepting to Moons as a separate branch - this run will not obsolete the classic conventionally played run category.
Ilari: Processing.
Ilari: Replaced file with one with author subtitles. No changes to input.


Joined: 12/29/2007
Posts: 489
HHS wrote:
Writing to any even location in the range 8000-9FFE will program the MMC3 Bank Select register. Bit 6 of this register selects the PRG bank mode. When set, the first 8K is fixed and the third 8K is swappable. When cleared, it is the other way around. SMB3 uses the layout where the first 8K is fixed. By writing 80 to 9C70, the other layout is selected, and eventually execution reaches 0081. (Return addresses are stored as 1 less than the address to return to.) For the pipe glitch to work, you must be standing on the pipe end, and you must be ejected to the right (so that you cross into the next tile) while holding the down button on the same frame. By being ejected, your position no longer corresponds with the tile the game assumes you're standing on.
What criteria does the game use to determine whether Mario can enter a pipe?
Glitcher
He/Him
Joined: 3/24/2007
Posts: 216
Location: London, U.K.
Looks like SMB3 can join its big brother SMW in terms of glitch executing the ending. Great run!
Emulator Coder
Joined: 6/8/2005
Posts: 236
Location: Madison, Wisconsin
I'm with the "mind blown" guy up there.
HHS
Active player (286)
Joined: 10/8/2006
Posts: 356
Zowayix wrote:
What criteria does the game use to determine whether Mario can enter a pipe?
It takes your X position & 15, and if it's less than 12 (or 8, for a level with hills or if you're in air), it subtracts 16. It then adds 16 if you're standing on the left side of a pipe. If the resulting value is between 3 and 13, you may enter. In other words, you should be standing on the left side of a pipe with X & 15 between 3 and 12, or on the right side with X & 15 equal to 12. Since you were standing on the right side, then got ejected so that X & 15 became 12, you can enter.
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15585
Location: 127.0.0.1
This movie has been published. The posts before this message apply to the submission, and posts after this message apply to the published movie. ---- [2588] NES Super Mario Bros. 3 "game end glitch" by Lord_Tom & Tompa in 02:54.98
Eszik
He/Him
Joined: 2/9/2014
Posts: 163
So this is the blank branch‚ not 'game end glitch' ? WTF
I problably made mistakes, sorry for my bad English, I'm French :v
Editor
Joined: 11/3/2013
Posts: 506
Eszik wrote:
So this is the blank branch‚ not 'game end glitch' ? WTF
TASvideos is in something of a state of civil war over this particular issue.
Eszik
He/Him
Joined: 2/9/2014
Posts: 163
thatguy wrote:
Eszik wrote:
So this is the blank branch‚ not 'game end glitch' ? WTF
TASvideos is in something of a state of civil war over this particular issue.
I thought there had been a kind of consensus.
I problably made mistakes, sorry for my bad English, I'm French :v
Patashu
He/Him
Joined: 10/2/2005
Posts: 4043
Eszik wrote:
thatguy wrote:
Eszik wrote:
So this is the blank branch‚ not 'game end glitch' ? WTF
TASvideos is in something of a state of civil war over this particular issue.
I thought there had been a kind of consensus.
You are very mistaken!
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
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11478
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
It will be "game end glitch".
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.
Emulator Coder
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Glitcher wrote:
Looks like SMB3 can join its big brother SMW in terms of glitch executing the ending. Great run!
Um, SMB3 is the big brother. SMB3 finally caught up to some of the antics of its little brother.
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: 11/25/2012
Posts: 22
Nach wrote:
Um, SMB3 is the big brother.
I thought SMB3 was on the NES, whereas SMW was on the SNES? Wouldn't that make it the little brother?
Guga
He/Him
Joined: 1/17/2012
Posts: 838
Location: Chile
Kingdweeb wrote:
Nach wrote:
Um, SMB3 is the big brother.
I thought SMB3 was on the NES, whereas SMW was on the SNES? Wouldn't that make it the little brother?
You don't have a brother, do you? The NES was FIRST, so that makes it the BIG BROTHER. It has nothing to do which is powerful or whatever.
Editor, Expert player (2098)
Joined: 8/25/2013
Posts: 1200
Kingdweeb wrote:
Nach wrote:
Um, SMB3 is the big brother.
I thought SMB3 was on the NES, whereas SMW was on the SNES? Wouldn't that make it the little brother?
Older = big brother. It's as simple as that.
effort on the first draft means less effort on any draft thereafter - some loser
Joined: 5/27/2005
Posts: 465
Location: Turku, Finland
Awesome commentaries! Oh, and yes, the movie itself is definitely worth publishing.
Which run should I encode next? :)
Editor, Experienced player (570)
Joined: 11/8/2010
Posts: 4036
It was amazing to see the glitch demonstrated in the SMB3 thread, and the finished product is just as impressive. Well done.
Player (69)
Joined: 4/17/2014
Posts: 69
Mega-yes!! 02:54 of pure domination, nuff said.
Nothing to fear but fear itself - Franklin D. Roosevelt