Commodore 64 DTV Hacking!

In summer 2012, I got my hands on a C-64-in-a-joystick: the C64 DTV! Talk about being late to the party, though. The DTV was released in 2004, and by 2007 this remake of a retro computer was itself becoming retro! The DTV caused a flurry of excitement when it was released due to its size, hackability, and enhancement of the system's capabilities over a stock C64. Games were being patched to work with the DTV's face buttons, and demo groups made some stunning demos to show off the DTV's graphical power.

But by 2012, that had all dried up. DTV information sites were going offline and links became broken... just as I was searching for information on the system. Far more frustrating, however, is a situation which I'll describe below using some easy-to-understand symbolic imagery.

Software and demos written specifically for the "DTV" didn't always work on my DTV. You see, a myriad of demos and transfer software marked "DTV" were actually only for the DTV2. The DTV2 is the 2nd-generation DTV unit, released only in PAL countries. It's the one everyone loves (see below left.)

My system, on the other hand, was the original DTV, the DTV1 (right, obviously), released in North America. Despite being the original, it's treated as the bastard albino stepchild of the family.

It's not my fault. Both my home country (Canada) and Japan, where I live now, use the NTSC TV standard and can't display a PAL DTV2 unit even if I could get my hands on one.

I had asked my family way back in 2005 to find a DTV for me back home and send it to Japan, but they were apparently not up to the task. Amazingly, one popped up on Yahoo Auctions Japan in 2012 at a bargain price and I snapped it up!

The DTV1 is still a very impressive unit. It's built and shaped like most other plug-'n-play units, powered by batteries, with a long, wired A/V cable to hook directly up to your TV. It sports 20 built-in games plus one or two Epyx "-Games" split up into individual events. You can enjoy some timeless classics or, right off the bat, waggle the joystick on bootup to get to a hidden BASIC prompt full of Easter eggs.

"So, the DTV is enhanced over the C-64 and is hackable," you say? "Tell me more!" Okay. The DTV1 included 128K of RAM, DMA transfer functions, and enhanced display modes with 256 possible colours compared to the original C-64's fixed 16. All DTV motherboards included solder pads for user expansion, including joystick buttons, PS/2 keyboard and Commodore IEC (disk drive) connections. You can thus put this DTV in a case or something and turn it into almost a full-fledged C-64 computer.

Hack it? Don't mind if I do! Here I've opened up the DTV showing the rat's nest of wires that I've added to the system to get at all the expansion possibilities. You can get a good idea in the picture on the right (below) just how clearly labeled all the expansion pads are (IEC, KEYBD) for our convenience. Thank you!

To the left (below), I've fitted in a 5V power plug, a S-Video jack, and a standard Atari/C=/Sega joypad connector. To the right, you can see the PS/2 keyboard connector I added in. It's times like these when I wish I had a Dremel for clean cutting of plastic, as I made holes and slots in the casing by resorting to a soldering iron and hot knife. It was NOT pretty but oh, well, everything's in there solidly.

OK, now. Time to get things loaded on this system. With just the standard DTV, you have all the pack-in games stored on ROM as a virtual device 1, but no other way to load or save files. So the first step I took was to make a "DTVTrans" adaptor which connects a cable between my PC's parallel port and the newly-installed joystick port of my DTV.

The DTVTrans adaptor (and PC-side program) do two things: they establish a bidirectional, synchronous communications protocol between a PC and C-64 via its joystick port, and they allow the PC to control the DTV's joystick movements. And in the DTV's Easter-egg BASIC, text input is done via the joystick controlling a virtual keyboard -- meaning the PC can input BASIC programs automatically through this adaptor.

That is in fact how bootstrapping is done: the PC waggles the joystick to type in a small bootloader and then runs it. The PC is then free to send over any binary C-64 program via the DTVTrans protocol. On a DTV2, DTVTrans can load files, manage memory, and reflash the built-in flash ROM. On the DTV1, since there's no "flash", only ROM, I used this method to load games, programs, etc. A little cumbersome, but it worked better than I expected. It even came in handy later when I needed a method to transfer data to my Famicom in another programming project!

Nobody will get any use out of this, probably, but I shortened the BASIC bootloader as much as I could:
It's 283 characters compared to 442 for the one that comes in the dtvtrans+ package, meaning it will type in 1.5x faster and with hopefully fewer synch errors.

This was a happy solution for about one week, so I soon started looking for other ways to load and save files on the DTV. A nifty little unit called SD2IEC presented itself. One online retailer had a "bugged" earlier version for a very reasonable $25, so I snapped it up while supplies lasted.

SD2IEC, as the name implies, is a device that mounts an SD card as an IEC disk drive. The SD card can have navigable directories as well as mount .D64 files as virtual "disks". Truly remarkable and useful! (Turns out the bug in this version was a poorly connected trace that went to the SD's write-protect switch, preventing files from being saved or D64 files from even being read/mounted. Anyway, a single wire gingerly soldered between ground and that switch solved the bug. Phew!)

As you can probably tell from the pics above, I decided to install the SD2IEC inside of the usually unused battery compartment underneath the DTV. I measured all the fine dimensions of the SD2IEC and the edges/insides of the battery compartment and then calculated that it could be mounted at an angle like so, fitting snugly with no parts protruding except the end of the SD card -- which, naturally, needs to be graspable by human hands.

I melted/cut down the battery guides in the middle to gradually descending heights which guided the angle of the SD2IEC. The lower end of the unit has the connectors coming out from a header into the interior of the DTV below.

Everything finished, I can screw the battery cover on (below left) and the SD Card is easily removable with a swipe of a thumb or index finger. No awkward pinching or fishing for micro SDs with fingernails for this guy! I'm glad that the SD card can stay hidden under the DTV well out of harm's way.

S-Video Hack for the DTV1

One frustration with the stock DTV was the dark and poor-quality composite video that came as standard over hair-thin A/V wires.

Oh, of course DTV websites said that S-Video could be obtained from all DTV units, but none of them bothered to explain how it could be done on the DTV1. (Again, full S-Video diagrams exist for the DTV2 and Hummer DTV online...)

So with little help from the outside, I studied the DTV1 schematics for most likely tapping points for clean chroma and luma signals, and experimented with various mixing levels for the discrete signals. Bad balancing, and you either get nasty checkerboard crosstalk on the video signal, or no colour at all.

With a good balance found, I installed a small 4-pin headphone jack to carry S-Video to the outside world. (Oddly, I had from before an S-Video cable that ended in a 1/8" headphone plug. This proved so convenient for space-saving purposes, I now use it on several of my consoles hacked for S-Video.)

Finally, enjoy this comparison of DTV1 S-Video with its standard composite output!


<-- BACK to Cool Stuff | e-Mail Chris!