decomp some more saving functions

This commit is contained in:
Seth Barberee 2022-03-01 19:40:00 -08:00
parent 30fea2d6f3
commit a5c90b0970
11 changed files with 637 additions and 1208 deletions

View File

@ -452,488 +452,4 @@ sub_8095494:
_080954B0: .4byte gUnknown_203B480
thumb_func_end sub_8095494
thumb_func_start sub_80954B4
sub_80954B4:
push {lr}
movs r0, 0x3
bl sub_8095324
cmp r0, 0
bne _080954C4
movs r0, 0
b _080954C6
_080954C4:
movs r0, 0x1
_080954C6:
pop {r1}
bx r1
thumb_func_end sub_80954B4
thumb_func_start sub_80954CC
sub_80954CC:
push {r4-r6,lr}
sub sp, 0x10
adds r3, r0, 0
adds r2, r1, 0
mov r0, sp
adds r1, r3, 0
bl xxx_init_struct_8094924_restore_809485C
ldr r6, _08095618
movs r5, 0
movs r4, 0x1F
_080954E2:
ldr r1, [r6]
adds r1, r5
mov r0, sp
bl sub_8095774
adds r5, 0x30
subs r4, 0x1
cmp r4, 0
bge _080954E2
ldr r4, _0809561C
ldr r1, [r4]
mov r0, sp
movs r2, 0x20
bl RestoreIntegerBits
ldr r5, [r4]
adds r4, r5, 0x4
adds r0, r4, 0
movs r1, 0
movs r2, 0x58
bl memset
mov r0, sp
adds r1, r4, 0
movs r2, 0x2
bl RestoreIntegerBits
adds r1, r5, 0x6
mov r0, sp
movs r2, 0x1
bl RestoreIntegerBits
adds r1, r5, 0x7
mov r0, sp
movs r2, 0x7
bl RestoreIntegerBits
adds r4, 0x4
mov r0, sp
adds r1, r4, 0
bl xxx_restore_poke_sub_4_8090314
adds r1, r5, 0
adds r1, 0xC
mov r0, sp
movs r2, 0x9
bl RestoreIntegerBits
adds r1, r5, 0
adds r1, 0x10
mov r0, sp
bl xxx_restore_poke_sub_c_808F410
adds r1, r5, 0
adds r1, 0x14
mov r0, sp
bl xxx_restore_poke_sub_c_808F410
adds r1, r5, 0
adds r1, 0x18
mov r0, sp
movs r2, 0xA
bl RestoreIntegerBits
adds r1, r5, 0
adds r1, 0x1A
mov r0, sp
movs r2, 0xA
bl RestoreIntegerBits
adds r1, r5, 0
adds r1, 0x1C
mov r0, sp
movs r2, 0x8
bl RestoreIntegerBits
adds r1, r5, 0
adds r1, 0x1D
mov r0, sp
movs r2, 0x8
bl RestoreIntegerBits
adds r1, r5, 0
adds r1, 0x1E
mov r0, sp
movs r2, 0x8
bl RestoreIntegerBits
adds r1, r5, 0
adds r1, 0x1F
mov r0, sp
movs r2, 0x8
bl RestoreIntegerBits
adds r1, r5, 0
adds r1, 0x20
mov r0, sp
movs r2, 0x18
bl RestoreIntegerBits
adds r1, r5, 0
adds r1, 0x24
mov r0, sp
movs r2, 0x18
bl RestoreIntegerBits
adds r1, r5, 0
adds r1, 0x28
mov r0, sp
movs r2, 0x4
bl RestoreIntegerBits
adds r1, r5, 0
adds r1, 0x2C
mov r0, sp
bl RestoreHeldItem
adds r1, r5, 0
adds r1, 0x30
mov r0, sp
bl RestorePokemonMoves
adds r1, r5, 0
adds r1, 0x50
mov r0, sp
movs r2, 0x50
bl RestoreIntegerBits
ldr r4, _08095620
ldr r1, [r4]
mov r0, sp
movs r2, 0x20
bl RestoreIntegerBits
adds r6, r4, 0
movs r5, 0x4
movs r4, 0x1F
_080955F4:
ldr r1, [r6]
adds r1, r5
mov r0, sp
movs r2, 0x20
bl RestoreIntegerBits
adds r5, 0x4
subs r4, 0x1
cmp r4, 0
bge _080955F4
mov r0, sp
bl nullsub_102
ldr r0, [sp, 0x8]
add sp, 0x10
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08095618: .4byte gUnknown_203B480
_0809561C: .4byte gUnknown_203B484
_08095620: .4byte gUnknown_203B48C
thumb_func_end sub_80954CC
thumb_func_start sub_8095624
sub_8095624:
push {r4-r6,lr}
sub sp, 0x10
adds r3, r0, 0
adds r2, r1, 0
mov r0, sp
adds r1, r3, 0
bl xxx_init_struct_8094924_save_809486C
ldr r6, _08095768
movs r5, 0
movs r4, 0x1F
_0809563A:
ldr r1, [r6]
adds r1, r5
mov r0, sp
bl sub_8095824
adds r5, 0x30
subs r4, 0x1
cmp r4, 0
bge _0809563A
ldr r4, _0809576C
ldr r1, [r4]
mov r0, sp
movs r2, 0x20
bl SaveIntegerBits
ldr r5, [r4]
adds r4, r5, 0x4
mov r0, sp
adds r1, r4, 0
movs r2, 0x2
bl SaveIntegerBits
adds r1, r5, 0x6
mov r0, sp
movs r2, 0x1
bl SaveIntegerBits
adds r1, r5, 0x7
mov r0, sp
movs r2, 0x7
bl SaveIntegerBits
adds r4, 0x4
mov r0, sp
adds r1, r4, 0
bl xxx_save_poke_sub_4_80902F4
adds r1, r5, 0
adds r1, 0xC
mov r0, sp
movs r2, 0x9
bl SaveIntegerBits
adds r1, r5, 0
adds r1, 0x10
mov r0, sp
bl xxx_save_poke_sub_c_808F41C
adds r1, r5, 0
adds r1, 0x14
mov r0, sp
bl xxx_save_poke_sub_c_808F41C
adds r1, r5, 0
adds r1, 0x18
mov r0, sp
movs r2, 0xA
bl SaveIntegerBits
adds r1, r5, 0
adds r1, 0x1A
mov r0, sp
movs r2, 0xA
bl SaveIntegerBits
adds r1, r5, 0
adds r1, 0x1C
mov r0, sp
movs r2, 0x8
bl SaveIntegerBits
adds r1, r5, 0
adds r1, 0x1D
mov r0, sp
movs r2, 0x8
bl SaveIntegerBits
adds r1, r5, 0
adds r1, 0x1E
mov r0, sp
movs r2, 0x8
bl SaveIntegerBits
adds r1, r5, 0
adds r1, 0x1F
mov r0, sp
movs r2, 0x8
bl SaveIntegerBits
adds r1, r5, 0
adds r1, 0x20
mov r0, sp
movs r2, 0x18
bl SaveIntegerBits
adds r1, r5, 0
adds r1, 0x24
mov r0, sp
movs r2, 0x18
bl SaveIntegerBits
adds r1, r5, 0
adds r1, 0x28
mov r0, sp
movs r2, 0x4
bl SaveIntegerBits
adds r1, r5, 0
adds r1, 0x2C
mov r0, sp
bl SaveHeldItem
adds r1, r5, 0
adds r1, 0x30
mov r0, sp
bl SavePokemonMoves
adds r1, r5, 0
adds r1, 0x50
mov r0, sp
movs r2, 0x50
bl SaveIntegerBits
ldr r4, _08095770
ldr r1, [r4]
mov r0, sp
movs r2, 0x20
bl SaveIntegerBits
adds r6, r4, 0
movs r5, 0x4
movs r4, 0x1F
_08095742:
ldr r1, [r6]
adds r1, r5
mov r0, sp
movs r2, 0x20
bl SaveIntegerBits
adds r5, 0x4
subs r4, 0x1
cmp r4, 0
bge _08095742
mov r0, sp
bl nullsub_102
ldr r0, [sp, 0x8]
add sp, 0x10
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08095768: .4byte gUnknown_203B480
_0809576C: .4byte gUnknown_203B484
_08095770: .4byte gUnknown_203B48C
thumb_func_end sub_8095624
thumb_func_start sub_8095774
sub_8095774:
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
bl RestoreIntegerBits
adds r1, r5, 0x4
adds r0, r4, 0
bl xxx_restore_poke_sub_4_8090314
adds r1, r5, 0
adds r1, 0x8
adds r0, r4, 0
movs r2, 0x18
bl RestoreIntegerBits
adds r1, r5, 0
adds r1, 0xC
adds r0, r4, 0
movs r2, 0x9
bl RestoreIntegerBits
adds r1, r5, 0
adds r1, 0x10
adds r0, r4, 0
movs r2, 0x20
bl RestoreIntegerBits
adds r1, r5, 0
adds r1, 0x14
adds r0, r4, 0
movs r2, 0x50
bl RestoreIntegerBits
adds r1, r5, 0
adds r1, 0x20
adds r0, r4, 0
movs r2, 0x8
bl RestoreIntegerBits
adds r1, r5, 0
adds r1, 0x21
adds r0, r4, 0
movs r2, 0x8
bl RestoreIntegerBits
adds r1, r5, 0
adds r1, 0x22
adds r0, r4, 0
movs r2, 0x8
bl RestoreIntegerBits
adds r1, r5, 0
adds r1, 0x24
adds r0, r4, 0
movs r2, 0x20
bl RestoreIntegerBits
adds r1, r5, 0
adds r1, 0x28
adds r0, r4, 0
movs r2, 0x20
bl RestoreIntegerBits
adds r1, r5, 0
adds r1, 0x2C
adds r0, r4, 0
movs r2, 0x8
bl RestoreIntegerBits
adds r0, r4, 0
mov r1, sp
movs r2, 0x1
bl RestoreIntegerBits
mov r0, sp
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
adds r1, r5, 0
adds r1, 0x2D
strb r0, [r1]
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8095774
thumb_func_start sub_8095824
sub_8095824:
push {r4-r6,lr}
sub sp, 0x4
adds r5, r0, 0
adds r4, r1, 0
movs r1, 0xFF
mov r0, sp
strb r1, [r0]
mov r6, sp
adds r6, 0x1
movs r0, 0
strb r0, [r6]
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0x4
bl SaveIntegerBits
adds r1, r4, 0x4
adds r0, r5, 0
bl xxx_save_poke_sub_4_80902F4
adds r1, r4, 0
adds r1, 0x8
adds r0, r5, 0
movs r2, 0x18
bl SaveIntegerBits
adds r1, r4, 0
adds r1, 0xC
adds r0, r5, 0
movs r2, 0x9
bl SaveIntegerBits
adds r1, r4, 0
adds r1, 0x10
adds r0, r5, 0
movs r2, 0x20
bl SaveIntegerBits
adds r1, r4, 0
adds r1, 0x14
adds r0, r5, 0
movs r2, 0x50
bl SaveIntegerBits
adds r1, r4, 0
adds r1, 0x20
adds r0, r5, 0
movs r2, 0x8
bl SaveIntegerBits
adds r1, r4, 0
adds r1, 0x21
adds r0, r5, 0
movs r2, 0x8
bl SaveIntegerBits
adds r1, r4, 0
adds r1, 0x22
adds r0, r5, 0
movs r2, 0x8
bl SaveIntegerBits
adds r1, r4, 0
adds r1, 0x24
adds r0, r5, 0
movs r2, 0x20
bl SaveIntegerBits
adds r1, r4, 0
adds r1, 0x28
adds r0, r5, 0
movs r2, 0x20
bl SaveIntegerBits
adds r1, r4, 0
adds r1, 0x2C
adds r0, r5, 0
movs r2, 0x8
bl SaveIntegerBits
adds r0, r4, 0
adds r0, 0x2D
ldrb r0, [r0]
mov r1, sp
cmp r0, 0
bne _080958D2
adds r1, r6, 0
_080958D2:
adds r0, r5, 0
movs r2, 0x1
bl SaveIntegerBits
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8095824
thumb_func_start sub_80958E4
sub_80958E4:
str r1, [r0]
bx lr
thumb_func_end sub_80958E4
.align 2,0

