Under the microscope: Steel Reign (PlayStation)
Or, "Extending the demo: Steel Reign (PlayStation)"
In this edition, we’re examining Steel Reign, the futuristic tank game. It was developed by Chantemar Creations (and was the studio’s first and only game) and published for PlayStation by Sony in 1997.
I found a few notable things lurking in builds of this game:
A batch of cheat codes that managed to stay secret for nearly 30 years.
Some normally-inaccessible screens with interesting debugging features.
Pre-release builds of the game on demo discs with different tank names, level themes, and more.
Details are below…
Cheat codes
Cheat sites (e.g. GameFAQs) tend to list three or four codes for this game:
Unlock all tanks: Enter L1, L2, L1, Circle, Square, Circle, Circle, L2, L1, R2 at the main menu.
Enable Super Shields (Invincibility): Enter L2, L1, R2, Circle, Square, Circle, Circle, L1, L2, L1 at the main menu.
Start on the “Martian Surface” bonus mission: Enter L1, L2, L1, L2, R2, R1, Square, Circle, Square, Square at the main menu.
These are correct, but the game is listening for quite a few more codes. In addition to starting on the “Martian Surface” bonus mission, you can enter one of the codes below (on the main menu) to start on any mission you like:
You’ll hear a sound effect if you put in a valid code. After you choose New Game - One Player and select a tank, your chosen mission will load.
The “Unlock all tanks” code above doesn’t persist in your save file; you have to enter it again after restarting. However, this code will unlock all tanks permanently: R2, R1, R2, Circle, Square, Circle, Circle, R1, R2, R1.
There is also an “Unlock the next tank” code that gives you one additional tank per time you enter it: R1, R2, R1, Circle, Square, Circle, Circle, R2, R1, R2.
This code starts the attract mode demo immediately, circumventing the normal idle timeout: Square, Circle, Circle, Circle, Circle, Circle, Circle, Circle.
How do these codes work? The game keeps track of your recent button presses by writing them to the buffer starting at 8008e6cc (NTSC-U version). It then compares that buffer to the array of patterns starting at 80090b3c. The logic is something like this pseudo-Python:
def check_cheat_sequence(history, cheats):
for sequence, cheat_id in cheats:
if history[:len(sequence)] == sequence:
clear_input_buffer()
return cheat_id
return -1A subset of the codes above works on the pause screen as well:
Unlock all tanks: L1, L2, L1, Circle, Square, Circle, Circle, L2, L1, R2
Enable Super Shields (Invincibility): Enter L2, L1, R2, Circle, Square, Circle, Circle, L1, L2, L1
Unlock next tank permanently:R1, R2, R1, Circle, Square, Circle, Circle, R2, R1, R2
Unlock all tanks permanently: R2, R1, R2, Circle, Square, Circle, Circle, R1, R2, R1
There’s one more code that I haven’t mentioned yet. Press R1, R1 on the main menu or the pause screen and you’ll hear a sound effect. But nothing else happens. What’s up with that?
This code seems to be tied to some debugging features that aren’t enabled in the release versions of the game. Entering the button sequence sets the value at 801f8568 from 0 to 1. If that value at 800d6320 is also 1, a Secrets item appears at the bottom of the screen:
As far as I (and Ghidra) can tell, there’s no way to set the second value without hacking. But by changing it manually, we can see the Secrets screens. The one on the main menu looks like this:
It lets you enable invincibility, warp to a level, play music, sound effects, and movies. It also has some items that don’t seem to work – it’s unclear what the Super Tank, Show Vehicles, Compile, and Build All were meant to do.
The pause screen’s menu looks like this:
Once again, not everything works. But View does – it even gives you a cool free camera mode that lets you zip around a level without your tank. Setting Use Physics disables collision, allowing you to clip through obstacle. And Show Timing puts debug info on the HUD:
The prerelease demo
A preview of Steel Reign appears on a few different demo discs:
These are all based on the same build of the game, which predates the final version by at least a few months (my guess is that it’s from June of 1997).
Normally, this preview lets you play through the first mission in single player mode. It lets you select a tank, but doesn’t allow you to see the other menu screens.
These restrictions are controlled by the value at 801f6554. If it’s 1, the game runs in demo mode. If it’s 0, the game runs in normal mode.
Changing these instructions prevents the restrictions from being activated at startup:
8001ea54 lui at,0x801f # Load the top part of the address
8001ea58 sw r0,0x6554(at) # Write a zero to the target addressThis makes makes the main menu load.
The demo version has data for Secrets menu. The function at 8003364c gets called to see if it should be displayed. Changing these instruction alters its return value such that it always answers affirmatively:
8003366c jr ra # Return to caller
80033670 _li 0x1,v0 # Set the return value to 1The Secrets menus call this version Beta1.0J:
You can use the Secrets menu to play Mission 2 (with the Load Level item) – it’s not normally accessible due to the demo restrictions.
What else is different in Beta 1.0J? It’s got a difficulty level that’s not present in the final version: Wimpy.
It also has a different name for the Anaconda tank, Viviparous:
The Arena Selection screen for two player mode shows that the level called The Pit got replaced with another one called Proving Ground. It looks like it’s not just a name change; the preview icons look totally different:
The Ramp Romp and Hot Treads arenas are actually playable. The former has a different color scheme from the final game:
Outro
You can get a patch for the Toys R Us “Test Drive” disc that makes the changes above from GitHub. Leave a comment if you notice anything else that’s noteworthy!
Thanks for reading. Rings of Saturn will be back with another retro game reverse engineering article soon. Subscribe here on Substack to get it as soon as it’s available:
In the meantime, check out the archives for more cheat code discoveries and demo disc patches.



















