TECHNICAL OVERVIEW & SYSTEM DOCUMENTATION
What is Quake II N64 Passcode Encryption System?
Quake II on the N64 uses a password system which encodes values such as level number, health and a list of weapons into a 16 digit password.
This generator allows you to customize those values to your liking and generate a functional password, which enables all kinds of fun (and less fun) play opportunities. The only reason this exists is because there was no way to do "shotgun start" in Quake II and I wanted to give that a go.
How Password Encoding & Decryption Works
Quake II 64 packs player inventory and mission status into an 80-bit binary payload (10 bytes). Values are mapped into the following bit fields:
| Bits | Data |
|---|---|
| 1-5 | Level |
| 6-7 | Difficulty |
| 8-16 | Weapons Inventory |
| 17 | Ammo Pack |
| 18-24 | Health |
| 25-28 | Max Health |
| 29-30 | Armor Type |
| 31-36 | Armor |
| 37 | -- |
| 38-70 | Ammo |
| 71-72 | -- |
| 73-80 | Checksum |
Before rendering the 16-character password, the 10-byte payload undergoes a scramble followed by checksum validation. Decryption reverses the process to reconstruct the payload.
Reverse Engineering & Credits
The password logic was reverse engineered by dumping the ROM using Ghidra for analysis and performing extensive empirical black-box testing.
This project and its source code are open source under the MIT License on GitHub.