Spaceman Spiff's DTV Hacking

C64 DTV

For those who haven't yet seen it, the C64 DTV is a remarkable little piece of equipment, comprised of all the bits and pieces that made up the C64, all implemented in an ASIC, and stuck inside a replica of a classic C64 joystick along with 2MB of flash holding 30 games. While I though that chip design was bound to the Y-chromosome, Jeri Ellsworth has proved me wrong, and this chick really knows her stuff. Wikipedia has a good description of the C64 DTV.

Seeing the C64 DTVs in Danish shops, and one web-shop (gadgets.dk) in particular even mentioned that various hardware hacks existed for the DTV. After some googling, I had found a range of resources concerning the modifications to the C64 DTV, and so I decided that I would buy one and get on with my own hacking.

After finding some descriptions of how to hack the PAL-version of the DTV, I started disassembling my DTV and connecting a PS/2 keyboard and a 1541 floppy drive.

When these modifications were done and I realized that the joystick of the DTV was fairly poor, I decided that I would build the whole thing into a separate box, with the ability to connect keyboard, floppy drive and two joysticks. And of course a power supply and the composite video TV connection (+ audio). I found a decent enclosure and managed to cram everything into it.

The keyboard and IEC connectors on my modded DTV:

Spiff's modded C64 DTV

I had discovered Daniel Kahlin's PAL Color fix page, which describes a problem of the design of the video DAC in the C64 DTV (at least the PAL-version). This results in poor colors, which is most easily seen with combinations of white and cyan (as used in both Impossible Mission and Winter Games). I decided to try the color fix described by Daniel, and it did indeed give much better colors on my DTV. But unfortunately the modifications also made the image a bit darker, as verified by looking at the signal with an oscilloscope. Discussing the issues with a friend (Lars), we decided to try and make a simpler modification to a DTV, and hopefully get even better results. This is described on my DTV colorfix page.

We also spent some time trying out all the easter eggs described on various pages, and with a keyboard connected, we were also able to reverse engineer the software on the DTV, to the point of knowing how the DTV boots up, loads the menu etc. After finding Daniel Kahlin's description of the flash, we have plans of making our own version of the C64 DTV with the games we like the most. I figure this will be a great gift to many of my friends that also grew up with a Commodore C64, and I totally dig the geekiness in creating a customized version. Hopefully I will find an easy way of updating the flash, with out too many connections required on the DTV.

Finally, an image of the complete setup (less my 14" TV for the display). Keyboard, two joysticks and an original 1541 floppy disk drive is connected to the DTV, and allows an incredible amount of old games to be played. Working on the issues of the flash memory, it will be cool to find games to run on the modified DTV, and perhaps even reverse-engineer and patch a few games to work (joystick only, even for starting the games, patching to use device 0 for multi-part games etc).

Spiff's (almost) complete C64 DTV setup

As for the IEC-bus, Lars has made a contraption he calls the MMC2IEC device, consisting mainly of an Atmel microcontroller and an SD-card slot. It emulates the basic functions of an IEC disk drive, reading data from an SD-card. Supports kernel LOAD and SAVE, and can even read D64 and T64 images. The device runs off the 3.3V from the DTV, since the SD-cards also need 3.3V. In order for this to work with a real C64 some level conversion should be done. I hacked together a prototype hardware version consisting of the SD card socket and an ATmega32 on my STK500 developer board. Just remember to set the STK for 3.3V, or the SD card will be fried :-P

Last updated: 2008.11.30