Savsender is a simple EEPROM backup tool for the Nintendo DS. It sends the contents of the EEPROM from a game card to a specified server and IP address over WiFi. This makes it useful for owners of slot-1 devices who wish to transfer the save memory from their commercial carts to their backup device.

In order to use this tool, patch it with the appropriate DLDI driver, install the application, and create a config file on your device in /data/settings/savsender.conf. This file must contain two lines, as follows:

<server_name>
<server_port>


The app will then send a raw byte stream to that server and port that represents the contents of the EEPROM. Use a tool like netcat to read the data and dump it to a file.

Once you have the data, you’ll need to convert it to your card format, and then install it on the device. This I leave as an exercise to the reader, though, for the R4, I can tell you that you must simply pad the file to 512KB and then copy it to your device.

News

• Dec 3 - And an even longer time… version 1.1b is out. This version is built against version 0.3.4 of dswifi. Hopefully this solves some wifi problems reported, particularly with the latest DS Lite (again).

• Aug 8 - (wow, that’s a long time…) Release version 1.1a. This is built against version 0.3.2 of dswifi, which, I hope, solves the problems with the latest DS Lite. Note, only the nds file has changed. The source code remains identical.

• May 21 - Release version 1.1, which supports restoration, and makes the config file parser a bit more lenient (it’ll throw away all whitespace at the start and end of the lines).

Documentation

There isn’t any. No, seriously. However, dantheman was so kind as to create a tutorial which covers how to use savsender and netcat.

Known Issues

The Wifi sending logic seems a bit flakey at times. If you get a transmission error, try power cycling your DS and trying again.

Credits

Thanks to Josath for providing me a patch to libnds which provides more EEPROM support, and also makes it extremely easy to get EEPROM types and sizes. This code replaces the routines I swiped from Etool, which made the initial release of this application possible.