3956 lines
63 KiB
ArmAsm
3956 lines
63 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
@ file boundary?
|
|
|
|
thumb_func_start sub_8095050
|
|
sub_8095050: @ 8095050
|
|
push {r4,lr}
|
|
ldr r4, _08095088 @ =gUnknown_2039828
|
|
ldr r0, _0809508C @ =0x00000974
|
|
bl Alloc
|
|
str r0, [r4]
|
|
cmp r0, 0
|
|
beq _0809509C
|
|
ldr r0, _08095090 @ =gUnknown_83D35D4
|
|
bl AddWindow8Bit
|
|
adds r1, r0, 0
|
|
ldr r0, _08095094 @ =sPSSData
|
|
ldr r0, [r0]
|
|
ldr r2, _08095098 @ =0x000021f0
|
|
adds r0, r2
|
|
strh r1, [r0]
|
|
lsls r0, r1, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xFF
|
|
beq _0809509C
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0x1
|
|
b _0809509E
|
|
.align 2, 0
|
|
_08095088: .4byte gUnknown_2039828
|
|
_0809508C: .4byte 0x00000974
|
|
_08095090: .4byte gUnknown_83D35D4
|
|
_08095094: .4byte sPSSData
|
|
_08095098: .4byte 0x000021f0
|
|
_0809509C:
|
|
movs r0, 0
|
|
_0809509E:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8095050
|
|
|
|
thumb_func_start sub_80950A4
|
|
sub_80950A4: @ 80950A4
|
|
push {lr}
|
|
ldr r0, _080950B8 @ =gUnknown_2039828
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _080950B2
|
|
bl Free
|
|
_080950B2:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080950B8: .4byte gUnknown_2039828
|
|
thumb_func_end sub_80950A4
|
|
|
|
thumb_func_start sub_80950BC
|
|
sub_80950BC: @ 80950BC
|
|
ldr r2, _080950CC @ =gUnknown_2039828
|
|
ldr r1, [r2]
|
|
movs r3, 0
|
|
strb r0, [r1]
|
|
ldr r0, [r2]
|
|
strb r3, [r0, 0x1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080950CC: .4byte gUnknown_2039828
|
|
thumb_func_end sub_80950BC
|
|
|
|
thumb_func_start sub_80950D0
|
|
sub_80950D0: @ 80950D0
|
|
push {lr}
|
|
ldr r0, _080950E8 @ =gUnknown_2039828
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x5
|
|
bhi _08095130
|
|
lsls r0, 2
|
|
ldr r1, _080950EC @ =_080950F0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080950E8: .4byte gUnknown_2039828
|
|
_080950EC: .4byte _080950F0
|
|
.align 2, 0
|
|
_080950F0:
|
|
.4byte _08095108
|
|
.4byte _0809510E
|
|
.4byte _08095114
|
|
.4byte _0809511A
|
|
.4byte _08095120
|
|
.4byte _08095126
|
|
_08095108:
|
|
bl sub_8095138
|
|
b _0809512A
|
|
_0809510E:
|
|
bl sub_8095234
|
|
b _0809512A
|
|
_08095114:
|
|
bl sub_80952A0
|
|
b _0809512A
|
|
_0809511A:
|
|
bl sub_8095314
|
|
b _0809512A
|
|
_08095120:
|
|
bl sub_8095394
|
|
b _0809512A
|
|
_08095126:
|
|
bl sub_80953BC
|
|
_0809512A:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _08095132
|
|
_08095130:
|
|
movs r0, 0
|
|
_08095132:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80950D0
|
|
|
|
thumb_func_start sub_8095138
|
|
sub_8095138: @ 8095138
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
ldr r6, _08095150 @ =gUnknown_2039828
|
|
ldr r1, [r6]
|
|
ldrb r0, [r1, 0x1]
|
|
cmp r0, 0x1
|
|
beq _08095168
|
|
cmp r0, 0x1
|
|
bgt _08095154
|
|
cmp r0, 0
|
|
beq _0809515A
|
|
b _08095228
|
|
.align 2, 0
|
|
_08095150: .4byte gUnknown_2039828
|
|
_08095154:
|
|
cmp r0, 0x2
|
|
beq _08095214
|
|
b _08095228
|
|
_0809515A:
|
|
movs r0, 0
|
|
bl HideBg
|
|
movs r0, 0x80
|
|
bl LoadMonIconPalettesAt
|
|
b _080951F8
|
|
_08095168:
|
|
adds r0, r1, 0x2
|
|
adds r1, 0x3
|
|
bl sub_8094CD4
|
|
ldr r1, [r6]
|
|
ldrb r0, [r1, 0x2]
|
|
strb r0, [r1, 0x4]
|
|
ldr r1, [r6]
|
|
ldrb r0, [r1, 0x3]
|
|
strb r0, [r1, 0x5]
|
|
ldr r4, _08095204 @ =0xfffffc00
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
movs r0, 0x20
|
|
str r0, [sp]
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
ldr r5, _08095208 @ =sPSSData
|
|
ldr r0, [r5]
|
|
ldr r4, _0809520C @ =0x000021f0
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer8Bit
|
|
ldr r1, [r6]
|
|
ldrb r0, [r1, 0x2]
|
|
ldrb r1, [r1, 0x3]
|
|
bl sub_80956A4
|
|
movs r0, 0
|
|
movs r1, 0x4
|
|
movs r2, 0x1
|
|
bl SetBgAttribute
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl PutWindowTilemap
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram8Bit
|
|
movs r0, 0xFC
|
|
lsls r0, 6
|
|
ldr r2, _08095210 @ =0x00007fff
|
|
movs r1, 0x8
|
|
bl BlendPalettes
|
|
movs r0, 0x2
|
|
bl sub_8094D14
|
|
movs r0, 0x8
|
|
movs r1, 0x80
|
|
bl SetGpuRegBits
|
|
_080951F8:
|
|
ldr r1, [r6]
|
|
ldrb r0, [r1, 0x1]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x1]
|
|
b _08095228
|
|
.align 2, 0
|
|
_08095204: .4byte 0xfffffc00
|
|
_08095208: .4byte sPSSData
|
|
_0809520C: .4byte 0x000021f0
|
|
_08095210: .4byte 0x00007fff
|
|
_08095214:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08095228
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0
|
|
b _0809522A
|
|
_08095228:
|
|
movs r0, 0x1
|
|
_0809522A:
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8095138
|
|
|
|
thumb_func_start sub_8095234
|
|
sub_8095234: @ 8095234
|
|
push {r4,lr}
|
|
ldr r4, _0809524C @ =gUnknown_2039828
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0x1
|
|
beq _0809525E
|
|
cmp r0, 0x1
|
|
bgt _08095250
|
|
cmp r0, 0
|
|
beq _08095256
|
|
b _08095298
|
|
.align 2, 0
|
|
_0809524C: .4byte gUnknown_2039828
|
|
_08095250:
|
|
cmp r0, 0x2
|
|
beq _08095272
|
|
b _08095298
|
|
_08095256:
|
|
movs r0, 0
|
|
bl HideBg
|
|
b _08095268
|
|
_0809525E:
|
|
bl sub_8095A58
|
|
movs r0, 0
|
|
bl sub_8094D14
|
|
_08095268:
|
|
ldr r1, [r4]
|
|
ldrb r0, [r1, 0x1]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x1]
|
|
b _08095298
|
|
_08095272:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08095298
|
|
bl sub_8094D40
|
|
movs r0, 0x3
|
|
bl stdpal_get
|
|
movs r1, 0xD0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0
|
|
b _0809529A
|
|
_08095298:
|
|
movs r0, 0x1
|
|
_0809529A:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8095234
|
|
|
|
thumb_func_start sub_80952A0
|
|
sub_80952A0: @ 80952A0
|
|
push {r4,lr}
|
|
ldr r4, _080952B4 @ =gUnknown_2039828
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0
|
|
beq _080952B8
|
|
cmp r0, 0x1
|
|
beq _08095300
|
|
b _0809530A
|
|
.align 2, 0
|
|
_080952B4: .4byte gUnknown_2039828
|
|
_080952B8:
|
|
bl sub_80924A8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809530A
|
|
ldr r1, [r4]
|
|
adds r0, r1, 0x6
|
|
adds r1, 0x7
|
|
bl sub_8094CD4
|
|
bl sub_8095520
|
|
ldr r1, [r4]
|
|
ldrb r0, [r1, 0x6]
|
|
strb r0, [r1, 0x4]
|
|
ldr r1, [r4]
|
|
ldrb r0, [r1, 0x7]
|
|
strb r0, [r1, 0x5]
|
|
ldr r0, _080952F8 @ =sPSSData
|
|
ldr r0, [r0]
|
|
ldr r1, _080952FC @ =0x000021f0
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram8Bit
|
|
ldr r1, [r4]
|
|
ldrb r0, [r1, 0x1]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x1]
|
|
b _0809530A
|
|
.align 2, 0
|
|
_080952F8: .4byte sPSSData
|
|
_080952FC: .4byte 0x000021f0
|
|
_08095300:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _0809530C
|
|
_0809530A:
|
|
movs r0, 0x1
|
|
_0809530C:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80952A0
|
|
|
|
thumb_func_start sub_8095314
|
|
sub_8095314: @ 8095314
|
|
push {r4,lr}
|
|
ldr r4, _0809532C @ =gUnknown_2039828
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0x1
|
|
beq _08095342
|
|
cmp r0, 0x1
|
|
bgt _08095330
|
|
cmp r0, 0
|
|
beq _08095336
|
|
b _0809538C
|
|
.align 2, 0
|
|
_0809532C: .4byte gUnknown_2039828
|
|
_08095330:
|
|
cmp r0, 0x2
|
|
beq _0809536E
|
|
b _0809538C
|
|
_08095336:
|
|
bl sub_80957C8
|
|
bl sub_80958A0
|
|
movs r0, 0
|
|
b _08095360
|
|
_08095342:
|
|
bl DoMonPlaceChange
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809538C
|
|
movs r0, 0x3
|
|
bl sub_8094D14
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
movs r0, 0
|
|
movs r2, 0x8
|
|
bl sub_8095780
|
|
movs r0, 0x1
|
|
_08095360:
|
|
bl sub_8092BAC
|
|
ldr r1, [r4]
|
|
ldrb r0, [r1, 0x1]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x1]
|
|
b _0809538C
|
|
_0809536E:
|
|
bl sub_8095790
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl DoMonPlaceChange
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r4, 0
|
|
bne _0809538C
|
|
cmp r0, 0
|
|
bne _0809538C
|
|
movs r0, 0
|
|
b _0809538E
|
|
_0809538C:
|
|
movs r0, 0x1
|
|
_0809538E:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8095314
|
|
|
|
thumb_func_start sub_8095394
|
|
sub_8095394: @ 8095394
|
|
push {r4,lr}
|
|
bl sub_80924A8
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl sub_8095790
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r4, 0
|
|
bne _080953B4
|
|
cmp r0, 0
|
|
bne _080953B4
|
|
movs r0, 0
|
|
b _080953B6
|
|
_080953B4:
|
|
movs r0, 0x1
|
|
_080953B6:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8095394
|
|
|
|
thumb_func_start sub_80953BC
|
|
sub_80953BC: @ 80953BC
|
|
push {r4,lr}
|
|
ldr r4, _080953D4 @ =gUnknown_2039828
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0x1
|
|
beq _080953FA
|
|
cmp r0, 0x1
|
|
bgt _080953D8
|
|
cmp r0, 0
|
|
beq _080953E2
|
|
b _0809546A
|
|
.align 2, 0
|
|
_080953D4: .4byte gUnknown_2039828
|
|
_080953D8:
|
|
cmp r0, 0x2
|
|
beq _08095426
|
|
cmp r0, 0x3
|
|
beq _08095444
|
|
b _0809546A
|
|
_080953E2:
|
|
bl sub_80959A8
|
|
movs r1, 0xFF
|
|
lsls r1, 8
|
|
movs r0, 0
|
|
movs r2, 0x8
|
|
bl sub_8095780
|
|
movs r0, 0
|
|
bl sub_8092BAC
|
|
b _0809543A
|
|
_080953FA:
|
|
bl DoMonPlaceChange
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809546A
|
|
bl sub_8095790
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809546A
|
|
bl sub_8095918
|
|
movs r0, 0x2
|
|
bl sub_8094D14
|
|
movs r0, 0x1
|
|
bl sub_8092BAC
|
|
movs r0, 0
|
|
bl HideBg
|
|
b _0809543A
|
|
_08095426:
|
|
bl DoMonPlaceChange
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809546A
|
|
movs r0, 0
|
|
bl sub_8094D14
|
|
bl sub_8095A58
|
|
_0809543A:
|
|
ldr r1, [r4]
|
|
ldrb r0, [r1, 0x1]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x1]
|
|
b _0809546A
|
|
_08095444:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809546A
|
|
movs r0, 0x3
|
|
bl stdpal_get
|
|
movs r1, 0xD0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
bl sub_8094D40
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0
|
|
b _0809546C
|
|
_0809546A:
|
|
movs r0, 0x1
|
|
_0809546C:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80953BC
|
|
|
|
thumb_func_start sub_8095474
|
|
sub_8095474: @ 8095474
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r0, 0
|
|
cmp r0, 0x1
|
|
beq _080954B0
|
|
cmp r0, 0x1
|
|
bgt _0809548A
|
|
cmp r0, 0
|
|
beq _08095494
|
|
b _08095518
|
|
_0809548A:
|
|
cmp r1, 0x2
|
|
beq _080954D0
|
|
cmp r1, 0x3
|
|
beq _080954F0
|
|
b _08095518
|
|
_08095494:
|
|
ldr r0, _080954AC @ =gUnknown_2039828
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, 0x9]
|
|
cmp r0, 0
|
|
beq _080954FE
|
|
subs r0, 0x1
|
|
strb r0, [r1, 0x9]
|
|
movs r1, 0x80
|
|
lsls r1, 3
|
|
movs r0, 0
|
|
b _080954E4
|
|
.align 2, 0
|
|
_080954AC: .4byte gUnknown_2039828
|
|
_080954B0:
|
|
ldr r0, _080954CC @ =gUnknown_2039828
|
|
ldr r1, [r0]
|
|
ldrb r2, [r1, 0x9]
|
|
ldrb r0, [r1, 0xB]
|
|
adds r0, r2, r0
|
|
cmp r0, 0x4
|
|
bgt _080954FE
|
|
adds r0, r2, 0x1
|
|
strb r0, [r1, 0x9]
|
|
movs r1, 0xFC
|
|
lsls r1, 8
|
|
movs r0, 0
|
|
b _080954E4
|
|
.align 2, 0
|
|
_080954CC: .4byte gUnknown_2039828
|
|
_080954D0:
|
|
ldr r0, _080954EC @ =gUnknown_2039828
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, 0x8]
|
|
cmp r0, 0
|
|
beq _080954FE
|
|
subs r0, 0x1
|
|
strb r0, [r1, 0x8]
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
movs r1, 0
|
|
_080954E4:
|
|
movs r2, 0x6
|
|
bl sub_8095780
|
|
b _08095518
|
|
.align 2, 0
|
|
_080954EC: .4byte gUnknown_2039828
|
|
_080954F0:
|
|
ldr r0, _08095504 @ =gUnknown_2039828
|
|
ldr r1, [r0]
|
|
ldrb r2, [r1, 0x8]
|
|
ldrb r0, [r1, 0xA]
|
|
adds r0, r2, r0
|
|
cmp r0, 0x5
|
|
ble _08095508
|
|
_080954FE:
|
|
movs r0, 0
|
|
b _0809551A
|
|
.align 2, 0
|
|
_08095504: .4byte gUnknown_2039828
|
|
_08095508:
|
|
adds r0, r2, 0x1
|
|
strb r0, [r1, 0x8]
|
|
movs r0, 0xFC
|
|
lsls r0, 8
|
|
movs r1, 0
|
|
movs r2, 0x6
|
|
bl sub_8095780
|
|
_08095518:
|
|
movs r0, 0x1
|
|
_0809551A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8095474
|
|
|
|
thumb_func_start sub_8095520
|
|
sub_8095520: @ 8095520
|
|
push {r4-r7,lr}
|
|
ldr r6, _080955C0 @ =gUnknown_2039828
|
|
ldr r2, [r6]
|
|
ldrb r3, [r2, 0x2]
|
|
ldrb r5, [r2, 0x6]
|
|
subs r1, r3, r5
|
|
cmp r1, 0
|
|
bge _08095532
|
|
negs r1, r1
|
|
_08095532:
|
|
ldrb r0, [r2, 0x4]
|
|
subs r0, r3, r0
|
|
cmp r0, 0
|
|
bge _0809553C
|
|
negs r0, r0
|
|
_0809553C:
|
|
subs r0, r1, r0
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
ldrb r1, [r2, 0x3]
|
|
ldrb r0, [r2, 0x7]
|
|
subs r3, r1, r0
|
|
cmp r3, 0
|
|
bge _0809554E
|
|
negs r3, r3
|
|
_0809554E:
|
|
ldrb r2, [r2, 0x5]
|
|
subs r0, r1, r2
|
|
cmp r0, 0
|
|
bge _08095558
|
|
negs r0, r0
|
|
_08095558:
|
|
subs r0, r3, r0
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
lsls r0, r4, 16
|
|
asrs r4, r0, 16
|
|
cmp r4, 0
|
|
ble _0809556C
|
|
adds r0, r5, 0
|
|
bl sub_80955C4
|
|
_0809556C:
|
|
cmp r4, 0
|
|
bge _08095588
|
|
ldr r2, [r6]
|
|
ldrb r0, [r2, 0x4]
|
|
ldrb r1, [r2, 0x3]
|
|
ldrb r2, [r2, 0x5]
|
|
bl sub_8095634
|
|
ldr r2, [r6]
|
|
ldrb r0, [r2, 0x6]
|
|
ldrb r1, [r2, 0x3]
|
|
ldrb r2, [r2, 0x5]
|
|
bl sub_80955C4
|
|
_08095588:
|
|
lsls r0, r7, 16
|
|
asrs r4, r0, 16
|
|
cmp r4, 0
|
|
ble _0809559C
|
|
ldr r2, [r6]
|
|
ldrb r0, [r2, 0x7]
|
|
ldrb r1, [r2, 0x2]
|
|
ldrb r2, [r2, 0x4]
|
|
bl sub_80955FC
|
|
_0809559C:
|
|
cmp r4, 0
|
|
bge _080955B8
|
|
ldr r2, [r6]
|
|
ldrb r0, [r2, 0x5]
|
|
ldrb r1, [r2, 0x2]
|
|
ldrb r2, [r2, 0x4]
|
|
bl sub_809566C
|
|
ldr r2, [r6]
|
|
ldrb r0, [r2, 0x7]
|
|
ldrb r1, [r2, 0x2]
|
|
ldrb r2, [r2, 0x4]
|
|
bl sub_80955FC
|
|
_080955B8:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080955C0: .4byte gUnknown_2039828
|
|
thumb_func_end sub_8095520
|
|
|
|
thumb_func_start sub_80955C4
|
|
sub_80955C4: @ 80955C4
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
adds r1, r4, 0
|
|
lsls r2, 24
|
|
lsrs r5, r2, 24
|
|
adds r0, r5, 0
|
|
cmp r4, r5
|
|
bls _080955E2
|
|
adds r4, r5, 0
|
|
adds r5, r1, 0
|
|
cmp r0, r5
|
|
bhi _080955F4
|
|
_080955E2:
|
|
adds r1, r4, 0
|
|
adds r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r6, 0
|
|
bl sub_80956A4
|
|
cmp r4, r5
|
|
bls _080955E2
|
|
_080955F4:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80955C4
|
|
|
|
thumb_func_start sub_80955FC
|
|
sub_80955FC: @ 80955FC
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
adds r1, r4, 0
|
|
lsls r2, 24
|
|
lsrs r5, r2, 24
|
|
adds r0, r5, 0
|
|
cmp r4, r5
|
|
bls _0809561A
|
|
adds r4, r5, 0
|
|
adds r5, r1, 0
|
|
cmp r0, r5
|
|
bhi _0809562C
|
|
_0809561A:
|
|
adds r0, r4, 0
|
|
adds r1, r0, 0x1
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
adds r1, r6, 0
|
|
bl sub_80956A4
|
|
cmp r4, r5
|
|
bls _0809561A
|
|
_0809562C:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80955FC
|
|
|
|
thumb_func_start sub_8095634
|
|
sub_8095634: @ 8095634
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
adds r1, r4, 0
|
|
lsls r2, 24
|
|
lsrs r5, r2, 24
|
|
adds r0, r5, 0
|
|
cmp r4, r5
|
|
bls _08095652
|
|
adds r4, r5, 0
|
|
adds r5, r1, 0
|
|
cmp r0, r5
|
|
bhi _08095664
|
|
_08095652:
|
|
adds r1, r4, 0
|
|
adds r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r6, 0
|
|
bl sub_809572C
|
|
cmp r4, r5
|
|
bls _08095652
|
|
_08095664:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8095634
|
|
|
|
thumb_func_start sub_809566C
|
|
sub_809566C: @ 809566C
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
adds r1, r4, 0
|
|
lsls r2, 24
|
|
lsrs r5, r2, 24
|
|
adds r0, r5, 0
|
|
cmp r4, r5
|
|
bls _0809568A
|
|
adds r4, r5, 0
|
|
adds r5, r1, 0
|
|
cmp r0, r5
|
|
bhi _0809569C
|
|
_0809568A:
|
|
adds r0, r4, 0
|
|
adds r1, r0, 0x1
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
adds r1, r6, 0
|
|
bl sub_809572C
|
|
cmp r4, r5
|
|
bls _0809568A
|
|
_0809569C:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_809566C
|
|
|
|
thumb_func_start sub_80956A4
|
|
sub_80956A4: @ 80956A4
|
|
push {r4-r7,lr}
|
|
sub sp, 0x1C
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r0, r1, 1
|
|
adds r7, r0, r1
|
|
lsls r4, r7, 1
|
|
adds r4, r6, r4
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0x41
|
|
bl GetCurrentBoxMonData
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl GetCurrentBoxMonData
|
|
adds r1, r0, 0
|
|
cmp r5, 0
|
|
beq _0809571A
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl GetMonIconPtr
|
|
adds r4, r0, 0
|
|
adds r0, r5, 0
|
|
bl GetValidMonIconPalIndex
|
|
adds r0, 0x8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _08095724 @ =sPSSData
|
|
ldr r1, [r1]
|
|
ldr r2, _08095728 @ =0x000021f0
|
|
adds r1, r2
|
|
ldrb r3, [r1]
|
|
movs r2, 0x20
|
|
str r2, [sp]
|
|
str r2, [sp, 0x4]
|
|
lsls r1, r6, 1
|
|
adds r1, r6
|
|
lsls r1, 3
|
|
str r1, [sp, 0x8]
|
|
lsls r1, r7, 3
|
|
str r1, [sp, 0xC]
|
|
str r2, [sp, 0x10]
|
|
str r2, [sp, 0x14]
|
|
str r0, [sp, 0x18]
|
|
adds r0, r3, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl BlitBitmapRectToWindow4BitTo8Bit
|
|
_0809571A:
|
|
add sp, 0x1C
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08095724: .4byte sPSSData
|
|
_08095728: .4byte 0x000021f0
|
|
thumb_func_end sub_80956A4
|
|
|
|
thumb_func_start sub_809572C
|
|
sub_809572C: @ 809572C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r0, r1, 1
|
|
adds r5, r0, r1
|
|
lsls r0, r5, 1
|
|
adds r0, r4, r0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x41
|
|
bl GetCurrentBoxMonData
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _0809576E
|
|
ldr r0, _08095778 @ =sPSSData
|
|
ldr r0, [r0]
|
|
ldr r1, _0809577C @ =0x000021f0
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r2, r4, 1
|
|
adds r2, r4
|
|
lsls r2, 3
|
|
lsls r3, r5, 3
|
|
movs r1, 0x20
|
|
str r1, [sp]
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0
|
|
bl FillWindowPixelRect8Bit
|
|
_0809576E:
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08095778: .4byte sPSSData
|
|
_0809577C: .4byte 0x000021f0
|
|
thumb_func_end sub_809572C
|
|
|
|
thumb_func_start sub_8095780
|
|
sub_8095780: @ 8095780
|
|
ldr r3, _0809578C @ =gUnknown_2039828
|
|
ldr r3, [r3]
|
|
strh r0, [r3, 0xC]
|
|
strh r1, [r3, 0xE]
|
|
strh r2, [r3, 0x10]
|
|
bx lr
|
|
.align 2, 0
|
|
_0809578C: .4byte gUnknown_2039828
|
|
thumb_func_end sub_8095780
|
|
|
|
thumb_func_start sub_8095790
|
|
sub_8095790: @ 8095790
|
|
push {r4,lr}
|
|
ldr r4, _080957C4 @ =gUnknown_2039828
|
|
ldr r1, [r4]
|
|
ldrh r0, [r1, 0x10]
|
|
cmp r0, 0
|
|
beq _080957BA
|
|
ldrh r1, [r1, 0xC]
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
bl ChangeBgX
|
|
ldr r0, [r4]
|
|
ldrh r1, [r0, 0xE]
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
bl ChangeBgY
|
|
ldr r1, [r4]
|
|
ldrh r0, [r1, 0x10]
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0x10]
|
|
_080957BA:
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x10]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080957C4: .4byte gUnknown_2039828
|
|
thumb_func_end sub_8095790
|
|
|
|
thumb_func_start sub_80957C8
|
|
sub_80957C8: @ 80957C8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r4, _0809589C @ =gUnknown_2039828
|
|
ldr r1, [r4]
|
|
ldrb r0, [r1, 0x4]
|
|
ldrb r2, [r1, 0x2]
|
|
cmp r0, r2
|
|
bls _080957E0
|
|
adds r0, r2, 0
|
|
_080957E0:
|
|
strb r0, [r1, 0x8]
|
|
ldr r1, [r4]
|
|
ldrb r0, [r1, 0x5]
|
|
ldrb r2, [r1, 0x3]
|
|
cmp r0, r2
|
|
bls _080957EE
|
|
adds r0, r2, 0
|
|
_080957EE:
|
|
strb r0, [r1, 0x9]
|
|
ldr r2, [r4]
|
|
ldrb r1, [r2, 0x2]
|
|
ldrb r0, [r2, 0x4]
|
|
subs r0, r1, r0
|
|
cmp r0, 0
|
|
bge _080957FE
|
|
negs r0, r0
|
|
_080957FE:
|
|
adds r0, 0x1
|
|
strb r0, [r2, 0xA]
|
|
ldr r2, [r4]
|
|
ldrb r1, [r2, 0x3]
|
|
ldrb r0, [r2, 0x5]
|
|
subs r0, r1, r0
|
|
cmp r0, 0
|
|
bge _08095810
|
|
negs r0, r0
|
|
_08095810:
|
|
adds r0, 0x1
|
|
strb r0, [r2, 0xB]
|
|
bl StorageGetCurrentBox
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
movs r6, 0
|
|
ldr r0, [r4]
|
|
ldrb r2, [r0, 0x8]
|
|
ldrb r1, [r0, 0xA]
|
|
adds r2, r1
|
|
mov r8, r2
|
|
ldrb r1, [r0, 0x9]
|
|
ldrb r0, [r0, 0xB]
|
|
adds r0, r1
|
|
mov r9, r0
|
|
adds r2, r1, 0
|
|
cmp r2, r9
|
|
bge _0809588C
|
|
_08095838:
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
ldr r3, _0809589C @ =gUnknown_2039828
|
|
ldr r1, [r3]
|
|
lsls r0, 1
|
|
ldrb r3, [r1, 0x8]
|
|
adds r0, r3
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldrb r4, [r1, 0x8]
|
|
adds r7, r2, 0x1
|
|
cmp r4, r8
|
|
bge _08095886
|
|
mov r0, r8
|
|
subs r4, r0, r4
|
|
_08095856:
|
|
mov r0, r10
|
|
adds r1, r5, 0
|
|
bl GetBoxedMonPtr
|
|
adds r1, r0, 0
|
|
ldr r2, _0809589C @ =gUnknown_2039828
|
|
ldr r0, [r2]
|
|
lsls r2, r6, 2
|
|
adds r2, r6
|
|
lsls r2, 4
|
|
adds r0, r2
|
|
adds r0, 0x14
|
|
movs r2, 0x50
|
|
bl memcpy
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bne _08095856
|
|
_08095886:
|
|
adds r2, r7, 0
|
|
cmp r2, r9
|
|
blt _08095838
|
|
_0809588C:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809589C: .4byte gUnknown_2039828
|
|
thumb_func_end sub_80957C8
|
|
|
|
thumb_func_start sub_80958A0
|
|
sub_80958A0: @ 80958A0
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
ldr r4, _08095914 @ =gUnknown_2039828
|
|
ldr r0, [r4]
|
|
ldrb r2, [r0, 0x8]
|
|
ldrb r1, [r0, 0xA]
|
|
adds r7, r2, r1
|
|
ldrb r1, [r0, 0x9]
|
|
ldrb r0, [r0, 0xB]
|
|
adds r1, r0
|
|
mov r9, r1
|
|
bl StorageGetCurrentBox
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r0, [r4]
|
|
ldrb r2, [r0, 0x9]
|
|
cmp r2, r9
|
|
bge _08095908
|
|
_080958CC:
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
ldr r1, _08095914 @ =gUnknown_2039828
|
|
ldr r1, [r1]
|
|
lsls r0, 1
|
|
ldrb r3, [r1, 0x8]
|
|
adds r0, r3
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldrb r4, [r1, 0x8]
|
|
adds r6, r2, 0x1
|
|
cmp r4, r7
|
|
bge _08095902
|
|
subs r4, r7, r4
|
|
_080958E8:
|
|
adds r0, r5, 0
|
|
bl DestroyBoxMonIconAtPosition
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
bl ZeroBoxMonAt
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bne _080958E8
|
|
_08095902:
|
|
adds r2, r6, 0
|
|
cmp r2, r9
|
|
blt _080958CC
|
|
_08095908:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08095914: .4byte gUnknown_2039828
|
|
thumb_func_end sub_80958A0
|
|
|
|
thumb_func_start sub_8095918
|
|
sub_8095918: @ 8095918
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r0, _080959A4 @ =gUnknown_2039828
|
|
ldr r0, [r0]
|
|
ldrb r2, [r0, 0x8]
|
|
ldrb r1, [r0, 0xA]
|
|
adds r2, r1
|
|
mov r8, r2
|
|
ldrb r1, [r0, 0x9]
|
|
ldrb r0, [r0, 0xB]
|
|
adds r0, r1
|
|
mov r10, r0
|
|
movs r6, 0
|
|
adds r2, r1, 0
|
|
cmp r2, r10
|
|
bge _08095994
|
|
_0809593E:
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
ldr r3, _080959A4 @ =gUnknown_2039828
|
|
ldr r1, [r3]
|
|
lsls r0, 1
|
|
ldrb r4, [r1, 0x8]
|
|
adds r0, r4
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldrb r4, [r1, 0x8]
|
|
adds r7, r2, 0x1
|
|
cmp r4, r8
|
|
bge _0809598E
|
|
mov r9, r3
|
|
mov r0, r8
|
|
subs r4, r0, r4
|
|
_0809595E:
|
|
lsls r1, r6, 2
|
|
adds r1, r6
|
|
lsls r1, 4
|
|
adds r1, 0x14
|
|
mov r2, r9
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
movs r1, 0x5
|
|
bl GetBoxMonData
|
|
cmp r0, 0
|
|
beq _0809597C
|
|
adds r0, r5, 0
|
|
bl sub_80901EC
|
|
_0809597C:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bne _0809595E
|
|
_0809598E:
|
|
adds r2, r7, 0
|
|
cmp r2, r10
|
|
blt _0809593E
|
|
_08095994:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080959A4: .4byte gUnknown_2039828
|
|
thumb_func_end sub_8095918
|
|
|
|
thumb_func_start sub_80959A8
|
|
sub_80959A8: @ 80959A8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
ldr r4, _08095A54 @ =gUnknown_2039828
|
|
ldr r0, [r4]
|
|
ldrb r2, [r0, 0x8]
|
|
ldrb r1, [r0, 0xA]
|
|
adds r2, r1
|
|
mov r10, r2
|
|
ldrb r1, [r0, 0x9]
|
|
ldrb r0, [r0, 0xB]
|
|
adds r1, r0
|
|
str r1, [sp]
|
|
bl StorageGetCurrentBox
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x4]
|
|
movs r7, 0
|
|
ldr r0, [r4]
|
|
ldrb r3, [r0, 0x9]
|
|
ldr r0, [sp]
|
|
cmp r3, r0
|
|
bge _08095A42
|
|
_080959DE:
|
|
lsls r0, r3, 1
|
|
adds r0, r3
|
|
ldr r2, _08095A54 @ =gUnknown_2039828
|
|
ldr r1, [r2]
|
|
lsls r0, 1
|
|
ldrb r4, [r1, 0x8]
|
|
adds r0, r4
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldrb r5, [r1, 0x8]
|
|
adds r3, 0x1
|
|
mov r9, r3
|
|
cmp r5, r10
|
|
bge _08095A3A
|
|
mov r8, r2
|
|
mov r0, r10
|
|
subs r5, r0, r5
|
|
_08095A00:
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 4
|
|
adds r4, r0, 0
|
|
adds r4, 0x14
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, r4
|
|
movs r1, 0x5
|
|
bl GetBoxMonData
|
|
cmp r0, 0
|
|
beq _08095A28
|
|
mov r0, r8
|
|
ldr r2, [r0]
|
|
adds r2, r4
|
|
ldr r0, [sp, 0x4]
|
|
adds r1, r6, 0
|
|
bl SetBoxMonAt
|
|
_08095A28:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bne _08095A00
|
|
_08095A3A:
|
|
mov r3, r9
|
|
ldr r1, [sp]
|
|
cmp r3, r1
|
|
blt _080959DE
|
|
_08095A42:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08095A54: .4byte gUnknown_2039828
|
|
thumb_func_end sub_80959A8
|
|
|
|
thumb_func_start sub_8095A58
|
|
sub_8095A58: @ 8095A58
|
|
push {lr}
|
|
sub sp, 0x8
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
movs r0, 0
|
|
movs r1, 0x4
|
|
movs r2, 0
|
|
bl SetBgAttribute
|
|
movs r0, 0x8
|
|
movs r1, 0x80
|
|
bl ClearGpuRegBits
|
|
movs r0, 0x20
|
|
str r0, [sp]
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
add sp, 0x8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8095A58
|
|
|
|
thumb_func_start sub_8095AA0
|
|
sub_8095AA0: @ 8095AA0
|
|
ldr r0, _08095AB8 @ =gUnknown_2039828
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, 0x3]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
ldrb r2, [r2, 0x2]
|
|
adds r0, r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bx lr
|
|
.align 2, 0
|
|
_08095AB8: .4byte gUnknown_2039828
|
|
thumb_func_end sub_8095AA0
|
|
|
|
thumb_func_start sub_8095ABC
|
|
sub_8095ABC: @ 8095ABC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
ldr r0, _08095B28 @ =gUnknown_2039828
|
|
ldr r0, [r0]
|
|
ldrb r2, [r0, 0x8]
|
|
ldrb r1, [r0, 0xA]
|
|
adds r2, r1
|
|
mov r9, r2
|
|
ldrb r1, [r0, 0x9]
|
|
ldrb r0, [r0, 0xB]
|
|
adds r0, r1, r0
|
|
str r0, [sp]
|
|
movs r7, 0
|
|
adds r6, r1, 0
|
|
cmp r6, r0
|
|
bge _08095B4A
|
|
lsls r0, r6, 1
|
|
adds r0, r6
|
|
lsls r0, 1
|
|
mov r8, r0
|
|
_08095AEC:
|
|
ldr r2, _08095B28 @ =gUnknown_2039828
|
|
ldr r1, [r2]
|
|
ldrb r0, [r1, 0x8]
|
|
add r0, r8
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldrb r4, [r1, 0x8]
|
|
cmp r4, r9
|
|
bge _08095B3E
|
|
mov r10, r2
|
|
_08095B00:
|
|
lsls r1, r7, 2
|
|
adds r1, r7
|
|
lsls r1, 4
|
|
adds r1, 0x14
|
|
mov r2, r10
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
movs r1, 0x5
|
|
bl GetBoxMonData
|
|
cmp r0, 0
|
|
beq _08095B2C
|
|
adds r0, r5, 0
|
|
movs r1, 0x5
|
|
bl GetCurrentBoxMonData
|
|
cmp r0, 0
|
|
beq _08095B2C
|
|
movs r0, 0
|
|
b _08095B4C
|
|
.align 2, 0
|
|
_08095B28: .4byte gUnknown_2039828
|
|
_08095B2C:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r4, 0x1
|
|
cmp r4, r9
|
|
blt _08095B00
|
|
_08095B3E:
|
|
movs r0, 0x6
|
|
add r8, r0
|
|
adds r6, 0x1
|
|
ldr r2, [sp]
|
|
cmp r6, r2
|
|
blt _08095AEC
|
|
_08095B4A:
|
|
movs r0, 0x1
|
|
_08095B4C:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8095ABC
|
|
|
|
@ file boundary?
|
|
|
|
thumb_func_start sub_8095B5C
|
|
sub_8095B5C: @ 8095B5C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x20
|
|
ldr r3, _08095C58 @ =sPSSData
|
|
ldr r0, [r3]
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0x3
|
|
bne _08095C3C
|
|
ldr r0, _08095C5C @ =gUnknown_3000FE8
|
|
str r0, [sp, 0x18]
|
|
ldr r1, _08095C60 @ =0xffff0000
|
|
add r2, sp, 0x18
|
|
ldr r0, [r2, 0x4]
|
|
ands r0, r1
|
|
movs r1, 0x80
|
|
lsls r1, 2
|
|
orrs r0, r1
|
|
str r0, [r2, 0x4]
|
|
mov r1, sp
|
|
ldr r0, _08095C64 @ =gUnknown_83D3728
|
|
ldm r0!, {r4-r6}
|
|
stm r1!, {r4-r6}
|
|
ldm r0!, {r4-r6}
|
|
stm r1!, {r4-r6}
|
|
movs r7, 0
|
|
mov r9, r2
|
|
mov r8, r3
|
|
movs r0, 0
|
|
mov r10, r0
|
|
_08095B9C:
|
|
adds r6, r7, 0x7
|
|
lsls r1, r6, 16
|
|
mov r2, r9
|
|
ldrh r0, [r2, 0x4]
|
|
orrs r0, r1
|
|
str r0, [r2, 0x4]
|
|
mov r0, r9
|
|
bl LoadCompressedSpriteSheet
|
|
mov r4, r9
|
|
ldrh r0, [r4, 0x6]
|
|
bl GetSpriteTileStartByTag
|
|
mov r5, r8
|
|
ldr r1, [r5]
|
|
lsls r5, r7, 4
|
|
ldr r2, _08095C68 @ =0x000021f8
|
|
adds r1, r2
|
|
adds r1, r5
|
|
lsls r0, 16
|
|
lsrs r0, 11
|
|
ldr r4, _08095C6C @ =0x06010000
|
|
adds r0, r4
|
|
str r0, [r1]
|
|
ldr r0, _08095C70 @ =0xffffdacb
|
|
adds r4, r7, r0
|
|
lsls r0, r4, 16
|
|
lsrs r0, 16
|
|
bl AllocSpritePalette
|
|
mov r2, r8
|
|
ldr r1, [r2]
|
|
adds r1, r5
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _08095C74 @ =0x000021fc
|
|
adds r1, r2
|
|
strh r0, [r1]
|
|
ldrh r0, [r1]
|
|
lsls r0, 4
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
strh r0, [r1]
|
|
mov r0, sp
|
|
strh r6, [r0]
|
|
strh r4, [r0, 0x2]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0xB
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r4, r8
|
|
ldr r2, [r4]
|
|
ldr r6, _08095C78 @ =0x000021f4
|
|
adds r2, r6
|
|
adds r2, r5
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _08095C7C @ =gSprites
|
|
adds r1, r0
|
|
str r1, [r2]
|
|
adds r1, 0x3E
|
|
ldrb r0, [r1]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r4]
|
|
adds r0, r5
|
|
movs r1, 0x88
|
|
lsls r1, 6
|
|
adds r0, r1
|
|
mov r2, r10
|
|
strb r2, [r0]
|
|
adds r7, 0x1
|
|
cmp r7, 0x2
|
|
ble _08095B9C
|
|
_08095C3C:
|
|
ldr r0, _08095C58 @ =sPSSData
|
|
ldr r0, [r0]
|
|
ldr r4, _08095C80 @ =0x00002224
|
|
adds r0, r4
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
add sp, 0x20
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08095C58: .4byte sPSSData
|
|
_08095C5C: .4byte gUnknown_3000FE8
|
|
_08095C60: .4byte 0xffff0000
|
|
_08095C64: .4byte gUnknown_83D3728
|
|
_08095C68: .4byte 0x000021f8
|
|
_08095C6C: .4byte 0x06010000
|
|
_08095C70: .4byte 0xffffdacb
|
|
_08095C74: .4byte 0x000021fc
|
|
_08095C78: .4byte 0x000021f4
|
|
_08095C7C: .4byte gSprites
|
|
_08095C80: .4byte 0x00002224
|
|
thumb_func_end sub_8095B5C
|
|
|
|
thumb_func_start sub_8095C84
|
|
sub_8095C84: @ 8095C84
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
lsls r1, 24
|
|
lsrs r7, r1, 24
|
|
ldr r0, _08095CB8 @ =sPSSData
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0x3
|
|
bne _08095D36
|
|
mov r0, r8
|
|
adds r1, r7, 0
|
|
bl sub_8096210
|
|
cmp r0, 0
|
|
bne _08095D36
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _08095CBC
|
|
cmp r0, 0x1
|
|
beq _08095CD2
|
|
b _08095D36
|
|
.align 2, 0
|
|
_08095CB8: .4byte sPSSData
|
|
_08095CBC:
|
|
adds r0, r7, 0
|
|
movs r1, 0x5
|
|
bl GetCurrentBoxMonData
|
|
cmp r0, 0
|
|
beq _08095D36
|
|
adds r0, r7, 0
|
|
movs r1, 0xC
|
|
bl GetCurrentBoxMonData
|
|
b _08095CF0
|
|
_08095CD2:
|
|
movs r0, 0x64
|
|
adds r1, r7, 0
|
|
muls r1, r0
|
|
ldr r0, _08095D40 @ =gPlayerParty
|
|
adds r4, r1, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x5
|
|
bl GetMonData
|
|
cmp r0, 0
|
|
beq _08095D36
|
|
adds r0, r4, 0
|
|
movs r1, 0xC
|
|
bl GetMonData
|
|
_08095CF0:
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0
|
|
beq _08095D36
|
|
adds r0, r4, 0
|
|
bl GetItemIconPic
|
|
adds r6, r0, 0
|
|
adds r0, r4, 0
|
|
bl GetItemIconPalette
|
|
adds r5, r0, 0
|
|
bl sub_80961D8
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
mov r1, r8
|
|
adds r2, r7, 0
|
|
bl sub_80962F0
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
bl sub_8096408
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_80964B8
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_8096624
|
|
_08095D36:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08095D40: .4byte gPlayerParty
|
|
thumb_func_end sub_8095C84
|
|
|
|
thumb_func_start sub_8095D44
|
|
sub_8095D44: @ 8095D44
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
ldr r0, _08095D80 @ =sPSSData
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0x3
|
|
bne _08095D7A
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_8096258
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl sub_80964B8
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
adds r2, r6, 0
|
|
adds r3, r5, 0
|
|
bl sub_80964E8
|
|
_08095D7A:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08095D80: .4byte sPSSData
|
|
thumb_func_end sub_8095D44
|
|
|
|
thumb_func_start Item_FromMonToMoving
|
|
Item_FromMonToMoving: @ 8095D84
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
adds r7, r5, 0
|
|
ldr r0, _08095DE8 @ =sPSSData
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0x3
|
|
bne _08095E14
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_8096258
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r1, 0
|
|
mov r0, sp
|
|
strh r1, [r0]
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl sub_80964B8
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
adds r2, r6, 0
|
|
adds r3, r5, 0
|
|
bl sub_80964E8
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
bl sub_80962F0
|
|
cmp r6, 0
|
|
bne _08095DEC
|
|
adds r0, r5, 0
|
|
movs r1, 0xC
|
|
mov r2, sp
|
|
bl SetCurrentBoxMonData
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl SetBoxMonIconObjMode
|
|
b _08095E04
|
|
.align 2, 0
|
|
_08095DE8: .4byte sPSSData
|
|
_08095DEC:
|
|
movs r0, 0x64
|
|
muls r0, r7
|
|
ldr r1, _08095E1C @ =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0xC
|
|
mov r2, sp
|
|
bl SetMonData
|
|
adds r0, r7, 0
|
|
movs r1, 0x1
|
|
bl SetPartyMonIconObjMode
|
|
_08095E04:
|
|
ldr r0, _08095E20 @ =sPSSData
|
|
ldr r0, [r0]
|
|
ldr r2, _08095E24 @ =0x00000ce2
|
|
adds r1, r0, r2
|
|
ldrh r1, [r1]
|
|
ldr r2, _08095E28 @ =0x00002224
|
|
adds r0, r2
|
|
strh r1, [r0]
|
|
_08095E14:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08095E1C: .4byte gPlayerParty
|
|
_08095E20: .4byte sPSSData
|
|
_08095E24: .4byte 0x00000ce2
|
|
_08095E28: .4byte 0x00002224
|
|
thumb_func_end Item_FromMonToMoving
|
|
|
|
thumb_func_start sub_8095E2C
|
|
sub_8095E2C: @ 8095E2C
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
adds r5, r0, 0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
adds r0, r5, 0
|
|
bl GetItemIconPic
|
|
mov r8, r0
|
|
adds r0, r5, 0
|
|
bl GetItemIconPalette
|
|
adds r6, r0, 0
|
|
bl sub_80961D8
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
mov r1, r8
|
|
adds r2, r6, 0
|
|
bl sub_8096408
|
|
adds r0, r4, 0
|
|
movs r1, 0x6
|
|
bl sub_80964B8
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_80964E8
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
bl sub_80962F0
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_8096624
|
|
ldr r0, _08095E98 @ =sPSSData
|
|
ldr r0, [r0]
|
|
ldr r1, _08095E9C @ =0x00002224
|
|
adds r0, r1
|
|
strh r5, [r0]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08095E98: .4byte sPSSData
|
|
_08095E9C: .4byte 0x00002224
|
|
thumb_func_end sub_8095E2C
|
|
|
|
thumb_func_start Item_SwitchMonsWithMoving
|
|
Item_SwitchMonsWithMoving: @ 8095EA0
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
lsls r1, 24
|
|
lsrs r7, r1, 24
|
|
ldr r0, _08095F08 @ =sPSSData
|
|
mov r8, r0
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0x3
|
|
bne _08095F5E
|
|
mov r0, r9
|
|
adds r1, r7, 0
|
|
bl sub_8096258
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl sub_80964B8
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
movs r2, 0x2
|
|
movs r3, 0
|
|
bl sub_80964E8
|
|
mov r1, r9
|
|
cmp r1, 0
|
|
bne _08095F10
|
|
adds r0, r7, 0
|
|
movs r1, 0xC
|
|
bl GetCurrentBoxMonData
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
mov r0, r8
|
|
ldr r2, [r0]
|
|
ldr r4, _08095F0C @ =0x00002224
|
|
adds r2, r4
|
|
adds r0, r7, 0
|
|
movs r1, 0xC
|
|
bl SetCurrentBoxMonData
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, r4
|
|
b _08095F3C
|
|
.align 2, 0
|
|
_08095F08: .4byte sPSSData
|
|
_08095F0C: .4byte 0x00002224
|
|
_08095F10:
|
|
movs r0, 0x64
|
|
adds r4, r7, 0
|
|
muls r4, r0
|
|
ldr r0, _08095F6C @ =gPlayerParty
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0xC
|
|
bl GetMonData
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
mov r0, r8
|
|
ldr r2, [r0]
|
|
ldr r5, _08095F70 @ =0x00002224
|
|
adds r2, r5
|
|
adds r0, r4, 0
|
|
movs r1, 0xC
|
|
bl SetMonData
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, r5
|
|
_08095F3C:
|
|
strh r6, [r0]
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
bl sub_8096258
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0x4
|
|
bl sub_80964B8
|
|
adds r0, r4, 0
|
|
movs r1, 0x4
|
|
mov r2, r9
|
|
adds r3, r7, 0
|
|
bl sub_80964E8
|
|
_08095F5E:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08095F6C: .4byte gPlayerParty
|
|
_08095F70: .4byte 0x00002224
|
|
thumb_func_end Item_SwitchMonsWithMoving
|
|
|
|
thumb_func_start Item_GiveMovingToMon
|
|
Item_GiveMovingToMon: @ 8095F74
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
mov r8, r5
|
|
ldr r6, _08095FCC @ =sPSSData
|
|
ldr r0, [r6]
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0x3
|
|
bne _08095FF4
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
bl sub_8096258
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0x4
|
|
bl sub_80964B8
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
adds r2, r7, 0
|
|
adds r3, r5, 0
|
|
bl sub_80964E8
|
|
cmp r7, 0
|
|
bne _08095FD4
|
|
ldr r2, [r6]
|
|
ldr r0, _08095FD0 @ =0x00002224
|
|
adds r2, r0
|
|
adds r0, r5, 0
|
|
movs r1, 0xC
|
|
bl SetCurrentBoxMonData
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl SetBoxMonIconObjMode
|
|
b _08095FF4
|
|
.align 2, 0
|
|
_08095FCC: .4byte sPSSData
|
|
_08095FD0: .4byte 0x00002224
|
|
_08095FD4:
|
|
movs r0, 0x64
|
|
mov r1, r8
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
ldr r1, _08096000 @ =gPlayerParty
|
|
adds r0, r1
|
|
ldr r2, [r6]
|
|
ldr r1, _08096004 @ =0x00002224
|
|
adds r2, r1
|
|
movs r1, 0xC
|
|
bl SetMonData
|
|
mov r0, r8
|
|
movs r1, 0
|
|
bl SetPartyMonIconObjMode
|
|
_08095FF4:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08096000: .4byte gPlayerParty
|
|
_08096004: .4byte 0x00002224
|
|
thumb_func_end Item_GiveMovingToMon
|
|
|
|
thumb_func_start Item_TakeMons
|
|
Item_TakeMons: @ 8096008
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
adds r7, r5, 0
|
|
ldr r0, _08096060 @ =sPSSData
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0x3
|
|
bne _0809607C
|
|
movs r1, 0
|
|
mov r0, sp
|
|
strh r1, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_8096258
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl sub_80964B8
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
adds r2, r6, 0
|
|
adds r3, r5, 0
|
|
bl sub_80964E8
|
|
cmp r6, 0
|
|
bne _08096064
|
|
adds r0, r5, 0
|
|
movs r1, 0xC
|
|
mov r2, sp
|
|
bl SetCurrentBoxMonData
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl SetBoxMonIconObjMode
|
|
b _0809607C
|
|
.align 2, 0
|
|
_08096060: .4byte sPSSData
|
|
_08096064:
|
|
movs r0, 0x64
|
|
muls r0, r7
|
|
ldr r1, _08096084 @ =gPlayerParty
|
|
adds r0, r1
|
|
movs r1, 0xC
|
|
mov r2, sp
|
|
bl SetMonData
|
|
adds r0, r7, 0
|
|
movs r1, 0x1
|
|
bl SetPartyMonIconObjMode
|
|
_0809607C:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08096084: .4byte gPlayerParty
|
|
thumb_func_end Item_TakeMons
|
|
|
|
thumb_func_start sub_8096088
|
|
sub_8096088: @ 8096088
|
|
push {r4,lr}
|
|
ldr r0, _080960BC @ =sPSSData
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0x3
|
|
bne _080960B6
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
bl sub_8096258
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0x5
|
|
bl sub_80964B8
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0x2
|
|
movs r3, 0
|
|
bl sub_80964E8
|
|
_080960B6:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080960BC: .4byte sPSSData
|
|
thumb_func_end sub_8096088
|
|
|
|
thumb_func_start sub_80960C0
|
|
sub_80960C0: @ 80960C0
|
|
push {r4,lr}
|
|
ldr r0, _08096108 @ =sPSSData
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0x3
|
|
bne _08096100
|
|
movs r4, 0
|
|
_080960CE:
|
|
ldr r0, _08096108 @ =sPSSData
|
|
ldr r1, [r0]
|
|
lsls r0, r4, 4
|
|
adds r1, r0
|
|
movs r2, 0x88
|
|
lsls r2, 6
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080960FA
|
|
subs r2, 0x2
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _080960FA
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x7
|
|
movs r2, 0x2
|
|
movs r3, 0
|
|
bl sub_80964E8
|
|
_080960FA:
|
|
adds r4, 0x1
|
|
cmp r4, 0x2
|
|
ble _080960CE
|
|
_08096100:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08096108: .4byte sPSSData
|
|
thumb_func_end sub_80960C0
|
|
|
|
thumb_func_start sub_809610C
|
|
sub_809610C: @ 809610C
|
|
push {r4,r5,lr}
|
|
movs r5, 0
|
|
ldr r0, _08096148 @ =sPSSData
|
|
ldr r0, [r0]
|
|
ldr r1, _0809614C @ =0x000021f4
|
|
adds r4, r0, r1
|
|
adds r3, r0, 0
|
|
_0809611A:
|
|
movs r1, 0x88
|
|
lsls r1, 6
|
|
adds r0, r3, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08096158
|
|
ldr r2, [r4]
|
|
adds r0, r2, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x28
|
|
ands r0, r1
|
|
cmp r0, 0x8
|
|
beq _08096144
|
|
ldr r1, [r2, 0x1C]
|
|
ldr r0, _08096150 @ =SpriteCallbackDummy
|
|
cmp r1, r0
|
|
beq _08096158
|
|
ldr r0, _08096154 @ =sub_80969BC
|
|
cmp r1, r0
|
|
beq _08096158
|
|
_08096144:
|
|
movs r0, 0x1
|
|
b _08096164
|
|
.align 2, 0
|
|
_08096148: .4byte sPSSData
|
|
_0809614C: .4byte 0x000021f4
|
|
_08096150: .4byte SpriteCallbackDummy
|
|
_08096154: .4byte sub_80969BC
|
|
_08096158:
|
|
adds r4, 0x10
|
|
adds r3, 0x10
|
|
adds r5, 0x1
|
|
cmp r5, 0x2
|
|
ble _0809611A
|
|
movs r0, 0
|
|
_08096164:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809610C
|
|
|
|
thumb_func_start IsActiveItemMoving
|
|
IsActiveItemMoving: @ 809616C
|
|
push {lr}
|
|
ldr r0, _08096190 @ =sPSSData
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, 0x1]
|
|
cmp r0, 0x3
|
|
bne _080961A0
|
|
movs r2, 0
|
|
ldr r0, _08096194 @ =0x000021fe
|
|
adds r1, r0
|
|
_0809617E:
|
|
ldrb r0, [r1, 0x2]
|
|
cmp r0, 0
|
|
beq _08096198
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x2
|
|
bne _08096198
|
|
movs r0, 0x1
|
|
b _080961A2
|
|
.align 2, 0
|
|
_08096190: .4byte sPSSData
|
|
_08096194: .4byte 0x000021fe
|
|
_08096198:
|
|
adds r1, 0x10
|
|
adds r2, 0x1
|
|
cmp r2, 0x2
|
|
ble _0809617E
|
|
_080961A0:
|
|
movs r0, 0
|
|
_080961A2:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end IsActiveItemMoving
|
|
|
|
thumb_func_start GetMovingItemName
|
|
GetMovingItemName: @ 80961A8
|
|
push {lr}
|
|
ldr r0, _080961BC @ =sPSSData
|
|
ldr r0, [r0]
|
|
ldr r1, _080961C0 @ =0x00002224
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
bl ItemId_GetName
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080961BC: .4byte sPSSData
|
|
_080961C0: .4byte 0x00002224
|
|
thumb_func_end GetMovingItemName
|
|
|
|
thumb_func_start GetMovingItem
|
|
GetMovingItem: @ 80961C4
|
|
ldr r0, _080961D0 @ =sPSSData
|
|
ldr r0, [r0]
|
|
ldr r1, _080961D4 @ =0x00002224
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_080961D0: .4byte sPSSData
|
|
_080961D4: .4byte 0x00002224
|
|
thumb_func_end GetMovingItem
|
|
|
|
thumb_func_start sub_80961D8
|
|
sub_80961D8: @ 80961D8
|
|
push {r4,r5,lr}
|
|
movs r2, 0
|
|
ldr r5, _080961F8 @ =sPSSData
|
|
movs r3, 0x88
|
|
lsls r3, 6
|
|
movs r4, 0x1
|
|
_080961E4:
|
|
ldr r0, [r5]
|
|
lsls r1, r2, 4
|
|
adds r0, r1
|
|
adds r1, r0, r3
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _080961FC
|
|
strb r4, [r1]
|
|
adds r0, r2, 0
|
|
b _08096208
|
|
.align 2, 0
|
|
_080961F8: .4byte sPSSData
|
|
_080961FC:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x2
|
|
bls _080961E4
|
|
movs r0, 0x3
|
|
_08096208:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80961D8
|
|
|
|
thumb_func_start sub_8096210
|
|
sub_8096210: @ 8096210
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r3, 0
|
|
ldr r0, _08096244 @ =sPSSData
|
|
ldr r2, [r0]
|
|
_08096220:
|
|
movs r5, 0x88
|
|
lsls r5, 6
|
|
adds r0, r2, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08096248
|
|
subs r5, 0x2
|
|
adds r0, r2, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, r4
|
|
bne _08096248
|
|
adds r5, 0x1
|
|
adds r0, r2, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, r1
|
|
bne _08096248
|
|
movs r0, 0x1
|
|
b _08096252
|
|
.align 2, 0
|
|
_08096244: .4byte sPSSData
|
|
_08096248:
|
|
adds r2, 0x10
|
|
adds r3, 0x1
|
|
cmp r3, 0x2
|
|
ble _08096220
|
|
movs r0, 0
|
|
_08096252:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8096210
|
|
|
|
thumb_func_start sub_8096258
|
|
sub_8096258: @ 8096258
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
movs r3, 0
|
|
ldr r0, _08096290 @ =sPSSData
|
|
ldr r1, [r0]
|
|
_08096268:
|
|
lsls r0, r3, 4
|
|
adds r2, r1, r0
|
|
movs r6, 0x88
|
|
lsls r6, 6
|
|
adds r0, r2, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08096294
|
|
subs r6, 0x2
|
|
adds r0, r2, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, r5
|
|
bne _08096294
|
|
adds r6, 0x1
|
|
adds r0, r2, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, r4
|
|
bne _08096294
|
|
adds r0, r3, 0
|
|
b _080962A0
|
|
.align 2, 0
|
|
_08096290: .4byte sPSSData
|
|
_08096294:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x2
|
|
bls _08096268
|
|
movs r0, 0x3
|
|
_080962A0:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8096258
|
|
|
|
thumb_func_start sub_80962A8
|
|
sub_80962A8: @ 80962A8
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
movs r2, 0
|
|
ldr r0, _080962D4 @ =sPSSData
|
|
ldr r3, [r0]
|
|
ldr r0, _080962D8 @ =0x000021f4
|
|
adds r4, r3, r0
|
|
movs r6, 0x88
|
|
lsls r6, 6
|
|
_080962BA:
|
|
lsls r1, r2, 4
|
|
adds r0, r3, r1
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080962DC
|
|
adds r0, r4, r1
|
|
ldr r0, [r0]
|
|
cmp r0, r5
|
|
bne _080962DC
|
|
adds r0, r2, 0
|
|
b _080962E8
|
|
.align 2, 0
|
|
_080962D4: .4byte sPSSData
|
|
_080962D8: .4byte 0x000021f4
|
|
_080962DC:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x2
|
|
bls _080962BA
|
|
movs r0, 0x3
|
|
_080962E8:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80962A8
|
|
|
|
thumb_func_start sub_80962F0
|
|
sub_80962F0: @ 80962F0
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r8, r1
|
|
lsls r2, 24
|
|
lsrs r7, r2, 24
|
|
cmp r5, 0x2
|
|
bhi _080963EE
|
|
cmp r1, 0
|
|
beq _0809631C
|
|
cmp r1, 0x1
|
|
beq _08096378
|
|
ldr r4, _08096318 @ =sPSSData
|
|
lsls r3, r5, 4
|
|
b _080963D8
|
|
.align 2, 0
|
|
_08096318: .4byte sPSSData
|
|
_0809631C:
|
|
adds r0, r7, 0
|
|
movs r1, 0x6
|
|
bl __umodsi3
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r7, 0
|
|
movs r1, 0x6
|
|
bl __udivsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r6, _08096370 @ =sPSSData
|
|
ldr r2, [r6]
|
|
lsls r5, 4
|
|
ldr r1, _08096374 @ =0x000021f4
|
|
adds r2, r1
|
|
adds r2, r5
|
|
ldr r3, [r2]
|
|
lsls r1, r4, 1
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, 0x70
|
|
strh r1, [r3, 0x20]
|
|
ldr r3, [r2]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, 0x38
|
|
strh r1, [r3, 0x22]
|
|
ldr r2, [r2]
|
|
ldrb r1, [r2, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x8
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x5]
|
|
adds r4, r6, 0
|
|
adds r3, r5, 0
|
|
b _080963D8
|
|
.align 2, 0
|
|
_08096370: .4byte sPSSData
|
|
_08096374: .4byte 0x000021f4
|
|
_08096378:
|
|
cmp r7, 0
|
|
bne _080963A0
|
|
ldr r4, _08096398 @ =sPSSData
|
|
ldr r0, [r4]
|
|
lsls r3, r5, 4
|
|
ldr r1, _0809639C @ =0x000021f4
|
|
adds r0, r1
|
|
adds r0, r3
|
|
ldr r2, [r0]
|
|
movs r1, 0x74
|
|
strh r1, [r2, 0x20]
|
|
ldr r1, [r0]
|
|
movs r0, 0x4C
|
|
strh r0, [r1, 0x22]
|
|
b _080963C0
|
|
.align 2, 0
|
|
_08096398: .4byte sPSSData
|
|
_0809639C: .4byte 0x000021f4
|
|
_080963A0:
|
|
ldr r4, _080963F8 @ =sPSSData
|
|
ldr r0, [r4]
|
|
lsls r3, r5, 4
|
|
ldr r1, _080963FC @ =0x000021f4
|
|
adds r0, r1
|
|
adds r0, r3
|
|
ldr r2, [r0]
|
|
movs r1, 0xA4
|
|
strh r1, [r2, 0x20]
|
|
ldr r2, [r0]
|
|
subs r1, r7, 0x1
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, 0x1C
|
|
strh r0, [r2, 0x22]
|
|
_080963C0:
|
|
ldr r0, [r4]
|
|
ldr r1, _080963FC @ =0x000021f4
|
|
adds r0, r1
|
|
adds r0, r3
|
|
ldr r2, [r0]
|
|
ldrb r1, [r2, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x5]
|
|
_080963D8:
|
|
ldr r0, [r4]
|
|
adds r0, r3
|
|
ldr r1, _08096400 @ =0x000021fe
|
|
adds r0, r1
|
|
mov r1, r8
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, r3
|
|
ldr r1, _08096404 @ =0x000021ff
|
|
adds r0, r1
|
|
strb r7, [r0]
|
|
_080963EE:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080963F8: .4byte sPSSData
|
|
_080963FC: .4byte 0x000021f4
|
|
_08096400: .4byte 0x000021fe
|
|
_08096404: .4byte 0x000021ff
|
|
thumb_func_end sub_80962F0
|
|
|
|
thumb_func_start sub_8096408
|
|
sub_8096408: @ 8096408
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
mov r8, r1
|
|
mov r9, r2
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x2
|
|
bhi _08096490
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
ldr r4, _080964A0 @ =sPSSData
|
|
ldr r1, [r4]
|
|
ldr r6, _080964A4 @ =0x000042bc
|
|
adds r1, r6
|
|
ldr r2, _080964A8 @ =0x01000080
|
|
mov r0, sp
|
|
bl CpuFastSet
|
|
ldr r1, [r4]
|
|
ldr r5, _080964AC @ =0x000022bc
|
|
adds r1, r5
|
|
mov r0, r8
|
|
bl LZ77UnCompWram
|
|
lsls r7, 4
|
|
mov r8, r7
|
|
adds r7, r4, 0
|
|
movs r4, 0x2
|
|
_08096446:
|
|
ldr r1, [r7]
|
|
adds r0, r1, r5
|
|
adds r1, r6
|
|
movs r2, 0x18
|
|
bl CpuFastSet
|
|
adds r6, 0x80
|
|
adds r5, 0x60
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _08096446
|
|
ldr r5, _080964A0 @ =sPSSData
|
|
ldr r1, [r5]
|
|
ldr r4, _080964A4 @ =0x000042bc
|
|
adds r0, r1, r4
|
|
ldr r2, _080964B0 @ =0x000021f8
|
|
adds r1, r2
|
|
add r1, r8
|
|
ldr r1, [r1]
|
|
movs r2, 0x80
|
|
bl CpuFastSet
|
|
ldr r1, [r5]
|
|
adds r1, r4
|
|
mov r0, r9
|
|
bl LZ77UnCompWram
|
|
ldr r0, [r5]
|
|
adds r4, r0, r4
|
|
add r0, r8
|
|
ldr r1, _080964B4 @ =0x000021fc
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
adds r0, r4, 0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
_08096490:
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080964A0: .4byte sPSSData
|
|
_080964A4: .4byte 0x000042bc
|
|
_080964A8: .4byte 0x01000080
|
|
_080964AC: .4byte 0x000022bc
|
|
_080964B0: .4byte 0x000021f8
|
|
_080964B4: .4byte 0x000021fc
|
|
thumb_func_end sub_8096408
|
|
|
|
thumb_func_start sub_80964B8
|
|
sub_80964B8: @ 80964B8
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r1, 24
|
|
lsrs r3, r1, 24
|
|
cmp r2, 0x2
|
|
bhi _080964DA
|
|
ldr r0, _080964E0 @ =sPSSData
|
|
ldr r0, [r0]
|
|
lsls r1, r2, 4
|
|
ldr r2, _080964E4 @ =0x000021f4
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
adds r1, r3, 0
|
|
bl StartSpriteAffineAnim
|
|
_080964DA:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080964E0: .4byte sPSSData
|
|
_080964E4: .4byte 0x000021f4
|
|
thumb_func_end sub_80964B8
|
|
|
|
thumb_func_start sub_80964E8
|
|
sub_80964E8: @ 80964E8
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 24
|
|
lsrs r0, r1, 24
|
|
lsls r2, 24
|
|
lsrs r5, r2, 24
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
cmp r4, 0x2
|
|
bls _08096500
|
|
b _08096612
|
|
_08096500:
|
|
cmp r0, 0x7
|
|
bls _08096506
|
|
b _08096612
|
|
_08096506:
|
|
lsls r0, 2
|
|
ldr r1, _08096510 @ =_08096514
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08096510: .4byte _08096514
|
|
.align 2, 0
|
|
_08096514:
|
|
.4byte _08096534
|
|
.4byte _08096558
|
|
.4byte _0809657C
|
|
.4byte _080965A8
|
|
.4byte _080965D4
|
|
.4byte _08096612
|
|
.4byte _08096612
|
|
.4byte _08096600
|
|
_08096534:
|
|
ldr r0, _0809654C @ =sPSSData
|
|
ldr r0, [r0]
|
|
lsls r1, r4, 4
|
|
ldr r2, _08096550 @ =0x000021f4
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
strh r4, [r1, 0x2E]
|
|
ldr r1, [r0]
|
|
ldr r0, _08096554 @ =sub_809692C
|
|
b _08096610
|
|
.align 2, 0
|
|
_0809654C: .4byte sPSSData
|
|
_08096550: .4byte 0x000021f4
|
|
_08096554: .4byte sub_809692C
|
|
_08096558:
|
|
ldr r0, _08096570 @ =sPSSData
|
|
ldr r0, [r0]
|
|
lsls r1, r4, 4
|
|
ldr r2, _08096574 @ =0x000021f4
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
movs r1, 0
|
|
strh r1, [r2, 0x2E]
|
|
ldr r1, [r0]
|
|
ldr r0, _08096578 @ =sub_8096958
|
|
b _08096610
|
|
.align 2, 0
|
|
_08096570: .4byte sPSSData
|
|
_08096574: .4byte 0x000021f4
|
|
_08096578: .4byte sub_8096958
|
|
_0809657C:
|
|
ldr r0, _0809659C @ =sPSSData
|
|
ldr r0, [r0]
|
|
lsls r1, r4, 4
|
|
ldr r2, _080965A0 @ =0x000021f4
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
movs r1, 0
|
|
strh r1, [r2, 0x2E]
|
|
ldr r1, [r0]
|
|
strh r5, [r1, 0x3A]
|
|
ldr r1, [r0]
|
|
strh r3, [r1, 0x3C]
|
|
ldr r1, [r0]
|
|
ldr r0, _080965A4 @ =sub_80969F4
|
|
b _08096610
|
|
.align 2, 0
|
|
_0809659C: .4byte sPSSData
|
|
_080965A0: .4byte 0x000021f4
|
|
_080965A4: .4byte sub_80969F4
|
|
_080965A8:
|
|
ldr r0, _080965C8 @ =sPSSData
|
|
ldr r0, [r0]
|
|
lsls r1, r4, 4
|
|
ldr r2, _080965CC @ =0x000021f4
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
movs r1, 0
|
|
strh r1, [r2, 0x2E]
|
|
ldr r2, [r0]
|
|
ldr r1, _080965D0 @ =sub_8096A74
|
|
str r1, [r2, 0x1C]
|
|
strh r5, [r2, 0x3A]
|
|
ldr r0, [r0]
|
|
strh r3, [r0, 0x3C]
|
|
b _08096612
|
|
.align 2, 0
|
|
_080965C8: .4byte sPSSData
|
|
_080965CC: .4byte 0x000021f4
|
|
_080965D0: .4byte sub_8096A74
|
|
_080965D4:
|
|
ldr r0, _080965F4 @ =sPSSData
|
|
ldr r0, [r0]
|
|
lsls r1, r4, 4
|
|
ldr r2, _080965F8 @ =0x000021f4
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
movs r1, 0
|
|
strh r1, [r2, 0x2E]
|
|
ldr r1, [r0]
|
|
strh r5, [r1, 0x3A]
|
|
ldr r1, [r0]
|
|
strh r3, [r1, 0x3C]
|
|
ldr r1, [r0]
|
|
ldr r0, _080965FC @ =sub_8096B10
|
|
b _08096610
|
|
.align 2, 0
|
|
_080965F4: .4byte sPSSData
|
|
_080965F8: .4byte 0x000021f4
|
|
_080965FC: .4byte sub_8096B10
|
|
_08096600:
|
|
ldr r0, _08096618 @ =sPSSData
|
|
ldr r0, [r0]
|
|
lsls r1, r4, 4
|
|
ldr r2, _0809661C @ =0x000021f4
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
ldr r0, _08096620 @ =sub_8096BAC
|
|
_08096610:
|
|
str r0, [r1, 0x1C]
|
|
_08096612:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08096618: .4byte sPSSData
|
|
_0809661C: .4byte 0x000021f4
|
|
_08096620: .4byte sub_8096BAC
|
|
thumb_func_end sub_80964E8
|
|
|
|
thumb_func_start sub_8096624
|
|
sub_8096624: @ 8096624
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
cmp r2, 0x2
|
|
bhi _08096666
|
|
ldr r1, _0809666C @ =sPSSData
|
|
ldr r0, [r1]
|
|
lsls r2, 4
|
|
adds r0, r2
|
|
movs r3, 0x88
|
|
lsls r3, 6
|
|
adds r0, r3
|
|
strb r4, [r0]
|
|
ldr r0, [r1]
|
|
ldr r1, _08096670 @ =0x000021f4
|
|
adds r0, r1
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
movs r3, 0
|
|
cmp r4, 0
|
|
bne _08096654
|
|
movs r3, 0x1
|
|
_08096654:
|
|
adds r2, r0, 0
|
|
adds r2, 0x3E
|
|
lsls r3, 2
|
|
ldrb r1, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
orrs r0, r3
|
|
strb r0, [r2]
|
|
_08096666:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809666C: .4byte sPSSData
|
|
_08096670: .4byte 0x000021f4
|
|
thumb_func_end sub_8096624
|
|
|
|
thumb_func_start GetItemIconPic
|
|
GetItemIconPic: @ 8096674
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0
|
|
bl GetItemIconGfxPtr
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetItemIconPic
|
|
|
|
thumb_func_start GetItemIconPalette
|
|
GetItemIconPalette: @ 8096684
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x1
|
|
bl GetItemIconGfxPtr
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetItemIconPalette
|
|
|
|
thumb_func_start PrintItemDescription
|
|
PrintItemDescription: @ 8096694
|
|
push {r4,lr}
|
|
sub sp, 0x14
|
|
bl IsActiveItemMoving
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080966B4
|
|
ldr r0, _080966AC @ =sPSSData
|
|
ldr r0, [r0]
|
|
ldr r1, _080966B0 @ =0x00002224
|
|
b _080966BA
|
|
.align 2, 0
|
|
_080966AC: .4byte sPSSData
|
|
_080966B0: .4byte 0x00002224
|
|
_080966B4:
|
|
ldr r0, _080966EC @ =sPSSData
|
|
ldr r0, [r0]
|
|
ldr r1, _080966F0 @ =0x00000ce2
|
|
_080966BA:
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
bl ItemId_GetDescription
|
|
adds r4, r0, 0
|
|
movs r0, 0x2
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
str r0, [sp, 0x4]
|
|
str r0, [sp, 0x8]
|
|
str r0, [sp, 0xC]
|
|
str r0, [sp, 0x10]
|
|
movs r0, 0x2
|
|
movs r1, 0x2
|
|
adds r2, r4, 0
|
|
movs r3, 0x2
|
|
bl AddTextPrinterParameterized5
|
|
add sp, 0x14
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080966EC: .4byte sPSSData
|
|
_080966F0: .4byte 0x00000ce2
|
|
thumb_func_end PrintItemDescription
|
|
|
|
thumb_func_start sub_80966F4
|
|
sub_80966F4: @ 80966F4
|
|
push {lr}
|
|
ldr r0, _0809671C @ =sPSSData
|
|
ldr r0, [r0]
|
|
ldr r1, _08096720 @ =0x00002226
|
|
adds r0, r1
|
|
movs r1, 0x19
|
|
strh r1, [r0]
|
|
ldr r1, _08096724 @ =gUnknown_83D35DC
|
|
movs r3, 0xD2
|
|
lsls r3, 1
|
|
movs r0, 0
|
|
movs r2, 0x80
|
|
bl LoadBgTiles
|
|
movs r0, 0
|
|
bl sub_8096898
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809671C: .4byte sPSSData
|
|
_08096720: .4byte 0x00002226
|
|
_08096724: .4byte gUnknown_83D35DC
|
|
thumb_func_end sub_80966F4
|
|
|
|
thumb_func_start sub_8096728
|
|
sub_8096728: @ 8096728
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
ldr r0, _08096740 @ =sPSSData
|
|
ldr r0, [r0]
|
|
ldr r2, _08096744 @ =0x00002226
|
|
adds r1, r0, r2
|
|
ldrh r0, [r1]
|
|
cmp r0, 0
|
|
bne _08096748
|
|
movs r0, 0
|
|
b _080967AE
|
|
.align 2, 0
|
|
_08096740: .4byte sPSSData
|
|
_08096744: .4byte 0x00002226
|
|
_08096748:
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
ldrh r1, [r1]
|
|
movs r0, 0x19
|
|
subs r5, r0, r1
|
|
movs r4, 0
|
|
cmp r4, r5
|
|
bge _08096798
|
|
_08096758:
|
|
movs r0, 0
|
|
movs r1, 0xA
|
|
bl GetBgAttribute
|
|
adds r1, r0, 0
|
|
ldr r0, _080967B8 @ =sPSSData
|
|
ldr r0, [r0]
|
|
ldr r2, _080967BC @ =0x00002226
|
|
adds r0, r2
|
|
adds r1, 0x14
|
|
ldrh r0, [r0]
|
|
adds r1, r0
|
|
adds r1, r4
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
lsls r2, r4, 24
|
|
lsrs r2, 24
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
movs r0, 0x8
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0xF
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x19
|
|
str r0, [sp, 0xC]
|
|
movs r0, 0
|
|
movs r3, 0xC
|
|
bl WriteSequenceToBgTilemapBuffer
|
|
adds r4, 0x1
|
|
cmp r4, r5
|
|
blt _08096758
|
|
_08096798:
|
|
adds r0, r5, 0
|
|
bl sub_8096898
|
|
ldr r0, _080967B8 @ =sPSSData
|
|
ldr r0, [r0]
|
|
ldr r1, _080967BC @ =0x00002226
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
_080967AE:
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080967B8: .4byte sPSSData
|
|
_080967BC: .4byte 0x00002226
|
|
thumb_func_end sub_8096728
|
|
|
|
thumb_func_start sub_80967C0
|
|
sub_80967C0: @ 80967C0
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
ldr r5, _080967D8 @ =sPSSData
|
|
ldr r0, [r5]
|
|
ldr r4, _080967DC @ =0x00002226
|
|
adds r0, r4
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x19
|
|
bne _080967E0
|
|
movs r0, 0
|
|
b _08096886
|
|
.align 2, 0
|
|
_080967D8: .4byte sPSSData
|
|
_080967DC: .4byte 0x00002226
|
|
_080967E0:
|
|
cmp r0, 0
|
|
bne _080967FC
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
movs r0, 0xA
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0x19
|
|
movs r3, 0xB
|
|
bl FillBgTilemapBufferRect
|
|
_080967FC:
|
|
ldr r1, [r5]
|
|
adds r1, r4
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
ldrh r1, [r1]
|
|
movs r0, 0x19
|
|
subs r5, r0, r1
|
|
movs r4, 0
|
|
cmp r4, r5
|
|
bge _08096852
|
|
_08096812:
|
|
movs r0, 0
|
|
movs r1, 0xA
|
|
bl GetBgAttribute
|
|
adds r1, r0, 0
|
|
ldr r0, _08096890 @ =sPSSData
|
|
ldr r0, [r0]
|
|
ldr r2, _08096894 @ =0x00002226
|
|
adds r0, r2
|
|
adds r1, 0x14
|
|
ldrh r0, [r0]
|
|
adds r1, r0
|
|
adds r1, r4
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
lsls r2, r4, 24
|
|
lsrs r2, 24
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
movs r0, 0x8
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0xF
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x19
|
|
str r0, [sp, 0xC]
|
|
movs r0, 0
|
|
movs r3, 0xC
|
|
bl WriteSequenceToBgTilemapBuffer
|
|
adds r4, 0x1
|
|
cmp r4, r5
|
|
blt _08096812
|
|
_08096852:
|
|
adds r0, r5, 0
|
|
bl sub_8096898
|
|
lsls r2, r5, 24
|
|
lsrs r2, 24
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
movs r0, 0xA
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r3, 0xB
|
|
bl FillBgTilemapBufferRect
|
|
ldr r0, _08096890 @ =sPSSData
|
|
ldr r0, [r0]
|
|
ldr r1, _08096894 @ =0x00002226
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
movs r0, 0x19
|
|
eors r1, r0
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
_08096886:
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08096890: .4byte sPSSData
|
|
_08096894: .4byte 0x00002226
|
|
thumb_func_end sub_80967C0
|
|
|
|
thumb_func_start sub_8096898
|
|
sub_8096898: @ 8096898
|
|
push {r4-r7,lr}
|
|
sub sp, 0xC
|
|
adds r7, r0, 0
|
|
cmp r7, 0
|
|
beq _080968D0
|
|
movs r1, 0xD2
|
|
lsls r1, 1
|
|
lsls r4, r7, 24
|
|
lsrs r4, 24
|
|
str r4, [sp]
|
|
movs r6, 0x1
|
|
str r6, [sp, 0x4]
|
|
movs r5, 0xF
|
|
str r5, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
movs r3, 0xB
|
|
bl FillBgTilemapBufferRect
|
|
ldr r1, _08096920 @ =0x000009a4
|
|
str r4, [sp]
|
|
str r6, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
movs r3, 0x14
|
|
bl FillBgTilemapBufferRect
|
|
_080968D0:
|
|
ldr r1, _08096924 @ =0x000001a5
|
|
lsls r5, r7, 24
|
|
lsrs r5, 24
|
|
movs r4, 0x1
|
|
str r4, [sp]
|
|
movs r0, 0x8
|
|
str r0, [sp, 0x4]
|
|
movs r6, 0xF
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
adds r2, r5, 0
|
|
movs r3, 0xC
|
|
bl FillBgTilemapBufferRect
|
|
movs r1, 0xD3
|
|
lsls r1, 1
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
adds r2, r5, 0
|
|
movs r3, 0xB
|
|
bl FillBgTilemapBufferRect
|
|
ldr r1, _08096928 @ =0x000001a7
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
adds r2, r5, 0
|
|
movs r3, 0x14
|
|
bl FillBgTilemapBufferRect
|
|
movs r0, 0
|
|
bl ScheduleBgCopyTilemapToVram
|
|
add sp, 0xC
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08096920: .4byte 0x000009a4
|
|
_08096924: .4byte 0x000001a5
|
|
_08096928: .4byte 0x000001a7
|
|
thumb_func_end sub_8096898
|
|
|
|
thumb_func_start sub_809692C
|
|
sub_809692C: @ 809692C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809694C
|
|
ldrh r0, [r4, 0x2E]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0
|
|
bl sub_8096624
|
|
ldr r0, _08096954 @ =SpriteCallbackDummy
|
|
str r0, [r4, 0x1C]
|
|
_0809694C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08096954: .4byte SpriteCallbackDummy
|
|
thumb_func_end sub_809692C
|
|
|
|
thumb_func_start sub_8096958
|
|
sub_8096958: @ 8096958
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r3, r0]
|
|
cmp r1, 0
|
|
beq _0809696A
|
|
cmp r1, 0x1
|
|
beq _08096986
|
|
b _080969B4
|
|
_0809696A:
|
|
ldrh r0, [r3, 0x20]
|
|
lsls r0, 4
|
|
strh r0, [r3, 0x30]
|
|
ldrh r0, [r3, 0x22]
|
|
lsls r0, 4
|
|
strh r0, [r3, 0x32]
|
|
movs r0, 0xA
|
|
strh r0, [r3, 0x34]
|
|
movs r0, 0x15
|
|
strh r0, [r3, 0x36]
|
|
strh r1, [r3, 0x38]
|
|
ldrh r0, [r3, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x2E]
|
|
_08096986:
|
|
ldrh r1, [r3, 0x30]
|
|
ldrh r0, [r3, 0x34]
|
|
subs r1, r0
|
|
strh r1, [r3, 0x30]
|
|
ldrh r0, [r3, 0x32]
|
|
ldrh r2, [r3, 0x36]
|
|
subs r0, r2
|
|
strh r0, [r3, 0x32]
|
|
lsls r1, 16
|
|
asrs r1, 20
|
|
strh r1, [r3, 0x20]
|
|
lsls r0, 16
|
|
asrs r0, 20
|
|
strh r0, [r3, 0x22]
|
|
ldrh r0, [r3, 0x38]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xB
|
|
ble _080969B4
|
|
ldr r0, _080969B8 @ =sub_80969BC
|
|
str r0, [r3, 0x1C]
|
|
_080969B4:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080969B8: .4byte sub_80969BC
|
|
thumb_func_end sub_8096958
|
|
|
|
thumb_func_start sub_80969BC
|
|
sub_80969BC: @ 80969BC
|
|
ldr r1, _080969F0 @ =sPSSData
|
|
ldr r3, [r1]
|
|
movs r1, 0xCB
|
|
lsls r1, 4
|
|
adds r3, r1
|
|
ldr r1, [r3]
|
|
ldrh r1, [r1, 0x20]
|
|
adds r1, 0x4
|
|
strh r1, [r0, 0x20]
|
|
ldr r2, [r3]
|
|
ldrh r1, [r2, 0x26]
|
|
ldrh r2, [r2, 0x22]
|
|
adds r1, r2
|
|
adds r1, 0x8
|
|
strh r1, [r0, 0x22]
|
|
ldr r1, [r3]
|
|
ldrb r1, [r1, 0x5]
|
|
movs r2, 0xC
|
|
ands r2, r1
|
|
ldrb r3, [r0, 0x5]
|
|
movs r1, 0xD
|
|
negs r1, r1
|
|
ands r1, r3
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x5]
|
|
bx lr
|
|
.align 2, 0
|
|
_080969F0: .4byte sPSSData
|
|
thumb_func_end sub_80969BC
|
|
|
|
thumb_func_start sub_80969F4
|
|
sub_80969F4: @ 80969F4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
cmp r1, 0
|
|
beq _08096A06
|
|
cmp r1, 0x1
|
|
beq _08096A22
|
|
b _08096A6A
|
|
_08096A06:
|
|
ldrh r0, [r4, 0x20]
|
|
lsls r0, 4
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r4, 0x22]
|
|
lsls r0, 4
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0xA
|
|
strh r0, [r4, 0x34]
|
|
movs r0, 0x15
|
|
strh r0, [r4, 0x36]
|
|
strh r1, [r4, 0x38]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
_08096A22:
|
|
ldrh r0, [r4, 0x34]
|
|
ldrh r1, [r4, 0x30]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x30]
|
|
ldrh r1, [r4, 0x36]
|
|
ldrh r2, [r4, 0x32]
|
|
adds r1, r2
|
|
strh r1, [r4, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 20
|
|
strh r0, [r4, 0x20]
|
|
lsls r1, 16
|
|
asrs r1, 20
|
|
strh r1, [r4, 0x22]
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xB
|
|
ble _08096A6A
|
|
adds r0, r4, 0
|
|
bl sub_80962A8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x3A]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldrh r2, [r4, 0x3C]
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
bl sub_80962F0
|
|
ldr r0, _08096A70 @ =SpriteCallbackDummy
|
|
str r0, [r4, 0x1C]
|
|
_08096A6A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08096A70: .4byte SpriteCallbackDummy
|
|
thumb_func_end sub_80969F4
|
|
|
|
thumb_func_start sub_8096A74
|
|
sub_8096A74: @ 8096A74
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
cmp r1, 0
|
|
beq _08096A86
|
|
cmp r1, 0x1
|
|
beq _08096AA2
|
|
b _08096B00
|
|
_08096A86:
|
|
ldrh r0, [r4, 0x20]
|
|
lsls r0, 4
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r4, 0x22]
|
|
lsls r0, 4
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0xA
|
|
strh r0, [r4, 0x34]
|
|
movs r0, 0x15
|
|
strh r0, [r4, 0x36]
|
|
strh r1, [r4, 0x38]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
_08096AA2:
|
|
ldrh r1, [r4, 0x30]
|
|
ldrh r0, [r4, 0x34]
|
|
subs r1, r0
|
|
strh r1, [r4, 0x30]
|
|
ldrh r0, [r4, 0x32]
|
|
ldrh r2, [r4, 0x36]
|
|
subs r0, r2
|
|
strh r0, [r4, 0x32]
|
|
lsls r1, 16
|
|
asrs r1, 20
|
|
strh r1, [r4, 0x20]
|
|
lsls r0, 16
|
|
asrs r0, 20
|
|
strh r0, [r4, 0x22]
|
|
ldr r1, _08096B08 @ =gSineTable
|
|
movs r2, 0x38
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, 4
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
lsls r0, 16
|
|
asrs r0, 20
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xB
|
|
ble _08096B00
|
|
adds r0, r4, 0
|
|
bl sub_80962A8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x3A]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldrh r2, [r4, 0x3C]
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
bl sub_80962F0
|
|
movs r0, 0
|
|
strh r0, [r4, 0x24]
|
|
ldr r0, _08096B0C @ =sub_80969BC
|
|
str r0, [r4, 0x1C]
|
|
_08096B00:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08096B08: .4byte gSineTable
|
|
_08096B0C: .4byte sub_80969BC
|
|
thumb_func_end sub_8096A74
|
|
|
|
thumb_func_start sub_8096B10
|
|
sub_8096B10: @ 8096B10
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r1, [r4, r0]
|
|
cmp r1, 0
|
|
beq _08096B22
|
|
cmp r1, 0x1
|
|
beq _08096B3E
|
|
b _08096B9E
|
|
_08096B22:
|
|
ldrh r0, [r4, 0x20]
|
|
lsls r0, 4
|
|
strh r0, [r4, 0x30]
|
|
ldrh r0, [r4, 0x22]
|
|
lsls r0, 4
|
|
strh r0, [r4, 0x32]
|
|
movs r0, 0xA
|
|
strh r0, [r4, 0x34]
|
|
movs r0, 0x15
|
|
strh r0, [r4, 0x36]
|
|
strh r1, [r4, 0x38]
|
|
ldrh r0, [r4, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2E]
|
|
_08096B3E:
|
|
ldrh r0, [r4, 0x34]
|
|
ldrh r1, [r4, 0x30]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x30]
|
|
ldrh r1, [r4, 0x36]
|
|
ldrh r2, [r4, 0x32]
|
|
adds r1, r2
|
|
strh r1, [r4, 0x32]
|
|
lsls r0, 16
|
|
asrs r0, 20
|
|
strh r0, [r4, 0x20]
|
|
lsls r1, 16
|
|
asrs r1, 20
|
|
strh r1, [r4, 0x22]
|
|
ldr r1, _08096BA4 @ =gSineTable
|
|
movs r2, 0x38
|
|
ldrsh r0, [r4, r2]
|
|
lsls r0, 4
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
lsls r0, 16
|
|
asrs r0, 20
|
|
negs r0, r0
|
|
strh r0, [r4, 0x24]
|
|
ldrh r0, [r4, 0x38]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xB
|
|
ble _08096B9E
|
|
adds r0, r4, 0
|
|
bl sub_80962A8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r4, 0x3A]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldrh r2, [r4, 0x3C]
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
bl sub_80962F0
|
|
ldr r0, _08096BA8 @ =SpriteCallbackDummy
|
|
str r0, [r4, 0x1C]
|
|
movs r0, 0
|
|
strh r0, [r4, 0x24]
|
|
_08096B9E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08096BA4: .4byte gSineTable
|
|
_08096BA8: .4byte SpriteCallbackDummy
|
|
thumb_func_end sub_8096B10
|
|
|
|
thumb_func_start sub_8096BAC
|
|
sub_8096BAC: @ 8096BAC
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r0, [r2, 0x22]
|
|
subs r0, 0x8
|
|
strh r0, [r2, 0x22]
|
|
movs r1, 0x22
|
|
ldrsh r0, [r2, r1]
|
|
movs r3, 0x26
|
|
ldrsh r1, [r2, r3]
|
|
adds r0, r1
|
|
movs r1, 0x10
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bge _08096BDC
|
|
ldr r0, _08096BE0 @ =SpriteCallbackDummy
|
|
str r0, [r2, 0x1C]
|
|
adds r0, r2, 0
|
|
bl sub_80962A8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0
|
|
bl sub_8096624
|
|
_08096BDC:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08096BE0: .4byte SpriteCallbackDummy
|
|
thumb_func_end sub_8096BAC
|
|
|
|
@ file boundary?
|
|
|
|
thumb_func_start sub_8096BE4
|
|
sub_8096BE4: @ 8096BE4
|
|
ldr r3, _08096BF4 @ =gUnknown_203982C
|
|
str r0, [r3]
|
|
str r1, [r0]
|
|
movs r1, 0
|
|
strb r2, [r0, 0x5]
|
|
strb r1, [r0, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_08096BF4: .4byte gUnknown_203982C
|
|
thumb_func_end sub_8096BE4
|
|
|
|
thumb_func_start sub_8096BF8
|
|
sub_8096BF8: @ 8096BF8
|
|
push {r4,r5,lr}
|
|
ldr r2, _08096C3C @ =gUnknown_203982C
|
|
ldr r1, [r2]
|
|
ldrb r0, [r1, 0x4]
|
|
cmp r0, 0
|
|
beq _08096C36
|
|
movs r4, 0
|
|
ldrb r1, [r1, 0x4]
|
|
cmp r4, r1
|
|
bcs _08096C2E
|
|
adds r5, r2, 0
|
|
_08096C0E:
|
|
ldr r0, [r5]
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 2
|
|
ldr r0, [r0]
|
|
adds r0, r1
|
|
ldr r1, [r0, 0x10]
|
|
bl _call_via_r1
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, 0x4]
|
|
cmp r4, r0
|
|
bcc _08096C0E
|
|
_08096C2E:
|
|
ldr r0, _08096C3C @ =gUnknown_203982C
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
strb r0, [r1, 0x4]
|
|
_08096C36:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08096C3C: .4byte gUnknown_203982C
|
|
thumb_func_end sub_8096BF8
|
|
|
|
thumb_func_start sub_8096C40
|
|
sub_8096C40: @ 8096C40
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
mov r9, r0
|
|
mov r10, r3
|
|
ldr r0, [sp, 0x24]
|
|
ldr r3, [sp, 0x28]
|
|
ldr r4, [sp, 0x2C]
|
|
ldr r5, [sp, 0x30]
|
|
ldr r6, [sp, 0x34]
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r12, r1
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
str r2, [sp]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
lsls r3, 16
|
|
lsrs r3, 16
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
lsls r6, 16
|
|
lsrs r6, 16
|
|
ldr r0, _08096CC0 @ =gUnknown_203982C
|
|
ldr r2, [r0]
|
|
ldrb r0, [r2, 0x4]
|
|
adds r1, r0, 0
|
|
ldrb r7, [r2, 0x5]
|
|
cmp r1, r7
|
|
bcs _08096CC8
|
|
adds r0, 0x1
|
|
strb r0, [r2, 0x4]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, [r2]
|
|
adds r1, r0
|
|
lsls r0, r4, 1
|
|
strh r0, [r1, 0x8]
|
|
ldr r2, [sp]
|
|
lsls r0, r2, 5
|
|
add r0, r12
|
|
lsls r0, 1
|
|
add r0, r9
|
|
str r0, [r1, 0x4]
|
|
adds r0, r3, 0
|
|
muls r0, r6
|
|
add r0, r8
|
|
lsls r0, 1
|
|
add r0, r10
|
|
str r0, [r1]
|
|
strh r5, [r1, 0xC]
|
|
strh r6, [r1, 0xA]
|
|
ldr r0, _08096CC4 @ =sub_8096CDC
|
|
str r0, [r1, 0x10]
|
|
movs r0, 0x1
|
|
b _08096CCA
|
|
.align 2, 0
|
|
_08096CC0: .4byte gUnknown_203982C
|
|
_08096CC4: .4byte sub_8096CDC
|
|
_08096CC8:
|
|
movs r0, 0
|
|
_08096CCA:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8096C40
|
|
|
|
thumb_func_start sub_8096CDC
|
|
sub_8096CDC: @ 8096CDC
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r5, 0
|
|
b _08096D06
|
|
_08096CE4:
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, 0x4]
|
|
ldrh r2, [r4, 0x8]
|
|
lsrs r2, 1
|
|
bl CpuSet
|
|
ldr r0, [r4, 0x4]
|
|
adds r0, 0x40
|
|
str r0, [r4, 0x4]
|
|
ldrh r1, [r4, 0xA]
|
|
lsls r1, 1
|
|
ldr r0, [r4]
|
|
adds r0, r1
|
|
str r0, [r4]
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
_08096D06:
|
|
ldrh r0, [r4, 0xC]
|
|
cmp r5, r0
|
|
bcc _08096CE4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8096CDC
|
|
|
|
thumb_func_start sub_8096D14
|
|
sub_8096D14: @ 8096D14
|
|
push {r4-r7,lr}
|
|
mov r12, r0
|
|
ldr r0, [sp, 0x14]
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
lsls r2, 16
|
|
lsrs r4, r2, 16
|
|
lsls r3, 16
|
|
lsrs r3, 16
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
ldr r0, _08096D60 @ =gUnknown_203982C
|
|
ldr r2, [r0]
|
|
ldrb r0, [r2, 0x4]
|
|
adds r1, r0, 0
|
|
ldrb r7, [r2, 0x5]
|
|
cmp r1, r7
|
|
bcs _08096D68
|
|
adds r0, 0x1
|
|
strb r0, [r2, 0x4]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, [r2]
|
|
adds r1, r0
|
|
lsls r0, r3, 1
|
|
strh r0, [r1, 0x8]
|
|
lsls r0, r4, 5
|
|
adds r0, r6
|
|
lsls r0, 1
|
|
add r0, r12
|
|
str r0, [r1, 0x4]
|
|
strh r5, [r1, 0xC]
|
|
ldr r0, _08096D64 @ =sub_8096D70
|
|
str r0, [r1, 0x10]
|
|
movs r0, 0x1
|
|
b _08096D6A
|
|
.align 2, 0
|
|
_08096D60: .4byte gUnknown_203982C
|
|
_08096D64: .4byte sub_8096D70
|
|
_08096D68:
|
|
movs r0, 0
|
|
_08096D6A:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8096D14
|
|
|
|
thumb_func_start sub_8096D70
|
|
sub_8096D70: @ 8096D70
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
movs r0, 0
|
|
ldrh r1, [r6, 0xC]
|
|
cmp r0, r1
|
|
bcs _08096DFE
|
|
movs r7, 0x80
|
|
lsls r7, 5
|
|
mov r5, sp
|
|
ldr r2, _08096DBC @ =0x040000d4
|
|
mov r8, r2
|
|
movs r1, 0x81
|
|
lsls r1, 24
|
|
mov r10, r1
|
|
_08096D96:
|
|
ldr r2, [r6, 0x4]
|
|
ldrh r3, [r6, 0x8]
|
|
mov r12, r2
|
|
adds r0, 0x1
|
|
mov r9, r0
|
|
cmp r3, r7
|
|
bhi _08096DC0
|
|
movs r0, 0
|
|
strh r0, [r5]
|
|
mov r2, sp
|
|
mov r0, r8
|
|
str r2, [r0]
|
|
mov r1, r12
|
|
str r1, [r0, 0x4]
|
|
lsrs r0, r3, 1
|
|
mov r2, r10
|
|
orrs r0, r2
|
|
mov r1, r8
|
|
b _08096DE8
|
|
.align 2, 0
|
|
_08096DBC: .4byte 0x040000d4
|
|
_08096DC0:
|
|
movs r4, 0
|
|
strh r4, [r5]
|
|
ldr r1, _08096E10 @ =0x040000d4
|
|
mov r0, sp
|
|
str r0, [r1]
|
|
str r2, [r1, 0x4]
|
|
ldr r0, _08096E14 @ =0x81000800
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
adds r2, r7
|
|
subs r3, r7
|
|
cmp r3, r7
|
|
bhi _08096DC0
|
|
strh r4, [r5]
|
|
mov r0, sp
|
|
str r0, [r1]
|
|
str r2, [r1, 0x4]
|
|
lsrs r0, r3, 1
|
|
mov r2, r10
|
|
orrs r0, r2
|
|
_08096DE8:
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
mov r0, r12
|
|
adds r0, 0x40
|
|
str r0, [r6, 0x4]
|
|
mov r1, r9
|
|
lsls r0, r1, 16
|
|
lsrs r0, 16
|
|
ldrh r2, [r6, 0xC]
|
|
cmp r0, r2
|
|
bcc _08096D96
|
|
_08096DFE:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08096E10: .4byte 0x040000d4
|
|
_08096E14: .4byte 0x81000800
|
|
thumb_func_end sub_8096D70
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|