Blazing Dragons was an animated TV series created by Monty Python alum Terry Jones and entertainment industry wizard Gavin Scott. It ran for two seasons between 1996 and 1998.
This article is about the video game adaptation of the show, which was developed by The Illusions Gaming Company and published by Crystal Dynamics. It’s an adventure game — you’re presented with a series of scenes with elements that you can interact with. It also features a few different mini-games, like “Cat-A-Pult” and “Thumb Wrestling.”
Both the Saturn and PlayStation versions of this game have a cheat code that seems to have stayed hidden for 30 years. Details on how it works are below!
Thumb Wrestling mode
When you boot up the game, you’ll first see a series of intro movies. After those play, a copyright screen appears:
You can start entering the long-lost cheat code on the copyright screen. The button sequences are:
- Saturn: R, C, B, Y.
- PlayStation: R2, Circle, X, R1.
You’ll hear a sound effect if you entered the code correctly.
When the main menu appears, select Options. Entering the code adds a new item to it: Thumb Wrestling.
The new Thumb Wrestling menu allows you to:
- Wrestle Wimpy Human Opponent: Play against a human opponent — requires a second controller.
- Wrestle Wimpy, Ordinary, Studly, Fiend, & Super-Fiend Loungelot: Play against a CPU opponent with various difficulty levels.
- Wrestle Nobody: Return to the previous screen.
All of the opponents look the same. Press Left and Right to position your dragon’s thumb. Press one of the face buttons to attack.
Once your opponent is pinned, press the shoulder buttons to fill up the meter. If your button presses are faster than your opponent’s, you win!
Technical details
You can tell that this is a cross-platform game from its code. The things that require hardware-specific interactions are abstracted out into functions that the core logic calls.
Case in point: the game represents each controller button with a number between 1 and 8. It uses a series of functions to access the relevant system input signals, and then maps those to the numbers it needs.
Here’s a cleaned-up version of Ghidra’s decompilation of the Saturn version’s mapping function (which curiously has a ninth return value that can never be reached):
int get_mapped_input_0022aa10(short controller_index) {
if (check_input_a_002118c8(controller_index)) return 1;
if (check_input_b_00211934(controller_index)) return 2;
if (check_input_c_002119a0(controller_index)) return 3;
if (check_input_x_00211a0c(controller_index)) return 4;
if (check_input_y_00211a74(controller_index)) return 5;
if (check_input_z_00211adc(controller_index)) return 6;
if (check_input_R_00211b44(controller_index)) return 7;
if (check_input_L_00211bac(controller_index)) return 8;
if (check_null_00211c14(controller_index)) return 9;
return 0;
}
Sticking with the Saturn version, the function at 00203560 uses this input mapping function to check for the sequence of button presses described above. Here’s a slightly abbreviated version of Ghidra’s decompilation of part of that function:
short cheat_buttons[8] = {7, 3, 2, 5, 7, 3, 2, 5};
/* ... */
if (cheat_effect_00232660 == 0) {
button = get_mapped_input_0022aa10(0);
if (button != 0) {
next_counter = counter + 1;
if (button != cheat_buttons[counter]) {
counter = 0;
}
else {
counter = next_counter;
if (next_counter == 4) {
cheat_effect_00232660 = 1;
play_sfx_0022b3f0(0);
}
}
}
}
The PlayStation version has substantially identical code.
Oddly, the cheat_buttons array has eight entries. But the game stops checking after the first four are entered. I think this is a bug — somebody seems to have had a change of opinion on how long the sequence should be but forgot to sync things up.
Outro
There will be another Saturn game under the microscope next week here at SHIRO!. In the meantime, check out my blog for more retro game reverse engineering articles.
Discover more from SEGA SATURN, SHIRO!
Subscribe to get the latest posts sent to your email.






Be the first to comment