Last update: 2004-Oct-27


Fixed bugs relating to FPU and symbol table.
Fixed crappy code-style and minor bugs.

The latest version of my Dreamcast disassembler. Added limited symbol table support and decoding of Dreamcast specific instructions.


Pre-compiled windows version of dcdis-0.3a. (beware)


Dreamcast memory layout.


(De)scrambler for Dreamcast executables on normal CDs.


2004-Oct-27: Corrected some minor stuff on registers a05f8068, 806c, 80d0 thanks to Pierre-Marc Jobin.
2004-May-10: Corrected and added some information. Some register names have changed.
2003-Oct-03: Corrected and added information about the YUV converter.
2001-Aug-18: Added and corrected some stuff. Some of this comes from Mikael Kalm's documentation
2001-Feb-09: Added some small bits concerning fog and corrected a few minor mistakes.
2001-Jan-31: New version of my PowerVR-documentation.

Thanks to Marcus Comstedt and bITmASTER for their documentations, on which I based this.

The nomenclature of the TA registers has changed slightly compared to my 'ta-reg.txt' file, but it should be easy to correlate the two.


2001-Aug-18: filled in stuff on sprites and modifier volumes
2001-Aug-05: filled in stuff on blending modes + corrected and clarified some stuff

Introductory text on how to write display lists for sending to the Tile Accelerator.


2001-Aug-08: corrected information regarding segment order

Document describing the hardware registers relating to the Tile Accelerator. there are still a few issues with this so take it with a grain of salt.


Document describing the AICA hardware (rough, working notes)


This program will force games to run at 50 Hz which is useful for old television-sets that can't handle 60 Hz without going bezerk (like my parents'). It has only been tested with a couple of games so no guarantees =)

2004-Mar-04: Added compiled versions of palenforcer and a corresponding ntscenforcer. I don't have a dreamcast to test them on so they might not work.

palenforcer binary
ntscenforcer binary


This is an XM-module player (or rather the beginning of one). I had really hoped to make it a bit more usable before release, but seeing as I haven't really touched the code in over two months, I seriously doubt that will ever here it is, warts and all :)


This is reversed C code of the IP.BIN code that shows the logo. It is not 100% complete but most of the functionality should be apparent. There are a few bugs in Sega's code but unfortunately it still seems impossible to get rid of the "PRODUCED BY..." text. This piece of code was ripped from my reverse of the bootROM code. I've been toying with the idea of releasing the whole of it, but I'm not sure the Powers That Be would approve...

bootROM.c bootROM.h security_stuff.c

This is reversed C code of the Dreamcast bootROM. It is ugly, incomplete, and confused. It is only used for illustrative purposes. It should be clear where the security hole of allowing regular CDs to boot is, and how to exploit it. security_stuff.c is very old reverse of security functions to check the integrity of the CD media, including the scramble function used to descramble the executable file read from a CD (not GD!)