mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-06 22:28:44 -05:00
1474 lines
26 KiB
ArmAsm
1474 lines
26 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_800F1E8
|
|
sub_800F1E8: @ 800F1E8
|
|
push {lr}
|
|
bl ResetSpriteData
|
|
ldr r0, _0800F21C @ =gUnknown_824EFF0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0800F220 @ =gSprites
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
adds r1, 0x3E
|
|
ldrb r0, [r1]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, _0800F224 @ =sub_800F228
|
|
bl SetMainCallback2
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0800F21C: .4byte gUnknown_824EFF0
|
|
_0800F220: .4byte gSprites
|
|
_0800F224: .4byte sub_800F228
|
|
thumb_func_end sub_800F1E8
|
|
|
|
thumb_func_start sub_800F228
|
|
sub_800F228: @ 800F228
|
|
push {lr}
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800F228
|
|
|
|
thumb_func_start sub_800F238
|
|
sub_800F238: @ 800F238
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r2, 0
|
|
ldr r1, _0800F24C @ =gUnknown_824EFC4
|
|
_0800F242:
|
|
ldrb r3, [r1]
|
|
cmp r0, r3
|
|
bne _0800F250
|
|
ldrb r0, [r1, 0x1]
|
|
b _0800F25A
|
|
.align 2, 0
|
|
_0800F24C: .4byte gUnknown_824EFC4
|
|
_0800F250:
|
|
adds r1, 0x4
|
|
adds r2, 0x1
|
|
cmp r2, 0x7
|
|
bls _0800F242
|
|
movs r0, 0x9
|
|
_0800F25A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800F238
|
|
|
|
thumb_func_start sub_800F260
|
|
sub_800F260: @ 800F260
|
|
push {r4,r5,lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x13
|
|
bls _0800F26C
|
|
movs r0, 0x9
|
|
_0800F26C:
|
|
ldr r5, _0800F2A0 @ =gUnknown_824EE34
|
|
lsls r4, r0, 2
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
adds r0, r4, r5
|
|
ldr r0, [r0]
|
|
ldr r1, _0800F2A4 @ =0x06008000
|
|
bl LZDecompressVram
|
|
adds r0, r5, 0x4
|
|
adds r0, r4, r0
|
|
ldr r0, [r0]
|
|
ldr r1, _0800F2A8 @ =0x0600d000
|
|
bl LZDecompressVram
|
|
adds r5, 0x10
|
|
adds r4, r5
|
|
ldr r0, [r4]
|
|
movs r1, 0x20
|
|
movs r2, 0x60
|
|
bl LoadCompressedPalette
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0800F2A0: .4byte gUnknown_824EE34
|
|
_0800F2A4: .4byte 0x06008000
|
|
_0800F2A8: .4byte 0x0600d000
|
|
thumb_func_end sub_800F260
|
|
|
|
thumb_func_start sub_800F2AC
|
|
sub_800F2AC: @ 800F2AC
|
|
push {r4,r5,lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x13
|
|
bls _0800F2B8
|
|
movs r0, 0x9
|
|
_0800F2B8:
|
|
ldr r5, _0800F2E0 @ =gUnknown_824EE34
|
|
lsls r4, r0, 2
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
adds r0, r5, 0
|
|
adds r0, 0x8
|
|
adds r0, r4, r0
|
|
ldr r0, [r0]
|
|
ldr r1, _0800F2E4 @ =0x06004000
|
|
bl LZDecompressVram
|
|
adds r5, 0xC
|
|
adds r4, r5
|
|
ldr r0, [r4]
|
|
ldr r1, _0800F2E8 @ =0x0600e000
|
|
bl LZDecompressVram
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0800F2E0: .4byte gUnknown_824EE34
|
|
_0800F2E4: .4byte 0x06004000
|
|
_0800F2E8: .4byte 0x0600e000
|
|
thumb_func_end sub_800F2AC
|
|
|
|
thumb_func_start sub_800F2EC
|
|
sub_800F2EC: @ 800F2EC
|
|
push {r4,r5,lr}
|
|
adds r4, r1, 0
|
|
adds r5, r2, 0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x9
|
|
bls _0800F2FC
|
|
movs r0, 0x9
|
|
_0800F2FC:
|
|
ldr r2, _0800F320 @ =gUnknown_824EE34
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r0, r1, r2
|
|
ldr r0, [r0]
|
|
str r0, [r4]
|
|
adds r0, r2, 0x4
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
str r0, [r5]
|
|
adds r2, 0x10
|
|
adds r1, r2
|
|
ldr r0, [r1]
|
|
str r0, [r3]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0800F320: .4byte gUnknown_824EE34
|
|
thumb_func_end sub_800F2EC
|
|
|
|
thumb_func_start sub_800F324
|
|
sub_800F324: @ 800F324
|
|
push {lr}
|
|
movs r0, 0
|
|
bl ResetBgsAndClearDma3BusyFlags
|
|
ldr r1, _0800F344 @ =gUnknown_8248320
|
|
movs r0, 0
|
|
movs r2, 0x4
|
|
bl InitBgsFromTemplates
|
|
ldr r0, _0800F348 @ =gUnknown_8248330
|
|
bl InitWindows
|
|
bl DeactivateAllTextPrinters
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0800F344: .4byte gUnknown_8248320
|
|
_0800F348: .4byte gUnknown_8248330
|
|
thumb_func_end sub_800F324
|
|
|
|
thumb_func_start sub_800F34C
|
|
sub_800F34C: @ 800F34C
|
|
push {lr}
|
|
movs r0, 0xC5
|
|
bl EnableInterrupts
|
|
bl sub_800F324
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x54
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldr r1, _0800F37C @ =0x0000b040
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0800F37C: .4byte 0x0000b040
|
|
thumb_func_end sub_800F34C
|
|
|
|
thumb_func_start sub_800F380
|
|
sub_800F380: @ 800F380
|
|
push {r4,r5,lr}
|
|
movs r0, 0x2
|
|
movs r1, 0x12
|
|
movs r2, 0x10
|
|
bl TextWindow_SetUserSelectedFrame
|
|
movs r0, 0x2
|
|
movs r1, 0x22
|
|
movs r2, 0x10
|
|
bl TextWindow_SetUserSelectedFrame
|
|
ldr r4, _0800F3F0 @ =gPlttBufferUnfaded
|
|
adds r0, r4, 0
|
|
adds r0, 0xB8
|
|
ldr r1, _0800F3F4 @ =0x00002529
|
|
strh r1, [r0]
|
|
adds r2, r4, 0
|
|
adds r2, 0xBA
|
|
strh r1, [r2]
|
|
adds r2, 0x2
|
|
ldr r1, _0800F3F8 @ =0x00007fff
|
|
strh r1, [r2]
|
|
adds r2, 0x2
|
|
ldr r1, _0800F3FC @ =0x0000675a
|
|
strh r1, [r2]
|
|
ldr r5, _0800F400 @ =gPlttBufferFaded + 0xB8
|
|
adds r1, r5, 0
|
|
movs r2, 0x4
|
|
bl CpuSet
|
|
ldr r0, _0800F404 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
ldr r1, _0800F408 @ =0x00010010
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0800F3EA
|
|
movs r0, 0x70
|
|
bl Menu_LoadStdPalAt
|
|
movs r0, 0
|
|
movs r1, 0x30
|
|
movs r2, 0x70
|
|
bl TextWindow_LoadResourcesStdFrame0
|
|
adds r0, r4, 0
|
|
adds r0, 0xEC
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
adds r1, r5, 0
|
|
adds r1, 0x34
|
|
movs r2, 0x1
|
|
bl CpuSet
|
|
_0800F3EA:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0800F3F0: .4byte gPlttBufferUnfaded
|
|
_0800F3F4: .4byte 0x00002529
|
|
_0800F3F8: .4byte 0x00007fff
|
|
_0800F3FC: .4byte 0x0000675a
|
|
_0800F400: .4byte gPlttBufferFaded + 0xB8
|
|
_0800F404: .4byte gBattleTypeFlags
|
|
_0800F408: .4byte 0x00010010
|
|
thumb_func_end sub_800F380
|
|
|
|
thumb_func_start sub_800F40C
|
|
sub_800F40C: @ 800F40C
|
|
push {lr}
|
|
bl sub_800FC2C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_800F260
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800F40C
|
|
|
|
thumb_func_start LoadBattleTextboxAndBackground
|
|
LoadBattleTextboxAndBackground: @ 800F420
|
|
push {lr}
|
|
ldr r0, _0800F454 @ =gBattleTextboxTiles
|
|
movs r1, 0xC0
|
|
lsls r1, 19
|
|
bl LZDecompressVram
|
|
ldr r1, _0800F458 @ =gFile_graphics_interface_menu_map_tilemap
|
|
movs r0, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r0, _0800F45C @ =gBattleTextboxPalette
|
|
movs r1, 0
|
|
movs r2, 0x40
|
|
bl LoadCompressedPalette
|
|
bl sub_800F380
|
|
bl sub_800F40C
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0800F454: .4byte gBattleTextboxTiles
|
|
_0800F458: .4byte gFile_graphics_interface_menu_map_tilemap
|
|
_0800F45C: .4byte gBattleTextboxPalette
|
|
thumb_func_end LoadBattleTextboxAndBackground
|
|
|
|
thumb_func_start sub_800F460
|
|
sub_800F460: @ 800F460
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x18
|
|
ldr r4, [sp, 0x34]
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
adds r7, r6, 0
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r8, r2
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r12, r3
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
mov r9, r4
|
|
movs r4, 0
|
|
ldr r0, _0800F4B8 @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0800F548
|
|
ldr r0, _0800F4BC @ =gTasks
|
|
lsls r1, r6, 2
|
|
adds r1, r6
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r2, 0x12
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
beq _0800F4D2
|
|
cmp r5, 0x1
|
|
beq _0800F4FA
|
|
cmp r5, 0x1
|
|
bgt _0800F4C0
|
|
cmp r5, 0
|
|
beq _0800F4CA
|
|
b _0800F504
|
|
.align 2, 0
|
|
_0800F4B8: .4byte gBattleTypeFlags
|
|
_0800F4BC: .4byte gTasks
|
|
_0800F4C0:
|
|
cmp r5, 0x2
|
|
beq _0800F4CE
|
|
cmp r5, 0x3
|
|
beq _0800F4EE
|
|
b _0800F504
|
|
_0800F4CA:
|
|
ldrh r0, [r1, 0xE]
|
|
b _0800F4F0
|
|
_0800F4CE:
|
|
ldrh r1, [r1, 0xE]
|
|
b _0800F4FC
|
|
_0800F4D2:
|
|
cmp r5, 0x1
|
|
beq _0800F4EE
|
|
cmp r5, 0x1
|
|
bgt _0800F4E0
|
|
cmp r5, 0
|
|
beq _0800F4EA
|
|
b _0800F504
|
|
_0800F4E0:
|
|
cmp r5, 0x2
|
|
beq _0800F4F6
|
|
cmp r5, 0x3
|
|
beq _0800F4FA
|
|
b _0800F504
|
|
_0800F4EA:
|
|
ldrh r0, [r1, 0xE]
|
|
b _0800F4F0
|
|
_0800F4EE:
|
|
ldrh r0, [r1, 0x10]
|
|
_0800F4F0:
|
|
movs r4, 0x3F
|
|
ands r4, r0
|
|
b _0800F504
|
|
_0800F4F6:
|
|
ldrh r1, [r1, 0xE]
|
|
b _0800F4FC
|
|
_0800F4FA:
|
|
ldrh r1, [r1, 0x10]
|
|
_0800F4FC:
|
|
movs r0, 0xFC
|
|
lsls r0, 4
|
|
ands r0, r1
|
|
lsrs r4, r0, 6
|
|
_0800F504:
|
|
movs r2, 0
|
|
movs r6, 0x3
|
|
ldr r0, _0800F544 @ =0x00006001
|
|
adds r5, r0, 0
|
|
add r3, sp, 0xC
|
|
_0800F50E:
|
|
lsls r1, r2, 1
|
|
adds r0, r6, 0
|
|
lsls r0, r1
|
|
ands r0, r4
|
|
asrs r0, r1
|
|
adds r0, r5
|
|
strh r0, [r3]
|
|
adds r3, 0x2
|
|
adds r2, 0x1
|
|
cmp r2, 0x2
|
|
ble _0800F50E
|
|
movs r0, 0x3
|
|
str r0, [sp]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x8]
|
|
mov r0, r8
|
|
add r1, sp, 0xC
|
|
mov r2, r12
|
|
mov r3, r9
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
mov r0, r8
|
|
bl CopyBgTilemapBufferToVram
|
|
b _0800F5B6
|
|
.align 2, 0
|
|
_0800F544: .4byte 0x00006001
|
|
_0800F548:
|
|
ldr r0, _0800F564 @ =gBattleStruct
|
|
ldr r0, [r0]
|
|
adds r0, 0xB5
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bne _0800F56C
|
|
ldr r1, _0800F568 @ =gTasks
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrh r4, [r0, 0xE]
|
|
b _0800F578
|
|
.align 2, 0
|
|
_0800F564: .4byte gBattleStruct
|
|
_0800F568: .4byte gTasks
|
|
_0800F56C:
|
|
ldr r1, _0800F5C4 @ =gTasks
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrh r4, [r0, 0x10]
|
|
_0800F578:
|
|
movs r2, 0
|
|
movs r6, 0x3
|
|
ldr r0, _0800F5C8 @ =0x00006001
|
|
adds r5, r0, 0
|
|
add r3, sp, 0xC
|
|
_0800F582:
|
|
lsls r1, r2, 1
|
|
adds r0, r6, 0
|
|
lsls r0, r1
|
|
ands r0, r4
|
|
asrs r0, r1
|
|
adds r0, r5
|
|
strh r0, [r3]
|
|
adds r3, 0x2
|
|
adds r2, 0x1
|
|
cmp r2, 0x5
|
|
ble _0800F582
|
|
movs r0, 0x6
|
|
str r0, [sp]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x8]
|
|
mov r0, r8
|
|
add r1, sp, 0xC
|
|
mov r2, r12
|
|
mov r3, r9
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
mov r0, r8
|
|
bl CopyBgTilemapBufferToVram
|
|
_0800F5B6:
|
|
add sp, 0x18
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0800F5C4: .4byte gTasks
|
|
_0800F5C8: .4byte 0x00006001
|
|
thumb_func_end sub_800F460
|
|
|
|
thumb_func_start sub_800F5CC
|
|
sub_800F5CC: @ 800F5CC
|
|
push {lr}
|
|
ldr r0, _0800F5E0 @ =gBattleOutcome
|
|
ldrb r2, [r0]
|
|
cmp r2, 0x3
|
|
bne _0800F5E8
|
|
ldr r0, _0800F5E4 @ =gUnknown_83FE883
|
|
movs r1, 0x15
|
|
bl BattlePutTextOnWindow
|
|
b _0800F6F0
|
|
.align 2, 0
|
|
_0800F5E0: .4byte gBattleOutcome
|
|
_0800F5E4: .4byte gUnknown_83FE883
|
|
_0800F5E8:
|
|
ldr r0, _0800F61C @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0800F666
|
|
cmp r2, 0x1
|
|
bne _0800F632
|
|
ldr r2, _0800F620 @ =gLinkPlayers
|
|
ldr r0, _0800F624 @ =gBattleStruct
|
|
ldr r0, [r0]
|
|
adds r0, 0xB5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x18]
|
|
cmp r0, 0x1
|
|
beq _0800F682
|
|
cmp r0, 0x1
|
|
bgt _0800F628
|
|
cmp r0, 0
|
|
beq _0800F6BC
|
|
b _0800F6F0
|
|
.align 2, 0
|
|
_0800F61C: .4byte gBattleTypeFlags
|
|
_0800F620: .4byte gLinkPlayers
|
|
_0800F624: .4byte gBattleStruct
|
|
_0800F628:
|
|
cmp r0, 0x2
|
|
beq _0800F6BC
|
|
cmp r0, 0x3
|
|
bne _0800F6F0
|
|
b _0800F682
|
|
_0800F632:
|
|
ldr r2, _0800F654 @ =gLinkPlayers
|
|
ldr r0, _0800F658 @ =gBattleStruct
|
|
ldr r0, [r0]
|
|
adds r0, 0xB5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x18]
|
|
cmp r0, 0x1
|
|
beq _0800F6BC
|
|
cmp r0, 0x1
|
|
bgt _0800F65C
|
|
cmp r0, 0
|
|
beq _0800F682
|
|
b _0800F6F0
|
|
.align 2, 0
|
|
_0800F654: .4byte gLinkPlayers
|
|
_0800F658: .4byte gBattleStruct
|
|
_0800F65C:
|
|
cmp r0, 0x2
|
|
beq _0800F682
|
|
cmp r0, 0x3
|
|
bne _0800F6F0
|
|
b _0800F6BC
|
|
_0800F666:
|
|
cmp r2, 0x1
|
|
bne _0800F6A4
|
|
ldr r2, _0800F694 @ =gLinkPlayers
|
|
ldr r0, _0800F698 @ =gBattleStruct
|
|
ldr r0, [r0]
|
|
adds r0, 0xB5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x18]
|
|
cmp r0, 0
|
|
beq _0800F6BC
|
|
_0800F682:
|
|
ldr r0, _0800F69C @ =gUnknown_83FE874
|
|
movs r1, 0x17
|
|
bl BattlePutTextOnWindow
|
|
ldr r0, _0800F6A0 @ =gUnknown_83FE87B
|
|
movs r1, 0x16
|
|
bl BattlePutTextOnWindow
|
|
b _0800F6F0
|
|
.align 2, 0
|
|
_0800F694: .4byte gLinkPlayers
|
|
_0800F698: .4byte gBattleStruct
|
|
_0800F69C: .4byte gUnknown_83FE874
|
|
_0800F6A0: .4byte gUnknown_83FE87B
|
|
_0800F6A4:
|
|
ldr r2, _0800F6D0 @ =gLinkPlayers
|
|
ldr r0, _0800F6D4 @ =gBattleStruct
|
|
ldr r0, [r0]
|
|
adds r0, 0xB5
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrh r0, [r0, 0x18]
|
|
cmp r0, 0
|
|
beq _0800F6E0
|
|
_0800F6BC:
|
|
ldr r0, _0800F6D8 @ =gUnknown_83FE874
|
|
movs r1, 0x16
|
|
bl BattlePutTextOnWindow
|
|
ldr r0, _0800F6DC @ =gUnknown_83FE87B
|
|
movs r1, 0x17
|
|
bl BattlePutTextOnWindow
|
|
b _0800F6F0
|
|
.align 2, 0
|
|
_0800F6D0: .4byte gLinkPlayers
|
|
_0800F6D4: .4byte gBattleStruct
|
|
_0800F6D8: .4byte gUnknown_83FE874
|
|
_0800F6DC: .4byte gUnknown_83FE87B
|
|
_0800F6E0:
|
|
ldr r0, _0800F6F4 @ =gUnknown_83FE874
|
|
movs r1, 0x17
|
|
bl BattlePutTextOnWindow
|
|
ldr r0, _0800F6F8 @ =gUnknown_83FE87B
|
|
movs r1, 0x16
|
|
bl BattlePutTextOnWindow
|
|
_0800F6F0:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0800F6F4: .4byte gUnknown_83FE874
|
|
_0800F6F8: .4byte gUnknown_83FE87B
|
|
thumb_func_end sub_800F5CC
|
|
|
|
thumb_func_start sub_800F6FC
|
|
sub_800F6FC: @ 800F6FC
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r1, _0800F728 @ =gTasks
|
|
lsls r0, r7, 2
|
|
mov r8, r0
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r5, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x1
|
|
bne _0800F71E
|
|
b _0800F850
|
|
_0800F71E:
|
|
cmp r0, 0x1
|
|
bgt _0800F72C
|
|
cmp r0, 0
|
|
beq _0800F734
|
|
b _0800FAC4
|
|
.align 2, 0
|
|
_0800F728: .4byte gTasks
|
|
_0800F72C:
|
|
cmp r0, 0x2
|
|
bne _0800F732
|
|
b _0800F8F0
|
|
_0800F732:
|
|
b _0800FAC4
|
|
_0800F734:
|
|
ldr r0, _0800F75C @ =gBattleTypeFlags
|
|
ldr r0, [r0]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0800F7CC
|
|
movs r5, 0
|
|
movs r6, 0x3
|
|
_0800F744:
|
|
ldr r0, _0800F760 @ =gLinkPlayers + 8
|
|
adds r1, r5, r0
|
|
subs r0, 0x8
|
|
adds r4, r5, r0
|
|
ldrh r0, [r4, 0x18]
|
|
cmp r0, 0x1
|
|
beq _0800F77C
|
|
cmp r0, 0x1
|
|
bgt _0800F764
|
|
cmp r0, 0
|
|
beq _0800F76E
|
|
b _0800F7C2
|
|
.align 2, 0
|
|
_0800F75C: .4byte gBattleTypeFlags
|
|
_0800F760: .4byte gLinkPlayers + 8
|
|
_0800F764:
|
|
cmp r0, 0x2
|
|
beq _0800F790
|
|
cmp r0, 0x3
|
|
beq _0800F7AA
|
|
b _0800F7C2
|
|
_0800F76E:
|
|
adds r0, r1, 0
|
|
movs r1, 0x11
|
|
bl BattlePutTextOnWindow
|
|
ldrb r1, [r4, 0x18]
|
|
movs r0, 0x4
|
|
b _0800F79C
|
|
_0800F77C:
|
|
adds r0, r1, 0
|
|
movs r1, 0x12
|
|
bl BattlePutTextOnWindow
|
|
ldrb r1, [r4, 0x18]
|
|
movs r0, 0x4
|
|
str r0, [sp]
|
|
adds r0, r7, 0
|
|
movs r2, 0x2
|
|
b _0800F7A2
|
|
_0800F790:
|
|
adds r0, r1, 0
|
|
movs r1, 0x13
|
|
bl BattlePutTextOnWindow
|
|
ldrb r1, [r4, 0x18]
|
|
movs r0, 0x8
|
|
_0800F79C:
|
|
str r0, [sp]
|
|
adds r0, r7, 0
|
|
movs r2, 0x1
|
|
_0800F7A2:
|
|
movs r3, 0x2
|
|
bl sub_800F460
|
|
b _0800F7C2
|
|
_0800F7AA:
|
|
adds r0, r1, 0
|
|
movs r1, 0x14
|
|
bl BattlePutTextOnWindow
|
|
ldrb r1, [r4, 0x18]
|
|
movs r0, 0x8
|
|
str r0, [sp]
|
|
adds r0, r7, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl sub_800F460
|
|
_0800F7C2:
|
|
adds r5, 0x1C
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _0800F744
|
|
b _0800F830
|
|
_0800F7CC:
|
|
ldr r0, _0800F844 @ =gBattleStruct
|
|
ldr r0, [r0]
|
|
adds r0, 0xB5
|
|
ldrb r5, [r0]
|
|
movs r0, 0x1
|
|
adds r6, r5, 0
|
|
eors r6, r0
|
|
adds r1, r6, 0
|
|
ldr r4, _0800F848 @ =gLinkPlayers
|
|
lsls r0, r5, 3
|
|
subs r0, r5
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r0, [r0, 0x18]
|
|
cmp r0, 0
|
|
beq _0800F7F0
|
|
adds r6, r5, 0
|
|
adds r5, r1, 0
|
|
_0800F7F0:
|
|
lsls r0, r5, 3
|
|
subs r0, r5
|
|
lsls r0, 2
|
|
adds r4, 0x8
|
|
adds r1, r0, r4
|
|
adds r0, r1, 0
|
|
movs r1, 0xF
|
|
bl BattlePutTextOnWindow
|
|
lsls r0, r6, 3
|
|
subs r0, r6
|
|
lsls r0, 2
|
|
adds r1, r0, r4
|
|
adds r0, r1, 0
|
|
movs r1, 0x10
|
|
bl BattlePutTextOnWindow
|
|
movs r4, 0x7
|
|
str r4, [sp]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
movs r3, 0x2
|
|
bl sub_800F460
|
|
str r4, [sp]
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl sub_800F460
|
|
_0800F830:
|
|
ldr r0, _0800F84C @ =gTasks
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
b _0800FAC4
|
|
.align 2, 0
|
|
_0800F844: .4byte gBattleStruct
|
|
_0800F848: .4byte gLinkPlayers
|
|
_0800F84C: .4byte gTasks
|
|
_0800F850:
|
|
ldr r0, _0800F8CC @ =0x00002710
|
|
bl AllocSpritePalette
|
|
lsls r0, 24
|
|
ldr r2, _0800F8D0 @ =gPlttBufferUnfaded
|
|
lsrs r0, 19
|
|
ldr r3, _0800F8D4 @ =0x0000021e
|
|
adds r0, r3
|
|
adds r2, r0, r2
|
|
ldr r1, _0800F8D8 @ =gPlttBufferFaded
|
|
adds r0, r1
|
|
ldr r1, _0800F8DC @ =0x00007fff
|
|
strh r1, [r0]
|
|
strh r1, [r2]
|
|
ldr r0, _0800F8E0 @ =gUnknown_82482E8
|
|
movs r1, 0x6C
|
|
movs r2, 0x50
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r4, _0800F8E4 @ =gBattleStruct
|
|
ldr r1, [r4]
|
|
adds r1, 0x7D
|
|
strb r0, [r1]
|
|
ldr r0, _0800F8E8 @ =gUnknown_8248300
|
|
movs r1, 0x84
|
|
movs r2, 0x50
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
ldr r1, [r4]
|
|
adds r1, 0x7E
|
|
strb r0, [r1]
|
|
ldr r3, _0800F8EC @ =gSprites
|
|
ldr r0, [r4]
|
|
adds r0, 0x7D
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0x7E
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
ldrh r0, [r5, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x8]
|
|
b _0800FAC4
|
|
.align 2, 0
|
|
_0800F8CC: .4byte 0x00002710
|
|
_0800F8D0: .4byte gPlttBufferUnfaded
|
|
_0800F8D4: .4byte 0x0000021e
|
|
_0800F8D8: .4byte gPlttBufferFaded
|
|
_0800F8DC: .4byte 0x00007fff
|
|
_0800F8E0: .4byte gUnknown_82482E8
|
|
_0800F8E4: .4byte gBattleStruct
|
|
_0800F8E8: .4byte gUnknown_8248300
|
|
_0800F8EC: .4byte gSprites
|
|
_0800F8F0:
|
|
movs r1, 0x12
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
beq _0800F958
|
|
ldr r4, _0800F944 @ =gBattle_BG1_X
|
|
ldrh r0, [r5, 0xA]
|
|
bl Sin2
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _0800F90A
|
|
adds r0, 0x1F
|
|
_0800F90A:
|
|
asrs r1, r0, 5
|
|
movs r2, 0x14
|
|
negs r2, r2
|
|
adds r0, r2, 0
|
|
subs r0, r1
|
|
strh r0, [r4]
|
|
ldr r4, _0800F948 @ =gBattle_BG2_X
|
|
ldrh r0, [r5, 0xC]
|
|
bl Sin2
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _0800F928
|
|
adds r0, 0x1F
|
|
_0800F928:
|
|
asrs r1, r0, 5
|
|
movs r3, 0x8C
|
|
negs r3, r3
|
|
adds r0, r3, 0
|
|
subs r0, r1
|
|
strh r0, [r4]
|
|
ldr r0, _0800F94C @ =gBattle_BG1_Y
|
|
ldr r2, _0800F950 @ =0x0000ffdc
|
|
adds r1, r2, 0
|
|
strh r1, [r0]
|
|
ldr r0, _0800F954 @ =gBattle_BG2_Y
|
|
strh r1, [r0]
|
|
b _0800F9C4
|
|
.align 2, 0
|
|
_0800F944: .4byte gBattle_BG1_X
|
|
_0800F948: .4byte gBattle_BG2_X
|
|
_0800F94C: .4byte gBattle_BG1_Y
|
|
_0800F950: .4byte 0x0000ffdc
|
|
_0800F954: .4byte gBattle_BG2_Y
|
|
_0800F958:
|
|
ldr r4, _0800F9E8 @ =gBattle_BG1_X
|
|
ldrh r0, [r5, 0xA]
|
|
bl Sin2
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _0800F96A
|
|
adds r0, 0x1F
|
|
_0800F96A:
|
|
asrs r1, r0, 5
|
|
movs r3, 0x14
|
|
negs r3, r3
|
|
adds r0, r3, 0
|
|
subs r0, r1
|
|
strh r0, [r4]
|
|
ldr r4, _0800F9EC @ =gBattle_BG1_Y
|
|
ldrh r0, [r5, 0xA]
|
|
bl Cos2
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _0800F988
|
|
adds r0, 0x1F
|
|
_0800F988:
|
|
asrs r0, 5
|
|
subs r0, 0xA4
|
|
strh r0, [r4]
|
|
ldr r4, _0800F9F0 @ =gBattle_BG2_X
|
|
ldrh r0, [r5, 0xC]
|
|
bl Sin2
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _0800F9A0
|
|
adds r0, 0x1F
|
|
_0800F9A0:
|
|
asrs r1, r0, 5
|
|
movs r2, 0x8C
|
|
negs r2, r2
|
|
adds r0, r2, 0
|
|
subs r0, r1
|
|
strh r0, [r4]
|
|
ldr r4, _0800F9F4 @ =gBattle_BG2_Y
|
|
ldrh r0, [r5, 0xC]
|
|
bl Cos2
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _0800F9BE
|
|
adds r0, 0x1F
|
|
_0800F9BE:
|
|
asrs r0, 5
|
|
subs r0, 0xA4
|
|
strh r0, [r4]
|
|
_0800F9C4:
|
|
ldr r1, _0800F9F8 @ =gTasks
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 3
|
|
adds r1, r0, r1
|
|
ldrh r0, [r1, 0xC]
|
|
movs r2, 0xC
|
|
ldrsh r3, [r1, r2]
|
|
mov r8, r3
|
|
cmp r3, 0
|
|
beq _0800F9FC
|
|
subs r0, 0x2
|
|
strh r0, [r1, 0xC]
|
|
ldrh r0, [r1, 0xA]
|
|
adds r0, 0x2
|
|
strh r0, [r1, 0xA]
|
|
b _0800FAC4
|
|
.align 2, 0
|
|
_0800F9E8: .4byte gBattle_BG1_X
|
|
_0800F9EC: .4byte gBattle_BG1_Y
|
|
_0800F9F0: .4byte gBattle_BG2_X
|
|
_0800F9F4: .4byte gBattle_BG2_Y
|
|
_0800F9F8: .4byte gTasks
|
|
_0800F9FC:
|
|
movs r3, 0x12
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
beq _0800FA08
|
|
bl sub_800F5CC
|
|
_0800FA08:
|
|
movs r0, 0x71
|
|
bl PlaySE
|
|
adds r0, r7, 0
|
|
bl DestroyTask
|
|
ldr r4, _0800FAD0 @ =gSprites
|
|
ldr r5, _0800FAD4 @ =gBattleStruct
|
|
ldr r0, [r5]
|
|
adds r0, 0x7D
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
adds r1, 0x3E
|
|
ldrb r3, [r1]
|
|
movs r2, 0x5
|
|
negs r2, r2
|
|
adds r0, r2, 0
|
|
ands r0, r3
|
|
strb r0, [r1]
|
|
ldr r0, [r5]
|
|
adds r0, 0x7E
|
|
ldrb r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
ands r2, r1
|
|
strb r2, [r0]
|
|
ldr r5, [r5]
|
|
adds r6, r5, 0
|
|
adds r6, 0x7E
|
|
ldrb r0, [r6]
|
|
lsls r2, r0, 4
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r2, r4
|
|
ldrh r3, [r2, 0x4]
|
|
lsls r1, r3, 22
|
|
lsrs r1, 22
|
|
adds r1, 0x40
|
|
ldr r7, _0800FAD8 @ =0x000003ff
|
|
adds r0, r7, 0
|
|
ands r1, r0
|
|
ldr r0, _0800FADC @ =0xfffffc00
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strh r0, [r2, 0x4]
|
|
adds r5, 0x7D
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
mov r1, r8
|
|
strh r1, [r0, 0x2E]
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
movs r1, 0x1
|
|
strh r1, [r0, 0x2E]
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r1, [r0, 0x20]
|
|
strh r1, [r0, 0x30]
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldrh r1, [r0, 0x20]
|
|
strh r1, [r0, 0x30]
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
mov r2, r8
|
|
strh r2, [r0, 0x32]
|
|
ldrb r1, [r6]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
strh r2, [r0, 0x32]
|
|
_0800FAC4:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0800FAD0: .4byte gSprites
|
|
_0800FAD4: .4byte gBattleStruct
|
|
_0800FAD8: .4byte 0x000003ff
|
|
_0800FADC: .4byte 0xfffffc00
|
|
thumb_func_end sub_800F6FC
|
|
|
|
thumb_func_start sub_800FAE0
|
|
sub_800FAE0: @ 800FAE0
|
|
push {r4,lr}
|
|
ldr r0, _0800FB64 @ =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0800FB94
|
|
ldr r0, _0800FB68 @ =gFile_graphics_battle_transitions_vs_frame_sheet
|
|
ldr r1, _0800FB6C @ =0x06004000
|
|
bl LZDecompressVram
|
|
ldr r0, _0800FB70 @ =gFile_graphics_battle_transitions_vs_sheet
|
|
ldr r1, _0800FB74 @ =0x06010000
|
|
bl LZDecompressVram
|
|
ldr r0, _0800FB78 @ =gFile_graphics_battle_transitions_vs_frame_palette
|
|
movs r1, 0x60
|
|
movs r2, 0x20
|
|
bl LoadCompressedPalette
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
movs r2, 0x1
|
|
bl SetBgAttribute
|
|
ldr r1, _0800FB7C @ =0x00005c04
|
|
movs r0, 0xA
|
|
bl SetGpuReg
|
|
ldr r4, _0800FB80 @ =gFile_graphics_battle_transitions_vs_frame_tilemap
|
|
movs r0, 0x1
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
movs r0, 0x2
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
movs r0, 0x1
|
|
bl CopyBgTilemapBufferToVram
|
|
movs r0, 0x2
|
|
bl CopyBgTilemapBufferToVram
|
|
movs r0, 0x48
|
|
movs r1, 0x36
|
|
bl SetGpuReg
|
|
movs r0, 0x4A
|
|
movs r1, 0x36
|
|
bl SetGpuReg
|
|
ldr r0, _0800FB84 @ =gBattle_BG1_Y
|
|
ldr r2, _0800FB88 @ =0x0000ff5c
|
|
adds r1, r2, 0
|
|
strh r1, [r0]
|
|
ldr r0, _0800FB8C @ =gBattle_BG2_Y
|
|
strh r1, [r0]
|
|
ldr r0, _0800FB90 @ =gUnknown_8248318
|
|
bl LoadCompressedSpriteSheetUsingHeap
|
|
b _0800FC26
|
|
.align 2, 0
|
|
_0800FB64: .4byte gBattleTypeFlags
|
|
_0800FB68: .4byte gFile_graphics_battle_transitions_vs_frame_sheet
|
|
_0800FB6C: .4byte 0x06004000
|
|
_0800FB70: .4byte gFile_graphics_battle_transitions_vs_sheet
|
|
_0800FB74: .4byte 0x06010000
|
|
_0800FB78: .4byte gFile_graphics_battle_transitions_vs_frame_palette
|
|
_0800FB7C: .4byte 0x00005c04
|
|
_0800FB80: .4byte gFile_graphics_battle_transitions_vs_frame_tilemap
|
|
_0800FB84: .4byte gBattle_BG1_Y
|
|
_0800FB88: .4byte 0x0000ff5c
|
|
_0800FB8C: .4byte gBattle_BG2_Y
|
|
_0800FB90: .4byte gUnknown_8248318
|
|
_0800FB94:
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0800FBA6
|
|
movs r0, 0
|
|
bl sub_800F2AC
|
|
b _0800FC26
|
|
_0800FBA6:
|
|
ldr r0, _0800FBC8 @ =0x00080902
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0800FBF8
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0800FBD8
|
|
ldr r0, _0800FBCC @ =gGameVersion
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x4
|
|
bne _0800FBD0
|
|
movs r0, 0x7
|
|
bl sub_800F2AC
|
|
b _0800FC26
|
|
.align 2, 0
|
|
_0800FBC8: .4byte 0x00080902
|
|
_0800FBCC: .4byte gGameVersion
|
|
_0800FBD0:
|
|
movs r0, 0x4
|
|
bl sub_800F2AC
|
|
b _0800FC26
|
|
_0800FBD8:
|
|
movs r0, 0x8
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0800FC08
|
|
ldr r2, _0800FC00 @ =gTrainers
|
|
ldr r0, _0800FC04 @ =gTrainerBattleOpponent_A
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0x54
|
|
beq _0800FBF8
|
|
cmp r0, 0x5A
|
|
bne _0800FC08
|
|
_0800FBF8:
|
|
movs r0, 0x8
|
|
bl sub_800F2AC
|
|
b _0800FC26
|
|
.align 2, 0
|
|
_0800FC00: .4byte gTrainers
|
|
_0800FC04: .4byte gTrainerBattleOpponent_A
|
|
_0800FC08:
|
|
bl sav1_map_get_battletype
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0800FC20
|
|
ldr r0, _0800FC1C @ =gBattleTerrain
|
|
ldrb r0, [r0]
|
|
bl sub_800F2AC
|
|
b _0800FC26
|
|
.align 2, 0
|
|
_0800FC1C: .4byte gBattleTerrain
|
|
_0800FC20:
|
|
movs r0, 0x8
|
|
bl sub_800F2AC
|
|
_0800FC26:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800FAE0
|
|
|
|
thumb_func_start sub_800FC2C
|
|
sub_800FC2C: @ 800FC2C
|
|
push {lr}
|
|
ldr r0, _0800FC40 @ =gBattleTypeFlags
|
|
ldr r1, [r0]
|
|
ldr r2, _0800FC44 @ =0x00080902
|
|
ands r2, r1
|
|
cmp r2, 0
|
|
beq _0800FC48
|
|
movs r0, 0xA
|
|
b _0800FCAA
|
|
.align 2, 0
|
|
_0800FC40: .4byte gBattleTypeFlags
|
|
_0800FC44: .4byte 0x00080902
|
|
_0800FC48:
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0800FC60
|
|
ldr r0, _0800FC5C @ =gBattleTerrain
|
|
strb r2, [r0]
|
|
movs r0, 0
|
|
b _0800FCAA
|
|
.align 2, 0
|
|
_0800FC5C: .4byte gBattleTerrain
|
|
_0800FC60:
|
|
movs r0, 0x8
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0800FC90
|
|
ldr r2, _0800FC80 @ =gTrainers
|
|
ldr r0, _0800FC84 @ =gTrainerBattleOpponent_A
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0x54
|
|
bne _0800FC88
|
|
movs r0, 0xC
|
|
b _0800FCAA
|
|
.align 2, 0
|
|
_0800FC80: .4byte gTrainers
|
|
_0800FC84: .4byte gTrainerBattleOpponent_A
|
|
_0800FC88:
|
|
cmp r0, 0x5A
|
|
bne _0800FC90
|
|
movs r0, 0x13
|
|
b _0800FCAA
|
|
_0800FC90:
|
|
bl sav1_map_get_battletype
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _0800FCA6
|
|
bl sub_800F238
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _0800FCAA
|
|
_0800FCA6:
|
|
ldr r0, _0800FCB0 @ =gBattleTerrain
|
|
ldrb r0, [r0]
|
|
_0800FCAA:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0800FCB0: .4byte gBattleTerrain
|
|
thumb_func_end sub_800FC2C
|
|
|
|
thumb_func_start sub_800FCB4
|
|
sub_800FCB4: @ 800FCB4
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r4, 0
|
|
cmp r0, 0x6
|
|
bhi _0800FD92
|
|
lsls r0, 2
|
|
ldr r1, _0800FCCC @ =_0800FCD0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0800FCCC: .4byte _0800FCD0
|
|
.align 2, 0
|
|
_0800FCD0:
|
|
.4byte _0800FCEC
|
|
.4byte _0800FCFC
|
|
.4byte _0800FD14
|
|
.4byte _0800FD24
|
|
.4byte _0800FD3E
|
|
.4byte _0800FD68
|
|
.4byte _0800FD8C
|
|
_0800FCEC:
|
|
ldr r0, _0800FCF8 @ =gBattleTextboxTiles
|
|
movs r1, 0xC0
|
|
lsls r1, 19
|
|
bl LZDecompressVram
|
|
b _0800FD94
|
|
.align 2, 0
|
|
_0800FCF8: .4byte gBattleTextboxTiles
|
|
_0800FCFC:
|
|
ldr r1, _0800FD10 @ =gFile_graphics_interface_menu_map_tilemap
|
|
movs r0, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
b _0800FD94
|
|
.align 2, 0
|
|
_0800FD10: .4byte gFile_graphics_interface_menu_map_tilemap
|
|
_0800FD14:
|
|
ldr r0, _0800FD20 @ =gBattleTextboxPalette
|
|
movs r1, 0
|
|
movs r2, 0x40
|
|
bl LoadCompressedPalette
|
|
b _0800FD94
|
|
.align 2, 0
|
|
_0800FD20: .4byte gBattleTextboxPalette
|
|
_0800FD24:
|
|
bl sub_800FC2C
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r1, _0800FD5C @ =gUnknown_824EE34
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, _0800FD60 @ =0x06008000
|
|
bl LZDecompressVram
|
|
_0800FD3E:
|
|
bl sub_800FC2C
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r1, _0800FD5C @ =gUnknown_824EE34
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r1, 0x4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, _0800FD64 @ =0x0600d000
|
|
bl LZDecompressVram
|
|
b _0800FD94
|
|
.align 2, 0
|
|
_0800FD5C: .4byte gUnknown_824EE34
|
|
_0800FD60: .4byte 0x06008000
|
|
_0800FD64: .4byte 0x0600d000
|
|
_0800FD68:
|
|
bl sub_800FC2C
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r1, _0800FD88 @ =gUnknown_824EE34
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r1, 0x10
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x20
|
|
movs r2, 0x60
|
|
bl LoadCompressedPalette
|
|
b _0800FD94
|
|
.align 2, 0
|
|
_0800FD88: .4byte gUnknown_824EE34
|
|
_0800FD8C:
|
|
bl sub_800F380
|
|
b _0800FD94
|
|
_0800FD92:
|
|
movs r4, 0x1
|
|
_0800FD94:
|
|
adds r0, r4, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800FCB4
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|