Difference between revisions of "Code Types (Nintendo DS)"

From Wiki - GameHacking.org
Jump to: navigation, search
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
TBA
+
===Codebreaker===
 +
 
 +
----
 +
 
 +
 
 +
{| class="wikitable"
 +
 
 +
|- class="codestop"
 +
| Type & Format || Description || Other || Limitations
 +
 
 +
|-
 +
| Game ID Specifier (For encrypted codes) <br><br>0000YYYY XXXXXXXX || YYYY is the games header CRC16, XXXXXXXX is the games Nintendo ID. || -- || --
 +
 
 +
|-
 +
| Game ID Specifier (For unencrypted codes) <br><br>8000YYYY XXXXXXXX || YYYY is the games header CRC16, XXXXXXXX is the games Nintendo ID. || -- || --
 +
 
 +
|-
 +
| Beef Code <br><br>BEEFC0DE XXXXXXXX || Changes encryption keys. || -- || --
 +
 
 +
|-
 +
| Bootup-Hook 1 <br><br>A0XXXXXX YYYYYYYY || XXXXXX is the address, YYYYYYYY is the value. || -- || --
 +
 
 +
|-
 +
| Bootup-Hook 2 <br><br>A8XXXXXX YYYYYYYY || XXXXXX is the address, YYYYYYYY is the value. || -- || --
 +
 
 +
|-
 +
| Code-Hook 1 <br><br>F0XXXXXX TYYYYYYY || Details not researched. || -- || --
 +
 
 +
|-
 +
| Code-Hook 2 <br><br>F8XXXXXX TYYYYYYY || Details not researched. || -- || --
 +
 
 +
|-
 +
| 8-bit Constant Write <br><br>00XXXXXX 000000YY
 +
|| Writes value YY  to address XXXXXX. || -- || --
 +
 
 +
|-
 +
| 16-bit Constant Write <br><br>10XXXXXX 0000YYYY || Writes value YYYY to address XXXXXX. || -- || --
 +
 
 +
|-
 +
| 32-bit Constant Write <br><br>20XXXXXX YYYYYYYY || Writes value YYYYYYYY to address XXXXXX.  || -- || --
 +
 
 +
|-
 +
| 8/16-bit Increment/Decrement <br><br>30XXXXXX 000UYYYY || XXXXXX is the address to write to, U defines the write type; 0 for an 8-Bit write or 1 for a 16-bit write. And YYYY is the 8 or 16-bit value to increment/decrement by. || YYYY is signed so it can do increment and decrement
 +
|| --
 +
 
 +
 
 +
|-
 +
| 32-bit Increment/Decrement <br><br>38XXXXXX YYYYYYYY || XXXXXX is the address to write to and YYYYYYYY is the 32-bit value to increment/decrement by. || YYYYYYYY is signed so it can do increment and decrement.
 +
|| --
 +
 
 +
|-
 +
| Serial Repeater (8-bit) <br><br>40XXXXXX 2WWWZZZZ<br>000000YY 000000VV || XXXXXX is the starting address to write to.<br><br>WWW is the number of iterations.<br><br>ZZZZ is the amount to increase the address by.<br><br>000000YY is the initial value to write.<br><br>and 000000VV is the amount to increase 000000YY by for each iteration. || -- || --
 +
 
 +
 
 +
|-
 +
| Serial Repeater (16-bit) <br><br>40XXXXXX 1WWWZZZZ<br>0000YYYY 0000VVVV || XXXXXX is the starting address to write to.<br><br>WWW is the number of iterations.<br><br>ZZZZ is the amount to increase the address by (This value is automatically multiplied by 2 by the Codebreaker).<br><br>0000YYYY is the initial value to write.<br><br>And 0000VVVV is the amount to increase 0000YYYY by for each iteration. || -- || --
 +
 
 +
 
 +
|-
 +
| Serial Repeater (32-bit) <br><br>40XXXXXX 0WWWZZZZ<br>YYYYYYYY VVVVVVVV || XXXXXX is the starting address to write to.<br><br>WWW is the number of iterations.<br><br>ZZZZ is the amount to increase the address by (This value is automatically multiplied by 4 by the Codebreaker).<br><br>YYYYYYYY is the initial value to write.<br><br>And VVVVVVVV is the amount to increase YYYYYYYY by for each iteration. || -- || --
 +
 
 +
|-
 +
| Copy Bytes <br><br>50XXXXXX YYYYYYYY<br>ZZZZZZZZ 00000000 || XXXXXX is the address to copy to, YYYYYYYY is the number of bytes to copy, and ZZZZZZZZ is the address to copy from. || -- || --
 +
 
 +
|-
 +
| Pointer Code <br><br>60XXXXXX YYYYYYYY<br>ZZZZZZZZ BCTUVVVV || B is the bit type to write; 0 for 8-bit, 1 for 16-Bit and 2 for 32-Bit.<br><br>C specifies whether or not a condition is enabled; 0 for disabled, 1 for enabled.<br><br>T defines the condition; 0 - If Equal to. 1 - If Not Equal to. 2 - If Lesser Than. 3 - If Greater Than. 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.<br><br>U is the bit-type Load; 0 for 8-Bit and 1 for 16-Bit.<br><br>VVVV is the conditional value to check against. || Rumored to be buggy. || --
 +
 
 +
|-
 +
| 8/16-Bit Special Bitwise Write <br><br>70XXXXXX 00TBYYYY || XXXXXX is the address to write to.<br><br>T is the Operation type; 0 for OR, 1 for AND, 2 for XOR.<br><br>B is the bit type to write; 0 for 8-bit and 1 for 16-bit.<br><br>And finally, YYYY is the 8-bit/16-bit value || -- || --
 +
 
 +
|-
 +
| Multi Conditional Check <br><br>D0XXXXXX ZZTUYYYY || XXXXXX is the address that the condition is applied to.<br><br>ZZ is the number of lines to skip; by default 00 means 01.<br><br>T defines the condition type; 0 - If Equal to. 1 - If Not Equal to. 2 - If Lesser Than. 3 - If Greater Than. 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.<br><br>U is the bit-type Load; 0 for 16-bit and 1 for 8-bit.<br>And YYYY is the value to check against. || -- || --
 +
|}
 +
 
  
  
 
{{Code Types}}
 
