Under the Microscope: Golden Axe: The Duel

In this edition:

  • I’ve made a patch to enable a hidden debug menu in Golden Axe: The Duel.
  • It lets you play as the final boss, display hit boxes, adjust game parameters, and more.

Get the patch from SegaXtreme. Here’s a video!


Intro

Golden Axe: The Duel is a strange entry in the Golden Axe series. It’s not a beat-em-up; it’s a 2D fighting game. You play as “descendants” of the classic characters from the original games rather than the classic characters themselves (to be fair, Golden Axe III did this, too). There are special moves you can learn for each character, but it’s not deep like other Sega fighters.

I started looking into it because I wondered if the final boss, G. Axe, could be made playable. He’s got sprite models, he’s got moves… is there anything really stopping you from controlling him?

The answer is: you definitely can control him. Krizalid99v2 already figured it out, and you can see a video of playable G. Axe here.

So what’s my contribution? While looking around, I found that the game has a cool debug mode that’s remained secret for the last 29 years.


Technical details: debug mode

It’s almost always useful to glance through Ghidra’s Defined Strings list. I’ve found lots of things with it: game passwords, hidden menu items, references to unused features… Lots of games put interesting things in plaintext.

Golden Axe: The Duel has a string that stands out: DEBUG MODE (at 0604af88). Following references to it, I found the function at 060950e8.

That checks a bunch of conditions. By fiddling around with them, I found that you can make a menu pop up on the character select screen by setting the following addresses to the value 01: 06066024, 06066029, 0606602b.

The debug menu activated

Cool! The screenshot is a little hard to read, but the options are:

  • 1P Name
  • 2P Name
  • Stage Number
  • Potion Count
  • Adjust Patn Bias
  • Display Status
  • Display Collision
  • Timer Stop
  • No Death
  • Magic Point
  • Disable Blood
  • Vitality Up

Once it’s active, you can dismiss it with button L.


Playing as G. Axe

The first menu item satisfies my original curiosity: you can pick G. Axe from the list and play as him. Curiously, he is marked as “Not available.” But if you wait for the timer to count down, he will be selected.

You have to let the timer run out to select G. Axe, curiously.

He seems to have a limited set of moves when you’re controlling him. If he has special ones, they’re behind button combinations that I haven’t tried to figure out.

Interestingly, when you choose G. Axe as the first character, the second character always gets set to G. Axe too. You can override that with memory editing (06078182 and 06078183 store the character indexes).

G. Axe versus G. Axe

Other debug features

The other debug menu items are pretty cool: I particularly like Display Status, which shows the move you’re currently executing:

Underneath your health bar is your current move.

The Display Collision feature is also compelling:

Even the things in the background have hit boxes.

I didn’t remember there being much blood in this game, but there is some. Disable Blood does indeed control it:

This is supposed to be blood

Some of the menu items I don’t understand. Adjust Patn Bias? Magic Point? If you can explain them, let me know!


Future work

There’s sort of a lesser version of the debug menu available. It only lets you pick characters, including G. Axe. I’m not sure why!

I think there might be a way to activate the main debug menu without hacking, but I’m not sure. Part of it involves a button code, but there’s more to it that I’ve not been able to trace. The sequence is something like:

  • After a reset, press Start at the title screen
  • Highlight Versus mode
  • Enter the code: Up, Up, Down, Down, Left, Right, Left, Right, Down, Up, Down, Up, B, A
  • ???
  • Just before a match starts, press Start and then L
  • The debug menu works

If I can figure out the ??? parts, I’ll make a post about it! The function at 06090ea checks for the code.

Here’s my patch list for making the Debug Mode menu work on the character select screen. It gets rid of the unknown conditions and allows for the menu to work on the Character Select screen (these are for the Japanese version):

0608015e e001
0609516a e001
0609517a e001
0609518a e006
060951f0 e001
06095182 e001
0609518a e006
060951aa e004

Outro

If you like hidden debug modes, see also:

Which other games should I be examining? Send me your suggestions!

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

About the author

Leave a comment

Your email address will not be published.


*