mirror of
https://github.com/pret/pokeruby.git
synced 2026-08-08 10:34:12 -05:00
893 lines
15 KiB
ArmAsm
893 lines
15 KiB
ArmAsm
.include "constants/gba_constants.inc"
|
|
.include "constants/species_constants.inc"
|
|
.include "asm/macros.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_80F890C
|
|
sub_80F890C: @ 80F890C
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r6, r1, 0
|
|
lsls r2, 24
|
|
lsrs r5, r2, 24
|
|
ldr r2, _080F8958 @ =0x02000000
|
|
adds r1, r2, 0
|
|
adds r1, 0xFF
|
|
movs r0, 0x2
|
|
strb r0, [r1]
|
|
adds r0, 0xFE
|
|
adds r1, r2, r0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
movs r0, 0x82
|
|
lsls r0, 1
|
|
adds r1, r2, r0
|
|
ldr r0, _080F895C @ =sub_80EB3FC
|
|
str r0, [r1]
|
|
movs r0, 0x84
|
|
lsls r0, 1
|
|
adds r1, r2, r0
|
|
ldr r0, _080F8960 @ =ConvertEasyChatWordsToString
|
|
str r0, [r1]
|
|
ldrh r1, [r4, 0x20]
|
|
adds r0, r1, 0
|
|
subs r0, 0x79
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xB
|
|
bhi _080F8964
|
|
subs r1, 0x79
|
|
adds r0, r2, 0
|
|
adds r0, 0xFA
|
|
strb r1, [r0]
|
|
b _080F896E
|
|
.align 2, 0
|
|
_080F8958: .4byte 0x02000000
|
|
_080F895C: .4byte sub_80EB3FC
|
|
_080F8960: .4byte ConvertEasyChatWordsToString
|
|
_080F8964:
|
|
adds r1, r2, 0
|
|
adds r1, 0xFA
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
movs r5, 0
|
|
_080F896E:
|
|
ldr r1, _080F8994 @ =0x02000000
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080F8980
|
|
cmp r0, 0x1
|
|
beq _080F899C
|
|
_080F8980:
|
|
movs r0, 0x86
|
|
lsls r0, 1
|
|
adds r2, r1, r0
|
|
adds r0, r1, 0
|
|
adds r0, 0xFA
|
|
ldrb r0, [r0]
|
|
lsls r0, 3
|
|
ldr r1, _080F8998 @ =gUnknown_083E5730
|
|
b _080F89AC
|
|
.align 2, 0
|
|
_080F8994: .4byte 0x02000000
|
|
_080F8998: .4byte gUnknown_083E5730
|
|
_080F899C:
|
|
movs r0, 0x86
|
|
lsls r0, 1
|
|
adds r2, r1, r0
|
|
adds r0, r1, 0
|
|
adds r0, 0xFA
|
|
ldrb r0, [r0]
|
|
lsls r0, 3
|
|
ldr r1, _080F89DC @ =gUnknown_083E57A4
|
|
_080F89AC:
|
|
adds r0, r1
|
|
str r0, [r2]
|
|
ldrh r0, [r4, 0x1E]
|
|
mov r1, sp
|
|
bl sub_80A2D64
|
|
lsls r0, 16
|
|
ldr r1, _080F89E0 @ =0xffff0000
|
|
adds r0, r1
|
|
movs r1, 0xCD
|
|
lsls r1, 17
|
|
cmp r0, r1
|
|
bhi _080F89F8
|
|
ldr r0, _080F89E4 @ =0x02000000
|
|
adds r1, r0, 0
|
|
adds r1, 0xFA
|
|
ldrb r2, [r1]
|
|
adds r1, r0, 0
|
|
cmp r2, 0x6
|
|
beq _080F89E8
|
|
cmp r2, 0x9
|
|
beq _080F89F0
|
|
b _080F89FA
|
|
.align 2, 0
|
|
_080F89DC: .4byte gUnknown_083E57A4
|
|
_080F89E0: .4byte 0xffff0000
|
|
_080F89E4: .4byte 0x02000000
|
|
_080F89E8:
|
|
adds r2, r1, 0
|
|
adds r2, 0xFB
|
|
movs r0, 0x1
|
|
b _080F8A00
|
|
_080F89F0:
|
|
adds r2, r1, 0
|
|
adds r2, 0xFB
|
|
movs r0, 0x2
|
|
b _080F8A00
|
|
_080F89F8:
|
|
ldr r1, _080F8A20 @ =0x02000000
|
|
_080F89FA:
|
|
adds r2, r1, 0
|
|
adds r2, 0xFB
|
|
movs r0, 0
|
|
_080F8A00:
|
|
strb r0, [r2]
|
|
adds r0, r1, 0
|
|
adds r0, 0xF4
|
|
str r4, [r0]
|
|
subs r0, 0x8
|
|
str r6, [r0]
|
|
adds r0, 0xC
|
|
strb r5, [r0]
|
|
ldr r0, _080F8A24 @ =sub_80F8D50
|
|
bl SetMainCallback2
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F8A20: .4byte 0x02000000
|
|
_080F8A24: .4byte sub_80F8D50
|
|
thumb_func_end sub_80F890C
|
|
|
|
thumb_func_start sub_80F8A28
|
|
sub_80F8A28: @ 80F8A28
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
ldr r0, _080F8A44 @ =gMain
|
|
ldr r1, _080F8A48 @ =0x0000043c
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x12
|
|
bls _080F8A3A
|
|
b _080F8D3C
|
|
_080F8A3A:
|
|
lsls r0, 2
|
|
ldr r1, _080F8A4C @ =_080F8A50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080F8A44: .4byte gMain
|
|
_080F8A48: .4byte 0x0000043c
|
|
_080F8A4C: .4byte _080F8A50
|
|
.align 2, 0
|
|
_080F8A50:
|
|
.4byte _080F8A9C
|
|
.4byte _080F8AB0
|
|
.4byte _080F8AC8
|
|
.4byte _080F8ACE
|
|
.4byte _080F8AD4
|
|
.4byte _080F8ADA
|
|
.4byte _080F8B10
|
|
.4byte _080F8B1C
|
|
.4byte _080F8B28
|
|
.4byte _080F8B34
|
|
.4byte _080F8B3A
|
|
.4byte _080F8B54
|
|
.4byte _080F8B78
|
|
.4byte _080F8BA0
|
|
.4byte _080F8C14
|
|
.4byte _080F8C2C
|
|
.4byte _080F8C58
|
|
.4byte _080F8CBC
|
|
.4byte _080F8CC6
|
|
_080F8A9C:
|
|
movs r0, 0
|
|
bl SetVBlankCallback
|
|
bl remove_some_task
|
|
movs r1, 0x80
|
|
lsls r1, 19
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
b _080F8D30
|
|
_080F8AB0:
|
|
add r1, sp, 0x4
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
movs r1, 0xE0
|
|
lsls r1, 19
|
|
ldr r2, _080F8AC4 @ =0x01000200
|
|
add r0, sp, 0x4
|
|
bl CpuSet
|
|
b _080F8D30
|
|
.align 2, 0
|
|
_080F8AC4: .4byte 0x01000200
|
|
_080F8AC8:
|
|
bl ResetPaletteFade
|
|
b _080F8D30
|
|
_080F8ACE:
|
|
bl ResetTasks
|
|
b _080F8D30
|
|
_080F8AD4:
|
|
bl ResetSpriteData
|
|
b _080F8D30
|
|
_080F8ADA:
|
|
bl FreeAllSpritePalettes
|
|
ldr r0, _080F8B0C @ =REG_BG0HOFS
|
|
movs r1, 0
|
|
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]
|
|
adds r0, 0x32
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
strh r1, [r0]
|
|
b _080F8D30
|
|
.align 2, 0
|
|
_080F8B0C: .4byte REG_BG0HOFS
|
|
_080F8B10:
|
|
ldr r0, _080F8B18 @ =gWindowConfig_81E6DFC
|
|
bl SetUpWindowConfig
|
|
b _080F8D30
|
|
.align 2, 0
|
|
_080F8B18: .4byte gWindowConfig_81E6DFC
|
|
_080F8B1C:
|
|
ldr r0, _080F8B24 @ =gWindowConfig_81E6DFC
|
|
bl MultistepInitMenuWindowBegin
|
|
b _080F8D30
|
|
.align 2, 0
|
|
_080F8B24: .4byte gWindowConfig_81E6DFC
|
|
_080F8B28:
|
|
bl MultistepInitMenuWindowContinue
|
|
cmp r0, 0
|
|
beq _080F8B32
|
|
b _080F8D30
|
|
_080F8B32:
|
|
b _080F8D3C
|
|
_080F8B34:
|
|
bl MenuZeroFillScreen
|
|
b _080F8D30
|
|
_080F8B3A:
|
|
mov r0, sp
|
|
adds r0, 0x6
|
|
movs r1, 0x1
|
|
strh r1, [r0]
|
|
ldr r1, _080F8B4C @ =0x06004800
|
|
ldr r2, _080F8B50 @ =0x01000400
|
|
bl CpuSet
|
|
b _080F8D30
|
|
.align 2, 0
|
|
_080F8B4C: .4byte 0x06004800
|
|
_080F8B50: .4byte 0x01000400
|
|
_080F8B54:
|
|
ldr r2, _080F8B70 @ =gMailGraphicsTable
|
|
ldr r0, _080F8B74 @ =0x02000000
|
|
adds r0, 0xFA
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
b _080F8D30
|
|
.align 2, 0
|
|
_080F8B70: .4byte gMailGraphicsTable
|
|
_080F8B74: .4byte 0x02000000
|
|
_080F8B78:
|
|
ldr r2, _080F8B94 @ =gMailGraphicsTable
|
|
ldr r0, _080F8B98 @ =0x02000000
|
|
adds r0, 0xFA
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x8
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ldr r1, _080F8B9C @ =0x06004000
|
|
bl LZ77UnCompVram
|
|
b _080F8D30
|
|
.align 2, 0
|
|
_080F8B94: .4byte gMailGraphicsTable
|
|
_080F8B98: .4byte 0x02000000
|
|
_080F8B9C: .4byte 0x06004000
|
|
_080F8BA0:
|
|
ldr r5, _080F8C00 @ =gMailGraphicsTable
|
|
ldr r4, _080F8C04 @ =0x02000000
|
|
adds r4, 0xFA
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r5, 0x4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0xC0
|
|
lsls r1, 19
|
|
bl LZ77UnCompVram
|
|
ldr r3, _080F8C08 @ =gPlttBufferUnfaded
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldrh r0, [r0, 0x10]
|
|
movs r2, 0xF1
|
|
lsls r2, 1
|
|
adds r1, r3, r2
|
|
strh r0, [r1]
|
|
ldrb r1, [r4]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldrh r1, [r0, 0x12]
|
|
adds r2, 0xE
|
|
adds r0, r3, r2
|
|
strh r1, [r0]
|
|
ldr r1, _080F8C0C @ =gUnknown_083E562C
|
|
ldr r2, _080F8C10 @ =gSaveBlock2
|
|
ldrb r0, [r2, 0x8]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
strh r0, [r3, 0x14]
|
|
ldrb r0, [r2, 0x8]
|
|
lsls r0, 2
|
|
adds r1, 0x2
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
strh r0, [r3, 0x16]
|
|
b _080F8D30
|
|
.align 2, 0
|
|
_080F8C00: .4byte gMailGraphicsTable
|
|
_080F8C04: .4byte 0x02000000
|
|
_080F8C08: .4byte gPlttBufferUnfaded
|
|
_080F8C0C: .4byte gUnknown_083E562C
|
|
_080F8C10: .4byte gSaveBlock2
|
|
_080F8C14:
|
|
ldr r0, _080F8C28 @ =0x02000000
|
|
adds r0, 0xF8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080F8C20
|
|
b _080F8D30
|
|
_080F8C20:
|
|
bl sub_80F8DA0
|
|
b _080F8D30
|
|
.align 2, 0
|
|
_080F8C28: .4byte 0x02000000
|
|
_080F8C2C:
|
|
ldr r0, _080F8C4C @ =0x02000000
|
|
adds r0, 0xF8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080F8C3A
|
|
bl sub_80F8E80
|
|
_080F8C3A:
|
|
ldr r0, _080F8C50 @ =sub_80F8F18
|
|
bl SetVBlankCallback
|
|
ldr r2, _080F8C54 @ =gPaletteFade
|
|
ldrb r0, [r2, 0x8]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strb r0, [r2, 0x8]
|
|
b _080F8D30
|
|
.align 2, 0
|
|
_080F8C4C: .4byte 0x02000000
|
|
_080F8C50: .4byte sub_80F8F18
|
|
_080F8C54: .4byte gPaletteFade
|
|
_080F8C58:
|
|
ldr r5, _080F8C7C @ =0x02000000
|
|
adds r0, r5, 0
|
|
adds r0, 0xF4
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0, 0x1E]
|
|
bl sub_809D4A8
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
adds r0, r5, 0
|
|
adds r0, 0xFB
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _080F8C80
|
|
cmp r0, 0x2
|
|
beq _080F8C98
|
|
b _080F8D30
|
|
.align 2, 0
|
|
_080F8C7C: .4byte 0x02000000
|
|
_080F8C80:
|
|
adds r0, r4, 0
|
|
bl sub_809D580
|
|
ldr r1, _080F8C94 @ =SpriteCallbackDummy
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x60
|
|
b _080F8CA8
|
|
.align 2, 0
|
|
_080F8C94: .4byte SpriteCallbackDummy
|
|
_080F8C98:
|
|
adds r0, r4, 0
|
|
bl sub_809D580
|
|
ldr r1, _080F8CB8 @ =SpriteCallbackDummy
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x28
|
|
_080F8CA8:
|
|
movs r3, 0x80
|
|
bl sub_809D3A4
|
|
adds r1, r5, 0
|
|
adds r1, 0xFC
|
|
strb r0, [r1]
|
|
b _080F8D30
|
|
.align 2, 0
|
|
_080F8CB8: .4byte SpriteCallbackDummy
|
|
_080F8CBC:
|
|
bl sub_8055870
|
|
cmp r0, 0x1
|
|
bne _080F8D30
|
|
b _080F8D3C
|
|
_080F8CC6:
|
|
ldr r1, _080F8D14 @ =REG_BG0CNT
|
|
ldr r2, _080F8D18 @ =0x00009f08
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
ldr r2, _080F8D1C @ =0x00000801
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
ldr r2, _080F8D20 @ =0x00000902
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
adds r1, 0x44
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
subs r1, 0x50
|
|
movs r2, 0xBA
|
|
lsls r2, 5
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
ldr r2, _080F8D24 @ =gPaletteFade
|
|
ldrb r1, [r2, 0x8]
|
|
movs r0, 0x7F
|
|
ands r0, r1
|
|
strb r0, [r2, 0x8]
|
|
ldr r0, _080F8D28 @ =0x02000000
|
|
adds r0, 0xF0
|
|
ldr r1, _080F8D2C @ =sub_80F8F58
|
|
str r1, [r0]
|
|
movs r0, 0x1
|
|
b _080F8D3E
|
|
.align 2, 0
|
|
_080F8D14: .4byte REG_BG0CNT
|
|
_080F8D18: .4byte 0x00009f08
|
|
_080F8D1C: .4byte 0x00000801
|
|
_080F8D20: .4byte 0x00000902
|
|
_080F8D24: .4byte gPaletteFade
|
|
_080F8D28: .4byte 0x02000000
|
|
_080F8D2C: .4byte sub_80F8F58
|
|
_080F8D30:
|
|
ldr r1, _080F8D48 @ =gMain
|
|
ldr r0, _080F8D4C @ =0x0000043c
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_080F8D3C:
|
|
movs r0, 0
|
|
_080F8D3E:
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080F8D48: .4byte gMain
|
|
_080F8D4C: .4byte 0x0000043c
|
|
thumb_func_end sub_80F8A28
|
|
|
|
thumb_func_start sub_80F8D50
|
|
sub_80F8D50: @ 80F8D50
|
|
push {lr}
|
|
_080F8D52:
|
|
bl sub_80F8A28
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080F8D6C
|
|
ldr r0, _080F8D68 @ =sub_80F8F2C
|
|
bl SetMainCallback2
|
|
b _080F8D78
|
|
.align 2, 0
|
|
_080F8D68: .4byte sub_80F8F2C
|
|
_080F8D6C:
|
|
bl sub_80F9344
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080F8D52
|
|
_080F8D78:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80F8D50
|
|
|
|
thumb_func_start sub_80F8D7C
|
|
sub_80F8D7C: @ 80F8D7C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl StringCopy
|
|
adds r0, r4, 0
|
|
bl sub_814A568
|
|
adds r0, r4, 0
|
|
bl StringLength
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80F8D7C
|
|
|
|
thumb_func_start sub_80F8DA0
|
|
sub_80F8DA0: @ 80F8DA0
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
movs r6, 0
|
|
movs r5, 0
|
|
ldr r2, _080F8E3C @ =0x02000000
|
|
movs r0, 0x86
|
|
lsls r0, 1
|
|
adds r1, r2, r0
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bcs _080F8E04
|
|
mov r8, r2
|
|
adds r7, r1, 0
|
|
_080F8DBE:
|
|
lsls r0, r5, 3
|
|
subs r0, r5
|
|
lsls r0, 2
|
|
subs r0, r5
|
|
add r0, r8
|
|
mov r1, r8
|
|
adds r1, 0xF4
|
|
lsls r2, r6, 1
|
|
ldr r1, [r1]
|
|
adds r1, r2
|
|
ldr r2, [r7]
|
|
ldr r2, [r2, 0x4]
|
|
lsls r4, r5, 2
|
|
adds r2, r4, r2
|
|
ldr r2, [r2]
|
|
lsls r2, 28
|
|
lsrs r2, 30
|
|
movs r3, 0x1
|
|
bl ConvertEasyChatWordsToString
|
|
ldr r1, [r7]
|
|
ldr r0, [r1, 0x4]
|
|
adds r4, r0
|
|
ldr r0, [r4]
|
|
lsls r0, 28
|
|
lsrs r0, 30
|
|
adds r0, r6, r0
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
ldrb r1, [r1]
|
|
cmp r5, r1
|
|
bcc _080F8DBE
|
|
_080F8E04:
|
|
ldr r2, _080F8E40 @ =0x020000d8
|
|
adds r4, r2, 0
|
|
subs r4, 0xD8
|
|
adds r0, r2, 0
|
|
adds r0, 0x28
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080F8E48
|
|
ldr r1, [r2, 0x1C]
|
|
adds r1, 0x12
|
|
adds r0, r2, 0
|
|
bl sub_80F8D7C
|
|
adds r2, r0, 0
|
|
ldr r1, _080F8E44 @ =gOtherText_From
|
|
bl StringCopy
|
|
ldr r0, _080F8E40 @ =0x020000d8
|
|
bl StringLength
|
|
movs r2, 0x86
|
|
lsls r2, 1
|
|
adds r1, r4, r2
|
|
ldr r1, [r1]
|
|
ldrb r1, [r1, 0x2]
|
|
subs r1, r0
|
|
b _080F8E6A
|
|
.align 2, 0
|
|
_080F8E3C: .4byte 0x02000000
|
|
_080F8E40: .4byte 0x020000d8
|
|
_080F8E44: .4byte gOtherText_From
|
|
_080F8E48:
|
|
ldr r1, _080F8E7C @ =gOtherText_From
|
|
adds r0, r2, 0
|
|
bl StringCopy
|
|
adds r2, r0, 0
|
|
adds r0, r4, 0
|
|
adds r0, 0xF4
|
|
ldr r1, [r0]
|
|
adds r1, 0x12
|
|
adds r0, r2, 0
|
|
bl sub_80F8D7C
|
|
movs r1, 0x86
|
|
lsls r1, 1
|
|
adds r0, r4, r1
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x2]
|
|
_080F8E6A:
|
|
adds r0, r4, 0
|
|
adds r0, 0xF9
|
|
strb r1, [r0]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F8E7C: .4byte gOtherText_From
|
|
thumb_func_end sub_80F8DA0
|
|
|
|
thumb_func_start sub_80F8E80
|
|
sub_80F8E80: @ 80F8E80
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
movs r6, 0
|
|
movs r4, 0
|
|
ldr r1, _080F8F10 @ =0x02000000
|
|
movs r0, 0x86
|
|
lsls r0, 1
|
|
adds r2, r1, r0
|
|
ldr r0, [r2]
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bcs _080F8EF6
|
|
mov r8, r1
|
|
adds r7, r2, 0
|
|
_080F8E9E:
|
|
lsls r0, r4, 3
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
subs r0, r4
|
|
mov r1, r8
|
|
adds r5, r0, r1
|
|
ldrb r0, [r5]
|
|
cmp r0, 0xFF
|
|
beq _080F8EE8
|
|
cmp r0, 0
|
|
beq _080F8EE8
|
|
ldr r2, [r7]
|
|
ldr r1, [r2, 0x4]
|
|
lsls r0, r4, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
lsls r3, r0, 24
|
|
lsrs r3, 28
|
|
lsls r0, 30
|
|
lsrs r0, 30
|
|
adds r0, r6, r0
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldrb r2, [r2, 0x3]
|
|
lsrs r1, r2, 4
|
|
adds r1, r3
|
|
lsls r2, 28
|
|
lsrs r2, 28
|
|
adds r2, r6, r2
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r5, 0
|
|
bl MenuPrint
|
|
adds r0, r6, 0x2
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_080F8EE8:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
ldr r0, [r7]
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bcc _080F8E9E
|
|
_080F8EF6:
|
|
ldr r0, _080F8F14 @ =0x020000d8
|
|
adds r1, r0, 0
|
|
adds r1, 0x21
|
|
ldrb r1, [r1]
|
|
ldr r2, [r0, 0x34]
|
|
ldrb r2, [r2, 0x1]
|
|
bl MenuPrint
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F8F10: .4byte 0x02000000
|
|
_080F8F14: .4byte 0x020000d8
|
|
thumb_func_end sub_80F8E80
|
|
|
|
thumb_func_start sub_80F8F18
|
|
sub_80F8F18: @ 80F8F18
|
|
push {lr}
|
|
bl LoadOam
|
|
bl ProcessSpriteCopyRequests
|
|
bl TransferPlttBuffer
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80F8F18
|
|
|
|
thumb_func_start sub_80F8F2C
|
|
sub_80F8F2C: @ 80F8F2C
|
|
push {r4,lr}
|
|
ldr r4, _080F8F54 @ =0x02000000
|
|
adds r0, r4, 0
|
|
adds r0, 0xFB
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080F8F42
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
_080F8F42:
|
|
adds r0, r4, 0
|
|
adds r0, 0xF0
|
|
ldr r0, [r0]
|
|
bl _call_via_r0
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F8F54: .4byte 0x02000000
|
|
thumb_func_end sub_80F8F2C
|
|
|
|
thumb_func_start sub_80F8F58
|
|
sub_80F8F58: @ 80F8F58
|
|
push {lr}
|
|
bl UpdatePaletteFade
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080F8F6C
|
|
ldr r0, _080F8F70 @ =0x02000000
|
|
adds r0, 0xF0
|
|
ldr r1, _080F8F74 @ =sub_80F8F78
|
|
str r1, [r0]
|
|
_080F8F6C:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F8F70: .4byte 0x02000000
|
|
_080F8F74: .4byte sub_80F8F78
|
|
thumb_func_end sub_80F8F58
|
|
|
|
thumb_func_start sub_80F8F78
|
|
sub_80F8F78: @ 80F8F78
|
|
push {lr}
|
|
sub sp, 0x4
|
|
ldr r0, _080F8FA8 @ =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080F8FA0
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, _080F8FAC @ =0x02000000
|
|
adds r0, 0xF0
|
|
ldr r1, _080F8FB0 @ =sub_80F8FB4
|
|
str r1, [r0]
|
|
_080F8FA0:
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F8FA8: .4byte gMain
|
|
_080F8FAC: .4byte 0x02000000
|
|
_080F8FB0: .4byte sub_80F8FB4
|
|
thumb_func_end sub_80F8F78
|
|
|
|
thumb_func_start sub_80F8FB4
|
|
sub_80F8FB4: @ 80F8FB4
|
|
push {r4,lr}
|
|
bl UpdatePaletteFade
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080F9012
|
|
ldr r4, _080F9018 @ =0x02000000
|
|
adds r0, r4, 0
|
|
adds r0, 0xEC
|
|
ldr r0, [r0]
|
|
bl SetMainCallback2
|
|
adds r0, r4, 0
|
|
adds r0, 0xFB
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bgt _080F9002
|
|
cmp r0, 0x1
|
|
blt _080F9002
|
|
adds r0, r4, 0
|
|
adds r0, 0xF4
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0, 0x1E]
|
|
bl sub_809D4A8
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl sub_809D608
|
|
adds r0, r4, 0
|
|
adds r0, 0xFC
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _080F901C @ =gSprites
|
|
adds r0, r1
|
|
bl sub_809D510
|
|
_080F9002:
|
|
ldr r0, _080F9018 @ =0x02000000
|
|
movs r2, 0x88
|
|
lsls r2, 1
|
|
movs r1, 0
|
|
bl memset
|
|
bl ResetPaletteFade
|
|
_080F9012:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F9018: .4byte 0x02000000
|
|
_080F901C: .4byte gSprites
|
|
thumb_func_end sub_80F8FB4
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|