Advertisement
CosmoCortney

Cafe Code Types

Aug 6th, 2016
1,724
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.48 KB | None | 0 0
  1. The Cafe Code types are the Wii U-equivalent to the Wii's Gecko Code types or the GameCube's Action Replay code types.
  2. 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/
  3.  
  4.  
  5.  
  6. 00 RAM Write
  7. 00PS0000 LLLLLLLL
  8. VVVVVVVV 00000000
  9.  
  10. P = Pointer state. 0 = no pointer, 1 = pointer
  11. S = Value Size. 0 = 8bit, 1 = 16bit, 2 = 32bit
  12. KKKK = Unsigned increment (pointers only). Does NOT affect the next line!
  13. LLLLLLLL = Location/Address
  14. VVVVVVVV = Value. 8bit = 000000VV, 16bit = 0000VVVV, 32bit = VVVVVVVV
  15.  
  16. Direct Writes:
  17. 8bit
  18. 00000000 LLLLLLLL
  19. 000000VV 00000000
  20.  
  21. 16bit
  22. 00010000 LLLLLLLL
  23. 0000VVVV 00000000
  24.  
  25. 32bit
  26. 00020000 LLLLLLLL
  27. VVVVVVVV 00000000
  28.  
  29.  
  30. Pointer:
  31. 001SKKKK VVVVVVVV
  32.  
  33. S = Value Size. 0 = 8bit, 1 = 16bit, 2 = 32bit
  34. KKKK = Unsigned increment (pointers only). Does NOT affect the next line!
  35. VVVVVVVV = Value. 8bit = 000000VV, 16bit = 0000VVVV, 32bit = VVVVVVVV
  36.  
  37. 8bit
  38. 0010KKKK 000000VV
  39.  
  40. 16bit
  41. 0011KKKK 0000VVVV
  42.  
  43. 32bit
  44. 0012KKKK VVVVVVVV
  45.  
  46. Example:
  47. 30000000 12345678 // load pointer at 12345678
  48. 12000000 13000000 // range check. you need to know a "valid" range where the pointer is allowed to refer to
  49. 31000000 00035E0C // add the offset of 35E0C to the pointer
  50. 00120000 AAAAAAAA // write AAAAAAAA to the pointer with the previously added offset + an address-increment of 0
  51. 00120004 BBBBBBBB // write BBBBBBBB to the pointer with the previously added offset + an address-increment of 4
  52. D0000000 DEADCAFE // termination
  53. ____________________________________
  54.  
  55.  
  56.  
  57. 01 String-Write
  58.  
  59. 01P0NNNN LLLLLLLL
  60. VVVVVVVV VVVVVVVV
  61. VVVV0000 000000FF
  62.  
  63.  
  64. P = Pointer state. 0 = no pointer, 1 = pointer
  65. LLLLLLLL = Location/Address
  66. VVVVVVVV = Value. 8bit = 000000VV, 16bit = 0000VVVV, 32bit = VVVVVVVV
  67. The last line must be filled with zeros where the last byte must be FF.
  68. If VV fills the last line add 00000000 000000FF beneath it.
  69.  
  70. If pointers are involved LLLLLLLL becomes KKKKKKKK
  71. KKKKKKK = signed increment (pointers only). Does NOT affect the next code!
  72. ____________________________________
  73.  
  74.  
  75.  
  76. 02 Skip-Write and Incremental Write
  77.  
  78. 02PSNNNN LLLLLLLL
  79. 000000VV YYYYYYYY
  80. 000000II 00000000
  81.  
  82.  
  83. P = Pointer state. 0 = no pointer, 1 = pointer
  84. S = Value Size. 0 = 8bit, 1 = 16bit, 2 = 32bit
  85. LLLLLLLL = Location/Address
  86. VVVVVVVV = Value. 8bit = 000000VV, 16bit = 0000VVVV, 32bit = VVVVVVVV
  87. YYYYYYYY = Signed Address/Offset Increment
  88. IIIIIIII = Signed Value increment. 8bit = 000000II, 16bit = 0000IIII, 32bit = IIIIIIII
  89. If pointer LLLLLLLL becomes KKKKKKKK
  90. KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
  91. ____________________________________
  92.  
  93.  
  94.  
  95.  
  96.  
  97. Conditionals
  98. The last code affected by the condition must be D0000000 DEADCAFE
  99.  
  100.  
  101. 03 If Equal
  102.  
  103. 03PS0000 LLLLLLLL
  104. VVVVVVVV 00000000
  105.  
  106. P = Pointer state. 0 = no pointer, 1 = pointer
  107. S = Value Size. 0 = 8bit, 1 = 16bit, 2 = 32bit
  108. LLLLLLLL = Location/Address
  109. VVVVVVVV = Value. 8bit = 000000VV, 16bit = 0000VVVV, 32bit = VVVVVVVV
  110. KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
  111. If Pointer LLLLLLLL becomes KKKKKKKK
  112. ____________________________________
  113.  
  114.  
  115. 04 If Not Equal
  116. 04PS0000 LLLLLLLL
  117. VVVVVVVV 00000000
  118.  
  119. P = Pointer state. 0 = no pointer, 1 = pointer
  120. S = Value Size. 0 = 8bit, 1 = 16bit, 2 = 32bit
  121. LLLLLLLL = Location/Address
  122. VVVVVVVV = Value. 8bit = 000000VV, 16bit = 0000VVVV, 32bit = VVVVVVVV
  123. KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
  124. If Pointer LLLLLLLL becomes KKKKKKKK
  125. ____________________________________
  126.  
  127.  
  128.  
  129. 05 If Greater Than
  130. 05PS0000 LLLLLLLL
  131. VVVVVVVV 00000000
  132.  
  133. P = Pointer state. 0 = no pointer, 1 = pointer
  134. S = Value Size. 0 = 8bit, 1 = 16bit, 2 = 32bit
  135. LLLLLLLL = Location/Address
  136. VVVVVVVV = Value. 8bit = 000000VV, 16bit = 0000VVVV, 32bit = VVVVVVVV
  137. KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
  138. If Pointer LLLLLLLL becomes KKKKKKKK
  139. ____________________________________
  140.  
  141.  
  142. 06 If Less Than
  143. 06PS0000 LLLLLLLL
  144. VVVVVVVV 00000000
  145.  
  146. P = Pointer state. 0 = no pointer, 1 = pointer
  147. S = Value Size. 0 = 8bit, 1 = 16bit, 2 = 32bit
  148. LLLLLLLL = Location/Address
  149. VVVVVVVV = Value. 8bit = 000000VV, 16bit = 0000VVVV, 32bit = VVVVVVVV
  150. KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
  151. If Pointer LLLLLLLL becomes KKKKKKKK
  152. ____________________________________
  153.  
  154.  
  155. 07 If Greater Than or Equal
  156. 07PS0000 LLLLLLLL
  157. VVVVVVVV 00000000
  158.  
  159. P = Pointer state. 0 = no pointer, 1 = pointer
  160. S = Value Size. 0 = 8bit, 1 = 16bit, 2 = 32bit
  161. LLLLLLLL = Location/Address
  162. VVVVVVVV = Value. 8bit = 000000VV, 16bit = 0000VVVV, 32bit = VVVVVVVV
  163. KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
  164. If Pointer LLLLLLLL becomes KKKKKKKK
  165. ____________________________________
  166.  
  167.  
  168.  
  169.  
  170. 08 If Less Than or Equal
  171. 08PS0000 LLLLLLLL
  172. VVVVVVVV 00000000
  173.  
  174. P = Pointer state. 0 = no pointer, 1 = pointer
  175. S = Value Size. 0 = 8bit, 1 = 16bit, 2 = 32bit
  176. LLLLLLLL = Location/Address
  177. VVVVVVVV = Value. 8bit = 000000VV, 16bit = 0000VVVV, 32bit = VVVVVVVV
  178. KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
  179. If Pointer LLLLLLLL becomes KKKKKKKK
  180. ____________________________________
  181.  
  182.  
  183.  
  184. 09 If AND
  185. 09PS0000 LLLLLLLL
  186. VVVVVVVV 00000000
  187.  
  188. P = Pointer state. 0 = no pointer, 1 = pointer
  189. S = Value Size. 0 = 8bit, 1 = 16bit, 2 = 32bit
  190. LLLLLLLL = Location/Address
  191. VVVVVVVV = Value. 8bit = 000000VV, 16bit = 0000VVVV, 32bit = VVVVVVVV
  192. KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
  193. If Pointer LLLLLLLL becomes KKKKKKKK
  194.  
  195. 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.
  196. ____________________________________
  197.  
  198.  
  199. 0A If OR
  200. 0APS0000 LLLLLLLL
  201. VVVVVVVV 00000000
  202.  
  203. P = Pointer state. 0 = no pointer, 1 = pointer
  204. S = Value Size. 0 = 8bit, 1 = 16bit, 2 = 32bit
  205. LLLLLLLL = Location/Address
  206. VVVVVVVV = Value. 8bit = 000000VV, 16bit = 0000VVVV, 32bit = VVVVVVVV
  207. KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
  208. If Pointer LLLLLLLL becomes KKKKKKKK
  209.  
  210. 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.
  211. 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.
  212. ____________________________________
  213.  
  214.  
  215. 0B If Value between
  216. 0BPS0000 LLLLLLLL
  217. VVVVVVVV ʌʌʌʌʌʌʌʌ
  218.  
  219. P = Pointer state. 0 = no pointer, 1 = pointer
  220. S = Value Size. 0 = 8bit, 1 = 16bit, 2 = 32bit
  221. LLLLLLLL = Location/Address
  222. VVVVVVVV = Lower Value. 8bit = 000000VV, 16bit = 0000VVVV, 32bit = VVVVVVVV
  223. ʌʌʌʌʌʌʌʌ = Higher Value. 8bit = 000000ʌʌ, 16bit = 0000ʌʌʌʌ, 32bit = ʌʌʌʌʌʌʌʌ
  224. KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
  225. If Pointer LLLLLLLL becomes KKKKKKKK
  226.  
  227. The following code(s) will only be executed as long as the value of LLLLLLLL is equal or between VVVVVVVV and ʌʌʌʌʌʌʌʌ.
  228. ____________________________________
  229.  
  230.  
  231. 10 Load Integer
  232. 10PS000R LLLLLLLL
  233.  
  234. P = Pointer state. 0 = no pointer, 1 = pointer
  235. S = Value Size. 0 = 8bit, 1 = 16bit, 2 = 32bit
  236. LLLLLLLL = Location/Address
  237. R = Integer register. 8 Available (from 0 - 7)
  238. KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
  239. If Pointer LLLLLLLL becomes KKKKKKKK
  240. ____________________________________
  241.  
  242.  
  243.  
  244.  
  245. 11 Store Integer
  246.  
  247. 11PS000R LLLLLLLL
  248.  
  249. P = Pointer state. 0 = no pointer, 1 = pointer
  250. S = Value Size. 0 = 8bit, 1 = 16bit, 2 = 32bit
  251. LLLLLLLL = Location/Address
  252. R = Integer register. 8 Available (from 0 - 7)
  253. KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
  254. If Pointer LLLLLLLL becomes KKKKKKKK
  255. ____________________________________
  256.  
  257.  
  258.  
  259.  
  260. 12 Load Float (Single)
  261. 12P0000R LLLLLLLL
  262.  
  263. P = Pointer state. 0 = no pointer, 1 = pointer
  264. LLLLLLLL = Location/Address
  265. R = Integer register. 8 Available (from 0 - 7)
  266. KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
  267. If Pointer LLLLLLLL becomes KKKKKKKK
  268. ____________________________________
  269.  
  270.  
  271. 13 Store Float (Single)
  272. 13P0000R LLLLLLLL
  273.  
  274. P = Pointer state. 0 = no pointer, 1 = pointer
  275. LLLLLLLL = Location/Address
  276. R = Integer register. 8 Available (from 0 - 7)
  277. KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
  278. If Pointer LLLLLLLL becomes KKKKKKKK
  279. ____________________________________
  280.  
  281.  
  282.  
  283. 14 Integer Operations
  284. Register to Register operations
  285. 140T0R0Я 00000000
  286.  
  287. T = Operation Type. 0 = Addition (R + Я), 1 = Subtraction (R - Я), 2 = Multiplication (R ⨯ Я), 3 = Division (R ÷ Я). The result is placed into R.
  288. R = First operant. After operation results will be placed into here after.
  289. Я = Second Operant.
  290.  
  291. Direct Value Operations
  292. 140T0R00 VVVVVVVV
  293.  
  294. 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.
  295. R = First operant. After operation results will be placed into here after.
  296. VVVVVVVV = Direct Value/Second Operant. 8bit = 000000VV, 16bit = 0000VVVV, 32bit = VVVVVVVV
  297. ____________________________________
  298.  
  299.  
  300.  
  301. 15 Floating Point Operations
  302. Register to Register Operations
  303. 150T0R0Я 00000000
  304.  
  305. 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.
  306. R = First operant. After operation results will be placed into here after.
  307. Я = Second Operant.
  308.  
  309.  
  310. Direct Value Operations
  311. 150T0R00 VVVVVVVV
  312. 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.
  313. R = First operant. After operation results will be placed into here after.
  314. VVVVVVVV = Direct Value/Second Operant
  315. ____________________________________
  316.  
  317.  
  318.  
  319. 20 Fill Memory
  320. 20P00000 VVVVVVVV
  321. LLLLLLLL MMMMMMMM
  322.  
  323. P = Pointer state. 0 = no pointer, 1 = pointer
  324. LLLLLLLL = Location/Address
  325. MMMMMMMM = How many 32bit values to write (Last address - LLLLLLLL)
  326. KKKKKKKK = Signed increment (pointers only). Does NOT affect the next line!
  327. If pointer then LLLLLLLL becomes KKKKKKKK.
  328. ____________________________________
  329.  
  330.  
  331.  
  332.  
  333.  
  334. 30 Load Pointer
  335. 30P00000 LLLLLLLL
  336. RANGE_ST RANGE_EN
  337.  
  338. P = Pointer state. 0 = no pointer, 1 = pointer
  339. LLLLLLLL = Location/Address
  340. RANGE_ST = Smalles valid range
  341. RANGE_EN = Biggest valit range
  342.  
  343. To load a pointer into a pointer use:
  344. 30000000 LLLLLLLL
  345. RANGE_ST RANGE_EN
  346. 31000000 QQQQQQQQ
  347. 30100000 00000000
  348. RANGE_ST RANGE_EN
  349. 31000000 QQQQQQQQ
  350.  
  351. You can create pointer code of infinite depth
  352.  
  353.  
  354. 31 Add Offset to pointer
  355. 31000000 QQQQQQQQ
  356. QQQQQQQQ = Signed increment.
  357. It will affect all following pointer codes unless another pointer is loaded.
  358. ____________________________________
  359.  
  360.  
  361.  
  362. D0 Termination
  363. D0000000 DEADCAFE
  364.  
  365. This code is needed in the end of every conditional code and pointer code.
  366. ____________________________________
  367.  
  368.  
  369. D1 No Operation
  370. D1000000 DEADC0DE
  371.  
  372. 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