Under the Microscope: Gun Frontier

Xing Entertainment did a series of ports of old arcade titles for the Saturn and PlayStation under the Arcade Gears banner. One of the titles was Gun Frontier, a Taito shooting game from 1990 with a combination space/western theme.

The arcade version has some things hidden on it — see TCRF’s article about the level select function and test mode. How about the Saturn version? I found two cheat codes that I think are new, and both are somewhat notable in their absurdity!


Adjust credits

The first one is this: on the Option screen, press the C button 50 times. A new CREDIT item will appear.

This game beats Shinobi Legions for longest code sequence! The debug code for that game involves pressing only 40 buttons.


Stage select

The second one is this: plug a light gun in as controller 2. Then shoot the option screen. You’ll see an explosion, and new CREDIT and STAGE items will appear.

I wasn’t expecting the explosion effect, haha — here’s a video of it:

Did anybody know that this game had light gun support? I suppose it makes sense given its name.


Technical details

I like to look at the options screen for games, because by diffing memory snapshots before and after you make a change, you can learn where different parameters are stored.

For Gun Frontier, the options menu cursor variable (which item you’re pointing at) is stored at 0607a700. If you press Down, the value increases, and if you reach the bottom, it wraps around to 0. The code at 0600ccd4 looks something like this:

if (p1_button_press & DOWN_BUTTON) != 0:
    option_cursor += 1
if cursor >= option_limit:
    option_cursor = 0

Where does it get the cursor_limit? It’s stored at 0606d560. What sets the value? Following the references leads to the function at 0600c92c, which seems to set it to either 6 or 7 in response to player input. Here’s Ghidra’s decompilation with my variable names and comments:

The “Press C 50 times” block is straightforward — pressing C increments a counter; if that counter reaches 50, the option limit increases to 6.

The “Plug a Virtua Gun in as controller 2” block took me a while to figure out. The Saturn knows what type of controller you have plugged in, and each type gets a number. You can watch it change if you’ve got a 3D Control pad: flipping the analog/digital switch will make the value at 0605f7dd change from 02 to 16.

I didn’t know what type this game was looking for, so I tried the Shuttle Mouse and Mission Stick before trying the gun. I should have thought of that first!


Outro

For more coverage of long lost cheat codes, see my collection of articles here.

Feel free to use this information elsewhere, and send me your suggestions for what to examine next!

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

About the author

Readers Comments (2)

  1. Wasn’t sure where else to post this. I’ve been watching Shiro recently and saw how some games you simply hammer the C button on the title screen to access cheats. Tried it on Shienryu and lo and behold, press it 10 times to start increasing your credits, 10 more and you’ll turn on Free Play. Works in both Arcade mode and Saturn mode. Couldn’t find it mentioned online too

Leave a comment

Your email address will not be published.


*