DS Download Play dumping guide
DS Download Play is a way of downloading demos, special content and multiplayer games. Content is received and executed directly from within the Nintendo DS firmware menu. The server advertises available content using beacon data. Upon download request, three segments (header, arm9 and arm7) and a RSA signature are transmitted via IEEE 802.11b Wi-Fi broadcast. This is not to be confused with digital content served by a “DS Download Station” (USA and Europe), “DS Station” (Japan), “Nintendo Spot” (Japan) or “Nintendo Zone” (worldwide) which all may use DS Download Play only initially to transfer a separate content browser application.
A complete dump of DS Download Play content consists of two files: the assembled game binary (.nds) and the beacon data (.bcn). Multi-language games should have all languages dumped individually since their beacon data will usually differ.
Real hardware method
This method is done by passively listen to the DS to DS communication. The easiest way is to use Linux and Wi-Fi hardware, like an USB dongle, and the Wireshark software. First, use the following commands to enable monitor mode (replace
wlan0 with your device name):
sudo ip link set wlan0 down sudo iwconfig wlan0 mode monitor sudo ip link set wlan0 up
sudo wireshark and start the capture. If you see about five “Beacon frame” lines per second with a Nintendo source address, that means you’re on the right channel. If you don’t see them, try channels 1, 7 or 13. The channel can be changed while Wireshark is running like so:
sudo iwconfig wlan0 channel 13
Once you’re listening on the right channel, use another DS to download the content. Download at least three times before stopping the capture, then save it in pcap format. You can use the DSDLP Assembler tool to extract the .nds and .bcn files from your .pcap file. It also generates a
custom.xml file containing all the hashes.
This method works with two instances of the melonDS emulator. Launch the firmware’s DS Download Play on one instance and the content serving title on the other. Make sure the content you want to dump is displayed first in the list. On the receiving end, right before the downloaded content boots (at the black Nintendo logo on white background), pause the emulation and then export a save state snapshot (.mln file). The aforementioned DSDLP Assembler tool can parse .mln files as well.
- In some cases, the beacon data includes the server DS’s firmware user information. For consistency, before capturing it’s recommended to set the DS user name to “Nickname” and the favorite color to gray.