Topic List |
Page List:
1 |
---|---|
XmasPikachu 04/21/17 12:09:33 AM #1: |
I was watching this video about the SMB minus-minus world glitches:
![]() I had never heard abou this until now, it blows my mind. By glitching the game a little bit and adding flagpoles one can reach worlds -1, -2, and -3 (watch the video). These are obviously glitch levels. How does this work? I mean, how does the game create these worlds it was not programmed to? There is a similar glitch for metroid: ![]() ... Copied to Clipboard!
|
DifferentialEquation 04/21/17 12:12:43 AM #2: |
If you want to see something really mindblowing:
![]() --- "If the day does not require an AK, it is good." The Great Warrior Poet, Ice Cube ... Copied to Clipboard!
|
XmasPikachu 04/21/17 10:09:33 AM #3: |
DifferentialEquation posted...
If you want to see something really mindblowing: oh shit :O truly mind blowing yes ... Copied to Clipboard!
|
SpiralDrift 04/21/17 10:20:04 AM #4: |
I've done enough ROM hacking to have a general idea, though not specifically with SMB. Basically, there's a pointer table that points to the starting addresses of the data for each level. You can change the offsets these point to by altering the ROM manually, and in some cases if you glitch the game in such a way that there's an address in there that wasn't meant to be it will treat it as a pointer anyway and load the data at whatever offset it points to.
Then again these could have been test levels left in the ROM. I'm just explaining how these things usually work. --- Do unto others what your parents did to you. ... Copied to Clipboard!
|
DevsBro 04/21/17 10:24:21 AM #5: |
I read a thing about it on retrocomputing stack overflow. The -1 actually is misunderstood. Every world has levels 1-1, 1-2, etc. 2-1, 2-2, etc. Basically X-1, X-2, etc.
Well when the game hasn't loaded X, it just puts a blank there. World *blank*-1, or what looks like World -1. That was the interesting part. The actual level is some other level from late in the game that it loaded for some really mundane reason I can't remember. You can probably still find the thread if you search minus world retrocomputing stack exchange --- ... Copied to Clipboard!
|
#6 | Post #6 was unavailable or deleted. |
XmasPikachu 04/21/17 10:27:34 AM #7: |
SpiralDrift posted...
I've done enough ROM hacking to have a general idea, though not specifically with SMB. Basically, there's a pointer table that points to the starting addresses of the data for each level. You can change the offsets these point to by altering the ROM manually, and in some cases if you glitch the game in such a way that there's an address in there that wasn't meant to be it will treat it as a pointer anyway and load the data at whatever offset it points to. truly an interesing post, thank you. The fact that world -4 is a black "kill screen" makes me wonder if maybe they were test levels yeah ... Copied to Clipboard!
|
XmasPikachu 04/21/17 10:27:59 AM #8: |
DevsBro posted...
I read a thing about it on retrocomputing stack overflow. The -1 actually is misunderstood. Every world has levels 1-1, 1-2, etc. 2-1, 2-2, etc. Basically X-1, X-2, etc. THANKS!!! :) :) :) ... Copied to Clipboard!
|
KeyBlade999 04/21/17 10:29:35 AM #9: |
Just a fun fact:
The Minus World differs between the Famicom Disk System and NES versions of SMB. --- ''I see now that the circumstances of one's birth are irrelevant. It is what you do with the gift of life that determines who you are.'' - Mewtwo ... Copied to Clipboard!
|
DevsBro 04/21/17 10:32:28 AM #10: |
Missingno in Pokemon was intended for beta testing. The line in cinnabar island was probably intentional for tests, but they forgot to remove it. Some of the glitches are beta tests not fully removed. + what spiraldraft said. Missingno is an undefined pokemon. Its name is an error mesaage (Missing number) that the game returns when it can't find the pokemon with the requested number. So like when you're walking around, whenever you enter grass, it updates a memory address to say you can encounter pokemon 3, 15 and 21 (just numbers I made up), then when you get into a battle, it picks one of those and loads that pokemon. But whe. You talk to the old man who teaches you to catch pokes, he changes your name to OLDMAN. They jad to store your actual name somewhere. Well ince the pokemon ids you can encounter get reset when you walk on any grass anyway, they figured it'll be ok to store your name there. That one strip of half-on-half-off land in cinnabar is the sole exception in that there are no defined pokemon there. So it just uses the last data in that memory location. It's just that most the letters in your name won't correspond to a real pokemon. --- ... Copied to Clipboard!
|
DevsBro 04/21/17 10:39:56 AM #11: |
You can actually exploit it by choosing a name th as r will give you good pokemon. IIRC, if the first, third or fifth letters in your name is a D, it will give you mewtwos in the mix of pokemon you'll encounter instead of missingno. I believe the second, fourth and sixth characters determine the level of those three pokemon.
--- ... Copied to Clipboard!
|
treewojima 04/21/17 10:44:49 AM #12: |
the day I realized that code is data is the day I achieved enlightenment
... Copied to Clipboard!
|
XmasPikachu 04/21/17 10:47:08 AM #13: |
treewojima posted...
the day I realized that code is data is the day I achieved enlightenment huh? ... Copied to Clipboard!
|
DevsBro 04/21/17 10:50:58 AM #14: |
High-level languages have done a good job of insisting on the importance of the compiler, but the truth is you can compile by hand (though it's extremely tedious) and if you do so, or if you just know the target architecture, you can just update the code like any other data and change it on the fly.
This is why moving items around in your inventory allows those crazy pokemon hacks where they display images and music and stuff. The program counter somehow gets set to the inventory memory space and so it reads the inventory as if it were the game's code. --- ... Copied to Clipboard!
|
XmasPikachu 04/21/17 10:52:36 AM #15: |
DevsBro posted...
High-level languages have done a good job of insisting on the importance of the compiler, but the truth is you can compile by hand (though it's extremely tedious) and if you do so, or if you just know the target architecture, you can just update the code like any other data and change it on the fly. This blows my mind ... Copied to Clipboard!
|
kirbymuncher 04/21/17 10:58:35 AM #16: |
Missingno is like, the error the game expects. You're obviously not supposed to access it, and it's buggy, but it has a meaningful name and a sprite and so on
the more interesting glitched pokemon are the ones the game doesn't expect, where the name is gibberish and the sprite/attacks cause extreme graphical glitches --- THIS IS WHAT I HATE A BOUT EVREY WEBSITE!! THERES SO MUCH PEOPLE READING AND POSTING STUIPED STUFF ... Copied to Clipboard!
|
kirbymuncher 04/21/17 11:02:00 AM #17: |
Speaking of pokemon glitches, a few of my favourite relevant videos:
https://www.youtube.com/watch?v=Vjm8P8utT5g&t=39s A TAS that really pushes arbitrary code execution to its limits, this is all theoretically possible (though iirc untested) on actual hardware ![]() --- THIS IS WHAT I HATE A BOUT EVREY WEBSITE!! THERES SO MUCH PEOPLE READING AND POSTING STUIPED STUFF ... Copied to Clipboard!
|
DevsBro 04/21/17 11:12:44 AM #18: |
I actiually don't know where missingno's sprite comes from. I would guess it's reading some data that is not an image as if it were an image. It looks pretty similar to data coruption, which isn't all that different from data interpreted as the wrong type in that neither have any meaning, so I could believe they look similar.
https://upload.wikimedia.org/wikipedia/commons/thumb/6/63/Data_loss_of_image_file.JPG/220px-Data_loss_of_image_file.JPG https://upload.wikimedia.org/wikipedia/en/b/b7/Missingno.png --- ... Copied to Clipboard!
|
XmasPikachu 04/21/17 11:13:59 AM #19: |
DevsBro posted...
I actiually don't know where missingno's sprite comes from. I would guess it's reading some data that is not an image as if it were an image. It looks pretty similar to data coruption, which isn't all that different from data interpreted as the wrong type in that neither have any meaning, so I could believe they look similar. yeah he's just garbage graphics ... Copied to Clipboard!
|
Topic List |
Page List:
1 |