Skip to content

mwenge/robotron

 
 

Repository files navigation

Robotron:2084 (1982) by Eugene Jarvis

This is the source code for the Williams arcade game Robotron:2084.

The source code can be assembled into 11 rom files that would have been loaded onto the arcade cabinet's ROM board. Today, these rom files can be used to play the game in an emulator such as MAME.

Build Instructions

Build Requirements

sudo apt install build-essentials wine python3

Build the assembler toolchain

We use asm6809 to assembler the source code for the main game and vasm to compile the sound module.

First you must run the following to set up the git submodules containing the assembler toolchain:

git submodule init
git submodule update

Now you can build the toolchain, as follows:

cd asm6809
./autogen.sh
./configure
make 
cd ..
cd vasm-mirror
make CPU=6800 SYNTAX=oldstyle
cd ..

Build Robotron:2084

To build the Blue Label rom files (see below for more information on what these are), do:

make bluelabel

These will get written to a directory called bluelabel.

Play Robotron:2084

Once you've built robotron you can now use the rom files in the `bluelabel' directory to play robotron on MAME. If you're on Ubuntu you can also install MAME with apt:

sudo apt install mame

About the source code

The game source code for Robotron:2084 in src was originally retrieved from https://github.com/historicalsource/robotron. It is the Motorola 6809 assembly language source code for the 'Blue Label' version of the game.

The source code for the sound module was retrieved from https://github.com/historicalsource/williams-soundroms.

Changes Required

You can review the changes required to get Robotron to assemble with asm6809 in this commit. To avoid more substantial changes I forked asm6809 to allow a lot of equivalent instructions from the older 6800 instruction set along with a few other things that the assembler used by Eugene Jarvis and his team allowed.

The Blue Label ROMs

When you run make bluelabel you create the following files in the bluelabel directory:

-rw-rw-r--  1 robert robert 4096 Jul 27 21:00 robotron.sb1
-rw-rw-r--  1 robert robert 4096 Jul 27 21:00 robotron.sb2
-rw-rw-r--  1 robert robert 4096 Jul 27 21:00 robotron.sb3
-rw-rw-r--  1 robert robert 4096 Jul 27 21:00 robotron.sb4
-rw-rw-r--  1 robert robert 4096 Jul 27 21:00 robotron.sb5
-rw-rw-r--  1 robert robert 4096 Jul 27 21:00 robotron.sb6
-rw-rw-r--  1 robert robert 4096 Jul 27 21:00 robotron.sb7
-rw-rw-r--  1 robert robert 4096 Jul 27 21:00 robotron.sb8
-rw-rw-r--  1 robert robert 4096 Jul 27 21:00 robotron.sb9
-rw-rw-r--  1 robert robert 4096 Jul 27 21:00 robotron.sba
-rw-rw-r--  1 robert robert 4096 Jul 27 21:00 robotron.sbb
-rw-rw-r--  1 robert robert 4096 Jul 27 21:00 robotron.sbc

Each of these is a 4K file that was burned to ROM chips in the arcade game's ROM board. This copy of the 1982 owner's manual contains a manifest of these ROM chips:

This picture of an actual Roboton ROM board shows you where each ROM chip lives. You can see why this version was known as 'blue label': the labels on each chip are light blue. Each label tells you which ROM file the chip contained:

robotron.sb1 was loaded to the the chip labelled '2084 ROM 1-B' in the bottom left hand corner, and then so on up to '2084 ROM 12-B' in the top left hand corner which contained robotron.sbc.

Releases

No releases published

Packages

No packages published

Languages

  • Assembly 99.0%
  • Other 1.0%