Here are gzipped RAM dumps from games. There are 2 files for each game: one dump on the bookkeeping screen after resetting all game defaults, the other just after starting a 1 player game.

Each dump contains the contents of RAM from $0000-BFFF, then zero padding from $C000-CBFF (I wish I could read the color palettes at $C000-C015!), then SRAM settings from CC00-CFFF. The files continue to $DFFF, but only Sinistar has RAM there. Interestingly, the Sinistar fonts are decompressed there from ROM.

Here's some info to decode the screen images in these dumps:

the screens are from $0000-97FF; $0000 is the upper left corner of the screen (lower left of Sinistar). There are 304 columns of 256 pixels. Since each pixel requires 4 bits, that's 152 * 256 bytes (=$9800 bytes total). 2 columns and 1 row are unused, leaving a screen size of 302x255.

To display the pictures correctly, you need a color palette. Unfortunately, the color register RAM cannot be read by the CPU. Luckily, with a little searching, palettes can be found in the ROM images and the RAM dumps. Each game has a default 'reset' palette that gets loaded very soon after a reset. These are all the same except for Defender, which creates a palette. (The Defender 'rug' memory test patterns are the same as the other games except for the palette.) Here are the palette locations:

Game     RAM location  ROM location
Splat    $9800         $DD2F
Defender $A026         $F8BE
Stargate $9C26         $1FD2
Robotron $9800         $DA51/$F60B
Joust    $A00F         $E5FA
Bubbles  $99F1         $0D7F
Sinistar $981E         $50CB

NOTE: due to a logic error, the CMOS values at $CC00-$CFFF are not correct. The bookkeeping files have the correct default CMOS values except for Sinistar and Robotron.

Splat Bookkeeping RAM Dump

Splat Game RAM Dump

Bubbles Bookkeeping RAM Dump

Bubbles Game RAM Dump

Sinistar Bookkeeping RAM Dump

Sinistar Game RAM Dump

Defender Bookkeeping/Game Adjustment RAM Dump

Defender Game RAM Dump

Stargate Bookkeeping RAM Dump

Stargate Game RAM Dump

Robotron Bookkeeping RAM Dump

Robotron Game RAM Dump

Joust Bookkeeping RAM Dump

Joust Game RAM Dump


Williams-related software

ROM Checksum Calculator for Williams games (2/7/95)

Pic of my Williams graphics dumper

my all-new Wms Gfx Ripper

Patcher for Joust, Robotron and Defender Patches

Patcher that uses the output of the DOS fc/b command as a patchfile

Patch to allow more than 5 high scores on Robotron

Original patch to use SC1s on Splat instead of SC2s (1995)

Optimized patch to use SC1s on Splat instead of SC2s (2015)

Bug-fixed Robotron patches for combined Blue ROM image

Bug-fixed Robotron patches for single Blue ROM image SB5

Bug-fixed Robotron patches for single Blue ROM image SBB

Patchfile to play 'pterodactyl-bug' version of Joust on WAC

Joiner for ROM images I used this on my Amiga. On the PC, just use the DOS command 'copy/b src1+src2+src3+src4 dest'

Splitter for ROM images

Uncompresser for Williams Arcade Classics ROM images

Better uncompressor by Jonathan Wolf (does Defender!)

Patches needed to run WAC games on a real Williams machine:

Bubbles and Sinistar: no changes required
Defender: Offset $B0DE: 11 53 to AF B4, Offset $E7C5: 11 13 to 27 FC
Defender II: Offset $13: 11 12 to 27 FC
Robotron: Offset $D19F: 11 0E to 25 FA
Joust: Offset $E0F2: 11 11 to 26 FC, Offset $E451: 10 B4 to 9E 25, Offset $E520: 95 to 96

 

6809 disassembler and data files for Williams games

 

Scott Tunstall's Robotron disassembly 3/25/2017 - please send questions/suggestions to scott.tunstall@ntlworld.com

6809dasm.c 6809 disassembler v1.6 (12/27/95)

Hints for using 6809dasm

Lotto Fun data file

Splat data file

Defender data file

Stargate data file (11/29/95)

Robotron blue data file (1/19/96)

Robotron orange/yellow ROM data file (10/7/95)

Joust green ROM data file (1/23/96)

Bubbles data file (11/29/95)

Sinistar data file (2/12/96)

Generic data file (10/7/95)

My old RAM DUMP/ROM Switcher code (2/11/96)

My old RAM DUMP/ROM Switcher data file (2/11/96)

This code is my software ROM switcher code. It lets me select a game to play by hitting the 1 player start. Then I start the game by hitting 2 player start. If the auto-up/manual-down button is down, my code jumps to the RAM dump code, that dumps all memory from $0000-BFFF, $CC00-CFFF and $D000-DFFF. If that button is down and advance is also down, the CMOS load code is run. This reloads the CMOS RAM. If these 2 buttons and h/s reset is down, the CMOS trash code is run, which writes garbage to the CMOS RAM to make the game reset everything to defaults.

 

6800 disassembler and data files for Williams games

 

The Williams sound boards use the Motorola 6800 CPU. Here is a disassembler for that processor, based off 6809dasm.

6800dasm.c 6800 disassembler v1.0 (1/1/05)

Sinistar sound board data file


back to Williams Info page

back to Arcade Game Info page

back to Home page