Retro reversing logo

Arcade

Edit on Github | Updated: 19th December 2024

Development of Arcade Games

What programming languages were used to create Arcade games?

Since every Arcade board is different it can depend on the power of the system, some less powerful boards used pure assembly to write the game code and others used a higher level language such as C. For example Klax was written in C according to Greg Omi who was sent the source code for his Atari Lynx port of the game 1.

Game Development at Taito

Taito put together a 250-page Hardware Manual for new developers who joined the team to learn how to create an Arcade game from scratch using RAM/ROM/CPU chips and a standard TV. This was before the internet and even before there were many books on the topic when the industry was very new and companies didn’t want to share their “trade secrets”.

They used an In-Circuit Emulator to debug the programs they were creating as can be seen in this diagram: Alt text


Defender (1981 by Williams Electronics)

The source code for the classic arcade game from 1981 Defender has been released on Github: mwenge/defender: Defender(1981) by Eugene Jarvis and Sam Dicker

It is written in a variant of the Assembly language specifically for the Motorola 6809 CPU 2.

The physical board had 11 ROM chips on it that would need to be flashed with the assembled result of that source code 2.

Defender was developed by Eugene Jarvis and Larry DeMar two programmers who utilized algorithms to great effect rather than relying on artists, one such example is the classic explosion particle effect. Defender became one of the highest grossing arcade games in history 3.

The first issue of the Magazine Wireframe contains a python (pygame) code snippet to re-create the classic particle explosion from Defender 3. You can find that code on github too: https://github.com/Wireframe-Magazine/Wireframe-1/blob/master/explosion.py

RoboTron (1981)

At GDC 2014 Eugene Jarvis gives an excellent presentation about the development of Robotron:

They used the Gimix 6809 as their development system: image

As for the software side, they had to write their own text editor and assembler, they didn’t comment or use tabs as every byte that was used in memory was precious: image

In Retro Gamer 28 there is an excellent article from Archer Maclean where he went to a presentation by Eugene Jarvis and this is what he had to say 4:

He went on to describe that his code spilled over into multiple files on more than one floppy, and yet there were no multi-floppy code-linkers so he devised the exact same bizarre jump vector solution I had devised to allow non-linked blocks of code to communicate. Then he described how he had to write ‘utilities’ to edit tiny bitmaps drawn on graph paper and entered as hex, and how to get around the one hour compile times by editing memory directly and disassembling in your head, and how to make interesting sounds from 30 bytes of data, and how to write ultra-tight optimised machine code to move small bitmaps around a screen fast, and off course, cram it all into a 32k ROM.


MAME

Even as far back as June 2000 MAME was being advertised in Japanese magazines (Arcadia Issue 1): AracadiaIssue1MAME


References

  1. Retro Gamer Issue 97 page 57 

  2. mwenge/defender: Defender(1981) by Eugene Jarvis and Sam Dicker  2

  3. Wireframe Issue 01 page 33  2

  4. Retro Gamer Issue 28 

Want More?

Follow us on Twitter & Bluesky!