Video není dostupné.
Omlouváme se.
Super Mario World Powerup Incrementation Explained
Vložit
- čas přidán 17. 08. 2024
- Masterjun's outdated "game end glitch" TAS: tasvideos.org/1...
This video is not an assembly tutorial--if you don't understand the assembly parts and you want to know more there are plenty of resources on the Internet.
Otherwise, if you have any questions, feel free to ask and I'll try to answer.
You know the video's gonna be good when it starts with "This thing we're talking about is a side effect of a special case of a side effect of a special case."
Perfect avatar for that.
Holy shit.
mind=blown
Here from the future; RGMechEx’s videos nowadays are much more polished and enjoyable to watch.
@@juniorjedi2563 true!
7:47 the best motivational poster ever
+OBSM Productions *The challenge that is*
Thanks yoshi
+OBSM Productions Other challenges aren't. This is the challenge that is.
*the challenge that is*
"A dark Mario head appears for a single frame"
You can almost hear the sub-par creepypastas writing themselves.
While I only understood scraps of this video (I have zero background in assembly code beyond knowing that it is a thing that exists), it really underscores the insane kind of work that went into programming some of these old video games. The hardware constraints that those programmers had to work within inspire awe. As do those who decades later are peeling them apart and using novel methods to manipulate them. Beautiful work.
Josh Killcrop there is a video about the pacman glitch screen and how the ghosts programming work done by I think this same guy that makes even the simplist looking game seem complicated when you get down to the code
it dont work
THIS is what people _should_ be doing on CZcams.
Yeah. I even watched the ad, because this guy deserves a lot of money. He produces video with knowledge and quality.
Agreed 😎.
Yas
I expect him to start talking about parallel universes at any moment.
Or talking about doing this glitch in half an A press.
CoTeCiOtm or sacrificing a baby goat and summoning satan.
Playing Super Mario World, crashes Super Mario World.
Go away and stop using shitty memes
This glitch is like cloning in Mario 64
"What can you do with this null sprite? not much, But what you CAN do is pretty interesting.'
dotsarecool 2015
4:40 dots roasts the programmers.
While I'm not *that* computer literate, I find this and the end credits explain to be quite entertaining to watch.
You’re right, this is an old video.
It’s really not.
Not gonna lie - Stuff like this is a big part of why I love retro gaming in general. Bugs like this are fascinating in a way that you don't really see in modern gaming.
Same here!
(WhiteYoshiEgg here, not sure if you remember me)
This is like watching a mathematical proof - I mean literally, it gave me the chills. I never knew what the glitch was about, but your video was full of lighbulb moments for me, and at the end there was understanding. Great job on that video! :)
+mebamme Yooo WYE! Thanks, I appreciate it. I'm glad you enjoyed it!
I also found a glitch with the swallow timer on "how long yoshi can keep things in his mouth" as well as the "invincibility star" timer: they do freeze if the game freeze flag is set (freezes happens if you do a powerup animation or taking damage/death, as well as scrolling the screen L/R buttons) and should decrement every 4th frame, if $14 (frame counter that can freeze) is divisible by/ multiple of 4, and the game is frozen, it decrements *every frame*
Thanks for the explanation, I didn't realize there was such a huge community SMW glitches and code injections until I saw this and SethBling's video. Super interesting stuff!
someone made a TAS for kosmic for smw that wrote the ENTIRE 40 kilobytes of super mario bros's memory and then accessed it so Kosmic could play Super Mario Bros inside of Super Mario World.
MORE VIDEOS LIKE THIS. I love low level coding and I think videos like this make others more informed AND interested about it as well if done right, like this.
I've wanted to make a 'how glitches ACTUALLY work' video series like this for years. This started when I explained to a friend, who doesn't know anything about programming, why games, especially from this era, have limits of 255 for coins and stuff and it blew his mind. If something that simple has that power imagine what videos like this could do after a proper series leading up to it with explanations...
Why are their 15x the amount of views as subs? this guy is awesome. support his ass.
Retro game mechanics explained is going quite well now (he made that channel too)
Huh, I didn’t know you had another channel before RGME. It’s cool to see how much your editing has improved and that you’re still active over here! Good work man 🙂
Sethbling sent me here!
+rebane2001 same
+rebane2001 me too
+rebane2001 ditto
Same.
Same
The double tongue glitch? I used to do that in college.
Several women I hooked up with in college remember that technique quite well.. ;3
@@happmacdonald .....
@@Preinstallable This was CZcams then.
This was amazing and informative, but I really was looking for some details on the properties of the different powerup states.
I loved that summary in 6:32. Great work
I still expected you to discuss what the non-standard powerup states did.
Wild weird stuff. Love that this old game still has surprises to offer.
But can you do this with only 0.5 A presses?
it's amazing how many glitches people find in a game when it's been out for 30 or so years.
'At this point in the video I've probably explained everything you clicked the video to learn about' - not quite.
I learned how to trigger it, I learned how and why it happens, I clicked on the video hoping to learn what it does.
6:09 I call that "reading in a shifted position", since it jumps to an address where it reads the numbers (ram address $xx, fixed value #$xx) as opcodes and vice versa.
Awesome video! :D
I've been watching your smw let's glitch videos! which I've been commenting on things like when you glitch a berry, it turns into its beta form!
ohi
are you alive
The Null Sprite Glitch can also update the save file banks.
4:36
"this code is pretty jank" said everyone who ever reverse engineered anything lol
Are you a CompEng major?
+SeeeeJaaaay Yes, how could you tell?
+dotsarecool Because Im a CompSci major with some assembly experience but I have no clue how you figured all this out! Haha
+dotsarecool i have a question for you i am very curious, can the game change the color of textures without there being any, extras or were there already a existing texure?
Yes. In many retro gaming consoles, the colors did not come with the graphics, and were assigned separately (palettes). So what's happening to Mario is that his palette is being corrupted, which results in the same graphics, but different colors.
this was actually really clear for the most part, especially compared to your first explanation video :P
the challenge that is
That text literally appeared a few seconds before you said that
Who came here from SethBling?
+MLG Videos Ltd. me'
Acutually yes
me not
I am just in awe. Could you recommend any courses/resources to grok this at the level you do?
15 seconds into this video and I'm already so lost I had no idea what those glitches were
So I was at Power-Up State 20 or so and I misclicked by accident just as the brown platform was moving to the left and I accidentally think that I just discovered Power-Up State 257. IDK. Is a small Mario with alime torso, a lime hat, and a black face apart of the 256 Power-Up State? Anyways, I crashed the game testing this new state on Power-Ups, used the NSO's timestamp feature to go back to the point before I crashed and I'm in a new Power-Up State?! Just wanted to know if this was ever documented and if I am going crazy over that first Power-Up State is new or not. Thanks! Great video by the way.
Your voice reminds me of retro game mechanics explained
Woah, maybe it's because we're the same person
@@IsoFrieze weird your voice sounds much clearer here
@@wannacry6586 I had a different mic 7 years ago
@@IsoFrieze figured but why does it sound cleaner/clearer
Incredibly clear explanation? Now, can you explain why the different powerups do what they do? (Especially Powerup 106 and its crazy, level-ending effects.)
+MetaKnight68 why 106?
Buecause 106 is the only one known to have strange effects.
I'll guess that 106 is the value for the orb in the sunken ship (forgot the name of the level sorry)
...it isn't, the orb's sprite ID is 74. 106 is that weird coin game cloud.
I was only theorizing. But what cloud are you talking about? I don t remember seeing one.
This is what my OC is based off of
O h , h e l l o t h e r e !
O h h a i i i i i
Hi dad
Has anybody made a list of all the powerups marioncycles through? they all have different properties
8:05 And now, Mario turns into a chocolate
That was very interesting. I'm also interested in what each incrementation can do.
Uh, Dots... I may have just found a HUGE skip with this. I was on YI-3 and did this at the right time, the screen went black. I can walk around and hear Bowser flying AND the fight music.
Hey, is this the same guy as Retro Game Mechanics Explained? He sounds quite similar.
Never knew any of that. I find it weird that the fire flower is a higher power up than the cape though. The cape is way better than the flower. It is also introduced later in the game.
My guess is that when they started development of the game, they started with the cape/super leaf first, since it was going to be the more iconic powerup. Fire power was "easy" to code since they've had two games with it already, and added it in later like, "now that we know we like this cape powerup, lets implement everything else."
***** That makes sense. The game does treat them like equal power ups. Every player I know likes the cape better though, but that is just me and my friends.
So this is a side effect of a side effect of a special case of a side effect?
What tools are used to interpret/view the snes asm? I’m familiar with some disassemblers (Ghidra/IDA) but are there ones that can emulate the SNES hardware?
Great. Now i know, that i will never underatand assembly or machine code :D
+StarTrek123456 assembly is something ik the basics of
cristal clear explanation. amazing as always!
Wait you're RGME?
I thought the voice was familiar
this is way over my head but it's super interesting. and it's fascinating that games made by the holy deities at Nintendo can be comprehended at this level by us mere mortals. it puts things into perspective.
It's weird, when I do it, I get a black mario head under yoshi but my powerup state doesn't get incremented :/
I had watched it first. The problem was I was using a weird emulator. On the real console,it worked perfectly
Ah Super Mario World, the game with the most entertaining crashes
Coded by an intern. I love it!
You can also look up "buffer overflow", like what happens if you made the game index table slot use beyond #$0B (sprite slots are valid #$00-#$0B) during execution of a sprite code?
So, what do the other powerups do other than glitch? Has any experimentation been put into them?
+Mr. ROFL act like big mario but with glitched movement
ncamen68 So, nothing beneficial? No wierd glitched goomba fireballs?
+Mr. ROFL Think about it this way. With Big Mario, the game likely checks if powerup value is greater or equals to 1, which allows him to take an extra hit and break turn blocks. With Cape Mario, the game specifically allows for flying/floating if Mario has that powerup value. With Fire Mario, the game specifically allows for fireballs to be shot if Mario has that powerup value.
With glitch powerup values, no extra code is assigned to them. They weren't meant to even be accessible, and all they are is junk code. Hence they use (probably) the default sprite, Small Mario, apply a garbage palette, and as its powerup value is above 1, that state's Mario can break turn blocks.
Next, consider the glitched movement. This is likely just an odd frame in the animation caused by the glitch powerup value.
Hence, if the game does have such strict rules on specific powerup values allowing for specific properties, the glitched powerup values would have nothing assigned to them, hence there is no special property.
+Mr. ROFL There's a few neat things you can do with the power-ups in this glitch. With the "halloween mario" power-up (first one) you can hit the goal tape with a P-Switch in hand and get a star. The star was never added in the game as an end-of-level reward, but it is implemented and will give you a star power-up when you enter the seventh level (I think) after getting it. You can also use powerup number 37 I believe and collect a 1-Up to put a Yoshi in your item box that you can drop anywhere you want, including inside levels with No Yoshi signs. Just a few examples that I can remember.
Squiggy Seven: First Impressions [NES Reviews] those levels amount to just castle and ghost house levels in the original game.
4:40 I was going to lose my mind if you didn't collect that coin
Did you disassemble and comment the SMW code yourself, or is there a reverse engineered version somewhere on the internet? If so, where could I get it? Thanks.
It's already been disassembled and the source code is up on smwcentral.
Wonderfully made!
@IsoFrieze what address is the current pwerup value stored
Half way through I literally just realized that colors like #ff00ff probably is not only related to this hex stuff but ff probably stands for 255. And I've been making website stuff for 6 years now.
So I understood most of this, but I have a few questions.
1. At around 0:23 you said that whatever Yoshi has in his mouth gets stored in a special table. Why does it get stored in a table, and not just put in a unused RAM adress? (e.g. the next 11141 bytes found after $7F9C7B) (Edit, this question is stupid)
2. If you execute the null-sprite glitch, 5 values in the stack get changed. At around 4:17, you said "when the routine is called, the stack pointer is 01EB.", which I can still understand. But the other code in the stack, with the 5 memory values changed, must be called some time right? It isn't just sitting there waiting to not be used ever again until it is overwritten. What happens if the code that is currently in the stack (with the 5 modified memory values) gets run?
3. At 5:38 you said there are 256 different outcomes you can get by adjusting mario's X position. Has anyone run a LUA script yet to test what happens with all these outcomes?
4. According to the table at 7:30, when mario is at X position #$7A, you can jump to the values located in the OAM (which are easily manipulatable), and execute them as raw code. Could this potentially used for another credits warp? (Although it probably is a lot slower anyway)
5. Why does the SNES use such a janky memory management system? Where you can easily take values which are supposed to be used as arguments and execute them as actual OPCodes? Didn't the developers of the system at the time realise how unsafe that was? (Edit, this is also a stupid question)
+Potato on a stick 1. … so the game remembers where it put it?
2. You might find it instructive and enlightening to disassemble the stack you see in the video. (Gur birejevggra nern bs zrzbel vf hahfrq vs gur fgnpx cbvagre vf zber guna $r3. Gur fgnpx nf n jubyr vf arire rkrphgrq nf pbqr va gur abezny pbhefr bs riragf. Vg vf, vaqrrq, whfg fvggvat gurer jnvgvat gb abg or hfrq rire ntnva hagvy vg vf birejevggra. :-)
(I won't comment on 3 and 4.)
5. Nothing to do with memory management, this is a side-effect of using variable-length instructions. The CPU has no notion of the difference between opcodes and operands: it just fetches bytes from memory, addressed by the program counter, and assumes the programmer knows what they're doing.
+Dave Norman Thanks for answering
Anyone here from Mario is missing? (Triple trouble Mario mix)
me
nicely explaned
So cool, it's a very fun kind of brainteaser (quite difficult too but who said that brainteasers have to be easy)
mario turns green when fire flower is used for the null
What does having an invalid powerup state actually get you though other than a scrambled palette for Mario?
Is there a way to give Mario a "powerup" from an enemy. Such as making Mario throw baseballs, hammers, or etc?
ObiTrev technically yes, but it would involve a ton of arbitrary code execution. it would be easier and more worthwhile just editing the ROM beforehand.
Darn, there goes my childhood wish fulfillment.
How do people even figure out such glitches? Do they analyze the game's machine code or something? Because I doubt they find it totally by accident.
But first, let's talk about parallel universes.
For some reason i'm stuck at powerup level 7 :/ Do you know what's happening ? (I'm playing of the american version)
Works with Super Mario All*Stars + Super Mario World or It does something glichy(Edits RAM of the pack code..)??
5:45 it also makes shirts appear
sounds like Retro Game Mechanics Explained
How many powerup increments are possible before the game crashes? Could you make a video trying to get to the highest increment possible?
There are 256 different states. If you do the glitch once more it will wrap back around to 0 and you'll be back to small Mario.
Wow, cool to know. Thanks
+SkydiverTyler side note: there are 256 different states, so the highest number is 255. 0 counts as one of the states
What happens if you are damaged in one of these special powerups?
You just return to small Mario.
Does this work on SMA2
No
I come back to this every year. This is year 7. And. Nope. I still don't get it
Is there a fast way to get to power up state 0x63?
Kobe Whon Edit the Powerup state in the game via cheat codes to increment your Powerup on emulators.
The cheat 7E001963. I remember years ago messing around with that variable, finding strangely-colored Marios that made the game crash when picking up 1UPs (and I have the old video!)
Alright cool! Thanks guys!
Is it possible to use this to jump to the subroutine that decrements the powerup state when mario gets hit? And could you "underflow" the powerup state from small mario (state 0) to state 255?
With the correct setup, this glitch does allow for arbitrary code execution, so yes that is possible. It would just take a lot of work relative to powerup incrementation, since that only happens by chance with hardly any setup. And yes, if you subtract one from Mario's status when he's small, it will wrap around to 255.
Basicaly if yoshi is in a exact pixel in a brown spinning plataform the game dies
Incredible video!
This sounds like your voice now (2020) and pannenkoek mixed together
Is there a specific version that this works in? I'm able to get the black Mario head to appear, but my powerup state doesn't increment.
The setup I described in the video is for the North American version of SMW. It should also work for VC releases. If you're on the Japanese version, you need to be 2 pixels to the right of where the video shows. This glitch should also work on the All-Stars+World cart as well, but I don't know the setup offhand.
Great explanation
Nicely spoken!
Didn't understand much but that was cool!
Why do all of the powerup values after Fire use the sprite for small mario, rather than Super, Fire or Cape?
+DragonblazeGames Some of them actually do, they just have higher values. All the animation frames given to Mario when he's above state 3 are garbage, so it's just by chance really.
I see, thank you. :P
Uh sorry, but is that explanation right?
"A desynced address comes from treating an argument as an opcode"
Aren't those normal opcodes as well where you're pointing at?
It's just that instead of pointing to E2 20 you instead point to 20 68 9D.
But 20 68 9D isn't an argument, is it?
Ah I think you meant because an argument in this specific case changed the Return Address.
The 19th Fighter the byte 20 was intended to be an argument to the SEP instruction. when the program counter points to this byte, it is interpreted as an opcode which results in the instruction JSR.
Yeah, I got it right then. The first time I somehow understood that the opcodes that are being shown is what's on the stack (once you interpret those as opcodes).
Thank you!
Where is the table that stores the slot number of the object Yoshi is currently eating?
$160E,X, where X is the slot yoshi is in.
+dotsarecool Thank you.
How did you turn off the music?
6:32
Behind a different postcode, two secret walls and a fire?
do you have an explanation video on duplicating blocks?
I wanna know the address of the power up value
Why does this guy sound so much like Retro Game Mechanics Explained? I almost thought it was a video of his for a minute
Because it is
Jontron voice:
I get it
idongetit
God damn fucking Masterjun
I feel like I’ve accidentally performed this glitch before, I ate a goomba and i did some weird actions then I went invincible for the rest of the stage.
Holy cow, you go deep.
i didnt understand anything but enjoyed i so much