From GameBrew

AuthorBjoern Giesler, updated by Coto
Last Updated2018/03/01

DSFTP is a proof-of-concept FTP server and software component for the NDS. It is a full-fledged FTP server, with the additional ability to boot .nds files directly from the FTP prompt (currently only tested on SuperCard CF and DS).

DSFTP is two things: A stand-alone server (as before), and a software component you can link to your code to run an FTP server from your own program. This component is called libDSFTP.

It was submitted for the Neoflash Summer Coding Comp 2006 (winner).


Download and unzip file.

Copy the DSFTP.nds (or .ds.gba) file to your flash card.

For development, it's best to copy libDSFTP.a and libDSFTPd.a to your devkitpro's lib directory, and the include directory to your devkitpro's include dir.

User guide

When you start the application it will auto connect using the WiFi settings in your DS and confirm the IP address at the bottom of the screen. If a config file is not found then it creates and displays a default user and password that you can use to access the DS. Use your favourite FTP program to connect to the IP address and authenticate with the username and password. You can then copy to/from and delete files from your card.

Create config

Create a text file called ftp.conf in (root)/data/settings/. File name and location is critical.

Using a text editor (eg. notepad) add the following text to the file:

user joe
pass whatever
root /
home /
write true
boot true
end user

Change the user and pass to one of your choosing. Then save the file. Further details on setting up the server with custom settings.

Tested clients

Performance tested using the following clients.

  • command-line FTP on Mac/DOS
  • RBrowser Lite on Mac
  • MacOS X virtual FTP file system
  • Firefox
  • FileZilla
  • FireFTP (Firefox plugin)
  • WS_FTP

Performance with other clients unknown, but should work.

Known issues

Acquiring DHCP - Could not connect. Please restart (Many Homebrew WiFi apps can't connect to Access Points using DHCP. The work around is to use a fixed IP address).

Seems to crash at the end of a long upload.

Upload speeds can be very slow (<1kb/sec).

Booting only verified to work on Supercard CF and Supercard SD.


Version 2.6

  • Fixed hangs on some hardware combinations.
  • Fixed bug which caused directory contents not to be reported correctly.
  • Introduced new config option transferblocksize.

Version 2.5

  • Upgraded to devkitpro 21, so linking to libDSFTP should work now.
  • Uses DSWifi 0.34, so people with newer DS Lites should have no problems.
  • Uses libfat instead of gba_nds_fat, which should be more stable.
  • Uses DSGUI for graphics and file-system interface.

Version 2.4

  • The FAT driver has been upgraded to chishm's DLDI file system driver interface. The pre-compiled version comes with Supercard CF driver installed. No other interfaces will be supported any more. If you have a different flash card, please patch the DSFTP binary yourself.

Version 2.3

  • UNZP added (submitted by Bertrand Augereau).
  • DS->PC file transfer speeded up a lot (patch to DSWifi submitted by masscat).
  • Linked with Devkit R18 again (fixes some showstopper bugs).
  • More bugfixes.

Version 2.2

  • Glaring bug fixed that caused GBAMP not to work anymore.
  • Booting verified on SuperCard and GBAMP now.
  • CDUP command supported.
  • More bugfixes.

Version 2.1

  • Unified bootloading should now support most cards.
  • Auto-generated user & pass if none specified.
  • More bugfixes.

External links