📜 ⬆️ ⬇️

Chase for the first easter egg

It all started with the upcoming release of the project I'm working on, called “repairing Gran Trak 1” , about the first arcade video game of 1974. I finished repairing electronics and tried to interview as many people as possible who were involved in creating the game. One of the interviews was with Ron Milner. Ron is an interesting guy. He was the engineer and inventor of the Atari secret intelligence center in the mountains - Cyan Engineering from 1973 to 1985. In addition to working with coin acceptors, he was one of the inventors of the Atari 2600 video game system and even helped prototype animations for robots at Chuck E Cheese. At the end of our conversation, when we chatted about everything, he asked:

“Have you ever played Starship 1 ?”

I said, “I know this game! I would like her to be in my collection. I remember how I played it when I was a child. ”


')
Ron explained how he designed the “radial coil” for a CRT that made the stars spin when the player turned the steering wheel. Pretty tricky trick. Unfortunately, this feature has been cut to save the cost of producing the game.

He continued: “It was the first and only game I ever programmed, and probably one of the first games with backdoor . I didn’t even talk about it at Atari for at least 30 years, but I had some code built in that, when performing a certain sequence of actions, said “Hello, Ron!” And gave 10 free games. ”

I was stunned. If everything was so, then it turns out that it was before the appearance of the very first Easter egg I knew in video games , that is, the one that is most often referred to as the first: “Adventure” for Atari 2600 of 1979 . I did some research on the Internet and found that there was an even older Easter eggs in the game “Video Whizball”, which was released in 1978 for the game console Fairchild Channel F.

But there was a problem. Ron did not remember exactly how to get an Easter egg. He remembered how he showed it to some friends at the exhibition when the game first appeared, but that was 40 years ago!
I could not just miss this easter egg! It only remained to find out two things: when Starship 1 was released and how to get an Easter egg.

Release Date Confirmation


Ron was not sure about the release date of the game. Therefore, the first stop is the Arcade Museum . This site lists almost all arcade games that have ever been created, but since the information is collected by the community, I discovered that it is not always reliable. In our case, the site shows that Starship 1 was released in 1976 . Hopefully! After all, it is two years earlier than other rivals.
But, while I was picking, I began to have doubts.
The handbook and flyer had a copyright mark for 1977 . I decided to check other sources. I was told that the archives of the Cash Box magazine were scanned and fully accessible online. Since this magazine covered the arcade business, it fit perfectly. I quickly found an article for 13.08.77 with the first mention of Starship 1 .



After that, I checked with the old Atari internal sales document , which I used to check the release date in my “Gotcha Color Repair” article. As you can see, it shows the release date in July 1977 :



This is consistent with the first mention in the Cash Box in August 1977, so I am sure that July 1977 is the real release date of the game .

Code search


So, we determined the date, but is it true that an Easter egg existed in the game? Ron mentioned that his Easter egg showed the message “Hello, Ron!” On the screen, and then gave ten free games, but over the past years he has forgotten how to run it.

The first step was to download the rum game from the Internet. An ordinary search on this hex dump allowed to find:



So the message was! But can we run it? Ron contacted Michael Albo, a familiar Atari engineer, and the three of us started working. Starship 1 was created using a 6502 microprocessor, which was also used in the Atari 2600 and Atari home computers, we were all familiar with it. Ron and Michael plunged into schemes, and I armed myself with a rum dump and listings of disassembled code. In the diagrams, we found a memory card, from which it became clear how the various buttons on the control panel interact with the game software:



It soon became clear that the code of interest to us was part of the interruption that was triggered when the coin was lowered into the game. Michael first found the code that prints "Hello Ron!" On the screen, but how was it called? Ron found two specific checks in the code and sent me a listing of the disassembled code with comments.

The first turned out to be a check that the buttons of the phaser and the start were simultaneously pressed at the moment when the coin was lowered:



And then it was checked that the slowdown button (and no others) was pressed:



Thus, if we understood the code correctly, to launch Easter eggs, it was necessary to lower the coin while simultaneously holding the phaser and start buttons. Then abruptly release them and bludgeon slowdown. It is not surprising that no one ever stumbled upon this “feature” ... Now it remains for us to prove that this sequence is realizable.

Hatching eggs


