Bond697 icon

NatureHack.s

Bond697 | PRO | 04/01/13 11:25:24 AM UTC | 0 ⭐ | 774 👁️ | Never ⏰ | []
text |

5.68 KB

|

None

|

0 👍

/

0 👎

isDSi - 207ACB8
 mov r0, #0
bx lr
 20309BC 40 88                       LDRH    R0, [R0,#2]	ldrb r0, [r0, #2] - 0x7880
2030A9E 70 88                       LDRH    R0, [R6,#2] ldrb r0, [r6, #2] - 0x78B0
2030BAC 40 88                       LDRH    R0, [R0,#2]
2030CC0 70 88                       LDRH    R0, [R6,#2]
  2030A50
2030B52
2030C6A
2030D80
 void __fastcall setNatureResetStats(void *pPkm, u8 nature)
void __fastcall setTrainerPkmStats(u16 trainer_idx, void *pPkm, u16 form, u8 gender_abil)
 24b available in setTrainerPkmStats
 mov r0, r2	@pTrPkm
mov r1, r4	@pPkm
bl isDSi+4
 mov		r0, r2		205A99C
push 	{r4-r7, lr}	
mov 	r7, r0
mov		r6, r4
mov		r5, r2
ldrb 	r4, [r7, #3]
cmp		r4, #0
beq		rnd
cmp		r4, #25
bgt		rnd
 set:
mov		r0, r6
sub		r1, r4, #1
bl		setNatureResetStats(0x201D60C)
0205A9B4 FE2BF7C2
rnd:
mov 	r0, #25
bl		randMain64(0x2005748)	0205A9BA FEC6F7AA
mov		r1, r0
mov 	r0, r6
bl		setNatureResetStats(0x201D60C)
0205A9C2 FE24F7C2
ret:
mov		r2, r5
ldrb	r3, [r2, #1]
ldrh	r2, [r2, #6]
mov 	r1, r6
pop		{r4-r7, pc}
  setup:
 RAM_ARM9:02030A4C EB F7 20 FD                 BL      createPKM
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
RAM_ARM9:02030A52 0D 9B                       LDR     R3, [SP,#0x98+current_tr_poke_ptr] same into r3
RAM_ARM9:02030A54 D2 88                       LDRH    R2, [R2,#6]     ; form			byte 7 is the form to use in the trpoke file
RAM_ARM9:02030A56 5B 78                       LDRB    R3, [R3,#1]     ; gender_abil		byte 2 is the gender/abil byte
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
RAM_ARM9:02030A5A 21 1C                       MOVS    R1, R4          ; pPkm
RAM_ARM9:02030A5C 00 F0 E6 F9                 BL      setTrainerPkmStats
 my function will be setTrPkmNature(void* pTrPkm, *empty*, void* pTrPkm)
  this will look like:
 RAM_ARM9:02030A4C EB F7 20 FD                 BL      createPKM
RAM_ARM9:02030A50 0D 9A                       LDR     R2, [SP,#0x98+current_tr_poke_ptr]
RAM_ARM9:02030A52 0D 9B                       mov 	  r0, r2
RAM_ARM9:02030A54 C0 46						  nop
RAM_ARM9:02030A56 D2 88                       bl	  setTrPkmNature
RAM_ARM9:02030A5A 21 1C                       MOVS    R1, R4          ; pPkm
RAM_ARM9:02030A5C 00 F0 E6 F9                 BL      setTrainerPkmStats
   move:
 RAM_ARM9:02030B4E 1A 98                       LDR     R0, [SP,#0x98+p_trpoke_data]
RAM_ARM9:02030B50 43 18                       ADDS    R0, R0, R1
RAM_ARM9:02030B52 DA 88                       mov r2, r0
RAM_ARM9:02030B54 5B 78                       bl	  setTrPkmNature
RAM_ARM9:02030B58 21 1C                       MOVS    R1, R4          ; pPkm
RAM_ARM9:02030B5A 00 F0 67 F9                 BL      setTrainerPkmStats
   item:
 RAM_ARM9:02030C6A 0C 9A                       LDR     R2, [SP,#0x98+var_68]
RAM_ARM9:02030C6C 0C 9B                       mov 	  r0, r2
RAM_ARM9:02030C6E D2 88                       nop
RAM_ARM9:02030C70 5B 78                       bl	  setTrPkmNature
RAM_ARM9:02030C74 21 1C                       MOVS    R1, R4          ; pPkm
RAM_ARM9:02030C76 00 F0 D9 F8                 BL      setTrainerPkmStats
   move/item:
 RAM_ARM9:02030D80 FA 88                       LDRH    R2, [R7,#6]     ; form
RAM_ARM9:02030D82 7B 78                       LDRB    R3, [R7,#1]     ; gender_abil
RAM_ARM9:02030D84 04 98                       LDR     R0, [SP,#0x98+trainer_idx] ; trainer_idx
RAM_ARM9:02030D86 21 1C                       MOVS    R1, R4          ; pPkm
RAM_ARM9:02030D88 00 F0 50 F8                 BL      setTrainerPkmStats
   black2:
 hook: 205A970
setNatureResetStats: 201D5E0
mainRand64: 2005748
 RAM:02030A20 EB F7 20 FD                 BL      createPKM
RAM:02030A24 0D 9A                       LDR     R2, [SP,#0x98+var_64]
RAM:02030A26 0D 9B                       LDR     R3, [SP,#0x98+var_64]
RAM:02030A28 D2 88                       LDRH    R2, [R2,#6]
RAM:02030A2A 5B 78                       LDRB    R3, [R3,#1]
RAM:02030A2C 04 98                       LDR     R0, [SP,#0x98+var_88]
RAM:02030A2E 21 1C                       MOVS    R1, R4
RAM:02030A30 00 F0 E6 F9                 BL      setTrainerPkmStats
  RAM:02030B22 1A 98                       LDR     R0, [SP,#0x98+var_30]
RAM:02030B24 43 18                       ADDS    R3, R0, R1
RAM:02030B26 DA 88                       LDRH    R2, [R3,#6]
RAM:02030B28 5B 78                       LDRB    R3, [R3,#1]
RAM:02030B2A 04 98                       LDR     R0, [SP,#0x98+var_88]
RAM:02030B2C 21 1C                       MOVS    R1, R4
RAM:02030B2E 00 F0 67 F9                 BL      setTrainerPkmStats
  RAM:02030C3A EC F7 6F F8                 BL      setPkmStat
RAM:02030C3E 0C 9A                       LDR     R2, [SP,#0x98+var_68]
RAM:02030C40 0C 9B                       LDR     R3, [SP,#0x98+var_68]
RAM:02030C42 D2 88                       LDRH    R2, [R2,#6]
RAM:02030C44 5B 78                       LDRB    R3, [R3,#1]
RAM:02030C46 04 98                       LDR     R0, [SP,#0x98+var_88]
RAM:02030C48 21 1C                       MOVS    R1, R4
RAM:02030C4A 00 F0 D9 F8                 BL      setTrainerPkmStats
  RAM:02030D52 F4 DB                       BLT     loc_2030D3E
RAM:02030D54 FA 88                       LDRH    R2, [R7,#6]
RAM:02030D56 7B 78                       LDRB    R3, [R7,#1]
RAM:02030D58 04 98                       LDR     R0, [SP,#0x98+var_88]
RAM:02030D5A 21 1C                       MOVS    R1, R4
RAM:02030D5C 00 F0 50 F8                 BL      setTrainerPkmStats

Comments