This is a completely new type of a Super Mario World run. It beats the game by getting the THE END [dead link removed] screen in the 2nd level (Yoshi's Island 3).
After the discovery of a new glitch by あんた (anta), our Skype TASing community was trying to understand what happened in the .smv. Since he only uploaded the .smv and a japanese documentation, we had to find it out by ourselves.

Game objectives

  • Emulator used: Snes9x 1.43 v17
  • Aims for fastest time
  • Uses game-breaking glitches
  • Heavy luck manipulation
  • Achieves credits early

The "credits glitch"

"spit sprite position = yoshi X position + offset to spit object(index by Y which is the direction) normally, this would store to the sprites X position, however, because the sprite index is #$FF It writes to #$E4 + #$FF which is #$01E3. This is the stack address that is corrupted. If yoshi is facing left he must be at the position #$86, and if he is facing right it should be #$66."
p4plus2's documentation of the "credits glitch" [dead link removed]

Addresses which have to be manipulated

RAM Addressneeded ValueDescription
$7E:148C#$7CRNG 1 | See explanation below
$7E:148D#$92RNG 2
$7E:148E#$F7RNG 3
$7E:00E8#$86X position of sprite #04 (it's Yoshi in this case) (freezes when the sprite disappears, though you shouldn't have him disappear)
OAM Addressneeded ValueDescription
$01:02D4#$26X position of some score numbers onscreen (freezes when it disappears)
$01:02FC#$A3X position of the "smoke" effect (like when a fireball goes into a wall) (freezes when it disappears)
$01:02FD#$F0Y position of the "smoke" effect (same as above) (sets to #$F0 when it disappears)
$01:0304#$81X position of a Mario tile that appears when Mario is on Yoshi and he is in the turning animation (freezes when it disappears)
$01:0305#$39Y position of the same Mario tile as above (freezes when it disappears)
$01:0308#$B0X position of a cape tile (freezes when it disappears)
$01:0309#$F0Y position of a cape tile (sets to #$F0 when it disappears)
$01:030C#$60X position of a cape tile that appears when mario is flying (freezes when it disappears)
Those addresses starting with "01" are just OAM Addresses. OAM is a chunk of memory that stores the data about the sprite tiles to draw onto screen.
RNG:
The Random Number Generators (RNGs) change with certain events. We have to change the RNG 1197 times for it to work in our favor. When a koopa spawns, it's called once (when the RNG is "called", it changes). Before going into the pipe in YI3, three koopas appear; this leaves the RNG to be called a remaining 1194 times. This is where the fish come in. When a flopping fish bounces on the floor, it calls the RNG three times. So, that means the fish need to bounce 396 times (to call the RNG 1188 more times). After the fish manipulation, there are exactly six koopas that spawn. After they spawn, the RNGs are set perfectly in order for me to activate the credits.
There are also some OAM addresses that have more than one possible values, they have to have the same bytes of opcode and they also have to not affect the A register.
OAM AddressBytes of OpcodeDescription
$01:02FA2Will be the right value when you shoot a fireball with X
$01:02FE2Will be the right value when you shoot a fireball with Y
$01:03004X position of a koopa shell tile
$01:03023Will be the right value when you pick up a shell
$01:03062Nearly always right
$01:030A2Nearly always right
(actually you can change the bytes of the opcode, only the number of bytes between two required values is important)

Stage by stage comments

Yoshi's Island 2

We can't manipulate the addresses here since they would reset in the overworld.

Yoshi's Island 3

If you jump on a p-switch and then get the "pressed" p-switch in Yoshi's mouth on the right time, you will spawn a fish if you spit out the p-switch fast enough. Also, there can only be eight fishes in the room. After this room, I went back to the Yoshi block. I spawned two Yoshi's by hitting the block with Mario and the p-switch at the same time. I jumped on one Yoshi, got the p-switch in his mouth and let him die, so the second - invisible - Yoshi becomes visible and have a null sprite in his mouth. Then I go right to perform a PI (Powerup Incrementation) so i get a cape, to manipulate some values.

Other comments

Potential Improvements

Maybe the part with the fishes can be improved, since its heavy luck manipulation. Also, maybe there is a faster strategy to get all the right values.

Suggested Screenshots

[dead links removed]

Thanks to

  • Our Skype TASing community, for being able to help each other.
  • あんた (anta), for the discovery of this awesome glitch.
  • p4plus2 and smallhacker, for their awesome work exploring the glitch.
  • DarkMoon and Kaizoman666, for helping me writing this submission text.
  • bahamete, for creating some helpful lua scripts.
  • Mister, for helping me with YI2 :P.

adelikat: Judging

Accepting this movie as a new 'ram corruption' category. See this post for details.

Dacicus: Publication underway


1 2
7 8 9 10
Experienced player (702)
Joined: 2/19/2006
Posts: 742
Location: Quincy, MA
The way I see it, a run which does not reach the last level, nor defeat the final boss, or skips the majority of the game, but still completes the run should be a separate category. The Kirby NES run is facing the same issue. Again, it's the same circumstance. However, a regular any% in Kirby's case might just not be entertaining enough for TASvideos to accept it... or well - the current run should be grandfathered. EDIT: for those who don't agree - OK, remove the Zelda: Alttp run, there's a 3 minute one. Oh, and Zelda: Link's Awakening DX, and Yoshi's Island.
Super Mario Bros. console speedrunner - Andrew Gardikis
Personman
Other
Joined: 4/20/2008
Posts: 465
No one (I don't think?) wants to eliminate the longer runs. The idea is to have the "less-glitched" runs be the ones that get a special category, while the absolute fastest run is labeled any%. After all, the name does imply at any percent of the game's objectives may be completed before reaching the end state. So we can have a "beats Bowser" run and a "beats Ganondorf" run or whatever. The default, any% category should go to the absolute fastest run.
A warb degombs the brangy. Your gitch zanks and leils the warb.
Joined: 12/29/2011
Posts: 13
Personman wrote:
No one (I don't think?) wants to eliminate the longer runs. The idea is to have the "less-glitched" runs be the ones that get a special category, while the absolute fastest run is labeled any%. After all, the name does imply at any percent of the game's objectives may be completed before reaching the end state. So we can have a "beats Bowser" run and a "beats Ganondorf" run or whatever. The default, any% category should go to the absolute fastest run.
This, I can support. I think this sounds like a much better alternative.
Joined: 6/4/2009
Posts: 570
Location: 33°07'41"S, 160°42'04"W
I can agree, this can be the new any% (not obsoleting the other one of course), but the other one can't be renamed to "beats Bowser" since there are two of them (unless the 100% stays labeled as 100%, leaving the potential gray area of a run that gets all the exits AND uses this glitch to get to the "the end" screen). Or, call this low%?
Player (13)
Joined: 6/17/2006
Posts: 508
Personman wrote:
No one (I don't think?) wants to eliminate the longer runs. The idea is to have the "less-glitched" runs be the ones that get a special category, while the absolute fastest run is labeled any%. After all, the name does imply at any percent of the game's objectives may be completed before reaching the end state. So we can have a "beats Bowser" run and a "beats Ganondorf" run or whatever. The default, any% category should go to the absolute fastest run.
Longer runs are fine, but I do have a problem with them when they are simply considered less glitchy rather than have clearly defined alternate goals and when they do not bring something different compared to other categories, not to mention that avoiding a specific glitch is almost always a bad goal choice. For instance, we can't use "beats Bowser" as a new category as you suggested. What if there was a run that would teleport Mario from an early level to Bowser's room directly? I think it would be quickly rejected when compared to the current submissions. A better category name would be "shortest overworld route to Bowser". Still, this is in my opinion a bad goal choice compared to any% and 100% (I won't mention why again).
Active player (437)
Joined: 4/21/2004
Posts: 3517
Location: Stockholm, Sweden
Does anyone know the record of many yes votes a submission has recieved?
Nitrogenesis wrote:
Guys I come from the DidyKnogRacist communite, and you are all wrong, tihs is the run of the mileniun and everyone who says otherwise dosnt know any bater! I found this run vary ease to masturbate too!!!! Don't fuck with me, I know this game so that mean I'm always right!StupedfackincommunityTASVideoz!!!!!!
Arc wrote:
I enjoyed this movie in which hands firmly gripping a shaft lead to balls deep in multiple holes.
natt wrote:
I don't want to get involved in this discussion, but as a point of fact C# is literally the first goddamn thing on that fucking page you linked did you even fucking read it
Cooljay wrote:
Mayor Haggar and Cody are such nice people for the community. Metro City's hospitals reached an all time new record of incoming patients due to their great efforts :P
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11475
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Nach should.
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.
Player (80)
Joined: 8/5/2007
Posts: 865
Active player (426)
Joined: 3/21/2011
Posts: 127
Location: Virginia (United States)
Bobo the King wrote:
http://tasvideos.org/2873S.html
Hm, this needs 34 more.
YouTube Channel - Twitter Current projects: Sutte Hakkun, Hyper VI, RTDL, own hacking projects
Joined: 6/4/2009
Posts: 570
Location: 33°07'41"S, 160°42'04"W
kaizoman666 wrote:
Bobo the King wrote:
http://tasvideos.org/2873S.html
Hm, this needs 34 more.
To be fair, that submission had been on the workbench for 57 days, 23 hours, 38 minutes, and 13 seconds, so many people had the chance to vote on it over the weeks, even ones who log in only once per month or something.
Banned User
Joined: 10/9/2011
Posts: 12
Noob Irdoh wrote:
kaizoman666 wrote:
Bobo the King wrote:
http://tasvideos.org/2873S.html
Hm, this needs 34 more.
To be fair, that submission had been on the workbench for 57 days, 23 hours, 38 minutes, and 13 seconds, so many people had the chance to vote on it over the weeks, even ones who log in only once per month or something.
You do realize that you can still vote on submissions even after the movie has been published, yes?
Joined: 3/14/2005
Posts: 43
Noob Irdoh wrote:
kaizoman666 wrote:
Bobo the King wrote:
http://tasvideos.org/2873S.html
Hm, this needs 34 more.
To be fair, that submission had been on the workbench for 57 days, 23 hours, 38 minutes, and 13 seconds, so many people had the chance to vote on it over the weeks, even ones who log in only once per month or something.
Added my vote to the pot (YES btw) These game breaking glitches have limited entertainment value for me, but they're still fun to watch.
Joined: 2/16/2005
Posts: 462
p4plus2 wrote:
This glitch changes one value on the stack, but it is by no means an overflow. The stack is altered from spitting out a sprite with index #$FF, so when "sta $00e4,y" is executed ($01f203)it stores to $01E3. As linked in the original post, I have documented how this glitch works very thoroughly here: http://99.10.160.182/glitch.asm
Well I did say it was 'similar' to an overflow since buffer overflows typically perform arbitrary code execution by clobbering the return address on the stack and it seemed like this is clobbering it as well.
My point was, "extreme" glitches are still glitches. How does one arbitrarily decide what is "extreme"? Just because a glitch requires more planning makes it "extreme"? Or is it by how the game reacts to the glitch? or is it by how the glitch interacts as a software level? Or by how hard it is to pull off? Glitches are glitches, there is no magical way to classify them on magnitude. I am not saying a warning shouldn't exist, I am saying that this "glitch" does not need a special category. Any% is any% and an ending was achieved via glitches. So, the warning in tags in justified, but saying it needs a special category because of the style of glitch is ridiculous. See above about judging the magnitude of a glitch.
I agree there is gray area in subjective definitions but we already have humans judging these runs on subjective content and the gray ones can be handled on a case by case basis. If there was a poll for this run I'm pretty sure the vast majority would prefer this run be published alongside the other run under a new category and the label that has been used in similar cases is "glitched".
This signature is much better than its previous version.
Expert player (2467)
Joined: 6/2/2009
Posts: 1182
Location: Teresópolis - Rio de Janeiro - Brazil
I was on a kind of vacation, but I'm back, and thank God, in time to watch this, weird, but awesome piece of work, Yes vote doubtlessly.
I am old enough to know better, but not enough to do it.
Joined: 6/4/2009
Posts: 570
Location: 33°07'41"S, 160°42'04"W
DootBeep wrote:
You do realize that you can still vote on submissions even after the movie has been published, yes?
I know. But since it makes no sense to vote on a movie which was already published, those votes are the minority. Most people vote on submissions while they're on the workbench, for a good reason. See, Dooty's post above is a good example of what I implied before. Some people don't check the forum 24/7, but if a movie stays in the workbench long enough, more yes votes are gotten eventually. Which is good.
Post subject: lol semantics.
Joined: 1/5/2012
Posts: 52
Location: Maridia
Honestly the category thing never made a lot of sense to me. Clearly there are a number of different methods you can use to beat the game. (Go through all the levels to Bowser, go through the Star World to Bowser, glitch through a couple levels to Bowser, glitch directly to the end screen, ...?) I'd want to keep the fastest video of every known method. So this video wouldn't obsolete others that use different glitches to skip through the game, but a faster exploit of this same glitch would replace this one. As for naming, I'd call it a memory corruption exploit or something along those lines, that clarifies we aren't just corrupting memory, but actually tricking the game into executing arbitrary code (which we've crafted in OAM or wherever it actually executes from). This is different from just favourably corrupting some variables in that we actually take complete control over the system and could (with enough effort to put all the right instructions somewhere in memory) make it do anything we wanted. I'd also agree that to consider a game "beaten", it should a) display some sort of confirmation of victor (the end screen) and b) actually be in a win state (so displaying this message because you "won", not just because it was tricked into loading that graphic). This run does both. That said, I don't see why we can't just include the longer version as an alternate. Even just as a link to a Youtube video in the description: "for those who like closure, this version spends an extra 3 frames to display part of the credits sequence". Anyway this is a terribly impressive exploit and I'd vote yes if it weren't too late to do so (can newbies even vote anyway? >.>). Also loved the pony bit, can't believe people get so upset over some graphic. Haters gonna hate...
Post subject: Re: lol semantics.
ALAKTORN
He/Him
Former player
Joined: 10/19/2009
Posts: 2527
Location: Italy
Rena wrote:
That said, I don't see why we can't just include the longer version as an alternate. Even just as a link to a Youtube video in the description: "for those who like closure, this version spends an extra 3 frames to display part of the credits sequence".
I like this idea
Joined: 5/14/2007
Posts: 525
Location: Pisces-Cetus filament
CtrlAltDestroy wrote:
How about we make a new movie tag, something like "Prematurely triggers credits/endgame", since a lot of these movies seem to exist now?
AzumaK wrote: I swear my 1 year old daughter's favorite TASVideo is your R4MI run :3 xxNKxx wrote: ok thanks handsome feos :D Help improving TASVideos!
Senior Moderator
Joined: 8/4/2005
Posts: 5777
Location: Away
p4plus2 wrote:
How does one arbitrarily decide what is "extreme"?
It is a very subjective notion, yes, but it is very easy to use in a case like this. Pretty much all of the game is skipped, and normally it doesn't allow that. It really is obvious when you're not thinking in assembly code. The glitch itself may not be extreme, but the result is. In this sense it doesn't matter what exactly caused the game to end so soon (vast majority of the users won't care much about technical details, as usual, let alone understand them), so I don't think tying the branch name to a particular method of glitching makes much sense. Just "glitched" works just as well, and doesn't close the doors to other similarly severe potential exploits. Things tend to get wonky when you try to define something that is completely subjective with absolute and/or objective terms, such as numbers, percentages, and so on. There are too many instances where it doesn't work as intended.
Warp wrote:
Edit: I think I understand now: It's my avatar, isn't it? It makes me look angry.
Joined: 8/29/2005
Posts: 148
Location: Dayton, OH
Was there any consensus on category for this? I will publish if it has been determined. "ram corruption"? "glitched"? others?
Bp_
Joined: 11/30/2005
Posts: 81
Location: Quebec
wow, just wow. I don't... understand O.o so funny how much a game can be broke !
Editor, Experienced player (570)
Joined: 11/8/2010
Posts: 4036
ledauphinbenoit wrote:
Was there any consensus on category for this? I will publish if it has been determined. "ram corruption"? "glitched"? others?
Adelikat said "accepting as a new 'ram corruption' category", so I think you should go with his decision.
Player (25)
Joined: 4/23/2005
Posts: 435
Location: Germany
Don't know what happen and don't understand it. So Yes vote.
Last TAS finished: Final Fantasy Adventure (4.0 Warp Glitch Run) WIP in the moment: Tail Gator (GB) Matty
adelikat
He/Him
Emulator Coder, Site Developer, Site Owner, Expert player (3573)
Joined: 11/3/2004
Posts: 4754
Location: Tennessee
ledauphinbenoit wrote:
Was there any consensus on category for this? I will publish if it has been determined. "ram corruption"? "glitched"? others?
Let's go with ram corruption. I haven't liked the other suggestions better. Also, we can always change it after the fact if someone does come up with something.
It's hard to look this good. My TAS projects
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11475
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
How about leaving the "Glitched" branch and adding "RAM corription" simply as a category?
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.
1 2
7 8 9 10