Tuesday, May 11, 2010

OutRun Easter Egg - The Definite Guide!

For a while it's been known that on some versions of OutRun holding the start button, just before a checkpoint, will reveal a secret message: "PROGRAM YU SUZUKI 1986 SEP".

However, it's also been known that this easter egg does not work on all versions of the game.

Well, that's until now. I've decompiled the code related to this and will list the differences below, including how to enable this easter egg on later revisions of the game.

Sitdown/Upright Revision A: This version works as stated. Just before any checkpoint, hold start (just before the sky is due to cycle to the upcoming level colour) to reveal the message. Easy.

Sitdown/Upright Revision B: Activating the egg on this version is more complex. First you will will need to achieve a high score, and enter "YU." as your name, complete with trailing full-stop.

Furthermore, the easter egg can only be activated when transitioning from Stage 2 to Stage 3 on this version of the game. Yes, they've actually included extra code to handle this.

It should also be noted that the egg can only be displayed once and is then deactivated. Also, if the user enters "YU." again on the high score table, the egg will also be deactivated. I'm not certain why this required such a rewrite - it's not as if it allows the user to cheat in the game.

The easter egg code is buried in the middle of a routine to handle setting up the sky palette fade from one level to the next. Which possibly indicates that the programmer wanted to keep the code hidden from more common routines that were shared with the team. I wonder who wrote this piece of code, and why it was heavily altered between revisions?

Aside from that I've completely disassembled the entire service test code - which enabled me to figure out a bunch of minor book keeeping information. I've also disassembled the palette changing code that handles the road, ground and sky when transitioning between levels. I've even disassembled some rather dull code relating to the coin chutes. Next - there's a load of tilemap code to be looked at. The quest continues!


Anonymous said...

As always an excellent read.

Knuckles500 said...

As far as I know, Sega did not believe in giving people proper credit on games. So everyone back then used nicknames or their initials they had around the office. Everyone who worked for Sega at this time that I contacted have said that this was because it was their game making policy back then (along with, "making sure the title screen has "PRESS START BUTTON" indications, a pause message for indicating pauses, etc). Even though the actual reason isn't clear, it might be because that they were just trying to protect the identities of their most valued employees so that other companies wouldn't be able to hire them (I think this is mostly false, but it can be true for some cases). Since the game was developed at R/D1 (I think), they must've had some nice engineers working there. Another thing that I discovered while doing some research, was that a majority of the people who are still employed at Sega who have worked as a programmer or even a simple manager from the time of the System 16 games have gone up in rank within the company as R/D specialists, etc.

Since there was a button code involved to get the message to show up, this reminds me of Sonic the Hedgehog - another nice example as to how Sega worked back then. As far as I know, the American release of Sonic 1 doesn't have the hidden Easter Egg which revealed the developer's real names. However the Japanese version has this really complicated button cheat that you probably wouldn't be able to guess by yourself in order for the easter egg to show up.

I'm not sure which revision was for which country for Outrun, but my guess is that the one with the easiest method to unlock the Easter Egg was based in Japan. The revision where it got harder was probably for America/World, right? If that's the case, Yu probably had to follow SoA's policies and had to make the easter egg harder to access.

yt said...

It would be good to compile a definite list of the OutRun team.

The high score table provides some hints (via their initials). I wonder who the full team was?

Jimbo said...

"I've even disassembled some rather dull code relating to the coin chutes."

Just checking... that was for credit, rather than any payout (SWP) capability?

yt said...

Credit :)