Advertisement
dragonbane

TP Coordinates Display

Nov 18th, 2017
261
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.33 KB | None | 0 0
  1. Gecko Code (NTSC):
  2.  
  3. Base:
  4.  
  5. 064FCE3C 0000000C
  6. 00000003 0000000F
  7. 00000002 00000000
  8. 004FCE2F 00000000
  9. 004FCE5F 00000032
  10. 064FCF00 00000016
  11. 5820506F 733A2025
  12. 66207C20 5A20506F
  13. 733A2025 66000000
  14. 064FCF18 00000016
  15. 58204D61 783A2025
  16. 66207C20 5A204D61
  17. 783A2025 66000000
  18. 004FCEA6 000000FF
  19.  
  20. Logic:
  21.  
  22. 00001810-00001814 target registers
  23.  
  24. 2A3DD31A 00000060
  25. 0400180C 00000000
  26. E2000001 00000000
  27. 2000180C 00000000
  28. 283DD31A 00000060
  29. 0400180C 00000001
  30. 204FCE64 00000000
  31. 004FCE64 00000001
  32. E2100000 00000000
  33. 004FCE64 00000000
  34. 00001810 00070000 --clear display floats
  35. 00001818 00070000 --clear temp floats
  36. 04001820 00000000 --clear counter
  37. E2000003 00000000
  38.  
  39. 0400644C 60000000
  40. 223DCE54 00000000 --if link ptr set
  41. 204FCE64 00000001 --if console visible
  42. 0400644C 4BFFCA4D --set hook
  43. 48000000 803DCE54
  44. 20001818 00000000 -temp floats not yet set
  45. 92210004 00000000
  46. 92210005 00000008
  47. E2000001 00000000
  48.  
  49. 24001820 0000001D
  50. 84210004 00001810
  51. 84210005 00001814
  52. 04001820 00000000
  53. 92210004 00000000
  54. 92210005 00000008
  55. E2000003 00000000
  56.  
  57. -check every 30 frames, reset counter and reset temp floats to curr pos, copy temp floats to display floats
  58.  
  59. Assembly:
  60.  
  61. 06002E98 000000EC
  62. 9421FFF0 7C0802A6
  63. 90010014 3CA0803D
  64. 38A5672A 38A5672A
  65. 80A50000 C0050000
  66. FC200090 FC800840
  67. C0450008 3C80804F
  68. 38846780 38846780
  69. 3C60804F 38636735
  70. 38636734 48363601
  71. 3CA08000 38A50C08
  72. 38A50C08 C0050000
  73. FC200090 FC800840
  74. C0450004 3C80804F
  75. 3884678C 3884678C
  76. 3C60804F 38636753
  77. 38636754 483635C9
  78. 3C608000 38630C10
  79. 38630C10 80830000
  80. 38840001 90830000
  81. 3C608000 38630C0C
  82. 38630C0C C0030000
  83. C0230004 3C80803D
  84. 3884672A 3884672A
  85. 80840000 C0440000
  86. C0640008 FC020040
  87. 40810008 D0430000
  88. FC030840 40810008
  89. D0630004 80010014
  90. 7C0803A6 38210010
  91. 4E800020 00000000
  92.  
  93.  
  94.  
  95. Memory Map Doc:
  96.  
  97. geckocodes.org/index.php?arsenal=1#E2
  98.  
  99. 0x80001800 - 0x80002fff unused/reserved (*)
  100.  
  101.  
  102.  
  103.  
  104. Code (Gekko Assembler):
  105.  
  106. https://github.com/CryZe/GekkoAssembler/blob/master/README.md
  107. https://github.com/CryZe/GekkoAssembler/blob/master/Documentation/README.md
  108.  
  109. 0x804FCE3C:
  110.  
  111. .u32 3 ; Console X Coordinate
  112.  
  113. .u32 15 ; Console Y Coordinate
  114.  
  115. .u32 2 ; Console Max Line Count
  116.  
  117.  
  118.  
  119. 0x804FCE2F:
  120.  
  121. .u8 0 ; Console Scroll Amount
  122.  
  123.  
  124.  
  125. 0x804FCE5F:
  126.  
  127. .u8 50 ; Console Opacity
  128.  
  129.  
  130. 0x804FCF00:
  131.  
  132. .str "X Pos: %f | " ; Line 1 X Text ; gets written to 0x804FCE69
  133. .str "Z Pos: %f" ; Line 1 Z Text
  134. .u8 0x0 ; Null Terminator
  135.  
  136. 0x804FCF18:
  137.  
  138. .str "X Max: %f | " ; Line 2 X Max ; gets written to 0x804FCEA7
  139. .str "Z Max: %f" ; Line 2 Z Max
  140. .u8 0x0 ; Null Terminator
  141.  
  142. 0x804FCEA6:
  143.  
  144. .u8 0xFF ; Line Break 1
  145.  
  146.  
  147. 0x803DD31A:
  148. !u16unequal 0x60 ; check for R+L NOT pressed
  149.  
  150.  
  151. 0x8000180C:
  152. .u32 0x00 ; status flag to 0
  153.  
  154. !end
  155.  
  156.  
  157. 0x8000180C:
  158. !u32equal 0x0 ; check for status flag = 0
  159.  
  160. 0x803DD31A:
  161. !u16equal 0x0060 ; check for R+L pressed
  162.  
  163.  
  164. 0x8000180C:
  165. .u32 0x01 ; status flag to 1
  166.  
  167. 0x804FCE64:
  168. !u8equal 0x0 ; check for console not visible
  169.  
  170.  
  171. 0x8000180C:
  172. .u32 0x02 ; status flag to 2
  173.  
  174. 0x804FCE64:
  175.  
  176. .u8 1 ; Console Visible
  177.  
  178. !end
  179.  
  180. 0x8000180C:
  181. !u32unequal 0x02 ; check for status flag not 2
  182.  
  183. 0x804FCE64:
  184.  
  185. .u8 0 ; Console not Visible
  186.  
  187. !end
  188.  
  189. !end
  190.  
  191. !end
  192.  
  193.  
  194. 0x803DCE54:
  195. !u32unequal 0x0
  196.  
  197.  
  198. 0x8000644C:
  199.  
  200. bl 0x80002E98 ; Inject the function call
  201.  
  202.  
  203. !end
  204.  
  205. 0x803DCE54:
  206. !u32equal 0x0
  207.  
  208. 0x8000644C:
  209.  
  210. nop ; remove the function call since link ptr is not set
  211.  
  212. !end
  213.  
  214.  
  215.  
  216. 0x80002E98:
  217.  
  218. stwu sp, -0x10 (sp)
  219.  
  220. mflr r0
  221.  
  222. stw r0, 0x14 (sp)
  223.  
  224.  
  225. ; sprintf x/z pos (0x804FCE69, "X Pos: %f | Z Pos: %f" /*804FCF00*/, 0x0 (803DCE54), 0x8 (803DCE54))
  226.  
  227. lis r5, 0x803D
  228.  
  229. addi r5, r5, 0x672A
  230.  
  231. addi r5, r5, 0x672A
  232.  
  233. lwz r5, 0x0 (r5)
  234.  
  235. lfs fr0, 0x0 (r5)
  236. fmr fr1, fr0
  237. fcmpo cor1, fr0, fr1
  238.  
  239. lfs fr2, 0x8 (r5)
  240.  
  241. lis r4, 0x804F
  242.  
  243. addi r4, r4, 0x6780
  244.  
  245. addi r4, r4, 0x6780
  246.  
  247. lis r3, 0x804F
  248.  
  249. addi r3, r3, 0x6735
  250. addi r3, r3, 0x6734
  251. bl 0x803664dc
  252.  
  253. ; sprintf x/z change (0x804FCEA7, "X Change: %f | Z Change: %f" /*804FCF18*/, 80001810, 80001814)
  254.  
  255. lis r5, 0x8000
  256.  
  257. addi r5, r5, 0xC08
  258.  
  259. addi r5, r5, 0xC08
  260.  
  261. lfs fr0, 0x0 (r5)
  262. fmr fr1, fr0
  263. fcmpo cor1, fr0, fr1
  264.  
  265. lfs fr2, 0x4 (r5)
  266.  
  267. lis r4, 0x804F
  268.  
  269. addi r4, r4, 0x678C
  270.  
  271. addi r4, r4, 0x678C
  272.  
  273. lis r3, 0x804F
  274.  
  275. addi r3, r3, 0x6753
  276. addi r3, r3, 0x6754
  277. bl 0x803664dc
  278.  
  279.  
  280. lis r3, 0x8000
  281. addi, r3, r3, 0xC10
  282. addi, r3, r3, 0xC10
  283. lwz, r4, 0x0 (r3)
  284. addi, r4, r4, 0x01
  285. stw, r4, 0x0 (r3)
  286.  
  287. lis r3, 0x8000
  288. addi, r3, r3, 0xC0C
  289. addi, r3, r3, 0xC0C
  290. lfs fr0, 0x0(r3)
  291. lfs fr1, 0x4(r3)
  292.  
  293. lis r4, 0x803D
  294. addi r4, r4, 0x672A
  295. addi r4, r4, 0x672A
  296.  
  297. lwz r4, 0x0 (r4)
  298. lfs fr2, 0x0 (r4)
  299. lfs fr3, 0x8 (r4)
  300.  
  301. fcmpo crb0, fr2, fr0
  302.  
  303. ble 0x08 (0x40810008)
  304.  
  305. stfs, fr2, 0x0 (r3)
  306.  
  307. fcmpo crb0, fr3, fr1
  308.  
  309. ble 0x08 (0x40810008)
  310.  
  311. stfs, fr3, 0x4 (r3)
  312.  
  313.  
  314.  
  315. lwz r0, 0x14 (sp)
  316.  
  317. mtlr r0
  318.  
  319. addi sp, sp, 16
  320. blr
  321.  
  322.  
  323. BACKUP:
  324.  
  325. 06002E98 000000EC
  326. 9421FFF0 7C0802A6
  327. 90010014 3CA0803D
  328. 38A5672A 38A5672A
  329. 80A50000 C0050000
  330. FC200090 FC800840
  331. C0450008 3C80804F
  332. 38846780 38846780
  333. 3C60804F 38636735
  334. 38636734 48363601
  335. 3CA08000 38A50C08
  336. 38A50C08 C0050000
  337. FC200090 FC800840
  338. C0450004 3C80804F
  339. 3884678C 3884678C
  340. 3C60804F 38636753
  341. 38636754 483635C9
  342. 3C600800 38630C10
  343. 38630C10 80830000
  344. 38840001 90830000
  345. 3C608000 38630C0C
  346. 38630C0C C0030000
  347. C0230004 3C80803D
  348. 3884672A 3884672A
  349. 80840000 C0440000
  350. C0640008 FC801040
  351. 40810008 D0430000
  352. FC811840 40810008
  353. D0630004 80010014
  354. 7C0803A6 38210010
  355. 4E800020 00000000
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement