todo:ds-firmware

Nintendo DS Firmware

Important Notes

  • If you have a sealed DS, contact us on the VGPC discord, to avoid inadvertant modification of the firmware and preserve a copy of it in its unused/“factory” state.

Dumping DS firmware is reasonably easy if you have a way to run homebrew on the DS.

The DS firmware structure is as follows:

  • Firmware header
  • Wi-Fi calibration data
  • Firmware code
  • Wi-Fi access point data
  • User settings

Since Wi-Fi calibration data, Wi-Fi access point data and user settings are likely to differ between consoles, they will have to be cleaned to obtain a consistent hash for the same firmware version.

  1. DS console via slot-1 flashcart

Tools

Dumping

  • Download and copy dsbf_dump.nds to your flashcart's SD card
  • Power on the console and run dsbf_dump
  • Wait till the screen says Dumps completed
  • Turn off the console and copy FWxxxxxx.BIN from the flashcart's SD onto your computer.

Cleaning the firmware

  • Download fw.py and place it in the same directory as FWxxxxxx.BIN.
  • Run python fw.py FWxxxxxx.BIN. You should now have 4 files, cleaned.bin, UserSettings.bin, WifiAccessPoints.bin and WifiCalibration.bin.

Copy and paste the following in a text document, and fill it out to the best of your abilities. If you need help, please come chat with us on the VGPC Discord.

--Console--
Console:
Edition:

--Dump--
Dump tool:
Dumper (person who dumped the firmware):
Dump creation date (YYYY-MM-DD):
Firmware build timestamp:

--Unmodified firmware--
Size in bytes:
CRC32:
MD5:
SHA-1:
SHA-256:

--Cleaned firmware--
Size in bytes:
CRC32:
MD5:
SHA-1:
SHA-256:

--Physical media--
Photos/scans of the back of the console:
UserSettings.bin, WifiAccessPoints.bin and WifiCalibration.bin

Firmware build timestamp can be taken from the output of fw.py.

Unmodified firmware refers to FWxxxxxx.BIN, cleaned firmware refers to cleaned.bin.

Photos and UserSettings.bin, WifiAccessPoints.bin and WifiCalibration.binshould be provided as part of the submission (this is so that the original unmodified dump can be recreated).

Example:

--Console--
Console: Nintendo DS Lite
Edition: Silver

--Dump--
Dump tool: dsbf_dump
Dumper (person who dumped the firmware): xprism
Dump creation date (YYYY-MM-DD): 2022-10-25
Firmware build timestamp: 2006-11-09 21:30

--Unmodified firmware--
Size in bytes: 524288
CRC32: fa6af0bd 
MD5: 2e1af1cb16c8e91f2dd5c5403a1c794b
SHA-1: d5aee4ecd17dbb9003ba6e30dea8e92892b79d4f
SHA-256: ab5f60ab5bc5b797e9683675daef0dc35681a9d218f4ee1b1f54bc752f863706

--Cleaned firmware--
Size in bytes: 524288
CRC32: 973c013f
MD5: 2450d46e98e4584d245f1edf862164a5
SHA-1: 00ce29d150e5f8bf58894cd50b610a57227f6817
SHA-256: cd5acb680de280c2b555ed48af22f3a9d633b7cde983ade50a543603b7d0e20a

--Physical media--
<Link to photos and the 3 .bin files>
  • todo/ds-firmware.txt
  • Last modified: 2022/12/08 17:33
  • by xprism