Here you'll find my own work on the DC. This is most of the interesting content on the site, currently. Hopefully you can find something useful in here to what you're trying to do with your spiffy Dreamcast. If there is any host PC code in here, it is designed for Debian Linux 2.3 (woody) and was compiled in that environment. Your mileage may vary, but RedHat Linux 6.2 and above ought to work as well.

Note: As of Oct 5, 2001, I will no longer be hosting any versions of libdream or KOS on here, for two seperate reasons. I am ceasing to host libdream in the hopes that if anyone REALLY wants to use it, then someone else can pick up hosting / maintaining it. For KOS, it's now in SourceForge's file and CVS systems, so you don't need to get it here anymore. I am, however, keeping both libdream 0.6 and KOS 0.6 around for historial purposes =).

  • KOS MMU design notes. These are just some random notes for KOS MMU design stuff. Please excuse the academic tone, I've spent the last two weeks writing reports for classes. =) Posted Apr 28.
  • KOS MMU itself can be found in SourceForge FRS.
  • Ghetto Pong, Stars, and Reverie (Dreamcast libdream/KOS demos) can be found in SourceForge FRS.
  • libdream 0.6. A Dreamcast function library. This extremely old code is here strictly for historical purposes. PLEASE DO NOT USE THIS IN A NEW PROJECT. Instead, take a look at KallistiOS or look around to see if someone else has started maintaining a newer libdream. You can find all versions of libdream in one big tarball on SourceForge FRS.
  • KallistiOS 0.60: tarball. This is version 0.60 of the KallistiOS operating system. This version is available here strictly for historical purposes. PLEASE DO NOT USE THIS IN A NEW PROJECT. Instead, go here to grab a new one.
  • Other interesting historical KOS 1.3.x stuff (and a couple of random newish things) can be found here: 1.3.x FRS
  • bb1.c. This is some very simple test code to access the "broadband adapter" (ethernet card). All it does for now is initialize the card and dump received ethernet packets to the serial port. A full driver will be forthcoming in the next KOS release (0.8x, where x>0 =). Posted Feb-2-2001.
  • sh-stub.c. This is the GDB remote debugging slave. It is no longer a part of libdream, but if you want to take a peek, here it is. If you want to use the GDB slave, you'll need to link in setjmp.o from newlib. Additionally, it no longer compiles with libdream 0.7 -- you'll need an older one such as 0.6. Be forewarned, sh-stub is a little flaky right now.
  • debug_test. A test debug program. This one focuses on setting up and using the GDB debug stub though. I included the requisite setjmp.o from newlib. Newlib is GPL'd... see below on my links to all of the GNU software I have distributed here. You'll also need cp850.h. This file is generated from a Linux codepage 850 font (cp850-8x8) using my bin2c util. I am not sure of its distribution terms, though, so you'll have to dig it up yourself. The program is setup to let you play around in ROM, which is a fun way to pass time if you're really bored... =) This one won't compile anymore with libdream 0.7.
  • bin2c.c. A very basic binary to C array convertor. This is useful for dumping bits of binary data (fonts, etc) into your single executable for making into a 1ST_READ or uploading with the serial cable.
  • dump2bin.py. Converts hex dumps to binary data. This assumes that you will be dumping lines of raw hex ascii bytes into a file, and then using this program to convert them back into a normal binary file. I use it to examine bits of DC memory together with a DC program that dumps RAM to hex ascii bytes. This is written in Python.
  • uploader.py. A small upload script that doesn't do much more than give you a status indicator. To run my DC programs, I generally open up a Minicom on /dev/ttyS0, and copy the srec to /dev/ttyS0. The data goes out, and the >'s come back, showing me that it's working. That doesn't work very well when you're uploading 1.4 megs of SRECs (Linux) so I wrote this to give me a status indicator. Maybe later I'll change it to properly do termios so you don't need a terminal program to set up baud rate. Also in Python.
  • da. My little disassembler. I say little, because all it does is load up a binary image and hook into the GCC/Binutils/GDB disassembly library for SH-4. I've included the source code, along with a Linux binary in case you can't get it to compile. The output is similar or superior to other (Windows-based) disassemblers for the Dreamcast, thanks to the GCC folks.
  • dbg. Taduuummm... this is the Python-based visual front end for sh-stub. Currently it's a little incomplete, but it's getting there. Take a look if you are feeling brave.. =) Here is a little screen shot if you want to see what it looks like currently. I've included a binary copy of the C-based module needed to do disassembly.
  • DreamIce. This is a nice little piece of collaborative work I did with a local buddy. It basically emulates an SH4 CPU (somewhat ~=) and routes all real hardware access to the real hardware over the serial line. Use with the sh-stub from above. Posted Aug-14-2000.
  • linux-dan. My raw copy of the Linux source tree that compiles and runs on the Dreamcast. All I really did in here was to change some things in the Makefile to make it work on a little-endian system (which the DC is, and the sh-linux guys were using big-endian systems), and I modified sh4-scif.c to make it output raw data instead of GDB packets. I also had to change the bogomips loop so it would keep booting (so it's not quite right). You can make your own binary by running the Makefile, and using objcopy to make an srec. Both my vmlinux binary and the resulting vmlinux.srec are included. Also see The sh-linux page. Note: I had to take this down to keep my hosting service happy. ^_^;; I'll post some diffs as soon as I can get a chance.
  • s3mplay. This program has no SH4 code, but it is strictly designed to run on the AICA CPU. This is a simple S3M player in its alpha stage. I'm having some issues with it dropping notes and so forth, but other than that it does produce some kind of sound =). Usage instructions in the tar. Updated Aug-23-2000.
  • twiddle. Very raw skeleton code to do texture encoding/decoding for the PVR. This encodes/decodes "twiddled" form of various pixel formats. Posted Sep-13-2000.
  • 3dtest src. A small test of the PVR chip. The bin in the zip file doesn't match the C source exactly but it does the same thing. Updated Oct-4-2000.
  • vmuload 1.0. A crapola program that you can burn to a CDR and use as a boot loader from a Nexus-compatible VMU. Includes dciwrap to wrap BIN files as saved games. Posted Nov-3-2000.
  • That's all for now! Please check back here later if you want to see any developments. I'll post on my front page when I have some development news.



Cryptic Allusion Game Dev © 2002,2003,2004 Dan Potter (design and information); © 2010-2016 Lawrence Sebald (information only); please see About CA Game Dev for further trademark and copyright info. This site has nothing to do with game mods, piracy, or other illegal or potentially illegal activities. It also has no relation whatsoever to SEGA, Ltd. It is intended strictly for the use of homebrew developers.