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.
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".
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.
Compared to todays CPU with billions of transistors, the 8080, 6502 and Z80 where dwarfs with around 5000 transistors each.
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, 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 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.
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.
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.
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.
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.
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.
Now and then you need to have some fun projects on the side. Here at Additude where devotion to technology is king, we are not any different. So the question arose. What about a new implementation of a classic arcade game? What would be possible today?
So during 2018 we will work on a side project called "Arcadia". Building a classic arcade game with a modern technology and style. Stay tuned.
That was the introduction. I plan to have a repeated blog series around this 40 year old technology. Both a logbook on the actual project and design, as well as how this old technology worked and how it evolved.
There will be articles around ...