Qmark
February 17th, 2010, 00:43
So you've just upgraded NesterJ to a version that doesn't need clunky GameGenie codes, eh?
No doubt, you've noticed the example cheat files are full of gibberish and not well documented (or at least, not in English).
Luckily, they aren't too hard to figure out. Here's an example (Blaster Master):
[0]
Name=Inf Health
0=Max,40D,FF
Default=0
[01]
Name=Inf Lives
0=Max,DD,FF
Default=0
[02]
Name=Inf Gun
0=Max,C3,FF
Default=0
[03]
Name=Inf Hov
0=Max,92,FF
Default=0
[04]
Name=Pickups
0=All,99,FF,3FC,FF
Default=0
[05]
Name=Inf SubWpn
0=Max All,6F0,63,6F1,63,6F2,63
1=Max Hom-Missle,6F0,63
2=Max Thunderbreak,6F1,63
3=Max Warheads,6F2,63
Default=0
Now what the hell does this mean?
Let's look at a simple one:
[01] <- Code number
Name=Inf Lives <- Code Name
0=Max,DD,FF <- Value number, name, offset, & value
Default=0 <- Initial value
The Code Number is just a sequential list of codes. Nothing terrible seems to happen when these aren't in perfect order, but it's probably best to order them correctly.
Code Name is just a label for the overall set of codes.
This is where it gets interesting: 0=Max,DD,FF
The number (0, in this case) is another sequential list. Most codes can get by with just a single (0) entry. The text after the number and "=" (Max) is just a label for what that particular address/value set does. Next comes the memory address (DD, in hex), with the leading zeroes removed. Last is the value (FF, hex for 255) to poke into that address
Default is just the first code chosen when toggled (circle button).
The last code in the list (05) is an example of a cheat with multiple possible pokes, as well as codes that poke multiple addresses.
"0=Max All,6F0,63,6F1,63,6F2,63" Is named "Max All", and pokes 99 (which is '63' in hex) into adresses 06f0, 06f1, and 06f2. Just make sure to keep the hex numbers in address/value pairs.
No doubt, you've noticed the example cheat files are full of gibberish and not well documented (or at least, not in English).
Luckily, they aren't too hard to figure out. Here's an example (Blaster Master):
[0]
Name=Inf Health
0=Max,40D,FF
Default=0
[01]
Name=Inf Lives
0=Max,DD,FF
Default=0
[02]
Name=Inf Gun
0=Max,C3,FF
Default=0
[03]
Name=Inf Hov
0=Max,92,FF
Default=0
[04]
Name=Pickups
0=All,99,FF,3FC,FF
Default=0
[05]
Name=Inf SubWpn
0=Max All,6F0,63,6F1,63,6F2,63
1=Max Hom-Missle,6F0,63
2=Max Thunderbreak,6F1,63
3=Max Warheads,6F2,63
Default=0
Now what the hell does this mean?
Let's look at a simple one:
[01] <- Code number
Name=Inf Lives <- Code Name
0=Max,DD,FF <- Value number, name, offset, & value
Default=0 <- Initial value
The Code Number is just a sequential list of codes. Nothing terrible seems to happen when these aren't in perfect order, but it's probably best to order them correctly.
Code Name is just a label for the overall set of codes.
This is where it gets interesting: 0=Max,DD,FF
The number (0, in this case) is another sequential list. Most codes can get by with just a single (0) entry. The text after the number and "=" (Max) is just a label for what that particular address/value set does. Next comes the memory address (DD, in hex), with the leading zeroes removed. Last is the value (FF, hex for 255) to poke into that address
Default is just the first code chosen when toggled (circle button).
The last code in the list (05) is an example of a cheat with multiple possible pokes, as well as codes that poke multiple addresses.
"0=Max All,6F0,63,6F1,63,6F2,63" Is named "Max All", and pokes 99 (which is '63' in hex) into adresses 06f0, 06f1, and 06f2. Just make sure to keep the hex numbers in address/value pairs.