The GameFAQs page for NHL Rock the Rink lists a collection of “Misc. Passwords” that have been copied and pasted across the Internet for 26 years:
There’s one problem with these: the game doesn’t have a password screen.
What gives? To find out, I loaded the game binary into Ghidra to trace its string handling code. It turns out that the special strings are player names, not passwords.
While tracking this down, I stumbled upon several other not-actually-passwords that activate special features in the game. Some enable extra teams, others unlock cheat effects, and others are stealthy references to the development staff.
Details are below…
The cheat detection system
Searching the game data for the strings shown on GameFAQs leads to the function at 8001cd2c, which uses each one as a parameter in a BIOS function call:
li t2, 0xa0 # Load address 0x000000a0
jr t2 # Jump there
li t1,0x17 # Select function 0x17BIOS function 0x17 is strcmp, the string comparison function. What’s the comparison target? It turns out that it’s the player name that you’re prompted to enter when you start a new game:
There are 14 special names, which means we have quite a few new cheat effects. Two notable ones are JOUDREY and WALL, which (like the previously-known BAILEY) unlock extra teams. Normally the game has you play fictional teams (like the Cabbies). But these are real NHL teams - you normally have to win in NFL Challenge mode to access them.
These work by setting every 16th 32-bit value starting at 80091a98 from 0 to 1. Here’s the full set of teams unlocked by each name:
These names unlock the items on the REWARDS screen:
Sound effects: NO CHANCE
Gameplay: BREAKAWAY
Puck: IVEGOTGAME
Boards: POWER SLAM
Nets: BULLDOZER
Players: LOVE TAP
Arena: AIR MAIL
All of these are new except for POWER SLAM and NO CHANCE. These work by setting every other 1-byte value starting at 8008323c to 255.
These three special names unlock the team upgrades that you can select before starting a game: SHUSTER, GERGES, and FORSHAW:
The best of these is FORSHAW, which unlocks everything. These names are references to the developers Kurt Shuster, Botros Gerges, and Dave Forshaw.
Another function, the one at 80020bc8, checks for the IAMWEAK name mentioned on GameFAQs. It also checks for HARVEY, and if it detects it, it sets the 1-byte value at 80090dab to 1. This does something when you score a goal, but I couldn’t really tell what it was.
If you’re a fan of this game and can detect subtle changes in the goal celebration animations, leave a comment. For what it’s worth, John Harvey was the lead programmer for this game.
Outro
Thanks for reading. I’ll be back with more adventures in retro game reverse engineering soon. Check out the archive in the meantime.









