It all started with a soon to be released project I am working on called Fixing Gran Trak 10 about the first car racing arcade video game from 1974.
I had completed the electrical repairs and was trying to interview as many people as possible who were involved with making the game. One of the interviews was with Ron Milner.
Ron’s an interesting guy. He was an engineer and inventor at Atari’s secret think tank in the mountains – Cyan Engineering from 1973 to 1985. Besides coin-op work he was co-inventor of the Atari 2600 video game system and even helped prototype the animations for the robots at Chuck E Cheese. At the end of our conversation we were chatting about other stuff when he asked:
“Did you ever get a Starship 1 game?”
I said “I know that game! I would love to have one in my collection. I remember playing it when I was a kid.”
Ron explained how he designed an “axial coil” around the neck of the CRT which would cause the stars to rotate when the player turned the control yoke. A pretty neat trick. Unfortunately that feature was cut to save money in the production version of the game.
Ron continued, “That was the first and only game that I ever programmed and I think it was maybe one of the first games with a backdoor in it. I didn’t tell people about this, even within Atari, for at least 30 years, but I had some code in there that if you did a certain sequence of controls it would say ‘Hi Ron!’ and give you 10 free games.”
I was kind of stunned. If this was true it would certainly predate the earliest video game Easter egg that I knew of and the one that is most often cited as being the first: “Adventure” for the Atari 2600 from 1979. I did a little searching online and found that there was an even earlier Easter egg in the game “Video Whizball” which was released in 1978 for the Fairchild Channel F game console.
But there was a problem. Ron didn’t remember exactly how to bring up the Easter egg. He remembered showing it off to some buddies at a county fair when the game first came out, but that was 40 years ago!
This was something I had to pursue! There were only two things I needed to figure out: when was “Starship 1” released and how to actually trigger the Easter egg.
Confirming the Release Date
Ron wasn’t sure exactly when the game was released. First stop was to check The Arcade Museum. This site lists almost every arcade game ever made, but since the information in it is crowd-sourced I’ve found that it isn’t always reliable. In this case it shows 1976 as the release date for Starship 1. Promising! That would put it two years earlier than the other contenders.
But as I poked around more I began to have my doubts.
The manual and flyer were copyrighted in 1977. I decided to check other sources. I had recently been told that the archives for Cash Box Magazine have been scanned and are fully searchable online. Since this magazine covered the arcade business it’s perfect for this kind of thing. I quickly found an article that gives 8/13/77 as the first date that Starship 1 appeared in Cash Box.
Next I checked an old internal Atari sales document that I had used to verify a release date in my story Fixing Color Gotcha. As you can see, it lists a ship date of July 1977:
That fits with the first Cash Box reference being in August ’77, so I believe that July 1977 is the correct release date for the game.
Finding the Code
So we knew the date, but did the Easter egg actually exist in the game? Ron remembered that his Easter egg would trigger the message “Hi Ron!” on the screen and then give ten free credits, but he didn’t remember, after all these years, exactly how to make it happen.
The first step was to download the ROMs for the game from the internet. With those in hand it was an easy search through a hex dump to find:
So the message was there! But could we actually trigger it? Ron looped in another early Atari engineer, Michael Albaugh, and the three of us got to work. Starship 1 was built using the 6502 microprocessor, the same one that was used in the Atari 2600 and the Atari home computers, so it was something we were all familiar with.
Ron and Michael dove into the schematics and I provided the ROM dump and disassembly listings of various sections of code. A portion of the schematics showed the memory map which told us how the various buttons on the control panel were exposed to the game’s software:
It soon became clear the code we cared about was part of an interrupt routine triggered when a coin was inserted into the game. Michael was the first to find the code that, if called, would print “Hi Ron!” on the screen, but how was it called? Ron pinpointed two specific checks in the code and sent back a commented listing of the raw disassembly dump I had provided him.
The first check appeared to be testing whether the Phasor and the Start button were being held simultaneously when a coin was dropped:
And soon after was another test to see whether the slow button (and no other buttons) was pressed:
So if we were reading the code correctly, the key to triggering the Easter egg was to stick a coin in while holding both the phasor button and the start button down. Then, very quickly, release those buttons and slam on the slow control. No wonder no one ever stumbled on this “feature”… Now we just had to prove that it could actually happen in the real world.
Hatching the Egg
I did a quick check with my local collectors group (Seattle Metro Arcade Collectors or SMAC) but no one seemed to have a Starship 1 in my area. Then I remembered I had seen one for sale a few months earlier at a dealer in Vancouver, BC, and I kind of wanted it, even before I knew about the Easter egg. I checked with the dealer and the machine was still available so I bit the bullet and paid his somewhat inflated price.
Unfortunately I’d have to wait several weeks for him to repair it and ship it down to me in Seattle. In the meantime, I set about trying to reproduce the egg in the emulated version of the game running under MAME.
MAME is a marvel of the arcade collector world. First released 20 years ago, in 1997, and in continuous development ever since, MAME has the humble goal of emulating every arcade game ever produced, along with many vintage computers, game systems, and even calculators. This open source project has inspired so many talented programmers over the years that today it’s difficult to find a game that isn’t supported. When I looked for Starship 1 I was not surprised to see that it was available.
Yet my first attempts to reproduce the Easter egg ended in failure. I could cheat by using the excellent built in MAME debugger to skip over the two checks I needed to pass and then the “Hi Ron!” message would appear, but I couldn’t do it simply by pushing the (simulated) control panel buttons.
After some debugging I determined that the problem was with the Slow control. Whoever created the otherwise excellent driver to support Starship 1 in MAME decide that the Slow control should act like a gear shift. Not a bad assumption given how it looks:
See it there on the right side of the image? It may look like a gear shift but, from the game’s point of view, it’s just another button, no different from the Phasor or Start buttons. By making it a gear shift (technically a “toggle” in MAME speak), it made it virtually impossible for me to trigger it reliably in the small amount of time I had after dropping the virtual coin into the emulator.
I considered building my own driver, but that would involve a fair amount of work to setup the MAME build environment. Before I headed down that long and bumpy road I decided to try the thing I’m always reminding myself I need to do more often: use Google. Specifically I googled “disable MAME toggle” and the first thing that popped up was this wondrous little article on how to solve exactly the problem I was having. It said I had to add the phrase ‘toggle = “no”‘ to the config file like this:
(the MAME savvy among you will note that I also reassigned the slow button to the right ALT key and the Start button to the right CTRL key for easy access)
With these preparations in place, while holding down left CTRL and right CTRL, I hit the 5 key, which in MAME means insert coin. Then I immediately let up on all those keys and held down the right ALT key. It worked! I was rewarded with “Hi Ron!” on the screen!! Here, I made a video to prove it to you (watch carefully in the upper left hand corner of the screen):
Did you see “Hi Ron!” appear? If not, run it again. I’ll wait.
The Final Countdown
All that was left was to show that the Easter egg could be triggered on a real machine, but where was my real machine? I contacted the dealer and was told “A problem developed with the monitor, it won’t sync.” He went on to explain that once he fixed it, he would need to leave it running for several days to make sure the problem didn’t return. Yeah, sure. That’s fine. I want it to work.
I spent the next few weeks anxiously waiting for the machine to arrive. I was torn between the irrational fear that someone else would stumble on and publish my 40 year old discovery before me, and the very real fear that when I did, no one would care.
Finally the machine was delivered.
I carefully unwrapped and gave it a close inspection. Everything looked fine. This was going to be easy. I turned it on and it came right up. The screen looked great. I grabbed a quarter, stuck it in one of the two coin slots, and other than some clanking noises as the coin fell through the mechanism, nothing happened.
Okay, no problem. I opened up the coin door and saw that the coin box was installed incorrectly so it didn’t allow the quarter to fall all the way through the mechanism. I fixed that and tried again. This time the coin fell but again, nothing happened. I opened it up again to find that the falling coin had knocked off the wire that triggers the microswitch that tells the game to give a credit. The wire hadn’t been properly attached when the machine was repaired. I fixed that and tried again.
This time when I turned the machine on the stars were spinning wildly and the message COIN was stuck on the top of the screen. I opened the coin door a third time and saw that one of the electrical wires to the door was broken.
Images: Ed Fries
Wow. I was starting to wonder if I was cursed! I repaired the broken wire and tried yet again.
Will it happen?
The attempts continued for hours. It wasn’t easy. I had to contort my left hand to be able to hold down the button on the yoke and the start button at the same time:
Meanwhile my right hand had to insert a coin. As it was falling I had to let up the left hand and push down the slow control with my right hand. The timing seemed tricky. I knew from the code that the coin had to go through the mechanism before I let up my left hand but then there would be just a small window of time before I had to push the slow control. No matter how I tried and no matter what I did, I couldn’t make the Easter egg appear. How could this be? I had done all the research. I was sure I knew what I was doing, and yet I couldn’t get the message “Hi Ron!”.
Did it matter which coin slot I was using? I didn’t think so, but just to be safe I was trying both. Still, it made me wonder. I checked the schematic. There were definitely separate signals coming into the board for Coin 1 and Coin 2 but the byte being checked by the Easter egg code was looking at this:
We wanted the hexadecimal value $76 which would mean Coin plus Phasor plus Start. Just to be sure I started up the MAME version. I had always hit the 5 key when I reproduced it which means Coin 1, but what if I hit the 6 key (Coin 2) ?
When I tried it I couldn’t get the Easter egg to happen. I set a breakpoint in the debugger and sure enough I got a different value than the $76 I expected. Apparently Coin 2 was mapped to one of the other bits labeled “SPARE” on the schematic. Okay, that’s fine. I double checked which coin slot was associated with Coin 1 and I used that from then on, but still no luck. Eventually I decided to give up and call it a night.
As I lay in bed I thought about what could be wrong. The only thing I could think of was those bits marked “SPARE”. If Coin 2 could be mapped to one of the “spare” bits, maybe something else could be mapped to another one? I pulled up the schematic one more time and tried to see how the bits were mapped into the electronics of the game. I found this:
The signals going into pins 4 and 12 on chips E6 through J6 seemed to be a perfect match for the bits in the byte the code was testing. If that was correct, then look at the line connected to pin 12 of J6.
Although that line isn’t labeled it doesn’t take a genius to follow the wire to the right and see that it is connected to a Quad DIP Switch and is labeled “Bonus Time”. I was pretty sure I knew what that meant and drifted off to sleep, confident that tomorrow would be a better day.
A Better Day
I woke up early and, after dropping the kids off at school, got to work. I pulled the board and found the DIP switch. See how one switch is marked “B.T.” for “Bonus Time” and that it is pushed down on the side marked with the plus sign? That means it is on or closed. Since the schematic shows a closed switch there would be connected to ground that means that it would create a zero bit which is exactly the opposite of what we need to create the Easter egg.
Seeing this gave me even more confidence. I flipped the switch and put everything back together. I was ready to give it one last try. If didn’t work this time, I was out of ideas.
“Bonus Time” was now off. I contorted my left hand to hold the Phasor and Start buttons down. I held a quarter in the Coin 1 slot with my right hand. I would have crossed my fingers if both my hands weren’t busy. I dropped the coin, and tried to be patient to let it make its way all the way through the mechanism and then I quickly let up the buttons with my left hand and slammed the slow control with my right. “Hi Ron!” appeared on the screen. First try.
I setup my camera and started it recording. Again it only took one take. Here’s that video:
Hallelujah.
Is it the First?
That leaves us with the final question: Is this the first Easter egg? As with most things, the answer is, it depends. Wikipedia defines an Easter egg as “an intentional inside joke, a hidden message, or a secret feature of an interactive work”. The website goes on to give examples in software going all the way back to the TECO text editor from the 1960s. Clearly we aren’t going to beat that.
So let’s ask if this is the first Easter egg in a video game? July 1977 is well before the release of both Adventure and Video Whizzball in 1978, so we clearly have a contender. As I did more research, though, I found this article which says a rare cartridge for the Fairchild Channel F called “Democart”, presumably released only for use in stores, displays the programmer’s name if three buttons are held down at the end of the demo. As you can see, it has a copyright of 1977:
Was it made before or after July of 1977? I don’t know. Does a non-interactive store demo meet the criteria for an Easter egg in a video game? I guess that’s up to you.
Maybe we just want to claim that Starship 1 has the first Easter egg in an arcade video game. In that case I only know of one other contender, but it dates all the way back to June of 1975. The game Anti-Aircraft II by Atari, which normally has the player shooting down passing airplanes, can be made to display UFOs instead by modifying the printed circuit board inside the game. Once changed, the screen looks like this:
Does a different set of graphics that can only be displayed by modifying the hardware count as an Easter egg? Around this time, Atari was doing business using two different names (the other name was Kee Games) and releasing slightly different versions of most of their games under each name. I suspect that the UFOs were meant for a Kee Games version of Anti-Aircraft and not something hidden in the ROM by its creators.
In my opinion, Starship 1 is the earliest arcade game yet known that clearly meets the definition of an Easter egg and the clever young programmer who put it there, Ron Milner, deserves our recognition and respect. Still, there were more than one hundred arcade video games released before Starship 1. Maybe somewhere deep inside one of them lies another even older Easter egg just waiting to be discovered.
Ed Fries is a former developer on Microsoft Word and Excel who now sits on the board of VREAL, a VR game streaming platform. He’s also an adviser to Emortal Sports, a VR-focused esports team. This post was republished from his WordPress page with his blessing.
This piece originally ran in October 2021.
Comments
One response to “Chasing The First Arcade Easter Egg”
holy shit Ed, love your dedication to the story! thumbs up!