Copy Link
Add to Bookmark
Report
NES Game Genie Code Format DOC v0.71
-----------------------------------------------------------------------------
NES Game Genie Code Format DOC v0.71 /
by Benzene of Digital Emutations /
July 10 1997 /
----------------------------------------/
1. Thanks
2. What the letters mean
3. How to decode 6 character codes
4. How to decode 8 character codes
5. Contact Info
-----------------------------------------------------------------------------
/
1 . Special thanks to /
----------------------/
Sardu(for figuring out most of the address information)
Opcode
Deuce
DrSplat
KingPin
and all the people on GameNet
all the NES emu authors(wouldn't need to figure this out
if it wasn't for you).
codemasters and galoob for making the Game Genie(it would be
nice if they gave me some info though)
-----------------------------------------------------------------------------
/
2. What the letters mean /
--------------------------/
As the handbook states the letters are grouped into two
groups.
group 1
-------------------
| A P Z L G I T Y |
-------------------
group 2
-------------------
| E O X U K S V N |
-------------------
All the letters also have the binary representation shown below
A = 0000
P = 0001
Z = 0010
L = 0011
G = 0100
I = 0101
T = 0110
Y = 0111
E = 1000
O = 1001
X = 1010
U = 1011
K = 1100
S = 1101
V = 1110
N = 1111
In later parts of this doc i'll explain what to do with the letters
binary representation
-----------------------------------------------------------------------------
/
3. How to decode 6 character codes /
------------------------------------/
Since the code is scrambled, you will need the table below
to descrable it.
Char # | 1 | 2 | 3 | 4 | 5 | 6 |
Bit # |3|2|1|0|3|2|1|0|3|2|1|0|3|2|1|0|3|2|1|0|3|2|1|0|
maps to|1|6|7|8|H|2|3|4|-|I|J|K|L|A|B|C|D|M|N|O|5|E|F|G|
note char 3 bit 3 is used by the game genie to determine the length
of the code.
The value is made of 12345678 of the maps to line.
The address is made of ABCDEFGHIJKLMNO of the maps to line.
if I take code SXIOPO(infinite lives in smb1) I get this
| S | X | I | O | P | O |
|1|1|0|1|1|0|1|0|0|1|0|1|1|0|0|1|0|0|0|1|1|0|0|1|
The value would be(using the above table) 10101101 or ADh in hex
The address would be 001000111011001 or 11D9h in hex
Special note about the address, the adress can be one of any 32656 bytes
and uses the addresses the mapper assigns to the data in the rom banks
for use in emulators the addresses needs to be converted to CPU addresses
between 0x8000 and 0xFFFF(just add 8000h to the hex address given by the
address part of the code)
-----------------------------------------------------------------------------
/
4. How to decode 8 character codes /
-----------------------------------/
Decoding 8 character codes is similar to 6 character codes exept the code
has to be split into 3 parts not 2, the table below would be helpfull
Char # | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
Bit # |3|2|1|0|3|2|1|0|3|2|1|0|3|2|1|0|3|2|1|0|3|2|1|0|3|2|1|0|3|2|1|0|
maps to|1|6|7|8|H|2|3|4|-|I|J|K|L|A|B|C|D|M|N|O|%|E|F|G|!|^|&|*|5|@|#|$|
Once again char 3 bit 3 denotes the code length.
Once again:
The value is made of 12345678 of the maps to line.
The address is made of ABCDEFGHIJKLMNO of the maps to line.
The compare value is made of !@#$%^&* of the maps to line.
It then checks the value to be replaced with the compare
value, if they are the same it replaces the original value with the new
value if not the value remains the same.
-----------------------------------------------------------------------------
/
4. Contact Info /
----------------/
You have info or comments about this doc please email me at demu@wspice.com
especialy if you have new info or find that some of mine is incorrect.
or you can meet me on GameNet IRC at dannyw.iamerica.net:6667 or in europe
phm.ml.org:6667
Feel free to change and add to this doc, just make sure you give credit where
it is due(ie, be sure to credit the original authors AND yourself)