melonDSi beta release
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.

Using melonDSi

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.

Booting games

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.

Other issues

Do not attempt using savestates, they can and will go wrong.

melonDSi is based on melonDS 0.8.1, so it will have the bugs present in that version.

Enjoy! Or atleast, try to.

melonDSi, Windows 64-bit
melonDSi, Linux 64-bit

If you want to help us take melonDSi further: here's our Patreon
mhayeck says:
Oct 15th 2019
Awesome work!!!
Spikelink says:
Oct 16th 2019
Nice! good luck finding an apartment!
adhie98 says:
Oct 16th 2019
Wow, awesome leap, nice work
Zinx says:
Oct 16th 2019
If you try using dsbf_dump.nds on a 3ds it will freeze and won't work.
I think fwtool can do the same thing anyway tho.
dsidumper and fwTool appear to work but i need to see where it puts the files by using twilightmenu.
Skylark says:
Oct 16th 2019
Is there another way to get the firmware.bin because I was able to dump everything else except that through Unlaunch. I'm guessing I need to use dsbf_dump.nds on a flashcart in order for it to work (which I don't have at the moment) because it keeps saying "FAT init failed" when launching it through Unlaunch :/
MelonMan says:
Oct 16th 2019
Cool! I don't have a DSi so no initmem7.bin/initmem9.bin/dsikeys.bin/nand.bin for me :( ! I found bios7i.bin/bios9i.bin online on though.
Reshiban says:
Oct 16th 2019
Thank you
Dante says:
Oct 17th 2019
Great... But it seems laborious to extract all these files.
kevincrans says:
Oct 18th 2019
Super Awesome! I declare this the best DS emulator ever! I was able to play New Super Mario Bros on steroids lol. Nusd downloads Dsiware in .app files and real DSI export to SD card is also in app format, so I have not been able to try this functionality yet. Still this is a dream come true!
kevincrans says:
Oct 19th 2019
I actually have an unrelated suggestion, which would be cool. Drastic DS has a feature where you can output the upper screen on dual-screen devices like the Asus Rog Phone 2. So my suggestion was, would you please consider thinking about making such a feature for the bottom screen of MelonDS on Windows Dual-screen devices like the Asus Zenbook Pro Duo or the yet unreleased Microsoft Surface Neo? Thank you for this aweseome build and good luck with the development of MelonDS(i) Emulator!
poudink says:
Oct 19th 2019
or just for people who have two screens lol
kevincrans says:
Oct 20th 2019
I get burned Lmao
Ammako says:
Oct 21st 2019
Comlud says:
Oct 25th 2019
Come live in my basement, lol
Andrew says:
Oct 26th 2019
I spend 2 hours figuring out how to correctly dump bios7i and bios9i; using dsbf_dump I just obtain a 4kb and 16kb files while DSi bios should be 64kb files (and the bios7 file obtaind it is not starting with the shown 32 bytes). Can you tell me how to correctly dump them from my DSi XL please ?
Post a comment