View File

@ -2816,680 +2816,4 @@ _08096EFE:
_08096F4C: .4byte gUnknown_203B490
thumb_func_end sub_8096EEC
thumb_func_start sub_8096F50
sub_8096F50:
push {r4-r7,lr}
adds r4, r0, 0
bl sub_8096EB0
mov r12, r0
movs r5, 0
ldr r0, _08096F8C
ldr r7, [r0]
ldrb r6, [r4, 0x4]
movs r3, 0
_08096F64:
movs r1, 0x8C
lsls r1, 2
adds r0, r3, r1
adds r2, r7, r0
ldrb r0, [r2]
cmp r0, r6
bne _08096F90
ldrb r0, [r2, 0x1]
ldrb r1, [r4, 0x5]
cmp r0, r1
bne _08096F90
ldr r1, [r2, 0x4]
ldr r0, [r4, 0x8]
cmp r1, r0
bne _08096F90
ldr r0, [r2, 0x8]
cmp r0, r12
bne _08096F90
movs r0, 0x1
b _08096F9A
.align 2, 0
_08096F8C: .4byte gUnknown_203B490
_08096F90:
adds r3, 0xC
adds r5, 0x1
cmp r5, 0xF
ble _08096F64
movs r0, 0
_08096F9A:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8096F50
thumb_func_start sub_8096FA0
sub_8096FA0:
push {r4-r7,lr}
sub sp, 0x14
adds r3, r0, 0
adds r2, r1, 0
mov r0, sp
adds r1, r3, 0
bl xxx_init_struct_8094924_restore_809485C
add r7, sp, 0x10
ldr r6, _08097020
movs r5, 0
movs r4, 0x3
_08096FB8:
ldr r1, [r6]
adds r1, r5
mov r0, sp
bl sub_80971EC
adds r5, 0x14
subs r4, 0x1
cmp r4, 0
bge _08096FB8
ldr r6, _08097020
movs r5, 0x50
movs r4, 0x7
_08096FD0:
ldr r1, [r6]
adds r1, r5
mov r0, sp
bl sub_80971EC
adds r5, 0x14
subs r4, 0x1
cmp r4, 0
bge _08096FD0
ldr r6, _08097020
movs r5, 0xF0
movs r4, 0x7
_08096FE8:
ldr r1, [r6]
adds r1, r5
mov r0, sp
bl sub_80971EC
adds r5, 0x14
subs r4, 0x1
cmp r4, 0
bge _08096FE8
movs r4, 0
movs r6, 0x1
ldr r5, _08097020
_08097000:
mov r0, sp
adds r1, r7, 0
movs r2, 0x1
bl RestoreIntegerBits
ldr r1, [sp, 0x10]
ands r1, r6
cmp r1, 0
beq _08097024
ldr r0, [r5]
movs r1, 0xBC
lsls r1, 2
adds r0, r1
adds r0, r4
strb r6, [r0]
b _08097030
.align 2, 0
_08097020: .4byte gUnknown_203B490
_08097024:
ldr r0, [r5]
movs r2, 0xBC
lsls r2, 2
adds r0, r2
adds r0, r4
strb r1, [r0]
_08097030:
adds r4, 0x1
cmp r4, 0x37
ble _08097000
mov r0, sp
adds r1, r7, 0
movs r2, 0x1
bl RestoreIntegerBits
ldr r1, [sp, 0x10]
movs r2, 0x1
ands r1, r2
cmp r1, 0
beq _0809705C
ldr r0, _08097058
ldr r0, [r0]
movs r1, 0xCA
lsls r1, 2
adds r0, r1
strb r2, [r0]
b _08097068
.align 2, 0
_08097058: .4byte gUnknown_203B490
_0809705C:
ldr r0, _080970D4
ldr r0, [r0]
movs r2, 0xCA
lsls r2, 2
adds r0, r2
strb r1, [r0]
_08097068:
ldr r4, _080970D4
ldr r1, [r4]
movs r0, 0xC8
lsls r0, 1
adds r1, r0
movs r2, 0xA0
lsls r2, 1
mov r0, sp
bl RestoreIntegerBits
ldr r1, [r4]
movs r2, 0xDC
lsls r2, 1
adds r1, r2
movs r2, 0xF0
lsls r2, 2
mov r0, sp
bl RestoreIntegerBits
adds r6, r4, 0
movs r5, 0x8C
lsls r5, 2
movs r4, 0xF
_08097096:
ldr r1, [r6]
adds r1, r5
adds r1, 0x8
mov r0, sp
movs r2, 0x20
bl RestoreIntegerBits
ldr r1, [r6]
adds r1, r5
adds r1, 0x4
mov r0, sp
movs r2, 0x18
bl RestoreIntegerBits
ldr r1, [r6]
adds r1, r5
mov r0, sp
bl xxx_restore_poke_sub_4_8090314
adds r5, 0xC
subs r4, 0x1
cmp r4, 0
bge _08097096
mov r0, sp
bl nullsub_102
ldr r0, [sp, 0x8]
add sp, 0x14
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080970D4: .4byte gUnknown_203B490
thumb_func_end sub_8096FA0
thumb_func_start sub_80970D8
sub_80970D8:
push {r4-r7,lr}
sub sp, 0x14
adds r3, r0, 0
adds r2, r1, 0
mov r0, sp
adds r1, r3, 0
bl xxx_init_struct_8094924_save_809486C
add r7, sp, 0x10
ldr r6, _080971E8
movs r5, 0
movs r4, 0x3
_080970F0:
ldr r1, [r6]
adds r1, r5
mov r0, sp
bl sub_8097270
adds r5, 0x14
subs r4, 0x1
cmp r4, 0
bge _080970F0
ldr r6, _080971E8
movs r5, 0x50
movs r4, 0x7
_08097108:
ldr r1, [r6]
adds r1, r5
mov r0, sp
bl sub_8097270
adds r5, 0x14
subs r4, 0x1
cmp r4, 0
bge _08097108
ldr r6, _080971E8
movs r5, 0xF0
movs r4, 0x7
_08097120:
ldr r1, [r6]
adds r1, r5
mov r0, sp
bl sub_8097270
adds r5, 0x14
subs r4, 0x1
cmp r4, 0
bge _08097120
movs r4, 0
_08097134:
ldr r0, _080971E8
ldr r0, [r0]
movs r1, 0xBC
lsls r1, 2
adds r0, r1
adds r0, r4
ldrb r0, [r0]
cmp r0, 0
beq _0809714A
movs r0, 0x1
negs r0, r0
_0809714A:
str r0, [sp, 0x10]
mov r0, sp
adds r1, r7, 0
movs r2, 0x1
bl SaveIntegerBits
adds r4, 0x1
cmp r4, 0x37
ble _08097134
ldr r0, _080971E8
ldr r0, [r0]
movs r1, 0xCA
lsls r1, 2
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
beq _08097170
movs r0, 0x1
negs r0, r0
_08097170:
str r0, [sp, 0x10]
mov r0, sp
adds r1, r7, 0
movs r2, 0x1
bl SaveIntegerBits
ldr r4, _080971E8
ldr r1, [r4]
movs r0, 0xC8
lsls r0, 1
adds r1, r0
movs r2, 0xA0
lsls r2, 1
mov r0, sp
bl SaveIntegerBits
ldr r1, [r4]
movs r0, 0xDC
lsls r0, 1
adds r1, r0
movs r2, 0xF0
lsls r2, 2
mov r0, sp
bl SaveIntegerBits
adds r6, r4, 0
movs r5, 0x8C
lsls r5, 2
movs r4, 0xF
_080971AA:
ldr r1, [r6]
adds r1, r5
adds r1, 0x8
mov r0, sp
movs r2, 0x20
bl SaveIntegerBits
ldr r1, [r6]
adds r1, r5
adds r1, 0x4
mov r0, sp
movs r2, 0x18
bl SaveIntegerBits
ldr r1, [r6]
adds r1, r5
mov r0, sp
bl xxx_save_poke_sub_4_80902F4
adds r5, 0xC
subs r4, 0x1
cmp r4, 0
bge _080971AA
mov r0, sp
bl nullsub_102
ldr r0, [sp, 0x8]
add sp, 0x14
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080971E8: .4byte gUnknown_203B490
thumb_func_end sub_80970D8
thumb_func_start sub_80971EC
sub_80971EC:
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
bl RestoreIntegerBits
adds r1, r5, 0x1
adds r0, r4, 0
movs r2, 0x3
bl RestoreIntegerBits
adds r1, r5, 0x2
adds r0, r4, 0
movs r2, 0x4
bl RestoreIntegerBits
adds r1, r5, 0
adds r1, 0xC
adds r0, r4, 0
movs r2, 0x9
bl RestoreIntegerBits
adds r1, r5, 0
adds r1, 0xE
adds r0, r4, 0
movs r2, 0x9
bl RestoreIntegerBits
adds r1, r5, 0
adds r1, 0x10
adds r0, r4, 0
movs r2, 0x8
bl RestoreIntegerBits
adds r1, r5, 0
adds r1, 0x11
adds r0, r4, 0
movs r2, 0x4
bl RestoreIntegerBits
adds r1, r5, 0
adds r1, 0x12
adds r0, r4, 0
movs r2, 0x8
bl RestoreIntegerBits
adds r1, r5, 0
adds r1, 0x13
adds r0, r4, 0
movs r2, 0x6
bl RestoreIntegerBits
adds r1, r5, 0
adds r1, 0x8
adds r0, r4, 0
movs r2, 0x18
bl RestoreIntegerBits
adds r1, r5, 0x4
adds r0, r4, 0
bl xxx_restore_poke_sub_4_8090314
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80971EC
thumb_func_start sub_8097270
sub_8097270:
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
bl SaveIntegerBits
adds r1, r5, 0x1
adds r0, r4, 0
movs r2, 0x3
bl SaveIntegerBits
adds r1, r5, 0x2
adds r0, r4, 0
movs r2, 0x4
bl SaveIntegerBits
adds r1, r5, 0
adds r1, 0xC
adds r0, r4, 0
movs r2, 0x9
bl SaveIntegerBits
adds r1, r5, 0
adds r1, 0xE
adds r0, r4, 0
movs r2, 0x9
bl SaveIntegerBits
adds r1, r5, 0
adds r1, 0x10
adds r0, r4, 0
movs r2, 0x8
bl SaveIntegerBits
adds r1, r5, 0
adds r1, 0x11
adds r0, r4, 0
movs r2, 0x4
bl SaveIntegerBits
adds r1, r5, 0
adds r1, 0x12
adds r0, r4, 0
movs r2, 0x8
bl SaveIntegerBits
adds r1, r5, 0
adds r1, 0x13
adds r0, r4, 0
movs r2, 0x6
bl SaveIntegerBits
adds r1, r5, 0
adds r1, 0x8
adds r0, r4, 0
movs r2, 0x18
bl SaveIntegerBits
adds r1, r5, 0x4
adds r0, r4, 0
bl xxx_save_poke_sub_4_80902F4
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8097270
thumb_func_start sub_80972F4
sub_80972F4:
push {lr}
movs r0, 0
movs r1, 0x2B
bl sub_80015C0
movs r0, 0
movs r1, 0x2C
bl sub_80015C0
movs r0, 0
movs r1, 0x2D
bl sub_80015C0
pop {r0}
bx r0
thumb_func_end sub_80972F4
thumb_func_start nullsub_128
nullsub_128:
bx lr
thumb_func_end nullsub_128
thumb_func_start sub_8097318
sub_8097318:
push {lr}
lsls r0, 16
asrs r0, 16
cmp r0, 0xD
bne _08097326
movs r0, 0
b _08097338
_08097326:
lsls r2, r0, 16
lsrs r2, 16
movs r0, 0
movs r1, 0x2B
bl sub_8001784
cmp r0, 0
beq _08097338
movs r0, 0x1
_08097338:
pop {r1}
bx r1
thumb_func_end sub_8097318
thumb_func_start sub_809733C
sub_809733C:
push {r4-r6,lr}
lsls r0, 16
asrs r4, r0, 16
lsls r1, 24
lsrs r6, r1, 24
cmp r4, 0xD
beq _0809737C
lsls r0, r4, 16
lsrs r5, r0, 16
movs r0, 0
movs r1, 0x2C
adds r2, r5, 0
bl sub_8001784
cmp r0, 0
bne _0809737C
movs r0, 0
movs r1, 0x2B
adds r2, r5, 0
adds r3, r6, 0
bl sub_800199C
cmp r6, 0
beq _0809737C
cmp r4, 0xE
blt _0809737C
cmp r4, 0xF
ble _08097378
cmp r4, 0x1C
bne _0809737C
_08097378:
bl sub_809674C
_0809737C:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_809733C
thumb_func_start sub_8097384
sub_8097384:
push {lr}
lsls r0, 16
asrs r0, 16
cmp r0, 0xD
bne _08097392
movs r0, 0
b _080973A4
_08097392:
lsls r2, r0, 16
lsrs r2, 16
movs r0, 0
movs r1, 0x2C
bl sub_8001784
cmp r0, 0
beq _080973A4
movs r0, 0x1
_080973A4:
pop {r1}
bx r1
thumb_func_end sub_8097384
thumb_func_start sub_80973A8
sub_80973A8:
push {r4-r6,lr}
lsls r0, 16
asrs r0, 16
lsls r1, 24
lsrs r6, r1, 24
cmp r0, 0xD
beq _080973EE
lsls r5, r0, 16
cmp r6, 0
beq _080973E2
bl sub_80A26B8
lsls r0, 16
asrs r4, r0, 16
lsrs r2, r5, 16
movs r0, 0
movs r1, 0x2B
movs r3, 0
bl sub_800199C
movs r0, 0x1
negs r0, r0
cmp r4, r0
beq _080973E2
movs r0, 0
movs r1, 0x12
adds r2, r4, 0
bl sub_80018D8
_080973E2:
lsrs r2, r5, 16
movs r0, 0
movs r1, 0x2C
adds r3, r6, 0
bl sub_800199C
_080973EE:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_80973A8
thumb_func_start sub_80973F4
sub_80973F4:
push {lr}
lsls r0, 16
asrs r0, 16
cmp r0, 0xD
bne _08097402
movs r0, 0
b _08097414
_08097402:
lsls r2, r0, 16
lsrs r2, 16
movs r0, 0
movs r1, 0x2D
bl sub_8001784
cmp r0, 0
beq _08097414
movs r0, 0x1
_08097414:
pop {r1}
bx r1
thumb_func_end sub_80973F4
thumb_func_start sub_8097418
sub_8097418:
push {r4-r7,lr}
lsls r0, 16
asrs r5, r0, 16
lsls r1, 24
lsrs r7, r1, 24
cmp r5, 0xD
beq _08097470
lsls r6, r5, 16
cmp r7, 0
beq _08097464
lsrs r2, r6, 16
movs r0, 0
movs r1, 0x2C
movs r3, 0
bl sub_800199C
cmp r5, 0x1E
bgt _08097464
lsls r0, r5, 3
ldr r1, _08097478
adds r4, r0, r1
ldrb r0, [r4, 0x4]
cmp r0, 0xFF
beq _0809744C
bl sub_8097FA8
_0809744C:
ldrb r0, [r4, 0x5]
cmp r0, 0xFF
beq _08097456
bl sub_8097FA8
_08097456:
cmp r5, 0x9
bne _08097460
movs r0, 0x1F
bl sub_8097FA8
_08097460:
bl sub_8097FF8
_08097464:
lsrs r2, r6, 16
movs r0, 0
movs r1, 0x2D
adds r3, r7, 0
bl sub_800199C
_08097470:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08097478: .4byte gStoryMissionText
thumb_func_end sub_8097418
.align 2,0