I quickly contacted a local collector group (Seattle Metro Arcade Collectors or SMAC), but no one nearby had this game. Then I remembered that a few months ago I saw Starship 1 on sale in Vancouver, and even thought about buying it, even before I learned about an Easter egg. I contacted the dealer, the car was still available. Reluctantly, I paid a little over priced. Unfortunately, it took several weeks for him to restore it and send it to me in Seattle. In the meantime, I started trying to reproduce the egg in an emulated version of the game running MAME.

MAME is a wonder of the world of arcade collectors. Released 20 years ago, in 1997, and continuously evolving since then, MAME has a modest goal - to emulate all arcade games ever created, along with many vintage computers, game systems and even calculators. Over the years, this open source project has inspired so many talented programmers that today it is difficult to find a game that is not supported. Not surprisingly, Starship 1 was also found.

However, my first attempts to launch Easter eggs ended in failure. I could cheat using the MAME built-in debugger and skip both checks that precede the “Hello, Ron!” Message, but I couldn’t perform the necessary actions by pressing the simulated control panel buttons.

After some debugging, I discovered that the problem was in the slowdown controller. The one who made the driver to support Starship 1 in MAME decided that the slowdown controller should work like a gearbox. Not a bad decision considering how it looks like:



See it on the right side of the image? It looks like a gearbox, but from the point of view of the game, this is just another button, no different from the phaser or start buttons. Due to the fact that it worked as a gearbox (“switch” in the terminology of MAME), it was almost impossible to press it in the small amount of time that I had after lowering the virtual coin into the emulator.

I have already started thinking about creating my own driver and about the amount of work on setting up the MAME build environment. But before moving along this long and bumpy road, I decided to try something I often forget about: Google search. In particular, I typed "turn off the MAME switch", and the first link that appeared appeared was a short article on how to solve exactly the same problem. The article said that it is enough to add the phrase toggle = "no" to the configuration file:



(MAME experts among you will notice that I have reassigned the easing button to the right ALT, and the start button to the right CTRL)

After these preparations, holding the left and right CTRL, I pressed the button 5, which is responsible for lowering the coin in MAME. Then I immediately released all the buttons and clamped the right ALT. It worked! The words "Hello Ron!" Appeared on the screen !!! I made a video to prove (look carefully at the upper left corner of the screen):


Have you seen "Hello, Ron!"? If not, look again. I'll wait.

Countdown


It remains only to show that the Easter egg can be run on a real machine, but where is it? I contacted the dealer and received the answer "There was a problem with the monitor, not synchronizing." He explained that after correction, it would be necessary to leave the machine running for several days to make sure that the problem does not occur again. Yes of course. Good. I need it to work.
The next few weeks I was looking forward to the arrival of the car. I was torn apart by an irrational fear that someone else would stumble and publish my 40-year-old discovery before me, and a very real fear that everyone would not care.
In the end, the car arrived.



I carefully unwrapped it and carefully examined it. Everything looked beautiful. I turned on the machine, it booted without problems. The screen looked great. I grabbed a quarter, dropped it into one of two coin acceptors and, except for the ringing of the failed coin, nothing happened.

Okay, no problem. I opened the coin acceptor door and saw that the coin box was installed incorrectly, so the quarter could not fall through the mechanism. Having corrected it, I tried again. This time the coin fell, but again nothing happened. Opening the door again, I discovered that the coin had knocked out the wire of the microswitch that informs the game about the new life. When repairing the wire was attached securely. Fixing it, I tried again.



This time, after turning on the machine, the stars began spinning wildly, and the COIN message hung at the top of the screen. Opening the coin acceptor for the third time, I found that one of its wires was damaged.



Hmm. Maybe I damned ?! Replacing the broken wire, I tried again.

Happened?


Attempts continued for hours. It was not easy. I had to twist my left hand to simultaneously hold the button on the steering wheel and the start button:



In the meantime, I lowered the coin with my right hand. While she was falling, I let go of my left hand and pressed the slow down lever with my right hand. Catching the right moment was difficult. I knew from the code that the coin must pass through the mechanism before I let go of my left hand, while there is only a very small amount of time left for which the deceleration lever should be lowered. No matter what I did, no matter how I tried, the Easter egg did not start. What is the problem? I did all the research, I was sure that I knew what I was doing, but still I couldn’t receive the message “Hello Ron!”

