Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .thumb
- .global BreedingExtras
- .equ rom, 0x08000001
- .equ offset, 0xXXXXXX
- .equ Macho_Brace, 0xB5
- /*
- r0 = child ptr
- r1 = mother ptr (+0x8C for father ptr)
- */
- .org 0x46100
- ldr r0, jump
- bx r0
- .align 2
- jump: .word main + rom
- .org offset
- main:
- mov r0, sp
- mov r1, r5
- bl extras
- return:
- ldrb r0, [r6, #0x1]
- mov r2, #0x8C
- mov r1, r0
- mul r1, r2
- ldr r0, =(0x08046108|1)
- bx r0
- /*
- r4 = child ptr
- r5 = parent ptr
- r6 = current parent (0/1)
- r7 = counter for copyEVs
- sp = (for setattr)
- First, inherit the mother's ball.
- Will inherit father's ball if the mother is a Blobbos (Ditto).
- Note: This may not work, ball is probably set somewhere else.
- Second, inherit the mother's ability bit.
- Will inherit father's ability bit if the mother is a Blobbos.
- Third, if a parent is holding the Macho Brace, inherit all EVs.
- */
- extras:
- push {r4-r7, lr}
- sub sp, sp, #0x4
- mov r6, #0x0
- mov r7, r6
- mov r4, r0
- mov r5, r1
- mov r0, r5
- mov r1, #0x26
- bl getattr
- str r0, [sp]
- mov r0, r4
- mov r1, #0x26
- mov r2, sp
- bl setattr
- copyability:
- bl rand
- lsr r0, r0, #0x8
- cmp r0, #204 @80% of 256
- bhi checkMachoBrace
- mov r0, r5
- mov r1, #0x2E
- bl getattr
- str r0, [sp]
- mov r0, r4
- mov r1, #0x2E
- mov r2, sp
- bl setattr
- checkMachoBrace:
- cmp r6, #0x2
- beq end
- mov r0, #0x8C
- mul r0, r6
- add r0, r0, r5
- mov r1, #0xC
- bl getattr
- add r6, r6, #0x1
- cmp r0, #Macho_Brace
- bne checkMachoBrace
- sub r6, r6, #0x1
- copyEVs:
- mov r0, #0x8C
- mul r0, r6
- add r0, r0, r5
- mov r1, #0x1A @HP EV
- add r1, r1, r7
- bl getattr
- str r0, [sp]
- mov r0, r4
- mov r1, #0x1A
- add r1, r1, r7
- mov r2, sp
- bl setattr
- add r7, r7, #0x1
- cmp r7, #0x6
- bne copyEVs
- end:
- add sp, sp, #0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- getattr:
- ldr r3, =(0x0803FBE8|1)
- bx r3
- setattr:
- ldr r3, =(0x0804037C|1)
- bx r3
- rand:
- ldr r0, =(0x08044EC8|1)
- bx r0
- .align 2
- .pool
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement