Extending the demo: Ridge Racer (PlayStation)
Reverse engineering an early look at one of the first PlayStation titles
In this edition:
There’s a demo of Ridge Racer included on the Japanese DemoDemo Vol. 1 CD.
The preview normally limits you to one course and one car, but there’s more or less a full build of the game included on the disc.
I’ve made a patch that removes the demo restrictions, grants access to the menus, and lets you change cars and courses.
With the patch applied, you can see several unfinished elements. This build gives us an early look at one of the first PlayStation games!
Get the patch on GitHub. Here’s a video that compares this prerelease build to the final one:
More details are below…
Build differences
Even without a patch, you’ll notice a few things in the demo that don’t match the final version. For one, there’s no card girl at the start of the race; there’s a helicopter instead:
Also, some background elements aren’t there. For example, the screen plays Galaxian before the first tunnel is blank in the demo:
But what you can’t see without hacking is everything else that’s different. For instance, the Car Select menu is missing the car names and stats:
Furthermore, the car models looks different from their final versions. They also have different decals:
The Mission Select (transmission) menu is incomplete – the two choices are Automatic Automatic and Manual Manual instead of Automatic Transmission and Manual Transmission:
The Sound Select menu reveals that the music selection is different in the demo – the Rare Hero track is missing:
On the Key Config screen, the PlayStation controller mode has different shading in the demo. And the Type-B control scheme uses a different button mapping:
On the Records screen, there are different times and initials recorded by default:
Update: User Xenn on the TCRF Discord points out that the demo’s initials spell out “I SHALL KILL SONY.” Bizarre!
There are myriad other differences:
The final game has you play Galaxian on the loading screen; the demo doesn’t.
There’s no attract mode when the title screen times out.
The “extra” unlockable cars and courses aren’t implemented.
The memory card save and load screens don’t exist yet.
You can’t pause during gameplay. The pause menu is present in the code, but there’s nothing listening for the Start button – it was probably taken out for the demo.
Similarly, nothing is listening for the “change camera angle” button press. This may just have not been implemented yet.
The staff credits aren’t present.
Leave a comment with others that you find!
Behind the scenes
It won’t come up even with my patch, but the name entry screen is incomplete in the demo build. It’s got some basic text at the top, and the letter selection is mostly broken:
The debug flag display described on The Cutting Room Floor has a slightly different set of options in the demo build:
The Test Mode is missing the Save Replay item:
One more hidden thing: the game has an unused overhead camera view that looks pretty cool. The camera angle is controlled by the 1-byte value at 80059018. Setting that to 2 shows the race from above:
This is in the final game also.
Patch details
The outermost loop in the Ridge Racer demo exists in the function at 800113c0. On every frame, it checks the 16-bit value at 801b9ad0 to see which “mode” should be executing. There are 30 modes in total. The title screen is mode 3; normal gameplay is mode 1; the main menu is 7.
The mode value serves as an index into an array of functions, each of which implements the logic for the mode.
The demo initially sets the game mode to 2, which loads the title screen. I changed it to 4, which is a text-based title screen for the demo:
80011404 ori v0,zero,0x4 # Set the mode to 4The demo title screen normally sends you straight into gameplay, but I’ve patched it to take you to the Option screen instead. That’s mode 17 (0x11):
80017e68 ori v0,zero,0x11 # Set the mode to 17
80017eac ori v0,zero,0x11 # Set the mode to 17
Why the Option screen? Because the main menu doesn’t load properly if you go straight into it from the title screen. This is of course fixed in the final version.
In my patched version, I set the camera mode from its default (camera mode 1) first-person view to the alternative third-person view (camera mode 3).
80012434 ori v0,zero,0x11 # Set the camera to 03As noted above, the camera angle switching isn’t implemented in this build. So with the first-person view, you can’t see which car you’re driving:
Lastly, I changed the Game Over screen to send you back to the title screen so you can play again:
8002b144 ori v0,zero,0x11 # Set the mode to 4It’s cool how much changes when five instructions are altered, isn’t it?
Outro
The dates on the files for this demo of Ridge Racer suggest that it’s from around 1994-10-19. That’s only 21 days before the final Japanese build (1994-11-09), so the developers got a lot done in the final weeks before the game went gold1.
There’s not a lot of PlayStation software that’s older than this. Ridge Racer was a launch title, and has the serial number SLPS 00001. This same demo disc has a few older executables2, and the retail version of Crime Crackers is from the same day. But this demo definitely represents the earliest days of PlayStation gaming.

Thanks for reading. If you liked this article, check out the other ones I’ve written about finding hidden content on prerelease demo discs. I’ll have more soon, so stay tuned.
Note that timestamps from the era before every computer clock was synchronized over the Internet aren’t always accurate.
A Ressha de Ikou 4: Evolution, Hamlet, and Tama: Adventurous Ball in Giddy Labyrinth, and VictoryZone all have executable files with timestamps in October, 1994. It’s also got a build of Mahjong Station: MAZIN from late September, 1994.


















Really cool how full builds or almost finished builds are on the various demo discs.
The aura on that text-based title screen~