Prince of Persia 3D was a 1999 PC game from Broderbund. Avalanche Software developed a Dreamcast port of it, that was released in 2000 as Prince of Persia: Arabian Nights.
Reader foxx pointed me to some suggestive strings in this game’s binary.
8c0b9f6c "Game Cheats"
8c0b9f78 "Instructions: XXX"
8c0b9f8c "Difficulty: XXXXXXXXX"
8c0b9fa4 "Blood: XXX"
These look like they’re part of a cheat menu, don’t they? Can this menu be made to appear?
Answer: yes! I’ve made a patch to enable it — get it from SegaXtreme.
Technical details
When you open a menu in this game, the value at address 8c0cda1c
is updated with a pointer to the data for that menu. The mode select screen sets it to 8c0c36f4
, which points to an array of structs that look like this:
16 bytes representing parameters
A pointer to a function
A pointer to a string
A pointer to another menu struct
The function initializes the menu data, and the string is the menu item text: New Game, Load Game, etc.
The cheat menu strings mentioned above are referenced in structs like this. I changed the last pointer for the Controls menu item to point to them with this patch:
8c0c3768 68350c8c # Point to the cheat menu structs
The cheat menu
Hahaha, what? For some reason this special menu is in German, but they didn’t know what to call Cheats in German1?
That menu allows you to choose a level, how much health you have, and how many bottles you have:
It works! If you choose New Game from the main menu after this, you’ll start on the level you chose:
The Speil Mode menu doesn’t seem to work as well — I couldn’t really detect a change in the difficulty level or amount of blood:
The Optionen menu just seems to freeze the game — it feels like this is not really meant for the Dreamcast version:
The Steurerungen option takes you to the normal Controls screen. The Sound/Musik options take you to the normal Sound screen.
More unused menus
I noticed some more seemingly unused strings in the menu data, so I did the same trick above to make them show up. 8c0c3660
is an alternative save/load menu:
New Game works, as does Restore Game. Delete Game doesn’t seem to have an effect — you can select a save, but it isn’t actually erased.
Under Save Game you can choose a name as well as a slot:
However, if you restore a game created here, you’ll be stuck in some out of bounds place when in starts.
Interestingly, it looks like some save names were meant to be special: the game compares what you enter to these strings:
xxxxxx
sqv1rt
bvggy
gh0st
xxxyyy
It’s unclear what the effect would have been, though. Notably, bvggy is used as a cheat code in Rampage 2, also developed by Avalanche.
Outro
Thanks to foxx for the pointer! Tell me in the comments which other games might have hidden secrets like this.

Ironically, the German word is also just Cheat.
I have a game patched with your old patch now. I can't figure out how to get to the screen where you can enter words (eg gh0st), I don't have such a screen?
Hi, I can't patch the game. Universal Dreamcast Patcher v1. 7, v1. 8 gives an error.