As it will happen eventually, destroying all my previous work for this game, have fun watching even less of this game.

Game objectives

  • Emulator used: lsnes rr2-β21
  • Aims for fastest time
  • Uses game-breaking glitches
  • Achieves credits early

Comments

Go ahead and watch the TAS first, it doesn't really take that long.
This is basically the reason why I cancelled the Kirby Super Star submission. You can maybe see why I prefer the previous movie over this one. But first...

What happens this time?

Let's start at the basics. In SMW there are sprites which can change the status of Mario called powerups (such as mushrooms, flowers, stars and so on). It's easy enough for the game to just run a routine to change it as soon as Mario touches a sprite which is listed as a powerup. Now the problem comes when Yoshi eats a sprite, because if it is a powerup, it should be applied to Mario. The game checks if the sprite has a specific property that says the game if it should give Mario a powerup when it is being eaten. Interestingly enough, chucks have this property! Normally, this isn't a problem because you can't actually eat chucks because they have another property which ensures that the sprite won't be caught by Yoshi's tongue (it goes right through), making it impossible to get it on Yoshi's tongue and eat it... or is it?

Item Swap

This glitch is also used in the warps run in YI2 to get the goal tape to replace the shell on Yoshi's tongue, getting the level end earlier or in YI1 to replace a sprite on Yoshi's tongue with a chuck so that Yoshi can... eat it!
This is what I'm doing, too. I replace a sprite on Yoshi's tongue with a chuck. How do I do that? Well, it is possible to get a coin by touching it, but it is also possible to get a coin on Yoshi's tongue. Now just do both things at the same time (see pictures on the right) and Yoshi's tongue will hold a nonexistent sprite or simply nothing. All the game now knows is that Yoshi's tongue holds a sprite in a specific slot and if in that moment a sprite such as a chuck wants to spawn in that slot, its position will be overwritten since it's now on Yoshi's tongue. Yoshi is now able to eat the chuck which is apparently a powerup to the game.

Eating a chuck

Since the chuck powerup isn't intended by the developers and accidentally in the game, the code doesn't account for it and incorrectly indexes the sprite to put in the item box (which is a lakitu cloud) and also gets the subroutine location wrong to jump afterwards. Instead of jumping to a routine to change Mario's status, it jumps to $014A13... which is Open Bus.

Open Bus

Open Bus is an area in the SNES which isn't mapped to a location like WRAM or ROM, which means no such device answers the request from the console to get the next instruction to execute. This means that the console will just execute whatever value was the last one on data bus.
The code just jumped to $014A13 so the last value on data bus is 0x01.
data businstructioninformation
0x01ORA ($01,x)X is 0x09, $0A holds 0x0107, $0107 holds 0x17, A turns to 0x17 and data bus is 0x17
0x17ORA ($17),Y$17 is interesting because $17 and $18 are SMW's controller data, so this is where I can kinda manipulate the outcome
This is the reason why I pressed X and the next frame AXL just before the glitch started so that $17 is 0xE0 and $18 is 0xA0. The code manages to change the SNES to emulation mode so now it can survive BRKs easily, as the vector changed. Then it managed to reach $4219 which are controller registers.

Controller Registers

These are the last 5 frames of input:
             1-1              1-2              2-1              2-2
