Famicom World

Family Computer => Famicom / Disk System => Topic started by: MasterDisk on March 30, 2010, 03:57:55 am

Title: [Toturial]: Access the 256W of SMB on real hardware
Post by: MasterDisk on March 30, 2010, 03:57:55 am
1 Insert SMB1 cartirdge and power-on the Famicom unit
2 Remove the cartridge (The Famicom is still powered-on)
3 Insert Tennis
4 Reset
5 Push start and play some Tennis
6 Remove the cartridge (The Famicom is still on)
7 Put back Mario
8 Reset
9 Press A + Start and you should access some strange world.

This technique was released in some old book one year after the SMB release (1986).

The world you access is dependant on the number of steps you make in Tennis.
Title: Re: [TUTO]: Access to the 256W of SMB on real hardware !
Post by: NintendoKing on March 30, 2010, 05:39:14 am
I dont understand how this would actually work, but if it does indeed work... this would be a very fun thing to do.
Title: Re: [TUTO]: Access to the 256W of SMB on real hardware !
Post by: MasterDisk on March 30, 2010, 05:41:41 am
Cover of the book
(http://www1.odn.ne.jp/~cbs78480/mario256_1.jpg)

EDIT: The world depend of the number of moves you do in Tennis. If you move 9 times, you should access to 9-1.
But I don't know if it's moves with the buttons or moves on the field
Title: Re: [TUTO]: Access to the 256W of SMB on real hardware !
Post by: NintendoKing on March 30, 2010, 05:43:52 am
That is a awesome cover art!!
I want that book, now!  ;D
Title: Re: [TUTO]: Access to the 256W of SMB on real hardware !
Post by: NintendoKing on March 30, 2010, 05:50:17 am
That saddens me, I wonder if anyone has ever scanned all of the pages? ???
Title: Re: [TUTO]: Access to the 256W of SMB on real hardware !
Post by: NintendoKing on March 30, 2010, 05:59:05 am
Also really nifty.  :D
I like to see cool tricks like that.
Title: Re: [TUTO]: Access to the 256W of SMB on real hardware !
Post by: 133MHz on March 30, 2010, 11:36:34 am
I remember watching a YouTube video a long time ago, it was very low quality and it featured two Japanese dudes demonstrating the Tennis trick with a Yobo-like Famicom clone. In fact that was the first time I've learned about the trick and I thought it was fairly recent. Too bad I can't seem to find the video anymore, maybe it was removed. :'(
Title: Re: [TUTO]: Access to the 256W of SMB on real hardware !
Post by: Medisinyl on March 30, 2010, 01:15:24 pm
This is interesting... never heard of it before.
Title: Re: [TUTO]: Access to the 256W of SMB on real hardware !
Post by: b1aCkDeA7h on March 30, 2010, 01:22:18 pm
I have US copies of both games, dunno if this would work with them though. I'll give it a try and see what happens.

Edit:

Welp, I don't have Tennis on a standalone cart and it doesn't work with my multicart so I'll go with a never mind for now.
Title: Re: [TUTO]: Access to the 256W of SMB on real hardware !
Post by: ericj on March 30, 2010, 01:22:36 pm
Are the worlds different than you can select on a level-select version of SMB? I have a version in which you can select any level, even levels above 8-4. Like 9-3, B-4, X-1, etc. Super Simpsons lets you do this, too.
Title: Re: [TUTO]: Access to the 256W of SMB on real hardware !
Post by: UglyJoe on March 30, 2010, 01:25:41 pm
How this works is that the FC's RAM is not being cleared when the game is reset. 

In SMB's program code, there is an address in memory that determines which world you will "continue" in by holding down A.  When you swap in Tennis, the memory is, again, not getting cleared (since the power was not turned off).  Tennis's program code must use that same "continue" address for something else, such that playing the game for a while changes the value. 

When you swap SMB back in and reset it, the continue address is some other value (possibly greater than 8 ) and so you continue in some other random world.

The Family Basic code is just setting those addresses manually (that's what the POKE command does). 

I had no idea the RAM wasn't cleared when you reset (although it makes sense).  This means I can use Family Basic as a crude gameshark device ;D

(also, I suspect you can just use Tennis -> SMB, rather than SMB -> Tennis -> SMB, but I can't confirm that)
Title: Re: [TUTO]: Access to the 256W of SMB on real hardware !
Post by: 133MHz on March 30, 2010, 01:32:36 pm
You beat me to the explanation, and yours turned out much better. ;)

Quote from: ericj on March 30, 2010, 01:22:36 pm
Are the worlds different than you can select on a level-select version of SMB? I have a version in which you can select any level, even levels above 8-4. Like 9-3, B-4, X-1, etc. Super Simpsons lets you do this, too.


They should be exactly the same, at least in theory. But also keep in mind that pirate versions of SMB such as Super Simpsons or the ones contained in multicarts aren't byte perfect copies of the real SMB, and so I think that the results could vary slightly depending on the ROM data in question. I presume that other, unrelated PRG data gets interpreted as level data when you get the world count past 8.

I also have one of those multicarts where you can select worlds beyond 9 in SMB, and as far as I remember enabling that is as simple as changing a couple of bytes in the PRG ROM. The Tennis trick increments the starting world value through other means.
Title: Re: [TUTO]: Access to the 256W of SMB on real hardware !
Post by: UglyJoe on March 30, 2010, 04:13:10 pm
I can confirm that this works on a toaster NES with SMB and Tennis.
Title: Re: [TUTO]: Access to the 256W of SMB on real hardware !
Post by: NintendoKing on March 30, 2010, 04:42:25 pm
Actually, now that I think about it; it makes since. When you reset you dont lose your high scores, but you do when you power off.

So I now get a good understanding of how this works.
Title: Re: [TUTO]: Access to the 256W of SMB on real hardware !
Post by: UglyJoe on March 30, 2010, 05:10:02 pm
Quote from: MasterDisk on March 30, 2010, 05:41:41 am
But I don't know if it's moves with the buttons or moves on the field


I checked in an emulator and it's moves on the field.  Whenever you move up/down/left/right it gets larger.  If you hold down a direction, it keeps getting larger until you let go.  Sliding left and right during serves doesn't count.  After 255, it loops back to zero.  If you tap the directions really quickly, you can "count" the value (ie, x taps is world x-1, where 0-8 = worlds 1-9, 9-35 = worlds A-Z, and beyond that is worlds whatever-background-tile).  The value starts at 255, so the first tap would really set it to 0, which is world 1.

edit:

Also, here's World Q: http://ximwix.net/storage/smb-worlds/ (http://ximwix.net/storage/smb-worlds/)
Title: Re: [TUTO]: Access to the 256W of SMB on real hardware !
Post by: Jedi Master Baiter on March 30, 2010, 05:37:33 pm
I remember reading that Tennis trick on Tips & Tricks.
Title: Re: [TUTO]: Access to the 256W of SMB on real hardware !
Post by: satoshi_matrix on March 30, 2010, 06:13:03 pm
Uglyjoe, can this be done in GameGenie format as well?
Title: Re: [TUTO]: Access to the 256W of SMB on real hardware !
Post by: UglyJoe on March 30, 2010, 06:45:23 pm
It *can* be, but you have to keep modifying the third code in order to change the world:

OXVAAXSX, XVVAZZYE => always need these two
AEVAPXSY => "continue" at world 1, if you change the first two letters and the last letter you should get different worlds:
     The first letter can be anything.
     The second letter can be E,O,X,U,K,S,V,N
     The last letter can be Y,N

-----

Even better:
NNXAZZYE + KAVETZYA
Press B on the title screen to choose the world you want.
Title: Re: [TUTO]: Access to the 256W of SMB on real hardware !
Post by: satoshi_matrix on March 31, 2010, 01:03:20 pm
That's great and all, but why not simply use the modifed .nes ROM that allows you to change on the fly?

Maybe I'm being lazy here, but its a heck of a lot easier than using Tennis, Gamegenie, Famicom BASIC or Gecko.

All you need is either a Powerpak and the 256 World .nes ROM or your emulator of choice. Everything from the Xbox to Dreamcast to Wii will play the rom completely fine.

That said, I'm curious as to what exactly is going on here. Can someone please explain the 256 World concept? Why does this occur? Why 256 Worlds and not say 999? How was this even found? Do other platformers have this phenomenon as well? I'd like to know more about it.
Title: Re: [TUTO]: Access to the 256W of SMB on real hardware !
Post by: 133MHz on March 31, 2010, 02:09:40 pm
UglyJoe can probably explain this a whole lot better than I can, but here's my take on it:

Quote from: satoshi_matrix on March 31, 2010, 01:03:20 pm
Can someone please explain the 256 World concept? Why does this occur?


The game has only 8 worlds and the level data for those is stored somewhere in the program ROM. The memory addresses for the levels are most likely algorithmically generated from the world number. When you tell the program to enter a world higher than 8, the level parser falls outside of the range of normal level data, into the rest of the program memory, and interprets whatever it finds as a valid level. Depending on what's there, you might get a valid level, a seemingly playable mess, a completely unplayable mess, or even a plain system crash. Because the ROM data is always the same across all SMB cartridges, the results can be consistently replayed. If you know how the Missingno. trick works, this is quite similar.

Machines can't think for themselves, they will do exactly what you tell them to even if it seems counterproductive, utterly pointless, or even destructive. It's up to the programmer to introduce "sanity checks" and "error traps" into the program to prevent extraneous situations. In SMB this would be something like refusing to start or start always at world 1 if the starting world variable is higher than 8 or less than 1. The developers didn't include such a check probably because there's no known means to trigger such a condition in normal gameplay circumstances.

Quote from: satoshi_matrix on March 31, 2010, 01:03:20 pm
Why 256 Worlds and not say 999?


The Famicom is an 8 bit system. It uses an 8 bit microprocessor. With 8 bits of data you can represent numbers between 0 and 255, hence 256 possible combinations. The game stores most of its environment variables (lives left, current level, coins collected, etc) as single 8 bit integers. If you add one to 255 (hex FF, binary 11111111), it rolls back to zero.

16 bits let you represent numbers between 0 and 65535, or 65536 possible combinations. 2^16 ;)

Quote from: satoshi_matrix on March 31, 2010, 01:03:20 pm
How was this even found?


Beats me how the Tennis trick was discovered back in the 80s. Today we have emulators and debuggers, but back then it was either someone with access to really expensive debugging equipment or somebody with tons of spare time. ::)