{{Code Types}}
 
[[Category:Code Types]]
 
[[Category:Code Types]]

Latest revision as of 19:28, 4 October 2015

Codebreaker



Type & Format Description Other Limitations
Game ID Specifier (For encrypted codes)

0000YYYY XXXXXXXX
YYYY is the games header CRC16, XXXXXXXX is the games Nintendo ID. -- --
Game ID Specifier (For unencrypted codes)

8000YYYY XXXXXXXX
YYYY is the games header CRC16, XXXXXXXX is the games Nintendo ID. -- --
Beef Code

BEEFC0DE XXXXXXXX
Changes encryption keys. -- --
Bootup-Hook 1

A0XXXXXX YYYYYYYY
XXXXXX is the address, YYYYYYYY is the value. -- --
Bootup-Hook 2

A8XXXXXX YYYYYYYY
XXXXXX is the address, YYYYYYYY is the value. -- --
Code-Hook 1

F0XXXXXX TYYYYYYY
Details not researched. -- --
Code-Hook 2

F8XXXXXX TYYYYYYY
Details not researched. -- --
8-bit Constant Write

00XXXXXX 000000YY
Writes value YY to address XXXXXX. -- --
16-bit Constant Write

10XXXXXX 0000YYYY
Writes value YYYY to address XXXXXX. -- --
32-bit Constant Write

20XXXXXX YYYYYYYY
Writes value YYYYYYYY to address XXXXXX. -- --
8/16-bit Increment/Decrement

30XXXXXX 000UYYYY
XXXXXX is the address to write to, U defines the write type; 0 for an 8-Bit write or 1 for a 16-bit write. And YYYY is the 8 or 16-bit value to increment/decrement by. YYYY is signed so it can do increment and decrement --


32-bit Increment/Decrement

38XXXXXX YYYYYYYY
XXXXXX is the address to write to and YYYYYYYY is the 32-bit value to increment/decrement by. YYYYYYYY is signed so it can do increment and decrement. --
Serial Repeater (8-bit)

40XXXXXX 2WWWZZZZ
000000YY 000000VV
XXXXXX is the starting address to write to.

WWW is the number of iterations.

ZZZZ is the amount to increase the address by.

000000YY is the initial value to write.

and 000000VV is the amount to increase 000000YY by for each iteration.
-- --


Serial Repeater (16-bit)

40XXXXXX 1WWWZZZZ
0000YYYY 0000VVVV
XXXXXX is the starting address to write to.

WWW is the number of iterations.

ZZZZ is the amount to increase the address by (This value is automatically multiplied by 2 by the Codebreaker).

0000YYYY is the initial value to write.

And 0000VVVV is the amount to increase 0000YYYY by for each iteration.
-- --


Serial Repeater (32-bit)

40XXXXXX 0WWWZZZZ
YYYYYYYY VVVVVVVV
XXXXXX is the starting address to write to.

WWW is the number of iterations.

ZZZZ is the amount to increase the address by (This value is automatically multiplied by 4 by the Codebreaker).

YYYYYYYY is the initial value to write.

And VVVVVVVV is the amount to increase YYYYYYYY by for each iteration.
-- --
Copy Bytes

50XXXXXX YYYYYYYY
ZZZZZZZZ 00000000
XXXXXX is the address to copy to, YYYYYYYY is the number of bytes to copy, and ZZZZZZZZ is the address to copy from. -- --
Pointer Code

60XXXXXX YYYYYYYY
ZZZZZZZZ BCTUVVVV
B is the bit type to write; 0 for 8-bit, 1 for 16-Bit and 2 for 32-Bit.

C specifies whether or not a condition is enabled; 0 for disabled, 1 for enabled.

T defines the condition; 0 - If Equal to. 1 - If Not Equal to. 2 - If Lesser Than. 3 - If Greater Than. 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 is the bit-type Load; 0 for 8-Bit and 1 for 16-Bit.

VVVV is the conditional value to check against.
Rumored to be buggy. --
8/16-Bit Special Bitwise Write

70XXXXXX 00TBYYYY
XXXXXX is the address to write to.

T is the Operation type; 0 for OR, 1 for AND, 2 for XOR.

B is the bit type to write; 0 for 8-bit and 1 for 16-bit.

And finally, YYYY is the 8-bit/16-bit value
-- --
Multi Conditional Check

D0XXXXXX ZZTUYYYY
XXXXXX is the address that the condition is applied to.

ZZ is the number of lines to skip; by default 00 means 01.

T defines the condition type; 0 - If Equal to. 1 - If Not Equal to. 2 - If Lesser Than. 3 - If Greater Than. 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 is the bit-type Load; 0 for 16-bit and 1 for 8-bit.
And YYYY is the value to check against.
-- --


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