mirror of
https://github.com/pret/pokeruby.git
synced 2025-03-04 19:07:03 +00:00
3970 lines
66 KiB
ArmAsm
3970 lines
66 KiB
ArmAsm
.include "constants/gba_constants.inc"
|
|
.include "constants/species_constants.inc"
|
|
.include "asm/macros.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_80FA8EC
|
|
sub_80FA8EC: @ 80FA8EC
|
|
push {lr}
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
bl sub_80FA904
|
|
_080FA8F6:
|
|
bl sub_80FA940
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080FA8F6
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80FA8EC
|
|
|
|
thumb_func_start sub_80FA904
|
|
sub_80FA904: @ 80FA904
|
|
push {r4,lr}
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r3, _080FA928 @ =gUnknown_020388CC
|
|
str r0, [r3]
|
|
movs r2, 0x79
|
|
adds r2, r0
|
|
mov r12, r2
|
|
movs r2, 0
|
|
mov r4, r12
|
|
strb r2, [r4]
|
|
adds r0, 0x78
|
|
strb r1, [r0]
|
|
ldr r3, [r3]
|
|
cmp r1, 0
|
|
bne _080FA930
|
|
ldr r0, _080FA92C @ =sub_80FAB78
|
|
b _080FA932
|
|
.align 2, 0
|
|
_080FA928: .4byte gUnknown_020388CC
|
|
_080FA92C: .4byte sub_80FAB78
|
|
_080FA930:
|
|
ldr r0, _080FA93C @ =sub_80FAD04
|
|
_080FA932:
|
|
str r0, [r3, 0x18]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FA93C: .4byte sub_80FAD04
|
|
thumb_func_end sub_80FA904
|
|
|
|
thumb_func_start sub_80FA940
|
|
sub_80FA940: @ 80FA940
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
ldr r0, _080FA95C @ =gUnknown_020388CC
|
|
ldr r0, [r0]
|
|
adds r0, 0x79
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x7
|
|
bls _080FA952
|
|
b _080FAAE2
|
|
_080FA952:
|
|
lsls r0, 2
|
|
ldr r1, _080FA960 @ =_080FA964
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080FA95C: .4byte gUnknown_020388CC
|
|
_080FA960: .4byte _080FA964
|
|
.align 2, 0
|
|
_080FA964:
|
|
.4byte _080FA984
|
|
.4byte _080FA998
|
|
.4byte _080FA9AC
|
|
.4byte _080FA9BC
|
|
.4byte _080FA9D8
|
|
.4byte _080FA9F4
|
|
.4byte _080FAA38
|
|
.4byte _080FAAB4
|
|
_080FA984:
|
|
ldr r0, _080FA990 @ =gUnknown_083E5DA0
|
|
ldr r1, _080FA994 @ =0x06008000
|
|
bl LZ77UnCompVram
|
|
b _080FAAF4
|
|
.align 2, 0
|
|
_080FA990: .4byte gUnknown_083E5DA0
|
|
_080FA994: .4byte 0x06008000
|
|
_080FA998:
|
|
ldr r0, _080FA9A4 @ =gUnknown_083E6B04
|
|
ldr r1, _080FA9A8 @ =0x0600e000
|
|
bl LZ77UnCompVram
|
|
b _080FAAF4
|
|
.align 2, 0
|
|
_080FA9A4: .4byte gUnknown_083E6B04
|
|
_080FA9A8: .4byte 0x0600e000
|
|
_080FA9AC:
|
|
ldr r0, _080FA9B8 @ =gUnknown_083E5D60
|
|
movs r1, 0x70
|
|
movs r2, 0x60
|
|
bl LoadPalette
|
|
b _080FAAF4
|
|
.align 2, 0
|
|
_080FA9B8: .4byte gUnknown_083E5D60
|
|
_080FA9BC:
|
|
ldr r0, _080FA9D0 @ =gUnknown_083E5AF0
|
|
ldr r1, _080FA9D4 @ =gUnknown_020388CC
|
|
ldr r1, [r1]
|
|
movs r2, 0xC0
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
bl LZ77UnCompWram
|
|
b _080FAAF4
|
|
.align 2, 0
|
|
_080FA9D0: .4byte gUnknown_083E5AF0
|
|
_080FA9D4: .4byte gUnknown_020388CC
|
|
_080FA9D8:
|
|
ldr r0, _080FA9EC @ =gUnknown_083E5B34
|
|
ldr r1, _080FA9F0 @ =gUnknown_020388CC
|
|
ldr r1, [r1]
|
|
movs r3, 0xA0
|
|
lsls r3, 2
|
|
adds r1, r3
|
|
bl LZ77UnCompWram
|
|
b _080FAAF4
|
|
.align 2, 0
|
|
_080FA9EC: .4byte gUnknown_083E5B34
|
|
_080FA9F0: .4byte gUnknown_020388CC
|
|
_080FA9F4:
|
|
bl sub_80FB32C
|
|
ldr r4, _080FAA34 @ =gUnknown_020388CC
|
|
ldr r2, [r4]
|
|
adds r0, r2, 0
|
|
adds r0, 0x54
|
|
ldrh r1, [r0]
|
|
adds r0, 0x20
|
|
strh r1, [r0]
|
|
subs r0, 0x1E
|
|
ldrh r0, [r0]
|
|
adds r1, r2, 0
|
|
adds r1, 0x76
|
|
strh r0, [r1]
|
|
ldrh r0, [r2, 0x14]
|
|
bl sub_80FB758
|
|
ldr r1, [r4]
|
|
strb r0, [r1, 0x16]
|
|
ldr r0, [r4]
|
|
ldrh r0, [r0, 0x14]
|
|
bl sub_80FB9C0
|
|
adds r1, r0, 0
|
|
ldr r0, [r4]
|
|
strh r1, [r0, 0x14]
|
|
ldrh r1, [r0, 0x14]
|
|
movs r2, 0x10
|
|
bl sub_80FBFB4
|
|
b _080FAAF4
|
|
.align 2, 0
|
|
_080FAA34: .4byte gUnknown_020388CC
|
|
_080FAA38:
|
|
ldr r0, _080FAA60 @ =gUnknown_020388CC
|
|
ldr r4, [r0]
|
|
adds r0, r4, 0
|
|
adds r0, 0x78
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
bne _080FAA64
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
str r0, [sp]
|
|
str r0, [sp, 0x4]
|
|
str r1, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_80FB170
|
|
b _080FAAF4
|
|
.align 2, 0
|
|
_080FAA60: .4byte gUnknown_020388CC
|
|
_080FAA64:
|
|
adds r1, r4, 0
|
|
adds r1, 0x54
|
|
ldrh r0, [r1]
|
|
lsls r0, 3
|
|
subs r0, 0x34
|
|
adds r2, r4, 0
|
|
adds r2, 0x5C
|
|
movs r3, 0
|
|
strh r0, [r2]
|
|
movs r5, 0x56
|
|
adds r5, r4
|
|
mov r12, r5
|
|
ldrh r0, [r5]
|
|
lsls r0, 3
|
|
subs r0, 0x44
|
|
adds r5, r4, 0
|
|
adds r5, 0x5E
|
|
strh r0, [r5]
|
|
ldrh r1, [r1]
|
|
adds r0, r4, 0
|
|
adds r0, 0x64
|
|
strh r1, [r0]
|
|
mov r0, r12
|
|
ldrh r1, [r0]
|
|
adds r0, r4, 0
|
|
adds r0, 0x66
|
|
strh r1, [r0]
|
|
movs r1, 0
|
|
ldrsh r0, [r2, r1]
|
|
movs r2, 0
|
|
ldrsh r1, [r5, r2]
|
|
movs r2, 0x80
|
|
str r2, [sp]
|
|
str r2, [sp, 0x4]
|
|
str r3, [sp, 0x8]
|
|
movs r2, 0x38
|
|
movs r3, 0x48
|
|
bl sub_80FB170
|
|
b _080FAAF4
|
|
_080FAAB4:
|
|
bl sub_80FBA18
|
|
bl sub_80FB260
|
|
ldr r2, _080FAAE8 @ =gUnknown_020388CC
|
|
ldr r0, [r2]
|
|
movs r1, 0
|
|
str r1, [r0, 0x1C]
|
|
str r1, [r0, 0x20]
|
|
adds r0, 0x7A
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0x7E
|
|
strb r1, [r0]
|
|
ldr r1, _080FAAEC @ =REG_BG2CNT
|
|
ldr r3, _080FAAF0 @ =0x0000bc8a
|
|
adds r0, r3, 0
|
|
strh r0, [r1]
|
|
ldr r1, [r2]
|
|
adds r1, 0x79
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_080FAAE2:
|
|
movs r0, 0
|
|
b _080FAB02
|
|
.align 2, 0
|
|
_080FAAE8: .4byte gUnknown_020388CC
|
|
_080FAAEC: .4byte REG_BG2CNT
|
|
_080FAAF0: .4byte 0x0000bc8a
|
|
_080FAAF4:
|
|
ldr r0, _080FAB0C @ =gUnknown_020388CC
|
|
ldr r1, [r0]
|
|
adds r1, 0x79
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
_080FAB02:
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080FAB0C: .4byte gUnknown_020388CC
|
|
thumb_func_end sub_80FA940
|
|
|
|
thumb_func_start sub_80FAB10
|
|
sub_80FAB10: @ 80FAB10
|
|
push {r4,lr}
|
|
ldr r4, _080FAB5C @ =gUnknown_020388CC
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x1C]
|
|
cmp r0, 0
|
|
beq _080FAB34
|
|
bl DestroySprite
|
|
ldr r0, [r4]
|
|
adds r0, 0x58
|
|
ldrh r0, [r0]
|
|
bl FreeSpriteTilesByTag
|
|
ldr r0, [r4]
|
|
adds r0, 0x5A
|
|
ldrh r0, [r0]
|
|
bl FreeSpritePaletteByTag
|
|
_080FAB34:
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x20]
|
|
cmp r0, 0
|
|
beq _080FAB54
|
|
bl DestroySprite
|
|
ldr r0, [r4]
|
|
adds r0, 0x70
|
|
ldrh r0, [r0]
|
|
bl FreeSpriteTilesByTag
|
|
ldr r0, [r4]
|
|
adds r0, 0x72
|
|
ldrh r0, [r0]
|
|
bl FreeSpritePaletteByTag
|
|
_080FAB54:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FAB5C: .4byte gUnknown_020388CC
|
|
thumb_func_end sub_80FAB10
|
|
|
|
thumb_func_start sub_80FAB60
|
|
sub_80FAB60: @ 80FAB60
|
|
push {lr}
|
|
ldr r0, _080FAB74 @ =gUnknown_020388CC
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x18]
|
|
bl _call_via_r0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080FAB74: .4byte gUnknown_020388CC
|
|
thumb_func_end sub_80FAB60
|
|
|
|
thumb_func_start sub_80FAB78
|
|
sub_80FAB78: @ 80FAB78
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
ldr r2, _080FAC14 @ =gUnknown_020388CC
|
|
ldr r0, [r2]
|
|
adds r0, 0x7B
|
|
strb r4, [r0]
|
|
ldr r0, [r2]
|
|
adds r0, 0x7C
|
|
strb r4, [r0]
|
|
ldr r3, _080FAC18 @ =gMain
|
|
ldrh r1, [r3, 0x2C]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080FABAA
|
|
ldr r1, [r2]
|
|
adds r0, r1, 0
|
|
adds r0, 0x56
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x2
|
|
bls _080FABAA
|
|
adds r1, 0x7C
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
movs r4, 0x1
|
|
_080FABAA:
|
|
ldrh r1, [r3, 0x2C]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080FABC8
|
|
ldr r1, [r2]
|
|
adds r0, r1, 0
|
|
adds r0, 0x56
|
|
ldrh r0, [r0]
|
|
cmp r0, 0xF
|
|
bhi _080FABC8
|
|
adds r1, 0x7C
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
movs r4, 0x1
|
|
_080FABC8:
|
|
ldrh r1, [r3, 0x2C]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080FABE6
|
|
ldr r1, [r2]
|
|
adds r0, r1, 0
|
|
adds r0, 0x54
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x1
|
|
bls _080FABE6
|
|
adds r1, 0x7B
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
movs r4, 0x1
|
|
_080FABE6:
|
|
ldrh r1, [r3, 0x2C]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080FAC04
|
|
ldr r1, [r2]
|
|
adds r0, r1, 0
|
|
adds r0, 0x54
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x1B
|
|
bhi _080FAC04
|
|
adds r1, 0x7B
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
movs r4, 0x1
|
|
_080FAC04:
|
|
ldrh r3, [r3, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _080FAC1C
|
|
movs r4, 0x4
|
|
b _080FAC26
|
|
.align 2, 0
|
|
_080FAC14: .4byte gUnknown_020388CC
|
|
_080FAC18: .4byte gMain
|
|
_080FAC1C:
|
|
movs r0, 0x2
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _080FAC26
|
|
movs r4, 0x5
|
|
_080FAC26:
|
|
cmp r4, 0x1
|
|
bne _080FAC38
|
|
ldr r0, [r2]
|
|
adds r0, 0x7A
|
|
movs r1, 0x4
|
|
strb r1, [r0]
|
|
ldr r1, [r2]
|
|
ldr r0, _080FAC40 @ =_swiopen
|
|
str r0, [r1, 0x18]
|
|
_080FAC38:
|
|
adds r0, r4, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080FAC40: .4byte _swiopen
|
|
thumb_func_end sub_80FAB78
|
|
|
|
thumb_func_start _swiopen
|
|
_swiopen: @ 80FAC44
|
|
push {r4,r5,lr}
|
|
ldr r5, _080FAC5C @ =gUnknown_020388CC
|
|
ldr r1, [r5]
|
|
adds r0, r1, 0
|
|
adds r0, 0x7A
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0
|
|
beq _080FAC60
|
|
movs r0, 0x2
|
|
b _080FACFA
|
|
.align 2, 0
|
|
_080FAC5C: .4byte gUnknown_020388CC
|
|
_080FAC60:
|
|
adds r0, r1, 0
|
|
adds r0, 0x7B
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0
|
|
ble _080FAC76
|
|
adds r1, 0x54
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
_080FAC76:
|
|
ldr r1, [r5]
|
|
adds r0, r1, 0
|
|
adds r0, 0x7B
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0
|
|
bge _080FAC8E
|
|
adds r1, 0x54
|
|
ldrh r0, [r1]
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
_080FAC8E:
|
|
ldr r1, [r5]
|
|
adds r0, r1, 0
|
|
adds r0, 0x7C
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0
|
|
ble _080FACA6
|
|
adds r1, 0x56
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
_080FACA6:
|
|
ldr r1, [r5]
|
|
adds r0, r1, 0
|
|
adds r0, 0x7C
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0
|
|
bge _080FACBE
|
|
adds r1, 0x56
|
|
ldrh r0, [r1]
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
_080FACBE:
|
|
ldr r1, [r5]
|
|
adds r0, r1, 0
|
|
adds r0, 0x54
|
|
ldrh r0, [r0]
|
|
adds r1, 0x56
|
|
ldrh r1, [r1]
|
|
bl GetRegionMapSectionAt
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
adds r0, r4, 0
|
|
bl sub_80FB758
|
|
ldr r1, [r5]
|
|
strb r0, [r1, 0x16]
|
|
ldr r0, [r5]
|
|
ldrh r1, [r0, 0x14]
|
|
cmp r4, r1
|
|
beq _080FACEE
|
|
strh r4, [r0, 0x14]
|
|
ldrh r1, [r0, 0x14]
|
|
movs r2, 0x10
|
|
bl sub_80FBFB4
|
|
_080FACEE:
|
|
bl sub_80FBA18
|
|
ldr r1, [r5]
|
|
ldr r0, _080FAD00 @ =sub_80FAB78
|
|
str r0, [r1, 0x18]
|
|
movs r0, 0x3
|
|
_080FACFA:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080FAD00: .4byte sub_80FAB78
|
|
thumb_func_end _swiopen
|
|
|
|
thumb_func_start sub_80FAD04
|
|
sub_80FAD04: @ 80FAD04
|
|
push {r4-r6,lr}
|
|
movs r4, 0
|
|
ldr r3, _080FADD4 @ =gUnknown_020388CC
|
|
ldr r0, [r3]
|
|
mov r12, r0
|
|
adds r0, 0x6A
|
|
strh r4, [r0]
|
|
mov r5, r12
|
|
adds r5, 0x68
|
|
strh r4, [r5]
|
|
ldr r2, _080FADD8 @ =gMain
|
|
ldrh r1, [r2, 0x2C]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
adds r6, r3, 0
|
|
adds r3, r2, 0
|
|
cmp r0, 0
|
|
beq _080FAD3E
|
|
mov r0, r12
|
|
adds r0, 0x5E
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0x34
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
ble _080FAD3E
|
|
ldr r0, _080FADDC @ =0x0000ffff
|
|
strh r0, [r5]
|
|
movs r4, 0x1
|
|
_080FAD3E:
|
|
ldrh r1, [r3, 0x2C]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080FAD5E
|
|
ldr r1, [r6]
|
|
adds r0, r1, 0
|
|
adds r0, 0x5E
|
|
movs r5, 0
|
|
ldrsh r0, [r0, r5]
|
|
cmp r0, 0x3B
|
|
bgt _080FAD5E
|
|
adds r1, 0x68
|
|
movs r0, 0x1
|
|
strh r0, [r1]
|
|
movs r4, 0x1
|
|
_080FAD5E:
|
|
ldrh r1, [r3, 0x2C]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080FAD84
|
|
ldr r2, [r6]
|
|
adds r0, r2, 0
|
|
adds r0, 0x5C
|
|
movs r5, 0
|
|
ldrsh r1, [r0, r5]
|
|
movs r0, 0x2C
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
ble _080FAD84
|
|
adds r1, r2, 0
|
|
adds r1, 0x6A
|
|
ldr r0, _080FADDC @ =0x0000ffff
|
|
strh r0, [r1]
|
|
movs r4, 0x1
|
|
_080FAD84:
|
|
ldrh r1, [r3, 0x2C]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080FADA4
|
|
ldr r1, [r6]
|
|
adds r0, r1, 0
|
|
adds r0, 0x5C
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, 0xAB
|
|
bgt _080FADA4
|
|
adds r1, 0x6A
|
|
movs r0, 0x1
|
|
strh r0, [r1]
|
|
movs r4, 0x1
|
|
_080FADA4:
|
|
ldrh r2, [r3, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080FADB0
|
|
movs r4, 0x4
|
|
_080FADB0:
|
|
movs r0, 0x2
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080FADBA
|
|
movs r4, 0x5
|
|
_080FADBA:
|
|
cmp r4, 0x1
|
|
bne _080FADCA
|
|
ldr r0, [r6]
|
|
ldr r1, _080FADE0 @ =sub_80FADE4
|
|
str r1, [r0, 0x18]
|
|
adds r0, 0x6C
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
_080FADCA:
|
|
adds r0, r4, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080FADD4: .4byte gUnknown_020388CC
|
|
_080FADD8: .4byte gMain
|
|
_080FADDC: .4byte 0x0000ffff
|
|
_080FADE0: .4byte sub_80FADE4
|
|
thumb_func_end sub_80FAD04
|
|
|
|
thumb_func_start sub_80FADE4
|
|
sub_80FADE4: @ 80FADE4
|
|
push {r4,r5,lr}
|
|
ldr r5, _080FAEB4 @ =gUnknown_020388CC
|
|
ldr r2, [r5]
|
|
adds r3, r2, 0
|
|
adds r3, 0x5E
|
|
adds r0, r2, 0
|
|
adds r0, 0x68
|
|
ldrh r0, [r0]
|
|
ldrh r1, [r3]
|
|
adds r0, r1
|
|
strh r0, [r3]
|
|
adds r1, r2, 0
|
|
adds r1, 0x5C
|
|
adds r0, r2, 0
|
|
adds r0, 0x6A
|
|
ldrh r0, [r0]
|
|
ldrh r2, [r1]
|
|
adds r0, r2
|
|
strh r0, [r1]
|
|
movs r4, 0
|
|
ldrsh r0, [r1, r4]
|
|
movs r2, 0
|
|
ldrsh r1, [r3, r2]
|
|
bl sub_80FB238
|
|
ldr r2, [r5]
|
|
adds r1, r2, 0
|
|
adds r1, 0x6C
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x8
|
|
bne _080FAEBC
|
|
adds r0, r2, 0
|
|
adds r0, 0x5C
|
|
movs r3, 0
|
|
ldrsh r1, [r0, r3]
|
|
adds r0, r1, 0
|
|
adds r0, 0x2C
|
|
cmp r0, 0
|
|
bge _080FAE3C
|
|
adds r0, 0x7
|
|
_080FAE3C:
|
|
asrs r0, 3
|
|
adds r0, 0x1
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
adds r0, r2, 0
|
|
adds r0, 0x5E
|
|
movs r4, 0
|
|
ldrsh r1, [r0, r4]
|
|
adds r0, r1, 0
|
|
adds r0, 0x34
|
|
cmp r0, 0
|
|
bge _080FAE56
|
|
adds r0, 0x7
|
|
_080FAE56:
|
|
asrs r0, 3
|
|
adds r0, 0x2
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
adds r4, r2, 0
|
|
adds r4, 0x64
|
|
adds r0, r2, 0
|
|
adds r0, 0x66
|
|
ldrh r2, [r4]
|
|
cmp r3, r2
|
|
bne _080FAE72
|
|
ldrh r2, [r0]
|
|
cmp r1, r2
|
|
beq _080FAEA0
|
|
_080FAE72:
|
|
strh r3, [r4]
|
|
strh r1, [r0]
|
|
adds r0, r3, 0
|
|
bl GetRegionMapSectionAt
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
adds r0, r4, 0
|
|
bl sub_80FB758
|
|
ldr r1, [r5]
|
|
strb r0, [r1, 0x16]
|
|
ldr r0, [r5]
|
|
ldrh r3, [r0, 0x14]
|
|
cmp r4, r3
|
|
beq _080FAE9C
|
|
strh r4, [r0, 0x14]
|
|
ldrh r1, [r0, 0x14]
|
|
movs r2, 0x10
|
|
bl sub_80FBFB4
|
|
_080FAE9C:
|
|
bl sub_80FBA18
|
|
_080FAEA0:
|
|
ldr r0, _080FAEB4 @ =gUnknown_020388CC
|
|
ldr r2, [r0]
|
|
adds r1, r2, 0
|
|
adds r1, 0x6C
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r0, _080FAEB8 @ =sub_80FAD04
|
|
str r0, [r2, 0x18]
|
|
movs r0, 0x3
|
|
b _080FAEBE
|
|
.align 2, 0
|
|
_080FAEB4: .4byte gUnknown_020388CC
|
|
_080FAEB8: .4byte sub_80FAD04
|
|
_080FAEBC:
|
|
movs r0, 0x2
|
|
_080FAEBE:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80FADE4
|
|
|
|
thumb_func_start sub_80FAEC4
|
|
sub_80FAEC4: @ 80FAEC4
|
|
push {r4-r6,lr}
|
|
ldr r1, _080FAF40 @ =gUnknown_020388CC
|
|
ldr r2, [r1]
|
|
adds r0, r2, 0
|
|
adds r0, 0x78
|
|
ldrb r3, [r0]
|
|
adds r5, r1, 0
|
|
cmp r3, 0
|
|
bne _080FAF48
|
|
subs r0, 0x1A
|
|
strh r3, [r0]
|
|
subs r0, 0x2
|
|
strh r3, [r0]
|
|
str r3, [r2, 0x40]
|
|
str r3, [r2, 0x3C]
|
|
adds r4, r2, 0
|
|
adds r4, 0x54
|
|
ldrh r0, [r4]
|
|
lsls r0, 3
|
|
subs r0, 0x34
|
|
adds r1, r2, 0
|
|
adds r1, 0x60
|
|
strh r0, [r1]
|
|
movs r0, 0x56
|
|
adds r0, r2
|
|
mov r12, r0
|
|
ldrh r0, [r0]
|
|
lsls r0, 3
|
|
subs r0, 0x44
|
|
adds r3, r2, 0
|
|
adds r3, 0x62
|
|
strh r0, [r3]
|
|
movs r6, 0
|
|
ldrsh r0, [r1, r6]
|
|
lsls r0, 8
|
|
cmp r0, 0
|
|
bge _080FAF10
|
|
adds r0, 0xF
|
|
_080FAF10:
|
|
asrs r0, 4
|
|
str r0, [r2, 0x44]
|
|
movs r1, 0
|
|
ldrsh r0, [r3, r1]
|
|
lsls r0, 8
|
|
cmp r0, 0
|
|
bge _080FAF20
|
|
adds r0, 0xF
|
|
_080FAF20:
|
|
asrs r0, 4
|
|
str r0, [r2, 0x48]
|
|
ldrh r1, [r4]
|
|
adds r0, r2, 0
|
|
adds r0, 0x64
|
|
strh r1, [r0]
|
|
mov r3, r12
|
|
ldrh r0, [r3]
|
|
adds r1, r2, 0
|
|
adds r1, 0x66
|
|
strh r0, [r1]
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
str r0, [r2, 0x4C]
|
|
ldr r0, _080FAF44 @ =0xfffff800
|
|
b _080FAFA6
|
|
.align 2, 0
|
|
_080FAF40: .4byte gUnknown_020388CC
|
|
_080FAF44: .4byte 0xfffff800
|
|
_080FAF48:
|
|
adds r0, r2, 0
|
|
adds r0, 0x5C
|
|
movs r6, 0
|
|
ldrsh r0, [r0, r6]
|
|
lsls r0, 8
|
|
str r0, [r2, 0x3C]
|
|
adds r0, r2, 0
|
|
adds r0, 0x5E
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
lsls r0, 8
|
|
str r0, [r2, 0x40]
|
|
adds r0, r2, 0
|
|
adds r0, 0x60
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
strh r1, [r0]
|
|
ldr r0, [r2, 0x3C]
|
|
cmp r0, 0
|
|
bge _080FAF74
|
|
adds r0, 0xF
|
|
_080FAF74:
|
|
asrs r0, 4
|
|
negs r0, r0
|
|
str r0, [r2, 0x44]
|
|
ldr r0, [r2, 0x40]
|
|
cmp r0, 0
|
|
bge _080FAF82
|
|
adds r0, 0xF
|
|
_080FAF82:
|
|
asrs r0, 4
|
|
negs r0, r0
|
|
str r0, [r2, 0x48]
|
|
adds r0, r2, 0
|
|
adds r0, 0x64
|
|
ldrh r1, [r0]
|
|
subs r0, 0x10
|
|
strh r1, [r0]
|
|
adds r0, 0x12
|
|
ldrh r0, [r0]
|
|
adds r1, r2, 0
|
|
adds r1, 0x56
|
|
strh r0, [r1]
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
str r0, [r2, 0x4C]
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
_080FAFA6:
|
|
str r0, [r2, 0x50]
|
|
ldr r0, [r5]
|
|
adds r0, 0x6E
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
bl sub_80FBCA0
|
|
bl sub_80FBDF8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80FAEC4
|
|
|
|
thumb_func_start sub_80FAFC0
|
|
sub_80FAFC0: @ 80FAFC0
|
|
push {r4-r6,lr}
|
|
sub sp, 0xC
|
|
ldr r0, _080FAFD8 @ =gUnknown_020388CC
|
|
ldr r3, [r0]
|
|
adds r2, r3, 0
|
|
adds r2, 0x6E
|
|
ldrh r1, [r2]
|
|
adds r5, r0, 0
|
|
cmp r1, 0xF
|
|
bls _080FAFDC
|
|
movs r0, 0
|
|
b _080FB164
|
|
.align 2, 0
|
|
_080FAFD8: .4byte gUnknown_020388CC
|
|
_080FAFDC:
|
|
adds r0, r1, 0x1
|
|
movs r1, 0
|
|
strh r0, [r2]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x10
|
|
bne _080FB050
|
|
str r1, [r3, 0x44]
|
|
str r1, [r3, 0x48]
|
|
adds r0, r3, 0
|
|
adds r0, 0x60
|
|
ldrh r1, [r0]
|
|
subs r0, 0x4
|
|
strh r1, [r0]
|
|
adds r0, 0x6
|
|
ldrh r0, [r0]
|
|
adds r1, r3, 0
|
|
adds r1, 0x5E
|
|
strh r0, [r1]
|
|
adds r1, 0x1A
|
|
ldrb r0, [r1]
|
|
movs r2, 0x80
|
|
lsls r2, 9
|
|
cmp r0, 0
|
|
bne _080FB012
|
|
movs r2, 0x80
|
|
lsls r2, 8
|
|
_080FB012:
|
|
str r2, [r3, 0x4C]
|
|
movs r2, 0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _080FB01E
|
|
movs r2, 0x1
|
|
_080FB01E:
|
|
strb r2, [r1]
|
|
ldr r1, [r5]
|
|
adds r0, r1, 0
|
|
adds r0, 0x78
|
|
ldrb r0, [r0]
|
|
ldr r2, _080FB048 @ =sub_80FAD04
|
|
cmp r0, 0
|
|
bne _080FB030
|
|
ldr r2, _080FB04C @ =sub_80FAB78
|
|
_080FB030:
|
|
str r2, [r1, 0x18]
|
|
adds r0, r1, 0
|
|
adds r0, 0x58
|
|
ldrh r0, [r0]
|
|
adds r1, 0x5A
|
|
ldrh r1, [r1]
|
|
bl sub_80FBB3C
|
|
bl sub_80FBE24
|
|
movs r4, 0
|
|
b _080FB132
|
|
.align 2, 0
|
|
_080FB048: .4byte sub_80FAD04
|
|
_080FB04C: .4byte sub_80FAB78
|
|
_080FB050:
|
|
ldr r2, [r3, 0x3C]
|
|
ldr r0, [r3, 0x44]
|
|
adds r2, r0
|
|
str r2, [r3, 0x3C]
|
|
ldr r0, [r3, 0x40]
|
|
ldr r1, [r3, 0x48]
|
|
adds r0, r1
|
|
str r0, [r3, 0x40]
|
|
asrs r2, 8
|
|
adds r4, r3, 0
|
|
adds r4, 0x5C
|
|
strh r2, [r4]
|
|
ldr r0, [r3, 0x40]
|
|
asrs r0, 8
|
|
adds r1, r3, 0
|
|
adds r1, 0x5E
|
|
strh r0, [r1]
|
|
ldr r0, [r3, 0x4C]
|
|
ldr r1, [r3, 0x50]
|
|
adds r0, r1
|
|
str r0, [r3, 0x4C]
|
|
ldr r2, [r3, 0x44]
|
|
cmp r2, 0
|
|
bge _080FB090
|
|
adds r0, r3, 0
|
|
adds r0, 0x60
|
|
movs r6, 0
|
|
ldrsh r1, [r4, r6]
|
|
movs r6, 0
|
|
ldrsh r0, [r0, r6]
|
|
cmp r1, r0
|
|
blt _080FB0A4
|
|
_080FB090:
|
|
cmp r2, 0
|
|
ble _080FB0B4
|
|
adds r0, r3, 0
|
|
adds r0, 0x60
|
|
movs r2, 0
|
|
ldrsh r1, [r4, r2]
|
|
movs r6, 0
|
|
ldrsh r0, [r0, r6]
|
|
cmp r1, r0
|
|
ble _080FB0B4
|
|
_080FB0A4:
|
|
ldr r3, [r5]
|
|
adds r0, r3, 0
|
|
adds r0, 0x60
|
|
ldrh r2, [r0]
|
|
subs r0, 0x4
|
|
movs r1, 0
|
|
strh r2, [r0]
|
|
str r1, [r3, 0x44]
|
|
_080FB0B4:
|
|
ldr r2, [r5]
|
|
ldr r4, [r2, 0x48]
|
|
cmp r4, 0
|
|
bge _080FB0D0
|
|
adds r0, r2, 0
|
|
adds r0, 0x5E
|
|
adds r3, r2, 0
|
|
adds r3, 0x62
|
|
movs r6, 0
|
|
ldrsh r1, [r0, r6]
|
|
movs r6, 0
|
|
ldrsh r0, [r3, r6]
|
|
cmp r1, r0
|
|
blt _080FB0E8
|
|
_080FB0D0:
|
|
cmp r4, 0
|
|
ble _080FB0FA
|
|
adds r1, r2, 0
|
|
adds r1, 0x5E
|
|
adds r0, r2, 0
|
|
adds r0, 0x62
|
|
movs r2, 0
|
|
ldrsh r1, [r1, r2]
|
|
movs r6, 0
|
|
ldrsh r0, [r0, r6]
|
|
cmp r1, r0
|
|
ble _080FB0FA
|
|
_080FB0E8:
|
|
ldr r2, [r5]
|
|
adds r0, r2, 0
|
|
adds r0, 0x62
|
|
ldrh r1, [r0]
|
|
adds r3, r2, 0
|
|
adds r3, 0x5E
|
|
movs r0, 0
|
|
strh r1, [r3]
|
|
str r0, [r2, 0x48]
|
|
_080FB0FA:
|
|
ldr r0, _080FB118 @ =gUnknown_020388CC
|
|
ldr r2, [r0]
|
|
adds r0, r2, 0
|
|
adds r0, 0x78
|
|
ldrb r3, [r0]
|
|
cmp r3, 0
|
|
bne _080FB120
|
|
ldr r1, [r2, 0x4C]
|
|
ldr r0, _080FB11C @ =0x00007fff
|
|
cmp r1, r0
|
|
bgt _080FB130
|
|
adds r0, 0x1
|
|
str r0, [r2, 0x4C]
|
|
str r3, [r2, 0x50]
|
|
b _080FB130
|
|
.align 2, 0
|
|
_080FB118: .4byte gUnknown_020388CC
|
|
_080FB11C: .4byte 0x00007fff
|
|
_080FB120:
|
|
ldr r0, [r2, 0x4C]
|
|
movs r1, 0x80
|
|
lsls r1, 9
|
|
cmp r0, r1
|
|
ble _080FB130
|
|
str r1, [r2, 0x4C]
|
|
movs r0, 0
|
|
str r0, [r2, 0x50]
|
|
_080FB130:
|
|
movs r4, 0x1
|
|
_080FB132:
|
|
ldr r0, _080FB16C @ =gUnknown_020388CC
|
|
ldr r3, [r0]
|
|
adds r0, r3, 0
|
|
adds r0, 0x5C
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
adds r1, r3, 0
|
|
adds r1, 0x5E
|
|
movs r2, 0
|
|
ldrsh r1, [r1, r2]
|
|
ldr r2, [r3, 0x4C]
|
|
lsls r2, 8
|
|
lsrs r2, 16
|
|
str r2, [sp]
|
|
ldr r2, [r3, 0x4C]
|
|
lsls r2, 8
|
|
lsrs r2, 16
|
|
str r2, [sp, 0x4]
|
|
movs r2, 0
|
|
str r2, [sp, 0x8]
|
|
movs r2, 0x38
|
|
movs r3, 0x48
|
|
bl sub_80FB170
|
|
adds r0, r4, 0
|
|
_080FB164:
|
|
add sp, 0xC
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080FB16C: .4byte gUnknown_020388CC
|
|
thumb_func_end sub_80FAFC0
|
|
|
|
thumb_func_start sub_80FB170
|
|
sub_80FB170: @ 80FB170
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
ldr r4, [sp, 0x24]
|
|
ldr r7, [sp, 0x28]
|
|
ldr r5, [sp, 0x2C]
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
mov r8, r4
|
|
lsls r7, 16
|
|
adds r4, r7, 0
|
|
lsrs r4, 16
|
|
mov r9, r4
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r4, _080FB230 @ =gUnknown_020388CC
|
|
ldr r6, [r4]
|
|
ldr r7, _080FB234 @ =gSineTable
|
|
mov r12, r7
|
|
adds r4, r5, 0
|
|
adds r4, 0x40
|
|
lsls r4, 1
|
|
add r4, r12
|
|
movs r7, 0
|
|
ldrsh r4, [r4, r7]
|
|
str r4, [sp]
|
|
mov r7, r8
|
|
muls r7, r4
|
|
adds r4, r7, 0
|
|
asrs r4, 8
|
|
mov r10, r4
|
|
str r4, [r6, 0x2C]
|
|
lsls r5, 1
|
|
add r5, r12
|
|
movs r7, 0
|
|
ldrsh r5, [r5, r7]
|
|
negs r4, r5
|
|
mov r7, r8
|
|
muls r7, r4
|
|
adds r4, r7, 0
|
|
asrs r4, 8
|
|
mov r12, r4
|
|
str r4, [r6, 0x30]
|
|
mov r7, r9
|
|
muls r7, r5
|
|
adds r5, r7, 0
|
|
asrs r5, 8
|
|
str r5, [r6, 0x34]
|
|
ldr r7, [sp]
|
|
mov r4, r9
|
|
muls r4, r7
|
|
asrs r4, 8
|
|
mov r8, r4
|
|
str r4, [r6, 0x38]
|
|
lsls r0, 16
|
|
asrs r0, 8
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
lsls r4, r2, 8
|
|
adds r0, r4
|
|
lsls r3, 16
|
|
asrs r3, 16
|
|
adds r4, r3, 0
|
|
muls r4, r5
|
|
mov r5, r10
|
|
muls r5, r2
|
|
adds r4, r5
|
|
subs r0, r4
|
|
str r0, [r6, 0x24]
|
|
lsls r1, 16
|
|
asrs r1, 8
|
|
lsls r0, r3, 8
|
|
adds r1, r0
|
|
mov r0, r8
|
|
muls r0, r3
|
|
mov r3, r12
|
|
muls r3, r2
|
|
adds r2, r3, 0
|
|
adds r0, r2
|
|
subs r1, r0
|
|
str r1, [r6, 0x28]
|
|
adds r6, 0x7D
|
|
movs r0, 0x1
|
|
strb r0, [r6]
|
|
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
|
|
_080FB230: .4byte gUnknown_020388CC
|
|
_080FB234: .4byte gSineTable
|
|
thumb_func_end sub_80FB170
|
|
|
|
thumb_func_start sub_80FB238
|
|
sub_80FB238: @ 80FB238
|
|
ldr r2, _080FB25C @ =gUnknown_020388CC
|
|
ldr r2, [r2]
|
|
lsls r0, 16
|
|
asrs r0, 8
|
|
movs r3, 0xE0
|
|
lsls r3, 5
|
|
adds r0, r3
|
|
str r0, [r2, 0x24]
|
|
lsls r1, 16
|
|
asrs r1, 8
|
|
movs r0, 0x90
|
|
lsls r0, 6
|
|
adds r1, r0
|
|
str r1, [r2, 0x28]
|
|
adds r2, 0x7D
|
|
movs r0, 0x1
|
|
strb r0, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_080FB25C: .4byte gUnknown_020388CC
|
|
thumb_func_end sub_80FB238
|
|
|
|
thumb_func_start sub_80FB260
|
|
sub_80FB260: @ 80FB260
|
|
push {lr}
|
|
ldr r0, _080FB29C @ =gUnknown_020388CC
|
|
ldr r2, [r0]
|
|
adds r3, r2, 0
|
|
adds r3, 0x7D
|
|
ldrb r0, [r3]
|
|
cmp r0, 0
|
|
beq _080FB298
|
|
ldr r1, _080FB2A0 @ =REG_BG2PA
|
|
ldr r0, [r2, 0x2C]
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
ldr r0, [r2, 0x34]
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
ldr r0, [r2, 0x30]
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
ldr r0, [r2, 0x38]
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
ldr r0, [r2, 0x24]
|
|
str r0, [r1]
|
|
adds r1, 0x4
|
|
ldr r0, [r2, 0x28]
|
|
str r0, [r1]
|
|
movs r0, 0
|
|
strb r0, [r3]
|
|
_080FB298:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FB29C: .4byte gUnknown_020388CC
|
|
_080FB2A0: .4byte REG_BG2PA
|
|
thumb_func_end sub_80FB260
|
|
|
|
thumb_func_start sub_80FB2A4
|
|
sub_80FB2A4: @ 80FB2A4
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
lsls r1, 16
|
|
asrs r5, r1, 16
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
str r0, [sp]
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
str r0, [sp, 0x8]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x38
|
|
movs r3, 0x48
|
|
bl sub_80FB170
|
|
bl sub_80FB260
|
|
ldr r0, _080FB2E8 @ =gUnknown_020388CC
|
|
ldr r2, [r0]
|
|
ldr r1, [r2, 0x20]
|
|
cmp r1, 0
|
|
beq _080FB2E0
|
|
negs r0, r4
|
|
strh r0, [r1, 0x24]
|
|
ldr r1, [r2, 0x20]
|
|
negs r0, r5
|
|
strh r0, [r1, 0x26]
|
|
_080FB2E0:
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FB2E8: .4byte gUnknown_020388CC
|
|
thumb_func_end sub_80FB2A4
|
|
|
|
thumb_func_start GetRegionMapSectionAt
|
|
GetRegionMapSectionAt: @ 80FB2EC
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
lsls r1, 16
|
|
ldr r0, _080FB30C @ =0xfffe0000
|
|
adds r1, r0
|
|
lsrs r2, r1, 16
|
|
cmp r2, 0xE
|
|
bhi _080FB306
|
|
cmp r3, 0
|
|
beq _080FB306
|
|
cmp r3, 0x1C
|
|
bls _080FB310
|
|
_080FB306:
|
|
movs r0, 0x58
|
|
b _080FB324
|
|
.align 2, 0
|
|
_080FB30C: .4byte 0xfffe0000
|
|
_080FB310:
|
|
subs r0, r3, 0x1
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
ldr r1, _080FB328 @ =gRegionMapSections
|
|
lsls r0, r2, 3
|
|
subs r0, r2
|
|
lsls r0, 2
|
|
adds r0, r3, r0
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
_080FB324:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080FB328: .4byte gRegionMapSections
|
|
thumb_func_end GetRegionMapSectionAt
|
|
|
|
thumb_func_start sub_80FB32C
|
|
sub_80FB32C: @ 80FB32C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
ldr r0, _080FB358 @ =gSaveBlock1
|
|
movs r1, 0x4
|
|
ldrsb r1, [r0, r1]
|
|
adds r2, r0, 0
|
|
cmp r1, 0x19
|
|
bne _080FB35C
|
|
ldrb r0, [r2, 0x5]
|
|
subs r0, 0x29
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bhi _080FB35C
|
|
bl sub_80FB600
|
|
b _080FB5E8
|
|
.align 2, 0
|
|
_080FB358: .4byte gSaveBlock1
|
|
_080FB35C:
|
|
movs r0, 0x4
|
|
ldrsb r0, [r2, r0]
|
|
movs r1, 0x5
|
|
ldrsb r1, [r2, r1]
|
|
bl get_map_light_level_by_bank_and_number
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
subs r0, 0x1
|
|
cmp r0, 0x8
|
|
bhi _080FB3A4
|
|
lsls r0, 2
|
|
ldr r1, _080FB37C @ =_080FB380
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080FB37C: .4byte _080FB380
|
|
.align 2, 0
|
|
_080FB380:
|
|
.4byte _080FB3A4
|
|
.4byte _080FB3A4
|
|
.4byte _080FB3A4
|
|
.4byte _080FB3E0
|
|
.4byte _080FB3A4
|
|
.4byte _080FB3A4
|
|
.4byte _080FB3E0
|
|
.4byte _080FB464
|
|
.4byte _080FB428
|
|
_080FB3A4:
|
|
ldr r4, _080FB3D4 @ =gUnknown_020388CC
|
|
ldr r0, [r4]
|
|
ldr r3, _080FB3D8 @ =gMapHeader
|
|
ldrb r1, [r3, 0x14]
|
|
movs r2, 0
|
|
strh r1, [r0, 0x14]
|
|
adds r0, 0x7F
|
|
strb r2, [r0]
|
|
ldr r0, [r3]
|
|
ldrh r2, [r0]
|
|
ldrh r0, [r0, 0x4]
|
|
mov r8, r0
|
|
ldr r0, _080FB3DC @ =gSaveBlock1
|
|
ldrh r6, [r0]
|
|
ldrh r3, [r0, 0x2]
|
|
ldr r1, [r4]
|
|
ldrh r0, [r1, 0x14]
|
|
cmp r0, 0x45
|
|
beq _080FB3CC
|
|
b _080FB4CC
|
|
_080FB3CC:
|
|
adds r1, 0x7F
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
b _080FB4CC
|
|
.align 2, 0
|
|
_080FB3D4: .4byte gUnknown_020388CC
|
|
_080FB3D8: .4byte gMapHeader
|
|
_080FB3DC: .4byte gSaveBlock1
|
|
_080FB3E0:
|
|
ldr r4, _080FB420 @ =gSaveBlock1
|
|
adds r0, r4, 0
|
|
adds r0, 0x24
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r1, r4, 0
|
|
adds r1, 0x25
|
|
ldrb r1, [r1]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
bl get_mapheader_by_bank_and_number
|
|
adds r2, r0, 0
|
|
ldr r0, _080FB424 @ =gUnknown_020388CC
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2, 0x14]
|
|
strh r1, [r0, 0x14]
|
|
adds r0, 0x7F
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
ldrh r2, [r0]
|
|
ldrh r0, [r0, 0x4]
|
|
mov r8, r0
|
|
ldrh r6, [r4, 0x28]
|
|
ldrh r3, [r4, 0x2A]
|
|
b _080FB4CC
|
|
.align 2, 0
|
|
_080FB420: .4byte gSaveBlock1
|
|
_080FB424: .4byte gUnknown_020388CC
|
|
_080FB428:
|
|
ldr r4, _080FB45C @ =gSaveBlock1
|
|
movs r0, 0x14
|
|
ldrsb r0, [r4, r0]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x15
|
|
ldrsb r1, [r4, r1]
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
bl get_mapheader_by_bank_and_number
|
|
adds r2, r0, 0
|
|
ldr r0, _080FB460 @ =gUnknown_020388CC
|
|
ldr r0, [r0]
|
|
ldrb r1, [r2, 0x14]
|
|
strh r1, [r0, 0x14]
|
|
adds r0, 0x7F
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
ldrh r2, [r0]
|
|
ldrh r0, [r0, 0x4]
|
|
mov r8, r0
|
|
ldrh r6, [r4, 0x18]
|
|
ldrh r3, [r4, 0x1A]
|
|
b _080FB4CC
|
|
.align 2, 0
|
|
_080FB45C: .4byte gSaveBlock1
|
|
_080FB460: .4byte gUnknown_020388CC
|
|
_080FB464:
|
|
ldr r5, _080FB48C @ =gUnknown_020388CC
|
|
ldr r0, [r5]
|
|
ldr r1, _080FB490 @ =gMapHeader
|
|
ldrb r1, [r1, 0x14]
|
|
strh r1, [r0, 0x14]
|
|
cmp r1, 0x57
|
|
beq _080FB498
|
|
ldr r4, _080FB494 @ =gSaveBlock1 + 0x24
|
|
movs r0, 0
|
|
ldrsb r0, [r4, r0]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x1
|
|
ldrsb r1, [r4, r1]
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
bl get_mapheader_by_bank_and_number
|
|
adds r2, r0, 0
|
|
b _080FB4B6
|
|
.align 2, 0
|
|
_080FB48C: .4byte gUnknown_020388CC
|
|
_080FB490: .4byte gMapHeader
|
|
_080FB494: .4byte gSaveBlock1 + 0x24
|
|
_080FB498:
|
|
ldr r4, _080FB548 @ =gSaveBlock1 + 0x14
|
|
movs r0, 0
|
|
ldrsb r0, [r4, r0]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x1
|
|
ldrsb r1, [r4, r1]
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
bl get_mapheader_by_bank_and_number
|
|
adds r2, r0, 0
|
|
ldr r1, [r5]
|
|
ldrb r0, [r2, 0x14]
|
|
strh r0, [r1, 0x14]
|
|
_080FB4B6:
|
|
ldr r0, _080FB54C @ =gUnknown_020388CC
|
|
ldr r0, [r0]
|
|
adds r0, 0x7F
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r2]
|
|
ldrh r2, [r0]
|
|
ldrh r0, [r0, 0x4]
|
|
mov r8, r0
|
|
ldrh r6, [r4, 0x4]
|
|
ldrh r3, [r4, 0x6]
|
|
_080FB4CC:
|
|
mov r9, r6
|
|
ldr r4, _080FB54C @ =gUnknown_020388CC
|
|
ldr r0, [r4]
|
|
ldrh r5, [r0, 0x14]
|
|
lsls r0, r5, 3
|
|
ldr r1, _080FB550 @ =gRegionMapLocations
|
|
adds r0, r1
|
|
mov r10, r0
|
|
ldrb r7, [r0, 0x2]
|
|
adds r0, r2, 0
|
|
adds r1, r7, 0
|
|
str r3, [sp]
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
ldr r3, [sp]
|
|
cmp r1, 0
|
|
bne _080FB4F4
|
|
movs r1, 0x1
|
|
_080FB4F4:
|
|
adds r0, r6, 0
|
|
str r3, [sp]
|
|
bl __udivsi3
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldr r3, [sp]
|
|
cmp r6, r7
|
|
bcc _080FB50C
|
|
subs r0, r7, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
_080FB50C:
|
|
mov r2, r10
|
|
ldrb r4, [r2, 0x3]
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
str r3, [sp]
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
ldr r3, [sp]
|
|
cmp r1, 0
|
|
bne _080FB526
|
|
movs r1, 0x1
|
|
_080FB526:
|
|
adds r0, r3, 0
|
|
bl __udivsi3
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
cmp r3, r4
|
|
bcc _080FB53A
|
|
subs r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
_080FB53A:
|
|
cmp r5, 0x24
|
|
beq _080FB59C
|
|
cmp r5, 0x24
|
|
bgt _080FB554
|
|
cmp r5, 0x1D
|
|
beq _080FB55E
|
|
b _080FB5BE
|
|
.align 2, 0
|
|
_080FB548: .4byte gSaveBlock1 + 0x14
|
|
_080FB54C: .4byte gUnknown_020388CC
|
|
_080FB550: .4byte gRegionMapLocations
|
|
_080FB554:
|
|
cmp r5, 0x29
|
|
beq _080FB566
|
|
cmp r5, 0x33
|
|
beq _080FB566
|
|
b _080FB5BE
|
|
_080FB55E:
|
|
cmp r3, 0
|
|
beq _080FB5BE
|
|
movs r6, 0
|
|
b _080FB5BE
|
|
_080FB566:
|
|
movs r6, 0
|
|
ldr r1, _080FB598 @ =gSaveBlock1
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0x20
|
|
ble _080FB574
|
|
movs r6, 0x1
|
|
_080FB574:
|
|
cmp r0, 0x33
|
|
ble _080FB57E
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
_080FB57E:
|
|
movs r3, 0
|
|
movs r2, 0x2
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0x25
|
|
ble _080FB58A
|
|
movs r3, 0x1
|
|
_080FB58A:
|
|
cmp r0, 0x38
|
|
ble _080FB5BE
|
|
adds r0, r3, 0x1
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
b _080FB5BE
|
|
.align 2, 0
|
|
_080FB598: .4byte gSaveBlock1
|
|
_080FB59C:
|
|
movs r6, 0
|
|
mov r0, r9
|
|
cmp r0, 0xE
|
|
bls _080FB5A6
|
|
movs r6, 0x1
|
|
_080FB5A6:
|
|
mov r1, r9
|
|
cmp r1, 0x1C
|
|
bls _080FB5B2
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
_080FB5B2:
|
|
mov r2, r9
|
|
cmp r2, 0x36
|
|
bls _080FB5BE
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
_080FB5BE:
|
|
ldr r0, _080FB5F8 @ =gUnknown_020388CC
|
|
ldr r2, [r0]
|
|
ldrh r0, [r2, 0x14]
|
|
lsls r0, 3
|
|
ldr r1, _080FB5FC @ =gRegionMapLocations
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
adds r0, r6, r0
|
|
adds r0, 0x1
|
|
adds r1, r2, 0
|
|
adds r1, 0x54
|
|
strh r0, [r1]
|
|
ldrh r0, [r2, 0x14]
|
|
lsls r0, 3
|
|
ldr r1, _080FB5FC @ =gRegionMapLocations
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x1]
|
|
adds r0, r3, r0
|
|
adds r0, 0x2
|
|
adds r2, 0x56
|
|
strh r0, [r2]
|
|
_080FB5E8:
|
|
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
|
|
_080FB5F8: .4byte gUnknown_020388CC
|
|
_080FB5FC: .4byte gRegionMapLocations
|
|
thumb_func_end sub_80FB32C
|
|
|
|
thumb_func_start sub_80FB600
|
|
sub_80FB600: @ 80FB600
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
movs r7, 0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
mov r4, sp
|
|
adds r4, 0x1
|
|
mov r5, sp
|
|
adds r5, 0x2
|
|
add r6, sp, 0x4
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl GetSSTidalLocation
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r5
|
|
cmp r0, 0x4
|
|
bhi _080FB694
|
|
lsls r0, 2
|
|
ldr r1, _080FB63C @ =_080FB640
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080FB63C: .4byte _080FB640
|
|
.align 2, 0
|
|
_080FB640:
|
|
.4byte _080FB694
|
|
.4byte _080FB654
|
|
.4byte _080FB664
|
|
.4byte _080FB674
|
|
.4byte _080FB684
|
|
_080FB654:
|
|
ldr r2, _080FB660 @ =gUnknown_020388CC
|
|
ldr r1, [r2]
|
|
movs r0, 0x8
|
|
strh r0, [r1, 0x14]
|
|
b _080FB710
|
|
.align 2, 0
|
|
_080FB660: .4byte gUnknown_020388CC
|
|
_080FB664:
|
|
ldr r2, _080FB670 @ =gUnknown_020388CC
|
|
ldr r1, [r2]
|
|
movs r0, 0xC
|
|
strh r0, [r1, 0x14]
|
|
b _080FB710
|
|
.align 2, 0
|
|
_080FB670: .4byte gUnknown_020388CC
|
|
_080FB674:
|
|
ldr r2, _080FB680 @ =gUnknown_020388CC
|
|
ldr r1, [r2]
|
|
movs r0, 0x27
|
|
strh r0, [r1, 0x14]
|
|
b _080FB710
|
|
.align 2, 0
|
|
_080FB680: .4byte gUnknown_020388CC
|
|
_080FB684:
|
|
ldr r2, _080FB690 @ =gUnknown_020388CC
|
|
ldr r1, [r2]
|
|
movs r0, 0x2E
|
|
strh r0, [r1, 0x14]
|
|
b _080FB710
|
|
.align 2, 0
|
|
_080FB690: .4byte gUnknown_020388CC
|
|
_080FB694:
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r4]
|
|
bl get_mapheader_by_bank_and_number
|
|
ldr r1, _080FB750 @ =gUnknown_020388CC
|
|
mov r9, r1
|
|
ldr r2, [r1]
|
|
ldrb r1, [r0, 0x14]
|
|
strh r1, [r2, 0x14]
|
|
ldr r6, [r0]
|
|
ldr r1, _080FB754 @ =gRegionMapLocations
|
|
ldrh r0, [r2, 0x14]
|
|
lsls r0, 3
|
|
adds r5, r0, r1
|
|
ldrb r4, [r5, 0x2]
|
|
ldr r0, [r6]
|
|
adds r1, r4, 0
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r1, 0
|
|
bne _080FB6C6
|
|
movs r1, 0x1
|
|
_080FB6C6:
|
|
mov r2, r10
|
|
movs r3, 0
|
|
ldrsh r0, [r2, r3]
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
cmp r8, r4
|
|
bcc _080FB6E2
|
|
subs r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
_080FB6E2:
|
|
ldrb r4, [r5, 0x3]
|
|
ldr r0, [r6, 0x4]
|
|
adds r1, r4, 0
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r1, 0
|
|
bne _080FB6F6
|
|
movs r1, 0x1
|
|
_080FB6F6:
|
|
mov r2, sp
|
|
movs r3, 0x4
|
|
ldrsh r0, [r2, r3]
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
mov r2, r9
|
|
cmp r7, r4
|
|
bcc _080FB710
|
|
subs r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
_080FB710:
|
|
ldr r0, [r2]
|
|
adds r0, 0x7F
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r2, [r2]
|
|
ldr r3, _080FB754 @ =gRegionMapLocations
|
|
ldrh r0, [r2, 0x14]
|
|
lsls r0, 3
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
add r0, r8
|
|
adds r0, 0x1
|
|
adds r1, r2, 0
|
|
adds r1, 0x54
|
|
strh r0, [r1]
|
|
ldrh r0, [r2, 0x14]
|
|
lsls r0, 3
|
|
adds r0, r3
|
|
ldrb r0, [r0, 0x1]
|
|
adds r0, r7, r0
|
|
adds r0, 0x2
|
|
adds r2, 0x56
|
|
strh r0, [r2]
|
|
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
|
|
_080FB750: .4byte gUnknown_020388CC
|
|
_080FB754: .4byte gRegionMapLocations
|
|
thumb_func_end sub_80FB600
|
|
|
|
thumb_func_start sub_80FB758
|
|
sub_80FB758: @ 80FB758
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x58
|
|
bls _080FB764
|
|
b _080FB9A0
|
|
_080FB764:
|
|
lsls r0, 2
|
|
ldr r1, _080FB770 @ =_080FB774
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080FB770: .4byte _080FB774
|
|
.align 2, 0
|
|
_080FB774:
|
|
.4byte _080FB8DC
|
|
.4byte _080FB8E4
|
|
.4byte _080FB8EA
|
|
.4byte _080FB8F4
|
|
.4byte _080FB8FC
|
|
.4byte _080FB904
|
|
.4byte _080FB90C
|
|
.4byte _080FB914
|
|
.4byte _080FB91C
|
|
.4byte _080FB924
|
|
.4byte _080FB92C
|
|
.4byte _080FB934
|
|
.4byte _080FB93C
|
|
.4byte _080FB944
|
|
.4byte _080FB94C
|
|
.4byte _080FB954
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB96C
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB988
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB9A0
|
|
.4byte _080FB8D8
|
|
_080FB8D8:
|
|
movs r0, 0
|
|
b _080FB9A2
|
|
_080FB8DC:
|
|
ldr r0, _080FB8E0 @ =0x0000080f
|
|
b _080FB956
|
|
.align 2, 0
|
|
_080FB8E0: .4byte 0x0000080f
|
|
_080FB8E4:
|
|
movs r0, 0x81
|
|
lsls r0, 4
|
|
b _080FB956
|
|
_080FB8EA:
|
|
ldr r0, _080FB8F0 @ =0x00000811
|
|
b _080FB956
|
|
.align 2, 0
|
|
_080FB8F0: .4byte 0x00000811
|
|
_080FB8F4:
|
|
ldr r0, _080FB8F8 @ =0x00000812
|
|
b _080FB956
|
|
.align 2, 0
|
|
_080FB8F8: .4byte 0x00000812
|
|
_080FB8FC:
|
|
ldr r0, _080FB900 @ =0x00000813
|
|
b _080FB956
|
|
.align 2, 0
|
|
_080FB900: .4byte 0x00000813
|
|
_080FB904:
|
|
ldr r0, _080FB908 @ =0x00000814
|
|
b _080FB956
|
|
.align 2, 0
|
|
_080FB908: .4byte 0x00000814
|
|
_080FB90C:
|
|
ldr r0, _080FB910 @ =0x00000815
|
|
b _080FB956
|
|
.align 2, 0
|
|
_080FB910: .4byte 0x00000815
|
|
_080FB914:
|
|
ldr r0, _080FB918 @ =0x00000816
|
|
b _080FB956
|
|
.align 2, 0
|
|
_080FB918: .4byte 0x00000816
|
|
_080FB91C:
|
|
ldr r0, _080FB920 @ =0x00000817
|
|
b _080FB956
|
|
.align 2, 0
|
|
_080FB920: .4byte 0x00000817
|
|
_080FB924:
|
|
ldr r0, _080FB928 @ =0x00000818
|
|
b _080FB956
|
|
.align 2, 0
|
|
_080FB928: .4byte 0x00000818
|
|
_080FB92C:
|
|
ldr r0, _080FB930 @ =0x00000819
|
|
b _080FB956
|
|
.align 2, 0
|
|
_080FB930: .4byte 0x00000819
|
|
_080FB934:
|
|
ldr r0, _080FB938 @ =0x0000081a
|
|
b _080FB956
|
|
.align 2, 0
|
|
_080FB938: .4byte 0x0000081a
|
|
_080FB93C:
|
|
ldr r0, _080FB940 @ =0x0000081b
|
|
b _080FB956
|
|
.align 2, 0
|
|
_080FB940: .4byte 0x0000081b
|
|
_080FB944:
|
|
ldr r0, _080FB948 @ =0x0000081c
|
|
b _080FB956
|
|
.align 2, 0
|
|
_080FB948: .4byte 0x0000081c
|
|
_080FB94C:
|
|
ldr r0, _080FB950 @ =0x0000081d
|
|
b _080FB956
|
|
.align 2, 0
|
|
_080FB950: .4byte 0x0000081d
|
|
_080FB954:
|
|
ldr r0, _080FB968 @ =0x0000081e
|
|
_080FB956:
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
movs r1, 0x3
|
|
cmp r0, 0
|
|
beq _080FB964
|
|
movs r1, 0x2
|
|
_080FB964:
|
|
adds r0, r1, 0
|
|
b _080FB9A2
|
|
.align 2, 0
|
|
_080FB968: .4byte 0x0000081e
|
|
_080FB96C:
|
|
ldr r0, _080FB984 @ =0x00000848
|
|
bl FlagGet
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
asrs r0, 31
|
|
movs r1, 0x4
|
|
ands r0, r1
|
|
b _080FB9A2
|
|
.align 2, 0
|
|
_080FB984: .4byte 0x00000848
|
|
_080FB988:
|
|
ldr r0, _080FB99C @ =0x00000849
|
|
bl FlagGet
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
b _080FB9A2
|
|
.align 2, 0
|
|
_080FB99C: .4byte 0x00000849
|
|
_080FB9A0:
|
|
movs r0, 0x1
|
|
_080FB9A2:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80FB758
|
|
|
|
thumb_func_start GetRegionMapSectionAt_
|
|
GetRegionMapSectionAt_: @ 80FB9A8
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
bl GetRegionMapSectionAt
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetRegionMapSectionAt_
|
|
|
|
thumb_func_start sub_80FB9C0
|
|
sub_80FB9C0: @ 80FB9C0
|
|
push {r4-r6,lr}
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
movs r2, 0
|
|
ldr r0, _080FB9E8 @ =gUnknown_083E7684
|
|
ldrh r1, [r0]
|
|
adds r4, r0, 0
|
|
cmp r1, 0x58
|
|
beq _080FB9FC
|
|
adds r5, r4, 0
|
|
adds r6, r4, 0x2
|
|
_080FB9D6:
|
|
lsls r1, r2, 2
|
|
adds r0, r1, r5
|
|
ldrh r0, [r0]
|
|
cmp r0, r3
|
|
bne _080FB9EC
|
|
adds r0, r1, r6
|
|
ldrh r0, [r0]
|
|
b _080FB9FE
|
|
.align 2, 0
|
|
_080FB9E8: .4byte gUnknown_083E7684
|
|
_080FB9EC:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
lsls r0, r2, 2
|
|
adds r0, r4
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x58
|
|
bne _080FB9D6
|
|
_080FB9FC:
|
|
adds r0, r3, 0
|
|
_080FB9FE:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80FB9C0
|
|
|
|
thumb_func_start sub_80FBA04
|
|
sub_80FBA04: @ 80FBA04
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl sub_80FB9C0
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80FBA04
|
|
|
|
thumb_func_start sub_80FBA18
|
|
sub_80FBA18: @ 80FBA18
|
|
push {r4-r6,lr}
|
|
ldr r0, _080FBA2C @ =gUnknown_020388CC
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x14]
|
|
cmp r0, 0x58
|
|
bne _080FBA30
|
|
movs r0, 0
|
|
strb r0, [r1, 0x17]
|
|
b _080FBA96
|
|
.align 2, 0
|
|
_080FBA2C: .4byte gUnknown_020388CC
|
|
_080FBA30:
|
|
adds r0, r1, 0
|
|
adds r0, 0x78
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080FBA40
|
|
adds r0, r1, 0
|
|
adds r0, 0x54
|
|
b _080FBA44
|
|
_080FBA40:
|
|
adds r0, r1, 0
|
|
adds r0, 0x64
|
|
_080FBA44:
|
|
ldrh r4, [r0]
|
|
adds r0, 0x2
|
|
ldrh r5, [r0]
|
|
movs r6, 0
|
|
b _080FBA70
|
|
_080FBA4E:
|
|
subs r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl GetRegionMapSectionAt
|
|
ldr r1, _080FBA8C @ =gUnknown_020388CC
|
|
ldr r1, [r1]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrh r1, [r1, 0x14]
|
|
cmp r0, r1
|
|
bne _080FBA70
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
_080FBA70:
|
|
cmp r4, 0x1
|
|
bhi _080FBA4E
|
|
adds r0, r5, 0
|
|
bl sub_80FBAA0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080FBA90
|
|
subs r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
movs r4, 0x1D
|
|
b _080FBA70
|
|
.align 2, 0
|
|
_080FBA8C: .4byte gUnknown_020388CC
|
|
_080FBA90:
|
|
ldr r0, _080FBA9C @ =gUnknown_020388CC
|
|
ldr r0, [r0]
|
|
strb r6, [r0, 0x17]
|
|
_080FBA96:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FBA9C: .4byte gUnknown_020388CC
|
|
thumb_func_end sub_80FBA18
|
|
|
|
thumb_func_start sub_80FBAA0
|
|
sub_80FBAA0: @ 80FBAA0
|
|
push {r4,r5,lr}
|
|
lsls r0, 16
|
|
ldr r1, _080FBAB4 @ =0xffff0000
|
|
adds r0, r1
|
|
lsrs r5, r0, 16
|
|
ldr r0, _080FBAB8 @ =0x0000ffff
|
|
cmp r5, r0
|
|
bne _080FBAC0
|
|
b _080FBAE2
|
|
.align 2, 0
|
|
_080FBAB4: .4byte 0xffff0000
|
|
_080FBAB8: .4byte 0x0000ffff
|
|
_080FBABC:
|
|
movs r0, 0x1
|
|
b _080FBAE4
|
|
_080FBAC0:
|
|
movs r4, 0x1
|
|
_080FBAC2:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl GetRegionMapSectionAt
|
|
ldr r1, _080FBAEC @ =gUnknown_020388CC
|
|
ldr r1, [r1]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrh r1, [r1, 0x14]
|
|
cmp r0, r1
|
|
beq _080FBABC
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0x1C
|
|
bls _080FBAC2
|
|
_080FBAE2:
|
|
movs r0, 0
|
|
_080FBAE4:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080FBAEC: .4byte gUnknown_020388CC
|
|
thumb_func_end sub_80FBAA0
|
|
|
|
thumb_func_start sub_80FBAF0
|
|
sub_80FBAF0: @ 80FBAF0
|
|
push {r4,lr}
|
|
adds r2, r0, 0
|
|
ldr r0, _080FBB34 @ =gUnknown_020388CC
|
|
ldr r1, [r0]
|
|
adds r3, r1, 0
|
|
adds r3, 0x7A
|
|
movs r0, 0
|
|
ldrsb r0, [r3, r0]
|
|
cmp r0, 0
|
|
beq _080FBB2E
|
|
adds r0, r1, 0
|
|
adds r0, 0x7B
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
lsls r0, 1
|
|
ldrh r4, [r2, 0x20]
|
|
adds r0, r4
|
|
strh r0, [r2, 0x20]
|
|
adds r0, r1, 0
|
|
adds r0, 0x7C
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
lsls r0, 1
|
|
ldrh r1, [r2, 0x22]
|
|
adds r0, r1
|
|
strh r0, [r2, 0x22]
|
|
ldrb r0, [r3]
|
|
subs r0, 0x1
|
|
strb r0, [r3]
|
|
_080FBB2E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FBB34: .4byte gUnknown_020388CC
|
|
thumb_func_end sub_80FBAF0
|
|
|
|
thumb_func_start nullsub_66
|
|
nullsub_66: @ 80FBB38
|
|
bx lr
|
|
thumb_func_end nullsub_66
|
|
|
|
thumb_func_start sub_80FBB3C
|
|
sub_80FBB3C: @ 80FBB3C
|
|
push {r4-r7,lr}
|
|
sub sp, 0x28
|
|
lsls r0, 16
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
ldr r1, _080FBBAC @ =gUnknown_083E76E8
|
|
ldr r2, [r1, 0x4]
|
|
ldr r1, [r1]
|
|
str r1, [sp, 0x20]
|
|
str r2, [sp, 0x24]
|
|
mov r2, sp
|
|
ldr r1, _080FBBB0 @ =gSpriteTemplate_83E76F0
|
|
ldm r1!, {r3-r5}
|
|
stm r2!, {r3-r5}
|
|
ldm r1!, {r3-r5}
|
|
stm r2!, {r3-r5}
|
|
lsrs r3, r0, 16
|
|
add r2, sp, 0x18
|
|
ldrh r1, [r2, 0x4]
|
|
orrs r1, r0
|
|
str r1, [r2, 0x4]
|
|
mov r0, sp
|
|
strh r3, [r0]
|
|
ldr r0, _080FBBB4 @ =gUnknown_020388CC
|
|
ldr r4, [r0]
|
|
adds r0, r4, 0
|
|
adds r0, 0x58
|
|
strh r3, [r0]
|
|
ldr r5, _080FBBB8 @ =0xffff0000
|
|
add r1, sp, 0x20
|
|
ldr r0, [r1, 0x4]
|
|
ands r0, r5
|
|
orrs r0, r6
|
|
str r0, [r1, 0x4]
|
|
mov r0, sp
|
|
strh r6, [r0, 0x2]
|
|
adds r3, r4, 0
|
|
adds r0, r3, 0
|
|
adds r0, 0x5A
|
|
strh r6, [r0]
|
|
adds r0, 0x1E
|
|
ldrb r0, [r0]
|
|
adds r7, r1, 0
|
|
cmp r0, 0
|
|
bne _080FBBC0
|
|
movs r1, 0xC0
|
|
lsls r1, 1
|
|
adds r0, r3, r1
|
|
str r0, [sp, 0x18]
|
|
ldr r0, [r2, 0x4]
|
|
ands r0, r5
|
|
subs r1, 0x80
|
|
orrs r0, r1
|
|
str r0, [r2, 0x4]
|
|
ldr r0, _080FBBBC @ =sub_80FBAF0
|
|
b _080FBBD6
|
|
.align 2, 0
|
|
_080FBBAC: .4byte gUnknown_083E76E8
|
|
_080FBBB0: .4byte gSpriteTemplate_83E76F0
|
|
_080FBBB4: .4byte gUnknown_020388CC
|
|
_080FBBB8: .4byte 0xffff0000
|
|
_080FBBBC: .4byte sub_80FBAF0
|
|
_080FBBC0:
|
|
movs r3, 0xA0
|
|
lsls r3, 2
|
|
adds r0, r4, r3
|
|
str r0, [sp, 0x18]
|
|
ldr r0, [r2, 0x4]
|
|
ands r0, r5
|
|
movs r1, 0xC0
|
|
lsls r1, 3
|
|
orrs r0, r1
|
|
str r0, [r2, 0x4]
|
|
ldr r0, _080FBC38 @ =nullsub_66
|
|
_080FBBD6:
|
|
str r0, [sp, 0x14]
|
|
adds r0, r2, 0
|
|
bl LoadSpriteSheet
|
|
adds r0, r7, 0
|
|
bl LoadSpritePalette
|
|
mov r0, sp
|
|
movs r1, 0x38
|
|
movs r2, 0x48
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x40
|
|
beq _080FBC90
|
|
ldr r4, _080FBC3C @ =gUnknown_020388CC
|
|
ldr r2, [r4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _080FBC40 @ =gSprites
|
|
adds r3, r0, r1
|
|
str r3, [r2, 0x1C]
|
|
adds r2, 0x78
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x1
|
|
bne _080FBC44
|
|
ldrb r1, [r3, 0x3]
|
|
movs r0, 0x3F
|
|
ands r0, r1
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r3, 0x3]
|
|
ldr r2, [r4]
|
|
ldr r1, [r2, 0x1C]
|
|
ldrh r0, [r1, 0x20]
|
|
subs r0, 0x8
|
|
strh r0, [r1, 0x20]
|
|
ldr r1, [r2, 0x1C]
|
|
ldrh r0, [r1, 0x22]
|
|
subs r0, 0x8
|
|
strh r0, [r1, 0x22]
|
|
ldr r0, [r2, 0x1C]
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
b _080FBC6C
|
|
.align 2, 0
|
|
_080FBC38: .4byte nullsub_66
|
|
_080FBC3C: .4byte gUnknown_020388CC
|
|
_080FBC40: .4byte gSprites
|
|
_080FBC44:
|
|
ldrb r1, [r3, 0x3]
|
|
movs r0, 0x3F
|
|
ands r0, r1
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r3, 0x3]
|
|
ldr r1, [r4]
|
|
ldr r2, [r1, 0x1C]
|
|
adds r0, r1, 0
|
|
adds r0, 0x54
|
|
ldrh r0, [r0]
|
|
lsls r0, 3
|
|
adds r0, 0x4
|
|
strh r0, [r2, 0x20]
|
|
ldr r2, [r1, 0x1C]
|
|
adds r1, 0x56
|
|
ldrh r0, [r1]
|
|
lsls r0, 3
|
|
adds r0, 0x4
|
|
strh r0, [r2, 0x22]
|
|
_080FBC6C:
|
|
ldr r4, _080FBC98 @ =gUnknown_020388CC
|
|
ldr r0, [r4]
|
|
ldr r1, [r0, 0x1C]
|
|
movs r0, 0x2
|
|
strh r0, [r1, 0x30]
|
|
adds r0, r6, 0
|
|
bl IndexOfSpritePaletteTag
|
|
ldr r1, [r4]
|
|
ldr r2, [r1, 0x1C]
|
|
lsls r0, 24
|
|
lsrs r0, 20
|
|
ldr r4, _080FBC9C @ =0x00000101
|
|
adds r0, r4
|
|
strh r0, [r2, 0x32]
|
|
ldr r1, [r1, 0x1C]
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x34]
|
|
_080FBC90:
|
|
add sp, 0x28
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FBC98: .4byte gUnknown_020388CC
|
|
_080FBC9C: .4byte 0x00000101
|
|
thumb_func_end sub_80FBB3C
|
|
|
|
thumb_func_start sub_80FBCA0
|
|
sub_80FBCA0: @ 80FBCA0
|
|
push {r4,lr}
|
|
ldr r4, _080FBCCC @ =gUnknown_020388CC
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x1C]
|
|
cmp r0, 0
|
|
beq _080FBCC4
|
|
bl DestroySprite
|
|
ldr r0, [r4]
|
|
adds r0, 0x58
|
|
ldrh r0, [r0]
|
|
bl FreeSpriteTilesByTag
|
|
ldr r0, [r4]
|
|
adds r0, 0x5A
|
|
ldrh r0, [r0]
|
|
bl FreeSpritePaletteByTag
|
|
_080FBCC4:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FBCCC: .4byte gUnknown_020388CC
|
|
thumb_func_end sub_80FBCA0
|
|
|
|
thumb_func_start unref_sub_80FBCD0
|
|
unref_sub_80FBCD0: @ 80FBCD0
|
|
ldr r0, _080FBCDC @ =gUnknown_020388CC
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x1C]
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x34]
|
|
bx lr
|
|
.align 2, 0
|
|
_080FBCDC: .4byte gUnknown_020388CC
|
|
thumb_func_end unref_sub_80FBCD0
|
|
|
|
thumb_func_start unref_sub_80FBCE0
|
|
unref_sub_80FBCE0: @ 80FBCE0
|
|
ldr r0, _080FBCEC @ =gUnknown_020388CC
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x1C]
|
|
movs r0, 0
|
|
strh r0, [r1, 0x34]
|
|
bx lr
|
|
.align 2, 0
|
|
_080FBCEC: .4byte gUnknown_020388CC
|
|
thumb_func_end unref_sub_80FBCE0
|
|
|
|
thumb_func_start sub_80FBCF0
|
|
sub_80FBCF0: @ 80FBCF0
|
|
push {r4,r5,lr}
|
|
sub sp, 0x28
|
|
lsls r0, 16
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
ldr r2, _080FBD98 @ =gRegionMapBrendanIconTiles
|
|
str r2, [sp, 0x18]
|
|
movs r2, 0x80
|
|
add r5, sp, 0x18
|
|
lsrs r3, r0, 16
|
|
orrs r0, r2
|
|
str r0, [r5, 0x4]
|
|
ldr r0, _080FBD9C @ =gRegionMapBrendanIconPalette
|
|
str r0, [sp, 0x20]
|
|
ldr r2, _080FBDA0 @ =0xffff0000
|
|
add r4, sp, 0x20
|
|
ldr r0, [r4, 0x4]
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
str r0, [r4, 0x4]
|
|
mov r0, sp
|
|
movs r2, 0
|
|
strh r3, [r0]
|
|
strh r1, [r0, 0x2]
|
|
ldr r0, _080FBDA4 @ =gOamData_083E7708
|
|
str r0, [sp, 0x4]
|
|
ldr r0, _080FBDA8 @ =gSpriteAnimTable_083E7718
|
|
str r0, [sp, 0x8]
|
|
str r2, [sp, 0xC]
|
|
ldr r0, _080FBDAC @ =gDummySpriteAffineAnimTable
|
|
str r0, [sp, 0x10]
|
|
ldr r0, _080FBDB0 @ =SpriteCallbackDummy
|
|
str r0, [sp, 0x14]
|
|
ldr r0, _080FBDB4 @ =gSaveBlock2
|
|
ldrb r0, [r0, 0x8]
|
|
cmp r0, 0x1
|
|
bne _080FBD42
|
|
ldr r0, _080FBDB8 @ =gRegionMapMayIconTiles
|
|
str r0, [sp, 0x18]
|
|
ldr r0, _080FBDBC @ =gRegionMapMayIconPalette
|
|
str r0, [sp, 0x20]
|
|
_080FBD42:
|
|
adds r0, r5, 0
|
|
bl LoadSpriteSheet
|
|
adds r0, r4, 0
|
|
bl LoadSpritePalette
|
|
mov r0, sp
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080FBDC0 @ =gUnknown_020388CC
|
|
ldr r2, [r1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _080FBDC4 @ =gSprites
|
|
adds r1, r0
|
|
str r1, [r2, 0x20]
|
|
adds r0, r2, 0
|
|
adds r0, 0x78
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080FBDCC
|
|
adds r0, r2, 0
|
|
adds r0, 0x74
|
|
ldrh r0, [r0]
|
|
lsls r0, 3
|
|
adds r0, 0x4
|
|
strh r0, [r1, 0x20]
|
|
ldr r1, [r2, 0x20]
|
|
adds r0, r2, 0
|
|
adds r0, 0x76
|
|
ldrh r0, [r0]
|
|
lsls r0, 3
|
|
adds r0, 0x4
|
|
strh r0, [r1, 0x22]
|
|
ldr r1, [r2, 0x20]
|
|
ldr r0, _080FBDC8 @ =sub_80FBF34
|
|
b _080FBDEA
|
|
.align 2, 0
|
|
_080FBD98: .4byte gRegionMapBrendanIconTiles
|
|
_080FBD9C: .4byte gRegionMapBrendanIconPalette
|
|
_080FBDA0: .4byte 0xffff0000
|
|
_080FBDA4: .4byte gOamData_083E7708
|
|
_080FBDA8: .4byte gSpriteAnimTable_083E7718
|
|
_080FBDAC: .4byte gDummySpriteAffineAnimTable
|
|
_080FBDB0: .4byte SpriteCallbackDummy
|
|
_080FBDB4: .4byte gSaveBlock2
|
|
_080FBDB8: .4byte gRegionMapMayIconTiles
|
|
_080FBDBC: .4byte gRegionMapMayIconPalette
|
|
_080FBDC0: .4byte gUnknown_020388CC
|
|
_080FBDC4: .4byte gSprites
|
|
_080FBDC8: .4byte sub_80FBF34
|
|
_080FBDCC:
|
|
adds r0, r2, 0
|
|
adds r0, 0x74
|
|
ldrh r0, [r0]
|
|
lsls r0, 4
|
|
subs r0, 0x30
|
|
strh r0, [r1, 0x20]
|
|
ldr r1, [r2, 0x20]
|
|
adds r0, r2, 0
|
|
adds r0, 0x76
|
|
ldrh r0, [r0]
|
|
lsls r0, 4
|
|
subs r0, 0x42
|
|
strh r0, [r1, 0x22]
|
|
ldr r1, [r2, 0x20]
|
|
ldr r0, _080FBDF4 @ =sub_80FBEA4
|
|
_080FBDEA:
|
|
str r0, [r1, 0x1C]
|
|
add sp, 0x28
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FBDF4: .4byte sub_80FBEA4
|
|
thumb_func_end sub_80FBCF0
|
|
|
|
thumb_func_start sub_80FBDF8
|
|
sub_80FBDF8: @ 80FBDF8
|
|
push {lr}
|
|
ldr r3, _080FBE1C @ =gUnknown_020388CC
|
|
ldr r0, [r3]
|
|
ldr r2, [r0, 0x20]
|
|
cmp r2, 0
|
|
beq _080FBE16
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, [r3]
|
|
ldr r1, [r0, 0x20]
|
|
ldr r0, _080FBE20 @ =SpriteCallbackDummy
|
|
str r0, [r1, 0x1C]
|
|
_080FBE16:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FBE1C: .4byte gUnknown_020388CC
|
|
_080FBE20: .4byte SpriteCallbackDummy
|
|
thumb_func_end sub_80FBDF8
|
|
|
|
thumb_func_start sub_80FBE24
|
|
sub_80FBE24: @ 80FBE24
|
|
push {lr}
|
|
ldr r0, _080FBE5C @ =gUnknown_020388CC
|
|
ldr r3, [r0]
|
|
ldr r1, [r3, 0x20]
|
|
cmp r1, 0
|
|
beq _080FBE9A
|
|
adds r0, r3, 0
|
|
adds r0, 0x78
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _080FBE64
|
|
adds r0, r3, 0
|
|
adds r0, 0x74
|
|
ldrh r0, [r0]
|
|
lsls r0, 4
|
|
subs r0, 0x30
|
|
strh r0, [r1, 0x20]
|
|
ldr r1, [r3, 0x20]
|
|
adds r0, r3, 0
|
|
adds r0, 0x76
|
|
ldrh r0, [r0]
|
|
lsls r0, 4
|
|
subs r0, 0x42
|
|
strh r0, [r1, 0x22]
|
|
ldr r1, [r3, 0x20]
|
|
ldr r0, _080FBE60 @ =sub_80FBEA4
|
|
b _080FBE8C
|
|
.align 2, 0
|
|
_080FBE5C: .4byte gUnknown_020388CC
|
|
_080FBE60: .4byte sub_80FBEA4
|
|
_080FBE64:
|
|
adds r0, r3, 0
|
|
adds r0, 0x74
|
|
ldrh r0, [r0]
|
|
lsls r0, 3
|
|
adds r0, 0x4
|
|
movs r2, 0
|
|
strh r0, [r1, 0x20]
|
|
ldr r1, [r3, 0x20]
|
|
adds r0, r3, 0
|
|
adds r0, 0x76
|
|
ldrh r0, [r0]
|
|
lsls r0, 3
|
|
adds r0, 0x4
|
|
strh r0, [r1, 0x22]
|
|
ldr r0, [r3, 0x20]
|
|
strh r2, [r0, 0x24]
|
|
ldr r0, [r3, 0x20]
|
|
strh r2, [r0, 0x26]
|
|
ldr r1, [r3, 0x20]
|
|
ldr r0, _080FBEA0 @ =sub_80FBF34
|
|
_080FBE8C:
|
|
str r0, [r1, 0x1C]
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
_080FBE9A:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FBEA0: .4byte sub_80FBF34
|
|
thumb_func_end sub_80FBE24
|
|
|
|
thumb_func_start sub_80FBEA4
|
|
sub_80FBEA4: @ 80FBEA4
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
ldr r0, _080FBF08 @ =gUnknown_020388CC
|
|
ldr r1, [r0]
|
|
adds r0, r1, 0
|
|
adds r0, 0x5C
|
|
movs r4, 0
|
|
ldrsh r2, [r0, r4]
|
|
lsls r2, 1
|
|
negs r2, r2
|
|
strh r2, [r3, 0x24]
|
|
adds r1, 0x5E
|
|
movs r4, 0
|
|
ldrsh r0, [r1, r4]
|
|
lsls r0, 1
|
|
negs r0, r0
|
|
strh r0, [r3, 0x26]
|
|
ldrh r1, [r3, 0x22]
|
|
adds r1, r0
|
|
adds r0, r3, 0
|
|
adds r0, 0x29
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
adds r0, r1
|
|
strh r0, [r3, 0x2E]
|
|
ldrh r1, [r3, 0x20]
|
|
adds r1, r2
|
|
adds r2, r3, 0
|
|
adds r2, 0x28
|
|
ldrb r2, [r2]
|
|
lsls r2, 24
|
|
asrs r2, 24
|
|
adds r2, r1
|
|
strh r2, [r3, 0x30]
|
|
adds r0, 0x8
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xB0
|
|
bhi _080FBF04
|
|
lsls r0, r2, 16
|
|
asrs r2, r0, 16
|
|
movs r0, 0x8
|
|
negs r0, r0
|
|
cmp r2, r0
|
|
blt _080FBF04
|
|
cmp r2, 0xF8
|
|
ble _080FBF0C
|
|
_080FBF04:
|
|
movs r0, 0
|
|
b _080FBF0E
|
|
.align 2, 0
|
|
_080FBF08: .4byte gUnknown_020388CC
|
|
_080FBF0C:
|
|
movs r0, 0x1
|
|
_080FBF0E:
|
|
strh r0, [r3, 0x32]
|
|
movs r1, 0x32
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, 0x1
|
|
bne _080FBF20
|
|
adds r0, r3, 0
|
|
bl sub_80FBF40
|
|
b _080FBF2C
|
|
_080FBF20:
|
|
adds r0, r3, 0
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
_080FBF2C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80FBEA4
|
|
|
|
thumb_func_start sub_80FBF34
|
|
sub_80FBF34: @ 80FBF34
|
|
push {lr}
|
|
bl sub_80FBF40
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80FBF34
|
|
|
|
thumb_func_start sub_80FBF40
|
|
sub_80FBF40: @ 80FBF40
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldr r0, _080FBF80 @ =gUnknown_020388CC
|
|
ldr r0, [r0]
|
|
adds r0, 0x7E
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080FBF84
|
|
ldrh r0, [r2, 0x3C]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x3C]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x10
|
|
ble _080FBF90
|
|
movs r0, 0
|
|
strh r0, [r2, 0x3C]
|
|
adds r3, r2, 0
|
|
adds r3, 0x3E
|
|
ldrb r2, [r3]
|
|
lsrs r1, r2, 2
|
|
movs r0, 0x1
|
|
eors r1, r0
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
b _080FBF90
|
|
.align 2, 0
|
|
_080FBF80: .4byte gUnknown_020388CC
|
|
_080FBF84:
|
|
adds r2, 0x3E
|
|
ldrb r1, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
_080FBF90:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80FBF40
|
|
|
|
thumb_func_start sub_80FBF94
|
|
sub_80FBF94: @ 80FBF94
|
|
push {lr}
|
|
ldr r0, _080FBFB0 @ =gUnknown_020388CC
|
|
ldr r1, [r0]
|
|
adds r0, r1, 0
|
|
adds r0, 0x7F
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080FBFAA
|
|
adds r1, 0x7E
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_080FBFAA:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FBFB0: .4byte gUnknown_020388CC
|
|
thumb_func_end sub_80FBF94
|
|
|
|
thumb_func_start sub_80FBFB4
|
|
sub_80FBFB4: @ 80FBFB4
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
cmp r1, 0x56
|
|
bne _080FBFCA
|
|
bl GetSecretBaseMapName
|
|
b _080FBFF2
|
|
_080FBFCA:
|
|
cmp r1, 0x57
|
|
bhi _080FBFE4
|
|
ldr r0, _080FBFE0 @ =gRegionMapLocations
|
|
lsls r1, 3
|
|
adds r0, 0x4
|
|
adds r1, r0
|
|
ldr r1, [r1]
|
|
adds r0, r3, 0
|
|
bl StringCopy
|
|
b _080FBFF2
|
|
.align 2, 0
|
|
_080FBFE0: .4byte gRegionMapLocations
|
|
_080FBFE4:
|
|
cmp r2, 0
|
|
bne _080FBFEA
|
|
movs r2, 0x12
|
|
_080FBFEA:
|
|
adds r0, r3, 0
|
|
movs r1, 0
|
|
bl StringFill
|
|
_080FBFF2:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80FBFB4
|
|
|
|
thumb_func_start CopyMapName
|
|
CopyMapName: @ 80FBFF8
|
|
push {lr}
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
cmp r1, 0x56
|
|
beq _080FC014
|
|
cmp r1, 0x57
|
|
bne _080FC020
|
|
ldr r1, _080FC010 @ =gOtherText_Ferry
|
|
bl StringCopy
|
|
b _080FC026
|
|
.align 2, 0
|
|
_080FC010: .4byte gOtherText_Ferry
|
|
_080FC014:
|
|
ldr r1, _080FC01C @ =gOtherText_SecretBase
|
|
bl StringCopy
|
|
b _080FC026
|
|
.align 2, 0
|
|
_080FC01C: .4byte gOtherText_SecretBase
|
|
_080FC020:
|
|
movs r2, 0
|
|
bl sub_80FBFB4
|
|
_080FC026:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end CopyMapName
|
|
|
|
thumb_func_start CopyLocationName
|
|
CopyLocationName: @ 80FC02C
|
|
push {lr}
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
cmp r1, 0x42
|
|
beq _080FC03C
|
|
bl CopyMapName
|
|
b _080FC042
|
|
_080FC03C:
|
|
ldr r1, _080FC048 @ =gOtherText_Hideout
|
|
bl StringCopy
|
|
_080FC042:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080FC048: .4byte gOtherText_Hideout
|
|
thumb_func_end CopyLocationName
|
|
|
|
thumb_func_start sub_80FC04C
|
|
sub_80FC04C: @ 80FC04C
|
|
push {r4,r5,lr}
|
|
ldr r5, [sp, 0xC]
|
|
lsls r0, 16
|
|
ldr r4, _080FC070 @ =gRegionMapLocations
|
|
lsrs r0, 13
|
|
adds r0, r4
|
|
ldrb r4, [r0]
|
|
strh r4, [r1]
|
|
ldrb r1, [r0, 0x1]
|
|
strh r1, [r2]
|
|
ldrb r1, [r0, 0x2]
|
|
strh r1, [r3]
|
|
ldrb r0, [r0, 0x3]
|
|
strh r0, [r5]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FC070: .4byte gRegionMapLocations
|
|
thumb_func_end sub_80FC04C
|
|
|
|
thumb_func_start sub_80FC074
|
|
sub_80FC074: @ 80FC074
|
|
push {r4,lr}
|
|
ldr r0, _080FC090 @ =gMain
|
|
ldr r1, _080FC094 @ =0x0000043c
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x9
|
|
bls _080FC084
|
|
b _080FC1F2
|
|
_080FC084:
|
|
lsls r0, 2
|
|
ldr r1, _080FC098 @ =_080FC09C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080FC090: .4byte gMain
|
|
_080FC094: .4byte 0x0000043c
|
|
_080FC098: .4byte _080FC09C
|
|
.align 2, 0
|
|
_080FC09C:
|
|
.4byte _080FC0C4
|
|
.4byte _080FC104
|
|
.4byte _080FC110
|
|
.4byte _080FC120
|
|
.4byte _080FC15C
|
|
.4byte _080FC170
|
|
.4byte _080FC184
|
|
.4byte _080FC1A4
|
|
.4byte _080FC1AA
|
|
.4byte _080FC1C4
|
|
_080FC0C4:
|
|
movs r0, 0
|
|
bl SetVBlankCallback
|
|
movs r0, 0x80
|
|
lsls r0, 19
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
adds r0, 0x10
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
strh r1, [r0]
|
|
adds r0, 0x4
|
|
strh r1, [r0]
|
|
subs r0, 0x2
|
|
strh r1, [r0]
|
|
adds r0, 0x4
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
strh r1, [r0]
|
|
bl ResetPaletteFade
|
|
bl ResetSpriteData
|
|
bl FreeSpriteTileRanges
|
|
bl FreeAllSpritePalettes
|
|
b _080FC1E6
|
|
_080FC104:
|
|
ldr r0, _080FC10C @ =gWindowConfig_81E7224
|
|
bl SetUpWindowConfig
|
|
b _080FC1E6
|
|
.align 2, 0
|
|
_080FC10C: .4byte gWindowConfig_81E7224
|
|
_080FC110:
|
|
ldr r0, _080FC11C @ =gWindowConfig_81E7224
|
|
bl InitMenuWindow
|
|
bl MenuZeroFillScreen
|
|
b _080FC1E6
|
|
.align 2, 0
|
|
_080FC11C: .4byte gWindowConfig_81E7224
|
|
_080FC120:
|
|
ldr r4, _080FC158 @ =0x02000008
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_80FA8EC
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_80FBB3C
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
bl sub_80FBCF0
|
|
adds r1, r4, 0
|
|
subs r1, 0x8
|
|
ldrh r0, [r1, 0x1C]
|
|
strh r0, [r1, 0x6]
|
|
movs r2, 0xA4
|
|
lsls r2, 4
|
|
adds r4, r2
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0xC
|
|
bl StringFill
|
|
bl sub_80FC254
|
|
b _080FC1E6
|
|
.align 2, 0
|
|
_080FC158: .4byte 0x02000008
|
|
_080FC15C:
|
|
ldr r0, _080FC168 @ =gUnknown_083E773C
|
|
ldr r1, _080FC16C @ =0x0600c000
|
|
bl LZ77UnCompVram
|
|
b _080FC1E6
|
|
.align 2, 0
|
|
_080FC168: .4byte gUnknown_083E773C
|
|
_080FC16C: .4byte 0x0600c000
|
|
_080FC170:
|
|
ldr r0, _080FC17C @ =gUnknown_083E7774
|
|
ldr r1, _080FC180 @ =0x0600f000
|
|
bl LZ77UnCompVram
|
|
b _080FC1E6
|
|
.align 2, 0
|
|
_080FC17C: .4byte gUnknown_083E7774
|
|
_080FC180: .4byte 0x0600f000
|
|
_080FC184:
|
|
ldr r0, _080FC19C @ =gUnknown_083E771C
|
|
movs r1, 0x10
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
ldr r0, _080FC1A0 @ =gOtherText_FlyToWhere
|
|
movs r1, 0x1
|
|
movs r2, 0x90
|
|
movs r3, 0x1
|
|
bl MenuPrint_PixelCoords
|
|
b _080FC1E6
|
|
.align 2, 0
|
|
_080FC19C: .4byte gUnknown_083E771C
|
|
_080FC1A0: .4byte gOtherText_FlyToWhere
|
|
_080FC1A4:
|
|
bl sub_80FC31C
|
|
b _080FC1E6
|
|
_080FC1AA:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0x10
|
|
movs r2, 0
|
|
bl BlendPalettes
|
|
ldr r0, _080FC1C0 @ =sub_80FC214
|
|
bl SetVBlankCallback
|
|
b _080FC1E6
|
|
.align 2, 0
|
|
_080FC1C0: .4byte sub_80FC214
|
|
_080FC1C4:
|
|
ldr r1, _080FC1F8 @ =REG_BLDCNT
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
subs r1, 0x46
|
|
ldr r2, _080FC1FC @ =0x00001e0d
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
subs r1, 0xA
|
|
ldr r2, _080FC200 @ =0x00001741
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r0, _080FC204 @ =sub_80FC5B4
|
|
bl sub_80FC244
|
|
ldr r0, _080FC208 @ =sub_80FC228
|
|
bl SetMainCallback2
|
|
_080FC1E6:
|
|
ldr r1, _080FC20C @ =gMain
|
|
ldr r0, _080FC210 @ =0x0000043c
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_080FC1F2:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FC1F8: .4byte REG_BLDCNT
|
|
_080FC1FC: .4byte 0x00001e0d
|
|
_080FC200: .4byte 0x00001741
|
|
_080FC204: .4byte sub_80FC5B4
|
|
_080FC208: .4byte sub_80FC228
|
|
_080FC20C: .4byte gMain
|
|
_080FC210: .4byte 0x0000043c
|
|
thumb_func_end sub_80FC074
|
|
|
|
thumb_func_start sub_80FC214
|
|
sub_80FC214: @ 80FC214
|
|
push {lr}
|
|
bl LoadOam
|
|
bl ProcessSpriteCopyRequests
|
|
bl TransferPlttBuffer
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80FC214
|
|
|
|
thumb_func_start sub_80FC228
|
|
sub_80FC228: @ 80FC228
|
|
push {lr}
|
|
ldr r0, _080FC240 @ =0x02000000
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FC240: .4byte 0x02000000
|
|
thumb_func_end sub_80FC228
|
|
|
|
thumb_func_start sub_80FC244
|
|
sub_80FC244: @ 80FC244
|
|
ldr r1, _080FC250 @ =0x02000000
|
|
str r0, [r1]
|
|
movs r0, 0
|
|
strh r0, [r1, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_080FC250: .4byte 0x02000000
|
|
thumb_func_end sub_80FC244
|
|
|
|
thumb_func_start sub_80FC254
|
|
sub_80FC254: @ 80FC254
|
|
push {r4,r5,lr}
|
|
ldr r4, _080FC2AC @ =0x02000000
|
|
ldrb r0, [r4, 0x1E]
|
|
cmp r0, 0x2
|
|
beq _080FC262
|
|
cmp r0, 0x4
|
|
bne _080FC2EC
|
|
_080FC262:
|
|
movs r1, 0
|
|
ldr r2, _080FC2B0 @ =gUnknown_083E79C0
|
|
adds r5, r4, 0
|
|
_080FC268:
|
|
lsls r0, r1, 3
|
|
adds r4, r0, r2
|
|
ldrh r0, [r5, 0x1C]
|
|
ldrh r3, [r4, 0x4]
|
|
cmp r0, r3
|
|
bne _080FC2B4
|
|
ldrh r0, [r4, 0x6]
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080FC2BE
|
|
movs r0, 0x10
|
|
movs r1, 0xE
|
|
movs r2, 0x1D
|
|
movs r3, 0x13
|
|
bl MenuDrawTextWindow
|
|
adds r0, r5, 0
|
|
adds r0, 0x8
|
|
movs r1, 0x11
|
|
movs r2, 0xF
|
|
bl MenuPrint
|
|
ldrb r0, [r5, 0x1F]
|
|
ldr r1, [r4]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x1D
|
|
movs r2, 0x11
|
|
bl MenuPrint_RightAligned
|
|
b _080FC310
|
|
.align 2, 0
|
|
_080FC2AC: .4byte 0x02000000
|
|
_080FC2B0: .4byte gUnknown_083E79C0
|
|
_080FC2B4:
|
|
adds r0, r1, 0x1
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r1, 0
|
|
beq _080FC268
|
|
_080FC2BE:
|
|
movs r0, 0
|
|
cmp r0, 0
|
|
bne _080FC310
|
|
movs r0, 0x10
|
|
movs r1, 0x10
|
|
movs r2, 0x1D
|
|
movs r3, 0x13
|
|
bl MenuDrawTextWindow
|
|
ldr r0, _080FC2E8 @ =0x02000008
|
|
movs r1, 0x11
|
|
movs r2, 0x11
|
|
bl MenuPrint
|
|
movs r0, 0x10
|
|
movs r1, 0xE
|
|
movs r2, 0x1D
|
|
movs r3, 0xF
|
|
bl MenuZeroFillWindowRect
|
|
b _080FC310
|
|
.align 2, 0
|
|
_080FC2E8: .4byte 0x02000008
|
|
_080FC2EC:
|
|
movs r0, 0x10
|
|
movs r1, 0x10
|
|
movs r2, 0x1D
|
|
movs r3, 0x13
|
|
bl MenuDrawTextWindow
|
|
ldr r1, _080FC318 @ =0x00000a48
|
|
adds r0, r4, r1
|
|
movs r1, 0x11
|
|
movs r2, 0x11
|
|
bl MenuPrint
|
|
movs r0, 0x10
|
|
movs r1, 0xE
|
|
movs r2, 0x1D
|
|
movs r3, 0xF
|
|
bl MenuZeroFillWindowRect
|
|
_080FC310:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FC318: .4byte 0x00000a48
|
|
thumb_func_end sub_80FC254
|
|
|
|
thumb_func_start sub_80FC31C
|
|
sub_80FC31C: @ 80FC31C
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
ldr r0, _080FC360 @ =gUnknown_083E784C
|
|
ldr r4, _080FC364 @ =0x02000888
|
|
adds r1, r4, 0
|
|
bl LZ77UnCompWram
|
|
str r4, [sp]
|
|
ldr r1, _080FC368 @ =0xffff0000
|
|
ldr r0, [sp, 0x4]
|
|
ands r0, r1
|
|
movs r1, 0xE0
|
|
lsls r1, 1
|
|
orrs r0, r1
|
|
ldr r1, _080FC36C @ =0x0000ffff
|
|
ands r0, r1
|
|
movs r1, 0x80
|
|
lsls r1, 10
|
|
orrs r0, r1
|
|
str r0, [sp, 0x4]
|
|
mov r0, sp
|
|
bl LoadSpriteSheet
|
|
ldr r0, _080FC370 @ =gUnknown_083E79CC
|
|
bl LoadSpritePalette
|
|
bl sub_80FC374
|
|
bl sub_80FC484
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FC360: .4byte gUnknown_083E784C
|
|
_080FC364: .4byte 0x02000888
|
|
_080FC368: .4byte 0xffff0000
|
|
_080FC36C: .4byte 0x0000ffff
|
|
_080FC370: .4byte gUnknown_083E79CC
|
|
thumb_func_end sub_80FC31C
|
|
|
|
thumb_func_start sub_80FC374
|
|
sub_80FC374: @ 80FC374
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x1C
|
|
ldr r0, _080FC3D4 @ =0x0000080f
|
|
str r0, [sp, 0xC]
|
|
movs r1, 0
|
|
mov r9, r1
|
|
mov r2, sp
|
|
adds r2, 0x6
|
|
str r2, [sp, 0x14]
|
|
mov r3, sp
|
|
adds r3, 0xA
|
|
str r3, [sp, 0x18]
|
|
mov r0, sp
|
|
adds r0, 0x8
|
|
str r0, [sp, 0x10]
|
|
add r1, sp, 0x4
|
|
mov r10, r1
|
|
_080FC39E:
|
|
ldr r2, [sp, 0x18]
|
|
str r2, [sp]
|
|
mov r0, r9
|
|
add r1, sp, 0x4
|
|
mov r2, sp
|
|
adds r2, 0x6
|
|
ldr r3, [sp, 0x10]
|
|
bl sub_80FC04C
|
|
mov r3, r10
|
|
ldrh r0, [r3]
|
|
adds r0, 0x1
|
|
lsls r0, 3
|
|
adds r0, 0x4
|
|
strh r0, [r3]
|
|
mov r1, sp
|
|
ldrh r0, [r1, 0x6]
|
|
adds r0, 0x2
|
|
lsls r0, 3
|
|
adds r0, 0x4
|
|
strh r0, [r1, 0x6]
|
|
ldr r2, [sp, 0x10]
|
|
ldrh r0, [r2]
|
|
cmp r0, 0x2
|
|
bne _080FC3D8
|
|
movs r7, 0x1
|
|
b _080FC3E4
|
|
.align 2, 0
|
|
_080FC3D4: .4byte 0x0000080f
|
|
_080FC3D8:
|
|
ldr r3, [sp, 0x18]
|
|
ldrh r0, [r3]
|
|
movs r7, 0
|
|
cmp r0, 0x2
|
|
bne _080FC3E4
|
|
movs r7, 0x2
|
|
_080FC3E4:
|
|
mov r0, r10
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
ldr r3, [sp, 0x14]
|
|
movs r0, 0
|
|
ldrsh r2, [r3, r0]
|
|
ldr r0, _080FC430 @ =gSpriteTemplate_83E7A38
|
|
movs r3, 0xA
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x40
|
|
beq _080FC458
|
|
ldr r1, _080FC434 @ =gSprites
|
|
mov r8, r1
|
|
lsls r4, r5, 4
|
|
adds r0, r4, r5
|
|
lsls r6, r0, 2
|
|
adds r2, r6, r1
|
|
lsls r3, r7, 6
|
|
ldrb r1, [r2, 0x1]
|
|
movs r0, 0x3F
|
|
ands r0, r1
|
|
orrs r0, r3
|
|
strb r0, [r2, 0x1]
|
|
ldr r0, [sp, 0xC]
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080FC43C
|
|
mov r0, r8
|
|
adds r0, 0x1C
|
|
adds r0, r6, r0
|
|
ldr r1, _080FC438 @ =sub_80FC55C
|
|
str r1, [r0]
|
|
b _080FC442
|
|
.align 2, 0
|
|
_080FC430: .4byte gSpriteTemplate_83E7A38
|
|
_080FC434: .4byte gSprites
|
|
_080FC438: .4byte sub_80FC55C
|
|
_080FC43C:
|
|
adds r0, r7, 0x3
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
_080FC442:
|
|
adds r4, r5
|
|
lsls r4, 2
|
|
ldr r0, _080FC480 @ =gSprites
|
|
adds r4, r0
|
|
lsls r1, r7, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
mov r2, r9
|
|
strh r2, [r4, 0x2E]
|
|
_080FC458:
|
|
ldr r0, [sp, 0xC]
|
|
adds r0, 0x1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
str r0, [sp, 0xC]
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r9, r0
|
|
cmp r0, 0xF
|
|
bls _080FC39E
|
|
add sp, 0x1C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FC480: .4byte gSprites
|
|
thumb_func_end sub_80FC374
|
|
|
|
thumb_func_start sub_80FC484
|
|
sub_80FC484: @ 80FC484
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
movs r0, 0
|
|
mov r8, r0
|
|
ldr r6, _080FC54C @ =gUnknown_083E79D4
|
|
ldrh r0, [r6, 0x2]
|
|
cmp r0, 0x58
|
|
beq _080FC53C
|
|
mov r5, sp
|
|
adds r5, 0x6
|
|
add r7, sp, 0x4
|
|
ldr r1, _080FC550 @ =gSprites
|
|
mov r9, r1
|
|
movs r0, 0x1C
|
|
add r0, r9
|
|
mov r10, r0
|
|
_080FC4AC:
|
|
mov r1, r8
|
|
lsls r4, r1, 2
|
|
adds r0, r4, r6
|
|
ldrh r0, [r0]
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080FC524
|
|
adds r0, r6, 0x2
|
|
adds r0, r4, r0
|
|
ldrh r6, [r0]
|
|
mov r0, sp
|
|
adds r0, 0xA
|
|
str r0, [sp]
|
|
adds r0, r6, 0
|
|
add r1, sp, 0x4
|
|
adds r2, r5, 0
|
|
add r3, sp, 0x8
|
|
bl sub_80FC04C
|
|
ldrh r0, [r7]
|
|
adds r0, 0x1
|
|
lsls r0, 3
|
|
strh r0, [r7]
|
|
ldrh r0, [r5]
|
|
adds r0, 0x2
|
|
lsls r0, 3
|
|
strh r0, [r5]
|
|
movs r0, 0
|
|
ldrsh r1, [r7, r0]
|
|
movs r0, 0
|
|
ldrsh r2, [r5, r0]
|
|
ldr r0, _080FC554 @ =gSpriteTemplate_83E7A38
|
|
movs r3, 0xA
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x40
|
|
beq _080FC524
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
mov r1, r9
|
|
adds r4, r2, r1
|
|
ldrb r1, [r4, 0x3]
|
|
movs r0, 0x3F
|
|
ands r0, r1
|
|
movs r1, 0x40
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x3]
|
|
add r2, r10
|
|
ldr r0, _080FC558 @ =sub_80FC55C
|
|
str r0, [r2]
|
|
adds r0, r4, 0
|
|
movs r1, 0x6
|
|
bl StartSpriteAnim
|
|
strh r6, [r4, 0x2E]
|
|
_080FC524:
|
|
mov r0, r8
|
|
adds r0, 0x1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
ldr r6, _080FC54C @ =gUnknown_083E79D4
|
|
lsls r0, 2
|
|
adds r1, r6, 0x2
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x58
|
|
bne _080FC4AC
|
|
_080FC53C:
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FC54C: .4byte gUnknown_083E79D4
|
|
_080FC550: .4byte gSprites
|
|
_080FC554: .4byte gSpriteTemplate_83E7A38
|
|
_080FC558: .4byte sub_80FC55C
|
|
thumb_func_end sub_80FC484
|
|
|
|
thumb_func_start sub_80FC55C
|
|
sub_80FC55C: @ 80FC55C
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldr r0, _080FC59C @ =0x02000000
|
|
ldrh r1, [r0, 0x1C]
|
|
movs r3, 0x2E
|
|
ldrsh r0, [r2, r3]
|
|
cmp r1, r0
|
|
bne _080FC5A0
|
|
ldrh r0, [r2, 0x30]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x30]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x10
|
|
ble _080FC5AE
|
|
movs r0, 0
|
|
strh r0, [r2, 0x30]
|
|
adds r3, r2, 0
|
|
adds r3, 0x3E
|
|
ldrb r2, [r3]
|
|
lsrs r1, r2, 2
|
|
movs r0, 0x1
|
|
eors r1, r0
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
b _080FC5AE
|
|
.align 2, 0
|
|
_080FC59C: .4byte 0x02000000
|
|
_080FC5A0:
|
|
movs r0, 0x10
|
|
strh r0, [r2, 0x30]
|
|
adds r2, 0x3E
|
|
ldrb r1, [r2]
|
|
subs r0, 0x15
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
_080FC5AE:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80FC55C
|
|
|
|
thumb_func_start sub_80FC5B4
|
|
sub_80FC5B4: @ 80FC5B4
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r4, _080FC5C8 @ =0x02000000
|
|
ldrh r1, [r4, 0x4]
|
|
cmp r1, 0
|
|
beq _080FC5CC
|
|
cmp r1, 0x1
|
|
beq _080FC5E4
|
|
b _080FC5F4
|
|
.align 2, 0
|
|
_080FC5C8: .4byte 0x02000000
|
|
_080FC5CC:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
ldrh r0, [r4, 0x4]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x4]
|
|
b _080FC5F4
|
|
_080FC5E4:
|
|
bl UpdatePaletteFade
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080FC5F4
|
|
ldr r0, _080FC5FC @ =sub_80FC600
|
|
bl sub_80FC244
|
|
_080FC5F4:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FC5FC: .4byte sub_80FC600
|
|
thumb_func_end sub_80FC5B4
|
|
|
|
thumb_func_start sub_80FC600
|
|
sub_80FC600: @ 80FC600
|
|
push {r4,lr}
|
|
ldr r0, _080FC620 @ =0x02000000
|
|
ldrh r0, [r0, 0x4]
|
|
cmp r0, 0
|
|
bne _080FC68A
|
|
bl sub_80FAB60
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x5
|
|
bhi _080FC68A
|
|
lsls r0, 2
|
|
ldr r1, _080FC624 @ =_080FC628
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080FC620: .4byte 0x02000000
|
|
_080FC624: .4byte _080FC628
|
|
.align 2, 0
|
|
_080FC628:
|
|
.4byte _080FC68A
|
|
.4byte _080FC68A
|
|
.4byte _080FC68A
|
|
.4byte _080FC640
|
|
.4byte _080FC646
|
|
.4byte _080FC674
|
|
_080FC640:
|
|
bl sub_80FC254
|
|
b _080FC68A
|
|
_080FC646:
|
|
ldr r4, _080FC668 @ =0x02000000
|
|
ldrb r0, [r4, 0x1E]
|
|
cmp r0, 0x2
|
|
beq _080FC652
|
|
cmp r0, 0x4
|
|
bne _080FC68A
|
|
_080FC652:
|
|
movs r0, 0x5
|
|
bl m4aSongNumStart
|
|
ldr r1, _080FC66C @ =0x00000a6e
|
|
adds r0, r4, r1
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r0, _080FC670 @ =sub_80FC69C
|
|
bl sub_80FC244
|
|
b _080FC68A
|
|
.align 2, 0
|
|
_080FC668: .4byte 0x02000000
|
|
_080FC66C: .4byte 0x00000a6e
|
|
_080FC670: .4byte sub_80FC69C
|
|
_080FC674:
|
|
movs r0, 0x5
|
|
bl m4aSongNumStart
|
|
ldr r0, _080FC690 @ =0x02000000
|
|
ldr r1, _080FC694 @ =0x00000a6e
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, _080FC698 @ =sub_80FC69C
|
|
bl sub_80FC244
|
|
_080FC68A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FC690: .4byte 0x02000000
|
|
_080FC694: .4byte 0x00000a6e
|
|
_080FC698: .4byte sub_80FC69C
|
|
thumb_func_end sub_80FC600
|
|
|
|
thumb_func_start sub_80FC69C
|
|
sub_80FC69C: @ 80FC69C
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r4, _080FC6B0 @ =0x02000000
|
|
ldrh r1, [r4, 0x4]
|
|
cmp r1, 0
|
|
beq _080FC6B4
|
|
cmp r1, 0x1
|
|
beq _080FC6CC
|
|
b _080FC792
|
|
.align 2, 0
|
|
_080FC6B0: .4byte 0x02000000
|
|
_080FC6B4:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldrh r0, [r4, 0x4]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x4]
|
|
b _080FC792
|
|
_080FC6CC:
|
|
bl UpdatePaletteFade
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080FC792
|
|
bl sub_80FAB10
|
|
ldr r1, _080FC6F4 @ =0x00000a6e
|
|
adds r0, r4, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080FC78C
|
|
ldrh r0, [r4, 0x1C]
|
|
cmp r0, 0xF
|
|
beq _080FC724
|
|
cmp r0, 0xF
|
|
bgt _080FC6F8
|
|
cmp r0, 0
|
|
beq _080FC710
|
|
b _080FC748
|
|
.align 2, 0
|
|
_080FC6F4: .4byte 0x00000a6e
|
|
_080FC6F8:
|
|
cmp r0, 0x3A
|
|
beq _080FC708
|
|
cmp r0, 0x49
|
|
bne _080FC748
|
|
movs r0, 0x16
|
|
bl sub_8053538
|
|
b _080FC786
|
|
_080FC708:
|
|
movs r0, 0x15
|
|
bl sub_8053538
|
|
b _080FC786
|
|
_080FC710:
|
|
ldr r0, _080FC720 @ =gSaveBlock2
|
|
ldrb r0, [r0, 0x8]
|
|
movs r1, 0xD
|
|
cmp r0, 0
|
|
bne _080FC73A
|
|
movs r1, 0xC
|
|
b _080FC73A
|
|
.align 2, 0
|
|
_080FC720: .4byte gSaveBlock2
|
|
_080FC724:
|
|
ldr r0, _080FC744 @ =0x00000854
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
movs r1, 0xB
|
|
cmp r0, 0
|
|
beq _080FC73A
|
|
ldrb r0, [r4, 0x1F]
|
|
cmp r0, 0
|
|
bne _080FC73A
|
|
movs r1, 0x14
|
|
_080FC73A:
|
|
adds r0, r1, 0
|
|
bl sub_8053538
|
|
b _080FC786
|
|
.align 2, 0
|
|
_080FC744: .4byte 0x00000854
|
|
_080FC748:
|
|
ldr r3, _080FC764 @ =gUnknown_083E7920
|
|
ldr r0, _080FC768 @ =0x02000000
|
|
ldrh r1, [r0, 0x1C]
|
|
lsls r0, r1, 1
|
|
adds r2, r0, r1
|
|
adds r0, r3, 0x2
|
|
adds r1, r2, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _080FC76C
|
|
bl sub_8053538
|
|
b _080FC786
|
|
.align 2, 0
|
|
_080FC764: .4byte gUnknown_083E7920
|
|
_080FC768: .4byte 0x02000000
|
|
_080FC76C:
|
|
adds r0, r2, r3
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
adds r1, r3, 0x1
|
|
adds r1, r2, r1
|
|
ldrb r1, [r1]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
bl warp1_set_2
|
|
_080FC786:
|
|
bl sub_80865BC
|
|
b _080FC792
|
|
_080FC78C:
|
|
ldr r0, _080FC79C @ =sub_808AD58
|
|
bl SetMainCallback2
|
|
_080FC792:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080FC79C: .4byte sub_808AD58
|
|
thumb_func_end sub_80FC69C
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|