|Home | Downloads | Screenshots | Forums | Source code | RSS|
|< 2D accuracy: it's a rabbit hole tooWhen things turn out unexpectedly simple >|
melonDSi beta release
Oct 15th 2019, by Arisotura
Apologies for the silent month. Things are shaking up here irl, as I'm starting that job, and looking for a new apartment, which is a bit of a shitshow.|
Anyway, here we go: we present you melonDSi, in unfinished beta glory. The JIT beta will follow, but I first want to ensure Generic is comfortable with it.
The end goal will be to merge this with regular melonDS once it's in a better state, but, for now, we're providing it for the curious folks.
How to use melonDSi
BE SURE TO READ THIS BEFORE USING MELONDSI. You are using a beta release, provided with zero polishing and with a debug console. I expect that you know what you are doing to atleast some extent.
melonDSi will require several files to be dumped from a DSi. It's a bit messy right now, but we hope to come up with more user-friendly solutions in the future.
So, if you have a DSi, you might want to install unlaunch on it.
A quick rundown of the files melonDSi requires:
* bios9.bin / bios7.bin: DS-mode BIOS images. Those are the same as the ones from a DS. They shouldn't be required to get DSi software running, but melonDSi will refuse to start if they aren't present.
* bios9i.bin / bios7i.bin: DSi-mode BIOS images. Those can be dumped from your DSi using the good ol' dsbf_dump.nds.
* firmware.bin: SPI FLASH image. See above. dsbf_dump.bin yields a 'FWxxxxxx.bin' file which you need to rename. It should be 128K.
* aeskeys.bin: AES keys at boot time, dumpable using dsidumper.
* initmem9.bin / initmem7.bin: Boot-time contents of ARM9 ITCM and ARM7 WRAM, containing several other useful keys. See above.
* nand.bin: DSi NAND image, ideally dumped with fwTool. This should be dumped from the same console as dsikeys.bin and initmem9/7.bin.
* boot2_9.bin / boot2_7.bin: Second-stage bootloader, to be extracted from the NAND with twltool, using the following command:
twltool boot2 --in nand.bin
Gives you files arm9.bin and arm7.bin, to be renamed to boot2_9.bin and boot2_7.bin respectively.
Make sure that your DSi-mode ARM7 BIOS is good. Open bios7i.bin in a hex editor. Ensure that the first 32 bytes are the following:
06 00 00 EA 06 00 00 EA 1F 00 00 EA 04 00 00 EA
03 00 00 EA FE FF FF EA 13 00 00 EA 00 00 00 EA
Make sure that your NAND dump has the 'nocash footer' at the end. Open it in a hex editor and check that it has the string 'DSi eMMC CID/CPU' at offset 0xF000000. This is the beginning of the 64-byte 'nocash footer', which holds the eMMC CID and console ID.
Ideally make sure that direct boot is disabled.
As with regular melonDS, System->Run will boot the firmware, which should land you into the DSi menu if you did everything right.
You will need to recalibrate the touchscreen through the system settings app to have it work correctly.
melonDSi can boot some DSi-mode apps, but they currently don't work that well.
melonDSi is able to boot DS-mode games from the DSi menu. They currently run with the DS-mode BIOSes and backwards-compatible touchscreen mode, but at the 133MHz clock speed and with 16MB of RAM.
DSi-enhanced games do not boot yet.
Direct boot is likely to break things as it hasn't been updated yet.
Do not attempt using savestates, they can and will go wrong.
melonDSi is based on