Difference between revisions of "Code Types"

From Wiki - GameHacking.org
Jump to: navigation, search
('''Gameshark & Action Replay''')
 
(15 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Explanation of what a code type is, and what they're used for here..
+
'''Code Types''' are used by [[Game Enhancer]]'s to determine how to use/execute codes. They also allow users to add some degree of sophistication for the codes they make.
  
 +
Types you will commonly see available for most Game Enhancers are 8-bit/16-bit/32-bit Writes, Conditional types (If - Equal To, Greater Than, Less Than, etc.) and Master Codes.
  
= <font color="blue">Playstation Systems</font> =
+
Some devices don't have any Code Types at all, and just perform a preset bit write to the address you define. Such devices are the older models of the Pro Action Replay for [[Pro_Action_Replay_(SNES)|Super Nintendo]] and [[Pro_Action_Replay_(Genesis)|Sega Genesis]].
  
  
== Playstation 2 ==
 
  
==='''Code Breaker'''===
 
----
 
  
 
+
{{Code Types}}
==='''GameShark (Interact)'''===
+
[[Category:Code Types]]
----
+
[[Category:Hacking and Game Info]]
 
 
 
 
 
 
==='''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.
 
 
 
{| style="border:1px solid #000000; margin: 0; padding:0;" width="100%" cellspacing="0" cellpadding="5""
 
! Type !! Description !! Example !! Other !! Limitations
 
 
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
! 30
 
| 8-bit constant write || 3XXXXXXX 00YY <br> Writes YY to Address XXXXXXX || NA || none
 
|- align="center" style="font-size: 105%; background-color:#d0d8e0; text-align: center; padding:0;"
 
! 80
 
| 16-bit constant write || 8XXXXXXX ZZYY <br> Writes ZZYY to Address XXXXXXX || NA || none
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
! 50
 
| serial repeater || 5000XXYY ZZZZ <br> TTTTTTTT VVVV <br> 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
 
|- align="center" style="font-size: 105%; background-color:#d0d8e0; text-align: center; padding:0;"
 
! E0
 
| 8-bit equal-to trigger || E0XXXXXX 00YY <br> Activates next code if address 80XXXXXX is equal to YY ||  Gameshark 2.2 and higher. || 60~, including all Cx and comparison types
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
! E1
 
| 8-bit different-from trigger || E1XXXXXX 00YY <br> Activates next code if address 80XXXXXX is different from YY ||  Gameshark 2.2(?) and higher. || 60~, including all Cx and comparison types
 
|- align="center" style="font-size: 105%; background-color:#d0d8e0; text-align: center; padding:0;"
 
! E2
 
| 8-bit less-than trigger || E2XXXXXX 00YY <br> Activates next code if address 80XXXXXX is less than YY ||  Gameshark 2.2 and higher. || 60~, including all Cx and comparison types
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
! E3
 
| 8-bit greater-than trigger || E3XXXXXX 00YY <br> Activates next code if address 80XXXXXX is greater than YY || Gameshark 2.2 and higher. || 60~, including all Cx and comparison types
 
|- align="center" style="font-size: 105%; background-color:#d0d8e0; text-align: center; padding:0;"
 
! D0
 
| 16-bit equal-to trigger || D0XXXXXX YYYY <br> Activates next code if address 80XXXXXX is equal to YYYY || N/A || 60~, including all Cx and comparison types
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
! D1
 
| 16-bit different-from trigger || D1XXXXXX YYYY <br> Activates next code if address 80XXXXXX is different from YYYY ||  Gameshark 2.2 and higher. || 60~, including all Cx and comparison types
 
|- align="center" style="font-size: 105%; background-color:#d0d8e0; text-align: center; padding:0;"
 
! D2
 
| 16-bit less-than trigger || D2XXXXXX YYYY <br> Activates next code if address 80XXXXXX is less than YYYY ||  Gameshark 2.2 and higher. || 60~, including all Cx and comparison types
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
! D3
 
| 16-bit greater-than trigger || D3XXXXXX YYYY <br> Activates next code if address 80XXXXXX is greater than YYYY ||  Gameshark 2.2 and higher. || 60~, including all Cx and comparison types
 
|- align="center" style="font-size: 105%; background-color:#d0d8e0; text-align: center; padding:0;"
 
! D4
 
| 16-bit universal joker || D4000000 YYYY <br> 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
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
! D5
 
| 16-bit codes-on trigger || D5000000 YYYY <br> 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
 
|- align="center" style="font-size: 105%; background-color:#d0d8e0; text-align: center; padding:0;"
 
! D6
 
| 16-bit codes-off trigger || D6000000 YYYY <br> 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
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
! 10
 
| 16-bit incrementer || 10XXXXXX YYYY <br> Increments value at address 80XXXXXX by YYYY || Gameshark 2.2 and higher. Use with a joker || 30~ including all in/decrement types
 
|- align="center" style="font-size: 105%; background-color:#d0d8e0; text-align: center; padding:0;"
 
! 11
 
| 16-bit decrementer || 11XXXXXX YYYY <br> Decrements value at address 80XXXXXX by YYYY || Gameshark 2.2 and higher. Use with a joker || 30~ including all in/decrement types
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
! 20
 
| 8-bit incrementer || 20XXXXXX 00YY <br> Increments value at address 80XXXXXX by YY || Gameshark 2.2 and higher. Use with a joker || 30~ including all in/decrement types
 
|- align="center" style="font-size: 105%; background-color:#d0d8e0; text-align: center; padding:0;"
 
! 21
 
| 8-bit decrementer || 21XXXXXX 00YY <br> Decrements value at address 80XXXXXX by YY || Gameshark 2.2 and higher. Use with a joker || 30~ including all in/decrement types
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
! C0
 
| enable all codes trigger || C0XXXXXX YYYY <br> 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
 
|- align="center" style="font-size: 105%; background-color:#d0d8e0; text-align: center; padding:0;"
 
! C1
 
| codes-on delay || C1000000 YYYY <br> 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
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
! C2
 
| copy memory || C2XXXXXX YYYY <br> 80ZZZZZZ 0000 <br> 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?
 
|- align="center" style="font-size: 105%; background-color:#d0d8e0; text-align: center; padding:0;"
 
! 1F800???
 
| Special 16-bit write || 1F800XXX YYYY <br> 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.
 
{| style="border:1px solid #000000; margin: 0; padding:0;" width="100%" cellspacing="0" cellpadding="5""
 
! Type !! Description !! Example !! Other
 
 
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
! 3
 
| 8-bit constant write || 3TXXXXXX 00YY <br> Writes YY to address 80XXXXXXX || NA
 
|- align="center" style="font-size: 105%; background-color:#d0d8e0; text-align: center; padding:0;"
 
! 8
 
| 16-bit constant write || 8TXXXXXX YYYY <br> Writes YYYY to address 80XXXXXXX || NA
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
! 00
 
| 32-bit constant write || 00XXXXXX YYYY <br> Writes 0000YYYY to address 80XXXXXX. || Doesn't use on/off setting.
 
|- align="center" style="font-size: 105%; background-color:#d0d8e0; text-align: center; padding:0;"
 
! 5
 
| Mass write ("Super code") || 5TXXXXXX 0YYY<br> Writes YYY bytes (from following lines until end of YYY bytes) to address 80XXXXXX. || Exact behavior is unknown, may require even addresses only (unconfirmed).
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
! 7
 
| 16-bit equal-to trigger || 7TXXXXXX YYYY <br> Activates next code if value at address 80XXXXXX is equal to YYYY || NA
 
|- align="center" style="font-size: 105%; background-color:#d0d8e0; text-align: center; padding:0;"
 
! 9
 
| 16-bit not-equal-to trigger || 9TXXXXXX YYYY<br> Activates next code if value at address 80XXXXXX is not equal to YYYY || NA
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
! F
 
| 16-bit equal-to global trigger || FTXXXXXX YYYY<br> ??? Activates all codes if value at address 80XXXXXX is equal to YYYY || Exact behavior of this type is unconfirmed.
 
|- align="center" style="font-size: 105%; background-color:#d0d8e0; text-align: center; padding:0;"
 
! B
 
| Serial Repeater<br>("Slide code") || BXXXYYYY ZZZZ<br>
 
10TTTTTT VVVV<br>
 
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.
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
! 6
 
| "Mega code" || 6T?????0 YYYY<br>
 
AAAAAAAA CCCC<br>
 
FFFFFFFF 0011<br>
 
22334455 6677<br>
 
8899<br>
 
<br>
 
?=Don't care<br>
 
AA= Break address<br>
 
YY= Count in bytes to insert at location 40<br>
 
CC= Coprocessor break type (upper half)<br>
 
FF= Breakpoint mask (usually FFFFFFFF)<br>
 
00= bytes of code in address order<br>
 
11
 
|| General usage unknown. The document this description was originally pulled from is missing some text.
 
|}
 
 
 
Most information here is based off of [https://gshi.org/faqs/advancedexplorercodes.htm Nachbrenner's Advanced Xplorer Codes] document.
 
 
 
 
 
==='''Gold Finger'''===
 
----
 
 
 
 
 
==='''Caetla'''===
 
----
 
The only known documentation of the code types for this device are as follows:
 
 
 
[[http://web.archive.org/web/20001018052533/https://www.xianaix.com/features.txt Caetla 0.341 Features list @ Internet Archive]]
 
 
 
[[http://web.archive.org/web/20001215111400/https://cmgsccc.com/ramble/071300.shtml "New Revolution - Code Master - 07-13-00" @ Internet Archive]]
 
 
 
= <font color="blue">Nintendo Systems</font> =
 
 
 
 
 
== GameCube ==
 
 
 
 
 
==='''Action Replay'''===
 
----
 
 
 
== Nintendo 64 ==
 
 
 
 
 
==='''GameShark'''===
 
----
 
 
 
== GameBoy Advance ==
 
 
 
 
 
 
 
==='''Codebreaker Advance'''===
 
----
 
{| style="border:1px solid #000000; margin: 0; padding:0;" width="100%" cellspacing="0" cellpadding="5""
 
! Type !! Description !! Example !! Other
 
 
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
! 0
 
| Master Code 1 || 0000XXXX YYYY <br> XXXX is the CRC value (the "Game ID" converted to hex) <br> Flags ("yyyy"): <br> 0008 - CRC Exists (CRC is used to autodetect the inserted game) <br> 0002 - Disable Interupts || NA
 
|- align="center" style="font-size: 105%; background-color:#d0d8e0; text-align: center; padding:0;"
 
! 1
 
| Master Code 2 || 1XXXXXXX YYYZ <br> 'Z' is the CBA Code Handler Store Address (0-7) [address = ((d << 0x16) + 0x08000100)] <br> YYY: <br> 100 - 32-bit Long-Branch Type (Thumb) <br> 200 - 32-bit Long-Branch Type (ARM) <br> 300 - 8-bit(?) Long-Branch Type (Thumb) <br> 400 - 8-bit(?) Long-Branch Type (ARM) <br> 002 - Unknown (Odd Effect) <br> XXXXXXX = ? || NA
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
! 2
 
| 16-bit bitwise OR || 2XXXXXXX YYYY <br> XXXXXXX = Address <br> YYYY = Value to OR with || Tested on VBA, not tested on hardware
 
|- align="center" style="font-size: 105%; background-color:#d0d8e0; text-align: center; padding:0;"
 
! 3
 
| 8-bit RAM Write || 3XXXXXXX 00YY <br> XXXXXXX = Address <br> YY = Value to write || NA
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
! 4
 
| serial repeater || 4qqqqqqq xxyy <br> XXYY#### ++++ <br> qqqqqqq=Address to Start At <br> xxyy = Start Value <br> XXYY = Add To Value <br> #### = Number of Address Iterations <br> ++++ = Amount Added to each Address Iteration || XXYY portion tested in VBA, not tested on hardware
 
|- align="center" style="font-size: 105%; background-color:#d0d8e0; text-align: center; padding:0;"
 
! 5
 
| Unknown || Unknown || NA
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
! 6
 
| 16-bit bitwise AND || 6XXXXXXX YYYY <br> XXXXXXX = Address <br> YYYY = Value to AND with || NA
 
|- align="center" style="font-size: 105%; background-color:#d0d8e0; text-align: center; padding:0;"
 
! 7
 
| 16-bit equal-to trigger || 7XXXXXXX YYYY <br> Activates next code if address XXXXXXX is equal to YYYY ||  NA
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
! 8
 
| 16-bit RAM Write || 8XXXXXXX YYYY <br> XXXXXXX = Address <br> YYYY = Value to write || NA
 
|- align="center" style="font-size: 105%; background-color:#d0d8e0; text-align: center; padding:0;"
 
! 9
 
| Change Encryption Seeds (if used as first code) || 9YYYYYYY YYYY <br> Details not researched || NA
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
! A
 
| 16-bit not-equal-to trigger || AXXXXXXX YYYY <br> Activates next code if address XXXXXXX is not equal to YYYY || NA
 
|- align="center" style="font-size: 105%; background-color:#d0d8e0; text-align: center; padding:0;"
 
! B
 
| Unknown || Unknown || NA
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
! C
 
| Unknown || Unknown || NA
 
|- align="center" style="font-size: 105%; background-color:#d0d8e0; text-align: center; padding:0;"
 
! D
 
| Unknown || Unknown || NA
 
|- align="center" style="font-size: 105%; background-color:#aebfd2; text-align: center; padding:0;"
 
! E
 
| Unknown || Unknown || NA
 
|- align="center" style="font-size: 105%; background-color:#d0d8e0; text-align: center; padding:0;"
 
! F
 
| Unknown || Unknown || NA
 
 
 
|}
 
 
 
==='''GameShark Advance (Interact)'''===
 
----
 
 
 
 
 
==='''GameShark Advance (Mad Catz)'''===
 
----
 
 
 
 
 
==='''Action Replay'''===
 
----
 
 
 
 
 
== Nintendo DS ==
 
 
 
==='''Codebreaker Advance'''===
 
----
 
 
 
 
 
= <font color="blue">Sega Systems</font> =
 
 
 
 
 
 
 
== Dreamcast ==
 
 
 
==='''GameShark CDX'''===
 
----
 
 
 
 
 
==='''Codebreaker'''===
 
----
 
 
 
== Saturn ==
 
 
 
==='''GameShark'''===
 
----
 

Latest revision as of 17:24, 24 November 2008

Code Types are used by Game Enhancer's to determine how to use/execute codes. They also allow users to add some degree of sophistication for the codes they make.

Types you will commonly see available for most Game Enhancers are 8-bit/16-bit/32-bit Writes, Conditional types (If - Equal To, Greater Than, Less Than, etc.) and Master Codes.

Some devices don't have any Code Types at all, and just perform a preset bit write to the address you define. Such devices are the older models of the Pro Action Replay for Super Nintendo and Sega Genesis.



Code Types
Consoles
Playstation - Sega Saturn - Dreamcast - Playstation 2 - Game Cube
Portables
Game Boy Advance - Nintendo DS