Bond697

NatureHack.s

Apr 1st, 2013
351
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.68 KB | None | 0 0
  1. isDSi - 207ACB8
  2.  
  3. mov r0, #0
  4. bx lr
  5.  
  6. 20309BC 40 88 LDRH R0, [R0,#2] ldrb r0, [r0, #2] - 0x7880
  7. 2030A9E 70 88 LDRH R0, [R6,#2] ldrb r0, [r6, #2] - 0x78B0
  8. 2030BAC 40 88 LDRH R0, [R0,#2]
  9. 2030CC0 70 88 LDRH R0, [R6,#2]
  10.  
  11.  
  12. 2030A50
  13. 2030B52
  14. 2030C6A
  15. 2030D80
  16.  
  17. void __fastcall setNatureResetStats(void *pPkm, u8 nature)
  18. void __fastcall setTrainerPkmStats(u16 trainer_idx, void *pPkm, u16 form, u8 gender_abil)
  19.  
  20. 24b available in setTrainerPkmStats
  21.  
  22. mov r0, r2 @pTrPkm
  23. mov r1, r4 @pPkm
  24. bl isDSi+4
  25.  
  26. mov r0, r2 205A99C
  27. push {r4-r7, lr}
  28. mov r7, r0
  29. mov r6, r4
  30. mov r5, r2
  31. ldrb r4, [r7, #3]
  32. cmp r4, #0
  33. beq rnd
  34. cmp r4, #25
  35. bgt rnd
  36.  
  37. set:
  38. mov r0, r6
  39. sub r1, r4, #1
  40. bl setNatureResetStats(0x201D60C)
  41. 0205A9B4 FE2BF7C2
  42. rnd:
  43. mov r0, #25
  44. bl randMain64(0x2005748) 0205A9BA FEC6F7AA
  45. mov r1, r0
  46. mov r0, r6
  47. bl setNatureResetStats(0x201D60C)
  48. 0205A9C2 FE24F7C2
  49. ret:
  50. mov r2, r5
  51. ldrb r3, [r2, #1]
  52. ldrh r2, [r2, #6]
  53. mov r1, r6
  54. pop {r4-r7, pc}
  55.  
  56.  
  57. setup:
  58.  
  59. RAM_ARM9:02030A4C EB F7 20 FD BL createPKM
  60. RAM_ARM9:02030A50 0D 9A LDR R2, [SP,#0x98+current_tr_poke_ptr] this load a pointer to the trpoke poke's file to r2
  61. RAM_ARM9:02030A52 0D 9B LDR R3, [SP,#0x98+current_tr_poke_ptr] same into r3
  62. RAM_ARM9:02030A54 D2 88 LDRH R2, [R2,#6] ; form byte 7 is the form to use in the trpoke file
  63. RAM_ARM9:02030A56 5B 78 LDRB R3, [R3,#1] ; gender_abil byte 2 is the gender/abil byte
  64. RAM_ARM9:02030A58 04 98 LDR R0, [SP,#0x98+trainer_idx] ; trainer_idx this is unused but would be a massive pain to do anything with
  65. RAM_ARM9:02030A5A 21 1C MOVS R1, R4 ; pPkm
  66. RAM_ARM9:02030A5C 00 F0 E6 F9 BL setTrainerPkmStats
  67.  
  68. my function will be setTrPkmNature(void* pTrPkm, *empty*, void* pTrPkm)
  69.  
  70.  
  71. this will look like:
  72.  
  73. RAM_ARM9:02030A4C EB F7 20 FD BL createPKM
  74. RAM_ARM9:02030A50 0D 9A LDR R2, [SP,#0x98+current_tr_poke_ptr]
  75. RAM_ARM9:02030A52 0D 9B mov r0, r2
  76. RAM_ARM9:02030A54 C0 46 nop
  77. RAM_ARM9:02030A56 D2 88 bl setTrPkmNature
  78. RAM_ARM9:02030A5A 21 1C MOVS R1, R4 ; pPkm
  79. RAM_ARM9:02030A5C 00 F0 E6 F9 BL setTrainerPkmStats
  80.  
  81.  
  82.  
  83. move:
  84.  
  85. RAM_ARM9:02030B4E 1A 98 LDR R0, [SP,#0x98+p_trpoke_data]
  86. RAM_ARM9:02030B50 43 18 ADDS R0, R0, R1
  87. RAM_ARM9:02030B52 DA 88 mov r2, r0
  88. RAM_ARM9:02030B54 5B 78 bl setTrPkmNature
  89. RAM_ARM9:02030B58 21 1C MOVS R1, R4 ; pPkm
  90. RAM_ARM9:02030B5A 00 F0 67 F9 BL setTrainerPkmStats
  91.  
  92.  
  93.  
  94. item:
  95.  
  96. RAM_ARM9:02030C6A 0C 9A LDR R2, [SP,#0x98+var_68]
  97. RAM_ARM9:02030C6C 0C 9B mov r0, r2
  98. RAM_ARM9:02030C6E D2 88 nop
  99. RAM_ARM9:02030C70 5B 78 bl setTrPkmNature
  100. RAM_ARM9:02030C74 21 1C MOVS R1, R4 ; pPkm
  101. RAM_ARM9:02030C76 00 F0 D9 F8 BL setTrainerPkmStats
  102.  
  103.  
  104.  
  105. move/item:
  106.  
  107. RAM_ARM9:02030D80 FA 88 LDRH R2, [R7,#6] ; form
  108. RAM_ARM9:02030D82 7B 78 LDRB R3, [R7,#1] ; gender_abil
  109. RAM_ARM9:02030D84 04 98 LDR R0, [SP,#0x98+trainer_idx] ; trainer_idx
  110. RAM_ARM9:02030D86 21 1C MOVS R1, R4 ; pPkm
  111. RAM_ARM9:02030D88 00 F0 50 F8 BL setTrainerPkmStats
  112.  
  113.  
  114.  
  115. black2:
  116.  
  117. hook: 205A970
  118. setNatureResetStats: 201D5E0
  119. mainRand64: 2005748
  120.  
  121. RAM:02030A20 EB F7 20 FD BL createPKM
  122. RAM:02030A24 0D 9A LDR R2, [SP,#0x98+var_64]
  123. RAM:02030A26 0D 9B LDR R3, [SP,#0x98+var_64]
  124. RAM:02030A28 D2 88 LDRH R2, [R2,#6]
  125. RAM:02030A2A 5B 78 LDRB R3, [R3,#1]
  126. RAM:02030A2C 04 98 LDR R0, [SP,#0x98+var_88]
  127. RAM:02030A2E 21 1C MOVS R1, R4
  128. RAM:02030A30 00 F0 E6 F9 BL setTrainerPkmStats
  129.  
  130.  
  131. RAM:02030B22 1A 98 LDR R0, [SP,#0x98+var_30]
  132. RAM:02030B24 43 18 ADDS R3, R0, R1
  133. RAM:02030B26 DA 88 LDRH R2, [R3,#6]
  134. RAM:02030B28 5B 78 LDRB R3, [R3,#1]
  135. RAM:02030B2A 04 98 LDR R0, [SP,#0x98+var_88]
  136. RAM:02030B2C 21 1C MOVS R1, R4
  137. RAM:02030B2E 00 F0 67 F9 BL setTrainerPkmStats
  138.  
  139.  
  140. RAM:02030C3A EC F7 6F F8 BL setPkmStat
  141. RAM:02030C3E 0C 9A LDR R2, [SP,#0x98+var_68]
  142. RAM:02030C40 0C 9B LDR R3, [SP,#0x98+var_68]
  143. RAM:02030C42 D2 88 LDRH R2, [R2,#6]
  144. RAM:02030C44 5B 78 LDRB R3, [R3,#1]
  145. RAM:02030C46 04 98 LDR R0, [SP,#0x98+var_88]
  146. RAM:02030C48 21 1C MOVS R1, R4
  147. RAM:02030C4A 00 F0 D9 F8 BL setTrainerPkmStats
  148.  
  149.  
  150. RAM:02030D52 F4 DB BLT loc_2030D3E
  151. RAM:02030D54 FA 88 LDRH R2, [R7,#6]
  152. RAM:02030D56 7B 78 LDRB R3, [R7,#1]
  153. RAM:02030D58 04 98 LDR R0, [SP,#0x98+var_88]
  154. RAM:02030D5A 21 1C MOVS R1, R4
  155. RAM:02030D5C 00 F0 50 F8 BL setTrainerPkmStats
Add Comment
Please, Sign In to add comment