Hardware Differences Between Williams Games
The older Williams games (Defender, Stargate, Robotron, Joust, Bubbles
and Sinistar) have very similar hardware inside.
Here is an overview of the hardware differences between these games:
Defender:
- This is the oldest of these games and although it is very similar to
the others, there are many significant differences. Most of the hardware
addresses (such as PIA
and watchdog) are at different locations.
Also, many of the ROM images were bank-switched into the same memory locations.
- The ROM board does not have the special chips that are required to run Robotron,
Joust, Bubbles and Sinistar.
Stargate:
- This board set is very similar to the later ones with only a few differences.
The CPU board needs a slight modification
in order to be compatible with the later ones. It also includes a small
PCB that was used to allow a different
type of SRAM to be used.
- Also, the ROM board does not have
the special chips required to run the
later games.
Robotron and Joust
- These board sets are almost identical. If you want to make a multi-game,
you should start with one of these or (better yet) Bubbles.
Splat
- This board set is very similar to Joust and Robotron, except that the
ROM board uses Special
Chip 2s instead of SC1s.
Bubbles
- This board set is nearly the same as Robotron/Joust. The major difference
is the extra SRAM included on the CPU board, making the battery-backed memory 8
bits wide instead of 4. This is easy to hack onto an older board, and is
ignored by the other games.
Sinistar
- This board set has many slight differences from the others.
- The ROM board includes a blitter clipper circuit that stops the special chips from accessing the top part of
the screen, and two SRAMs have been added in place of ROM
$Dxxx.
- The interface board is substantially
different from the other games.
- There is a second sound board wired
in parallel with the normal one, used in the cockpit game for stereo effects.
There is also a speech board wired to one of the sound boards.
So what does Sinistar use the SRAM at $Dxxx for? It's easy to use MAME to find out. Compile the
source with the DEBUG option, and you can open a window to view memory and even set watchpoints to
see when different memory locations are accessed or changed. The first half (approximately) holds
the large and small fonts, uncompressed from the ROM. The second half holds
the Sinistar itself. As parts are added or you shoot parts off, the image in the SRAM is changed,
then blitted to the screen.