Under the Microscope: Phantasm

In this edition, we’re examining Phantasm, the Saturn port of the controversial PC game Phantasmagoria. This Japanese-exclusive release featured celebrity voice actors and new music, and spanned a record-setting eight discs.

I noticed something interesting about this game’s title screen. While it’s being displayed, pressing controller buttons causes a buffer to start filling up. Here’s how it looks in the Mednafen emulator’s debugger:

A memory snapshot showing the buffer after pressing B, A, Right, A, C, Up

Checking cross-references to the buffer address in Ghidra reveals that the function at 0601c8e8 reads it. When decompiled, it looks like this:

int FUN_0601c8e8(byte *param_1,byte *param_2,int param_3)
{
  int iVar1;
  
  while( true ) {
    param_3 = param_3 + -1;
    iVar1 = 0;
    if ((param_3 == -1) ||
       (iVar1 = (uint)*param_1 - (uint)*param_2, (uint)*param_1 != (uint)*param_2)) break;
    param_1 = param_1 + 1;
    param_2 = param_2 + 1;
  }
  return iVar1;
}

This function loops through two arrays concurrently, stopping either when their values don’t match, or a certain number of bytes are read. That is, it’s an implementation of memcmp:

memcmp, as described by cplusplus.com

What’s the comparison target? Setting a breakpoint reveals that the second parameter is the string at 060be9c0, which is ACZXBY:

A memory snapshot showing ACZXBY after entry

If you press those buttons while the title screen is being displayed, you’ll get this Game Start / Special Movie screen:

The post-cheat-entry screen

Select Special Movie, and you’ll get… a prompt to insert Disc 7:

CDをDISK7に入れ替えて下さい

Put in Disc 7 and enter the code again to reveal a special movie select screen. The three items are:

  • heath – Traitor
  • Making of Phantasm
  • Fumika Suzuki
The movie select screen

The heath item is a music video of the song Traitor, performed by Hiroshi “Heath” Morie, most famous for playing bass in the band X Japan. According to the back of the game’s box, this is the Phantasm end theme.

A still of Heath from the video

The Making of Phantasm video is a behind-the-scenes mini-documentary. It’s in the original English; it hasn’t been dubbed:

Fumika Suzuki is a sizzle reel showing off the game’s lead voice actress, who was a well-known “race queen” and model in the ’90s. It shows her in swimwear, seductively drinking whiskey, and promoting her car racing team.

I was disappointed to learn that this Fumika Suzuki is not also the decorated physicist.

That certainly wasn’t in the PC version!


Outro

For a thorough examination of the Saturn version of Phantasm, see Peter Malek’s 2023 article at Sega Saturn SHIRO!. And for a re-translated version, check out kitchen34’s patch at SegaXtreme.

If you’re interested in finding hidden things in old games, check out the October 18 edition of Wes Fenlon’s Read Only Memo. It features some comments from me about the recent discovery of cheat codes in F-Zero GX for GameCube.

Thanks for reading. Another Saturn game will go under the microscope next week. In the meantime, check out my blog for more retro game reverse engineering articles.

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.


*