Homebrew IS-NITRO-EMULATOR Firmware Patches

Stickteo

Member
OP
Newcomer
Joined
Aug 21, 2020
Messages
5
Trophies
0
Age
31
XP
160
Country
United States
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
  1. 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)
  2. 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.
  3. Find the ISNITRO.dll file located in
    • C:\Windows\System32 for 32-bit Windows install or
    • C:\Windows\SysWOW64 for 64-bit Windows install
  4. 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.
  5. Apply the patches you want
    • I used Floating IPS to create the patch and apply it.
  6. Copy your modified ISNITRO.dll back into your system folder (no need to reset PC)
  7. Plug your machine into your PC using a USB type B cable.
  8. Turn on the machine. The drivers should auto-detect the NITRO.
  9. If not, disable driver signature enforcement, and specify the location of the drivers in the INTELLIGENT SYSTEMS program files folder.
  10. Run ISND.exe (there should be a desktop shortcut created)
  11. 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
 

Attachments

  • is-nitro-emulator_fw_patches_200822.7z
    350 bytes · Views: 269

famiac

Member
Newcomer
Joined
Aug 22, 2020
Messages
9
Trophies
0
XP
52
Country
United States
can't post a demo shot, cause I'm still new here, but I will when I can! But with these patches we hope more NITRO owners can get some use out of their systems
 

centaur2

New Member
Newbie
Joined
Jul 12, 2006
Messages
3
Trophies
0
XP
2
Country
Germany
I can't get this to work on my J4 IS-Nitro-Emulator.

The ISNITRO.DLL files has the correct SHA1, so I am using the right version.
Applying any of the IPS patches does not do anything after the Update.

The TV output pane under settings is still greyed out.

Any suggestions?
 

Stickteo

Member
OP
Newcomer
Joined
Aug 21, 2020
Messages
5
Trophies
0
Age
31
XP
160
Country
United States
I can't get this to work on my J4 IS-Nitro-Emulator.

The ISNITRO.DLL files has the correct SHA1, so I am using the right version.
Applying any of the IPS patches does not do anything after the Update.

The TV output pane under settings is still greyed out.

Any suggestions?
I guess you are using the PC software? Since you mentioned the TV output pane...

Have you tried just attaching the Nitro to a display to see if there's any video? (We mainly developed this patch so the video output will work without having a PC attached.)

In the case you want to use it with the PC software, I would guess ISND.exe checks the video option in a different way that we didn't patch for.
 

centaur2

New Member
Newbie
Joined
Jul 12, 2006
Messages
3
Trophies
0
XP
2
Country
Germany
I guess you are using the PC software? Since you mentioned the TV output pane...

Have you tried just attaching the Nitro to a display to see if there's any video? (We mainly developed this patch so the video output will work without having a PC attached.)

In the case you want to use it with the PC software, I would guess ISND.exe checks the video option in a different way that we didn't patch for.

Thanks for your info, I was simply unlucky as my cable was bad. I switched cables and now get picture on both AV ports, even without the PC software.

Thank you for your excellent and elegant solution!

Are you still working on the DS slot patch?
 

Stickteo

Member
OP
Newcomer
Joined
Aug 21, 2020
Messages
5
Trophies
0
Age
31
XP
160
Country
United States
Great to see the patch works for you!

The project is currently on hiatus... We do hope to eventually figure out the DS slot patch.

I believe the PC software uses some sequence to enable the slot... So the DS slot patch would need to emulate that sequence. Any ideas would certainly help!
 
General chit-chat
Help Users
  • No one is chatting at the moment.
    KenniesNewName @ KenniesNewName: On your friendly side loaded apk