207
asm/code_8097318.s Normal file
View File

@ -0,0 +1,207 @@
#include "asm/constants/gba_constants.inc"
#include "asm/macros.inc"
.syntax unified
.text
thumb_func_start sub_8097318
sub_8097318:
push {lr}
lsls r0, 16
asrs r0, 16
cmp r0, 0xD
bne _08097326
movs r0, 0
b _08097338
_08097326:
lsls r2, r0, 16
lsrs r2, 16
movs r0, 0
movs r1, 0x2B
bl sub_8001784
cmp r0, 0
beq _08097338
movs r0, 0x1
_08097338:
pop {r1}
bx r1
thumb_func_end sub_8097318
thumb_func_start sub_809733C
sub_809733C:
push {r4-r6,lr}
lsls r0, 16
asrs r4, r0, 16
lsls r1, 24
lsrs r6, r1, 24
cmp r4, 0xD
beq _0809737C
lsls r0, r4, 16
lsrs r5, r0, 16
movs r0, 0
movs r1, 0x2C
adds r2, r5, 0
bl sub_8001784
cmp r0, 0
bne _0809737C
movs r0, 0
movs r1, 0x2B
adds r2, r5, 0
adds r3, r6, 0
bl sub_800199C
cmp r6, 0
beq _0809737C
cmp r4, 0xE
blt _0809737C
cmp r4, 0xF
ble _08097378
cmp r4, 0x1C
bne _0809737C
_08097378:
bl sub_809674C
_0809737C:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_809733C
thumb_func_start sub_8097384
sub_8097384:
push {lr}
lsls r0, 16
asrs r0, 16
cmp r0, 0xD
bne _08097392
movs r0, 0
b _080973A4
_08097392:
lsls r2, r0, 16
lsrs r2, 16
movs r0, 0
movs r1, 0x2C
bl sub_8001784
cmp r0, 0
beq _080973A4
movs r0, 0x1
_080973A4:
pop {r1}
bx r1
thumb_func_end sub_8097384
thumb_func_start sub_80973A8
sub_80973A8:
push {r4-r6,lr}
lsls r0, 16
asrs r0, 16
lsls r1, 24
lsrs r6, r1, 24
cmp r0, 0xD
beq _080973EE
lsls r5, r0, 16
cmp r6, 0
beq _080973E2
bl sub_80A26B8
lsls r0, 16
asrs r4, r0, 16
lsrs r2, r5, 16
movs r0, 0
movs r1, 0x2B
movs r3, 0
bl sub_800199C
movs r0, 0x1
negs r0, r0
cmp r4, r0
beq _080973E2
movs r0, 0
movs r1, 0x12
adds r2, r4, 0
bl sub_80018D8
_080973E2:
lsrs r2, r5, 16
movs r0, 0
movs r1, 0x2C
adds r3, r6, 0
bl sub_800199C
_080973EE:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_80973A8
thumb_func_start sub_80973F4
sub_80973F4:
push {lr}
lsls r0, 16
asrs r0, 16
cmp r0, 0xD
bne _08097402
movs r0, 0
b _08097414
_08097402:
lsls r2, r0, 16
lsrs r2, 16
movs r0, 0
movs r1, 0x2D
bl sub_8001784
cmp r0, 0
beq _08097414
movs r0, 0x1
_08097414:
pop {r1}
bx r1
thumb_func_end sub_80973F4
thumb_func_start sub_8097418
sub_8097418:
push {r4-r7,lr}
lsls r0, 16
asrs r5, r0, 16
lsls r1, 24
lsrs r7, r1, 24
cmp r5, 0xD
beq _08097470
lsls r6, r5, 16
cmp r7, 0
beq _08097464
lsrs r2, r6, 16
movs r0, 0
movs r1, 0x2C
movs r3, 0
bl sub_800199C
cmp r5, 0x1E
bgt _08097464
lsls r0, r5, 3
ldr r1, _08097478
adds r4, r0, r1
ldrb r0, [r4, 0x4]
cmp r0, 0xFF
beq _0809744C
bl sub_8097FA8
_0809744C:
ldrb r0, [r4, 0x5]
cmp r0, 0xFF
beq _08097456
bl sub_8097FA8
_08097456:
cmp r5, 0x9
bne _08097460
movs r0, 0x1F
bl sub_8097FA8
_08097460:
bl sub_8097FF8
_08097464:
lsrs r2, r6, 16
movs r0, 0
movs r1, 0x2D
adds r3, r7, 0
bl sub_800199C
_08097470:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08097478: .4byte gStoryMissionText
thumb_func_end sub_8097418
.align 2,0

