Difference between revisions of "Code Types"

From Wiki - GameHacking.org
Jump to: navigation, search
Line 291: Line 291:
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
! 0
 
! 0
| 16-bit Write Once || 0XXXXXXX YYYY <br> 16-bit write once. Writes halfword YYYY to XXXXXXX only once. || NA
+
| 16-bit Write Once || 0XXXXXXX YYYY <br> 16-bit write once. Writes YYYY to address XXXXXXX only once upon bootup. || NA
 
|- align="center" style="font-size: 105%; background-color:#d0d8e0; text-align: center; padding:0;"
 
|- align="center" style="font-size: 105%; background-color:#d0d8e0; text-align: center; padding:0;"
 
! 1
 
! 1
| 16-bit Constant Write || 1XXXXXXX YYYY <br> Writes halfword YYYY to XXXXXXX. || NA
+
| 16-bit Constant Write || 1XXXXXXX YYYY <br> Writes YYYY to address XXXXXXX. || NA
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
! 3
 
! 3
| 8-bit Constant Write || 3XXXXXXX 00YY <br> Writes byte YY to XXXXXXX. || NA
+
| 8-bit Constant Write || 3XXXXXXX 00YY <br> Writes YY to address XXXXXXX. || NA
 
|- align="center" style="font-size: 105%; background-color:#d0d8e0; text-align: center; padding:0;"
 
|- align="center" style="font-size: 105%; background-color:#d0d8e0; text-align: center; padding:0;"
 
! B
 
! B
Line 303: Line 303:
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
! D
 
! D
| 16-bit If Equal To || DXXXXXXX YYYY <br> If halfword at XXXXXXX is equal to YYYY, then execute the next code. || NA
+
| 16-bit If Equal To || DXXXXXXX YYYY <br> If value at XXXXXXX is equal to YYYY, then execute the next code. || NA
 
|- align="center" style="font-size: 105%; background-color:#d0d8e0; text-align: center; padding:0;"
 
|- align="center" style="font-size: 105%; background-color:#d0d8e0; text-align: center; padding:0;"
 
! F (Enable Code)
 
! F (Enable Code)

Revision as of 16:21, 23 November 2008

Explanation of what a code type is, and what they're used for here..


Playstation Systems

Playstation 2

Code Breaker



GameShark (Interact)



GameShark (Mad Catz)



Xploder


Playstation

Gameshark & Action Replay


Note: For all intents and purposes, PlayStation Action Replay code types are identical to the GameShark ones. Only the device version numbers vary.

