Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Allow dumping of firmware from IS-NITRO units
The IS-NITRO-EMULATOR/IS-NITRO-DEBUGGER units are development kits for the original DS and DS Lite. Unfortunately, there is no readily easy way to run a flashcart on them (as they use their own debug signing keys), and even for those of us with DS development cartridges we can write to, `libnds` does not support writing to these expectedly. As a result before this commit it was impossible to actually get the dump from this tool. The dumping techincally succeeds; we just have nowhere to write the file. At first I tried playing with getting it to dump over a network, but the hardwired connection didn't seem to be supported by libnds, and the wifi connection i couldn't get to trigger either (not to mention wireless connections that folks can use with these consoles are greatly dwindling due to no WPA/WPA2 being allowed). So I gave up with that. Luckily though, even though we have neither a filesystem to write to nor a network connection, because this is a development kit, we have the ability to dump the memory from these devices while they're running. This means we can techincally use RAM as a filesystem to dump memory from. We do have enough memory to store the dumps one at a time without issue. So instead of writing a file, we just allocate a chunk of memory, write easily searchable/findable identifiers, and wait for a human/process to dump the files out of memory onto a computer that does have a filesystem, and can continue on. For a human to replicate this with an is-nitro-debugger you can: - rename the built nds to `srl`. - load it up through nitro-debugger on the pc, and continue with the dump until you see your first memory address. - using the debugger application, use the memory dump tools present to write the memory to disk. Cut off the beginning `DE`, and ending `AD`'s, and save the file. Validate the CRCs match, and press start to continue. Repeat for each file until you're done.
- Loading branch information