F. 0 0|....u.l.AXL.....|BY..u.lr...R....|.Ys..d..AXLR0.23|................
F. 0 0|...Su...A.L.0..3|BY..u.lr...R....|.Ys..d..AX.R0...|BYsSu...A.......
F. 0 0|..sSud.rA....123|BY..u.lr...R....|.Ys..d......0.23|BYsSu...A.......
F. 0 0|....u...A.L.0..3|BY..u.lr...R....|.Ys..d..A.L.0.23|BYsSu...A.......
F. 0 0|BY...dl.A...01.3|B........XLR..2.|..s........R..23|BYsSu...A.......
or in bytes ($4218 - $421F):
E0 0A FB 64 10 CB 00 00
A9 18 D8 64 10 CB 80 F8
87 3D 0B 64 10 CB 80 F8
A9 08 AB 64 10 CB 80 F8
8D C6 13 20 72 80 80 F8
One thing to notice is that "64 10 CB" and "80 F8" occur often. "64 10 CB" is executed as STZ $10 : WAI which STores Zero to $10 and then WAits for an Interrupt. That effectively advances one frame and lets Auto-Joypad Read finish so that we have new input. Then it executes "80 F8" of the next frame (which is why there isn't one in the first frame). "80 F8" means BRA $F8 or BRAnch -8 bytes (or simply 8 bytes back), so we reach $4218 once again and can execute more code.
(The 0xE0 in the first frame isn't actually executed since we start at $4219, which is good because we needed that for the Open Bus part)
byteinstructioninformation
0AASL Aused for clearing carry
FBXCEto recover to native mode after emulation mode to safely let NMI execute
A9 18LDA #$18load 0x18 into A for the game mode later
D8CLDclear decimal mode flag to avoid the game getting confused with calculations
87 3DSTA ($3D)store A to whatever long address is in $3D, which happens to be $000100 which is the game mode
0BPHDpush direct page register so that I have 00's on the stack for later
A9 08LDA #$08load 0x08 into A for $13C6 later
ABPLBpull data bank which is now 00 thanks to the PHD before
8D C6 13STA $13C6store A to $13C6 to complete all necessary steps
20 72 80JSR $8072jump to the main game routine and free the game from any further gameplay

Suggested Screenshot

Special Thanks to:

  • Ilari for explaining Open Bus to me
  • Pat for not being able to chuck-glitch

Nach: Accepting as improvement to existing run.
Ilari: processing


Noxxa
They/Them
Moderator, Expert player (4125)
Joined: 8/14/2009
Posts: 4090
Location: The Netherlands
feos wrote:
We use that technique no matter what for 10 years now, which should make it a borderline for the guy who wants stock controllers for verification. Either he considers the site's approach illegal, or agrees to stretch his views.
That was never the point here. The point was that the runs use extra buttons that don't even exist on a stock contoller. There's a difference between what's unofficial but still possible, and what's unofficial and doesn't even exist on a controller.
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11480
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
xnamkcor wrote:
I'm perfectly fine with Left+Right.
But you can't do that on a normal controller by design. Hence, since many of our tases use it, it won't be legal on your "ideal verification machine".
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
Mothrayas wrote:
There's a difference between what's unofficial but still possible, and what's unofficial and doesn't even exist on a controller.
Unofficial is a broad term. Nintendo licensed over a dozen controllers for the SNES, and even recommended some of them to gamers who want an edge. Several of these non out of the box yet official controllers can make this movie work. Edit: Be terrified by the sheer amount of controllers for the SNES: http://en.wikipedia.org/wiki/List_of_Super_Nintendo_Entertainment_System_accessories#Joypads.2FJoysticks Many of these are official licensed. Edit 2: This controller can input just about anything:
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.
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11480
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Mothrayas wrote:
The point was that the runs use extra buttons that don't even exist on a stock contoller.
Then it doesn't matter for me. The device can't do something, but the console accepts it => it's legit. That is the approach we were using for 10 years. Disagree?
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.
Joined: 2/21/2008
Posts: 255
feos wrote:
xnamkcor wrote:
I'm perfectly fine with Left+Right.
But you can't do that on a normal controller by design. Hence, since many of our tases use it, it won't be legal on your "ideal verification machine".
Don't mind me, I'm an idiot with no published runs. If you want to remove Left+Right, that's fine by me, but I'm not the one who decides what counts a "Verified" and how many levels of "Verification" we have on the site.
"The guy was fatally injured and wants to be covered by God's tears (rain) before he dies. God is too busy to bother because it wastes frames." Frames 16:26
Joined: 2/21/2008
Posts: 255
feos wrote:
Mothrayas wrote:
The point was that the runs use extra buttons that don't even exist on a stock contoller.
Then it doesn't matter for me. The device can't do something, but the console accepts it => it's legit. That is the approach we were using for 10 years. Disagree?
We haven't been using Console Verification for 10 years.
"The guy was fatally injured and wants to be covered by God's tears (rain) before he dies. God is too busy to bother because it wastes frames." Frames 16:26
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11480
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
xnamkcor wrote:
We haven't been using Console Verification for 10 years.
So?
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.
Joined: 2/21/2008
Posts: 255
feos wrote:
That is the approach we were using for 10 years.
"The guy was fatally injured and wants to be covered by God's tears (rain) before he dies. God is too busy to bother because it wastes frames." Frames 16:26
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11480
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
I wrote that. What point are you trying to make?
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.
Joined: 2/21/2008
Posts: 255
We could not have been using any approach for 10 years on something that has only existed for less than 10 years. Console Verification hasn't even been a thing long enough for us to have any policy for it for 10 years.
"The guy was fatally injured and wants to be covered by God's tears (rain) before he dies. God is too busy to bother because it wastes frames." Frames 16:26
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11480
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Ah, okay. My point is, we can't apply some new approach that would contradict our traditional one, right? L+R was considered virtually legit for all those years, as was resetting during saving, and all such stuff. It also syncs on the console as we feed it directly. Then what's the point in banning it suddenly when doing the real verification? Why suddenly limit ourselves with stock controllers? That post tells why not.
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
If you want to limit yourself to "stock controllers" we need to reject any game using the Mouse, Super Scope, or Multitap too.
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: 2/21/2008
Posts: 255
Nach wrote:
If you want to limit yourself to "stock controllers" we need to reject any game using the Mouse, Super Scope, or Multitap too.
Except those games say on the box that they support or require those controllers.
feos wrote:
Ah, okay. My point is, we can't apply some new approach that would contradict our traditional one, right? L+R was considered virtually legit for all those years, as was resetting during saving, and all such stuff. It also syncs on the console as we feed it directly. Then what's the point in banning it suddenly when doing the real verification? Why suddenly limit ourselves with stock controllers? That post tells why not.
Your only support is "we've been doing it all this time, so why should we change"?
"The guy was fatally injured and wants to be covered by God's tears (rain) before he dies. God is too busy to bother because it wastes frames." Frames 16:26
Emulator Coder
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
xnamkcor wrote:
Nach wrote:
If you want to limit yourself to "stock controllers" we need to reject any game using the Mouse, Super Scope, or Multitap too.
Except those games say on the box that they support or require those controllers.
Some make no mention on the box, but still support various controllers. Official channels even confirmed at times that it was designed to support certain controllers, even if there's no mention of it on the box. But this is besides the point, TASing is about ignoring the rules on the box and in the instruction booklet. So what if the game doesn't say it supports the mouse, and someone makes an awesome run with the mouse, should we reject it?
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.
Noxxa
They/Them
Moderator, Expert player (4125)
Joined: 8/14/2009
Posts: 4090
Location: The Netherlands
feos wrote:
Ah, okay. My point is, we can't apply some new approach that would contradict our traditional one, right? L+R was considered virtually legit for all those years, as was resetting during saving, and all such stuff. It also syncs on the console as we feed it directly. Then what's the point in banning it suddenly when doing the real verification?
Good question! That must be exactly why nobody in this topic ever even said or argued anything about L+R not being legit for console verification. Again, the point was the extra SNES buttons, and runs using these certainly haven't existed for 10 years. They're also, unlike L+R, not actually doable on stock controllers. That makes it a fairly different issue to many people. (Whether they're designed to is another issue which we've already gone over.)
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11480
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
xnamkcor wrote:
Your only support is "we've been doing it all this time, so why should we change"?
It's not "support", neither it is "only". It's a question: why does something need to be changed? Especially when it's a common and traditional practice. Can you list the benefits? Mothrayas: so you think that non-existent buttons don't apply to "The device can't do something, but the console accepts it => it's legit"? Or that L+R doesn't apply there? Or that it's not the TASVideos approach for 10 years? What makes these completely different universes in your eyes? Why the same approach can't be used on both issues?
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.
Joined: 2/21/2008
Posts: 255
feos wrote:
xnamkcor wrote:
Your only support is "we've been doing it all this time, so why should we change"?
It's not "support", neither it is "only". It's a question: why does something need to be changed? Especially when it's a common and traditional practice. Can you list the benefits?
"Tradition"? For something that we've only been doing for a few years? The benefit would be a category that is actually "doable" on a stock SNES with a stock controller.
"The guy was fatally injured and wants to be covered by God's tears (rain) before he dies. God is too busy to bother because it wastes frames." Frames 16:26
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11480
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
xnamkcor wrote:
The benefit would be a category that is actually "doable" on a stock SNES with a stock controller.
The only thing left now: go convince the crowd that it's worth it. I bet you still didn't read that long post, right?
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.
Joined: 2/21/2008
Posts: 255
feos wrote:
xnamkcor wrote:
The benefit would be a category that is actually "doable" on a stock SNES with a stock controller.
The only thing left now: go convince the crown that it's worth it. I bet you still didn't read that long post, right?
The one about reset glitch? It's up to you guys to convince people that things need to be changed. All I can do is give you my opinion on the matter. I'm not qualified to tell you guys how to do things. You can fight amongst yourselves.
"The guy was fatally injured and wants to be covered by God's tears (rain) before he dies. God is too busy to bother because it wastes frames." Frames 16:26
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11480
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
xnamkcor wrote:
The one about reset glitch?
Eh?
feos wrote:
That post tells why not.
xnamkcor wrote:
It's up to you guys to convince people that things need to be changed.
xnamkcor wrote:
The benefit would be a category that is actually "doable" on a stock SNES with a stock controller.
No, thanks.
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.
Editor, Player (69)
Joined: 1/18/2008
Posts: 663
I replay input. I refuse to replay a controller. I refuse to support TASing a controller. Go start ControllerVideos. I promise I won't go there.
true on twitch - lsnes windows builds 20230425 - the date this site is buried
Noxxa
They/Them
Moderator, Expert player (4125)
Joined: 8/14/2009
Posts: 4090
Location: The Netherlands
feos wrote:
Mothrayas: so you think that non-existent buttons don't apply to "The device can't do something, but the console accepts it => it's legit"?
Actually, I do agree it applies to that. I'm just saying that it's not the same as L+R.
feos wrote:
Or that L+R doesn't apply there?
No. In fact, nobody here does. Why do you keep bringing it up?
feos wrote:
Or that it's not the TASVideos approach for 10 years?
The non-existent buttons were never used up until relatively recently, so they couldn't have had an approach for 10 years.
feos wrote:
What makes these completely different universes in your eyes? Why the same approach can't be used on both issues?
I explained it several times. One can be done on a stock controller. The other can not. That's the difference. However, I agree that both should be considered legit for submissions or for console verification. I never argued otherwise.
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
Joined: 2/21/2008
Posts: 255
True wrote:
I replay input. I refuse to replay a controller. I refuse to support TASing a controller.
Good for you.
"The guy was fatally injured and wants to be covered by God's tears (rain) before he dies. God is too busy to bother because it wastes frames." Frames 16:26
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11480
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Mothrayas wrote:
I explained it several times. One can be done on a stock controller. The other can not. That's the difference.
If a movie has L+R presses every other frame, say on the second pad, to manipulate the RNG, it will just break the controller, if done on a stock one the mechanical way. Moreover, no one is going to build such a replay device. And when we abstract from that "mechanical" replay device, and use just wires, everything clicks. That is the only stable way to do console verifications.
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.
Editor, Player (69)
Joined: 1/18/2008
Posts: 663
And when replaying this run, we get disappointed because it doesn't verify. Controller or not it won't verify, so don't cry harder than usual. Just in case of an implementation error (which I doubt - only the first data frame plays, and plays correctly as verified by logic analyzer), I will test this on my old device when the conversion boards come in...should be sometime this week. What happens after this is I get one more clock and the console controller polling is dead. Screen is black. Music plays. I am sad. Masterjun is probably happy. Masterjun, would it be possible to make a movie with the old glitch, and have some open bus reads done with screen printout to see what's going on? Or is this too much work? :)
true on twitch - lsnes windows builds 20230425 - the date this site is buried