Cafe Codetypes
Cheat Codes for the Wii U are expressed in the Cafe Codetype. These are merely the Wii U-equivalent to the Wii's Gecko- or GCN's Action Replay Codetypes.
The general scheme looks like following:
CCPS0000 LLLLLLLL
VVVVVVVV 00000000
The first byte (CC) defines the codetype. P tells if a pointer is being used.
S gives information about the data size. LLLLLLLL represents the location/address.
KKKKKKKK instead of LLLLLLLL is used to express an offset between a pointer and the cheat's destination.
Legend:
- CC = Code Type:
00 = RAM Writes
01 = Patch/String Writes
02 = Skip Writes
03 = If equal
04 = If not equal
05 = If greater
06 = If lower
07 = If greater or equal
08 = If lower or equal
09 = Conditional logical AND
0A = Conditional logical OR
0B = If value between
0C = Add Time-Dependence
0D = Reset Timer
10 = Load Integer
11 = Store Integer
12 = Load Float
13 = Store Float
14 = Integer Operations
15 = Float Operations
20 = Memory fill
30 = Load Pointer
31 = Add Offset to Pointer
C0 = Execute ASM
C1 = Perform Cafe OS Syscalls
D0 = Termination
D1 = No Operation
D2 = Timer Termination
F0 = Corruptor
- P = Pointer:
0 = no pointer
1 = pointer - S = Size:
8-bits = 0
16-bits = 1
32-bits = 2 - LLLLLLLL = Location/Address
- VVVVVVVV = Value:
8-bits = 000000VV
16-bits = 0000VVVV
32-bits = VVVVVVVV - RANGE_ST = Beginning of stable/reliable memory range:
Minimum value = 0x10000000. Should be about 0x100000 smaller than the actual pointer. But you can increase or decrease it by feel. This is required to prevent inevitable freezes during loading times. - RANGE_EN = End of stable/reliable memory range:
Maximum value = 0x50000000. Should be about 0x100000 bigger than the actual pointer. But you can increase or decrease it by feel. This is required to prevent inevitable freezes during loading times. - QQQQQQQQ = Permanent Pointer offset (signed):
If the offset is negative write it as a signed hexadecimal integer without minus-sign. Example: -0x369C -> FFFFC964. Permanent means that the offset addition has affect on all following codes unless another pointer is loaded. - KKKKKKKK = Volatile Pointer offset (signed):
Only the 00-Codetype uses unsigned offsets. Volatile means that the added offset has no affect on the following code(s).
Another great explaination can be found on bullywiiplaza.website.
RAM Write (00)
Format | Example |
---|---|
8bit: 00000000 LLLLLLLL 000000VV 00000000 This permanently writes the 8bit value of VV to address/location LLLLLLLL. |
Wind Waker HD: Infinite hearts (any region) 00000000 15073BC3 00000050 00000000 This permanently writes the vale of 0x50 (80) to address/location 0x15073BC3 which refers to the amount of quarter hearts. |
16bit: 00010000 LLLLLLLL 0000VVVV 00000000 This permanently writes the 16bit value of VVVV to address/location LLLLLLLL. |
Twilight Princess HD: Infinite Lantern Oil (any region) 00010000 10647B52 00006000 00000000 |
32bit: 00020000 LLLLLLLL VVVVVVVV 00000000 This permanently writes the 32bit value of VVVVVVVV to address/location LLLLLLLL. |
Wind Waker HD: Replace grass x1 with pigs (any region) 00020000 106EE1E4 00DCFF00 00000000 |
With pointer: 30000000 LLLLLLLL RANGE_ST RANGE_EN 31000000 QQQQQQQQ 0010KKKK 000000VV 0011KKKK 0000VVVV 0012KKKK VVVVVVVV D0000000 DEADCAFE This permanently writes the 8-bit value of VV to the previously computed pointer (see 30 and 31 code types) + a volatile, unsigned offset of KKKK. Same for the 16-bit and 32-bit writes. KKKK only affects the write where it actually appears. The following line won't be affected by it. So all instances of KKKK represent different values. (If they would all be the same all 3 values would be written to the exact same address.) |
30000000 12345678 11000000 13000000 31000000 000035E8 00120000 3F800000 00120004 40000000 00120008 40400000 D0000000 DEADCAFE This permantly writes 0x3F800000 to the previously computed pointer + an offset of 0x0000. Same with the values of 0x40000000 and 0x40400000 except that they have an offset of 0x0004 and 0x0008. |
Patch/String Writes (01)
Format | Example |
---|---|
Direct address: 0100NNNN LLLLLLLL VVVVVVVV VVVVVVVV VVVV0000 000000FF This permanently writes the amount of bytes defined by NNNN to LLLLLLLL. VV represents a byte. The rest of the last line must be filled with zeros where the last byte must be 0xFF (otherwise the codehandler won't know where the code ends). If VV fills the last line add 00000000 000000FF beneath it. |
Twilight Princess HD (any region) - Change Link's name to "Wolfgang" 01000008 10647CFC 576F6C66 67616E67 00000000 000000FF This permanently writes the string of 0x576F6C6667616E67 to 0x10647CFC which effectively changes Link's name to Wolfgang. |
With pointer: 30000000 LLLLLLLL RANGE_ST RANGE_EN 31000000 QQQQQQQQ 0110NNNN KKKKKKKK VVVVVVVV VVVVVVVV VVVV0000 000000FF D0000000 DEADCAFE Same as above except that the value is being written to the previously computed pointer (see 30 and 31 code types) + a signed offset of KKKKKKKK where KKKKKKKK is volatile and has no affect on following codes. |
30000000 12345678 45600000 45780000 31000000 FFFC5284 01100008 0000045C 576F6C66 67616E67 00000000 000000FF D0000000 DEADCAFE Same as above except that the value is being written to the previously computed pointer (see 30 and 31 code types) + a signed offset of 0x45C where 0x45C is volatile and has no affect on following codes. |
Skip Writes (02)
Format | Example |
---|---|
8bit: 0200NNNN LLLLLLLL 000000VV YYYYYYYY 000000II 00000000 This consecutively writes the 8-bit value of VV NNNN times starting at address/location LLLLLLLL. The next write will be YYYYYYYY (signed value) remote from the previous one. The next write becomes incremented by II (signed value). If no increment is wished use 0x00 for II. |
|
16bit: 0201NNNN LLLLLLLL 0000VVVV YYYYYYYY 0000IIII 00000000 This consecutively writes the 16-bit value of VVVV NNNN times starting at address/location LLLLLLLL. The next write will be YYYYYYYY (signed value) remote from the previous one. The next write becomes incremented by IIII (signed value). If no increment is wished use 0x0000 for IIII. |
|
32bit: 0202NNNN LLLLLLLL VVVVVVVV YYYYYYYY IIIIIIII 00000000 This consecutively writes the 32-bit value of VVVVVVVV NNNN times starting at address/location LLLLLLLL. The next write will be YYYYYYYY (signed value) remote from the previous one. The next write becomes incremented by IIIIIIII (signed value). If no increment is wished use 0x00000000 for IIIIIIII. |
|
With pointer: 30000000 LLLLLLLL RANGE_ST RANGE_EN 31000000 QQQQQQQQ 0210NNNN KKKKKKKK 000000VV YYYYYYYY 000000II 00000000 0211NNNN KKKKKKKK 0000VVVV YYYYYYYY 0000IIII 00000000 0212NNNN KKKKKKKK VVVVVVVV YYYYYYYY IIIIIIII 00000000 D0000000 DEADCAFE Same as above except that a pointer has been loaded. KKKKKKKK is a signed offset which does not affect the following cheats. |
Conditional - If Equal (03)
Format | Example |
---|---|
8bit: 03000000 LLLLLLLL 000000VV 00000000 . . . D0000000 DEADCAFE This checks if the 8bit value at LLLLLLLL equals VV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
|
16bit: 03010000 LLLLLLLL 0000VVVV 00000000 . . . D0000000 DEADCAFE This checks if the 16bit value at LLLLLLLL equals VVVV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
|
32bit: 03020000 LLLLLLLL VVVVVVVV 00000000 . . . D0000000 DEADCAFE This checks if the 32bit value at LLLLLLLL equals VVVVVVVV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
|
With pointer (16bit): 30000000 LLLLLLLL RANGE_ST RANGE_EN 31000000 QQQQQQQQ 03110000 KKKKKKKK 0000VVVV 00000000 . . . D0000000 DEADCAFE This checks if the value of the previously computed pointer (see 30 and 31 code types) + a volatile, signed offset of KKKKKKKK equals VVVV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
Conditional - If Not Equal (04)
Format | Example |
---|---|
8bit: 04000000 LLLLLLLL 000000VV 00000000 . . . D0000000 DEADCAFE This checks if the 8bit value at LLLLLLLL differs from VV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
|
16bit: 04010000 LLLLLLLL 0000VVVV 00000000 . . . D0000000 DEADCAFE This checks if the 16bit value at LLLLLLLL differs from VVVV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
|
32bit: 04020000 LLLLLLLL VVVVVVVV 00000000 . . . D0000000 DEADCAFE This checks if the 32bit value at LLLLLLLL differs from VVVVVVVV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
|
With pointer (32bit): 30000000 LLLLLLLL RANGE_ST RANGE_EN 31000000 QQQQQQQQ 04120000 KKKKKKKK VVVVVVVV 00000000 . . . D0000000 DEADCAFE This checks if the value of the previously computed pointer (see 30 and 31 code types) + a volatile, signed offset of KKKKKKKK differs from VVVVVVVV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
Conditional - If Greater Than (05)
Format | Example |
---|---|
8bit: 05000000 LLLLLLLL 000000VV 00000000 . . . D0000000 DEADCAFE This checks if the 8bit value at LLLLLLLL is greater than VV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
|
16bit: 05010000 LLLLLLLL 0000VVVV 00000000 . . . D0000000 DEADCAFE This checks if the 16bit value at LLLLLLLL is greater than VVVV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
|
32bit: 05020000 LLLLLLLL VVVVVVVV 00000000 . . . D0000000 DEADCAFE This checks if the 32bit value at LLLLLLLL is greater than VVVVVVVV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
|
With pointer (8bit): 30000000 LLLLLLLL RANGE_ST RANGE_EN 31000000 QQQQQQQQ 05120000 KKKKKKKK 000000VV 00000000 . . . D0000000 DEADCAFE This checks if the value of the previously computed pointer (see 30 and 31 code types) + a volatile, signed offset of KKKKKKKK is greater than VV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
Conditional - If Lower Than (06)
Format | Example |
---|---|
8bit: 06000000 LLLLLLLL 000000VV 00000000 . . . D0000000 DEADCAFE This checks if the 8bit value at LLLLLLLL is lower than VV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
|
16bit: 06010000 LLLLLLLL 0000VVVV 00000000 . . . D0000000 DEADCAFE This checks if the 16bit value at LLLLLLLL is lower than VVVV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
|
32bit: 06020000 LLLLLLLL VVVVVVVV 00000000 . . . D0000000 DEADCAFE This checks if the 32bit value at LLLLLLLL is lower than VVVVVVVV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
|
With pointer (8bit): 30000000 LLLLLLLL RANGE_ST RANGE_EN 31000000 QQQQQQQQ 06120000 KKKKKKKK 000000VV 00000000 . . . D0000000 DEADCAFE This checks if the value of the previously computed pointer (see 30 and 31 code types) + a volatile, signed offset of KKKKKKKK is lower than VV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
Conditional - If Greater Or Equal (07)
Format | Example |
---|---|
8bit: 07000000 LLLLLLLL 000000VV 00000000 . . . D0000000 DEADCAFE This checks if the 8bit value at LLLLLLLL is greater than or equal VV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
|
16bit: 07010000 LLLLLLLL 0000VVVV 00000000 . . . D0000000 DEADCAFE This checks if the 16bit value at LLLLLLLL is greater than or equal VVVV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
|
32bit: 07020000 LLLLLLLL VVVVVVVV 00000000 . . . D0000000 DEADCAFE This checks if the 32bit value at LLLLLLLL is greater than or equal VVVVVVVV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
|
With pointer (8bit): 30000000 LLLLLLLL RANGE_ST RANGE_EN 31000000 QQQQQQQQ 07120000 KKKKKKKK 000000VV 00000000 . . . D0000000 DEADCAFE This checks if the value of the previously computed pointer (see 30 and 31 code types) + a volatile, signed offset of KKKKKKKK is greater than or equal VV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
Conditional - If Lower Or Equal (08)
Format | Example |
---|---|
8bit: 08000000 LLLLLLLL 000000VV 00000000 . . . D0000000 DEADCAFE This checks if the 8bit value at LLLLLLLL is lower than or equal VV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
|
16bit: 08010000 LLLLLLLL 0000VVVV 00000000 . . . D0000000 DEADCAFE This checks if the 16bit value at LLLLLLLL is lower than or equal VVVV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
|
32bit: 08020000 LLLLLLLL VVVVVVVV 00000000 . . . D0000000 DEADCAFE This checks if the 32bit value at LLLLLLLL is lower than or equal VVVVVVVV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
|
With pointer (8bit): 30000000 LLLLLLLL RANGE_ST RANGE_EN 31000000 QQQQQQQQ 08120000 KKKKKKKK 000000VV 00000000 . . . D0000000 DEADCAFE This checks if the value of the previously computed pointer (see 30 and 31 code types) + a volatile, signed offset of KKKKKKKK is lower than or equal VV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
Conditional - Logical AND (09)
Format | Example |
---|---|
8bit: 09000000 LLLLLLLL 000000VV 00000000 . . . D0000000 DEADCAFE This checks if the 8bit value at LLLLLLLL has the same true bits as VV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
|
16bit: 09010000 LLLLLLLL 0000VVVV 00000000 . . . D0000000 DEADCAFE This checks if the 16bit value at LLLLLLLL has the same true bits as VVVV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
|
32bit: 09020000 LLLLLLLL VVVVVVVV 00000000 . . . D0000000 DEADCAFE This checks if the 32bit value at LLLLLLLL has the same true bits as VVVVVVVV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
|
With pointer (8bit): 30000000 LLLLLLLL RANGE_ST RANGE_EN 31000000 QQQQQQQQ 09120000 KKKKKKKK 000000VV 00000000 . . . D0000000 DEADCAFE This checks if the value of the previously computed pointer (see 30 and 31 code types) + a volatile, signed offset of KKKKKKKK has the same true bits as VV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
Conditional - Logical OR (0A)
Format | Example |
---|---|
8bit: 0A000000 LLLLLLLL 000000VV 00000000 . . . D0000000 DEADCAFE This checks if the 8bit value at LLLLLLLL shares at least one true bit with VV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
|
16bit: 0A010000 LLLLLLLL 0000VVVV 00000000 . . . D0000000 DEADCAFE This checks if the 16bit value at LLLLLLLL shares at least one true bit with VVVV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
|
32bit: 0A020000 LLLLLLLL VVVVVVVV 00000000 . . . D0000000 DEADCAFE This checks if the 32bit value at LLLLLLLL shares at least one true bit with VVVVVVVV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
|
With pointer (8bit): 30000000 LLLLLLLL RANGE_ST RANGE_EN 31000000 QQQQQQQQ 0A120000 KKKKKKKK 000000VV 00000000 . . . D0000000 DEADCAFE This checks if the value of the previously computed pointer (see 30 and 31 code types) + a volatile, signed offset of KKKKKKKK shares at least one true bit with VV. If the condition is true the next code/s (represented by . . . ) is/are executed. |
Conditional - If Value Between (0B)
Format | Example |
---|---|
8bit: 0B000000 LLLLLLLL 000000VV 000000WW . . . D0000000 DEADCAFE This checks if the 8bit value at LLLLLLLL is bigger than VV and smaller than WW. If the condition is true the next code/s (represented by . . . ) is/are executed. |
|
16bit: 0B010000 LLLLLLLL 0000VVVV 0000WWWW . . . D0000000 DEADCAFE This checks if the 16bit value at LLLLLLLL is bigger than VVVV and smaller than WWWW. If the condition is true the next code/s (represented by . . . ) is/are executed. |
|
32bit: 0B020000 LLLLLLLL VVVVVVVV WWWWWWWW . . . D0000000 DEADCAFE This checks if the 32bit value at LLLLLLLL is bigger than VVVVVVVV and smaller than WWWWWWWW. If the condition is true the next code/s (represented by . . . ) is/are executed. |
|
With pointer (8bit): 30000000 LLLLLLLL RANGE_ST RANGE_EN 31000000 QQQQQQQQ 0B120000 KKKKKKKK 000000VV 000000WW . . . D0000000 DEADCAFE This checks if the value of the previously computed pointer (see 30 and 31 code types) + a volatile, signed offset of KKKKKKKK is bigger than VV and smaller than WW. If the condition is true the next code/s (represented by . . . ) is/are executed. |
Add Time-Dependency (0C)
Format | Example |
---|---|
0C000000 NNNNNNNN . . . D2000000 CAFEBABE All codes between this line and D2000000 CAFEBABE will only be executed if less than NNNNNNNN "frames" have passed. If you want to execute this code again you can use the 0D-Type to reset the timer. 1s ≈ 120/0x78 |
0C000000 000004B0 00020000 487314D8 42000000 00000000 D2000000 CAFEBABE This will only allow the cheat code to be executed before the framecounter has reached 1200/0x4B0. |
Reset Timer (0D)
Format | Example |
---|---|
0D00VVVV LLLLLLLL This resets the timer to 0 if the 16-bit value at LLLLLLLL equals VVVV so all time-dependent codes will be active again. |
0D008040 13504566 This resets the timer to 0 if the 16-bit value at 0x13504566 equals 0x4080 so all time-dependent codes will be active again. |
Load Integer (10)
Format | Example |
---|---|
8bit: 1000000R LLLLLLLL This loads the 8bit value located at LLLLLLLL into Integer Register R. |
|
16bit: 1001000R LLLLLLLL This loads the 16bit value located at LLLLLLLL into Integer Register R. | |
32bit: 1002000R LLLLLLLL This loads the 32bit value located at LLLLLLLL into Integer Register R. |
|
With pointer: 30000000 LLLLLLLL RANGE_ST RANGE_EN 31000000 QQQQQQQQ 101S000R KKKKKKKK D0000000 DEADCAFE This loads the integer located at the previously computed pointer (see 30 and 31 code types) + a volatile, signed offset of KKKKKKKK into integer register R. |
Store Integer (11)
Format | Example |
---|---|
8bit: 1100000R LLLLLLLL This stores the 8bit value inside of Integer-Register R to the address specified in LLLLLLLL. |
|
16bit: 1101000R LLLLLLLL This stores the 16bit value inside of Integer-Register R to the address specified in LLLLLLLL. | |
32bit: 1102000R LLLLLLLL This stores the 32bit value inside of Integer-Register R to the address specified in LLLLLLLL. |
|
With pointer: 30000000 LLLLLLLL RANGE_ST RANGE_EN 31000000 QQQQQQQQ 111S000R KKKKKKKK D0000000 DEADCAFE This stores the integer inside of Integer-Register R to the the previously computed pointer (see 30 and 31 code types) + a volatile, signed offset of KKKKKKKK. |
Load Float (12)
Format | Example |
---|---|
Normal: 1200000R LLLLLLLL This loads the float located at LLLLLLLL into Float-Register R. |
|
With pointer: 30000000 LLLLLLLL RANGE_ST RANGE_EN 31000000 QQQQQQQQ 1210000R KKKKKKKK D0000000 DEADCAFE This loads the float of the previously computed pointer (see 30 and 31 code types) + a volatile, signed offset of KKKKKKKK into Float Register R. |
Store Float (13)
Format | Example |
---|---|
Normal: 1300000R LLLLLLLL This stores the float inside of R to the address specified with LLLLLLLL. |
|
With pointer: 30000000 LLLLLLLL RANGE_ST RANGE_EN 31000000 QQQQQQQQ 1310000R KKKKKKKK D0000000 DEADCAFE This stores the float inside of R to the previously computed pointer (see 30 and 31 code types) + a volatile, signed offset of KKKKKKKK. |
Integer Operations (14)
Format | Example |
---|---|
Operation between 2 Registers: 140T0R0Я 00000000
R = First operant and destination (where the result will be placed) Я = Second operant (what the first operant will be affected by) |
|
Direct Value Operations: 140T0R00 VVVVVVVV
R = First operant and destination (where the result will be placed) VVVVVVVV = Second Operant (what R will be affected by) |
Float Operations (15)
Format | Example |
---|---|
Operation between 2 Registers: 150T0R0Я 00000000
R = First operant and destination (where the result will be placed) Я = Second operant (what the first operant will be affected by) |
|
Direct Value Operations: 150T0R00 VVVVVVVV
R = First operant and destination (where the result will be placed) VVVVVVVV = Second Operant (what R will be affected by) |
Memory Fill (20)
Format | Example |
---|---|
Normal: 20000000 VVVVVVVV LLLLLLLL MMMMMMMM LLLLLLLL = Address of first value-write MMMMMMMM = Offset between LLLLLLLL and last write. |
|
With Pointer: 30000000 LLLLLLLL RANGE_ST RANGE_EN 31000000 QQQQQQQQ 20100000 VVVVVVVV KKKKKKKK MMMMMMMM D0000000 DEADCAFE MMMMMMMM = Offset between LLLLLLLL and last write. |
Load Pointer (30)
Format | Example |
---|---|
Normal: 30000000 LLLLLLLL RANGE_ST RANGE_EN LLLLLLLL = Address of where to load the pointer. RANGE_ST = Beginning of reliable memory range. RANGE_EN = End of reliable memory range. Defining the memory range is necessarrily required. Without it the system would access unmapped or wrong memory which leads to inevitable crashes. The memory range should be big enough to include any possible area the value destination can be located. For instance, if the smallest pointer destination is 0x27CE8940 and the biggest is 0x2814ED40 you could replace RANGE_ST with 0x27000000 and RANGE_EN with 0x28800000 to ensure to be using a valid and crash-free memory range. This also loads the Pointer located at LLLLLLLL only when it refers to a range between RANGE_ST and RANGE_EN. |
|
With Pointer (loading Pointer-into-Pointer): 30000000 LLLLLLLL RANGE_ST RANGE_EN 31000000 QQQQQQQQ 30100000 00000000 RANGE_ST RANGE_EN D0000000 DEADCAFE This loads the pointer located at LLLLLLLL [30] and adds the signed offset of QQQQQQQQ to it [31]. It now loads the pointer of where the previously computed pointer refers to. |
Add Offset To Pointer (31)
Format | Example |
---|---|
31000000 QQQQQQQQ This adds the signed offset QQQQQQQQ to the previously loaded pointer. |
Execute Assembly (C0)
Format | Example |
---|---|
C000NNNN 60000000 XXXXXXXX XXXXXXXX ... 3C40010F 60426AE0 7C4903A6 4E800420 This Code Type can be used to execute ANY assembly code. All GPR and FPR are available. The last 2 lines of every code of this type must be 3C40010F 60426AE0 7C4903A6 4E800420 NNNN defines the number of lines excluding C000NNNN 60000000, but including the last 2 ones. One line consists of 2 assembly instructions (8 Bytes). If you have an odd amount of assembly instructions add 0x60000000 where the gap would be. The code will be executed about 120 times a second. If you want to use LR don't forget to write an assembly instruction to back up it somewhere into memory and recover it later. |
C0000005 60000000 3C601234 60635678 3C80AABB 6084CCDD 90830000 60000000 3C40010F 60426AE0 7C4903A6 4E800420 |
Perform Cafe OS Syscalls (C1)
Format | Example |
---|---|
C100XXXX 00000000 This performs the system call of the value of XXXX. Visit WiiUBrew.org to find all available SysCall values. |
Request Fast Exit C0006700 00000000 This forces the system to open the home menu. |
Termination (D0)
Format | Example |
---|---|
D0000000 DEADCAFE This line of code is always required in the end of a conditional code or code with pointer(s). It effectively does nothing but tells the codehandler where to branch the cheat code execution once a condition is false or the a pointer goes out off range. |
No Operation (D1)
Format | Example |
---|---|
D1000000 DEADC0DE This line does absolutely nothing. But it is used by the codehandler to overwrite cheat code which will be executed only once. You probably won't ever need to use it but I'd like to mention it here since it's an actual feature of the codehandler. |
Timer Termination (D2)
Format | Example |
---|---|
D2000000 CAFEBABE This line of code must be used as last line of every time-depended code. This tells the codehandler where to branch when the time-depended codes have to be skipped. |
Corruptor (F0)
Format | Example |
---|---|
F0000000 LLLLLLLL MMMMMMMM VVVVVVVV WWWWWWWW 00000000 This searches for every value of VVVVVVVV inside the memory range specified with LLLLLLLL (beginning) and MMMMMMMM (end) and replaces every match with WWWWWWWW. This can lead to nasty corruptions |
F0000000 11000000 18000000 3F800000 40000000 00000000 This searches for every value of 0x3F800000 inside a range of 0x11000000 and 0x18000000 and overwrites ever match with 0x40000000. |