35
include/code_8094F88.h Normal file
View File

@ -0,0 +1,35 @@
#ifndef GUARD_CODE_8094F88_H
#define GUARD_CODE_8094F88_H
struct unkStruct_203B480
{
u8 unk0;
struct unkPokeSubStruct_4 unk4;
u32 unk8;
u32 unkC;
u32 unk10;
u32 unk14;
u32 unk18;
u32 unk1C;
u8 unk20;
u8 unk21;
u8 unk22;
u32 unk24;
u32 unk28;
u8 unk2C;
u8 unk2D;
};
struct unkStruct_203B484
{
u32 unk0;
struct PokemonStruct unk4;
};
struct unkStruct_203B48C
{
s32 unk0;
s32 unk4[0x20];
};
#endif

View File

@ -34,21 +34,21 @@ struct unkPokeSubStruct_C
struct PokemonStruct
{
// size: 0x58
u16 unk0; // recruited??
u8 unk2;
u8 unkHasNextStage; // set to a random value?
struct unkPokeSubStruct_4 unk4;
/* 0x0 */ u16 unk0; // recruited??
/* 0x1 */ u8 unk2;
/* 0x3 */ u8 unkHasNextStage; // set to a random value?
/* 0x4 */ struct unkPokeSubStruct_4 unk4;
/* 0x8 */ s16 speciesNum; // species #
struct unkPokeSubStruct_C unkC[2];
/* 0xC */ struct unkPokeSubStruct_C unkC[2];
/* 0x14 */ s16 IQ;
/* 0x16 */ u16 pokeHP; // HP
/* 0x18 */ struct Offense offense;
u32 unk1C;
u32 IQSkills;
u8 unk24;
u8 fill25[3];
struct HeldItem heldItem;
struct PokemonMove moves[MAX_MON_MOVES];
/* 0x1C */ u32 unk1C;
/* 0x20 */ u32 IQSkills;
/* 0x24 */ u8 unk24;
/* 0x25 */ u8 fill25[3];
/* 0x28 */ struct HeldItem heldItem;
/* 0x2C */ struct PokemonMove moves[MAX_MON_MOVES];
/* 0x4C */ u8 name[POKEMON_NAME_LENGTH];
};