Quote from: satoshi_matrix on March 31, 2010, 01:03:20 pm
Do other platformers have this phenomenon as well? I'd like to know more about it.


With the aid of a debugger or a cheat device you can produce "Glitch Worlds" in most games, by forcing the game to start in nonexistent levels. Doing this in normal gameplay circumstances is a lot harder, but proven to be possible. The Missingno. trick in the Pokémon games is a great example of this.
Title: Re: [TUTO]: Access to the 256W of SMB on real hardware !
Post by: UglyJoe on March 31, 2010, 02:21:28 pm
Quote from: satoshi_matrix on March 31, 2010, 01:03:20 pm
Maybe I'm being lazy here, but its a heck of a lot easier than using Tennis, Gamegenie, Famicom BASIC or Gecko.

You're the one who asked for the Gamegenie codes :P

Quote from: satoshi_matrix on March 31, 2010, 01:03:20 pm
That said, I'm curious as to what exactly is going on here. Can someone please explain the 256 World concept? Why does this occur? Why 256 Worlds and not say 999? How was this even found? Do other platformers have this phenomenon as well? I'd like to know more about it.


133Mhz beat me to it this time, but I'll keep my explanation here for prosperity's sake:
Spoiler

I might have the specifics wrong, but the concept is like this: 

Basically, the world data is laid out in chunks, one following the next.  Like:

