DSFTP: Difference between revisions

From GameBrew
No edit summary
No edit summary
Line 2: Line 2:
| title      = DSFTP
| title      = DSFTP
| image      = [[File:DSFTP.png]]
| image      = [[File:DSFTP.png]]
| type        = Utilites
| type        = Utility
| version    = 2.6
| version    = 2.6
| licence    = Mixed
| licence    = Mixed
Line 18: Line 18:


==Installation==
==Installation==
#Download and unzip file.
Download and unzip file.
#Copy the DSFTP.nds (or .ds.gba) file to your flash card.
 
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.       
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==
==User guide==
When you start the app 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.  
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 config===
1. Create a text file called 'ftp.conf' in '(root)/data/settings/' File name and location is critical.
Create a text file called ftp.conf in (root)/data/settings/. File name and location is critical.


2. Using a text editor (eg. notepad) add the following text to the file:  
Using a text editor (eg. notepad) add the following text to the file:  
  user joe
  user joe
  pass whatever
  pass whatever
Line 36: Line 37:
  write true
  write true
  boot true
  boot true
  end user
  end user <br>


3. Change the user and pass to one of your choosing.
Change the user and pass to one of your choosing. Then save the file. [http://giesler.biz/bjoern/en/sw_dsftp.html#usage Further details on setting up the server with custom settings.]


4. Save the file .
'''Note from developer:'''


[http://giesler.biz/bjoern/en/sw_dsftp.html#usage Further details on setting up the server with custom settings.]
Performance tested using the following clients. Performance with other clients unknown, but should work.
 
command-line FTP on Mac/DOS<br>
RBrowser Lite on Mac<br>
MacOS X virtual FTP file system<br>
Firefox<br>
FileZilla<br>
FireFTP (Firefox plugin)<br>
WS_FTP<br>


==Known issues==
==Known issues==
*Acquiring DHCP - Could not connect. Please restart.  
"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.
: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
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.
Upload speeds can be very slow (<1kb/sec).
*Performance tested using the following clients. Performance with other clients unknown, but should work.
 
:command-line FTP on Mac/DOS
Booting only verified to work on Supercard CF and Supercard SD.
:RBrowser Lite on Mac
:MacOS X virtual FTP file system
:Firefox
:FileZilla
:FireFTP (Firefox plugin)
:WS_FTP


==Changelog==
==Changelog==
'''Version 2.6'''
'''Version 2.6'''
*Fixed hangs on some hardware combinations
* Fixed hangs on some hardware combinations.
*Fixed bug which caused directory contents not to be reported correctly
* Fixed bug which caused directory contents not to be reported correctly.
*Introduced new config option transferblocksize
* Introduced new config option transferblocksize.
'''Version 2.5'''
'''Version 2.5'''
*Upgraded to devkitpro 21, so linking to libDSFTP should work now
* 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 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 libfat instead of gba_nds_fat, which should be more stable.
*Uses DSGUI for graphics and file-system interface
* Uses DSGUI for graphics and file-system interface.
'''Version 2.4'''
'''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.  
* 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'''
'''Version 2.3'''
*UNZP added (submitted by Bertrand Augereau)
* UNZP added (submitted by Bertrand Augereau).
*DS->PC file transfer speeded up a lot (patch to DSWifi submitted by masscat)
* DS->PC file transfer speeded up a lot (patch to DSWifi submitted by masscat).
*Linked with Devkit R18 again (fixes some showstopper bugs)
* Linked with Devkit R18 again (fixes some showstopper bugs).
*More bugfixes
* More bugfixes.
'''Version 2.2'''
'''Version 2.2'''
*Glaring bug fixed that caused GBAMP not to work anymore
* Glaring bug fixed that caused GBAMP not to work anymore.
*Booting verified on SuperCard and GBAMP now
* Booting verified on SuperCard and GBAMP now.
*CDUP command supported
* CDUP command supported.
*More bugfixes
* More bugfixes.
'''Version 2.1'''
'''Version 2.1'''
*Unified bootloading should now support most cards
* Unified bootloading should now support most cards.
*Auto-generated user & pass if none specified
* Auto-generated user & pass if none specified.
*More bugfixes
* More bugfixes.


[[Category:Homebrew applications]]
<br>
[[Category:DS homebrew applications]]
[[Category:Utility homebrews on DS]]

Revision as of 02:55, 19 May 2021

DSFTP
File:DSFTP.png
General
Author(s)Bjoern Giesler
TypeUtility
Version2.6
LicenceMixed
Links
[Media:DSFTP26.zip Download]
Website
Advertisements

<htmlet>adsense</htmlet>


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).

Installation

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.

Note from developer:

Performance tested using the following clients. Performance with other clients unknown, but should work.

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

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.

Changelog

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.


Advertising: