• Load into disassembler configured for ARM/Thumb; set architecture appropriately (ARM7 core typically ARMv4T/ARM7TDMI style; DSi includes both ARM9 and ARM7 code).
  • Annotate cryptographic routines: identify AES tables, rotation/bitwise patterns.
  • Trace boot path: entry → hardware init → firmware checks → loader for NAND/firmware partitions.
  • Test hypotheses in an emulator (read-only): observe hardware effects, log calls, compare behavior to known firmware versions.
  • Document discovered syscall interfaces and calling conventions for use by homebrew or research (respect legal constraints).
  • dsi bios7.bin is often paired with dsi bios9.bin (the ARM9 BIOS, typically 64 KB). For DSi emulation, both files are required simultaneously, placed in the emulator’s firmware folder. The ARM9 BIOS handles the main boot sequence and loads the ARM7 BIOS into co-processor memory.

    The DSi’s ARM7 BIOS is not identical to the original Nintendo DS BIOS (often called bios7.bin for DS as well, but they differ). The DSi version:

    Example binwalk usage: