Codebreaker (Nintendo DS)

From Wiki - GameHacking.org
Revision as of 18:21, 14 June 2015 by Dlevere (talk | contribs) (Added Codebreaker DS Code Types)
Jump to: navigation, search

Code Breaker is a cheat device developed by Pelican Accessories, currently available for PlayStation, PlayStation 2, Dreamcast and Nintendo DS. Along with competing product Action Replay, it is one of the few currently supported video game cheat devices. The original model of the Codebreaker was identical to the Gameshark in that it would use codes to hack the game. It could also use Gameshark codes as well as its own. It was well known for having a more user friendly interface and design than the Gameshark.

CodeBreaker DS.jpg Codebreaker (Nintendo DS).png

   Codebreaker DS Code Types
   ---------------------------------------
   Auto Game Recognizer (Code Type 0x0000)
   ---------------------------------------
   0000YYYY XXXXXXXX
   YYYY = Game's Header CRC16
   XXXXXXXX = ID of the Game's Nintendo
   -------------------------------------
   Bit Constant Write (Code Type 0x00)
   -------------------------------------
   0 XXXXXXX 000000 YY
   00 = Code Type Or Byte
   Address = XXXXXXX
   YY = 8-bit Value
   --------------------------------------
   Bit Constant Write (Code Type 0x10)
   --------------------------------------
   XXXXXXX 1 0000 YYYY
   10 = Code Type Or Byte
   Address = XXXXXXX
   YYYY = 16-bit Value
   --------------------------------------
   Bit Constant Write (Code Type 0x20)
   --------------------------------------
   2 XXXXXXX YYYYYYYY
   20 = Code Type Or Byte
   Address = XXXXXXX
   YYYYYYYY = 32-bit Value
   ---------------------------------------------
   8 / Increment/Decrement Bit (Code Type 0x30)
   ---------------------------------------------
   3 000UYYYY XXXXXXX
   30 = Code Type Or Byte
   Address = XXXXXXX
   U = Bit-type Write, 0 for 8 and 1 for 16-bit
   YYYY = 8/16-bit Value to increment by
   NOTE: YYYY is signed so it can do the increment and decrement
   -------------------------------------------
   Bit Increment/Decrement (Code Type 0x38)
   -------------------------------------------
   3 XXXXXXX YYYYYYYY
   38 = Code Type Or Byte
   Address = XXXXXXX
   YYYYYYYY = 8/16-bit Value to increment by
   NOTE: YYYYYYYY is signed so it can do the increment and decrement
   ---------------------------------------------
   Serial Repeat Constant Write (Code Type 0x40)
   ---------------------------------------------
   4 XXXXXXX TWWWZZZZ
   YYYYYYYY VVVVVVVV
   40 = Code Type Or Byte
   Address = XXXXXXX
   T = Bit-type Write, 0 for 32-bit, 16-bit for 1 & 2 for 8
   WWW = Number of times to repeat
   ZZZZ = Increase Address by (Multiply by data size (1 << (2-T)))
   YYYYYYYY = Start Value
   VVVVVVVV = Increase Value by
   Example: This code:
   42010000 00050001 <--0001 * 4 = 0004 to Increase Address by
   63636363 00000000
   Is the same as:
   22010000 63636363
   22010004 63636363
   22010008 63636363
   2201000C 63636363
   22010010 63636363
   ---------------------------
   Copy Bytes (Code Type 0x50)
   ---------------------------
   5 XXXXXXX YYYYYYYY
   ZZZZZZZZ 00000000
   50 = Code Type Or Byte
   XXXXXXX = Address to copy to
   YYYYYYYY = Number of bytes to copy
   ZZZZZZZZ = Address to copy from
   -----------------------------
   Pointer Code (Code Type 0x60)
   -----------------------------
   6 XXXXXXX YYYYYYYY
   BCTUVVVV ZZZZZZZZ
   60 = Code Type Or Byte
   XXXXXXX = Pointer Address
   YYYYYYYY = 8 / 16 Bit Value
   ZZZZZZZZ = Offset to add to the Pointer Address
   B = Bit-type Write, 0 for 8-bit, 16-bit for 1 & 2 for 32
   C = Condition Enabled, 0 for disabled, 1 for enabled
   T = the Condition type to check against
   0 = If equal to VVVV
   1 = If not equal to VVVV
   2 = If lesser than VVVV
   3 = If greater than VVVV
   4 = If AND VVVV equal to 0000
   5 = If AND VVVV not equal to 0000
   6 = If AND VVVV equal to VVVV
   7 = If AND VVVV not equal to VVVV
   U = Bit-type Load, 0 for 8 and 1 for 16-bit
   VVVV = Conditional Value to check against
   -----------------------------------------------
   8 / Bit Special Bitwise Write (Code Type 0x70)
   -----------------------------------------------
   7 00TBYYYY XXXXXXX
   70 = Code Type Or Byte
   Address = XXXXXXX
   T = Operation type, 0 for OR, for 1 AND 2 for XOR
   B = Bit-type Write, 0 for 8 and 1 for 16-bit
   YYYY = 8/16-Bit Value
   ----------------------------------------------
   Bit Write On Bootup-Hook 1 (Code Type 0xA0)
   ----------------------------------------------
   AXXXXXXX YYYYYYYY
   A0 = Code Type Or Byte
   Address = XXXXXXX
   YYYYYYYY = Value
   ----------------------------------------------
   Bit Write On Bootup-Hook 2 (Code Type 0xA8)
   ----------------------------------------------
   AXXXXXXX YYYYYYYY
   A8 = Code Type Or Byte
   Address = XXXXXXX
   YYYYYYYY = Value
   -----------------------------------------
   Bit Conditional Check (Code Type 0xD0)
   -----------------------------------------
   DXXXXXXX ZZTUYYYY
   D0 = Code Type Or Byte
   Address = XXXXXXX
   ZZ = Lines to skip, 00 means 01 by default
   T = the Condition type to check against
   0 = If equal to YYYY
   1 = If not equal to YYYY
   2 = If lesser than YYYY
   3 = If greater than YYYY
   4 = If AND YYYY equal to 0000
   5 = If AND YYYY not equal to 0000
   6 = If AND YYYY equal to YYYY
   7 = If AND YYYY not equal to YYYY
   U = Bit-type Load, 0, 1 for 8-bit and 16-bit for
   YYYY = Conditional Value to check against
   -----------------------------------
   Enable Code-Hook 1 (Code Type 0xF0)
   -----------------------------------
   FXXXXXXX TYYYYYYY
   F0 = Code Type Or Byte
   XXXXXXX = Hook Address
   T = Type of Hook to use
   0 = Hook almost any 2 opcodes, LDR PC =
   1 = Hook almost any BL opcode, BL function
   2 = Hook almost any.long address, DC. D ADDR; BX
   3 = Hook almost any BX Register opcode, BX Ry
   YYYYYYY = Cheat Engine Address
   -----------------------------------
   Enable Code-Hook 2 (Code Type 0xF8)
   -----------------------------------
   FXXXXXXX TPPPPPPP
   F8 = Code Type Or Byte
   XXXXXXX = Cheat Engine Hook Address
   T = Type of Hook to use
   0 = Hook almost any 2 opcodes, LDR PC =
   1 = Hook almost any BL opcode, BL function
   2 = Hook almost any.long address, DC. D ADDR; BX
   3 = Hook almost any BX Register opcode, BX Ry
   PPPPPPP = Parameters that will be used later
   Reprinted from GSCENTRAL 

External Links