IS-NITRO-EMULATOR Firmware Patches
@famiac and I wanted this development system to run games and output to a monitor without the use of a PC, so we created a series of IPS patches for the firmware to enable these functions.
A lot of thanks goes to @Gericom for documenting the IS-NITRO-EMULATOR registers and USB functions. All of this wouldn't have happened without their initial labor in putting the documentation together.
You can check out the documentation on the NSMBHD forum by searching for the thread:
4438-nintendo-ds-dev-hardware-is-nitro-emulator-and-co
Patches
These patches are in IPS format for transparency. We only changed a few bytes.
I included an attachment to download as well as a string of hex values you can put into a hex editor to save directly as an IPS file. (I recommend HxD)
GBA Cart Enable:
Code:
50 41 54 43 48 0B 1A B0 00 01 C4 0B 1A B8 00 0A
FF FF FF FF FF 31 7F FE 3D 56 0B 1A D0 00 01 FF
0B 1A D7 00 00 00 16 FF 45 4F 46
Video Enable: (For systems that don't have this option enabled)
Code:
50 41 54 43 48 0B 7B 48 00 01 FF 0B 80 7A 00 01
FF 0B 80 A2 00 01 FF 0B 80 D4 00 01 FF 45 4F 46
Video Aspect Ratio and Border Fix: (On J rev machines, the image gets stretched unnecessarily)
Code:
50 41 54 43 48 0B 7B FB 00 01 03 0B 7C 03 00 01
03 0B 7D 47 00 01 06 0B 7D 55 00 07 06 FF FF 43
61 6B 06 45 4F 46
All Patches:
Code:
50 41 54 43 48 0B 1A B0 00 01 C4 0B 1A B8 00 0A
FF FF FF FF FF 31 7F FE 3D 56 0B 1A D0 00 01 FF
0B 1A D7 00 00 00 16 FF 0B 7B 48 00 01 FF 0B 7B
FB 00 01 03 0B 7C 03 00 01 03 0B 7D 47 00 01 06
0B 7D 55 00 07 06 FF FF 43 61 6B 06 0B 80 7A 00
01 FF 0B 80 A2 00 01 FF 0B 80 D4 00 01 FF 45 4F
46
Usage
- Restore IS-NITRO-EMULATOR firmware (This is almost verbatim from the manual) (The DEBUGGER software will only update older firmware versions)
- Set DIP switch #4 on your machine to ON, all of the others should be OFF.
- Turn on your machine.
- Wait 30 sec until SYSTEM1 LED turns OFF, SYSTEM2 LED should stay ON.
- Turn off the machine.
- Set DIP switch 4 OFF. (Otherwise you will restore the firmware again when you turn it back on)
- Install IS-NITRO-DEBUGGER v2 03 on your PC
- Must be this version since we're doing byte patches.
- May not work with Windows 10 x64, but it works fine on Windows 7 x64 and should work on older versions of Windows as well.
- Use conmpatibility mode with Windows XP SP2 if needed.
- Find the ISNITRO.dll file located in
- C:\Windows\System32 for 32-bit Windows install or
- C:\Windows\SysWOW64 for 64-bit Windows install
- Back up the ISNITRO dll before applying any patches. You can create a copy in a different folder, or copy and rename in system folder.
- Apply the patches you want
- I used Floating IPS to create the patch and apply it.
- Copy your modified ISNITRO.dll back into your system folder (no need to reset PC)
- Plug your machine into your PC using a USB type B cable.
- Turn on the machine. The drivers should auto-detect the NITRO.
- If not, disable driver signature enforcement, and specify the location of the drivers in the INTELLIGENT SYSTEMS program files folder.
- Run ISND.exe (there should be a desktop shortcut created)
- The program will automatically prompt you to update the machine. Allow it to run. If this goes wrong, you can always restore using DIP switch 4.
- The update will persist unless a factory reset is performed (using DIP switch 4)
ISNITRO.dll Checksums
- CRC32: 73e9b9d2
- MD5: 980fc2173d015889f374ff7621bae6c1
- SHA1: b3edbfb588d80860f8e94680399a4c20c71f2975
- SHA256: 09dfb4960c7a7c68a3de178469e6506f0a39038b7ac6becc2382f68eab2560f2
Background
In general, there is an MCU in the EMULATOR machine that interfaces between the PC and the NDS CPU. So, there is a separate firmware for the MCU besides the firmware that the NDS CPU runs. @Gericom reversed the USB commands and documented the system registers that the MCU manipulates. This was in 2018. A major roadblock was trying to figure out how to reflash the MCU firmware by software. We had thought for a while that the firmware embedded in the ISND exe is what gets flashed to the system. We realized quickly this wasn't the case, and the project kinda sat on the backburner. It took an embarrassingly long time to try snooping in the system folder, which lead to the current ISNITRO.dll patching state of the "jailbreak".
Future Work
We hope to implement a firmware mod that will enable the NDS cart slot in the near future.
Edits
2020 August 22: initial post