Under the Microscope: Tokyo Highway Battle: Drift King ’97

American and European Saturn owners didn’t get to play Genki’s Tokyo Highway Battle — it only came out for the PlayStation in those regions. A Saturn version was published in Japan (as Shutokō Battle ’97), however.

The game is pretty much the same on both platforms, so when Malenko pointed me to a magazine with a cheat code for the PlayStation version, the question naturally arose: can you do the same thing on the Saturn version?

Answer: yes! The Saturn code is different, but it will also grant you lots of points — and a bonus.


The Saturn code

It turns out that you can get a points boost in the Saturn version. Enter this button sequence at the title screen:

AAAA AAAA ACCC CCC

That is, A nine times and C seven times. After that press Start and enter Scenario mode. Don’t load an existing save; just choose Exit at the Backup RAM screen:

When you go to the Bandoh (Speed Shop in the fan-translated version) screen you’ll see that you have 9,999,999 points available:

On the car select screen you can press Z to get the Type-VW car. Pressing X lets you change your car’s colors:

As far as I can tell, this effect isn’t in the PlayStation version!


Technical details

This code is relatively easy to find for Saturn, once you know what it does. Searching for 9,999,9999 in hex (0098967f) gives a few results. The first one is at 06033a48, and it’s the one we need.

If I add some labels to Ghidra’s decompilation of the function that references this value, we can see what’s going on:

At first, pressing A increments the button_counter_ variable. After 9 presses, pressing C increments it. Once Start is pressed, the value is checked — if it’s equal to 0x10 (16 in decimal), then the effect is applied.

The “search for 9,999,9999” trick doesn’t work on PlayStation! This is because (a) it encodes for 10 million instead of 9,999,999; and (b) it loads the value in two different steps. Here’s the assembly:

# Load 0x98 into the upper bits of v0.
80074a28 lui v0,0x98

# Load 0x9680 into the lower bits of v0.
# Now we have 10,000,000 in v0.
80074a2c ori v0,v0,0x9680

# Store the value at 0x8006df41
80074a30 lui at,0x8007
80074a34 sw v0,-0x1fe0(at)=>points_total_01

I checked both versions for additional cheat effects and didn’t come up with any, alas.


Outro

Many thanks to Malenko for the tip. He previously suggested the investigations that led to the English patch for Kingdom Grandprix and the four-player patch for High Velocity.

For other articles about finding long lost cheat codes, see my archive. Which other games have codes for one platform but not another? Tell me and I’ll examine them…

This article is syndicated from Rings of Saturn, Bo’s reverse engineering blog.

About the author

Be the first to comment

Leave a comment

Your email address will not be published.


*