Under the Microscope: Asuka 120% Limited BURNING Fest.

In this edition we’re analyzing Asuka 120% Limited Burning Fest. for Saturn. This game, like the rest of the ones in the Asuka 120% series, didn’t get released outside of Japan. However, there is a translation patch that makes it accessible to English players.

It’s well known that the game has two hidden characters: Tetsuko Ougigaya and Genichirou Shindou. The official way to unlock them, according to my favorite cheat site, is to play the game for 20 hours.

I found another way, however! Below are instructions on how it works and details about how the game code implements it.

Tetsuko versus Genichirou

How to cheat

Start by selecting CONFIG MODE from the main menu:

Once you’re there, press L to access the VS OPTION screen:

Next, follow these steps:

  • Use controller 1 to set Player 1’s “handycap” to 3
  • Use controller 2 to set Player 2’s “handycap” to 7
  • Unplug both controllers from the system
  • Plug them both back in at the same time

The “plug them both in at the same time” part is key — if you hear two sound effects play instead of one, try again.

If you got it right, you’ll have new characters available on the Character select screen. Press Up on the top row to reveal Tetsuko Ougigaya:

And press Down on the bottom row to reveal Genichirou Shindou:


Technical details

Some RetroAchievements.org hackers have done a bunch of legwork for this game already. In particular, they have noted that address 0x1777ad indicates the number of unlocked characters.

The RetroAchievements memory space has two Saturn memory areas smashed together:

  • RA addresses that start with 0 map to the “Low work RAM” area (0x02000000 through 0x020fffff)
  • RA addresses that start with 1 map to the “High work RAM” (0x06000000 through 0x060fffff) area.

But for some reason there’s an extra 0 in between the two areas, so you have to adjust by 1 for High Work RAM addresses. 1777ad thus maps to 060777ac.

Tracing writes to that address in Ghidra leads to the function at 0600bee0. It’s got a section that looks like this:

Fiddling around reveals that 060777be is player 1’s “handycap” and 060777bf is player 2’s. That takes care of two of the checks, but what’s the third?

Tracing writes to 060777ac leads to the function at 06006e38. Its code is more complicated to translate, but here’s an outline:

  • When a controller is plugged in to port 1, the value at 06083d52 is 02
  • When you unplug it, the value changes to ff
  • When you plug it back in, it returns to 02
  • The game checks for a transition like this for both controllers

Pretty strange! If you want to skip the controller stuff, this Action Replay code should unlock the characters for you:

360777ac 0002


Outro

Many thanks to Malenko for troubleshooting the steps above on Saturn hardware. Thanks also to privateye for testing out the Action Replay code.

For many more cheat code discoveries, see my archive here at SHIRO!. And for more retro game reverse engineering articles, see my Rings of Saturn blog, which will have some special Dreamcast content very soon.

About the author

Bo Bayles

Rings of Saturn: 32bits.substack.com

Be the first to comment

Leave a comment

Your email address will not be published.


*