Type Description Example Other Limitations
30 8-bit constant write 3XXXXXXX 00YY
Writes YY to Address XXXXXXX
NA none
80 16-bit constant write 8XXXXXXX ZZYY
Writes ZZYY to Address XXXXXXX
NA none
50 serial repeater 5000XXYY ZZZZ
TTTTTTTT VVVV
Writes XX codes, with YY added to the address for each code after TTTTTTTT, and ZZZZ added to the amount for each code after value VVVV
Gameshark 2.2 and higher. May need to seperate pairs of serial codes with a 00000000 0000 code for disk-based gamesharks unknown
E0 8-bit equal-to trigger E0XXXXXX 00YY
Activates next code if address 80XXXXXX is equal to YY
Gameshark 2.2 and higher. 60~, including all Cx and comparison types
E1 8-bit different-from trigger E1XXXXXX 00YY
Activates next code if address 80XXXXXX is different from YY
Gameshark 2.2(?) and higher. 60~, including all Cx and comparison types
E2 8-bit less-than trigger E2XXXXXX 00YY
Activates next code if address 80XXXXXX is less than YY
Gameshark 2.2 and higher. 60~, including all Cx and comparison types
E3 8-bit greater-than trigger E3XXXXXX 00YY
Activates next code if address 80XXXXXX is greater than YY
Gameshark 2.2 and higher. 60~, including all Cx and comparison types
D0 16-bit equal-to trigger D0XXXXXX YYYY
Activates next code if address 80XXXXXX is equal to YYYY
N/A 60~, including all Cx and comparison types
D1 16-bit different-from trigger D1XXXXXX YYYY
Activates next code if address 80XXXXXX is different from YYYY
Gameshark 2.2 and higher. 60~, including all Cx and comparison types
D2 16-bit less-than trigger D2XXXXXX YYYY
Activates next code if address 80XXXXXX is less than YYYY
Gameshark 2.2 and higher. 60~, including all Cx and comparison types
D3 16-bit greater-than trigger D3XXXXXX YYYY
Activates next code if address 80XXXXXX is greater than YYYY
Gameshark 2.2 and higher. 60~, including all Cx and comparison types
D4 16-bit universal joker D4000000 YYYY
Activates next code if the button presses equate to YYYY
Gameshark 2.41 and higher. Needs a button chart 60~, including all Cx and comparison types
D5 16-bit codes-on trigger D5000000 YYYY
Activates all codes if buton presses equate to YYYY
Gameshark 2.41 and higher. Needs a button chart 60~, including all Cx and comparison types
D6 16-bit codes-off trigger D6000000 YYYY
Activates all codes if buton presses equate to YYYY
Gameshark 2.41 and higher. Needs a button chart 60~, including all Cx and comparison types
10 16-bit incrementer 10XXXXXX YYYY
Increments value at address 80XXXXXX by YYYY
Gameshark 2.2 and higher. Use with a joker 30~ including all in/decrement types
11 16-bit decrementer 11XXXXXX YYYY
Decrements value at address 80XXXXXX by YYYY
Gameshark 2.2 and higher. Use with a joker 30~ including all in/decrement types
20 8-bit incrementer 20XXXXXX 00YY
Increments value at address 80XXXXXX by YY
Gameshark 2.2 and higher. Use with a joker 30~ including all in/decrement types
21 8-bit decrementer 21XXXXXX 00YY
Decrements value at address 80XXXXXX by YY
Gameshark 2.2 and higher. Use with a joker 30~ including all in/decrement types
C0 enable all codes trigger C0XXXXXX YYYY
If value at address 80XXXXXX is equal to YYYY, enable all loaded codes in game. Affects all codes, not just the one this line is used in.
Gameshark 2.41 or higher. 60~, including all Cx and comparison types
C1 codes-on delay C1000000 YYYY
Delays codes from being on by YYYY time when game starts. 4000-5000 should give 20-30 seconds.
NA 60~, including all Cx and comparison types
C2 copy memory C2XXXXXX YYYY
80ZZZZZZ 0000
Copy YYYY bytes from 80XXXXXX to 80ZZZZZZ. Could be used for copying large sets of complex character stats from one character to another, like working-magic-only, if serial repeater won't work
NA 30?
1F800??? Special 16-bit write 1F800XXX YYYY
Write YYYY to address 1F800XXX in the scratch pad region. Note that the address range is only from 0x000 to 0x3FF (1024 bytes).
GameShark 2.3 and higher. unknown

All 16-bit comparison types are limited to roughly 60 lines per game. 8-bit comparison types and increment/decrement types are limited to around 30 lines per game combined.

Warning: Limitations info is incomplete. Expect exact limits eventually...

Xploder/Codebreaker/X-Terminator


Note: "T" defines the default on/off setting if this code type is the first line in a code. 0 = On, 8 = Off. This does not apply to all types.

Type Description Example Other
3 8-bit constant write 3TXXXXXX 00YY
Writes YY to address 80XXXXXXX
NA
8 16-bit constant write 8TXXXXXX YYYY
Writes YYYY to address 80XXXXXXX
NA
00 32-bit constant write 00XXXXXX YYYY
Writes 0000YYYY to address 80XXXXXX.
Doesn't use on/off setting.
5 Mass write ("Super code") 5TXXXXXX 0YYY
Writes YYY bytes (from following lines until end of YYY bytes) to address 80XXXXXX.
Exact behavior is unknown, may require even addresses only (unconfirmed).
7 16-bit equal-to trigger 7TXXXXXX YYYY
Activates next code if value at address 80XXXXXX is equal to YYYY
NA
9 16-bit not-equal-to trigger 9TXXXXXX YYYY
Activates next code if value at address 80XXXXXX is not equal to YYYY
NA
F 16-bit equal-to global trigger FTXXXXXX YYYY
 ??? Activates all codes if value at address 80XXXXXX is equal to YYYY
Exact behavior of this type is unconfirmed.
B Serial Repeater
("Slide code")
BXXXYYYY ZZZZ

10TTTTTT VVVV
Writes XX codes, with YY added to the address for each code after TTTTTTTT, and ZZZZ added to the amount for each code after value VVVV.

This code is somewhat flawed, in that you must use an even address and other unremembered limitations for it to not crash the device. Converting GameShark serial repeater codes to this type is difficult and unreliable even when done correctly.
6 "Mega code" 6T?????0 YYYY