0000 (world one):
level data level data level data...
1000 (world two):
level data level data level data...
2000 (world three):
level data level data level data...

and so on for all eight worlds. 

It's accessing the level data using offsets (0000 in this example) and an index (world number - 1 in this example).  So for world one, the game says "gimme the level data at 0000 + (0 * 1000) = 0000" and for world three it says "gimme the level data at 0000 + (2 * 1000) = 2000".

Now, beyond the level data for world eight there is more data.  It's not level data, but it is accessible data.  What these "extra worlds" are doing is using a world index that is greater than 7.  This makes the game say something like "gimme the level data at 0000 + (42 * 1000) = 42000".  There is no level data at 42000, but it reads whatever data is there and interprets it as a level.  Because the data is not intended to be used for level data, you get a lot of worlds that do nothing but crash the game rather quickly.

You are limited to 256 worlds because one byte can't be bigger than 255.  0 through 255 is 256 values.  It'll loop around back to 0 if you try to make it any bigger than that (the same thing happens if you get too many one-ups from that trick in 3-1).  Really, whenever you see a value in a game that maxes out at 255 or 256 (like rupees in Zelda), it's for the same reason.

The trick itself is pretty simple, but I have no idea how anyone figured it out without having some access to a debugger or RAM dumper.  I explained earlier in the thread why the Tennis trick specifically works.
[close]
Title: Re: [TUTO]: Access to the 256W of SMB on real hardware !
Post by: 133MHz on April 01, 2010, 10:39:13 pm
You fell victim to the April 1st FW text swap ::)
Title: Re: [TUTO]: Access to the 256W of SMB on real hardware !
Post by: satoshi_matrix on April 04, 2010, 05:06:27 pm
Super Mario Bros. is identical on the NES and Famicom so it will work on both. The real question is if it works with All Night Nippon Super Mario Bros. or the FDS Super Mario Bros.

