amiibo Touch & Play (NES & SNES ROMs)
amiibo Touch & Play contains playable demos of several NES and SNES titles, unlocked by scanning an amiibo. The software contains the full ROMs for the respective games, and they can be extracted. I first found out about this on GBATemp, the thread also has the instructions on how to get the ROMs. You need a dump of amiibo Touch & Play, a hex editor and an extraction tool capable of handling .szs files.
The software contains the following titles:
- WUP-F4AE Wrecking Crew
- WUP-FA8E Metroid
- WUP-FA9E Super Mario Bros. 2: The Lost Levels
- WUP-FAAE Super Mario Bros.
- WUP-FABE Super Mario Bros. 3
- WUP-FACE Ice Climber
- WUP-FADE Kirby's Adventure
- WUP-FAEE Mario Bros.
- WUP-FAFE Donkey Kong
- WUP-FAGE Excitebike
- WUP-FAHE Super Mario Bros. 2
- WUP-FAJE Balloon Fight
- WUP-FAKE Punch-Out!!
- WUP-FAME Yoshi
- WUP-FAWE Donkey Kong Junior
- WUP-FB5E Dr. Mario
- WUP-FBAE The Legend of Zelda
- WUP-FBBE Kid Icarus
- WUP-FBCE Zelda II: The Adventure of Link
- WUP-FBNE Pinball
- WUP-FBQE Clu Clu Land
- WUP-FBVE Wario's Woods
- WUP-FCQE Mach Rider
- WUP-JAAE Super Mario World
- WUP-JADE The Legend of Zelda: A Link to the Past
- WUP-JAEE Kirby Super Star
- WUP-JAJE Super Metroid
- WUP-JAKE Super Mario Kart
- WUP-JANE Kirby's Dream Land 3
- WUP-JARE F-Zero
- WUP-JASE Kirby's Dream Course
- WUP-JDDE Super Mario All-Stars
The extraction method as described in the GBATemp thread works fine for the NES games. Super Mario Bros. 2: The Lost Levels has the Famicom Disk System BIOS in there, starting at 00010000. The BIOS seems to be different from the one found on the NES Mini. There are also several redundant 00 00 values in the game segment of the file, removing those and the BIOS will result in a match for the ROM extracted from the VC version of the Lost Levels.
Most of the SNES games either won't boot at all or with bad audio. From what I can tell, the files seem to be split into game data and PCM audio, similar to SNES VC titles.
However, Super Mario All-Stars works fine, since it doesn't seem to use PCM audio. I don't think it was meant to be accessible through amiibo Touch & Play, since it wasn't advertised and Super Mario All-Stars wasn't released on VC either.
The remaining SNES titles can be converted into playable ROMs using the instructions outlined in the extraction method for the Super Smash Bros. for Wii U Masterpieces ROMs #220 Full credit to @bhmurphy for sharing his findings.
You'll need a hex editor, Python and the snesrestore.py and brrencode3.py scripts from Plombo's vcromclaim repo.
- Open one of the SNES ROM
.binfiles in a hex editor. Select the section from 0x0 to 0x2F and cut it. - Navigate to the end of the ROM, before the PCM audio section. This is different based on the ROM:
WUP-JAAESuper Mario World → The ROM ends at 0x7FFFF, the PCM sound begins at 0x80000WUP-JADEThe Legend of Zelda: A Link to the Past → The ROM ends at 0x0FFFFF, the PCM sound begins at 0x100000WUP-JAEEKirby Super Star → The ROM ends at 0x3FFFFF, the PCM sound begins at 0x400000WUP-JAJESuper Metroid → The ROM ends at 0x2FFFFF, the PCM sound begins at 0x300000WUP-JAKESuper Mario Kart → The ROM ends at 0x7FFFF, the PCM sound begins at 0x80000WUP-JANEKirby's Dream Land 3 → The ROM ends at 0x3FFFFF, the PCM sound begins at 0x400000WUP-JAREF-Zero → The ROM ends at 0x7FFFF, the PCM sound begins at 0x80000WUP-JASEKirby's Dream Course → The ROM ends at 0x0FFFFF, the PCM sound begins at 0x100000
- Select all of the bytes in the PCM section (from the start byte to the end of the .bin file). Save the selection of the game section as a new file, I use [4-letter-code].rom for convenience's sake. For example
JAAE.romfor Super Mario World. Then cut out the selected area. - Save the remaining file as a new file ending in
.pcm. Again, I usedJAAE.pcmfor Super Mario World. - Move the python scripts to the same folder as those two files extracted from the binary file. Then open a command line interface, use the cd command to move into that folder.
- Use the following command to merge the files into a bootable ROM:
python snesrestore.py [4-letter-code].rom [4-letter-code].pcm [name of SNES.rom].smc(For example:python snesrestore.py JAAE.rom JAAE.pcm JAAE.smcfor Super Mario World) The finished ROM can be renamed however you choose.
Let me know if there are any errors.