Under the microscope: Krazy Ivan (Saturn, PlayStation)
More like Кразы Иван, right?
Here’s an excerpt from the August 1997 issue of Ultra Game Players:
Finally, THQ, who was originally going to publish several PlayStation conversions of Psygnosis’ games, has cancelled those efforts in the last few weeks. Among the titles that were slated to be brought to the Satun were: Wipeout XL, Destruction Derby XL, Krazy Ivan, Assault Rigs, Discworld, Sentient, and Tenka.
Some of those games were published for the Saturn, but not in the U.S. Missing out on Wipeout XL (a.k.a. Wipeout 2097) was a bummer, since the Saturn version is pretty good. But I think U.S. Saturn owners dodged a bullet with Krazy Ivan — the port is really rough.
Krazy Ivan’s draw distance and frame rate aren’t great on the PlayStation, but it at least looks OK in motion. The Saturn version generally doesn’t — it’s really visually unappealing, and the draw distance is so bad that you often can’t tell which enemies are shooting at you.
Both versions have some hidden secrets, however! Below are details on how to access cheat menus that make playing a bit easier.
The Saturn version
This version of Krazy Ivan has a cheat menu that you can enable from the mode select screen. Enter this button sequence quickly:
Y, A, Z, Z, L+RThe cheat menu will pop right up. Its items do what you would expect:
LEVEL: changes your starting level.
AMMO: set it to unlimited to never run out.
WEAPONS: full gives you all of the available ones.
HEALTH: lets you be comes invincible.
Technical details: When I’m cheat code hunting, I usually start by identifying where in memory a game stores input in memory. Then I set a read breakpoint in the emulator for the memory addresses that change when you press a button.
For Krazy Ivan, this process led me to some code that checks your button presses against a fixed sequence. There’s a counter (at 06079410) that keeps track of how many correct button presses you’ve made. It also serves as an index to an array of jump targets. The code at each target checks for the next button. The last one enables the cheat menu.
Here’s how Ghidra’s decompiler renders the logic (my labels are added):
The PlayStation version
User Hacc at GameHacking.org noticed over a decade ago that this game has a cheat menu, and published an Action Replay code to activate it:
RAM Write - Writes 0x00FF to the RAM address 0x800BB078.
The following features are enabled:
- All arenas unlocked
- All weapons and infinite ammo
- Infinite health
- Suicide ('End Dead' option in pause menu)
- Level skip ('End Completed' option in pause menu)
- Debug menu (press Select at main menu)Is there a way to get to this menu without memory hacking? Yes! At the mode select screen, enter this sequence quickly:
Square, Square, Triangle, Circle, SquarePress Select to open the alternate mode select menu:
Play Game does what you would expect. Two Player bypasses the link initialization, interestingly. Record isn’t the high scores, it’s some sort of auto demo recording function. Robots is a a sort of stage select. PAL doesn’t really work; it gives an error message.
During gameplay you get the extra pause menu items that were promised in the Action Replay code description:
Technical details: The function at 80016d6c does the cheat code checking in this version. It uses a common pattern:
There’s an array with button patterns.
When you press one of the buttons in the sequence, the counter that serves as an index to the button array increments. Also, a timer starts.
If you press another correct button before the timer hits its threshold value (30 here), the counter increments again and the timer resets. Otherwise, the counter goes back to zero.
Once you reach the end of the sequence, a function is called to apply the effects.
Here’s my annotated Ghidra annotation:
Outro
For previous coverage of long lost cheat codes, see my archive. Which other games should I be examining? Tell me in the comments!