And now that I think of it, is this triggerable in Super Mario Bros. 2 (FDS or hacks) ?
Title: Re: [TUTO]: Access to the 256W of SMB on real hardware !
Post by: ericj on April 04, 2010, 05:16:10 pm
You can't load multiple disks into an FDS using reset. You have to cycle the power on & off to load different games. But, it may work with a fds to cart converted game.
Title: Re: [TUTO]: Access to the 256W of SMB on real hardware !
Post by: DaGameNerd on June 07, 2015, 09:02:18 pm
Can this be done on an NES? I don't have a Famicom but I do have a Famicom adapter and the Famicom version of Super Mario Bros. 1, the closest I have to a Famicom system is my Famiclone console that looks like a Famicom.

If it'll work on my NES or if there's a chance it'll work on my Famiclone then I'll buy the Famicom version of Tennis.
Title: Re: [TUTO]: Access to the 256W of SMB on real hardware !
Post by: UglyJoe on June 08, 2015, 02:39:56 am
Quote from: DaGameNerd on June 07, 2015, 09:02:18 pm
Can this be done on an NES?


I've done it on an NES with the NES versions of SMB and Tennis.  You need to use the plain SMB cart, though.  Multicarts (like SMB/Duck Hunt) won't work.  It would probably work with the FC versions of the games on the NES with an adapter, as the NES and FC versions of these two games are identical.
Title: Re: [TUTO]: Access to the 256W of SMB on real hardware !
Post by: mario_bro2065 on September 30, 2015, 11:11:58 am
I did it on the NES with a Game Genie  :o. Basically you put in a code (I will post if I remember it) then you press B multiple times and the world number on the title should change just like what you can do if you beat the game once. Except now you can go beyond world 8 and to 9, 10, 11 etc. One slight problem. After beating 9-1 once whenever I tried the code again the game would crash half-way through 9-1 (ONLY on 9-1. All the other worlds work fine and they are fun to explore!).

CODE : NNXAZZYE+AANAAXZG

Enjoy exploring!

Plus here is a good quality screenshot of 9-1. I couldn't find any on the internet before so I guess here ya go
Title: Re: [TUTO]: Access to the 256W of SMB on real hardware !
Post by: aguerrero810 on October 02, 2015, 04:04:12 pm
Can confirm this works. ;D
I used an FDS copy of Tennis and it worked with the ram adapter. It went like this:
1. Play a little bit of Mario
2. Take out Mario (without turning off power)
3. Put in RAM Adapter with FDS Tennis loaded.
4. Reset
5. Play a couple points of Tennis
6. Take out RAM Adapter (without turning off power)
7. Put in Mario
8. Reset
9. Press A + Start
10. Some fun world is loaded!