It is currently Tue Oct 17, 2017 9:04 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 25 posts ]  Go to page 1, 2  Next
Author Message
PostPosted: Fri Jun 08, 2012 7:28 am 
Offline
User avatar

Joined: Tue Feb 13, 2007 9:02 pm
Posts: 147
Location: Richmond, VA
I was looking up some info about the NES Super Mario Bros. localization and came across this site that explains a Famicom-specific cart swapping technique for accessing the 256 'minus worlds' in SMB. Since the trick involves removing the cartridge while the game is playing, the CIC precludes duplicating it on an NES.

There are two techniques described in the article (scroll down to the 'Super Secret Worlds' section for more details):

- Remove the SMB cart during gameplay. Insert a Tennis cartridge, reset, play a bit, then remove the cart. Insert SMB, reset, then use the A+Start stage select to begin play in a corrupted world.

- Version 2 uses a similar method, but involves the Family BASIC cart, keyboard, and a snippet of BASIC code executed during play:

Code:
10 FOR I=&H7D3 TO &H7DC:POKE I,0:NEXT
20 POKE &H7FF,&HA5
30 INPUT "WORLD=";A
40 POKE &H7FD,A+255AND255


The author includes a subtitled Japanese video of the first technique, which looks legitimate. The technique is also backed up by significant documentation in several Japanese SMB guides in the 1980s. Apparently this trick was well known.

Anyone heard of this before? Technique 2 seems almost like a homemade Game Genie. Could this be replicated on a top-loader (or a CIC-disabled front-loader)?

And, more importantly, how does this work? I find this fascinating.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jun 08, 2012 7:35 am 
Offline
User avatar

Joined: Sun May 27, 2012 8:43 pm
Posts: 1304
If I'm not mistaken, this works simply because by hoding A+Start as you begin a game in SMB, it does not clear the values in ram associated with the current world. Normally, the value in ram will simply be the world you were previously in. By starting another game, which uses that address for a totally different reason, and pulling it and resetting, that value is never reset, so SMB uses whatever was there.

I believe it's the same principle behind Streets of Unbridled Fury:
http://www.youtube.com/watch?v=u1EmgeAXB-4

This should work with many games, with potentially different results - you may find yourself in a legitimate world like 2-8, even. On a toploader NES, this should work, as well as a CIC-disabled toaster.


Last edited by mikejmoffitt on Fri Jun 08, 2012 7:47 am, edited 1 time in total.

Top
 Profile  
 
 Post subject:
PostPosted: Fri Jun 08, 2012 7:37 am 
Offline
Formerly 65024U

Joined: Sat Mar 27, 2010 12:57 pm
Posts: 2257
It apparently corrupts all the right RAM. And you should be able to do it on an NES too. CIC doesn't affect RAM, don't know how you came to the conclusion it won't work in a toaster.


Last edited by 3gengames on Fri Jun 08, 2012 8:17 am, edited 1 time in total.

Top
 Profile  
 
 Post subject:
PostPosted: Fri Jun 08, 2012 8:13 am 
Offline
User avatar

