In this edition:
Rabbit Mihonhin is a demo version of Rabbit, the quirky 2D fighter. The demo only allows you to play two characters and to win two fights, but it contains a more-or-less complete build of the game.
I made a patch to lift the demo restrictions so you can explore the build, which seems to be a late prototype.
I also stumbled upon some hidden options that I think were unknown to the English-speaking world.
I contributed some of the work here to Derek Pascarella’s English translation patch. That’s the version to play if you can’t read Japanese!
You can get my patch that allows you to explore the Japanese demo from SegaXtreme. Here’s a video of it in action:
Intro
Rabbit is a Saturn game from Aorn, a developer that seems to have existed only long enough to put out this game1. It’s a 2D fighter with a gimmick: a spirit animal fights alongside your character. You start with one, and then you collect extras as the game goes on.
Rabbit Mihonhin2 is a demo disc with a limited sample of the game. It lets you play as either Wu-Ling or Rex for two fights before ending and showing you the “Coming soon” screen.
Did the developers actually put an entire build of the game on the demo disc? Yes, they did. Is it a prototype? Maybe: the demo’s IP.BIN data indicates that it’s from a month before the final game. But the final version has unclear dating3. In any case, there are some differences between the two versions.
Below are technical details on how the restrictions work, plus some notes on extra options that I found while playing around.
Unlocking the Options screen
The first demo restriction you’ll encounter is on the mode select screen. You can only choose ARCADE from the list.
The function at 0603a1d2
is listening for controller input. If you press down, it tries to increment the value at address 060154a2
(the mode select cursor index), but then resets it back to 00
shortly afterward.
Comparing to the final version’s mode select code (which lives at 0603a1b6
), the difference seems to be right at the beginning: the demo sets register 12 to 00
, which later gets written to the cursor’s address. The final version sets it to 01
. The in-memory changes are:
0603a1da ec02
0603a402 2dc1
With that fixed, we can get to the Option screen, even though there’s no OPTION item in the demo.
The demo’s Option screen doesn’t look any different from the final version’s, but it does have some hidden secrets: if you finish the game enough times, you get extra items.
Here are Action Replay codes to unlock everything:
Demo: 16015352 0010
Final: 16014c28 0010
The Zoom feature is nice! I’m not sure what the “stock” options mean.
These options are unlocked by default in the English patch mentioned above.
Accessing the disabled characters
The next demo restriction is on the character select screen. Normally everybody but Wu-ling and Rex are grayed out:
As before, there’s a function listening for input controlling a cursor variable. Here the function lives at 0603d638
. When you press right, it changes the cursor variable to 01
. When you press left, it changes it to 00
.
I rewrote the code to make the cursor variable count up to 08
. The disassembly is shown below:
0603dab8: mov.w @(r0, r10), r0 # Read the cursor position
0603daba: add #1, r0 # Increment it
0603dabc: cmp/eq #9, r0 # Check whether it's at 09
0603dabe: bf 0x0603dac2 # If not, skip ahead
0603dac0: mov #0, r0 # If so, reset it to 00
0603dac2: mov r0, r12 # Stash the new value
0603dac4: mov @r14, r0 # Locate the cursor position again...
0603dac6: extu.b r0, r0 # ...
0603dac8: shll, r0 # ...
0603daca: bra 0x0603daf6 # Go to the next section
0603dacc: mov r12, @(r0, r10) # Store the new cursor position on the way out
This not only lets us choose the other characters, but it also gives us access to the normally-unplayable boss, Zao-long.
I’m not the first to have figured out that Zao-long is playable: Krizalid99v2 figured it out in 2018!
I’ll leave the VS mode character select screen as an exercise for the reader.
Lifting the fight limit
One more thing: you can fight two characters before the demo ends with the Game Over and Coming Soon screens. Let’s fix that…
There’s a big, complicated function that lives at 06044d2c
. It seems to control mode switching, among other things. It’s got this block in the demo that’s not there in the final version:
It’s mostly inscrutable without labels, but the circled part is what matters: if we’ve finished fewer than 2 fights, we get to keep going. We can patch out the jump the end-of-the-demo section as follows:
06045982 8928
Now we can not only continue fighting, we can finish the game and see the credits:
The fighting game that fights back
OK, that was almost the last thing. I translated all of these memory edits into file patches, edited the disc image like usual, and found… the game refuses to work! What’s the deal?
It turns out that this game has some sort of integrity checking function. On the demo it’s handled by the function at 060072ea
. If a file doesn’t come back with the expected checksum, the game tries to load it again.
We can turn that off with this memory change:
0600689c 0009
No other games I’ve messed with do this. I don’t think it’s an anti-tampering thing - why would it try to load again if so? I guess they didn’t trust the CD error correction.
This was my main contribution to the English patch mentioned above - the game would have rejected the translated files because of this integrity checker.
Outro
Cabbusses pointed out to me that there’s also a Rabbit demo on the Tech Saturn 1997-09 magazine disc. This one has similar restrictions to the standalone demo, but it’s missing files, so we can’t unlock the extra characters.
That’s all! Enjoy Rabbit Mihonhin. For previous “there’s more to this demo disc” coverage, see:
If you’re aware of any other Saturn games with extra content, let me know about them.
Maybe they also did Flame Gunner? Sources differ.
Or maybe Rabbit Taikenban? The IP.BIN data calls it that.
The IP.BIN data for the final game says it’s from 1997-06-27, but how could it have been built on its release date? My guess is that both the demo and final were built in late May 1997.
The demo's title screen also refers to it as Rabbit Taikenban.