View File

@ -299,8 +299,11 @@ SECTIONS {
src/play_time.o(.text);
src/code_8094F88.o(.text);
asm/code_8095014.o(.text);
src/code_8095824.o(.text);
src/code_80958E8.o(.text);
asm/code_80958E8.o(.text);
src/code_80972F4.o(.text);
asm/code_8097318.o(.text);
src/code_809747C.o(.text);
asm/code_809747C.o(.text);
src/code_809747C_1.o(.text);

View File

@ -1,33 +1,18 @@
#include "global.h"
#include "pokemon.h"
#include "code_8094F88.h"
#include "memory.h"
struct unkStruct_203B480
{
//size of 48
u8 unk0;
u8 fill1[0x22 - 1];
u8 unk22;
u8 fill23[0x2D - 0x23];
u8 unk2D;
};
struct unkStruct_203B48C
{
s32 unk0;
s32 unk4[0x20];
};
extern struct unkStruct_203B480 gUnknown_2038C88;
extern u8 gUnknown_2039288;
extern u32 gUnknown_20392E8;
extern struct unkStruct_203B48C gUnknown_20393C0;
extern u8 *gUnknown_203B484;
extern u32 *gUnknown_203B488;
extern struct unkStruct_203B480 *gUnknown_203B480;
extern struct unkStruct_203B484 gUnknown_2039288;
extern struct unkStruct_203B484 *gUnknown_203B484;
extern struct unkStruct_203B48C gUnknown_20393C0;
extern struct unkStruct_203B48C *gUnknown_203B48C;
extern u32 *gUnknown_203B488;
extern u32 gUnknown_20392E8;
extern struct unkStruct_203B48C *gUnknown_203B48C; // def a pointer
void sub_80950BC(void)
@ -43,7 +28,7 @@ struct unkStruct_203B480 *sub_80950F8(void)
return &gUnknown_2038C88;
}
u8 *sub_8095100(void)
struct unkStruct_203B484 *sub_8095100(void)
{
return &gUnknown_2039288;
}

