diff options
author | Dennis <dhilhorst2000@gmail.com> | 2021-08-01 21:09:13 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-01 12:09:13 -0700 |
commit | 26e5708818765e2abaab29b6ffdfa8f01a5600b7 (patch) | |
tree | 28fe7891cad7a46da5e88f0293e2a9f855e14203 /asm/pokemon_3.s | |
parent | 645c45431b0e091234699c3706ff90d1654cfb57 (diff) |
More pokemon related decomp (#48)
* add struct names
* decompile SaveRecruitedPokemon
* decompile ReadRecruitedPokemon
* decomp anotha one
* some renaming
* another save function
* more backup functions
* sub_808E400
* only one function left in pokemon_2.s
* decomp one more function
* merge 2 structs
Diffstat (limited to 'asm/pokemon_3.s')
-rw-r--r-- | asm/pokemon_3.s | 833 |
1 files changed, 1 insertions, 832 deletions
diff --git a/asm/pokemon_3.s b/asm/pokemon_3.s index f0308d7..ccf5979 100644 --- a/asm/pokemon_3.s +++ b/asm/pokemon_3.s @@ -3,838 +3,7 @@ .syntax unified - .text - - thumb_func_start SaveRecruitedPokemon -SaveRecruitedPokemon: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - adds r3, r0, 0 - adds r2, r1, 0 - add r4, sp, 0xC - adds r0, r4, 0 - adds r1, r3, 0 - bl sub_809486C - mov r10, r4 - mov r0, sp - adds r0, 0x1E - str r0, [sp, 0x20] - add r1, sp, 0x1C - mov r8, r1 - ldr r0, _0808EDF0 - adds r2, r0, 0 - mov r1, sp - movs r5, 0x5 -_0808EDA6: - ldrh r0, [r1] - orrs r0, r2 - strh r0, [r1] - adds r1, 0x2 - subs r5, 0x1 - cmp r5, 0 - bge _0808EDA6 - movs r0, 0x1 - negs r0, r0 - ldr r1, [sp, 0x20] - strh r0, [r1] - movs r5, 0 - mov r4, sp -_0808EDC0: - ldr r2, _0808EDF4 - movs r0, 0x58 - adds r1, r5, 0 - muls r1, r0 - ldr r0, [r2] - adds r1, r0, r1 - ldrh r2, [r1] - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - beq _0808EDF8 - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - beq _0808EDE2 - strh r5, [r4] - adds r4, 0x2 -_0808EDE2: - ldrb r0, [r1, 0x2] - cmp r0, 0 - beq _0808EDFA - ldr r0, [sp, 0x20] - strh r5, [r0] - b _0808EDFA - .align 2, 0 -_0808EDF0: .4byte 0x0000ffff -_0808EDF4: .4byte gRecruitedPokemonRef -_0808EDF8: - strb r0, [r1, 0x3] -_0808EDFA: - mov r0, r10 - bl sub_808EFA0 - adds r5, 0x1 - movs r0, 0xCE - lsls r0, 1 - cmp r5, r0 - ble _0808EDC0 - ldr r1, _0808EE34 - mov r9, r1 - mov r4, r10 - ldr r7, _0808EE38 - movs r6, 0 - movs r5, 0x3 -_0808EE16: - mov r1, r9 - ldr r0, [r1] - adds r0, r6, r0 - ldr r1, _0808EE38 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _0808EE3C - movs r0, 0xFF - mov r1, r8 - strb r0, [r1] - b _0808EE40 - .align 2, 0 -_0808EE34: .4byte gRecruitedPokemonRef -_0808EE38: .4byte 0x00008f88 -_0808EE3C: - mov r0, r8 - strb r1, [r0] -_0808EE40: - adds r0, r4, 0 - mov r1, r8 - movs r2, 0x1 - bl sub_809488C - mov r0, r9 - ldr r1, [r0] - adds r1, r7 - adds r0, r4, 0 - bl sub_808EFA0 - adds r7, 0x58 - adds r6, 0x58 - subs r5, 0x1 - cmp r5, 0 - bge _0808EE16 - mov r4, sp - movs r5, 0x5 -_0808EE64: - mov r0, r10 - adds r1, r4, 0 - movs r2, 0x10 - bl sub_809488C - adds r4, 0x2 - subs r5, 0x1 - cmp r5, 0 - bge _0808EE64 - mov r0, r10 - ldr r1, [sp, 0x20] - movs r2, 0x10 - bl sub_809488C - mov r0, r10 - bl nullsub_102 - mov r1, r10 - ldr r0, [r1, 0x8] - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end SaveRecruitedPokemon - - thumb_func_start ReadRecruitedPokemon -ReadRecruitedPokemon: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - adds r3, r0, 0 - adds r2, r1, 0 - mov r0, sp - adds r1, r3, 0 - bl sub_809485C - movs r5, 0 - add r7, sp, 0x10 - movs r0, 0x12 - add r0, sp - mov r8, r0 - ldr r6, _0808EF10 - movs r4, 0 -_0808EEBE: - ldr r1, [r6] - adds r1, r4 - mov r0, sp - bl sub_808F068 - adds r4, 0x58 - adds r5, 0x1 - movs r0, 0xCE - lsls r0, 1 - cmp r5, r0 - ble _0808EEBE - movs r5, 0 - adds r6, r7, 0 - ldr r7, _0808EF10 -_0808EEDA: - mov r0, sp - adds r1, r6, 0 - movs r2, 0x1 - bl sub_8094924 - movs r0, 0x58 - adds r4, r5, 0 - muls r4, r0 - ldr r1, _0808EF14 - adds r0, r4, r1 - ldr r1, [r7] - adds r1, r0 - mov r0, sp - bl sub_808F068 - ldrb r0, [r6] - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _0808EF18 - ldr r0, [r7] - adds r0, r4 - ldr r2, _0808EF14 - adds r0, r2 - movs r1, 0x3 - b _0808EF20 - .align 2, 0 -_0808EF10: .4byte gRecruitedPokemonRef -_0808EF14: .4byte 0x00008f88 -_0808EF18: - ldr r0, [r7] - adds r0, r4 - ldr r3, _0808EF98 - adds r0, r3 -_0808EF20: - strh r1, [r0] - adds r5, 0x1 - cmp r5, 0x3 - ble _0808EEDA - mov r4, r8 - movs r6, 0xCE - lsls r6, 1 - movs r5, 0x5 -_0808EF30: - mov r0, sp - adds r1, r4, 0 - movs r2, 0x10 - bl sub_8094924 - ldrh r0, [r4] - cmp r0, r6 - bhi _0808EF56 - ldr r0, _0808EF9C - ldr r2, [r0] - movs r0, 0 - ldrsh r1, [r4, r0] - movs r0, 0x58 - muls r0, r1 - adds r2, r0 - ldrh r1, [r2] - movs r0, 0x2 - orrs r0, r1 - strh r0, [r2] -_0808EF56: - subs r5, 0x1 - cmp r5, 0 - bge _0808EF30 - mov r0, sp - mov r1, r8 - movs r2, 0x10 - bl sub_8094924 - mov r2, r8 - ldrh r1, [r2] - movs r0, 0xCE - lsls r0, 1 - cmp r1, r0 - bhi _0808EF84 - ldr r0, _0808EF9C - ldr r1, [r0] - movs r3, 0 - ldrsh r2, [r2, r3] - movs r0, 0x58 - muls r0, r2 - adds r1, r0 - movs r0, 0x1 - strb r0, [r1, 0x2] -_0808EF84: - mov r0, sp - bl nullsub_102 - ldr r0, [sp, 0x8] - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0808EF98: .4byte 0x00008f88 -_0808EF9C: .4byte gRecruitedPokemonRef - thumb_func_end ReadRecruitedPokemon - - thumb_func_start sub_808EFA0 -sub_808EFA0: - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r1, r5, 0x3 - movs r2, 0x7 - bl sub_809488C - adds r1, r5, 0 - adds r1, 0x8 - adds r0, r4, 0 - movs r2, 0x9 - bl sub_809488C - adds r1, r5, 0x4 - adds r0, r4, 0 - bl sub_80902F4 - adds r1, r5, 0 - adds r1, 0xC - adds r0, r4, 0 - bl sub_808F41C - adds r1, r5, 0 - adds r1, 0x10 - adds r0, r4, 0 - bl sub_808F41C - adds r1, r5, 0 - adds r1, 0x14 - adds r0, r4, 0 - movs r2, 0xA - bl sub_809488C - adds r1, r5, 0 - adds r1, 0x16 - adds r0, r4, 0 - movs r2, 0xA - bl sub_809488C - adds r1, r5, 0 - adds r1, 0x18 - adds r0, r4, 0 - movs r2, 0x8 - bl sub_809488C - adds r1, r5, 0 - adds r1, 0x19 - adds r0, r4, 0 - movs r2, 0x8 - bl sub_809488C - adds r1, r5, 0 - adds r1, 0x1A - adds r0, r4, 0 - movs r2, 0x8 - bl sub_809488C - adds r1, r5, 0 - adds r1, 0x1B - adds r0, r4, 0 - movs r2, 0x8 - bl sub_809488C - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r4, 0 - movs r2, 0x18 - bl sub_809488C - adds r1, r5, 0 - adds r1, 0x20 - adds r0, r4, 0 - movs r2, 0x18 - bl sub_809488C - adds r1, r5, 0 - adds r1, 0x24 - adds r0, r4, 0 - movs r2, 0x4 - bl sub_809488C - adds r1, r5, 0 - adds r1, 0x28 - adds r0, r4, 0 - bl sub_8091DE0 - adds r1, r5, 0 - adds r1, 0x2C - adds r0, r4, 0 - bl sub_8094108 - adds r1, r5, 0 - adds r1, 0x4C - adds r0, r4, 0 - movs r2, 0x50 - bl sub_809488C - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_808EFA0 - - thumb_func_start sub_808F068 -sub_808F068: - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x58 - bl memset - movs r6, 0 - movs r0, 0 - strh r0, [r4] - strb r6, [r4, 0x2] - adds r1, r4, 0x3 - adds r0, r5, 0 - movs r2, 0x7 - bl sub_8094924 - ldrb r0, [r4, 0x3] - cmp r0, 0 - beq _0808F098 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] -_0808F098: - adds r1, r4, 0 - adds r1, 0x8 - adds r0, r5, 0 - movs r2, 0x9 - bl sub_8094924 - adds r1, r4, 0x4 - adds r0, r5, 0 - bl sub_8090314 - adds r1, r4, 0 - adds r1, 0xC - adds r0, r5, 0 - bl sub_808F410 - adds r1, r4, 0 - adds r1, 0x10 - adds r0, r5, 0 - bl sub_808F410 - adds r1, r4, 0 - adds r1, 0x14 - adds r0, r5, 0 - movs r2, 0xA - bl sub_8094924 - adds r1, r4, 0 - adds r1, 0x16 - adds r0, r5, 0 - movs r2, 0xA - bl sub_8094924 - adds r1, r4, 0 - adds r1, 0x18 - adds r0, r5, 0 - movs r2, 0x8 - bl sub_8094924 - adds r1, r4, 0 - adds r1, 0x19 - adds r0, r5, 0 - movs r2, 0x8 - bl sub_8094924 - adds r1, r4, 0 - adds r1, 0x1A - adds r0, r5, 0 - movs r2, 0x8 - bl sub_8094924 - adds r1, r4, 0 - adds r1, 0x1B - adds r0, r5, 0 - movs r2, 0x8 - bl sub_8094924 - adds r1, r4, 0 - adds r1, 0x1C - adds r0, r5, 0 - movs r2, 0x18 - bl sub_8094924 - adds r1, r4, 0 - adds r1, 0x20 - adds r0, r5, 0 - movs r2, 0x18 - bl sub_8094924 - adds r1, r4, 0 - adds r1, 0x24 - adds r0, r5, 0 - movs r2, 0x4 - bl sub_8094924 - adds r1, r4, 0 - adds r1, 0x28 - adds r0, r5, 0 - bl sub_8091DC0 - adds r1, r4, 0 - adds r1, 0x2C - adds r0, r5, 0 - bl sub_8094128 - adds r1, r4, 0 - adds r1, 0x4C - adds r0, r5, 0 - movs r2, 0x50 - bl sub_8094924 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_808F068 - - thumb_func_start sub_808F154 -sub_808F154: - push {r4-r7,lr} - sub sp, 0x14 - adds r3, r0, 0 - adds r2, r1, 0 - mov r0, sp - adds r1, r3, 0 - bl sub_809486C - add r2, sp, 0x10 - movs r0, 0xFF - strb r0, [r2] - mov r1, sp - adds r1, 0x11 - movs r0, 0 - strb r0, [r1] - movs r5, 0 - adds r6, r2, 0 - adds r7, r1, 0 -_0808F178: - ldr r1, _0808F2A8 - movs r0, 0x64 - muls r0, r5 - ldr r2, _0808F2AC - adds r0, r2 - ldr r1, [r1] - adds r4, r1, r0 - mov r0, sp - adds r1, r4, 0 - movs r2, 0x2 - bl sub_809488C - ldrb r0, [r4, 0x2] - adds r1, r7, 0 - cmp r0, 0 - beq _0808F19A - adds r1, r6, 0 -_0808F19A: - mov r0, sp - movs r2, 0x1 - bl sub_809488C - adds r1, r4, 0x3 - mov r0, sp - movs r2, 0x7 - bl sub_809488C - adds r1, r4, 0x4 - mov r0, sp - bl sub_80902F4 - adds r1, r4, 0 - adds r1, 0x8 - mov r0, sp - movs r2, 0xA - bl sub_809488C - adds r1, r4, 0 - adds r1, 0xA - mov r0, sp - movs r2, 0x10 - bl sub_809488C - adds r1, r4, 0 - adds r1, 0xC - mov r0, sp - movs r2, 0x10 - bl sub_809488C - adds r1, r4, 0 - adds r1, 0xE - mov r0, sp - movs r2, 0x9 - bl sub_809488C - adds r1, r4, 0 - adds r1, 0x10 - mov r0, sp - movs r2, 0xA - bl sub_809488C - adds r1, r4, 0 - adds r1, 0x12 - mov r0, sp - movs r2, 0xA - bl sub_809488C - adds r1, r4, 0 - adds r1, 0x14 - mov r0, sp - movs r2, 0x8 - bl sub_809488C - adds r1, r4, 0 - adds r1, 0x15 - mov r0, sp - movs r2, 0x8 - bl sub_809488C - adds r1, r4, 0 - adds r1, 0x16 - mov r0, sp - movs r2, 0x8 - bl sub_809488C - adds r1, r4, 0 - adds r1, 0x17 - mov r0, sp - movs r2, 0x8 - bl sub_809488C - adds r1, r4, 0 - adds r1, 0x18 - mov r0, sp - movs r2, 0x18 - bl sub_809488C - adds r1, r4, 0 - adds r1, 0x1C - mov r0, sp - bl sub_8094184 - adds r1, r4, 0 - adds r1, 0x40 - mov r0, sp - bl sub_8091E28 - adds r1, r4, 0 - adds r1, 0x44 - mov r0, sp - bl sub_809449C - adds r1, r4, 0 - adds r1, 0x48 - mov r0, sp - bl sub_809449C - adds r1, r4, 0 - adds r1, 0x4C - mov r0, sp - movs r2, 0x18 - bl sub_809488C - adds r1, r4, 0 - adds r1, 0x50 - mov r0, sp - movs r2, 0x4 - bl sub_809488C - adds r1, r4, 0 - adds r1, 0x54 - mov r0, sp - bl sub_808F448 - adds r1, r4, 0 - adds r1, 0x58 - mov r0, sp - movs r2, 0x50 - bl sub_809488C - adds r5, 0x1 - cmp r5, 0x3 - bgt _0808F296 - b _0808F178 -_0808F296: - mov r0, sp - bl nullsub_102 - ldr r0, [sp, 0x8] - add sp, 0x14 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0808F2A8: .4byte gRecruitedPokemonRef -_0808F2AC: .4byte 0x00008df8 - thumb_func_end sub_808F154 - - thumb_func_start sub_808F2B0 -sub_808F2B0: - push {r4-r6,lr} - sub sp, 0x14 - adds r3, r0, 0 - adds r2, r1, 0 - mov r0, sp - adds r1, r3, 0 - bl sub_809485C - movs r5, 0 - add r6, sp, 0x10 -_0808F2C4: - ldr r1, _0808F300 - movs r0, 0x64 - muls r0, r5 - ldr r2, _0808F304 - adds r0, r2 - ldr r1, [r1] - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x64 - bl memset - mov r0, sp - adds r1, r4, 0 - movs r2, 0x2 - bl sub_8094924 - mov r0, sp - adds r1, r6, 0 - movs r2, 0x1 - bl sub_8094924 - ldrb r0, [r6] - movs r2, 0x1 - adds r1, r2, 0 - ands r1, r0 - cmp r1, 0 - beq _0808F308 - strb r2, [r4, 0x2] - b _0808F30A - .align 2, 0 -_0808F300: .4byte gRecruitedPokemonRef -_0808F304: .4byte 0x00008df8 -_0808F308: - strb r1, [r4, 0x2] -_0808F30A: - adds r1, r4, 0x3 - mov r0, sp - movs r2, 0x7 - bl sub_8094924 - adds r1, r4, 0x4 - mov r0, sp - bl sub_8090314 - adds r1, r4, 0 - adds r1, 0x8 - mov r0, sp - movs r2, 0xA - bl sub_8094924 - adds r1, r4, 0 - adds r1, 0xA - mov r0, sp - movs r2, 0x10 - bl sub_8094924 - adds r1, r4, 0 - adds r1, 0xC - mov r0, sp - movs r2, 0x10 - bl sub_8094924 - adds r1, r4, 0 - adds r1, 0xE - mov r0, sp - movs r2, 0x9 - bl sub_8094924 - adds r1, r4, 0 - adds r1, 0x10 - mov r0, sp - movs r2, 0xA - bl sub_8094924 - adds r1, r4, 0 - adds r1, 0x12 - mov r0, sp - movs r2, 0xA - bl sub_8094924 - adds r1, r4, 0 - adds r1, 0x14 - mov r0, sp - movs r2, 0x8 - bl sub_8094924 - adds r1, r4, 0 - adds r1, 0x15 - mov r0, sp - movs r2, 0x8 - bl sub_8094924 - adds r1, r4, 0 - adds r1, 0x16 - mov r0, sp - movs r2, 0x8 - bl sub_8094924 - adds r1, r4, 0 - adds r1, 0x17 - mov r0, sp - movs r2, 0x8 - bl sub_8094924 - adds r1, r4, 0 - adds r1, 0x18 - mov r0, sp - movs r2, 0x18 - bl sub_8094924 - adds r1, r4, 0 - adds r1, 0x1C - mov r0, sp - bl sub_80941FC - adds r1, r4, 0 - adds r1, 0x40 - mov r0, sp - bl sub_8091E00 - adds r1, r4, 0 - adds r1, 0x44 - mov r0, sp - bl sub_809447C - adds r1, r4, 0 - adds r1, 0x48 - mov r0, sp - bl sub_809447C - adds r1, r4, 0 - adds r1, 0x4C - mov r0, sp - movs r2, 0x18 - bl sub_8094924 - adds r1, r4, 0 - adds r1, 0x50 - mov r0, sp - movs r2, 0x4 - bl sub_8094924 - adds r1, r4, 0 - adds r1, 0x54 - mov r0, sp - bl sub_808F428 - adds r1, r4, 0 - adds r1, 0x58 - mov r0, sp - movs r2, 0x50 - bl sub_8094924 - adds r5, 0x1 - cmp r5, 0x3 - bgt _0808F3FE - b _0808F2C4 -_0808F3FE: - mov r0, sp - bl nullsub_102 - ldr r0, [sp, 0x8] - add sp, 0x14 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_808F2B0 - - thumb_func_start sub_808F410 -sub_808F410: - push {lr} - movs r2, 0x7 - bl sub_8094924 - pop {r0} - bx r0 - thumb_func_end sub_808F410 - - thumb_func_start sub_808F41C -sub_808F41C: - push {lr} - movs r2, 0x7 - bl sub_809488C - pop {r0} - bx r0 - thumb_func_end sub_808F41C - - thumb_func_start sub_808F428 -sub_808F428: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r2, 0xA - bl sub_8094924 - adds r4, 0x2 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x5 - bl sub_8094924 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_808F428 - - thumb_func_start sub_808F448 -sub_808F448: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r2, 0xA - bl sub_809488C - adds r4, 0x2 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x5 - bl sub_809488C - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_808F448 + .text thumb_func_start sub_808F468 sub_808F468: |