Secrets of 'Space Invaders' -- and One Very Tiny Homegrown Cabinet (ieee.org) 34
IEEE Spectrum has republished an article from nearly 40 years ago remembering one of the long-forgotten secrets of the classic video game Space Invaders.
It's about that iconic descending musical notes accompanying the onslaught of the aliens... The more aliens a player shot, the faster they approached; their drumbeat quickened, the tension mounted. Ironically, says Bill Adams, director of game development for Midway Manufacturing Co., of Chicago, Ill., which licensed Space Invaders for sale in the United States, these features of the game were accidental. "The speeding up of the space invaders was just a function of the way the machine worked," he explained. "The hardware had a limitation — it could only move 24 objects efficiently. Once some of the invaders got shot, the hardware did not have as many objects to move, and the remaining invaders sped up. And the designer happened to put out a sound whenever the invaders moved, so when they sped up, so did the tone."
Accident or not, the game worked. As of mid-1981, according to Steve Bloom, author of the book Video Invaders, more than 4 billion quarters had been dropped into Space Invaders games around the world — "which roughly adds up to one game per earthling."
But Space Invaders also enjoyed at least one special home-grown revival earlier this month. One hobbyist used an Arduino Pro Micro board to build their own Space Invaders arcade cabinet that's just 3.15 inches tall (80 millimeters).
Made from thin hand cut plywood with pinhead joysticks, "Its Microchip ATmega328 microcontroller contains a processor running at 16MHz," reports the projects site Hackster.io, "which is far faster than the processor in the original Space Invaders arcade cabinet."
It's about that iconic descending musical notes accompanying the onslaught of the aliens... The more aliens a player shot, the faster they approached; their drumbeat quickened, the tension mounted. Ironically, says Bill Adams, director of game development for Midway Manufacturing Co., of Chicago, Ill., which licensed Space Invaders for sale in the United States, these features of the game were accidental. "The speeding up of the space invaders was just a function of the way the machine worked," he explained. "The hardware had a limitation — it could only move 24 objects efficiently. Once some of the invaders got shot, the hardware did not have as many objects to move, and the remaining invaders sped up. And the designer happened to put out a sound whenever the invaders moved, so when they sped up, so did the tone."
Accident or not, the game worked. As of mid-1981, according to Steve Bloom, author of the book Video Invaders, more than 4 billion quarters had been dropped into Space Invaders games around the world — "which roughly adds up to one game per earthling."
But Space Invaders also enjoyed at least one special home-grown revival earlier this month. One hobbyist used an Arduino Pro Micro board to build their own Space Invaders arcade cabinet that's just 3.15 inches tall (80 millimeters).
Made from thin hand cut plywood with pinhead joysticks, "Its Microchip ATmega328 microcontroller contains a processor running at 16MHz," reports the projects site Hackster.io, "which is far faster than the processor in the original Space Invaders arcade cabinet."
there is an slot bonus round like space invaders (Score:1, Offtopic)
https://www.youtube.com/watch?... [youtube.com]
Youtube views? (Score:2)
Very cool! I'm now interested in seeing just how many views the youtube video gets now it has been posted here. /. (~24hrs) ?
As I type this in it is sitting at 1,057
Anyone want to take a guess where it will be by the time this post moves off the first page on
Not offering prizes for the winner!
Re: (Score:3)
Anyone want to take a guess where it will be by the time this post moves off the first page on /. (~24hrs)?
More importantly, anyone want to guess the view count when this story gets posted here again?
Re: (Score:2)
Within 5K.
Re: Youtube views? (Score:2)
Re: (Score:2)
Almost 24 hours and this article has dropped off the front page with the youtube video now sitting at 3,947 views. /.
So 2,890 views in 24hours from getting featured on
Space invader monochrome colour monitor (Score:5, Informative)
The colours were fixed bits of plastic over different areas of the monitor -- the invaders changed colours as they moved underneath them.
Clever.
Re:Space invader monochrome colour monitor (Score:4, Informative)
ok... (Score:1, Flamebait)
If one is slightly interested in how these old games work you already knew this, if one is slightly interested in micro-controllers you know the basic idea of putting a fairly simple game on a micro with an LCD or even maybe tv output.
If you didn't know these things great, now you do ... I am just baffled that someone got paid to write this "story" that's only a bit longer than the summary.
Hey ladies and gentlemen, here's a dark secret of Star Wars!
Did you know Darth Vader is Luke's father!?! BTW here's som
Wow that cabinet is small! (Score:3)
Nearly a half-inch smaller than the Super Impulse Space Invaders micro cabinet that's been on my desk for a few years.
I mean, nice job making and all, but that size isn't a breakthrough.
Nothing else speeds up though? (Score:3)
So I keep hearing the accidental-speeding-up story about the invaders, but the hole in that story is that during gameplay, it's *only* the invaders that speed up - the player, laser shots (both from the player and the invaders), the flying saucer, and everything else stay the same speed. Was it just the invader animation logic that was slowed down the more of them there were?
Interrupts vs main program loop (Score:5, Informative)
Re: (Score:2)
It remained a popular technique, and is still kinda used today.
Essentially you have a limited amount of processing power, so you prioritise. Collision detection is kinda expensive so maybe you don't do as many collisions as you have spare time for, and do them in a way that favours the player. Players generally don't mind if the enemies are at a disadvantage. Same with enemy AI, the player won't mind if they are a bit slow to react.
That was common in the 16 bit era, and even today the same basic technique i
Re: (Score:3)
Makes perfect sense (Score:5, Informative)
Re: (Score:2)
Video display/memory orientation was vertical so smooth horizontal movement was easily done per pixel since the CRT was mounted in portrait style. The 'sprites' bitmaps are stored in rom. Vertical movement was assisted by a hardware barrel shifter. Years ago I ported the original 8080 code to an 8051 variant (DS5000) and a vertical LCD screen just for fun and reverse engineering the original code. The sound effects were als hardware driven by a SN76477
Re: (Score:2)
It's actually a little surprising that they used bitmapped graphics. The game runs at 224x256 pixels, so the frame buffer is around 7k. Back then RAM was not cheap, so most games tried to avoid using it by having some kind of sprite hardware.
Being 1 bit per pixel also means that to position objects the source image needs to be left/right shifted and split over two or more bytes, which for the 8080 was quite a slow and demanding task. It all works though.
Re: (Score:2)
The bytes were vertically oriented, the only shifting was needed for up/down movement which a hardware barrelshifter accomplished. Horizontal per pixel movement was simple moving the whole byte
Re: (Score:2)
Interesting. That would have increased the memory bandwidth requirement by 8x though.
Re: (Score:1)
I think he means that 8 vertical pixels were stored in a single byte.
Shifting left and right become byte operations, not bit operations.
And if vertical shifts are also restricted to be in lots of 8 (ie when the invaders jump down an entire row) then you can avoid bit shifts altogether.
Re: (Score:2)
Sure, what I mean is that the video display chip needs to fetch every pixel on a row, every row as it generates the video signal. If you have a horizontal layout where one byte is 8 pixels, it needs to fetch display_width/8 bytes per scanline. If you have the vertical layout suggested here, it needs to fetch display_width bytes.
It can be somewhat mitigated by caching the fetched bytes for 8 scanlines, but that required some more memory.
I guess another option would be to physically rotate the screen by 90 de
Re: (Score:1)
Cool, I hadn't thought of it from that angle.
Re: (Score:2)
Not the secrets I expected (Score:1)
Iconic descending musical notes (Score:2)
like many early PC games (Score:2)
I remember playing some simple games on early Macs that ran on the system clock. That was great until you upgraded to a new Mac model with a clock 10X faster. Boy did those games get difficult!
They certainly got... (Score:2)
a lot of quarters from me, and from my ex, back in the day.