165
src/code_8095824.c Normal file
View File

@ -0,0 +1,165 @@
#include "global.h"
#include "pokemon.h"
#include "code_8094F88.h"
extern struct unkStruct_203B484 *gUnknown_203B484;
extern struct unkStruct_203B480 *gUnknown_203B480;
extern struct unkStruct_203B48C *gUnknown_203B48C;
extern void xxx_save_poke_sub_4_80902F4(struct unkStruct_8094924*, struct unkPokeSubStruct_4*);
extern void xxx_restore_poke_sub_4_8090314(struct unkStruct_8094924*, struct unkPokeSubStruct_4*);
extern void xxx_save_poke_sub_c_808F41C(struct unkStruct_8094924* a1, struct unkPokeSubStruct_C* unkC);
extern void xxx_restore_poke_sub_c_808F410(struct unkStruct_8094924*, struct unkPokeSubStruct_C*);
extern void SavePokemonMoves(struct unkStruct_8094924 *r0, struct PokemonMove *moveSet);
extern void RestorePokemonMoves(struct unkStruct_8094924 *r0, struct PokemonMove *moveSet);
void sub_8095824(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b);
void sub_8095774(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b);
extern u32 sub_8095324(u32);
u32 sub_80954B4(void)
{
if(sub_8095324(3) != 0)
return 1;
else
return 0;
}
u32 sub_80954CC(u8 *a, u32 b)
{
struct unkStruct_8094924 backup;
struct PokemonStruct *temp;
s32 index;
xxx_init_struct_8094924_restore_809485C(&backup, a, b);
for(index = 0; index < 0x20; index++)
{
sub_8095774(&backup, &gUnknown_203B480[index]);
}
RestoreIntegerBits(&backup, &gUnknown_203B484->unk0, 0x20);
temp = &gUnknown_203B484->unk4;
memset(temp, 0, sizeof(struct PokemonStruct));
RestoreIntegerBits(&backup, &temp->unk0, 2);
RestoreIntegerBits(&backup, &temp->unk2, 1);
RestoreIntegerBits(&backup, &temp->unkHasNextStage, 7);
xxx_restore_poke_sub_4_8090314(&backup, &temp->unk4);
RestoreIntegerBits(&backup, &temp->speciesNum, 9);
xxx_restore_poke_sub_c_808F410(&backup, &temp->unkC[0]);
xxx_restore_poke_sub_c_808F410(&backup, &temp->unkC[1]);
RestoreIntegerBits(&backup, &temp->IQ, 0xA);
RestoreIntegerBits(&backup, &temp->pokeHP, 0xA);
RestoreIntegerBits(&backup, &temp->offense.att[0], 8);
RestoreIntegerBits(&backup, &temp->offense.att[1], 8);
RestoreIntegerBits(&backup, &temp->offense.def[0], 8);
RestoreIntegerBits(&backup, &temp->offense.def[1], 8);
RestoreIntegerBits(&backup, &temp->unk1C, 0x18);
RestoreIntegerBits(&backup, &temp->IQSkills, 0x18);
RestoreIntegerBits(&backup, &temp->unk24, 4);
RestoreHeldItem(&backup, &temp->heldItem);
RestorePokemonMoves(&backup, temp->moves);
RestoreIntegerBits(&backup, temp->name, 0x50);
RestoreIntegerBits(&backup, &gUnknown_203B48C->unk0, 0x20);
for(index = 0; index < 0x20; index++)
{
RestoreIntegerBits(&backup, &gUnknown_203B48C->unk4[index], 0x20);
}
nullsub_102(&backup);
return backup.unk8;
}
u32 sub_8095624(u8 *a, u32 b)
{
struct unkStruct_8094924 backup;
struct PokemonStruct *temp;
s32 index;
xxx_init_struct_8094924_save_809486C(&backup, a, b);
for(index = 0; index < 0x20; index++)
{
sub_8095824(&backup, &gUnknown_203B480[index]);
}
SaveIntegerBits(&backup, &gUnknown_203B484->unk0, 0x20);
temp = &gUnknown_203B484->unk4;
SaveIntegerBits(&backup, &temp->unk0, 2);
SaveIntegerBits(&backup, &temp->unk2, 1);
SaveIntegerBits(&backup, &temp->unkHasNextStage, 7);
xxx_save_poke_sub_4_80902F4(&backup, &temp->unk4);
SaveIntegerBits(&backup, &temp->speciesNum, 9);
xxx_save_poke_sub_c_808F41C(&backup, &temp->unkC[0]);
xxx_save_poke_sub_c_808F41C(&backup, &temp->unkC[1]);
SaveIntegerBits(&backup, &temp->IQ, 0xA);
SaveIntegerBits(&backup, &temp->pokeHP, 0xA);
SaveIntegerBits(&backup, &temp->offense.att[0], 8);
SaveIntegerBits(&backup, &temp->offense.att[1], 8);
SaveIntegerBits(&backup, &temp->offense.def[0], 8);
SaveIntegerBits(&backup, &temp->offense.def[1], 8);
SaveIntegerBits(&backup, &temp->unk1C, 0x18);
SaveIntegerBits(&backup, &temp->IQSkills, 0x18);
SaveIntegerBits(&backup, &temp->unk24, 4);
SaveHeldItem(&backup, &temp->heldItem);
SavePokemonMoves(&backup, temp->moves);
SaveIntegerBits(&backup, temp->name, 0x50);
SaveIntegerBits(&backup, &gUnknown_203B48C->unk0, 0x20);
for(index = 0; index < 0x20; index++)
{
SaveIntegerBits(&backup, &gUnknown_203B48C->unk4[index], 0x20);
}
nullsub_102(&backup);
return backup.unk8;
}
void sub_8095774(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b)
{
u8 temp;
RestoreIntegerBits(a, &b->unk0, 4);
xxx_restore_poke_sub_4_8090314(a, &b->unk4);
RestoreIntegerBits(a, &b->unk8, 0x18);
RestoreIntegerBits(a, &b->unkC, 0x9);
RestoreIntegerBits(a, &b->unk10, 0x20);
RestoreIntegerBits(a, &b->unk14, 0x50);
RestoreIntegerBits(a, &b->unk20, 0x8);
RestoreIntegerBits(a, &b->unk21, 0x8);
RestoreIntegerBits(a, &b->unk22, 0x8);
RestoreIntegerBits(a, &b->unk24, 0x20);
RestoreIntegerBits(a, &b->unk28, 0x20);
RestoreIntegerBits(a, &b->unk2C, 0x8);
RestoreIntegerBits(a, &temp, 1);
b->unk2D = temp & 1;
}
void sub_8095824(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b)
{
u8 neg1;
u8 zero;
u8 *puVar2;
neg1 = -1;
zero = 0;
SaveIntegerBits(a, &b->unk0, 4);
xxx_save_poke_sub_4_80902F4(a, &b->unk4);
SaveIntegerBits(a, &b->unk8, 0x18);
SaveIntegerBits(a, &b->unkC, 0x9);
SaveIntegerBits(a, &b->unk10, 0x20);
SaveIntegerBits(a, &b->unk14, 0x50);
SaveIntegerBits(a, &b->unk20, 0x8);
SaveIntegerBits(a, &b->unk21, 0x8);
SaveIntegerBits(a, &b->unk22, 0x8);
SaveIntegerBits(a, &b->unk24, 0x20);
SaveIntegerBits(a, &b->unk28, 0x20);
SaveIntegerBits(a, &b->unk2C, 0x8);
if(b->unk2D != 0)
puVar2 = &neg1;
else
puVar2 = &zero;
SaveIntegerBits(a, puVar2, 1);
}
void sub_80958E4(u32 *a, u32 b)
{
*a = b;
}

