The NDS core in BizHawk uses MelonDS, which is written primarily by Arisotura along with various contributors.

BIOS, Firmware, and You

The NDS uses 2 BIOS files and 1 firmware file. The 2 BIOS files contain various functions games may call, and the firmware file stores the code for the boot screen you would typically have when booting a real DS, along with various user settings.
MelonDS uses freebios from DraStic when BIOS files are not provided. However, these are not perfect, and may result in graphical/audio bugs in a few games that the real BIOS does not have. It is recommended to use real BIOS files whenever possible.
MelonDS will generate a firmware file with only user settings present. This is not bootable, but it is sufficient for most games. However, some games may not play nice with this fake firmware, and if you wish to change user settings midway through a movie, you would need to use a real firmware file (as that contains actual boot code). For such cases, you will need to use a real firmware file.
However, using a real firmware file has potential issues. Often firmware gets hacked, and is thus unusable for TASing. Along with that, firmware has user settings which change, and the boot code is encrypted, so it's rather difficult to verify firmware is correct. BizHawk has special handling to check the integrity of firmware files using various internal firmware checksums, checks against hacked firmware files, and decrypting the firmware code and checking its hash against known good dumps, which should cover 99% of cases. Still, this is not perfect, so if you don't need to use real firmware, it's recommended to not use it.
On a minor note, you must use real BIOS files when using real firmware, as freebios lacks the code to boot to firmware.
When emulating a DSi, real NDS BIOS files along with real DSi BIOS files must be present, along with a real DSi firmware ("firmwarei") file. The DSi firmware file doesn't contain bootcode and is sanitized by BizHawk, so there's little risk to a DSi firmware file causing a desync.

Format the DSi NAND

This advice was based on misguided assumptions and is not actually suitable for ensuring a reliable sync environment. Use BizHawk 2.11 or later, which will automatically format the NAND in its own special way automatically to ensure determinism. Do not use older BizHawk versions for new DSi movies. This advice is kept here as doing these steps may be required to sync submissions using this advice.
Every DSi has unique NAND and there's no definitive version that many authentic devices share, so there can't be a strict rule on which exact NAND you end up using.
But since the NAND is a complex thing with many unknowns attached to it, the best way to create a semi-consistent environment is to wipe it with its Format option.
BizHawk is unable to write to NAND, so you have to format the NAND using melonDS GUI.
  1. Run melonDS
  2. Go to Config -> Emu settings
    • General tab -> Console type -> select DSi
    • DSi-mode tab -> Specify paths to the 4 required files (in some unclear cases, melonDS may need file paths to not contain spaces)
      • DSi ARM9 BIOS
      • DSi ARM7 BIOS
      • DSi firmware
      • DSi NAND
  3. Hit OK
  4. File -> Boot firmware
  5. If the NAND has been set up before, just navigate to System Settings -> Format System Memory and proceed to Format in all the menus. After melonDS has formatted your NAND, it will shut down the system, and your NAND will be ready for use.
Keep in mind that DSi NANDs are region locked between the US, European, Australian, Japanese, Korean, and Chinese regions. As such, make sure to match the region between your game and NAND. Note that some games might allow multiple regions to be used (commonly Europe and Australia get the exact same release), and a few games are region free. BizHawk (since 2.9) will offer separate firmware slots for each NAND region, and (since 2.10) will throw an error if the loaded NAND will not accept the game's region.

DSi System Menu

BizHawk (since 2.10) offers the ability to direct boot DSiWare titles. This isn't completely done by the emulator here, rather it abuses a feature within the DSi System Menu that allows for directly booting to a title after a soft reset. This is normally used by DSiWare titles to reboot into things like the System Settings, but BizHawk takes advantage of this feature to trick the System Menu into booting the user's loaded DSiWare.
However, as doing this goes through the DSi System Menu, that means the System Menu version may affect sync. As such, the System Menu version may need to match in order to sync a submission, and so should be mentioned. The System Menu version can be seen within the System Settings, at the top right of the touch screen.

Bizhawk/NDS last edited by CasualPokePlayer 5 days ago
Page History Latest diff List referrers View Source