In 1978 Taito released Space Invaders. By today's standard it is of course very simplistic, but in 1978 it was a instant hit. By the end of 1978, Taito had installed over 100,000 machines and grossed over $600 million in Japan alone. Between 1978 and 1982 a total of $2 billion in quarters where collected. The total number of machines installed was 300 000, plus an additional 60 000 machines under the Midway brand in US.
The original designer was Tomohiro Nishikado and the game itself took 3 months to develop, but the tools to program and develop took more than double that time.
It was one of the forerunners of modern video gaming and helped expand the video game industry from a novelty to a global industry (see Golden age of arcade video games).
Let us have a small walk down memory lane around these early video game machines.
Prior Space Invaders
Before Space Invaders there was PONG.
PONG is one of the most famous arcade games, probably since it was among the first. During this time the games had straight blocky graphics. Everything was done with discrete logic like counters, registers and gates. A fair amount of 555 as timers and clocks was thrown in as well.
Below is a photo of a original Pong PCB. Everything is placed in neat rows and columns. The left side contains power, and video/audio analog circuits.

Every game was really hard-coded at what it could do. Want another game ... solder another board.
At the time there was a large number of electronic magazines. And all of them featured a electronic game to make yourself. Here is one from the magazine "Radio Electronics 1976".

CPUs at the time
To create more challenging and complex games a more generic solution was needed. The CPU was added around the 80's. Typically the arcade games around this time made use of either 8080 made by Intel, 6502 which was a very cheap variant of Motorolas 6501 made by MOS Technologies, or Z80 made by Zilog. The Z80 was code compatible with 8080. Both 6502 and Z80 are still available, on the market as standalone chips, or for inclusion in FPGA as softcores.
- 8080; A microprocessor made by Intel and released 1974. Made in NMOS and required +12V and -5V rails in addition to the +5V TTL rail. It had the capability of addressing 64kB of memory which was a 4-fold increase against the predecessor 8008.
Wikipedia article about 8080 is available here. - 6502; Also 16 bit adress-bus for 64kB memory, but the 6502 had 2 major advantages towards the other processors. Price. It cost only 1/6 of the competitors from Motorola and Intel. It also only needed a 5V rail making the design much simpler. You could also argue that it was the first RISC CPU, developed before the term itself was even considered.
A recreation of the 6502 using discrete transistors is available at MOnSter6502. A fairly cool project made by an obvious fan.
Wikipedia article about 6502 is here. - Z80; The Z80 was conceived by Federico Faggin in late 1974 and developed by him and his then 11 employees at Zilog. It was released in 1976. This also managed 8bit databus and 16bit address bus for 64kB memory. Single 5V rail and in contrast to 6502 a more complex instruction set with block copy instructions. Higher clock speed than 6502, but needed more clock cycles for each instruction.
Wikipedia about Z80 with more information is available here.
Compared to todays CPU with billions of transistors, the 8080, 6502 and Z80 where dwarfs with around 5000 transistors each.
Canyon Bomber
Canyon Bomber was designed by Atari and one of the earlier games using a generic CPU. It was released in 1977. It was based around the 6502 and had a rather sophisticated, although black and white, video. Well actually it had 3 colors. Black, white and grey, as can be seen below.

The game was for 2 players and the objective was to drop bombs from a Zeppelin and you scored points for each "ball" in the canyon that you hit. Different "balls" had different scores.
We will examine the hardware in details later in the series, but it had a tile based play field (the background, balls and alphanumeric text) and an overlay with 2 hardware sprites for each player (Zeppelin and bomb). Positioned by software and rendered directly in hardware.
Space Invaders
Space invaders, which was introduced in 1978 was instead based on the 8080 CPU. Between 1978 and 1982 a total of $2 billion in quarters has been collected throughout the world. The total number of machines installed was 300 000, plus an additional 60 000 machines under the Midway brand in US.
A fair amount of variants where designed. The original Japanese was a sit down cocktail-table version and had black and white monitor. Later versions added colored cellophane overlays to achieve an illusion of color.
The picture below is from the Midway western version. This had green cellophane for the player and bases. The picture was actually reflected with a two way mirror against a moon backdrop. In the foreground was another marque painting giving a 3D illusion.
All sound effects (missiles, shots, explosions) was generated using analog electronics. The saucer "boss" used a IC for sound from Texas Instrument called SN76477. For the die hard enthusiast, here is a link to a very detailed strip down of the circuit including a walk through of the actual die.
Since the aliens was many it was not possible to use hardware sprites. Instead a video frame buffer was used. 1 pixel in depth for black and white. Color was achieved, as mentioned, with cellophane overlay on the monitor. Space Invaders II released a couple of years later had real freakin RGB color.
The frame buffer was byte oriented and the sprite data for the aliens, bombs and missiles was also byte oriented. To draw the sprites into the frame buffer with single pixel accuracy bit shifting was used. However, this take a long time and many cycles. The designers built in extra hardware to support this. That hardware took up a rather large number of circuits.
The movement of the aliens is timed to the vertical refresh of the screen. That is what makes the aliens move sideways one by one. This is triggered by an raster interrupt near the bottom of the screen to avoid flickering. The speed increase as you shoot down aliens is actually a by-product of this scheme (since there are fewer to move, the will move more often). Mr. Nishikado thought on how to change this, but found that the speed increase actually improved the game play.
Galaga
Galaga was developed and published by Namco Japan and by Midway in North America in 1981. Galaga is one of the most commercially and critically successful games from the golden age of arcade video games. The arcade version of it has been ported to many consoles, and it has had several sequels. It was also one of my favorites. I have during my youth spent ALOT of Swedish kronor in these machines.

CPU
With Galaga we step up the game considerably. Galaga used not one Z80, it used 3 Z80 for different aspects of the game. They all shared RAM and other I/O resources. CPU 1 controlled the actual game play and also the slave processors CPU 2 and 3. After initial internal testing CPU 2/3 enters a infinite loop and responds to interrupts and commands form CPU 1.
- CPU 1 - Main game logic and control of the other two. CPU 1 controlled the other 2 by interrupts and sending various commands to them. Code size was 16k.
- CPU 2 - Graphics and enemy movement. CPU 2 is responsible for moving enemies, moving the player's shots and ship, moving the background and doing collision detection. Code size here was only 4k.
- CPU 3 - Sound. CPU 3 handles everything around the sound. Code size here was only 4k.
Galaga also made use of many custom chips. They where often quite simple circuits as buffers, controllers and probably the idea was as much to confuse and make bootlegged PCB harder to make, as well as cluster many logic functions in one package.
Graphics
Galaga had 3 different layers of graphics.
First it had a star field in the background. This was implemented entirely in hardware and fully autonomous. It was implemented as a linear feedback shift register.
On top of that was a matrix of 28 x 36 square tiles (224 x 288 pixels) drawn. From video memory was an index read and the actual bit mapped tile data was fetched and drawn from memory.
Finally Galaga had 64 hardware sprites. Size and position was read from video memory and indexed into another set of ROM that contained the actual bit mapped tile data.
Sound
CPU 3 had 2 custom chips and analog circuits to generate sound.
First a 3 voice chip that read samples from a PROM. Secondly a noise generator for explosions.
PCB
The boards at this time where massive. Galaga was made up with two of these boards stacked on top of each other. One CPU board and one video board.
