Bugs in old arcade games
September 13, 2015 8:45 AM Subscribe
Here is what causes the kill screens of Ms. Pac-Man and why they happen long before level 256. Here is why you can sometimes control the attract mode demo in Galaga. Computer Archeology explains the "no fire" cheat in Galaga, which causes the enemies to stop firing if you keep two specific bugs alive long enough. (What, you don't know what Galaga is? galaga.info has you covered.)
Don Hodges, source of the first two links, has been featured here before.
Don Hodges, source of the first two links, has been featured here before.
Really interesting stuff. And some serious spelunking.
I submit, though, that the Galaga playable demo bug isn't actually a bug. The supposed error in the code is so obvious (Hodges himself expresses disbelief that the bug could have gone unnoticed) that I believe it's actually an Easter Egg of sorts. A kind of "try it before you buy it" secret hook, intended to catch any player idly messing with the controls. It's simply not "buggy" enough to be a real bug. It feels far too deliberate. But not so deliberate as to piss-off arcade owners because of the free gameplay.
posted by Thorzdad at 9:17 AM on September 13, 2015 [3 favorites]
I submit, though, that the Galaga playable demo bug isn't actually a bug. The supposed error in the code is so obvious (Hodges himself expresses disbelief that the bug could have gone unnoticed) that I believe it's actually an Easter Egg of sorts. A kind of "try it before you buy it" secret hook, intended to catch any player idly messing with the controls. It's simply not "buggy" enough to be a real bug. It feels far too deliberate. But not so deliberate as to piss-off arcade owners because of the free gameplay.
posted by Thorzdad at 9:17 AM on September 13, 2015 [3 favorites]
I always like to think that it's that Galaga "no fire" bug that's being exploited at the beginning of Wargames.
posted by Catblack at 9:19 AM on September 13, 2015 [6 favorites]
posted by Catblack at 9:19 AM on September 13, 2015 [6 favorites]
I disagree Thorzdad, for the reason that the bug can set off the game's watchdog and reset the machine, as can be seen in the third video on the linked page. Pretty much any time something like this happens it's evidence of a serious bug, it is simply unprofessional to ship an arcade game with such a bug in it, those things are supposed to be bulletproof. And if it were an intended feature, then there would certainly be operator adjustable, as letting people play a game, no matter how briefly, without paying hurts profitability, since they are taking up machine time paying customers could be using. Well, that's what I think.
Instead, I suggest that it's not as obvious as it might seem that the ship is controllable, and it was probably the product of a hastily-implemented attract mode. Without aural accompaniment, it's not all that clear you're controlling the firing: the ship still fires due to its script, you're just supplying extra shots, and you can only control the ship yourself somewhat if you use this to shoot down the enemy before you get captured. I can see how this could get past QA, especially back in the 80s.
posted by JHarris at 9:39 AM on September 13, 2015
Instead, I suggest that it's not as obvious as it might seem that the ship is controllable, and it was probably the product of a hastily-implemented attract mode. Without aural accompaniment, it's not all that clear you're controlling the firing: the ship still fires due to its script, you're just supplying extra shots, and you can only control the ship yourself somewhat if you use this to shoot down the enemy before you get captured. I can see how this could get past QA, especially back in the 80s.
posted by JHarris at 9:39 AM on September 13, 2015
Galaga machines used to be everywhere about a decade ago. For a while, every bar of the sort that had mismatching old furniture had a cocktail Galaga machine in use as a table (and occasionally played, though sometimes used to prop up a laptop running MAME in the name of irony.
Long after humanity has wiped itself out, once the cockroaches evolve opposable thumbs, they may find Galaga machines waiting for them.
posted by acb at 9:43 AM on September 13, 2015 [6 favorites]
Long after humanity has wiped itself out, once the cockroaches evolve opposable thumbs, they may find Galaga machines waiting for them.
posted by acb at 9:43 AM on September 13, 2015 [6 favorites]
The supposed error in the code is so obvious (Hodges himself expresses disbelief that the bug could have gone unnoticed) that I believe it's actually an Easter Egg of sort
Hodges hasn't worked with enough programmers then if he thinks a bug that obvious could go unnoticed.
posted by eriko at 10:43 AM on September 13, 2015 [4 favorites]
Hodges hasn't worked with enough programmers then if he thinks a bug that obvious could go unnoticed.
posted by eriko at 10:43 AM on September 13, 2015 [4 favorites]
What, you don't know what Galaga is?
Heck, I remember Galaxian. Wasted a lot of quarters on that thing in high-school
posted by octothorpe at 10:57 AM on September 13, 2015
Heck, I remember Galaxian. Wasted a lot of quarters on that thing in high-school
posted by octothorpe at 10:57 AM on September 13, 2015
Wait... It's pronounced "ga-LAH-ga"??? Back in the day, down South, everyone called it GAL-ah-ga."
posted by memewit at 11:38 AM on September 13, 2015 [5 favorites]
posted by memewit at 11:38 AM on September 13, 2015 [5 favorites]
"Wait... It's pronounced "ga-LAH-ga"??? Back in the day, down South, everyone called it GAL-ah-ga.""
It is indeed pronounced GAL-uh-guh.
[source: I grew up in Tennessee.]
posted by komara at 11:46 AM on September 13, 2015 [4 favorites]
It is indeed pronounced GAL-uh-guh.
[source: I grew up in Tennessee.]
posted by komara at 11:46 AM on September 13, 2015 [4 favorites]
I was a big Galaxian fan, but never really liked Galaga, for some reason.
I wonder if this is a Galaxian bug, too. I would guess that there's a lot of reused code, although Galaxian had only 1 Z80.
posted by MtDewd at 12:24 PM on September 13, 2015 [1 favorite]
I wonder if this is a Galaxian bug, too. I would guess that there's a lot of reused code, although Galaxian had only 1 Z80.
posted by MtDewd at 12:24 PM on September 13, 2015 [1 favorite]
There is a bug in the original arcade version of Pong where the direction of the ball bounce off the paddle is actually influenced by the opposite players paddle (and vice versa). This video demonstrates the phenomenon. On page 98 of this PDF you can find a detailed explanation of why this happens.
Basically when the printed circuit board was drawn up (specifically the version E boards but maybe others), two signals were mis-routed. The position where the ball "hits" the paddle is kept track of using 3 bits, these determine how the ball "bounces" off the paddle. The lowest significant bits ended up getting wired to the opposite players paddle. The effect is subtle enough that it seemed to go unnoticed for a very long time.
posted by Pong74LS at 1:08 PM on September 13, 2015 [9 favorites]
Basically when the printed circuit board was drawn up (specifically the version E boards but maybe others), two signals were mis-routed. The position where the ball "hits" the paddle is kept track of using 3 bits, these determine how the ball "bounces" off the paddle. The lowest significant bits ended up getting wired to the opposite players paddle. The effect is subtle enough that it seemed to go unnoticed for a very long time.
posted by Pong74LS at 1:08 PM on September 13, 2015 [9 favorites]
I love his bug investigations, and I especially love that he goes to the trouble of explaining how to patch them, including the checksum workaround. There is something incredibly satisfying about understanding a programming problem so completely.
posted by Sibrax at 2:06 PM on September 13, 2015 [1 favorite]
posted by Sibrax at 2:06 PM on September 13, 2015 [1 favorite]
Galaxian is a much different game, and the second processor in Galaga handles a whole lot of tasks. Galaga's whole design is centered around those multiple processors and how they pass messages to each other. There's probably not a lot of shared code that isn't standardized boilerplate.
I hate to say it, but... I honestly have no idea how someone could prefer Galaxian to Galaga. Galaga's spiritual sequel Gaplus, now, I can understand someone not liking, but Galaga is so much faster, better-looking, better-sounding and more interesting, to me, than Galaxian, which doesn't really fall that far from the xenomorphic Space Invaders tree.
posted by JHarris at 2:15 PM on September 13, 2015 [2 favorites]
I hate to say it, but... I honestly have no idea how someone could prefer Galaxian to Galaga. Galaga's spiritual sequel Gaplus, now, I can understand someone not liking, but Galaga is so much faster, better-looking, better-sounding and more interesting, to me, than Galaxian, which doesn't really fall that far from the xenomorphic Space Invaders tree.
posted by JHarris at 2:15 PM on September 13, 2015 [2 favorites]
After viewing the video for the no-fire cheat, I got outraged, because he chose the wrong two attacking bugs to leave alive! (the way I learned it, you leave the bottom-right two bugs alive. I have actually done this successfully on an arcade Galaga machine.) Then I read the breakdown and see that we are both correct.
In short, I love Galaga (though my long-suffering wife does not enjoy it so much when we encounter a Galaga machine in the wild, for even without the no-fire bug I'm not too shabby and a quarter can take a while.)
posted by namewithoutwords at 2:36 PM on September 13, 2015 [1 favorite]
In short, I love Galaga (though my long-suffering wife does not enjoy it so much when we encounter a Galaga machine in the wild, for even without the no-fire bug I'm not too shabby and a quarter can take a while.)
posted by namewithoutwords at 2:36 PM on September 13, 2015 [1 favorite]
Another bug on Galaga machines was that if you used a tiny slingshot to whip a penny down the coin slot it would take that to be a quarter. Not that I ever did that or made a tiny sling shot customized for pennies. And I never nailed the metal blinds with it during boring movies at school.
posted by Mr. Yuck at 3:39 PM on September 13, 2015 [6 favorites]
posted by Mr. Yuck at 3:39 PM on September 13, 2015 [6 favorites]
Galaga's whole design is centered around those multiple processors and how they pass messages to each other.
Is this written up anywhere?
posted by acb at 4:31 PM on September 13, 2015
Is this written up anywhere?
posted by acb at 4:31 PM on September 13, 2015
It is; it's in the linked page on Computer Archaeology about the shot bug! The primary CPU sends commands to the secondary CPU, which then executes them on its own. The tasks are divvied up, for example, so that one CPU takes care of deciding when enemies fire shots, but the other handles shot movement; and one handles enemy motion, like when bugs swirl in at the start of a wave, but the other decides when they're done swirling and decide to enter formation or leave the screen.
posted by JHarris at 4:58 PM on September 13, 2015 [2 favorites]
posted by JHarris at 4:58 PM on September 13, 2015 [2 favorites]
The Galaga Attract Mode "bug" explains one of the mysteries of my childhood. When I was about four or five, I was hugely into arcade games, but because I was so bad at them (and often lacking quarters) I often just went over to the games at the local pizza place and pretended that I was playing the demo. I distinctly remember being puzzled at how it seemed the Galaga machine was actually responding to my button mashing and joystick movements.
posted by RonButNotStupid at 5:06 PM on September 13, 2015 [2 favorites]
posted by RonButNotStupid at 5:06 PM on September 13, 2015 [2 favorites]
Kong bless the internet. This is all gold.
posted by Theta States at 8:11 PM on September 13, 2015
posted by Theta States at 8:11 PM on September 13, 2015
Not sure I like some of the tone - 'sloppy programming' for example. Give the tools they had, they managed to produce games that are still played and are regarded as classics. It's easy to look down on them 30 years later.
posted by GallonOfAlan at 12:36 AM on September 14, 2015 [1 favorite]
posted by GallonOfAlan at 12:36 AM on September 14, 2015 [1 favorite]
The supposed error in the code is so obvious (Hodges himself expresses disbelief that the bug could have gone unnoticed) that I believe it's actually an Easter Egg of sort
Hodges hasn't worked with enough programmers then if he thinks a bug that obvious could go unnoticed.
Since it turns out that the "obvious" fix of not setting that bit breaks the demo I'm not sure it's really such a surprise that it was released in that condition, even if a real fix is also pretty easy to implement.
posted by atoxyl at 1:29 AM on September 14, 2015
Hodges hasn't worked with enough programmers then if he thinks a bug that obvious could go unnoticed.
Since it turns out that the "obvious" fix of not setting that bit breaks the demo I'm not sure it's really such a surprise that it was released in that condition, even if a real fix is also pretty easy to implement.
posted by atoxyl at 1:29 AM on September 14, 2015
If it weren't for a pesky bug in my time machine's programming, I'd be hopping back to 1982 to tell myself about the Galaga "no fire" cheat this very second!
posted by fairmettle at 6:28 AM on September 14, 2015
posted by fairmettle at 6:28 AM on September 14, 2015
Catblack: "I always like to think that it's that Galaga "no fire" bug that's being exploited at the beginning of Wargames."
IMDB claims - and I think I remember hearing this back in the 80s, as well - is that the studio sent Broderick a Galaga machine a few weeks in advance of filming for him to practice on.
I know that Lightman's keyboards were dummied up in later scenes - no matter what he typed, the appropriate text would appear on the monitor - but I think the Galaga play is really Broderick.
posted by Chrysostom at 8:33 AM on September 14, 2015
IMDB claims - and I think I remember hearing this back in the 80s, as well - is that the studio sent Broderick a Galaga machine a few weeks in advance of filming for him to practice on.
I know that Lightman's keyboards were dummied up in later scenes - no matter what he typed, the appropriate text would appear on the monitor - but I think the Galaga play is really Broderick.
posted by Chrysostom at 8:33 AM on September 14, 2015
I honestly have no idea how someone could prefer Galaxian to Galaga.
Fidelity??? For me, it's probably just that I like what I like, and don't appreciate most 'improvements'. But I found some colleagues out there.
I was never much of a gamer. There are a very few games that I saw that I immediately loved, and those are pretty much the only ones I played.
I also love these bug investigations, especially the details of how he went about it. Also, feeling nostalgic about 8-bit code listings.
posted by MtDewd at 9:51 AM on September 14, 2015
Fidelity??? For me, it's probably just that I like what I like, and don't appreciate most 'improvements'. But I found some colleagues out there.
I was never much of a gamer. There are a very few games that I saw that I immediately loved, and those are pretty much the only ones I played.
I also love these bug investigations, especially the details of how he went about it. Also, feeling nostalgic about 8-bit code listings.
posted by MtDewd at 9:51 AM on September 14, 2015
Galaxians in action, for those who were wondering about the difference. I love how the diving sound cuts off and on to allow for the other sounds.
Also, via MtDewd's "I found some colleagues" link: A guy found a Q-Bert arcade machine, serial #1, for $450 on ebay!
posted by marienbad at 12:42 PM on September 14, 2015 [1 favorite]
Also, via MtDewd's "I found some colleagues" link: A guy found a Q-Bert arcade machine, serial #1, for $450 on ebay!
posted by marienbad at 12:42 PM on September 14, 2015 [1 favorite]
« Older They both have cold, dead eyes | The last believers in an ordered universe. Newer »
This thread has been archived and is closed to new comments
posted by JHarris at 8:47 AM on September 13, 2015 [1 favorite]