Skip to content

thentenaar/dc-load-ip

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is dcload-ip 1.0.3 with various fixes/changes by Tim Hentenaar <tim@hentenaar.com>.

You can find the latest version at: http://github.com/thentenaar/dc-load-ip

Here is a brief list of changes from the original:

	* Added some fixes to fix compiler errors/warnings
	* Added maple passthrough functionality

Makefile Changes

	I've made various changes to the Makefiles according to my setup. 
	For instance, it's assumed that the 'scramble' utility will be
	in the 'make-cd' directory when making a CD image.

	You'll want to review Makefile.cfg and edit it according to your
	needs.

Maple Passthrough

	I've added a feature which I like to call 'Maple Passthrough.' 
	Basically, this allows the portion of dcload-ip that runs on the
	Dreamcast to act as a bridge between an application on the network
	and the maple bus.

	The way this works is fairly simple. You send a UDP datagram to 
	port 31313, containing the following:

	'MAPL' (4 byte command ID)
	Port   (8-bit port number)
	Slot   (8-bit slot number)
	Cmd    (8-bit Maple command ID)
	Last   (8-bit Maple last flag) [Ignored]
	Length (8-bit Maple data length (in 32-bit words))
	Data   (32-bit words: Length, [data]) specified if Length > 0

	The response packet is as follows:
	
	Status (8-bit Maple status)
	To     (8-bit Maple address)
	From   (8-bit Maple address)
	Length (8-bit Maple data length (in 32-bit words))
	Data   (32-bit words)

	*** See Maple.pm for a Perl module illustrating how to use this functionality. ***

Note that this software isn't perfect, and that with all the changes to GCC over the years since the last revision to
the original dcload-ip, some features (e.g. exception handling) may be a bit buggy or may not work at all.

The following is the original README:

dcload-ip 1.0.3 - a Dreamcast ethernet loader by <andrewk@napalm-x.com>

Features

* Load elf, srec, and bin
* PC I/O (read, write, etc to PC - compatible with original dcload)
* Exception handler
* Extremely fast (at least for me - I get 1130Kbyte/sec on 10mbit half-duplex)
* Now works on 100mbit (I get 2580Kbyte/sec on 100mbit half-duplex)

Building

1. Edit Makefile.cfg for your system and network, and then run make

Installation

1. PC - run make install (installs dc-tool)
2. DC
   a. cd make-cd, edit Makefile, insert blank cd-r, run make
 or 
   b. take target-src/1st_read/1st_read.bin and stuff it on a cd yourself
      (please use the IP.BIN from the make-cd directory if you are going
       to distribute either cds or cd images)
  
On-screen display

* If you see the message "NO BROADBAND ADAPTER DETECTED!" or 
  "ERROR INITIALIZING BROADBAND ADAPTER", something has gone wrong.
* The correct display is something like:
  dcload-ip 1.0.3        <- name/version
  00:d0:f1:02:ab:dd      <- dc hardware address
  c0.a8.00.04            <- dc ip address (in hex)
  idle...                <- status

* If the status line reports "link change..." and does not change back to 
  "idle..." within a short period of time, you may have a cable problem.
  dcload-ip will not work while "link change..." is displayed. The 
  "link change..." message normally is seen when you start dcload-ip, when
  you execute dc-tool -r, and when you disconnect the ethernet cable.

Testing

1. cd example-src
2. dc-tool -x console-test (tests some PC I/O)
3. dc-tool -x exception-test (generates an exception)
4. dc-tool -x gethostinfo (displays the Dreamcast's ip, and the ip and port of
   the dc-tool host)

Notes

* You can use arp instead of setting the dreamcast's ip in Makefile.cfg
* Tested systems: Debian GNU/Linux 2.2
* There are almost certainly bugs
* Patches and improvements are welcome

Credits
* rtl8139 code based on code by Dan Potter
* There are some various files from newlib-1.8.2 here
* video.s was written by Marcus Comstedt
* initial win32 porting and implementation of -t by Florian 'Proff' Schulze
* win32 bugfix by The Gypsy
* fixes for cygwin by Florian 'Proff' Schulze
* rx config bug pointed out by Slant
* horridly buggy nature of 1.0.1 + 1.0.2 pointed out by Dan Potter

About

IP-based software loading tool for the Sega Dreamcast

Resources

License

Stars

Watchers

Forks

Packages

No packages published