200
src/code_80972F4.c Normal file
View File

@ -0,0 +1,200 @@
#include "global.h"
#include "pokemon.h"
#include "wonder_mail.h"
extern void xxx_save_poke_sub_4_80902F4(struct unkStruct_8094924*, struct unkPokeSubStruct_4*);
extern void xxx_restore_poke_sub_4_8090314(struct unkStruct_8094924*, struct unkPokeSubStruct_4*);
extern void sub_80015C0(u32, u32);
struct unkStruct_8097270
{
u8 unk0;
u8 unk1;
u8 unk2;
struct unkPokeSubStruct_4 unk4;
u32 unk8;
u16 unkC;
u16 unkE;
u8 unk10;
u8 unk11;
u8 unk12;
u8 unk13;
};
struct subStruct_203B490
{
// size: 0xC
struct unkPokeSubStruct_4 unk0;
u32 unk4;
u32 unk8;
};
struct unkStruct_203B490
{
// size: 0x330?
struct unkStruct_8097270 unk0[4];
struct unkStruct_8097270 unk50[8];
struct unkStruct_8097270 unkF0[8];
u8 unk190[0x28];
u8 unk1B8[0x78];
struct subStruct_203B490 unk230[16];
u8 unk2F0[0x38];
u8 unk328;
};
extern struct unkStruct_203B490 *gUnknown_203B490;
void sub_8097270(struct unkStruct_8094924 *a, struct unkStruct_8097270 *b);
void sub_80971EC(struct unkStruct_8094924 *a, struct unkStruct_8097270 *b);
extern s32 sub_8096EB0(void);
bool8 sub_8096F50(struct WonderMail *r0)
{
s32 index;
s32 temp2;
struct subStruct_203B490 *temp;
temp2 = sub_8096EB0();
for(index = 0; index < 0x10; index++)
{
temp = &gUnknown_203B490->unk230[index];
if(temp->unk0.unk4 == r0->dungeon)
if(temp->unk0.unk5 == r0->floor)
if(temp->unk4 == r0->unk8)
if(temp->unk8 == temp2)
return TRUE;
}
return FALSE;
}
u32 sub_8096FA0(u8 *r0, u32 size)
{
s32 index;
struct unkStruct_8094924 backup;
u32 temp;
xxx_init_struct_8094924_restore_809485C(&backup, r0, size);
for(index = 0; index < 4; index++)
{
sub_80971EC(&backup, &gUnknown_203B490->unk0[index]);
}
for(index = 0; index < 8; index++)
{
sub_80971EC(&backup, &gUnknown_203B490->unk50[index]);
}
for(index = 0; index < 8; index++)
{
sub_80971EC(&backup, &gUnknown_203B490->unkF0[index]);
}
for(index = 0; index < 0x38; index++)
{
RestoreIntegerBits(&backup, &temp, 1);
if(temp & 1)
gUnknown_203B490->unk2F0[index] = 1;
else
gUnknown_203B490->unk2F0[index] = 0;
}
RestoreIntegerBits(&backup, &temp, 1);
if(temp & 1)
gUnknown_203B490->unk328 = 1;
else
gUnknown_203B490->unk328 = 0;
RestoreIntegerBits(&backup, gUnknown_203B490->unk190, 0x140);
RestoreIntegerBits(&backup, gUnknown_203B490->unk1B8, 0x3C0);
for(index = 0; index < 0x10; index++)
{
RestoreIntegerBits(&backup, &gUnknown_203B490->unk230[index].unk8, 0x20);
RestoreIntegerBits(&backup, &gUnknown_203B490->unk230[index].unk4, 0x18);
xxx_restore_poke_sub_4_8090314(&backup, &gUnknown_203B490->unk230[index].unk0);
}
nullsub_102(&backup);
return backup.unk8;
}
u32 sub_80970D8(u8 *r0, u32 size)
{
s32 index;
struct unkStruct_8094924 backup;
u32 temp;
xxx_init_struct_8094924_save_809486C(&backup, r0, size);
for(index = 0; index < 4; index++)
{
sub_8097270(&backup, &gUnknown_203B490->unk0[index]);
}
for(index = 0; index < 8; index++)
{
sub_8097270(&backup, &gUnknown_203B490->unk50[index]);
}
for(index = 0; index < 8; index++)
{
sub_8097270(&backup, &gUnknown_203B490->unkF0[index]);
}
for(index = 0; index < 0x38; index++)
{
if(gUnknown_203B490->unk2F0[index] != 0)
temp = -1;
else
temp = 0;
SaveIntegerBits(&backup, &temp, 1);
}
if(gUnknown_203B490->unk328 != 0)
temp = -1;
else
temp = 0;
SaveIntegerBits(&backup, &temp, 1);
SaveIntegerBits(&backup, gUnknown_203B490->unk190, 0x140);
SaveIntegerBits(&backup, gUnknown_203B490->unk1B8, 0x3C0);
for(index = 0; index < 0x10; index++)
{
SaveIntegerBits(&backup, &gUnknown_203B490->unk230[index].unk8, 0x20);
SaveIntegerBits(&backup, &gUnknown_203B490->unk230[index].unk4, 0x18);
xxx_save_poke_sub_4_80902F4(&backup, &gUnknown_203B490->unk230[index].unk0);
}
nullsub_102(&backup);
return backup.unk8;
}
void sub_80971EC(struct unkStruct_8094924 *a, struct unkStruct_8097270 *b)
{
RestoreIntegerBits(a, &b->unk0, 4);
RestoreIntegerBits(a, &b->unk1, 3);
RestoreIntegerBits(a, &b->unk2, 4);
RestoreIntegerBits(a, &b->unkC, 9);
RestoreIntegerBits(a, &b->unkE, 9);
RestoreIntegerBits(a, &b->unk10, 8);
RestoreIntegerBits(a, &b->unk11, 4);
RestoreIntegerBits(a, &b->unk12, 8);
RestoreIntegerBits(a, &b->unk13, 6);
RestoreIntegerBits(a, &b->unk8, 0x18);
xxx_restore_poke_sub_4_8090314(a, &b->unk4);
}
void sub_8097270(struct unkStruct_8094924 *a, struct unkStruct_8097270 *b)
{
SaveIntegerBits(a, &b->unk0, 4);
SaveIntegerBits(a, &b->unk1, 3);
SaveIntegerBits(a, &b->unk2, 4);
SaveIntegerBits(a, &b->unkC, 9);
SaveIntegerBits(a, &b->unkE, 9);
SaveIntegerBits(a, &b->unk10, 8);
SaveIntegerBits(a, &b->unk11, 4);
SaveIntegerBits(a, &b->unk12, 8);
SaveIntegerBits(a, &b->unk13, 6);
SaveIntegerBits(a, &b->unk8, 0x18);
xxx_save_poke_sub_4_80902F4(a, &b->unk4);
}
void sub_80972F4(void)
{
sub_80015C0(0, 0x2B);
sub_80015C0(0, 0x2C);
sub_80015C0(0, 0x2D);
}
void nullsub_128(void)
{}