Joined: Tue Feb 13, 2007 9:02 pm
Posts: 147
Location: Richmond, VA
Turns out I had both Tennis and SMB. It took a bit of wrangling (my Tennis cart wasn't working well), but I can confirm this works on a top loader. Two of the minus worlds I arrived in crashed within a few seconds of play. The others were merely copies of valid levels.

I notice in the video from the article that, after removing the cart, the background tiles appear to slowly 'melt away.' I noticed this happening a few times for me too. What causes that effect?

And it was neat to swap carts mid-game and have their name tables update with tiles from the new pattern tables!


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jun 08, 2012 8:23 am 
Offline
User avatar

Joined: Sun Jan 02, 2011 11:50 am
Posts: 522
40 POKE &H7FD,A+255AND255

What the heck does 255AND255 mean?
It doesn't look like Valid BASIC code, but I don't know Family Basic.

Maybe: A+255 AND 255

I can understand ANDing - to get a byte value only.. not sure about adding 255, assumimg the above the same as: (A+255) AND 255

If Order of Operations is AND first then it should just be: A+255


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jun 08, 2012 9:04 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19093
Location: NE Indiana, USA (NTSC)
Movax12 wrote:
assumimg the above the same as: (A+255) AND 255

Correct.

Quote:
If Order of Operations is AND first then it should just be: A+255

Variables in a lot of these old BASIC implementations are larger than 8 bits. Thus A+255 would be in the range 255 to 510, most of which would fail the range-check of the POKE statement.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jun 08, 2012 9:47 am 
Offline
User avatar

Joined: Sun Jan 02, 2011 11:50 am
Posts: 522
Yes, if family basic does range checking. I was guessing it may just take the low byte of the value and the code worked despite the error. But anyway, cool trick.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jun 09, 2012 5:07 pm 
Offline

Joined: Thu Apr 14, 2011 9:27 pm
Posts: 85
This probably wouldn't work on a toaster even with the CIC disabled just because it's difficult to insert and remove cartridges quickly.

The other important aspect of this trick is that Super Mario Bros only clears RAM on startup when any of the bytes used to store the score is greater than 10 or the value of the last byte of RAM is anything other thn $A5. Tennis, being another early Nintendo game, uses the same place to store the high score and the same signature byte, so the RAM is not cleared. The same trick might work with some of the other Nintendo black box games as well depending on how much code was reused.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jun 09, 2012 6:10 pm 
Offline
User avatar

Joined: Mon Apr 04, 2011 11:49 am
Posts: 1905
Location: WhereverIparkIt, USA
noattack wrote:
I notice in the video from the article that, after removing the cart, the background tiles appear to slowly 'melt away.' I noticed this happening a few times for me too. What causes that effect?

And it was neat to swap carts mid-game and have their name tables update with tiles from the new pattern tables!


Yeah I see the same thing when swapping games on the NESDEV1. It effectively does the same thing by tristating the cart's data busses and CIRAM inputs. IDK if it's really what's going on, but I always attributed the 'melting' effect to bus capacitance holding values that leak away.


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jun 10, 2012 2:25 pm 
Offline
User avatar

Joined: Sun May 27, 2012 8:43 pm
Posts: 1304
My famicom will do that with removed games. After a few minutes, where it starts to become unstable with the data, moving my hand closer and further from the cartridge slot very visibly affects the data. It's a neat theramin-type effect.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Jun 11, 2012 8:26 am 
Offline

Joined: Sun Mar 19, 2006 9:44 pm
Posts: 913
Location: Japan
Funny you should mention empty cart slots and Theremins... I made an NES "Theremin" program way back in 2001 that let you make music by waving your hands about a cartless NES unit:

http://www.chrismcovell.com/data/Theremin.zip


Top
 Profile  
 
 Post subject:
PostPosted: Thu Jun 14, 2012 10:28 am 
Offline
User avatar

Joined: Sun May 27, 2012 8:43 pm
Posts: 1304
This is fantastic. Thank you.

Should I burn it to an NROM cart, or what? I'm assuming I can disregard vertical/horizontal mirroring :P


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jun 15, 2012 2:45 am 
Offline

Joined: Sun Mar 19, 2006 9:44 pm
Posts: 913
Location: Japan
Yes, you can ignore mirroring and NROM will do fine. It's nowhere near as controllable or melodic as a real Theremin, so don't set your expectations high (at all).

_________________
http://www.chrismcovell.com


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jun 15, 2012 10:27 pm 
Offline
User avatar

Joined: Sun May 27, 2012 8:43 pm
Posts: 1304
Oh, I know - it's just neat to have feedback at all from it. It might make a fun demo unit at the game store I'm working at this summer.


Top
 Profile  
 
PostPosted: Wed Jan 18, 2017 6:09 pm 
Offline
User avatar

Joined: Mon Dec 29, 2014 1:46 pm
Posts: 709
Location: New York, NY
Well, that apparently actually works:

Image


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 25 posts ]  Go to page 1, 2  Next

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group