Is it important which coin slot to use? I thought not, but just in case, I tried both. I was curious, and I rechecked the scheme. Two completely different signals were received from the coin acceptors, but the byte looked like by the Easter eggs code:



We need a hex value of $ 76, which corresponds to a coin plus a phaser button plus a start. To make sure I ran the version of MAME. I always pressed the 5 key when I played Easter eggs, which corresponds to the “Coin 1” slot. And what if you press button 6 (slot "Coin 2")? Having tried, I could not get an Easter egg. I set a breakpoint in the debugger and, of course, got a value different from the expected $ 76. It seems that the second slot corresponds to one of the bits marked “Spare” in the diagram. Okay, that's fine. I double-checked which of the slots was the first one, I only used it, but to no avail. In the end I gave up and went to sleep.

Lying in bed, I thought about what could have gone wrong. The only thing that bothered me was the backup bits. If the second coin acceptor matches one of these bits, maybe there is something related to the second one? I again got the circuit and tried to understand how the bits are implemented in the game electronics. Here is what I found:



The signals arriving at pins 4 and 12 of the E6 chip via J6 seem to perfectly match the bits in the byte, which is checked by code. If everything is correct, pay attention to the line associated with pin 12 of the J6 chip. Although the line is not signed, you do not need to be a genius to follow the wire to the right and find that it is connected to the Quad DIP switch and is labeled “Bonus Time”. Having understood for sure what this means, I fell asleep with the confidence that tomorrow would be the best day.

The Best Day


Waking up early in the morning, I took the children to school and started working. I pulled out the board and found the DIP switch:



Do you see a switch labeled "BT", that is, "Bonus Time"? He is pressed to the side marked with a plus sign. This determines it is on or closed. Judging by the scheme, the closed switch is connected to the ground, which means that it generates a zero bit. This behavior is absolutely the opposite of what we need to start Easter eggs. This find gave me confidence. I flicked the switch and brought everything back. Last try. If it doesn't work out, I had no more ideas.

Bonus time has been turned off. I pressed the phaser and start buttons with my left hand, and the right one held a quarter near the coin acceptor. I would have crossed my fingers, but both hands were busy. I lowered the coin and waited a moment as it made its way through the mechanism, then I quickly let go of my left hand and slammed the deceleration lever with my right. “Hello, Ron!” Appeared on the screen. From the first attempt.

I set up a camera for recording and tried again. Everything went like clockwork. Here is the resulting video:


Hallelujah.

Is she first?


The last question remains: Is this the first Easter egg? As in most cases, the answer depends on the point of view. Wikipedia defines an Easter egg as “an intentional joke, a hidden message or a secret feature of an interactive work.” The following article provides examples from software up to the TECO text editor from the 1960s. We obviously cannot surpass him.

So, to rephrase: is this the first Easter egg in video games? July 1977 is clearly before the release of Adventure and Video Whizball in 1978, we have a strong contender for victory. Conducting additional research, I came across an article that tells about the rare Democart cartridge for the Fairchild Channel F, allegedly released only for use in stores. If you hold down the three buttons at the end of the demo, the programmer’s name will appear. As you can see, it has a copyright mark for 1977 :


Was it done before July 1977 or after? I dont know. Does a non-interactive demo for a store meet the criteria for Easter eggs in video games? Decide for yourself
Perhaps you should narrow the circle again and say that the first Easter egg appeared in the Starship 1 in an arcade video game . In this case, there is only one contender, but the mention of him dates back to June 1975 . In the game Anti-Aircraft II from Atari is required to shoot down flying aircraft, but you can make them turn into a UFO. True, this requires a small change in the printed circuit board of the game. After the change, the screen looks like this:



Is an easter egg considered to be a set of graphics that can be displayed only by making changes in the gland? Around this time, Atari did business using two different names (another name is Kee Games ) and released several different versions of most of its games under each of its names. I suspect that the UFOs were intended for the Kee Games Anti-Aircraft version, and were not something hidden in ROM by its creators.

In my opinion, Starship 1 is currently the first known arcade game that clearly fits the definition of an Easter egg, and the young and intelligent programmer who built it, Ron Milner, deserves our recognition and respect. However, prior to Starship 1, more than one hundred arcade video games were released. Perhaps somewhere deep inside one of them lies another more ancient Easter egg, which is just waiting to be discovered. Hope this is so!

Source: https://habr.com/ru/post/326744/


All Articles