Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- The Cafe Code types are the Wii U-equivalent to the Wii's Gecko Code types or the GameCube's Action Replay code types.
- Below you can see how they are properly formatted. In order to use them you will need wj44's TCPGecko.elf and my Codehandler. Extract the contents of this link onto your SD card. The files should be inside sd:\wiiu\apps\TCPGecko. Do not use another path otherwise the codehandler won't be found. Download the files here: https://gbatemp.net/threads/post-your-wiiu-cheat-codes-here.395443/
- 00 RAM Write
- 00PS0000 LLLLLLLL
- VVVVVVVV 00000000
- P = Pointer state. 0 = no pointer, 1 = pointer
- S = Value Size. 0 = 8bit, 1 = 16bit, 2 = 32bit
- KKKK = Unsigned increment (pointers only). Does NOT affect the next line!
- LLLLLLLL = Location/Address
- VVVVVVVV = Value. 8bit = 000000VV, 16bit = 0000VVVV, 32bit = VVVVVVVV
- Direct Writes:
- 8bit
- 00000000 LLLLLLLL
- 000000VV 00000000
- 16bit
- 00010000 LLLLLLLL
- 0000VVVV 00000000
- 32bit
- 00020000 LLLLLLLL
- VVVVVVVV 00000000
- Pointer:
- 001SKKKK VVVVVVVV
- S = Value Size. 0 = 8bit, 1 = 16bit, 2 = 32bit
- KKKK = Unsigned increment (pointers only). Does NOT affect the next line!
- VVVVVVVV = Value. 8bit = 000000VV, 16bit = 0000VVVV, 32bit = VVVVVVVV
- 8bit
- 0010KKKK 000000VV
- 16bit
- 0011KKKK 0000VVVV
- 32bit
- 0012KKKK VVVVVVVV
- Example:
- 30000000 12345678 // load pointer at 12345678
- 12000000 13000000 // range check. you need to know a "valid" range where the pointer is allowed to refer to
- 31000000 00035E0C // add the offset of 35E0C to the pointer
- 00120000 AAAAAAAA // write AAAAAAAA to the pointer with the previously added offset + an address-increment of 0
- 00120004 BBBBBBBB // write BBBBBBBB to the pointer with the previously added offset + an address-increment of 4
- D0000000 DEADCAFE // termination
- ____________________________________
- 01 String-Write
- 01P0NNNN LLLLLLLL
- VVVVVVVV VVVVVVVV
- VVVV0000 000000FF
- P = Pointer state. 0 = no pointer, 1 = pointer
- LLLLLLLL = Location/Address
- VVVVVVVV = Value. 8bit = 000000VV, 16bit = 0000VVVV, 32bit = VVVVVVVV
- The last line must be filled with zeros where the last byte must be FF.
- If VV fills the last line add 00000000 000000FF beneath it.
- If pointers are involved LLLLLLLL becomes KKKKKKKK
- KKKKKKK = signed increment (pointers only). Does NOT affect the next code!
- ____________________________________
- 02 Skip-Write and Incremental Write
- 02PSNNNN LLLLLLLL
- 000000VV YYYYYYYY
- 000000II 00000000
- P = Pointer state. 0 = no pointer, 1 = pointer
- S = Value Size. 0 = 8bit, 1 = 16bit, 2 = 32bit
- LLLLLLLL = Location/Address
- VVVVVVVV = Value. 8bit = 000000VV, 16bit = 0000VVVV, 32bit = VVVVVVVV
- YYYYYYYY = Signed Address/Offset Increment
- IIIIIIII = Signed Value increment. 8bit = 000000II, 16bit = 0000IIII, 32bit = IIIIIIII
- If pointer LLLLLLLL becomes KKKKKKKK
- KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
- ____________________________________
- Conditionals
- The last code affected by the condition must be D0000000 DEADCAFE
- 03 If Equal
- 03PS0000 LLLLLLLL
- VVVVVVVV 00000000
- P = Pointer state. 0 = no pointer, 1 = pointer
- S = Value Size. 0 = 8bit, 1 = 16bit, 2 = 32bit
- LLLLLLLL = Location/Address
- VVVVVVVV = Value. 8bit = 000000VV, 16bit = 0000VVVV, 32bit = VVVVVVVV
- KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
- If Pointer LLLLLLLL becomes KKKKKKKK
- ____________________________________
- 04 If Not Equal
- 04PS0000 LLLLLLLL
- VVVVVVVV 00000000
- P = Pointer state. 0 = no pointer, 1 = pointer
- S = Value Size. 0 = 8bit, 1 = 16bit, 2 = 32bit
- LLLLLLLL = Location/Address
- VVVVVVVV = Value. 8bit = 000000VV, 16bit = 0000VVVV, 32bit = VVVVVVVV
- KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
- If Pointer LLLLLLLL becomes KKKKKKKK
- ____________________________________
- 05 If Greater Than
- 05PS0000 LLLLLLLL
- VVVVVVVV 00000000
- P = Pointer state. 0 = no pointer, 1 = pointer
- S = Value Size. 0 = 8bit, 1 = 16bit, 2 = 32bit
- LLLLLLLL = Location/Address
- VVVVVVVV = Value. 8bit = 000000VV, 16bit = 0000VVVV, 32bit = VVVVVVVV
- KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
- If Pointer LLLLLLLL becomes KKKKKKKK
- ____________________________________
- 06 If Less Than
- 06PS0000 LLLLLLLL
- VVVVVVVV 00000000
- P = Pointer state. 0 = no pointer, 1 = pointer
- S = Value Size. 0 = 8bit, 1 = 16bit, 2 = 32bit
- LLLLLLLL = Location/Address
- VVVVVVVV = Value. 8bit = 000000VV, 16bit = 0000VVVV, 32bit = VVVVVVVV
- KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
- If Pointer LLLLLLLL becomes KKKKKKKK
- ____________________________________
- 07 If Greater Than or Equal
- 07PS0000 LLLLLLLL
- VVVVVVVV 00000000
- P = Pointer state. 0 = no pointer, 1 = pointer
- S = Value Size. 0 = 8bit, 1 = 16bit, 2 = 32bit
- LLLLLLLL = Location/Address
- VVVVVVVV = Value. 8bit = 000000VV, 16bit = 0000VVVV, 32bit = VVVVVVVV
- KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
- If Pointer LLLLLLLL becomes KKKKKKKK
- ____________________________________
- 08 If Less Than or Equal
- 08PS0000 LLLLLLLL
- VVVVVVVV 00000000
- P = Pointer state. 0 = no pointer, 1 = pointer
- S = Value Size. 0 = 8bit, 1 = 16bit, 2 = 32bit
- LLLLLLLL = Location/Address
- VVVVVVVV = Value. 8bit = 000000VV, 16bit = 0000VVVV, 32bit = VVVVVVVV
- KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
- If Pointer LLLLLLLL becomes KKKKKKKK
- ____________________________________
- 09 If AND
- 09PS0000 LLLLLLLL
- VVVVVVVV 00000000
- P = Pointer state. 0 = no pointer, 1 = pointer
- S = Value Size. 0 = 8bit, 1 = 16bit, 2 = 32bit
- LLLLLLLL = Location/Address
- VVVVVVVV = Value. 8bit = 000000VV, 16bit = 0000VVVV, 32bit = VVVVVVVV
- KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
- If Pointer LLLLLLLL becomes KKKKKKKK
- Extra note: You can use this as button activator. If VVVVVVVV is the value of one specific button the condition will still be true if you press more than the required button.
- ____________________________________
- 0A If OR
- 0APS0000 LLLLLLLL
- VVVVVVVV 00000000
- P = Pointer state. 0 = no pointer, 1 = pointer
- S = Value Size. 0 = 8bit, 1 = 16bit, 2 = 32bit
- LLLLLLLL = Location/Address
- VVVVVVVV = Value. 8bit = 000000VV, 16bit = 0000VVVV, 32bit = VVVVVVVV
- KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
- If Pointer LLLLLLLL becomes KKKKKKKK
- Extra note: VVVVVVVV = all values added together. The bitwise comparision returns true as long as at least one bit of the address LLLLLLLL matches VVVVVVVV.
- You can add multiple button values. If the value is 3000 then the condition will return true if the value of the address LLLLLLLL is 1000 or 2000.
- ____________________________________
- 0B If Value between
- 0BPS0000 LLLLLLLL
- VVVVVVVV ʌʌʌʌʌʌʌʌ
- P = Pointer state. 0 = no pointer, 1 = pointer
- S = Value Size. 0 = 8bit, 1 = 16bit, 2 = 32bit
- LLLLLLLL = Location/Address
- VVVVVVVV = Lower Value. 8bit = 000000VV, 16bit = 0000VVVV, 32bit = VVVVVVVV
- ʌʌʌʌʌʌʌʌ = Higher Value. 8bit = 000000ʌʌ, 16bit = 0000ʌʌʌʌ, 32bit = ʌʌʌʌʌʌʌʌ
- KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
- If Pointer LLLLLLLL becomes KKKKKKKK
- The following code(s) will only be executed as long as the value of LLLLLLLL is equal or between VVVVVVVV and ʌʌʌʌʌʌʌʌ.
- ____________________________________
- 10 Load Integer
- 10PS000R LLLLLLLL
- P = Pointer state. 0 = no pointer, 1 = pointer
- S = Value Size. 0 = 8bit, 1 = 16bit, 2 = 32bit
- LLLLLLLL = Location/Address
- R = Integer register. 8 Available (from 0 - 7)
- KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
- If Pointer LLLLLLLL becomes KKKKKKKK
- ____________________________________
- 11 Store Integer
- 11PS000R LLLLLLLL
- P = Pointer state. 0 = no pointer, 1 = pointer
- S = Value Size. 0 = 8bit, 1 = 16bit, 2 = 32bit
- LLLLLLLL = Location/Address
- R = Integer register. 8 Available (from 0 - 7)
- KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
- If Pointer LLLLLLLL becomes KKKKKKKK
- ____________________________________
- 12 Load Float (Single)
- 12P0000R LLLLLLLL
- P = Pointer state. 0 = no pointer, 1 = pointer
- LLLLLLLL = Location/Address
- R = Integer register. 8 Available (from 0 - 7)
- KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
- If Pointer LLLLLLLL becomes KKKKKKKK
- ____________________________________
- 13 Store Float (Single)
- 13P0000R LLLLLLLL
- P = Pointer state. 0 = no pointer, 1 = pointer
- LLLLLLLL = Location/Address
- R = Integer register. 8 Available (from 0 - 7)
- KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
- If Pointer LLLLLLLL becomes KKKKKKKK
- ____________________________________
- 14 Integer Operations
- Register to Register operations
- 140T0R0Я 00000000
- T = Operation Type. 0 = Addition (R + Я), 1 = Subtraction (R - Я), 2 = Multiplication (R ⨯ Я), 3 = Division (R ÷ Я). The result is placed into R.
- R = First operant. After operation results will be placed into here after.
- Я = Second Operant.
- Direct Value Operations
- 140T0R00 VVVVVVVV
- T = Operation Type. 4 = Addition (R + VVVVVVVV), 5 = Subtraction (R - VVVVVVVV)), 6 = Multiplication (R ⨯ VVVVVVVV)), 7 = Division (R ÷ VVVVVVVV)). The result is placed into R.
- R = First operant. After operation results will be placed into here after.
- VVVVVVVV = Direct Value/Second Operant. 8bit = 000000VV, 16bit = 0000VVVV, 32bit = VVVVVVVV
- ____________________________________
- 15 Floating Point Operations
- Register to Register Operations
- 150T0R0Я 00000000
- T = Operation Type. 0 = Addition (R + Я), 1 = Subtraction (R - Я), 2 = Multiplication (R ⨯ Я), 3 = Division (R ÷ Я), 8 = Float to int (R_Float ⇒ Я_Integer). The result is placed into R.
- R = First operant. After operation results will be placed into here after.
- Я = Second Operant.
- Direct Value Operations
- 150T0R00 VVVVVVVV
- T = Operation Type. 4 = Addition (R + VVVVVVVV), 5 = Subtraction (R - VVVVVVVV)), 6 = Multiplication (R ⨯ VVVVVVVV)), 7 = Division (R ÷ VVVVVVVV)). The result is placed into R.
- R = First operant. After operation results will be placed into here after.
- VVVVVVVV = Direct Value/Second Operant
- ____________________________________
- 20 Fill Memory
- 20P00000 VVVVVVVV
- LLLLLLLL MMMMMMMM
- P = Pointer state. 0 = no pointer, 1 = pointer
- LLLLLLLL = Location/Address
- MMMMMMMM = How many 32bit values to write (Last address - LLLLLLLL)
- KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
- If pointer then LLLLLLLL becomes KKKKKKKK.
- ____________________________________
- 30 Load Pointer
- 30P00000 LLLLLLLL
- RANGE_ST RANGE_EN
- P = Pointer state. 0 = no pointer, 1 = pointer
- LLLLLLLL = Location/Address
- RANGE_ST = Smalles valid range
- RANGE_EN = Biggest valit range
- To load a pointer into a pointer use:
- 30000000 LLLLLLLL
- RANGE_ST RANGE_EN
- 31000000 QQQQQQQQ
- 30100000 00000000
- RANGE_ST RANGE_EN
- 31000000 QQQQQQQQ
- You can create pointer code of infinite depth
- 31 Add Offset to pointer
- 31000000 QQQQQQQQ
- QQQQQQQQ = Signed increment.
- It will affect all following pointer codes unless another pointer is loaded.
- ____________________________________
- D0 Termination
- D0000000 DEADCAFE
- This code is needed in the end of every conditional code and pointer code.
- ____________________________________
- D1 No Operation
- D1000000 DEADC0DE
- This code does not do anything. It is used to overwrite cheats on the fly by the codehandler. You probably won't ever need this, but who knows.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement