Under the Microscope: Keio Flying Squadron 2

In this edition:

  • Keio Flying Squadron 2 has a cool debug mode: it has a stage select menu, hitbox display, a higher jump, and more.
  • The code to enable it seems to have stayed secret for 29 years.
  • But we have it now!

The code is entered on the mode select screen:

Right, Right, X, Left, Left, Y, Up, Up, Up, Up, Up, Z, R, L

Read on for details…


Intro

Keio Flying Squadron 2 was a bit of a zag. The first game in the series was a goofy shoot-em-up, and the name made some sort of sense: you’re generally flying when you play. The second game is generally a platformer, so “flying squadron” is less sensible.

There is one stage where you fly, at least

Although the first game was released worldwide, the sequel didn’t come out in North America. There were PAL releases, however, so the game is translated for and playable by English speakers.

The first game has a level select code, but there weren’t any codes listed for the second one. I decided to investigate…


Debug mode controls

After entering the button code above, some numbers will appear on the mode select screen. When you start the game, you’ll see lots of debug messages fly by.

When the code is entered correctly, the numbers appear in the corner of the screen.

Once you have control, press start to pause the game. The debug controls are as follows:

  • Press R to toggle the debug display
  • With debug display on, press L to bring up the stage select menu
  • With debug display off, press L to start over at stage 1-1
  • Press A to toggle enhanced jumping
  • Press B to toggle invincibility
  • Press C to lose a life instantly
  • Press X to toggle hitboxes
  • Press Y to turn on additional debug messages
Debug display
Level select, hitbox display

Additionally, you can hold X while not paused to advance frame by frame slowly.


Technical details

The function at 0601dddc handles the mode select screen. There’s a section of code in it that looks like this (pseudo-Python adapted from Ghidra’s decompilation):

The code_buttons array looks like this — I’ve added the mappings from bit patterns to button names:

During gameplay, the code starting at 0601032a handles the debug controls.


Outro

For previous “unknown cheat code” coverage, see my archive here at SHIRO!. And for even more retro game reverse engineering articles, see my Rings of Saturn blog.

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.


*