mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-27 04:04:17 +01:00
2883 lines
44 KiB
ArmAsm
2883 lines
44 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_814FC70
|
|
sub_814FC70: @ 814FC70
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0814FC8E
|
|
ldr r0, =sub_814FCC8
|
|
bl SetMainCallback2
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
_0814FC8E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_814FC70
|
|
|
|
thumb_func_start sub_814FC9C
|
|
sub_814FC9C: @ 814FC9C
|
|
push {lr}
|
|
sub sp, 0x4
|
|
bl ScriptContext2_Enable
|
|
ldr r0, =sub_814FC70
|
|
movs r1, 0x1
|
|
bl CreateTask
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_814FC9C
|
|
|
|
thumb_func_start sub_814FCC8
|
|
sub_814FCC8: @ 814FCC8
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x18
|
|
movs r4, 0
|
|
str r4, [sp, 0x14]
|
|
ldr r1, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
adds r6, r1, 0
|
|
cmp r0, 0x9
|
|
bhi _0814FD20
|
|
lsls r0, 2
|
|
ldr r1, =_0814FCF8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.pool
|
|
.align 2, 0
|
|
_0814FCF8:
|
|
.4byte _0814FD20
|
|
.4byte _0814FDD8
|
|
.4byte _0814FE90
|
|
.4byte _0814FF50
|
|
.4byte _0814FF7C
|
|
.4byte _0814FF98
|
|
.4byte _0814FFF8
|
|
.4byte _08150090
|
|
.4byte _08150190
|
|
.4byte _081501C8
|
|
_0814FD20:
|
|
movs r0, 0
|
|
bl SetVBlankCallback
|
|
movs r0, 0
|
|
bl sub_8150B6C
|
|
bl ScanlineEffect_Stop
|
|
movs r3, 0xC0
|
|
lsls r3, 19
|
|
movs r4, 0xC0
|
|
lsls r4, 9
|
|
add r0, sp, 0x10
|
|
mov r9, r0
|
|
add r2, sp, 0xC
|
|
movs r6, 0
|
|
ldr r1, =0x040000d4
|
|
movs r5, 0x80
|
|
lsls r5, 5
|
|
ldr r7, =0x81000800
|
|
movs r0, 0x81
|
|
lsls r0, 24
|
|
mov r8, r0
|
|
_0814FD4E:
|
|
strh r6, [r2]
|
|
add r0, sp, 0xC
|
|
str r0, [r1]
|
|
str r3, [r1, 0x4]
|
|
str r7, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
adds r3, r5
|
|
subs r4, r5
|
|
cmp r4, r5
|
|
bhi _0814FD4E
|
|
strh r6, [r2]
|
|
add r2, sp, 0xC
|
|
str r2, [r1]
|
|
str r3, [r1, 0x4]
|
|
lsrs r0, r4, 1
|
|
mov r3, r8
|
|
orrs r0, r3
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
movs r0, 0xE0
|
|
lsls r0, 19
|
|
movs r3, 0x80
|
|
lsls r3, 3
|
|
movs r4, 0
|
|
str r4, [sp, 0x10]
|
|
ldr r2, =0x040000d4
|
|
mov r1, r9
|
|
str r1, [r2]
|
|
str r0, [r2, 0x4]
|
|
lsrs r0, r3, 2
|
|
movs r1, 0x85
|
|
lsls r1, 24
|
|
orrs r0, r1
|
|
str r0, [r2, 0x8]
|
|
ldr r0, [r2, 0x8]
|
|
movs r1, 0xA0
|
|
lsls r1, 19
|
|
add r0, sp, 0xC
|
|
strh r4, [r0]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
lsrs r3, 1
|
|
movs r0, 0x81
|
|
lsls r0, 24
|
|
orrs r3, r0
|
|
str r3, [r2, 0x8]
|
|
ldr r0, [r2, 0x8]
|
|
ldr r4, =gUnknown_0203ABAC
|
|
ldr r0, =0x00004110
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
ldr r1, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r1, r2
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
b _08150224
|
|
.pool
|
|
_0814FDD8:
|
|
bl ResetSpriteData
|
|
bl ResetTasks
|
|
bl FreeAllSpritePalettes
|
|
bl ResetPaletteFade
|
|
bl reset_temp_tile_data_buffers
|
|
bl sub_80AAFA4
|
|
movs r4, 0
|
|
ldr r0, =gUnknown_0854C14C
|
|
ldr r0, [r0]
|
|
adds r1, r0, 0
|
|
adds r1, 0xF0
|
|
movs r2, 0
|
|
_0814FDFC:
|
|
lsls r0, r4, 2
|
|
adds r0, r1, r0
|
|
str r2, [r0]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x13
|
|
bls _0814FDFC
|
|
bl InitMapMusic
|
|
bl ResetMapMusic
|
|
movs r0, 0
|
|
bl ResetBgsAndClearDma3BusyFlags
|
|
ldr r1, =gUnknown_085CD66C
|
|
movs r0, 0
|
|
movs r2, 0x4
|
|
bl InitBgsFromTemplates
|
|
ldr r4, =gUnknown_0203ABAC
|
|
ldr r1, [r4]
|
|
adds r1, 0xFC
|
|
movs r0, 0
|
|
bl SetBgTilemapBuffer
|
|
ldr r1, [r4]
|
|
ldr r3, =0x000010fc
|
|
adds r1, r3
|
|
movs r0, 0x1
|
|
bl SetBgTilemapBuffer
|
|
ldr r1, [r4]
|
|
ldr r0, =0x000020fc
|
|
adds r1, r0
|
|
movs r0, 0x2
|
|
bl SetBgTilemapBuffer
|
|
ldr r1, [r4]
|
|
ldr r2, =0x000030fc
|
|
adds r1, r2
|
|
movs r0, 0x3
|
|
bl SetBgTilemapBuffer
|
|
ldr r2, =gSpriteCoordOffsetX
|
|
ldr r1, =gSpriteCoordOffsetY
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
strh r0, [r2]
|
|
ldr r1, =gMain
|
|
movs r3, 0x87
|
|
lsls r3, 3
|
|
adds r1, r3
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
b _08150224
|
|
.pool
|
|
_0814FE90:
|
|
movs r4, 0
|
|
add r5, sp, 0x14
|
|
ldr r6, =gUnknown_085CDB54
|
|
_0814FE96:
|
|
lsls r0, r4, 3
|
|
adds r0, r6
|
|
bl LoadCompressedObjectPic
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x2
|
|
bls _0814FE96
|
|
ldr r0, =gUnknown_085CDB74
|
|
bl LoadSpritePalettes
|
|
ldr r0, =gCableCarMtChimneyTilemap
|
|
adds r1, r5, 0
|
|
bl malloc_and_decompress
|
|
ldr r4, =gUnknown_0203ABAC
|
|
ldr r1, [r4]
|
|
ldr r2, =0x000040fc
|
|
adds r1, r2
|
|
str r0, [r1]
|
|
ldr r0, =gCableCarTreeTilemap
|
|
adds r1, r5, 0
|
|
bl malloc_and_decompress
|
|
ldr r1, [r4]
|
|
movs r3, 0x82
|
|
lsls r3, 7
|
|
adds r1, r3
|
|
str r0, [r1]
|
|
ldr r0, =gCableCarMountainTilemap
|
|
adds r1, r5, 0
|
|
bl malloc_and_decompress
|
|
ldr r1, [r4]
|
|
ldr r2, =0x00004104
|
|
adds r1, r2
|
|
str r0, [r1]
|
|
ldr r0, =gCableCarPylonStemTilemap
|
|
adds r1, r5, 0
|
|
bl malloc_and_decompress
|
|
ldr r1, [r4]
|
|
ldr r3, =0x0000410c
|
|
adds r2, r1, r3
|
|
str r0, [r2]
|
|
ldr r0, =0x00004108
|
|
adds r1, r0
|
|
ldr r0, =gCableCarPylonHookTilemapEntries
|
|
str r0, [r1]
|
|
ldr r1, =gUnknown_08DBA5B8
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl decompress_and_copy_tile_data_to_vram
|
|
ldr r1, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r1, r2
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
b _08150224
|
|
.pool
|
|
_0814FF50:
|
|
bl free_temp_tile_data_buffers_if_possible
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0814FF5C
|
|
b _08150226
|
|
_0814FF5C:
|
|
ldr r0, =gUnknown_08DBA518
|
|
movs r1, 0
|
|
movs r2, 0x80
|
|
bl LoadPalette
|
|
ldr r1, =gMain
|
|
movs r3, 0x87
|
|
lsls r3, 3
|
|
adds r1, r3
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
b _08150224
|
|
.pool
|
|
_0814FF7C:
|
|
bl sub_8150D28
|
|
bl RunTasks
|
|
ldr r1, =gMain
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
b _08150224
|
|
.pool
|
|
_0814FF98:
|
|
ldr r0, =gUnknown_0203ABAC
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x2]
|
|
cmp r0, 0x7
|
|
bne _0814FFB4
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r1, r6, r2
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
b _08150224
|
|
.pool
|
|
_0814FFB4:
|
|
ldr r0, =gUnknown_0854C14C
|
|
ldr r0, [r0]
|
|
adds r1, r0, 0
|
|
adds r1, 0xF0
|
|
ldr r0, [r1]
|
|
cmp r0, 0
|
|
bne _0814FFC4
|
|
b _08150226
|
|
_0814FFC4:
|
|
movs r4, 0
|
|
adds r3, r1, 0
|
|
movs r5, 0xD
|
|
negs r5, r5
|
|
_0814FFCC:
|
|
lsls r0, r4, 2
|
|
adds r0, r3, r0
|
|
ldr r2, [r0]
|
|
cmp r2, 0
|
|
beq _0814FFDE
|
|
ldrb r1, [r2, 0x5]
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x5]
|
|
_0814FFDE:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x13
|
|
bls _0814FFCC
|
|
movs r3, 0x87
|
|
lsls r3, 3
|
|
adds r1, r6, r3
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
b _08150224
|
|
.pool
|
|
_0814FFF8:
|
|
ldr r6, =gUnknown_0203ABAC
|
|
ldr r0, [r6]
|
|
movs r1, 0x82
|
|
lsls r1, 7
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
movs r0, 0x20
|
|
str r0, [sp]
|
|
movs r0, 0xF
|
|
str r0, [sp, 0x4]
|
|
movs r5, 0x11
|
|
str r5, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r2, 0
|
|
movs r3, 0x11
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
ldr r0, [r6]
|
|
ldr r2, =0x00004104
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
movs r0, 0x1E
|
|
str r0, [sp]
|
|
movs r3, 0x14
|
|
mov r8, r3
|
|
str r3, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
movs r0, 0x2
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
ldr r0, [r6]
|
|
ldr r1, =0x00004108
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
movs r0, 0x5
|
|
str r0, [sp]
|
|
movs r4, 0x2
|
|
str r4, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
movs r0, 0x3
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
ldr r0, [r6]
|
|
ldr r2, =0x0000410c
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
str r4, [sp]
|
|
mov r3, r8
|
|
str r3, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
movs r0, 0x3
|
|
movs r2, 0
|
|
movs r3, 0x2
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
ldr r1, =gMain
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
b _08150224
|
|
.pool
|
|
_08150090:
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrb r0, [r0]
|
|
bl sub_81514C8
|
|
ldr r1, =gUnknown_0203ABAC
|
|
mov r9, r1
|
|
ldr r0, [r1]
|
|
ldr r2, =0x000040fc
|
|
mov r8, r2
|
|
add r0, r8
|
|
ldr r1, [r0]
|
|
adds r1, 0x90
|
|
movs r6, 0xC
|
|
str r6, [sp]
|
|
movs r5, 0x3
|
|
str r5, [sp, 0x4]
|
|
movs r4, 0x11
|
|
str r4, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
movs r3, 0xE
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
mov r3, r9
|
|
ldr r0, [r3]
|
|
add r0, r8
|
|
ldr r1, [r0]
|
|
adds r1, 0xD8
|
|
str r6, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r2, 0xC
|
|
movs r3, 0x11
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
add r0, r8
|
|
ldr r1, [r0]
|
|
movs r2, 0x90
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
str r6, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r2, 0x18
|
|
movs r3, 0x14
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
mov r3, r9
|
|
ldr r0, [r3]
|
|
add r0, r8
|
|
ldr r1, [r0]
|
|
str r6, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
movs r3, 0x11
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
add r0, r8
|
|
ldr r1, [r0]
|
|
adds r1, 0x48
|
|
str r6, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
movs r3, 0x14
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
mov r2, r9
|
|
ldr r0, [r2]
|
|
add r0, r8
|
|
ldr r1, [r0]
|
|
str r6, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r2, 0xC
|
|
movs r3, 0x14
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
mov r3, r9
|
|
ldr r0, [r3]
|
|
add r0, r8
|
|
ldr r1, [r0]
|
|
adds r1, 0x48
|
|
str r6, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r2, 0xC
|
|
movs r3, 0x17
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
add r0, r8
|
|
ldr r1, [r0]
|
|
str r6, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r2, 0x18
|
|
movs r3, 0x17
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
ldr r1, =gMain
|
|
movs r2, 0x87
|
|
lsls r2, 3
|
|
adds r1, r2
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
b _08150224
|
|
.pool
|
|
_08150190:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r1, 0x3
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, =0x000001a9
|
|
movs r1, 0x1
|
|
bl FadeInNewBGM
|
|
movs r0, 0x1
|
|
bl sub_8150B6C
|
|
ldr r1, =gMain
|
|
movs r3, 0x87
|
|
lsls r3, 3
|
|
adds r1, r3
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
b _08150224
|
|
.pool
|
|
_081501C8:
|
|
ldr r3, =0x04000208
|
|
ldrh r2, [r3]
|
|
movs r0, 0
|
|
strh r0, [r3]
|
|
ldr r4, =0x04000200
|
|
ldrh r0, [r4]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strh r0, [r4]
|
|
strh r2, [r3]
|
|
ldr r0, =sub_8150800
|
|
bl SetVBlankCallback
|
|
ldr r0, =mainloop
|
|
bl SetMainCallback2
|
|
ldr r0, =sub_81503E4
|
|
movs r1, 0
|
|
bl CreateTask
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
bne _08150218
|
|
ldr r0, =sub_8150550
|
|
b _0815021A
|
|
.pool
|
|
_08150218:
|
|
ldr r0, =sub_8150664
|
|
_0815021A:
|
|
movs r1, 0x1
|
|
bl CreateTask
|
|
ldr r1, =gUnknown_0203ABAC
|
|
ldr r1, [r1]
|
|
_08150224:
|
|
strb r0, [r1]
|
|
_08150226:
|
|
add sp, 0x18
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_814FCC8
|
|
|
|
thumb_func_start mainloop
|
|
mainloop: @ 815023C
|
|
push {lr}
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
bl MapMusicMain
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end mainloop
|
|
|
|
thumb_func_start c2_8011A1C
|
|
c2_8011A1C: @ 8150258
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x8
|
|
movs r4, 0
|
|
movs r0, 0
|
|
bl HideBg
|
|
movs r0, 0x1
|
|
bl HideBg
|
|
movs r0, 0x2
|
|
bl HideBg
|
|
movs r0, 0x3
|
|
bl HideBg
|
|
movs r0, 0
|
|
bl sub_8150B6C
|
|
ldr r0, =gSpriteCoordOffsetX
|
|
strh r4, [r0]
|
|
movs r0, 0
|
|
bl sub_80AB130
|
|
add r0, sp, 0x4
|
|
mov r8, r0
|
|
ldr r0, =gUnknown_0854C14C
|
|
ldr r0, [r0]
|
|
adds r1, r0, 0
|
|
adds r1, 0xF0
|
|
movs r2, 0
|
|
_08150298:
|
|
lsls r0, r4, 2
|
|
adds r0, r1, r0
|
|
str r2, [r0]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x13
|
|
bls _08150298
|
|
bl ResetTasks
|
|
bl ResetSpriteData
|
|
bl ResetPaletteFade
|
|
movs r0, 0
|
|
bl UnsetBgTilemapBuffer
|
|
movs r0, 0x1
|
|
bl UnsetBgTilemapBuffer
|
|
movs r0, 0x2
|
|
bl UnsetBgTilemapBuffer
|
|
movs r0, 0x3
|
|
bl UnsetBgTilemapBuffer
|
|
movs r0, 0
|
|
bl ResetBgsAndClearDma3BusyFlags
|
|
ldr r6, =gUnknown_0203ABAC
|
|
ldr r0, [r6]
|
|
ldr r2, =0x00004108
|
|
adds r1, r0, r2
|
|
movs r5, 0
|
|
str r5, [r1]
|
|
ldr r4, =0x0000410c
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
bl Free
|
|
ldr r0, [r6]
|
|
adds r4, r0, r4
|
|
str r5, [r4]
|
|
ldr r4, =0x00004104
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
bl Free
|
|
ldr r0, [r6]
|
|
adds r4, r0, r4
|
|
str r5, [r4]
|
|
movs r4, 0x82
|
|
lsls r4, 7
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
bl Free
|
|
ldr r0, [r6]
|
|
adds r4, r0, r4
|
|
str r5, [r4]
|
|
ldr r4, =0x000040fc
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
bl Free
|
|
ldr r0, [r6]
|
|
adds r4, r0, r4
|
|
str r5, [r4]
|
|
bl Free
|
|
str r5, [r6]
|
|
movs r2, 0xC0
|
|
lsls r2, 19
|
|
movs r3, 0xC0
|
|
lsls r3, 9
|
|
mov r4, sp
|
|
movs r6, 0
|
|
ldr r1, =0x040000d4
|
|
movs r5, 0x80
|
|
lsls r5, 5
|
|
ldr r7, =0x81000800
|
|
movs r0, 0x81
|
|
lsls r0, 24
|
|
mov r12, r0
|
|
_08150340:
|
|
strh r6, [r4]
|
|
mov r0, sp
|
|
str r0, [r1]
|
|
str r2, [r1, 0x4]
|
|
str r7, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
adds r2, r5
|
|
subs r3, r5
|
|
cmp r3, r5
|
|
bhi _08150340
|
|
strh r6, [r4]
|
|
mov r0, sp
|
|
str r0, [r1]
|
|
str r2, [r1, 0x4]
|
|
lsrs r0, r3, 1
|
|
mov r2, r12
|
|
orrs r0, r2
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
movs r0, 0xE0
|
|
lsls r0, 19
|
|
movs r3, 0x80
|
|
lsls r3, 3
|
|
movs r4, 0
|
|
str r4, [sp, 0x4]
|
|
ldr r2, =0x040000d4
|
|
mov r1, r8
|
|
str r1, [r2]
|
|
str r0, [r2, 0x4]
|
|
lsrs r0, r3, 2
|
|
movs r1, 0x85
|
|
lsls r1, 24
|
|
orrs r0, r1
|
|
str r0, [r2, 0x8]
|
|
ldr r0, [r2, 0x8]
|
|
movs r1, 0xA0
|
|
lsls r1, 19
|
|
mov r0, sp
|
|
strh r4, [r0]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
lsrs r3, 1
|
|
movs r0, 0x81
|
|
lsls r0, 24
|
|
orrs r3, r0
|
|
str r3, [r2, 0x8]
|
|
ldr r0, [r2, 0x8]
|
|
bl WarpIntoMap
|
|
ldr r0, =gFieldCallback
|
|
str r4, [r0]
|
|
ldr r0, =CB2_LoadMap
|
|
bl SetMainCallback2
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end c2_8011A1C
|
|
|
|
thumb_func_start sub_81503E4
|
|
sub_81503E4: @ 81503E4
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r4, 0
|
|
ldr r5, =gUnknown_0203ABAC
|
|
ldr r3, [r5]
|
|
ldrh r0, [r3, 0x6]
|
|
adds r0, 0x1
|
|
strh r0, [r3, 0x6]
|
|
ldrb r2, [r3, 0x1]
|
|
adds r7, r5, 0
|
|
cmp r2, 0x2
|
|
beq _081504EA
|
|
cmp r2, 0x2
|
|
bgt _08150414
|
|
cmp r2, 0
|
|
beq _08150422
|
|
cmp r2, 0x1
|
|
beq _0815043C
|
|
b _08150542
|
|
.pool
|
|
_08150414:
|
|
cmp r2, 0x3
|
|
bne _0815041A
|
|
b _08150510
|
|
_0815041A:
|
|
cmp r2, 0xFF
|
|
bne _08150420
|
|
b _08150528
|
|
_08150420:
|
|
b _08150542
|
|
_08150422:
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrh r1, [r3, 0x4]
|
|
cmp r0, r1
|
|
beq _0815042E
|
|
b _08150542
|
|
_0815042E:
|
|
ldrb r0, [r3, 0x2]
|
|
bl weather_set
|
|
ldr r1, [r5]
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x1]
|
|
b _08150542
|
|
_0815043C:
|
|
ldrb r0, [r3, 0x2]
|
|
cmp r0, 0x2
|
|
beq _08150490
|
|
cmp r0, 0x7
|
|
beq _08150448
|
|
b _08150542
|
|
_08150448:
|
|
ldr r0, =gUnknown_0854C14C
|
|
ldr r0, [r0]
|
|
adds r2, r0, 0
|
|
adds r2, 0xF0
|
|
ldr r0, [r2]
|
|
cmp r0, 0
|
|
beq _08150542
|
|
ldrb r1, [r0, 0x5]
|
|
movs r0, 0xC
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08150542
|
|
adds r3, r2, 0
|
|
movs r5, 0xD
|
|
negs r5, r5
|
|
_08150466:
|
|
lsls r0, r4, 2
|
|
adds r0, r3, r0
|
|
ldr r2, [r0]
|
|
cmp r2, 0
|
|
beq _08150478
|
|
ldrb r1, [r2, 0x5]
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x5]
|
|
_08150478:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x13
|
|
bls _08150466
|
|
ldr r1, [r7]
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x1]
|
|
b _08150542
|
|
.pool
|
|
_08150490:
|
|
ldr r0, =gUnknown_0854C14C
|
|
ldr r2, [r0]
|
|
movs r1, 0xDA
|
|
lsls r1, 3
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _081504A8
|
|
strb r0, [r3, 0x1]
|
|
b _08150542
|
|
.pool
|
|
_081504A8:
|
|
ldrh r1, [r3, 0x6]
|
|
ldrh r0, [r3, 0x4]
|
|
adds r0, 0x8
|
|
cmp r1, r0
|
|
blt _08150542
|
|
adds r6, r2, 0
|
|
adds r6, 0xF0
|
|
movs r5, 0x1
|
|
movs r7, 0x5
|
|
negs r7, r7
|
|
_081504BC:
|
|
lsls r0, r4, 2
|
|
adds r0, r6, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _081504DE
|
|
adds r3, r0, 0
|
|
adds r3, 0x3E
|
|
ldrb r2, [r3]
|
|
lsls r1, r2, 29
|
|
lsrs r1, 31
|
|
eors r1, r5
|
|
ands r1, r5
|
|
lsls r1, 2
|
|
adds r0, r7, 0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
_081504DE:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x13
|
|
bls _081504BC
|
|
b _08150542
|
|
_081504EA:
|
|
lsls r1, r0, 16
|
|
ldr r0, =0x023a0000
|
|
cmp r1, r0
|
|
bne _08150542
|
|
movs r0, 0x3
|
|
strb r0, [r3, 0x1]
|
|
subs r0, 0x4
|
|
str r4, [sp]
|
|
movs r1, 0x3
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
movs r0, 0x4
|
|
bl FadeOutBGM
|
|
b _08150542
|
|
.pool
|
|
_08150510:
|
|
ldr r0, =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08150542
|
|
movs r0, 0xFF
|
|
strb r0, [r3, 0x1]
|
|
b _08150542
|
|
.pool
|
|
_08150528:
|
|
movs r0, 0
|
|
bl SetVBlankCallback
|
|
adds r0, r6, 0
|
|
bl DestroyTask
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0]
|
|
bl DestroyTask
|
|
ldr r0, =c2_8011A1C
|
|
bl SetMainCallback2
|
|
_08150542:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81503E4
|
|
|
|
thumb_func_start sub_8150550
|
|
sub_8150550: @ 8150550
|
|
push {r4-r6,lr}
|
|
sub sp, 0xC
|
|
ldr r6, =gUnknown_0203ABAC
|
|
ldr r1, [r6]
|
|
ldrb r0, [r1, 0x1]
|
|
cmp r0, 0xFF
|
|
beq _08150630
|
|
ldrb r0, [r1, 0x14]
|
|
subs r0, 0x1
|
|
strb r0, [r1, 0x14]
|
|
ldr r1, [r6]
|
|
ldrh r0, [r1, 0x6]
|
|
movs r3, 0x1
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
bne _08150576
|
|
ldrb r0, [r1, 0x15]
|
|
subs r0, 0x1
|
|
strb r0, [r1, 0x15]
|
|
_08150576:
|
|
ldr r2, [r6]
|
|
ldrh r0, [r2, 0x6]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08150590
|
|
ldrb r0, [r2, 0xC]
|
|
subs r0, 0x1
|
|
strb r0, [r2, 0xC]
|
|
ldr r1, [r6]
|
|
ldrb r0, [r1, 0xD]
|
|
subs r0, 0x1
|
|
strb r0, [r1, 0xD]
|
|
_08150590:
|
|
ldr r0, [r6]
|
|
ldrb r1, [r0, 0x14]
|
|
cmp r1, 0x20
|
|
beq _081505DC
|
|
cmp r1, 0x20
|
|
bgt _081505A8
|
|
cmp r1, 0x10
|
|
beq _081505F4
|
|
b _08150630
|
|
.pool
|
|
_081505A8:
|
|
cmp r1, 0x28
|
|
beq _081505CA
|
|
cmp r1, 0xAF
|
|
bne _08150630
|
|
movs r0, 0x2
|
|
str r0, [sp]
|
|
movs r0, 0xA
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x16
|
|
bl FillBgTilemapBufferRect
|
|
b _08150630
|
|
_081505CA:
|
|
movs r0, 0x2
|
|
str r0, [sp]
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
movs r2, 0x3
|
|
b _081505EC
|
|
_081505DC:
|
|
str r3, [sp]
|
|
movs r0, 0x2
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
movs r2, 0x2
|
|
_081505EC:
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect
|
|
b _08150630
|
|
_081505F4:
|
|
ldr r1, =0x00004108
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
movs r0, 0x5
|
|
str r0, [sp]
|
|
movs r4, 0x2
|
|
str r4, [sp, 0x4]
|
|
movs r5, 0x11
|
|
str r5, [sp, 0x8]
|
|
movs r0, 0x3
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
ldr r0, [r6]
|
|
ldr r1, =0x0000410c
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
str r4, [sp]
|
|
movs r0, 0x1E
|
|
str r0, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
movs r0, 0x3
|
|
movs r2, 0
|
|
movs r3, 0x2
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
ldr r1, [r6]
|
|
movs r0, 0x40
|
|
strb r0, [r1, 0x15]
|
|
_08150630:
|
|
bl sub_815115C
|
|
ldr r3, =gSpriteCoordOffsetX
|
|
movs r0, 0
|
|
ldrsh r2, [r3, r0]
|
|
adds r1, r2, 0x1
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08150646
|
|
adds r0, r2, 0
|
|
adds r0, 0x80
|
|
_08150646:
|
|
asrs r0, 7
|
|
lsls r0, 7
|
|
subs r0, r1, r0
|
|
strh r0, [r3]
|
|
add sp, 0xC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8150550
|
|
|
|
thumb_func_start sub_8150664
|
|
sub_8150664: @ 8150664
|
|
push {r4-r7,lr}
|
|
sub sp, 0xC
|
|
ldr r7, =gUnknown_0203ABAC
|
|
ldr r1, [r7]
|
|
ldrb r0, [r1, 0x1]
|
|
cmp r0, 0xFF
|
|
bne _08150674
|
|
b _081507B6
|
|
_08150674:
|
|
ldrb r0, [r1, 0x14]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x14]
|
|
ldr r1, [r7]
|
|
ldrh r0, [r1, 0x6]
|
|
movs r6, 0x1
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
bne _0815068C
|
|
ldrb r0, [r1, 0x15]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x15]
|
|
_0815068C:
|
|
ldr r2, [r7]
|
|
ldrh r0, [r2, 0x6]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _081506A6
|
|
ldrb r0, [r2, 0xC]
|
|
adds r0, 0x1
|
|
strb r0, [r2, 0xC]
|
|
ldr r1, [r7]
|
|
ldrb r0, [r1, 0xD]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0xD]
|
|
_081506A6:
|
|
ldr r0, [r7]
|
|
ldrb r1, [r0, 0x14]
|
|
cmp r1, 0x20
|
|
beq _0815071A
|
|
cmp r1, 0x20
|
|
bgt _081506BC
|
|
cmp r1, 0x10
|
|
beq _081506E8
|
|
b _081507B6
|
|
.pool
|
|
_081506BC:
|
|
cmp r1, 0x28
|
|
beq _08150784
|
|
cmp r1, 0xB0
|
|
bne _081507B6
|
|
ldr r1, =0x0000410c
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
movs r0, 0x2
|
|
str r0, [sp]
|
|
movs r0, 0x1E
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x3
|
|
movs r2, 0
|
|
movs r3, 0x2
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
b _081507B6
|
|
.pool
|
|
_081506E8:
|
|
movs r0, 0x3
|
|
str r0, [sp]
|
|
movs r4, 0x2
|
|
str r4, [sp, 0x4]
|
|
movs r5, 0x11
|
|
str r5, [sp, 0x8]
|
|
movs r1, 0
|
|
movs r2, 0x2
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect
|
|
str r4, [sp]
|
|
movs r0, 0xA
|
|
str r0, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x16
|
|
bl FillBgTilemapBufferRect
|
|
ldr r1, [r7]
|
|
movs r0, 0xC0
|
|
strb r0, [r1, 0x15]
|
|
b _081507B6
|
|
_0815071A:
|
|
ldr r5, =0x00004108
|
|
adds r0, r5
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0, 0x4]
|
|
str r6, [sp]
|
|
str r6, [sp, 0x4]
|
|
movs r4, 0x11
|
|
str r4, [sp, 0x8]
|
|
movs r0, 0x3
|
|
movs r2, 0x2
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect
|
|
ldr r0, [r7]
|
|
adds r0, r5
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0, 0x6]
|
|
str r6, [sp]
|
|
str r6, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r0, 0x3
|
|
movs r2, 0x3
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect
|
|
ldr r0, [r7]
|
|
adds r0, r5
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0, 0xE]
|
|
str r6, [sp]
|
|
str r6, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r0, 0x3
|
|
movs r2, 0x2
|
|
movs r3, 0x1
|
|
bl FillBgTilemapBufferRect
|
|
ldr r0, [r7]
|
|
adds r0, r5
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0, 0x10]
|
|
str r6, [sp]
|
|
str r6, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r0, 0x3
|
|
movs r2, 0x3
|
|
movs r3, 0x1
|
|
bl FillBgTilemapBufferRect
|
|
b _081507B6
|
|
.pool
|
|
_08150784:
|
|
ldr r5, =0x00004108
|
|
adds r0, r5
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0, 0x8]
|
|
str r6, [sp]
|
|
str r6, [sp, 0x4]
|
|
movs r4, 0x11
|
|
str r4, [sp, 0x8]
|
|
movs r0, 0x3
|
|
movs r2, 0x4
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect
|
|
ldr r0, [r7]
|
|
adds r0, r5
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0, 0x12]
|
|
str r6, [sp]
|
|
str r6, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r0, 0x3
|
|
movs r2, 0x4
|
|
movs r3, 0x1
|
|
bl FillBgTilemapBufferRect
|
|
_081507B6:
|
|
bl sub_81511B8
|
|
ldr r0, =gUnknown_0203ABAC
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x6]
|
|
ldrh r1, [r1, 0x4]
|
|
cmp r0, r1
|
|
bcs _081507DC
|
|
ldr r4, =gSpriteCoordOffsetX
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
b _081507E6
|
|
.pool
|
|
_081507DC:
|
|
ldr r0, =gUnknown_0854C14C
|
|
ldr r4, [r0]
|
|
ldr r0, =0x000006fc
|
|
adds r4, r0
|
|
ldrh r0, [r4]
|
|
_081507E6:
|
|
adds r0, 0xF7
|
|
movs r1, 0xF8
|
|
bl __modsi3
|
|
strh r0, [r4]
|
|
add sp, 0xC
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8150664
|
|
|
|
thumb_func_start sub_8150800
|
|
sub_8150800: @ 8150800
|
|
push {r4,lr}
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
movs r0, 0x3
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r4, =gUnknown_0203ABAC
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, 0x14]
|
|
movs r0, 0x1C
|
|
bl SetGpuReg
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, 0x15]
|
|
movs r0, 0x1E
|
|
bl SetGpuReg
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, 0xC]
|
|
movs r0, 0x14
|
|
bl SetGpuReg
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, 0xD]
|
|
movs r0, 0x16
|
|
bl SetGpuReg
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, 0x8]
|
|
movs r0, 0x10
|
|
bl SetGpuReg
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, 0x9]
|
|
movs r0, 0x12
|
|
bl SetGpuReg
|
|
bl LoadOam
|
|
bl ProcessSpriteCopyRequests
|
|
bl TransferPlttBuffer
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8150800
|
|
|
|
thumb_func_start nullsub_58
|
|
nullsub_58: @ 8150864
|
|
bx lr
|
|
thumb_func_end nullsub_58
|
|
|
|
thumb_func_start sub_8150868
|
|
sub_8150868: @ 8150868
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
ldr r0, =gUnknown_0203ABAC
|
|
ldr r6, [r0]
|
|
ldrb r0, [r6, 0x1]
|
|
cmp r0, 0xFF
|
|
beq _08150934
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
bne _081508E4
|
|
movs r0, 0x6
|
|
ldrsh r4, [r6, r0]
|
|
adds r0, r4, 0
|
|
bl __floatsisf
|
|
cmp r4, 0
|
|
bge _08150892
|
|
ldr r1, =0x47800000
|
|
bl __addsf3
|
|
_08150892:
|
|
ldr r1, =0x3e0f5c29
|
|
bl __mulsf3
|
|
bl __fixunssfsi
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r5, 0x2E]
|
|
subs r1, r0
|
|
strh r1, [r5, 0x20]
|
|
movs r1, 0x6
|
|
ldrsh r4, [r6, r1]
|
|
adds r0, r4, 0
|
|
bl __floatsisf
|
|
cmp r4, 0
|
|
bge _081508BA
|
|
ldr r1, =0x47800000
|
|
bl __addsf3
|
|
_081508BA:
|
|
ldr r1, =0x3d89374c
|
|
bl __mulsf3
|
|
bl __fixunssfsi
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r5, 0x30]
|
|
subs r1, r0
|
|
strh r1, [r5, 0x22]
|
|
b _08150934
|
|
.pool
|
|
_081508E4:
|
|
movs r0, 0x6
|
|
ldrsh r4, [r6, r0]
|
|
adds r0, r4, 0
|
|
bl __floatsisf
|
|
cmp r4, 0
|
|
bge _081508F8
|
|
ldr r1, =0x47800000
|
|
bl __addsf3
|
|
_081508F8:
|
|
ldr r1, =0x3e0f5c29
|
|
bl __mulsf3
|
|
bl __fixunssfsi
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r5, 0x2E]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x20]
|
|
movs r0, 0x6
|
|
ldrsh r4, [r6, r0]
|
|
adds r0, r4, 0
|
|
bl __floatsisf
|
|
cmp r4, 0
|
|
bge _08150920
|
|
ldr r1, =0x47800000
|
|
bl __addsf3
|
|
_08150920:
|
|
ldr r1, =0x3d89374c
|
|
bl __mulsf3
|
|
bl __fixunssfsi
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r5, 0x30]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x22]
|
|
_08150934:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8150868
|
|
|
|
thumb_func_start sub_8150948
|
|
sub_8150948: @ 8150948
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
ldr r0, =gUnknown_0203ABAC
|
|
ldr r6, [r0]
|
|
ldrb r0, [r6, 0x1]
|
|
cmp r0, 0xFF
|
|
bne _08150958
|
|
b _08150A60
|
|
_08150958:
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
bne _081509C8
|
|
movs r0, 0x6
|
|
ldrsh r4, [r6, r0]
|
|
adds r0, r4, 0
|
|
bl __floatsisf
|
|
cmp r4, 0
|
|
bge _08150974
|
|
ldr r1, =0x47800000
|
|
bl __addsf3
|
|
_08150974:
|
|
ldr r1, =0x3e0f5c29
|
|
bl __mulsf3
|
|
bl __fixunssfsi
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r5, 0x2E]
|
|
subs r1, r0
|
|
strh r1, [r5, 0x20]
|
|
movs r1, 0x6
|
|
ldrsh r4, [r6, r1]
|
|
adds r0, r4, 0
|
|
bl __floatsisf
|
|
cmp r4, 0
|
|
bge _0815099C
|
|
ldr r1, =0x47800000
|
|
bl __addsf3
|
|
_0815099C:
|
|
ldr r1, =0x3d89374c
|
|
bl __mulsf3
|
|
bl __fixunssfsi
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r5, 0x30]
|
|
subs r1, r0
|
|
strh r1, [r5, 0x22]
|
|
b _08150A18
|
|
.pool
|
|
_081509C8:
|
|
movs r0, 0x6
|
|
ldrsh r4, [r6, r0]
|
|
adds r0, r4, 0
|
|
bl __floatsisf
|
|
cmp r4, 0
|
|
bge _081509DC
|
|
ldr r1, =0x47800000
|
|
bl __addsf3
|
|
_081509DC:
|
|
ldr r1, =0x3e0f5c29
|
|
bl __mulsf3
|
|
bl __fixunssfsi
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r5, 0x2E]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x20]
|
|
movs r0, 0x6
|
|
ldrsh r4, [r6, r0]
|
|
adds r0, r4, 0
|
|
bl __floatsisf
|
|
cmp r4, 0
|
|
bge _08150A04
|
|
ldr r1, =0x47800000
|
|
bl __addsf3
|
|
_08150A04:
|
|
ldr r1, =0x3d89374c
|
|
bl __mulsf3
|
|
bl __fixunssfsi
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrh r1, [r5, 0x30]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x22]
|
|
_08150A18:
|
|
movs r0, 0x32
|
|
ldrsh r2, [r5, r0]
|
|
cmp r2, 0
|
|
bne _08150A48
|
|
movs r0, 0x11
|
|
strh r0, [r5, 0x26]
|
|
ldrh r0, [r5, 0x34]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r5, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x9
|
|
ble _08150A60
|
|
strh r2, [r5, 0x34]
|
|
ldrh r0, [r5, 0x32]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x32]
|
|
b _08150A60
|
|
.pool
|
|
_08150A48:
|
|
movs r2, 0
|
|
movs r0, 0x10
|
|
strh r0, [r5, 0x26]
|
|
ldrh r0, [r5, 0x34]
|
|
adds r1, r0, 0x1
|
|
strh r1, [r5, 0x34]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x9
|
|
ble _08150A60
|
|
strh r2, [r5, 0x34]
|
|
strh r2, [r5, 0x32]
|
|
_08150A60:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8150948
|
|
|
|
thumb_func_start sub_8150A68
|
|
sub_8150A68: @ 8150A68
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0
|
|
bne _08150A98
|
|
adds r0, r2, 0
|
|
adds r0, 0x28
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
lsls r0, 1
|
|
ldrh r3, [r2, 0x20]
|
|
adds r0, r3
|
|
strh r0, [r2, 0x20]
|
|
ldrh r1, [r2, 0x22]
|
|
adds r1, 0x10
|
|
adds r0, r2, 0
|
|
adds r0, 0x29
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
adds r0, r1
|
|
strh r0, [r2, 0x22]
|
|
_08150A98:
|
|
ldrh r0, [r2, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r3, 0x32
|
|
ldrsh r1, [r2, r3]
|
|
cmp r0, r1
|
|
blt _08150AEE
|
|
movs r0, 0x30
|
|
ldrsh r1, [r2, r0]
|
|
cmp r1, 0
|
|
beq _08150AB8
|
|
cmp r1, 0x1
|
|
beq _08150AC2
|
|
b _08150AE0
|
|
_08150AB8:
|
|
ldrh r0, [r2, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x20]
|
|
ldrh r0, [r2, 0x2E]
|
|
b _08150AD2
|
|
_08150AC2:
|
|
ldrh r0, [r2, 0x2E]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08150AE0
|
|
ldrh r0, [r2, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x20]
|
|
ldrh r0, [r2, 0x20]
|
|
_08150AD2:
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08150AE0
|
|
ldrh r0, [r2, 0x22]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x22]
|
|
_08150AE0:
|
|
movs r1, 0x22
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0xA0
|
|
ble _08150AEE
|
|
adds r0, r2, 0
|
|
bl DestroySprite
|
|
_08150AEE:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8150A68
|
|
|
|
thumb_func_start sub_8150AF4
|
|
sub_8150AF4: @ 8150AF4
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0
|
|
bne _08150B12
|
|
ldrh r1, [r2, 0x22]
|
|
adds r1, 0x10
|
|
adds r0, r2, 0
|
|
adds r0, 0x29
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
adds r0, r1
|
|
strh r0, [r2, 0x22]
|
|
_08150B12:
|
|
ldrh r0, [r2, 0x2E]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r3, 0x32
|
|
ldrsh r1, [r2, r3]
|
|
cmp r0, r1
|
|
blt _08150B68
|
|
movs r0, 0x30
|
|
ldrsh r1, [r2, r0]
|
|
cmp r1, 0
|
|
beq _08150B32
|
|
cmp r1, 0x1
|
|
beq _08150B3C
|
|
b _08150B5A
|
|
_08150B32:
|
|
ldrh r0, [r2, 0x20]
|
|
subs r0, 0x1
|
|
strh r0, [r2, 0x20]
|
|
ldrh r0, [r2, 0x2E]
|
|
b _08150B4C
|
|
_08150B3C:
|
|
ldrh r0, [r2, 0x2E]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08150B5A
|
|
ldrh r0, [r2, 0x20]
|
|
subs r0, 0x1
|
|
strh r0, [r2, 0x20]
|
|
ldrh r0, [r2, 0x20]
|
|
_08150B4C:
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08150B5A
|
|
ldrh r0, [r2, 0x22]
|
|
subs r0, 0x1
|
|
strh r0, [r2, 0x22]
|
|
_08150B5A:
|
|
movs r1, 0x22
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0x4F
|
|
bgt _08150B68
|
|
adds r0, r2, 0
|
|
bl DestroySprite
|
|
_08150B68:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8150AF4
|
|
|
|
thumb_func_start sub_8150B6C
|
|
sub_8150B6C: @ 8150B6C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _08150B7A
|
|
cmp r0, 0x1
|
|
beq _08150C1C
|
|
_08150B7A:
|
|
movs r0, 0x48
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x4A
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x40
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x42
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x44
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x46
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0xE
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0xC
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0xA
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x8
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x1C
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x1E
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x18
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x1A
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x14
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x16
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x10
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x12
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
b _08150D1C
|
|
_08150C1C:
|
|
movs r0, 0x48
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x4A
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x40
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x42
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x44
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x46
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrh r3, [r0]
|
|
cmp r3, 0
|
|
bne _08150C74
|
|
ldr r1, =gUnknown_0203ABAC
|
|
ldr r2, [r1]
|
|
movs r0, 0xB0
|
|
strb r0, [r2, 0x14]
|
|
ldr r2, [r1]
|
|
movs r0, 0x10
|
|
strb r0, [r2, 0x15]
|
|
ldr r0, [r1]
|
|
strb r3, [r0, 0xC]
|
|
ldr r2, [r1]
|
|
movs r0, 0x50
|
|
b _08150C8C
|
|
.pool
|
|
_08150C74:
|
|
ldr r1, =gUnknown_0203ABAC
|
|
ldr r2, [r1]
|
|
movs r3, 0
|
|
movs r0, 0x60
|
|
strb r0, [r2, 0x14]
|
|
ldr r2, [r1]
|
|
movs r0, 0xE8
|
|
strb r0, [r2, 0x15]
|
|
ldr r0, [r1]
|
|
strb r3, [r0, 0xC]
|
|
ldr r2, [r1]
|
|
movs r0, 0x4
|
|
_08150C8C:
|
|
strb r0, [r2, 0xD]
|
|
ldr r0, [r1]
|
|
strb r3, [r0, 0x9]
|
|
ldr r0, [r1]
|
|
strb r3, [r0, 0x9]
|
|
adds r4, r1, 0
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, 0x14]
|
|
movs r0, 0x1C
|
|
bl SetGpuReg
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, 0x15]
|
|
movs r0, 0x1E
|
|
bl SetGpuReg
|
|
movs r0, 0x18
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x1A
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, 0xC]
|
|
movs r0, 0x14
|
|
bl SetGpuReg
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, 0xD]
|
|
movs r0, 0x16
|
|
bl SetGpuReg
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, 0x8]
|
|
movs r0, 0x10
|
|
bl SetGpuReg
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, 0x9]
|
|
movs r0, 0x12
|
|
bl SetGpuReg
|
|
movs r1, 0x82
|
|
lsls r1, 5
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x1
|
|
bl CopyBgTilemapBufferToVram
|
|
movs r0, 0x2
|
|
bl CopyBgTilemapBufferToVram
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
movs r0, 0x2
|
|
bl ShowBg
|
|
movs r0, 0x3
|
|
bl ShowBg
|
|
movs r1, 0xFC
|
|
lsls r1, 6
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
_08150D1C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8150B6C
|
|
|
|
thumb_func_start sub_8150D28
|
|
sub_8150D28: @ 8150D28
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x28
|
|
ldr r1, =gCableCarPlayerGraphicsIDs
|
|
add r0, sp, 0xC
|
|
movs r2, 0x2
|
|
bl memcpy
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r9, r0
|
|
add r6, sp, 0x10
|
|
ldr r1, =gMtChimneyHikerGraphicsIDs
|
|
adds r0, r6, 0
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
add r5, sp, 0x14
|
|
ldr r1, =gMtChimneyHikerCoords
|
|
adds r0, r5, 0
|
|
movs r2, 0x8
|
|
bl memcpy
|
|
add r4, sp, 0x1C
|
|
ldr r1, =gMtChimneyHikerMovementDelayTable
|
|
adds r0, r4, 0
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
ldr r0, =gUnknown_085CDBF8
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x20]
|
|
str r1, [sp, 0x24]
|
|
ldr r0, =gSpecialVar_0x8004
|
|
ldrh r0, [r0]
|
|
mov r8, r6
|
|
mov r10, r5
|
|
cmp r0, 0
|
|
beq _08150D86
|
|
cmp r0, 0x1
|
|
beq _08150E68
|
|
_08150D86:
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x8]
|
|
add r0, sp
|
|
adds r0, 0xC
|
|
ldrb r0, [r0]
|
|
ldr r1, =sub_8150948
|
|
movs r2, 0x66
|
|
str r2, [sp]
|
|
movs r2, 0xC8
|
|
movs r3, 0x49
|
|
bl AddPseudoEventObject
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x40
|
|
beq _08150DD0
|
|
ldr r0, =gSprites
|
|
lsls r1, r6, 4
|
|
adds r1, r6
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
movs r2, 0x8
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x5]
|
|
movs r0, 0x8
|
|
strh r0, [r1, 0x24]
|
|
movs r0, 0x10
|
|
strh r0, [r1, 0x26]
|
|
movs r0, 0xC8
|
|
strh r0, [r1, 0x2E]
|
|
movs r0, 0x49
|
|
strh r0, [r1, 0x30]
|
|
_08150DD0:
|
|
ldr r4, =gSpriteTemplate_85CDB9C
|
|
adds r0, r4, 0
|
|
movs r1, 0xB0
|
|
movs r2, 0x2B
|
|
movs r3, 0x67
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r5, =gSprites
|
|
lsls r0, r6, 4
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0x20
|
|
strh r1, [r0, 0x26]
|
|
strh r1, [r0, 0x24]
|
|
movs r1, 0xB0
|
|
strh r1, [r0, 0x2E]
|
|
movs r1, 0x2B
|
|
strh r1, [r0, 0x30]
|
|
adds r4, 0x18
|
|
adds r0, r4, 0
|
|
movs r1, 0xC8
|
|
movs r2, 0x63
|
|
movs r3, 0x65
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r0, r6, 4
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0x8
|
|
strh r1, [r0, 0x24]
|
|
movs r1, 0x4
|
|
strh r1, [r0, 0x26]
|
|
movs r1, 0xC8
|
|
strh r1, [r0, 0x2E]
|
|
movs r1, 0x63
|
|
strh r1, [r0, 0x30]
|
|
ldr r2, =gUnknown_0203ABAC
|
|
ldr r1, [r2]
|
|
movs r0, 0x7
|
|
strb r0, [r1, 0x2]
|
|
ldr r1, [r2]
|
|
movs r0, 0xAF
|
|
lsls r0, 1
|
|
strh r0, [r1, 0x4]
|
|
movs r0, 0x2
|
|
bl sub_80AB130
|
|
b _08150F3A
|
|
.pool
|
|
_08150E68:
|
|
ldr r7, =gUnknown_0203ABAC
|
|
ldr r0, [r7]
|
|
ldr r1, =0x000040fc
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
adds r1, 0x48
|
|
movs r0, 0xC
|
|
str r0, [sp]
|
|
movs r0, 0x3
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r2, 0x18
|
|
movs r3, 0x1A
|
|
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
ldr r0, =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x8]
|
|
add r0, sp
|
|
adds r0, 0xC
|
|
ldrb r0, [r0]
|
|
ldr r1, =sub_8150948
|
|
movs r2, 0x66
|
|
str r2, [sp]
|
|
movs r2, 0x80
|
|
movs r3, 0x27
|
|
bl AddPseudoEventObject
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x40
|
|
beq _08150ED4
|
|
ldr r0, =gSprites
|
|
lsls r1, r6, 4
|
|
adds r1, r6
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldrb r2, [r1, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
movs r2, 0x8
|
|
orrs r0, r2
|
|
strb r0, [r1, 0x5]
|
|
movs r0, 0x8
|
|
strh r0, [r1, 0x24]
|
|
movs r0, 0x10
|
|
strh r0, [r1, 0x26]
|
|
movs r0, 0x80
|
|
strh r0, [r1, 0x2E]
|
|
movs r0, 0x27
|
|
strh r0, [r1, 0x30]
|
|
_08150ED4:
|
|
ldr r4, =gSpriteTemplate_85CDB9C
|
|
adds r0, r4, 0
|
|
movs r1, 0x68
|
|
movs r2, 0x9
|
|
movs r3, 0x67
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r5, =gSprites
|
|
lsls r0, r6, 4
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0x20
|
|
strh r1, [r0, 0x26]
|
|
strh r1, [r0, 0x24]
|
|
movs r1, 0x68
|
|
strh r1, [r0, 0x2E]
|
|
movs r1, 0x9
|
|
strh r1, [r0, 0x30]
|
|
adds r4, 0x18
|
|
adds r0, r4, 0
|
|
movs r1, 0x80
|
|
movs r2, 0x41
|
|
movs r3, 0x65
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r0, r6, 4
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0x8
|
|
strh r1, [r0, 0x24]
|
|
movs r1, 0x4
|
|
strh r1, [r0, 0x26]
|
|
movs r1, 0x80
|
|
strh r1, [r0, 0x2E]
|
|
movs r1, 0x41
|
|
strh r1, [r0, 0x30]
|
|
ldr r1, [r7]
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x2]
|
|
ldr r1, [r7]
|
|
ldr r0, =0x00000109
|
|
strh r0, [r1, 0x4]
|
|
movs r0, 0x7
|
|
bl sub_80AB130
|
|
_08150F3A:
|
|
movs r4, 0
|
|
ldr r5, =gSprites
|
|
_08150F3E:
|
|
lsls r1, r4, 20
|
|
movs r2, 0xC0
|
|
lsls r2, 15
|
|
adds r1, r2
|
|
asrs r1, 16
|
|
lsls r2, r4, 19
|
|
ldr r3, =0xfff80000
|
|
adds r2, r3
|
|
asrs r2, 16
|
|
ldr r0, =gSpriteTemplate_85CDBCC
|
|
movs r3, 0x68
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r0, r6, 4
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
movs r1, 0x8
|
|
strh r1, [r0, 0x24]
|
|
strh r1, [r0, 0x26]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x8
|
|
bls _08150F3E
|
|
movs r0, 0x3F
|
|
mov r4, r9
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _08151074
|
|
mov r0, r9
|
|
movs r1, 0x3
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
add r0, r8
|
|
ldrb r0, [r0]
|
|
ldr r5, =gSpecialVar_0x8004
|
|
ldrh r4, [r5]
|
|
lsls r4, 2
|
|
add r1, sp, 0x20
|
|
adds r1, r4, r1
|
|
ldr r1, [r1]
|
|
mov r3, r10
|
|
adds r2, r3, r4
|
|
movs r3, 0
|
|
ldrsh r2, [r2, r3]
|
|
mov r3, sp
|
|
adds r3, 0x16
|
|
adds r3, r4
|
|
movs r4, 0
|
|
ldrsh r3, [r3, r4]
|
|
movs r4, 0x6A
|
|
str r4, [sp]
|
|
bl AddPseudoEventObject
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x40
|
|
beq _08151074
|
|
ldr r1, =gSprites
|
|
lsls r2, r6, 4
|
|
adds r0, r2, r6
|
|
lsls r0, 2
|
|
adds r4, r0, r1
|
|
ldrb r1, [r4, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r1
|
|
movs r1, 0x8
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x5]
|
|
adds r0, r4, 0
|
|
adds r0, 0x28
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
negs r0, r0
|
|
strh r0, [r4, 0x24]
|
|
adds r0, r4, 0
|
|
adds r0, 0x29
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
negs r0, r0
|
|
strh r0, [r4, 0x26]
|
|
ldrh r0, [r5]
|
|
mov r8, r2
|
|
cmp r0, 0
|
|
bne _08151036
|
|
movs r7, 0x1
|
|
mov r5, r9
|
|
ands r5, r7
|
|
cmp r5, 0
|
|
beq _08151030
|
|
adds r0, r4, 0
|
|
movs r1, 0x6
|
|
b _08151044
|
|
.pool
|
|
_08151030:
|
|
adds r0, r4, 0
|
|
movs r1, 0x7
|
|
b _08151056
|
|
_08151036:
|
|
movs r7, 0x1
|
|
mov r5, r9
|
|
ands r5, r7
|
|
cmp r5, 0
|
|
beq _08151052
|
|
adds r0, r4, 0
|
|
movs r1, 0x7
|
|
_08151044:
|
|
bl StartSpriteAnim
|
|
strh r7, [r4, 0x30]
|
|
ldrh r0, [r4, 0x22]
|
|
adds r0, 0x2
|
|
strh r0, [r4, 0x22]
|
|
b _0815105C
|
|
_08151052:
|
|
adds r0, r4, 0
|
|
movs r1, 0x6
|
|
_08151056:
|
|
bl StartSpriteAnim
|
|
strh r5, [r4, 0x30]
|
|
_0815105C:
|
|
ldr r0, =gSprites
|
|
mov r2, r8
|
|
adds r1, r2, r6
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r0, 0x3
|
|
mov r3, r9
|
|
ands r0, r3
|
|
add r0, sp
|
|
adds r0, 0x1C
|
|
ldrb r0, [r0]
|
|
strh r0, [r1, 0x32]
|
|
_08151074:
|
|
add sp, 0x28
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8150D28
|
|
|
|
thumb_func_start sub_8151088
|
|
sub_8151088: @ 8151088
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
movs r3, 0
|
|
mov r9, r3
|
|
ldr r2, =gUnknown_0203ABAC
|
|
ldr r0, [r2]
|
|
ldrb r1, [r0, 0x1B]
|
|
adds r1, 0x2
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 26
|
|
lsrs r0, 24
|
|
mov r12, r0
|
|
_081510AA:
|
|
movs r7, 0
|
|
lsls r0, r3, 1
|
|
adds r1, r3, 0x3
|
|
adds r2, r3, 0x6
|
|
adds r4, r3, 0x1
|
|
str r4, [sp, 0x4]
|
|
adds r0, r3
|
|
lsls r0, 3
|
|
str r0, [sp]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
mov r10, r0
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
mov r8, r0
|
|
_081510CC:
|
|
ldr r0, =gUnknown_0203ABAC
|
|
ldr r6, [r0]
|
|
lsls r3, r7, 1
|
|
ldr r1, [sp]
|
|
adds r2, r3, r1
|
|
adds r4, r6, 0
|
|
adds r4, 0x22
|
|
adds r2, r4, r2
|
|
mov r1, r12
|
|
adds r0, r1, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r12, r0
|
|
ldr r0, =0x000040fc
|
|
adds r5, r6, r0
|
|
ldr r0, [r5]
|
|
lsls r1, 1
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
strh r0, [r2]
|
|
mov r1, r10
|
|
adds r2, r3, r1
|
|
adds r2, r4, r2
|
|
str r2, [sp, 0x8]
|
|
ldr r0, [r5]
|
|
mov r2, r9
|
|
lsls r1, r2, 1
|
|
adds r0, r1, r0
|
|
ldrh r0, [r0]
|
|
ldr r2, [sp, 0x8]
|
|
strh r0, [r2]
|
|
add r3, r8
|
|
adds r4, r3
|
|
ldr r0, [r5]
|
|
adds r1, r0
|
|
adds r1, 0x48
|
|
ldrh r0, [r1]
|
|
strh r0, [r4]
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0xB
|
|
bls _081510CC
|
|
ldr r4, [sp, 0x4]
|
|
lsls r0, r4, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x2
|
|
bls _081510AA
|
|
ldrb r0, [r6, 0x1B]
|
|
adds r0, 0x1
|
|
movs r1, 0x3
|
|
bl __modsi3
|
|
strb r0, [r6, 0x1B]
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8151088
|
|
|
|
thumb_func_start sub_815115C
|
|
sub_815115C: @ 815115C
|
|
push {r4,r5,lr}
|
|
ldr r5, =gUnknown_0203ABAC
|
|
ldr r4, [r5]
|
|
ldrb r0, [r4, 0x1C]
|
|
adds r0, 0x1
|
|
movs r1, 0x60
|
|
bl __modsi3
|
|
strb r0, [r4, 0x1C]
|
|
ldr r1, [r5]
|
|
ldrb r0, [r1, 0x1F]
|
|
ldrb r2, [r1, 0x1D]
|
|
subs r0, r2
|
|
strb r0, [r1, 0x8]
|
|
ldr r2, [r5]
|
|
adds r0, r2, 0
|
|
adds r0, 0x20
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r2, 0x1E]
|
|
subs r0, r1
|
|
strb r0, [r2, 0x9]
|
|
ldr r1, [r5]
|
|
ldrb r0, [r1, 0x1D]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x1D]
|
|
ldr r2, [r5]
|
|
ldrb r0, [r2, 0x1D]
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _081511A0
|
|
ldrb r0, [r2, 0x1E]
|
|
adds r0, 0x1
|
|
strb r0, [r2, 0x1E]
|
|
_081511A0:
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, 0x1D]
|
|
cmp r0, 0x10
|
|
bls _081511AC
|
|
bl sub_8151214
|
|
_081511AC:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_815115C
|
|
|
|
thumb_func_start sub_81511B8
|
|
sub_81511B8: @ 81511B8
|
|
push {r4,r5,lr}
|
|
ldr r5, =gUnknown_0203ABAC
|
|
ldr r4, [r5]
|
|
ldrb r0, [r4, 0x1C]
|
|
adds r0, 0x1
|
|
movs r1, 0x60
|
|
bl __modsi3
|
|
strb r0, [r4, 0x1C]
|
|
ldr r1, [r5]
|
|
ldrb r0, [r1, 0x1D]
|
|
ldrb r2, [r1, 0x1F]
|
|
adds r0, r2
|
|
strb r0, [r1, 0x8]
|
|
ldr r1, [r5]
|
|
adds r2, r1, 0
|
|
adds r2, 0x20
|
|
ldrb r0, [r1, 0x1E]
|
|
ldrb r2, [r2]
|
|
adds r0, r2
|
|
strb r0, [r1, 0x9]
|
|
ldr r1, [r5]
|
|
ldrb r0, [r1, 0x1D]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0x1D]
|
|
ldr r2, [r5]
|
|
ldrb r0, [r2, 0x1D]
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _081511FC
|
|
ldrb r0, [r2, 0x1E]
|
|
adds r0, 0x1
|
|
strb r0, [r2, 0x1E]
|
|
_081511FC:
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, 0x1D]
|
|
cmp r0, 0x10
|
|
bls _08151208
|
|
bl sub_8151388
|
|
_08151208:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81511B8
|
|
|
|
thumb_func_start sub_8151214
|
|
sub_8151214: @ 8151214
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
movs r7, 0
|
|
ldr r3, =gUnknown_0203ABAC
|
|
ldr r0, [r3]
|
|
strb r7, [r0, 0x1E]
|
|
strb r7, [r0, 0x1D]
|
|
ldr r1, [r3]
|
|
ldrb r0, [r1, 0x8]
|
|
strb r0, [r1, 0x1F]
|
|
ldr r0, [r3]
|
|
ldrb r1, [r0, 0x9]
|
|
adds r0, 0x20
|
|
strb r1, [r0]
|
|
ldr r4, [r3]
|
|
ldrb r1, [r4, 0x19]
|
|
adds r2, r1, 0
|
|
adds r2, 0x1E
|
|
adds r0, r2, 0
|
|
asrs r0, 5
|
|
lsls r0, 5
|
|
subs r0, r2, r0
|
|
strb r0, [r4, 0x19]
|
|
ldr r1, [r3]
|
|
ldrb r0, [r1, 0x18]
|
|
subs r0, 0x2
|
|
strb r0, [r1, 0x18]
|
|
ldr r4, =gUnknown_0203ABB2
|
|
ldr r0, [r3]
|
|
ldrb r1, [r0, 0x1A]
|
|
adds r2, r1, 0
|
|
adds r2, 0x17
|
|
adds r0, r2, 0
|
|
asrs r0, 5
|
|
lsls r0, 5
|
|
subs r0, r2, r0
|
|
strb r0, [r4]
|
|
ldr r6, =gUnknown_0203ABB0
|
|
mov r9, r3
|
|
ldr r0, =gUnknown_0203ABB1
|
|
mov r8, r0
|
|
_0815126E:
|
|
mov r1, r9
|
|
ldr r2, [r1]
|
|
ldrb r0, [r2, 0x19]
|
|
strb r0, [r6]
|
|
ldr r0, =gUnknown_0203ABB2
|
|
ldrb r0, [r0]
|
|
adds r1, r0, r7
|
|
adds r0, r1, 0
|
|
asrs r0, 5
|
|
lsls r0, 5
|
|
subs r0, r1, r0
|
|
mov r1, r8
|
|
strb r0, [r1]
|
|
ldrb r1, [r2, 0x18]
|
|
lsls r1, 1
|
|
lsls r0, r7, 1
|
|
adds r0, r7
|
|
lsls r5, r0, 3
|
|
adds r1, r5
|
|
adds r0, r2, 0
|
|
adds r0, 0x22
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
ldrb r2, [r6]
|
|
mov r0, r8
|
|
ldrb r3, [r0]
|
|
movs r4, 0x1
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
movs r0, 0x11
|
|
mov r10, r0
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r1, [r6]
|
|
adds r2, r1, 0x1
|
|
adds r0, r2, 0
|
|
asrs r0, 5
|
|
lsls r0, 5
|
|
subs r0, r2, r0
|
|
strb r0, [r6]
|
|
mov r0, r9
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, 0x18]
|
|
adds r0, 0x1
|
|
lsls r0, 1
|
|
adds r0, r5
|
|
adds r1, 0x22
|
|
adds r1, r0
|
|
ldrh r1, [r1]
|
|
ldrb r2, [r6]
|
|
mov r0, r8
|
|
ldrb r3, [r0]
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
mov r0, r10
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
bl FillBgTilemapBufferRect
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x8
|
|
bls _0815126E
|
|
ldr r5, =gUnknown_0203ABB0
|
|
ldr r4, =gUnknown_0203ABAC
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, 0x19]
|
|
adds r2, r1, 0
|
|
adds r2, 0x1E
|
|
adds r0, r2, 0
|
|
asrs r0, 5
|
|
lsls r0, 5
|
|
subs r0, r2, r0
|
|
strb r0, [r5]
|
|
ldrb r2, [r5]
|
|
movs r0, 0x2
|
|
str r0, [sp]
|
|
movs r6, 0x20
|
|
str r6, [sp, 0x4]
|
|
movs r0, 0x11
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect
|
|
ldr r1, [r4]
|
|
ldrb r0, [r1, 0x18]
|
|
cmp r0, 0
|
|
bne _08151368
|
|
ldrb r2, [r1, 0x1A]
|
|
adds r3, r2, 0
|
|
adds r3, 0x1D
|
|
adds r0, r3, 0
|
|
asrs r0, 5
|
|
lsls r0, 5
|
|
subs r0, r3, r0
|
|
strb r0, [r1, 0x1A]
|
|
ldr r1, [r4]
|
|
movs r0, 0xC
|
|
strb r0, [r1, 0x18]
|
|
bl sub_8151088
|
|
ldr r0, [r4]
|
|
ldrb r1, [r0, 0x1A]
|
|
adds r2, r1, 0x1
|
|
adds r0, r2, 0
|
|
asrs r0, 5
|
|
lsls r0, 5
|
|
subs r0, r2, r0
|
|
strb r0, [r5]
|
|
ldrb r3, [r5]
|
|
str r6, [sp]
|
|
movs r0, 0x9
|
|
str r0, [sp, 0x4]
|
|
mov r1, r10
|
|
str r1, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl FillBgTilemapBufferRect
|
|
_08151368:
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8151214
|
|
|
|
thumb_func_start sub_8151388
|
|
sub_8151388: @ 8151388
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
movs r7, 0
|
|
ldr r2, =gUnknown_0203ABAC
|
|
ldr r0, [r2]
|
|
strb r7, [r0, 0x1E]
|
|
strb r7, [r0, 0x1D]
|
|
ldr r1, [r2]
|
|
ldrb r0, [r1, 0x8]
|
|
strb r0, [r1, 0x1F]
|
|
ldr r0, [r2]
|
|
ldrb r1, [r0, 0x9]
|
|
adds r0, 0x20
|
|
strb r1, [r0]
|
|
ldr r4, [r2]
|
|
ldrb r1, [r4, 0x19]
|
|
adds r3, r1, 0x2
|
|
adds r0, r3, 0
|
|
asrs r0, 5
|
|
lsls r0, 5
|
|
subs r0, r3, r0
|
|
strb r0, [r4, 0x19]
|
|
ldr r1, [r2]
|
|
ldrb r0, [r1, 0x18]
|
|
adds r0, 0x2
|
|
strb r0, [r1, 0x18]
|
|
ldr r1, =gUnknown_0203ABB5
|
|
ldr r0, [r2]
|
|
ldrb r0, [r0, 0x1A]
|
|
strb r0, [r1]
|
|
ldr r6, =gUnknown_0203ABB3
|
|
mov r10, r2
|
|
ldr r0, =gUnknown_0203ABB4
|
|
mov r9, r0
|
|
_081513D4:
|
|
mov r1, r10
|
|
ldr r2, [r1]
|
|
ldrb r0, [r2, 0x19]
|
|
strb r0, [r6]
|
|
ldr r0, =gUnknown_0203ABB5
|
|
ldrb r0, [r0]
|
|
adds r1, r0, r7
|
|
adds r0, r1, 0
|
|
asrs r0, 5
|
|
lsls r0, 5
|
|
subs r0, r1, r0
|
|
mov r1, r9
|
|
strb r0, [r1]
|
|
ldrb r1, [r2, 0x18]
|
|
lsls r1, 1
|
|
lsls r0, r7, 1
|
|
adds r0, r7
|
|
lsls r5, r0, 3
|
|
adds r1, r5
|
|
adds r0, r2, 0
|
|
adds r0, 0x22
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
ldrb r2, [r6]
|
|
mov r0, r9
|
|
ldrb r3, [r0]
|
|
movs r4, 0x1
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
movs r0, 0x11
|
|
mov r8, r0
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
bl FillBgTilemapBufferRect
|
|
ldrb r1, [r6]
|
|
adds r2, r1, 0x1
|
|
adds r0, r2, 0
|
|
asrs r0, 5
|
|
lsls r0, 5
|
|
subs r0, r2, r0
|
|
strb r0, [r6]
|
|
mov r0, r10
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, 0x18]
|
|
adds r0, 0x1
|
|
lsls r0, 1
|
|
adds r0, r5
|
|
adds r1, 0x22
|
|
adds r1, r0
|
|
ldrh r1, [r1]
|
|
ldrb r2, [r6]
|
|
mov r0, r9
|
|
ldrb r3, [r0]
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
mov r0, r8
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
bl FillBgTilemapBufferRect
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x8
|
|
bls _081513D4
|
|
ldr r4, =gUnknown_0203ABB4
|
|
ldr r5, =gUnknown_0203ABAC
|
|
ldr r3, [r5]
|
|
ldrb r1, [r3, 0x1A]
|
|
adds r2, r1, 0
|
|
adds r2, 0x17
|
|
adds r0, r2, 0
|
|
asrs r0, 5
|
|
lsls r0, 5
|
|
subs r0, r2, r0
|
|
strb r0, [r4]
|
|
ldrb r2, [r3, 0x19]
|
|
ldrb r3, [r4]
|
|
movs r0, 0x2
|
|
str r0, [sp]
|
|
movs r0, 0x9
|
|
str r0, [sp, 0x4]
|
|
mov r1, r8
|
|
str r1, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl FillBgTilemapBufferRect
|
|
ldr r1, [r5]
|
|
ldrb r0, [r1, 0x18]
|
|
cmp r0, 0xA
|
|
bne _081514A6
|
|
ldrb r2, [r1, 0x1A]
|
|
adds r3, r2, 0x3
|
|
adds r0, r3, 0
|
|
asrs r0, 5
|
|
lsls r0, 5
|
|
subs r0, r3, r0
|
|
strb r0, [r1, 0x1A]
|
|
ldr r1, [r5]
|
|
movs r0, 0xFE
|
|
strb r0, [r1, 0x18]
|
|
bl sub_8151088
|
|
_081514A6:
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_8151388
|
|
|
|
thumb_func_start sub_81514C8
|
|
sub_81514C8: @ 81514C8
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _081514D6
|
|
cmp r0, 0x1
|
|
beq _08151500
|
|
_081514D6:
|
|
ldr r1, =gUnknown_0203ABAC
|
|
ldr r2, [r1]
|
|
movs r3, 0
|
|
movs r0, 0x2
|
|
strb r0, [r2, 0x1B]
|
|
ldr r0, [r1]
|
|
strb r3, [r0, 0x19]
|
|
ldr r2, [r1]
|
|
movs r0, 0x14
|
|
strb r0, [r2, 0x1A]
|
|
ldr r1, [r1]
|
|
movs r0, 0xC
|
|
strb r0, [r1, 0x18]
|
|
bl sub_8151088
|
|
bl sub_8151214
|
|
b _08151522
|
|
.pool
|
|
_08151500:
|
|
ldr r1, =gUnknown_0203ABAC
|
|
ldr r2, [r1]
|
|
movs r0, 0x2
|
|
strb r0, [r2, 0x1B]
|
|
ldr r2, [r1]
|
|
movs r0, 0x1C
|
|
strb r0, [r2, 0x19]
|
|
ldr r2, [r1]
|
|
movs r0, 0x14
|
|
strb r0, [r2, 0x1A]
|
|
ldr r1, [r1]
|
|
movs r0, 0x4
|
|
strb r0, [r1, 0x18]
|
|
bl sub_8151088
|
|
bl sub_8151388
|
|
_08151522:
|
|
ldr r0, =gUnknown_0203ABAC
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
strb r0, [r1, 0x1C]
|
|
pop {r0}
|
|
bx r0
|
|
.pool
|
|
thumb_func_end sub_81514C8
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|