Messing with Williams Hardware & CPLDs

The results so far.... in reverse order.... 

ROM board

First out the gate is the ROM board...

Which currently supports Joust, Stargate, Robotron,  Bubbles, Splat ( yes with the SC2's ), Stargate and Sinistar with extra 4k of RAM. There's a socket for extra SRAM hiding under the NVRAM.

Defender will work but requires a ROM patch, which Sean Riddle already went to the trouble of documenting Sean Riddle's Home Page

The Complex Programmable Logic Device ( CPLD )  integrates all the TTL logic from the original board along with the 6821 PIA and the two Special Chips. Plus with Sinistar the Special Chip 'window' feature.

For this design the CPLD is a Xilinx XC95288XL, which ends up at almost 90% utilized because of the requirement to support the special chips. The design for the Special chips came from a SC1 prototype I did a couple of years ago as a proof of concept... picture of a scarily wired proto board.

TQFP parts are really quite challenging to solder although the board etching with 10 mil features came out really well.

The NVRAM from the CPU board is replaced with an FRAM non-volatile memory placed on the ROM board, so no more batteries EVER ! It has also proved to be pretty hard to accidentally erase. Finally it uses a full 8 bits of memory for supporting Bubbles.

ROM board in place

The ROM board under test.  It's been through over 2 dozen different CPU boards and an expert Robotron player without problems.

For the eagle eyed.. yes the CPU board in the picture has had the 4164 modification made to it..

Click for the big picture click for the big picture

'0' on the display - the CPU is happy with life

Battery free CPU board


Video/CPU Board

Now the idea with this was to keep the board 'authentic' with an original CPU .  So that's why it's using a real 6809 rather than FPGA with a compiled 6809 core. Plus.. it's more fun with this old hardware. Not that FPGA's aren't fun.

With the video/cpu a lot can be  fitted into a 108 macrocell Xilinx CPLD, except the 128 bits of color RAM. Unless I moved to an 288 cell device, which may yet happen.

All the video and system RAM fits onto one chip, so no bank of 24 x 4116's anymore. The whole thing runs from 5v only.

A few changes were made to the way the original video board generated a picture. Nothing serious that effects game play (!) 

  •  There's now vertical blanking, ie. video is turned OFF during vertical sync. 
  • Video blanking is turned on when the CPU writes to the color RAM, to stop funky color effects.
  • The right edge of the screen is horizontally blanked earlier to remove the funky pixels you see when the CPU is using video memory for scratchpad RAM.
  • The NVRAM is 8 bits wide, for supporting Bubbles !

CPU/Video with ROM board

CPU board running with a Joust ROM board, what's just off picture is a small pile of Stargat and Robotron ROM boards. 

Also plugged into the ROM board replacement.

The 'fancy' attract mode of Robotron is a really good workout for the Special Chips,  if your replacement isn't working correctly all hell breaks lose on that screen.



Defender Video & ROM board

This was the board that started me obsessing about the WMS hardware.

The first board I built was the ROM board for Defender, with the goal of making it fully compatible with the regular defender CPU board.  That led onto making a design for the  CPU/Video board and onto the later games...

This nice thing with Defender CPU/Video was it was straightforward enough to fit into a 108 cell CPLD in a PLCC package. Although I did manage to run out of I/Os in that package.

The Defender ROM board will all fit into a XC9572 device but it is a 95108 in the picture.


Defender ROM board

Defender CPU board


More later......