FTP Server for 3DS/Switch/Linux.
Appears to work well with a variety of clients.
Supports multiple simultaneous clients. The 3DS itself only appears to support enough sockets to perform 4-5 simultaneous data transfers, so it will help if you limit your FTP client to this many parallel requests.
Cutting-edge graphics.
Exit on NDS/3DS with START button
Exit on Switch with PLUS button
Toggle backlight on NDS/3DS with SELECT button
Toggle backlight on Switch with MINUS button
Emulation of a /dev/zero (/devZero) device for network performance testing
curl ftp://192.168.1.115:5000/devZero -o /dev/zero
curl -T /dev/zero ftp://192.168.1.115:5000/devZero
ftpd uses Dear ImGui as its graphical backend.
Standard Dear ImGui controller inputs are supported.
NDS: https://mtheall.com/~mtheall/ftpd.nds
CIA: https://mtheall.com/~mtheall/ftpd.cia
3DSX: https://mtheall.com/~mtheall/ftpd.3dsx
NRO: https://mtheall.com/~mtheall/ftpd.nro
CIA QR Code
Classic builds use a console instead of Dear ImGui.
CIA: https://mtheall.com/~mtheall/ftpd-classic.cia
3DSX: https://mtheall.com/~mtheall/ftpd-classic.3dsx
NRO: https://mtheall.com/~mtheall/ftpd-classic.nro
CIA QR Code
You must set up the development environment.
The following pacman packages are required to build nds/ftpd.nds
:
devkitARM
dswifi
libfat-nds
libnds
They are available as part of the nds-dev
meta-package.
The following pacman packages are required to build 3ds/ftpd.3dsx
:
3dstools
devkitARM
libctru
They are available as part of the 3ds-dev
meta-package.
Build 3ds/ftpd.3dsx
:
make 3dsx
The following pacman packages are required to build switch/ftpd.nro
:
devkitA64
libnx
switch-tools
switch-libzstd
The first three are available as part of the switch-dev
meta-package. Additionally, ImageMagick is required for converting assets.
Build switch/ftpd.nro
:
make nro
1mDNS hostname not available on NDS
2getMTime only on 3DS. Enabling will give timestamps at the expense of slow listings.