View File

@ -8,6 +8,7 @@
#include "friend_rescue.h"
#include "sub_8095228.h"
#include "item.h"
#include "code_8094F88.h"
extern struct TeamInventory *gTeamInventory_203B460;
extern u8 *gUnknown_203B484;
@ -488,7 +489,7 @@ void sub_8033DBC(void)
sub_80951FC(&temp.unk0);
temp2 = sub_8095228(sub_809539C(1, temp.unk10));
temp2->unk0 = 7;
MemoryFill8((u8 *)gUnknown_203B484, 0, 0x5C);
MemoryFill8((u8 *)gUnknown_203B484, 0, sizeof(struct unkStruct_203B484));
SetFriendRescueMenuState(0x40);
break;
case 24:

View File

@ -9,17 +9,10 @@
#include "pokemon.h"
#include "save.h"
#include "code_800D090.h"
#include "code_8094F88.h"
extern const struct FileArchive gTitleMenuFileArchive;
struct unkStruct_203B484
{
u8 fill0[0xC];
/* 0xC */ s16 speciesIndex;
u8 fillE[0x50 - 0xE];
/* 0x50 */ u8 helperName[10];
};
struct LoadScreen
{
// size: 0x27c
@ -373,9 +366,9 @@ void DrawLoadScreenText(void)
if (iVar2 == 0xf1207){
// NOTE: very hacky match here but needed var here to match
temp2 = gUnknown_203B484;
if(temp2->speciesIndex != SPECIES_NONE) {
sub_808D930(speciesHelper,temp2->speciesIndex);
sub_80922B4(nameHelper,temp2->helperName,POKEMON_NAME_LENGTH);
if(temp2->unk4.speciesNum != SPECIES_NONE) {
sub_808D930(speciesHelper,temp2->unk4.speciesNum);
sub_80922B4(nameHelper,temp2->unk4.name,POKEMON_NAME_LENGTH);
sprintf_2(gLoadScreen->formattedHelperInfo,gHelperInfoPlaceholder,nameHelper,speciesHelper); // %s (%s)
}
else