AAAAAAAA CCCC
FFFFFFFF 0011
22334455 6677
8899

?=Don't care
AA= Break address
YY= Count in bytes to insert at location 40
CC= Coprocessor break type (upper half)
FF= Breakpoint mask (usually FFFFFFFF)
00= bytes of code in address order
11

General usage unknown. The document this description was originally pulled from is missing some text.
4 "Slow Motion" 4T000000 XXXX

According to Nachbrenner's document: "A 4 code is a slow motion code. Its success rate is not brilliant at the moment. It is simply a loop executed (XXXX << 12) times."

It's likely this causes problems if used. Exact effects are unknown.

Despite various documents claiming there is a "Datel compatibility" feature with the GS Dx and Cx codes, this has never been proven. In my own testing, in no cases did those types work. There may also be code types of 1, 2, A, and E that are completely undocumented.

Most information here is based off of Nachbrenner's Advanced Xplorer Codes document.

Gold Finger



Caetla


The only known documentation of the code types for this device are as follows:

[Caetla 0.341 Features list @ Internet Archive]

["New Revolution - Code Master - 07-13-00" @ Internet Archive]

Nintendo Systems

GameCube

Action Replay


Nintendo 64

GameShark


GameBoy Advance

Codebreaker Advance


Type Description Example Other
0 Master Code 1 0000XXXX YYYY
XXXX is the CRC value (the "Game ID" converted to hex)
Flags ("yyyy"):
0008 - CRC Exists (CRC is used to autodetect the inserted game)
0002 - Disable Interupts
NA
1 Master Code 2 1XXXXXXX YYYZ
'Z' is the CBA Code Handler Store Address (0-7) [address = ((d << 0x16) + 0x08000100)]
YYY:
100 - 32-bit Long-Branch Type (Thumb)
200 - 32-bit Long-Branch Type (ARM)
300 - 8-bit(?) Long-Branch Type (Thumb)
400 - 8-bit(?) Long-Branch Type (ARM)
002 - Unknown (Odd Effect)
XXXXXXX = ?
NA
2 16-bit bitwise OR 2XXXXXXX YYYY
XXXXXXX = Address
YYYY = Value to OR with
Tested on VBA, not tested on hardware
3 8-bit RAM Write 3XXXXXXX 00YY
XXXXXXX = Address
YY = Value to write
NA
4 serial repeater 4qqqqqqq xxyy
XXYY#### ++++
qqqqqqq=Address to Start At
xxyy = Start Value
XXYY = Add To Value
#### = Number of Address Iterations
++++ = Amount Added to each Address Iteration
XXYY portion tested in VBA, not tested on hardware
5 Unknown Unknown NA
6 16-bit bitwise AND 6XXXXXXX YYYY
XXXXXXX = Address
YYYY = Value to AND with
NA
7 16-bit equal-to trigger 7XXXXXXX YYYY
Activates next code if address XXXXXXX is equal to YYYY
NA
8 16-bit RAM Write 8XXXXXXX YYYY
XXXXXXX = Address
YYYY = Value to write
NA
9 Change Encryption Seeds (if used as first code) 9YYYYYYY YYYY
Details not researched
NA
A 16-bit not-equal-to trigger AXXXXXXX YYYY
Activates next code if address XXXXXXX is not equal to YYYY
NA
B Unknown Unknown NA
C Unknown Unknown NA
D Unknown Unknown NA
E Unknown Unknown NA
F Unknown Unknown NA

GameShark Advance (Interact)



GameShark Advance (Mad Catz)



Action Replay



Nintendo DS

Codebreaker Advance



Sega Systems

Dreamcast

GameShark CDX



Codebreaker


Saturn

GameShark and Pro Action Replay


Type Description Example Other
0 16-bit Write Once 0XXXXXXX YYYY
16-bit write once. Writes YYYY to address XXXXXXX only once upon bootup.
NA
1 16-bit Constant Write 1XXXXXXX YYYY
Writes YYYY to address XXXXXXX.
NA
3 8-bit Constant Write 3XXXXXXX 00YY
Writes YY to address XXXXXXX.
NA
B Unknown BXXXXXXX YYYY
Seems to be used with Enable Codes (Type F).
NA
D 16-bit If Equal To DXXXXXXX YYYY
If value at XXXXXXX is equal to YYYY, then execute the next code.
NA
F (Enable Code) Enable Code FXXXXXXX YYYY NA