This article is about the 2001 PlayStation game M&M’s Shell Shocked. The game’s manual explains the setup:
Yellow has made the biggest mistake of his peanutty life-he left the M&M's® MINIs® in charge of the candy factory! Needless to say, it's a candy-coated catastrophe. In no time flat, the tiny, hysterical candies turned the factory upside-down. All of the M&M's® candy formulas have been lost […] Get to the factory and put things right before the Big Boss finds out!
What could possibly be interesting about a candy themed Crash Bandicoot clone? Lots, it turns out — the programmers put in some Easter eggs that have stayed hidden for 24 years:
A button code that unlocks every level
A button code to activate a cheat menu with level select, invincibility, and more
A button code that makes the programmer’s name scroll across the screen.
Below are details about what they do and the reverse engineering that went into finding them.
Unlock all levels
Start a new game. Enter this sequence at the levels select screen:
Down, Left, Right, L2, Up, R1, Down, R2
All of the Closed stages will be marked as open:
Cheat menu
Enter this sequence at the level select screen:
L1, L2, Left, Right, Up, Down, R1, R2
A new screen will pop up, the colorful cheat menu:
Print puts something like coordinates at the bottom of the screen:
Yellow Off turns off the display of your Yellow M&M:
God Mode is pretty handy:
You can’t die
You can press Triangle to reset your position (like if you fall into a pit)
You can press R1 to get extra lives
You can press R2 to skip a level
You can press L2 to look at loaded sprites
It’s unclear what Run Mode does. Music doesn’t do anything.
Video looks a little buggy, but it works. Level Choose Level does what you would expect:
Programmer’s name
Enter this sequence at the level select screen:
Left, Up, Right, Down, L1, L2, R1, R2
This message will start scrolling:
PSX Programmer Kazlitin Andriy, 2001
Technical details
User Hacc at GameHacking.org posted an Action Replay code for unlocking all levels:
Following references to the RAM address shown (using Ghidra) leads to the function at 80043d78
. It makes a series of calls like this:
if FUN_800437c0(DATA_8019b22c) != 0:
levels_available = 0x06
if FUN_800437c0(DATA_8019b258) != 0:
levels_available = 0x09
# ...
if FUN_800437c0(DATA_8019b360) != 0:
levels_available = 0x1b
When the function at 800437c0
is called with different arguments, it has different effects. Those arguments are references to data structures that have these elements:
A counter: This keeps track of how many correct buttons you’ve pressed.
A timer: This seems to determine how long before the counter resets and you have to start input over.
Eight pointers to inputs: Each pointer indicates a location that is set to a nonzero value when you’re holding a particular button.
In addition to the “unlock all” code above, the game also recognizes these:
Unlock 6 levels: Left, L1, Right, L2, Up, R1, Down, R2
Unlock 9 levels: Start, L1, Right, L2, Up, R1, Up, R1
Unlock 12 levels: Left, Start, Right, L1, Up, R2, Up, R2
Unlock 15 levels: Left, L1, L2, Down, R1, Right, Up, R2
Unlock 18 levels: Right, L1, L2, Down, R1, Down, Left, R2
Unlock 21 levels: L2, L1, Start, L2, Up, R1, Up, R2
Unlock 24 levels: Right, Left, Down, R1, Up, L1, L2, R2
Interestingly, Hacc also knew about some of the cheat effects:
Now we know how to access them without AR codes.
Outro
MobyGames tells me that the programmer mentioned above, Kazlitin, also worked on a Skittles themed game called Darkened Skye. Will it be featured in a future edition of Rings of Saturn? Possibly so…
For more articles on cheat code discovery, see the archive. Tell me which other games I should be examining!