Under the microscope: Q*bert (PlayStation, Dreamcast)
Restoring a broken feature in the Dreamcast version of Q*bert
In this edition, I’m examining Q*bert, the 1999/2000 version of the classic arcade game. This was published by Hasbro Interactive for the PlayStation and Dreamcast.
I found a cheat code for the PlayStation version that seems to have gone unnoticed for the last quarter century. It gives you the ability to skip levels, make yourself invincible, and grant yourself extra lives.
I checked out the Dreamcast version and found that some of these features are present in it, but they’re inaccessible. So I made a patch to restore them - get it from SegaXtreme.
Details are below…
The PlayStation version
Enter this sequence on the mode select screen:
Triangle, L2, Triangle, L2,
Circle, X, X, Circle,
L1, R1, Left, RightYou’ll need to give each button a moment to register, especially after pressing X.
If you got it right, you’ll be able to do this:
Press Triangle until you’re back at the mode select screen.
Select Adventure.
Select the first dimension. Only the first level will be available to play.
Press R1+R2 and then Triangle.
Return to the first dimension. All of the levels will be available to play.
Move the cursor to the last level for the dimension.
Press L2 and then Triangle. The next dimension will be available to play.
During gameplay, the pause menu will have a new Cheat item. You can use it to give yourself extra lives, make yourself invincible, and adjust your rank:
Invincibility is a little bit of a letdown: it doesn’t prevent you from losing a life by falling off the cube structure, and if you do lose a life, you’ll have to re-apply the setting to remain invulnerable to objects.
Technical details: The Cutting Room Floor’s article on Q*bert describes the Cheat item in the pause menu. It says that the Action Replay code for activating it is:
800BA2A4 00000005The memory at the addresses in that code - 800BA2A4 - holds the value associated with the pause menu cursor. It can normally vary between index 0 (Return to game) and index 4 (Quit game). If you go past 4, it wraps back around to 0.
The end of the range is set by the value at 800BA2A0, one DWORD over from the cursor value. Tracing writes to this address led me to the function at 8002d798, which checks button input against the sequence at 800baed4:
800baed4 1000 0000 # Triangle
800baed8 0100 0000 # L2
800baedc 1000 0000 # Triangle
800baee0 0100 0000 # L2
800baee4 2000 0000 # Circle
800baee8 4000 0000 # X
800baeec 4000 0000 # X
800baef0 2000 0000 # Circle
800baef4 0400 0000 # L1
800baef8 0800 0000 # R1
800baefc 0080 0000 # Left
800baf00 0020 0000 # RightIf you get all of button presses right, the flag at 800c7988 gets set to 01. And if that flag is set, the pause menu wrap value is set to 06 instead of 05.
The Dreamcast version
Alas, none of the cheat handling code is in the Dreamcast version of Q*bert. The mode select screen code is totally different, and there doesn’t seem to be a shortcut for unlocking levels.
The pause menu code is very similar to the PlayStation version’s, however. It also checks a check a flag value to see how many slots to allocate for the menu. If the flag is set, it allocates 6.
There’s only one problem: 6 is the default number of menu slots - the Dreamcast version has a Vibration item that isn’t present in the PlayStation version.
But all is not lost - my patch changes the default number of slots from 6 to 7, which adds the Cheat item to the bottom of the list.
This value is stored at at 000cb36c in QB.EXE (Q*bert is a Windows CE game, so this is a Windows executable).
Outro
Welcome new subscribers! Thanks for reading. I’ll be back next week with more Rings of Saturn. Check out the New codes for old games page for more articles about cheat code hunting in the meantime.









Bo, can you do Blast Wind on the Saturn? I wager there is a TATE mode hidden in there someplace.