Yes, I actually finished it... My section of The FAQ...
Though, I really finished it awhile ago, and just now thought to type it up and put it somewhere. So here it is, with some html formatting to give some idea what it should look like...
<div align="center">Section 3 - Code Types
Written by LiquidManZero</div>
I was going to have an introduction to this section, but I realized that's somewhat pointless, and I'll just get on with it instead of boring anybody who reads this.
Most codes are set up like this:
<font face="monospace">
TTXXXXXX YYYY
^ ^ ^
| | |
| | Value
| Address
Code Type
</font>
'TT' defines what the rest of the line will do and perhaps the line (or lines) after it as well. 'XXXXXX' is usually what address the line deals with, and 'YYYY' is the value used. There are exceptions to this, but most codes are arranged like this. On Xploder/Xplorer/Code Breaker carts/cds, the second digit of the code type is used as an on/off switch if it's the first line of a code. 'T0' is default on, and 'T8' would be default off. If used on a GameShark/Action Replay, it won't do anything, and in some cases will crash the console.
<div align="center">Basic Types</div>
Prefix: 80
Type: 16-bit constant write
What it does: Inserts all 4 digits of the value at the given address.
Limitations: The address has to be even.
Prefix: 30
Type: 8-bit constant write
What it does: Writes only the last 2 digits of the value to the address it has.
Limitations: None.
Prefix: D0
Type: 16-bit next line switch
What it does: If the value in the code is equal to the value at the address, the next line is run.
Limitations: Doesn't work to trigger a 50 code. Only 60 can be used per game, and this includes all Dx and Ex lines as well. Past 60, they will be ignored. Also, the address has to be even.
<div align="center">Secondary Types</div>
These may not work on really old versions of various devices, and almost certainly will not work on any Xploder (or the like). Some CDX versions will either not support them, or not use them correctly.
Prefix: D1
Type: 16-bit next line switch
What it does: The opposites of D0. The next line is run if the value at the address is not the same as the one in the code.
Limitations: Same as D0.
Prefix: D2
Type: 16-bit next line switch
What it does: Does the next line if the address's value is less than the one the code has.
Limitations: Same as D0 and D1.
Prefix: D3
Type: 16-bit next line switch
What it does: The next line, if the value it has is lower than the one at the address.
Limitations: Exactly the same as D0, D1, and D2.
Prefix: E0
Type: 8-bit next line switch
What it does: Runs the next line, if the last 2 digits of the value it has are the same as the byte at the address.
Limitations: Unlike D0, the address can be odd or even. This is also subject to the 60 lines limit of D0, D1, D2, D3, E1, E2, and E3.
Prefix: E1
Type: 8-bit next line switch
What it does: The next line is run if the value is not the one in the code.
Limitations: Same as E0.
Prefix: E2
Type: 8-bit next line switch
What it does: Runs the next line, if the line's value is less than the address's value.
Limitations: Same as E0 and E1.
Prefix: E3
Type: 8-bit next line switch
What it does: The next line, if the value is less than the one at the address.
Limitations: See E0, E1, or E2.
Prefix: 50
Type: Serial repeater
What it does: Writes a number of lines in a row, depending on what numbers it has.
<font face="monospace">
5000XXYY ZZZZ
TTAAAAAA BBBB
</font>
'XX' is the number of times to repeat.
'YY' is how many bytes to skip each time.
'ZZZZ' is the increment value.
'TT' is what type of code to write with. This should be either 80 or 30.
'AAAAAA' is the starting address.
'BBBB' is the starting value.
How this works is a bit complicated, but here it is.
The first line it writes is always the same as if the second line of the code was by itself.
After that, each line is made up from the line before it. The address is the previous address with 'YY' added to it. The value will be the last value added to the increment value. If the value is more than FFFF, any digits to the left of 4 digits are dropped. This keeps repeating until it's gone the number of times in 'XX'.
For example, a code such as:
<font face="monospace">
50000502 9010
80020004 1000
</font>
Would be the same as entering:
<font face="monospace">
80020004 1000
80020006 A010
80020008 3020
8002000A C030
8002000C 5040
8002000E E050
</font>
[Note: I might have put one too many lines there, but I think that's right...]
Prefix: 10
Type: 16-bit increment
What it does: Adds the value it has to the address's value.
Limitations: Only 30 of this, 11, 20, and 21 can be used per game. The address has to be even. Stops at FFFFFFFF before going down to 0 again.
Prefix: 11
Type: 16-bit decrement
What it does: Subtracts the value it has from the address's value.
Limitations: Same as 10, but it goes to FFFFFFFF from 0.
Prefix: 20
Type: 8-bit increment
What it does: Adds the last 2 digits of it's value to the address's value.
Limitations: Same as 10.
Prefix: 21
Type: 8-bit decrement
What it does: Subtracts the line's value from the address's value.
Limitations: See 11.
<div align="center">Other Types</div>
Prefix: D4
Type: Universal joker
What it does: The next line is run, if the digits it has match the ones for the buttons being pressed on the controller 1.
Limitations: 30 per game. Some games will crash using this type. This is rather unreliable, and only works with a GS 2.4+, GS Pro (3.0-3.2), and likely few if any CDX discs... Oh yeah, this doesn't use any address. Just fill that in with whatever you want.
Prefix: D5
Type: All codes 'On' trigger
What it does: Turns all codes on, if the buttons being pressed match the digits for buttons it's got.
Limitations: Doesn't work too well, and some games don't work with it. There's not really any point in using more than one.
Prefix: D6
Type: All codes 'Off' trigger
What it does: Turns all the codes off, same as either flipping the switch, or going into the in game menu and turning them off that way.
Limitations: Same as D5.
Prefix: C0
Type: Delay turning on all codes
What it does: Leaves all codes off until the value it has matches the one at the address it has. Then it turns on the codes, and does nothing.
Limitations: 15 per game, combined with C1 and C2. More than one might not work, depending on the game, and what it's waiting for.
Prefix: C1
Type: Delay turning on all codes
What it does: Waits awhile, then turns on the codes. How long it waits depends on how high the value is, but this changes from game to game. 0001 may be a fraction of a second, or more than a minute.
Prefix: C2
Type: Copy bytes
What it does: Copies a number of bytes from one address to another, constantly.
<font face="monospace">
C2XXXXXX YYYY
??AAAAAA BBBB
</font>
'XXXXXX' is the address to start copying from.
'YYYY' is how many bytes to copy.
'??' should be either 80, 30, 10, 11, 20, or 21. If it's not 80 or 30, it will add/subtract the value in 'BBBB' from everything copied.
'BBBB' will do nothing if '??' is 80 or 30.
Limitations: 15 per game, combined with C0 and C1. The more bytes it copies the more likely the game is to suddenly crash. Some games may slow down with this type of code.
<div align="center">GS to Xploder/Code Breaker Convserion</div>
Prefix: D0
To Convert: Change the D0 to 70.
Prefix: D1
To Convert: Change D1 to 90.
[Maybe I should add how to convert the serial repeater codes...]
<div align="center">Valid Code Combinations</div>
[I'm lazy, so just copy this part from a previous revision of the faq that has it...]
[/end of section 3]
I'm sure this could use some editing... I'd say at this point, the thing ought to just be released, and revised later if needed... What's it been, 3 years now?




Reply With Quote