Ultimate NES Remix ROMs Extraction - GlazedBelmont/3DS-Tutorials GitHub Wiki
How to extract ROMs from Ultimate NES Remix
by: Glazed_Belmont

Hi, in this tutorial, I'll show you how to extract the games in Ultimate NES Remix and convert them to make them playable on an emulator.
Firstly, here's the list of the games we will be extracting:
- Balloon Fight
- Donkey Kong
- Donkey Kong Jr.
- Dr. Mario
- Excitebike
- Kid Icarus
- Kirby's Adventure
- Mario Bros.
- Metroid
- Punch-Out!!
- Super Mario Bros.
Super Mario Bros.: The Lost Levels- Super Mario Bros. 2
- Super Mario Bros. 3
- The Legend of Zelda
- Zelda II: The Adventure of Link
So, before we start, you will need this:
- A 3ds console with CFW (Luma)
- Access to an hex editor (HxD or Godmode9)
- A cartridge of Ultimate NES Remix
Section I : Dumping the roms
-
First, open Godmode9 by booting the console while holding the Start button (or the button you've assigned it to)
-
Navigate to
[C:] GAMECART, and press A

- Hover the
.trim.3dsand press A

- Press A on
NCSD image options...and then press A onMount image to drive

- Press A when asked to enter the path

- Now, we are inside the gamecart's rom, you will see multiple things including a directory called
content0.game, press A on that one

- Press A on the
romfsdirectory

- Press A on the
emudirectory

- Hover the
romdirectory and press R+A on it

- Press A on
Copy to 0:/gm9/out

Your rom folder will now be in SD:/gm9/out
Section II : Editing the roms
So, let me give you a bit of context before continuing with the guide, the roms we just extracted aren't playable in an emulator currently. Why, you may ask? Because they aren't using the correct header. They have a TNES header, and we need them to be using a INES header.
Normally, this would require quite a lot of research but don't worry, I have converted all the possible roms for you and prepared a list of the bytes you would have to edit.
DISCLAIMER
Some roms will not work even if you give them a INES header because they are FDS (Famicom Disk System) roms.
This includes:
ICARUSMETROIDSMB2(Lost Levels)ZELDA2(Adventure of Link)
Those are the filenames of the files inside the rom folder we just dumped.
Section II : Fixing the header
Oh boy, that's the tricky part. For the sake of simplicity, I'll be using GM9's hex editor for my examples.
So, the first 4 bytes will ALWAYS be 4E 45 53 1A and the 8th byte is always 00 , if byte 9-16 aren't all 00, you're most likely trying to edit a FDS rom which will not work if you fix the header this way.
That`s a TNES header

and that's a INES header

The difference is quite visible, they are totally different
So, here's the list of the INES headers that I've discovered:
The words that are like this are the filenames of the roms, the name after it is the game it corresponds to. If your filename isn`t on this list, then it is a FDS rom
BALLOON/ Balloon fight:4E 45 53 1A 01 01 00 00BIKE/Excitebike:4E 45 53 1A 01 01 01 00DK1/Donkey Kong:4E 45 53 1A 01 01 00 00DK2/ Donkey Kong Jr.:4E 45 53 1A 01 01 01 00DOCTOR/Dr. Mario:4E 45 53 1A 02 04 10 00UsIKARUS/ Kid Icarus:4E 45 53 1A 08 00 11 00KIRBY/UsKirby/ Kirby's Adventure:4E 45 53 1A 20 20 42 00MB/ Mario Bros:4E 45 53 1A 01 01 00 00PUNCH/Mike Tyson's Punch-out!!:4E 45 53 1A 00 10 90 00SMB1/ Super Mario Bros:4E 45 53 1A 02 01 01 00SMB3/UsSMB3/ Super Mario Bros 3:4E 45 53 1A 10 10 40 00UsSMBUSA/SMBUSA/ Super Mario Bros 2 (US):4E 45 53 1A 00 10 40 00UsMETROID/ Metroid:4E 45 53 1A 08 00 10 00ZELDA/UsZELDA/The Legend of Zelda:4E 45 53 1A 08 00 12 00UsZELDA2/The Adventure of Link:4E 45 53 1A 08 19 12 00
So, if you have a basic knowledge of hex editing, you'll pretty much know what to do, change the highlighted bytes from the TNES screenshot to the ones corresponding to your game.
For those of you who do not have experience in hex editing, I'll make a short tutorial:
-
FIRST OF ALL, MAKE A COPY OF THE FILE BEFORE EDITING IT Press Y on the rom, go somewhere else in your sd card and then press Y again and press A on
copy path -
Press A on your rom and press A on
Show in Hexeditorthat's gonna take you to the hex editing screen.
Basic controls in the Hexeditor
Pressing A once will make a byte go red, that's the byte you're editing, you can freely move around with the D-pad.
Holding A while having a byte in red is going to edit it. Any input on the D-pad will either change the 1st part of the byte or the 2nd part.
⬅️ and ➡️ will edit the first number so if I were to press ➡️ while holding A on the byte 00, the byte would become 10
⬆️ and ⬇️ will edit the second number so if I were to press ⬆️ while holding A on the byte 00 , the byte would become 01
Also, the order of the numbers are different, it goes like this:
0 1 2 3 4 5 6 7 8 9 A B C D E F
- With those controls in mind, edit each of the 8 bytes to match the corresponding header.
Acknowledgements
I'd like to thank Validusername16#9643, he showed me how the TNES and INES worked and taught me how to convert the headers, without his help, this tutorial wouldn't have been possible.
~
GlaZed_Belmont