Game Screen Dumps

The Williams hardware has a display resolution of 304 x 256, with 4 bits per pixel. The screen buffer is from $0000 to $97FF, coexisting with much of the ROM. Writes to these memory locations always go to RAM, and reads are controlled by the signal ROM_ENABLE, which is changed by writes to $C900, data bit 0. D0=1 means reads come from ROM, 0 means RAM.

In landscape orientation (Joust and Robotron, not Sinistar), pixel 0,0 is in the upper left corner, 0,255 is in the lower left, and 303,255 is in the lower right. Memory location $0000 is in the upper left, and increments down that column to $00FF in the lower left. So the y-coordinate of a pixel is equal to its memory address ANDed with $00FF.

The x-coordinate is a little tougher, since there are 2 pixels in each byte. So the x-coordinate of a pixel is equal to its memory address ANDed with $FF00 and shifted right 7 times, plus 1 if it is the low nibble.

Working the other way, the address of a pixel is y+int(x/2)*256; if x is even, the pixel is in the high nibble, otherwise it is in the low nibble.

Remember, these screen shots were created before MAME; I added an 8-bit port to my Joust machine and wrote software to transfer memory to a computer, then converted the raw data into GIFs.

Lotto Fun

Lotto Fun Title Screen

Lotto Fun Choose 3 Screen


Splat new game

Splat Enemies

Splat Default High Scores

Splat Intro Screen

Splat Reset Screen

Splat Game Adjustments Screen

Splat Bookkeeping Screen

The garbage beast

Swapped heads!


Sinistar new game

Sinistar Enemies

Sinistar Default High Scores - one of many

Sinistar Intro Screen

Sinistar Reset Screen

Sinistar Game Adjustments Screen

Sinistar Bookkeeping Screen


Bubbles Intro Screen

Bubbles Enemies

Bubbles new game

Bubbles Default High Scores

Bubbles Reset Screen

Bubbles Game Adjustments Screen

Bubbles Bookkeeping Screen


Joust Intro Screen

Joust Enemies

Joust new game

Joust Default High Scores

Joust Reset Screen

Joust Game Adjustments Screen

Joust Bookkeeping Screen

Assortment of Joust sprites

my new sprite extracter


Robotron Intro Screen

Robotron Enemies

Robotron new game

Robotron Default High Scores

Robotron Reset Screen

Robotron Game Adjustments Screen

Robotron Bookkeeping Screen


Defender Intro Screen

Defender Enemies

Defender new game

Defender Default High Scores

Defender Reset Screen

Defender Game Adjustments Screen

Defender Rug RAM Test #1

Defender Rug RAM Test #2


Stargate Intro Screen

Stargate Secrets Screen

Stargate Enemies

Stargate new game

Stargate Default High Scores

Stargate Reset Screen

Stargate Game Adjustments Screen #1

Stargate Game Adjustments Screen #2

Stargate Bookkeeping Screen



First Screen of 'rug' RAM Test

Second Screen of 'rug' RAM Test

Color Bars Diagnostics Screen

Crosshatch Diagnostics Screen

My Joust machine has been modified to play 7 different games: Joust, Defender, Stargate, Robotron, Bubbles, Sinistar and Splat. The games all reside on a 512K byte EPROM. This multigame EPROM, along with a 32K byte multisound EPROM and a 8K SRAM, is switched from game to game by a program in the first bank of the EPROM. An LED readout shows the number of the current game. All of the controls needed for these games are mounted on a home-made control panel. The correct controls are enabled for the selected game by several electronic switch ICs.

Some pics of my Joust/Robotron/Defender/Stargate/Bubbles/Sinistar/Splat Multi-Game

My Joust Machine pre-modification (same as above, but bigger)(164K)

Multi-Game Control Panel Side(15K)

Multi-Game Control Panel Front(12K)

Multi-Game Control Panel closeup(76K)

Multi-Game Control Panel Back(100K)

Here's a screen shot from my ROM Switcher. If you hit player 2 start now, Joust would run. Hit reset to return here, and hit player 1 start to go to the next game (with graphics from that game and a sound).

Multi-Game ROM Switcher Screen(3K)

Home made Sinistar speech board(92K)

Modified Joust PC Boards(131K)

Modified Joust ROM Board(112K)

Modified Joust Sound Board(83K)

Modified Joust CPU Board(125K)

Replacement Joust Power Supply(75K)


A pic of the old Robotron ROM version calling Quarks 'Cubeoids'

The older Robotron ROM version has a mistake in the game-over demo. When the scores for the Sphereoids and Quarks are shown, the Quarks are called Cubeoids. This is patched out in the later revision.

Typo in Robotron yel/ora ROMs (2.4K)


These are .WAV files sampled at 10K/sec.

Sinistar AARGH!(28K)

Sinistar Beware Coward!(19K)

Sinistar Beware I Live!(21K)

Sinistar I Am Sinistar!(23K)

Sinistar I Hunger!(10K)

Sinistar I Hunger coward!(22K)

Sinistar Run Coward!(16K)

Sinistar Run Run Run(19K)

Bubbles start music(30K)

Bubbles game over music(19K)

Defender start sound(33K)

Defender free man sound(55K)

Defender lander picking up man sound(10K)

Defender ship materialize sound(13K)

Defender Swarmer sound(8K)

Joust start sound(20K)

Joust free man sound(14K)

Joust egg sound(4K)

Joust flap sound(4K)

Joust lava sound(8K)

Joust pterodactyl cry sound(9K)

Joust skid sound(11K)

Joust thunk sound(3K)

back to Williams Info page

back to Arcade Game Info page

back to Home page