diff options
author | YamaArashi <shadow962@live.com> | 2016-12-30 13:11:16 -0800 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-12-30 13:12:35 -0800 |
commit | 8f18812cfded3711d0fc1c6d08ac25b655be5f9e (patch) | |
tree | 85f03da1f3309af15219277d4b16db0442c1661e | |
parent | 9e5c4ef564135e098d7d89c3a980e4077a03b9f8 (diff) |
split out pokeblock feeding code
-rw-r--r-- | asm/pokeblock_feed.s | 1836 | ||||
-rw-r--r-- | asm/rom_81473B8.s | 1827 | ||||
-rw-r--r-- | ld_script.txt | 1 |
3 files changed, 1837 insertions, 1827 deletions
diff --git a/asm/pokeblock_feed.s b/asm/pokeblock_feed.s new file mode 100644 index 000000000..fafc452a3 --- /dev/null +++ b/asm/pokeblock_feed.s @@ -0,0 +1,1836 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_8147890 +sub_8147890: @ 8147890 + push {lr} + bl AnimateSprites + bl BuildOamBuffer + bl RunTasks + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_8147890 + + thumb_func_start sub_81478A8 +sub_81478A8: @ 81478A8 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_81478A8 + + thumb_func_start sub_81478BC +sub_81478BC: @ 81478BC + push {r4,lr} + sub sp, 0x4 + ldr r0, _081478D8 @ =gMain + ldr r1, _081478DC @ =0x0000043c + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0xD + bls _081478CE + b _08147AD0 +_081478CE: + lsls r0, 2 + ldr r1, _081478E0 @ =_081478E4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081478D8: .4byte gMain +_081478DC: .4byte 0x0000043c +_081478E0: .4byte _081478E4 + .align 2, 0 +_081478E4: + .4byte _0814791C + .4byte _08147938 + .4byte _0814794C + .4byte _08147960 + .4byte _08147966 + .4byte _08147980 + .4byte _0814798C + .4byte _081479B8 + .4byte _081479DC + .4byte _081479F4 + .4byte _08147A20 + .4byte _08147A3C + .4byte _08147A5C + .4byte _08147A8C +_0814791C: + bl sub_80F9438 + bl sub_80F9368 + bl sub_8147B04 + ldr r1, _08147930 @ =gMain + ldr r2, _08147934 @ =0x0000043c + adds r1, r2 + b _08147A4A + .align 2, 0 +_08147930: .4byte gMain +_08147934: .4byte 0x0000043c +_08147938: + bl ResetPaletteFade + ldr r2, _08147948 @ =gPaletteFade + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + b _08147A44 + .align 2, 0 +_08147948: .4byte gPaletteFade +_0814794C: + bl ResetSpriteData + ldr r1, _08147958 @ =gMain + ldr r2, _0814795C @ =0x0000043c + adds r1, r2 + b _08147A4A + .align 2, 0 +_08147958: .4byte gMain +_0814795C: .4byte 0x0000043c +_08147960: + bl FreeAllSpritePalettes + b _08147A44 +_08147966: + ldr r0, _08147974 @ =gWindowConfig_81E6E50 + bl SetUpWindowConfig + ldr r1, _08147978 @ =gMain + ldr r2, _0814797C @ =0x0000043c + adds r1, r2 + b _08147A4A + .align 2, 0 +_08147974: .4byte gWindowConfig_81E6E50 +_08147978: .4byte gMain +_0814797C: .4byte 0x0000043c +_08147980: + ldr r0, _08147988 @ =gWindowConfig_81E6E50 + bl MultistepInitMenuWindowBegin + b _08147A44 + .align 2, 0 +_08147988: .4byte gWindowConfig_81E6E50 +_0814798C: + bl MultistepInitMenuWindowContinue + cmp r0, 0 + bne _08147996 + b _08147AD0 +_08147996: + ldr r0, _081479A8 @ =0x02000000 + ldr r1, _081479AC @ =0x0001ffff + adds r0, r1 + movs r1, 0 + strb r1, [r0] + ldr r1, _081479B0 @ =gMain + ldr r2, _081479B4 @ =0x0000043c + adds r1, r2 + b _08147A4A + .align 2, 0 +_081479A8: .4byte 0x02000000 +_081479AC: .4byte 0x0001ffff +_081479B0: .4byte gMain +_081479B4: .4byte 0x0000043c +_081479B8: + ldr r0, _081479D4 @ =gUnknown_02039310 + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _081479D8 @ =gPlayerParty + adds r0, r1 + bl sub_8147B20 + lsls r0, 24 + cmp r0, 0 + bne _081479D0 + b _08147AD0 +_081479D0: + b _08147A44 + .align 2, 0 +_081479D4: .4byte gUnknown_02039310 +_081479D8: .4byte gPlayerParty +_081479DC: + bl sub_81480B4 + ldr r1, _081479EC @ =0x02000000 + ldr r2, _081479F0 @ =0x0001fffd + adds r1, r2 + strb r0, [r1] + b _08147A44 + .align 2, 0 +_081479EC: .4byte 0x02000000 +_081479F0: .4byte 0x0001fffd +_081479F4: + ldr r0, _08147A10 @ =gUnknown_02039310 + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08147A14 @ =gPlayerParty + adds r0, r1 + bl sub_8147F84 + ldr r1, _08147A18 @ =0x02000000 + ldr r2, _08147A1C @ =0x0001fffe + adds r1, r2 + strb r0, [r1] + b _08147A44 + .align 2, 0 +_08147A10: .4byte gUnknown_02039310 +_08147A14: .4byte gPlayerParty +_08147A18: .4byte 0x02000000 +_08147A1C: .4byte 0x0001fffe +_08147A20: + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r1, _08147A34 @ =gMain + ldr r2, _08147A38 @ =0x0000043c + adds r1, r2 + b _08147A4A + .align 2, 0 +_08147A34: .4byte gMain +_08147A38: .4byte 0x0000043c +_08147A3C: + bl sub_8055870 + cmp r0, 0x1 + beq _08147AD0 +_08147A44: + ldr r1, _08147A54 @ =gMain + ldr r0, _08147A58 @ =0x0000043c + adds r1, r0 +_08147A4A: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08147AD0 + .align 2, 0 +_08147A54: .4byte gMain +_08147A58: .4byte 0x0000043c +_08147A5C: + ldr r3, _08147AB0 @ =0x04000208 + ldrh r2, [r3] + movs r0, 0 + strh r0, [r3] + ldr r4, _08147AB4 @ =0x04000200 + ldrh r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r2, _08147AB8 @ =REG_DISPSTAT + ldrh r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strh r0, [r2] + ldr r0, _08147ABC @ =sub_81478A8 + bl SetVBlankCallback + ldr r1, _08147AC0 @ =gMain + ldr r2, _08147AC4 @ =0x0000043c + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_08147A8C: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r2, _08147AC8 @ =gPaletteFade + ldrb r1, [r2, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2, 0x8] + ldr r0, _08147ACC @ =sub_8147890 + bl SetMainCallback2 + movs r0, 0x1 + b _08147AD2 + .align 2, 0 +_08147AB0: .4byte 0x04000208 +_08147AB4: .4byte 0x04000200 +_08147AB8: .4byte REG_DISPSTAT +_08147ABC: .4byte sub_81478A8 +_08147AC0: .4byte gMain +_08147AC4: .4byte 0x0000043c +_08147AC8: .4byte gPaletteFade +_08147ACC: .4byte sub_8147890 +_08147AD0: + movs r0, 0 +_08147AD2: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81478BC + + thumb_func_start sub_8147ADC +sub_8147ADC: @ 8147ADC + push {lr} +_08147ADE: + bl sub_81478BC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08147AF2 + movs r0, 0x1 + bl sub_8147DDC + b _08147AFE +_08147AF2: + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08147ADE +_08147AFE: + pop {r0} + bx r0 + thumb_func_end sub_8147ADC + + thumb_func_start sub_8147B04 +sub_8147B04: @ 8147B04 + ldr r1, _08147B18 @ =REG_BG1CNT + ldr r2, _08147B1C @ =0x00001d02 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0xA + movs r2, 0x9A + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + bx lr + .align 2, 0 +_08147B18: .4byte REG_BG1CNT +_08147B1C: .4byte 0x00001d02 + thumb_func_end sub_8147B04 + + thumb_func_start sub_8147B20 +sub_8147B20: @ 8147B20 + push {r4-r6,lr} + sub sp, 0xC + adds r4, r0, 0 + ldr r0, _08147B40 @ =0x02000000 + ldr r1, _08147B44 @ =0x0001ffff + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x8 + bls _08147B34 + b _08147C84 +_08147B34: + lsls r0, 2 + ldr r1, _08147B48 @ =_08147B4C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08147B40: .4byte 0x02000000 +_08147B44: .4byte 0x0001ffff +_08147B48: .4byte _08147B4C + .align 2, 0 +_08147B4C: + .4byte _08147B70 + .4byte _08147BB8 + .4byte _08147BF0 + .4byte _08147BFC + .4byte _08147C08 + .4byte _08147C14 + .4byte _08147C2C + .4byte _08147C38 + .4byte _08147C60 +_08147B70: + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + adds r6, r0, 0 + lsls r0, r5, 3 + ldr r1, _08147BAC @ =gMonFrontPicTable + adds r0, r1 + ldr r1, _08147BB0 @ =gMonFrontPicCoords + lsls r2, r5, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r4, _08147BB4 @ =gUnknown_081FAF4C + ldr r4, [r4, 0x4] + str r4, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + bl sub_800D334 + b _08147C40 + .align 2, 0 +_08147BAC: .4byte gMonFrontPicTable +_08147BB0: .4byte gMonFrontPicCoords +_08147BB4: .4byte gUnknown_081FAF4C +_08147BB8: + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + adds r6, r0, 0 + adds r0, r4, 0 + movs r1, 0x1 + bl GetMonData + adds r1, r0, 0 + adds r0, r5, 0 + adds r2, r6, 0 + bl sub_80409C8 + adds r4, r0, 0 + bl LoadCompressedObjectPalette + ldrh r0, [r4, 0x4] + movs r1, 0x1 + bl GetMonSpriteTemplate_803C56C + b _08147C40 +_08147BF0: + ldr r0, _08147BF8 @ =gUnknown_083F7F74 + bl LoadCompressedObjectPic + b _08147C40 + .align 2, 0 +_08147BF8: .4byte gUnknown_083F7F74 +_08147BFC: + ldr r0, _08147C04 @ =gUnknown_083F7F7C + bl LoadCompressedObjectPalette + b _08147C40 + .align 2, 0 +_08147C04: .4byte gUnknown_083F7F7C +_08147C08: + ldr r0, _08147C10 @ =gUnknown_084121DC + bl LoadCompressedObjectPic + b _08147C40 + .align 2, 0 +_08147C10: .4byte gUnknown_084121DC +_08147C14: + ldr r0, _08147C24 @ =gScriptItemId + ldrb r0, [r0] + bl sub_8147C90 + ldr r0, _08147C28 @ =gUnknown_02039350 + bl LoadCompressedObjectPalette + b _08147C40 + .align 2, 0 +_08147C24: .4byte gScriptItemId +_08147C28: .4byte gUnknown_02039350 +_08147C2C: + ldr r0, _08147C34 @ =gBattleTerrainTiles_Building + movs r1, 0xC0 + lsls r1, 19 + b _08147C3C + .align 2, 0 +_08147C34: .4byte gBattleTerrainTiles_Building +_08147C38: + ldr r0, _08147C50 @ =gUnknown_08E782FC + ldr r1, _08147C54 @ =0x0600e800 +_08147C3C: + bl LZDecompressVram +_08147C40: + ldr r1, _08147C58 @ =0x02000000 + ldr r0, _08147C5C @ =0x0001ffff + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08147C84 + .align 2, 0 +_08147C50: .4byte gUnknown_08E782FC +_08147C54: .4byte 0x0600e800 +_08147C58: .4byte 0x02000000 +_08147C5C: .4byte 0x0001ffff +_08147C60: + ldr r0, _08147C78 @ =gBattleTerrainPalette_BattleTower + movs r1, 0x20 + movs r2, 0x60 + bl LoadCompressedPalette + ldr r0, _08147C7C @ =0x02000000 + ldr r1, _08147C80 @ =0x0001ffff + adds r0, r1 + movs r1, 0 + strb r1, [r0] + movs r0, 0x1 + b _08147C86 + .align 2, 0 +_08147C78: .4byte gBattleTerrainPalette_BattleTower +_08147C7C: .4byte 0x02000000 +_08147C80: .4byte 0x0001ffff +_08147C84: + movs r0, 0 +_08147C86: + add sp, 0xC + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8147B20 + + thumb_func_start sub_8147C90 +sub_8147C90: @ 8147C90 + push {lr} + lsls r0, 24 + lsrs r0, 21 + ldr r1, _08147CB8 @ =gSaveBlock1 + 0x7F8 + adds r0, r1 + movs r1, 0 + bl sub_810CA9C + lsls r0, 24 + ldr r2, _08147CBC @ =gUnknown_02039350 + ldr r1, _08147CC0 @ =gUnknown_084120A4 + lsrs r0, 22 + subs r0, 0x4 + adds r0, r1 + ldr r0, [r0] + str r0, [r2] + ldr r0, _08147CC4 @ =0x000039e2 + strh r0, [r2, 0x4] + pop {r0} + bx r0 + .align 2, 0 +_08147CB8: .4byte gSaveBlock1 + 0x7F8 +_08147CBC: .4byte gUnknown_02039350 +_08147CC0: .4byte gUnknown_084120A4 +_08147CC4: .4byte 0x000039e2 + thumb_func_end sub_8147C90 + + thumb_func_start sub_8147CC8 +sub_8147CC8: @ 8147CC8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08147D00 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08147CDC + b _08147DCE +_08147CDC: + ldr r0, _08147D04 @ =gTasks + lsls r2, r4, 2 + adds r1, r2, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0x8 + ldrsh r3, [r1, r0] + ldr r0, _08147D08 @ =0x0000010d + adds r5, r2, 0 + cmp r3, r0 + beq _08147D50 + cmp r3, r0 + bgt _08147D0C + cmp r3, 0 + beq _08147D20 + cmp r3, 0xFF + beq _08147D38 + b _08147D8C + .align 2, 0 +_08147D00: .4byte gPaletteFade +_08147D04: .4byte gTasks +_08147D08: .4byte 0x0000010d +_08147D0C: + ldr r0, _08147D1C @ =0x00000119 + cmp r3, r0 + beq _08147D68 + adds r0, 0x10 + cmp r3, r0 + beq _08147D80 + b _08147D8C + .align 2, 0 +_08147D1C: .4byte 0x00000119 +_08147D20: + ldr r0, _08147D30 @ =gUnknown_03005F3C + strb r3, [r0] + ldr r0, _08147D34 @ =gUnknown_03005F94 + strh r3, [r0] + bl sub_81481DC + b _08147D8C + .align 2, 0 +_08147D30: .4byte gUnknown_03005F3C +_08147D34: .4byte gUnknown_03005F94 +_08147D38: + ldr r0, _08147D48 @ =0x02000000 + ldr r2, _08147D4C @ =0x0001fffd + adds r0, r2 + ldrb r0, [r0] + ldrb r1, [r1, 0xA] + bl sub_8148108 + b _08147D8C + .align 2, 0 +_08147D48: .4byte 0x02000000 +_08147D4C: .4byte 0x0001fffd +_08147D50: + bl sub_814817C + ldr r1, _08147D60 @ =0x02000000 + ldr r2, _08147D64 @ =0x0001fffc + adds r1, r2 + strb r0, [r1] + b _08147D8C + .align 2, 0 +_08147D60: .4byte 0x02000000 +_08147D64: .4byte 0x0001fffc +_08147D68: + ldr r0, _08147D78 @ =0x02000000 + ldr r1, _08147D7C @ =0x0001fffe + adds r0, r1 + ldrb r0, [r0] + bl sub_8148044 + b _08147D8C + .align 2, 0 +_08147D78: .4byte 0x02000000 +_08147D7C: .4byte 0x0001fffe +_08147D80: + ldr r0, _08147D88 @ =sub_8147E40 + str r0, [r1] + b _08147DCE + .align 2, 0 +_08147D88: .4byte sub_8147E40 +_08147D8C: + ldr r0, _08147DA0 @ =gUnknown_03005F94 + ldr r1, _08147DA4 @ =gUnknown_03005F34 + ldrh r2, [r0] + ldrh r0, [r1] + cmp r2, r0 + bcs _08147DA8 + bl sub_814825C + b _08147DB8 + .align 2, 0 +_08147DA0: .4byte gUnknown_03005F94 +_08147DA4: .4byte gUnknown_03005F34 +_08147DA8: + cmp r2, r0 + bne _08147DB8 + ldr r0, _08147DD4 @ =gTasks + adds r1, r5, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0xFE + strh r0, [r1, 0x8] +_08147DB8: + ldr r1, _08147DD8 @ =gUnknown_03005F94 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + ldr r0, _08147DD4 @ =gTasks + adds r1, r5, r4 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_08147DCE: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08147DD4: .4byte gTasks +_08147DD8: .4byte gUnknown_03005F94 + thumb_func_end sub_8147CC8 + + thumb_func_start sub_8147DDC +sub_8147DDC: @ 8147DDC + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _08147E08 @ =sub_8147CC8 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08147E0C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0x8] + strh r4, [r1, 0xA] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08147E08: .4byte sub_8147CC8 +_08147E0C: .4byte gTasks + thumb_func_end sub_8147DDC + + thumb_func_start sub_8147E10 +sub_8147E10: @ 8147E10 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl MenuUpdateWindowText + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08147E30 + ldr r0, _08147E38 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _08147E3C @ =sub_8147F4C + str r0, [r1] +_08147E30: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08147E38: .4byte gTasks +_08147E3C: .4byte sub_8147F4C + thumb_func_end sub_8147E10 + + thumb_func_start sub_8147E40 +sub_8147E40: @ 8147E40 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _08147E94 @ =gUnknown_02039310 + ldrb r1, [r0] + movs r0, 0x64 + adds r5, r1, 0 + muls r5, r0 + ldr r0, _08147E98 @ =gPlayerParty + adds r5, r0 + ldr r0, _08147E9C @ =gScriptItemId + ldrh r4, [r0] + lsls r4, 3 + ldr r0, _08147EA0 @ =gSaveBlock1 + 0x7F8 + adds r4, r0 + adds r0, r5, 0 + bl GetNature + lsls r0, 24 + lsrs r0, 24 + adds r1, r4, 0 + bl sub_810CAE4 + ldr r6, _08147EA4 @ =gUnknown_02039312 + strh r0, [r6] + ldr r1, _08147EA8 @ =gStringVar1 + adds r0, r5, 0 + bl GetMonNickname + ldr r1, _08147EAC @ =gStringVar2 + adds r0, r4, 0 + bl sub_810CB44 + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _08147EB8 + ldr r0, _08147EB0 @ =gStringVar4 + ldr r1, _08147EB4 @ =gContestStatsText_NormallyAte + bl StringExpandPlaceholders + b _08147ED8 + .align 2, 0 +_08147E94: .4byte gUnknown_02039310 +_08147E98: .4byte gPlayerParty +_08147E9C: .4byte gScriptItemId +_08147EA0: .4byte gSaveBlock1 + 0x7F8 +_08147EA4: .4byte gUnknown_02039312 +_08147EA8: .4byte gStringVar1 +_08147EAC: .4byte gStringVar2 +_08147EB0: .4byte gStringVar4 +_08147EB4: .4byte gContestStatsText_NormallyAte +_08147EB8: + cmp r0, 0 + ble _08147ED0 + ldr r0, _08147EC8 @ =gStringVar4 + ldr r1, _08147ECC @ =gContestStatsText_HappilyAte + bl StringExpandPlaceholders + b _08147ED8 + .align 2, 0 +_08147EC8: .4byte gStringVar4 +_08147ECC: .4byte gContestStatsText_HappilyAte +_08147ED0: + ldr r0, _08147EF8 @ =gStringVar4 + ldr r1, _08147EFC @ =gContestStatsText_DisdainfullyAte + bl StringExpandPlaceholders +_08147ED8: + ldr r0, _08147EF8 @ =gStringVar4 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrintMessage + ldr r1, _08147F00 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldr r1, _08147F04 @ =sub_8147E10 + str r1, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08147EF8: .4byte gStringVar4 +_08147EFC: .4byte gContestStatsText_DisdainfullyAte +_08147F00: .4byte gTasks +_08147F04: .4byte sub_8147E10 + thumb_func_end sub_8147E40 + + thumb_func_start sub_8147F08 +sub_8147F08: @ 8147F08 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08147F3C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08147F34 + ldr r0, _08147F40 @ =gMPlay_BGM + ldr r1, _08147F44 @ =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl + ldr r0, _08147F48 @ =gMain + ldr r0, [r0, 0x8] + bl SetMainCallback2 + adds r0, r4, 0 + bl DestroyTask +_08147F34: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08147F3C: .4byte gPaletteFade +_08147F40: .4byte gMPlay_BGM +_08147F44: .4byte 0x0000ffff +_08147F48: .4byte gMain + thumb_func_end sub_8147F08 + + thumb_func_start sub_8147F4C +sub_8147F4C: @ 8147F4C + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _08147F7C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08147F80 @ =sub_8147F08 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08147F7C: .4byte gTasks +_08147F80: .4byte sub_8147F08 + thumb_func_end sub_8147F4C + + thumb_func_start sub_8147F84 +sub_8147F84: @ 8147F84 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r5, r0, 0 + movs r1, 0x41 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _08148024 @ =gUnknown_02024E8C + movs r1, 0x30 + movs r2, 0x50 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, _08148028 @ =gUnknown_03005F24 + strh r4, [r0] + ldr r0, _0814802C @ =gUnknown_03005F2C + mov r1, r8 + strb r1, [r0] + adds r0, r5, 0 + bl GetNature + ldr r1, _08148030 @ =gUnknown_03005F30 + strb r0, [r1] + ldr r7, _08148034 @ =gSprites + mov r1, r8 + lsls r0, r1, 4 + add r0, r8 + lsls r5, r0, 2 + adds r6, r5, r7 + strh r4, [r6, 0x32] + adds r0, r7, 0 + adds r0, 0x1C + adds r0, r5, r0 + ldr r1, _08148038 @ =SpriteCallbackDummy + str r1, [r0] + ldr r0, _0814803C @ =gUnknown_03005F28 + mov r9, r0 + movs r0, 0x1 + mov r1, r9 + strb r0, [r1] + adds r0, r4, 0 + bl sub_8040A3C + lsls r0, 24 + cmp r0, 0 + bne _08148016 + adds r0, r7, 0 + adds r0, 0x10 + adds r0, r5, r0 + ldr r1, _08148040 @ =gSpriteAffineAnimTable_84120EC + str r1, [r0] + ldrb r3, [r6, 0x1] + movs r0, 0x3 + orrs r3, r0 + strb r3, [r6, 0x1] + lsrs r1, r3, 6 + ldrb r2, [r6, 0x3] + lsrs r2, 6 + lsls r3, 30 + lsrs r3, 30 + adds r0, r6, 0 + bl CalcCenterToCornerVec + movs r0, 0 + mov r1, r9 + strb r0, [r1] +_08148016: + mov r0, r8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08148024: .4byte gUnknown_02024E8C +_08148028: .4byte gUnknown_03005F24 +_0814802C: .4byte gUnknown_03005F2C +_08148030: .4byte gUnknown_03005F30 +_08148034: .4byte gSprites +_08148038: .4byte SpriteCallbackDummy +_0814803C: .4byte gUnknown_03005F28 +_08148040: .4byte gSpriteAffineAnimTable_84120EC + thumb_func_end sub_8147F84 + + thumb_func_start sub_8148044 +sub_8148044: @ 8148044 + lsls r0, 24 + lsrs r0, 24 + ldr r3, _0814806C @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r2, r1, r3 + movs r0, 0x30 + strh r0, [r2, 0x20] + movs r0, 0x50 + strh r0, [r2, 0x22] + ldr r0, _08148070 @ =0x0000fff8 + strh r0, [r2, 0x2E] + movs r0, 0x1 + strh r0, [r2, 0x30] + adds r3, 0x1C + adds r1, r3 + ldr r0, _08148074 @ =sub_8148078 + str r0, [r1] + bx lr + .align 2, 0 +_0814806C: .4byte gSprites +_08148070: .4byte 0x0000fff8 +_08148074: .4byte sub_8148078 + thumb_func_end sub_8148044 + + thumb_func_start sub_8148078 +sub_8148078: @ 8148078 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x20] + adds r0, 0x4 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x2E] + ldrh r2, [r4, 0x22] + adds r1, r0, r2 + strh r1, [r4, 0x22] + ldrh r1, [r4, 0x30] + adds r0, r1 + strh r0, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bne _0814809E + ldrh r0, [r4, 0x32] + movs r1, 0 + bl PlayCry1 +_0814809E: + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x9 + bne _081480AA + ldr r0, _081480B0 @ =SpriteCallbackDummy + str r0, [r4, 0x1C] +_081480AA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081480B0: .4byte SpriteCallbackDummy + thumb_func_end sub_8148078 + + thumb_func_start sub_81480B4 +sub_81480B4: @ 81480B4 + push {r4,r5,lr} + movs r0, 0xBC + movs r1, 0x64 + movs r2, 0x2 + bl sub_810BA50 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _081480FC @ =gSprites + lsls r3, r4, 4 + adds r3, r4 + lsls r3, 2 + adds r0, r3, r5 + ldrb r2, [r0, 0x1] + movs r1, 0x4 + negs r1, r1 + ands r1, r2 + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0, 0x1] + adds r1, r5, 0 + adds r1, 0x10 + adds r1, r3, r1 + ldr r2, _08148100 @ =gSpriteAffineAnimTable_84121A0 + str r2, [r1] + adds r5, 0x1C + adds r3, r5 + ldr r1, _08148104 @ =SpriteCallbackDummy + str r1, [r3] + bl InitSpriteAffineAnim + adds r0, r4, 0 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_081480FC: .4byte gSprites +_08148100: .4byte gSpriteAffineAnimTable_84121A0 +_08148104: .4byte SpriteCallbackDummy + thumb_func_end sub_81480B4 + + thumb_func_start sub_8148108 +sub_8148108: @ 8148108 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r1, 0 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r5, 24 + lsrs r5, 24 + ldr r0, _08148148 @ =gSprites + mov r8, r0 + lsls r0, r7, 4 + adds r0, r7 + lsls r6, r0, 2 + mov r0, r8 + adds r4, r6, r0 + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldrb r0, [r4, 0x1] + movs r1, 0x3 + orrs r0, r1 + strb r0, [r4, 0x1] + cmp r5, 0 + bne _08148150 + mov r0, r8 + adds r0, 0x10 + adds r0, r6, r0 + ldr r1, _0814814C @ =gSpriteAffineAnimTable_84121A4 + b _08148158 + .align 2, 0 +_08148148: .4byte gSprites +_0814814C: .4byte gSpriteAffineAnimTable_84121A4 +_08148150: + mov r0, r8 + adds r0, 0x10 + adds r0, r6, r0 + ldr r1, _08148174 @ =gSpriteAffineAnimTable_84121A8 +_08148158: + str r1, [r0] + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + ldr r1, _08148178 @ =gSprites + adds r0, r1 + bl InitSpriteAffineAnim + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08148174: .4byte gSpriteAffineAnimTable_84121A8 +_08148178: .4byte gSprites + thumb_func_end sub_8148108 + + thumb_func_start sub_814817C +sub_814817C: @ 814817C + push {lr} + ldr r0, _081481A4 @ =gSpriteTemplate_84121E4 + movs r1, 0xAE + movs r2, 0x54 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r2, _081481A8 @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldr r2, _081481AC @ =0x0000fff4 + strh r2, [r1, 0x2E] + movs r2, 0x1 + strh r2, [r1, 0x30] + pop {r1} + bx r1 + .align 2, 0 +_081481A4: .4byte gSpriteTemplate_84121E4 +_081481A8: .4byte gSprites +_081481AC: .4byte 0x0000fff4 + thumb_func_end sub_814817C + + thumb_func_start sub_81481B0 +sub_81481B0: @ 81481B0 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x20] + subs r0, 0x4 + strh r0, [r2, 0x20] + ldrh r0, [r2, 0x2E] + ldrh r3, [r2, 0x22] + adds r1, r0, r3 + strh r1, [r2, 0x22] + ldrh r1, [r2, 0x30] + adds r0, r1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bne _081481D6 + adds r0, r2, 0 + bl DestroySprite +_081481D6: + pop {r0} + bx r0 + thumb_func_end sub_81481B0 + + thumb_func_start sub_81481DC +sub_81481DC: @ 81481DC + push {r4-r7,lr} + ldr r6, _0814824C @ =gUnknown_03005F34 + movs r0, 0x1 + strh r0, [r6] + ldr r1, _08148250 @ =gNatureToMonPokeblockAnim + ldr r0, _08148254 @ =gUnknown_03005F30 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrb r3, [r0] + movs r4, 0 + ldr r2, _08148258 @ =gMonPokeblockAnims + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 2 + adds r7, r2, 0 + adds r7, 0x8 + adds r0, r1, r7 + ldrh r0, [r0] + adds r0, 0x1 + strh r0, [r6] + adds r5, r2, 0 + adds r5, 0x12 + adds r1, r5 + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0x1 + beq _08148244 + adds r2, r6, 0 + adds r6, r5, 0 + adds r5, r7, 0 +_0814821A: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r4, 0x7 + bhi _08148244 + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 2 + adds r0, r1, r5 + ldrh r0, [r0] + ldrh r7, [r2] + adds r0, r7 + strh r0, [r2] + adds r1, r6 + movs r7, 0 + ldrsh r0, [r1, r7] + cmp r0, 0x1 + bne _0814821A +_08148244: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0814824C: .4byte gUnknown_03005F34 +_08148250: .4byte gNatureToMonPokeblockAnim +_08148254: .4byte gUnknown_03005F30 +_08148258: .4byte gMonPokeblockAnims + thumb_func_end sub_81481DC + + thumb_func_start sub_814825C +sub_814825C: @ 814825C + push {lr} + ldr r0, _08148274 @ =gUnknown_03005F3C + ldrb r0, [r0] + cmp r0, 0x5A + bls _08148268 + b _08148532 +_08148268: + lsls r0, 2 + ldr r1, _08148278 @ =_0814827C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08148274: .4byte gUnknown_03005F3C +_08148278: .4byte _0814827C + .align 2, 0 +_0814827C: + .4byte _081483E8 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _0814843C + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _0814847A + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _081484CC + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148524 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 +_081483E8: + ldr r2, _0814841C @ =gUnknown_03005F40 + ldr r1, _08148420 @ =gNatureToMonPokeblockAnim + ldr r0, _08148424 @ =gUnknown_03005F30 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + ldr r2, _08148428 @ =gUnknown_03005F20 + ldr r0, _0814842C @ =gUnknown_03005F2C + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _08148430 @ =gSprites + adds r1, r0 + str r1, [r2] + ldr r0, _08148434 @ =gUnknown_03005F50 + movs r2, 0x44 + bl memcpy + ldr r1, _08148438 @ =gUnknown_03005F3C + movs r0, 0xA + strb r0, [r1] + b _08148532 + .align 2, 0 +_0814841C: .4byte gUnknown_03005F40 +_08148420: .4byte gNatureToMonPokeblockAnim +_08148424: .4byte gUnknown_03005F30 +_08148428: .4byte gUnknown_03005F20 +_0814842C: .4byte gUnknown_03005F2C +_08148430: .4byte gSprites +_08148434: .4byte gUnknown_03005F50 +_08148438: .4byte gUnknown_03005F3C +_0814843C: + bl sub_8148540 + ldr r1, _081484A4 @ =gNatureToMonPokeblockAnim + ldr r0, _081484A8 @ =gUnknown_03005F30 + ldrb r0, [r0] + lsls r0, 1 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08148474 + ldr r3, _081484AC @ =gUnknown_03005F20 + ldr r2, [r3] + ldrb r0, [r2, 0x1] + movs r1, 0x3 + orrs r0, r1 + strb r0, [r2, 0x1] + ldr r2, [r3] + ldrb r1, [r2, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x3] + ldr r0, [r3] + ldr r1, _081484B0 @ =gSpriteAffineAnimTable_8412050 + str r1, [r0, 0x10] + bl InitSpriteAffineAnim +_08148474: + ldr r1, _081484B4 @ =gUnknown_03005F3C + movs r0, 0x32 + strb r0, [r1] +_0814847A: + ldr r1, _081484A4 @ =gNatureToMonPokeblockAnim + ldr r0, _081484A8 @ =gUnknown_03005F30 + ldrb r0, [r0] + lsls r0, 1 + adds r1, 0x1 + adds r2, r0, r1 + ldrb r1, [r2] + cmp r1, 0 + beq _081484EE + ldr r0, _081484B8 @ =gUnknown_03005F28 + ldrb r0, [r0] + cmp r0, 0 + bne _081484BC + ldr r0, _081484AC @ =gUnknown_03005F20 + ldr r0, [r0] + adds r1, 0xA + lsls r1, 24 + lsrs r1, 24 + bl StartSpriteAffineAnim + b _081484EE + .align 2, 0 +_081484A4: .4byte gNatureToMonPokeblockAnim +_081484A8: .4byte gUnknown_03005F30 +_081484AC: .4byte gUnknown_03005F20 +_081484B0: .4byte gSpriteAffineAnimTable_8412050 +_081484B4: .4byte gUnknown_03005F3C +_081484B8: .4byte gUnknown_03005F28 +_081484BC: + ldr r0, _081484C8 @ =gUnknown_03005F20 + ldr r0, [r0] + ldrb r1, [r2] + bl StartSpriteAffineAnim + b _081484EE + .align 2, 0 +_081484C8: .4byte gUnknown_03005F20 +_081484CC: + bl sub_81485CC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08148532 + ldr r0, _081484F8 @ =gUnknown_03005FA0 + movs r1, 0x12 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _08148504 + ldr r1, _081484FC @ =gUnknown_03005F40 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + bl sub_8148540 +_081484EE: + ldr r1, _08148500 @ =gUnknown_03005F3C + movs r0, 0x3C + strb r0, [r1] + b _08148532 + .align 2, 0 +_081484F8: .4byte gUnknown_03005FA0 +_081484FC: .4byte gUnknown_03005F40 +_08148500: .4byte gUnknown_03005F3C +_08148504: + ldr r0, _0814851C @ =gUnknown_03005F20 + ldr r0, [r0] + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldr r1, _08148520 @ =gUnknown_03005F3C + movs r0, 0x46 + strb r0, [r1] + b _08148532 + .align 2, 0 +_0814851C: .4byte gUnknown_03005F20 +_08148520: .4byte gUnknown_03005F3C +_08148524: + bl sub_8148618 + ldr r0, _08148538 @ =gUnknown_03005F40 + movs r1, 0 + strb r1, [r0] + ldr r0, _0814853C @ =gUnknown_03005F3C + strb r1, [r0] +_08148532: + pop {r0} + bx r0 + .align 2, 0 +_08148538: .4byte gUnknown_03005F40 +_0814853C: .4byte gUnknown_03005F3C + thumb_func_end sub_814825C + + thumb_func_start sub_8148540 +sub_8148540: @ 8148540 + push {r4-r7,lr} + movs r4, 0 + ldr r5, _081485B4 @ =gUnknown_03005FA0 + mov r12, r5 + ldr r7, _081485B8 @ =gMonPokeblockAnims + ldr r6, _081485BC @ =gUnknown_03005F40 +_0814854C: + lsls r2, r4, 1 + mov r0, r12 + adds r3, r2, r0 + ldrb r1, [r6] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r2, r0 + adds r2, r7 + ldrh r0, [r2] + strh r0, [r3] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x9 + bls _0814854C + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _081485C4 + movs r2, 0 + ldrsh r0, [r5, r2] + movs r2, 0x4 + ldrsh r1, [r5, r2] + bl Sin + strh r0, [r5, 0x14] + movs r1, 0 + ldrsh r0, [r5, r1] + movs r2, 0x6 + ldrsh r1, [r5, r2] + bl Cos + strh r0, [r5, 0x16] + ldrh r0, [r5, 0x8] + strh r0, [r5, 0x18] + ldr r0, _081485C0 @ =gUnknown_03005F20 + ldr r1, [r0] + ldrh r0, [r1, 0x24] + strh r0, [r5, 0x1A] + ldrh r0, [r1, 0x26] + strh r0, [r5, 0x1C] + bl sub_8148710 + ldrh r0, [r5, 0x18] + strh r0, [r5, 0x8] + bl sub_814862C + ldrh r0, [r5, 0x18] + strh r0, [r5, 0x8] + movs r0, 0 + b _081485C6 + .align 2, 0 +_081485B4: .4byte gUnknown_03005FA0 +_081485B8: .4byte gMonPokeblockAnims +_081485BC: .4byte gUnknown_03005F40 +_081485C0: .4byte gUnknown_03005F20 +_081485C4: + movs r0, 0x1 +_081485C6: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8148540 + + thumb_func_start sub_81485CC +sub_81485CC: @ 81485CC + push {r4,lr} + ldr r3, _08148604 @ =gUnknown_03005FA0 + ldrh r0, [r3, 0x18] + ldrh r1, [r3, 0x8] + subs r0, r1 + lsls r0, 16 + ldr r1, _08148608 @ =gUnknown_03005F20 + ldr r4, [r1] + lsrs r0, 15 + ldr r1, _0814860C @ =0x0201d000 + adds r2, r0, r1 + ldrh r2, [r2] + strh r2, [r4, 0x24] + movs r2, 0x80 + lsls r2, 3 + adds r1, r2 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r4, 0x26] + ldrh r0, [r3, 0x8] + subs r0, 0x1 + strh r0, [r3, 0x8] + lsls r0, 16 + cmp r0, 0 + beq _08148610 + movs r0, 0 + b _08148612 + .align 2, 0 +_08148604: .4byte gUnknown_03005FA0 +_08148608: .4byte gUnknown_03005F20 +_0814860C: .4byte 0x0201d000 +_08148610: + movs r0, 0x1 +_08148612: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81485CC + + thumb_func_start sub_8148618 +sub_8148618: @ 8148618 + push {lr} + ldr r0, _08148628 @ =gUnknown_03005F20 + ldr r0, [r0] + bl FreeSpriteOamMatrix + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08148628: .4byte gUnknown_03005F20 + thumb_func_end sub_8148618 + + thumb_func_start sub_814862C +sub_814862C: @ 814862C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + ldr r1, _08148700 @ =gUnknown_03005FA0 + ldrh r0, [r1, 0x10] + mov r8, r0 + ldrh r0, [r1, 0x18] + mov r2, r8 + subs r0, r2 + lsls r0, 16 + lsrs r7, r0, 16 + ldrh r0, [r1, 0xC] + ldrh r3, [r1, 0x1A] + adds r0, r3 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp] + ldrh r0, [r1, 0xE] + ldrh r1, [r1, 0x1C] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + movs r6, 0 + subs r0, r7, 0x1 + ldr r4, _08148704 @ =0x0201cffe + mov r10, r4 + cmp r6, r0 + bge _081486D4 + ldr r1, [sp] + lsls r0, r1, 16 + asrs r0, 16 + str r0, [sp, 0x4] +_08148674: + mov r2, r8 + adds r5, r2, r6 + lsls r5, 1 + ldr r4, _08148708 @ =0x0201d000 + adds r3, r5, r4 + ldrh r2, [r3] + ldr r0, [sp, 0x4] + subs r1, r2, r0 + ldr r4, _0814870C @ =0x0201d400 + adds r5, r4 + ldrh r0, [r5] + mov r12, r0 + mov r4, r9 + lsls r0, r4, 16 + asrs r0, 16 + mov r4, r12 + subs r0, r4, r0 + lsls r4, r0, 16 + lsrs r4, 16 + lsls r1, 16 + asrs r1, 16 + adds r6, 0x1 + adds r0, r1, 0 + muls r0, r6 + adds r1, r7, 0 + str r2, [sp, 0x8] + str r3, [sp, 0xC] + bl __divsi3 + ldr r2, [sp, 0x8] + subs r2, r0 + ldr r3, [sp, 0xC] + strh r2, [r3] + lsls r4, 16 + asrs r4, 16 + adds r0, r4, 0 + muls r0, r6 + adds r1, r7, 0 + bl __divsi3 + ldrh r1, [r5] + subs r1, r0 + strh r1, [r5] + lsls r6, 16 + lsrs r6, 16 + subs r0, r7, 0x1 + cmp r6, r0 + blt _08148674 +_081486D4: + mov r1, r8 + adds r0, r1, r7 + lsls r0, 1 + mov r2, r10 + adds r1, r0, r2 + mov r3, sp + ldrh r3, [r3] + strh r3, [r1] + movs r1, 0x80 + lsls r1, 3 + add r1, r10 + adds r0, r1 + mov r4, r9 + strh r4, [r0] + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08148700: .4byte gUnknown_03005FA0 +_08148704: .4byte 0x0201cffe +_08148708: .4byte 0x0201d000 +_0814870C: .4byte 0x0201d400 + thumb_func_end sub_814862C + + thumb_func_start sub_8148710 +sub_8148710: @ 8148710 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + ldr r1, _081487A4 @ =gUnknown_03005FA0 + ldrh r2, [r1, 0x1A] + ldrh r0, [r1, 0x14] + subs r2, r0 + ldrh r3, [r1, 0x1C] + ldrh r0, [r1, 0x16] + subs r3, r0 + adds r6, r1, 0 + ldr r1, _081487A8 @ =0x0201d000 + mov r9, r1 + lsls r2, 16 + asrs r2, 16 + mov r8, r2 + movs r2, 0x80 + lsls r2, 3 + add r2, r9 + mov r10, r2 + lsls r3, 16 + asrs r7, r3, 16 +_08148746: + movs r1, 0xA + ldrsh r0, [r6, r1] + cmp r0, 0 + bge _08148750 + negs r0, r0 +_08148750: + lsls r0, 16 + lsrs r0, 16 + ldrh r2, [r6, 0x6] + adds r0, r2 + lsls r5, r0, 16 + strh r0, [r6, 0x6] + ldrh r2, [r6, 0x4] + movs r1, 0x4 + ldrsh r0, [r6, r1] + cmp r0, 0 + bge _0814876A + movs r0, 0x1 + str r0, [sp] +_0814876A: + ldrh r0, [r6, 0x18] + ldrh r1, [r6, 0x8] + subs r0, r1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r1, 0 + beq _081487F0 + ldr r1, [sp] + cmp r1, 0 + bne _081487AC + movs r1, 0 + ldrsh r0, [r6, r1] + lsrs r5, 24 + adds r1, r2, r5 + lsls r1, 16 + asrs r1, 16 + bl Sin + lsls r4, 1 + mov r2, r9 + adds r1, r4, r2 + add r0, r8 + strh r0, [r1] + movs r1, 0 + ldrsh r0, [r6, r1] + ldrh r1, [r6, 0x6] + adds r1, r5 + b _081487CE + .align 2, 0 +_081487A4: .4byte gUnknown_03005FA0 +_081487A8: .4byte 0x0201d000 +_081487AC: + movs r1, 0 + ldrsh r0, [r6, r1] + lsrs r5, 24 + subs r1, r2, r5 + lsls r1, 16 + asrs r1, 16 + bl Sin + lsls r4, 1 + mov r2, r9 + adds r1, r4, r2 + add r0, r8 + strh r0, [r1] + movs r1, 0 + ldrsh r0, [r6, r1] + ldrh r1, [r6, 0x6] + subs r1, r5 +_081487CE: + lsls r1, 16 + asrs r1, 16 + bl Cos + add r4, r10 + adds r0, r7, r0 + strh r0, [r4] + ldrh r0, [r6, 0x2] + ldrh r2, [r6] + adds r0, r2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r6] + ldrh r0, [r6, 0x8] + subs r0, 0x1 + strh r0, [r6, 0x8] + b _08148746 +_081487F0: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8148710 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_81473B8.s b/asm/rom_81473B8.s index 6c26c034a..4b39758b0 100644 --- a/asm/rom_81473B8.s +++ b/asm/rom_81473B8.s @@ -603,1831 +603,4 @@ _08147884: _0814788C: .4byte gTasks thumb_func_end sub_814782C - thumb_func_start sub_8147890 -sub_8147890: @ 8147890 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - bl RunTasks - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_8147890 - - thumb_func_start sub_81478A8 -sub_81478A8: @ 81478A8 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_81478A8 - - thumb_func_start sub_81478BC -sub_81478BC: @ 81478BC - push {r4,lr} - sub sp, 0x4 - ldr r0, _081478D8 @ =gMain - ldr r1, _081478DC @ =0x0000043c - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xD - bls _081478CE - b _08147AD0 -_081478CE: - lsls r0, 2 - ldr r1, _081478E0 @ =_081478E4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081478D8: .4byte gMain -_081478DC: .4byte 0x0000043c -_081478E0: .4byte _081478E4 - .align 2, 0 -_081478E4: - .4byte _0814791C - .4byte _08147938 - .4byte _0814794C - .4byte _08147960 - .4byte _08147966 - .4byte _08147980 - .4byte _0814798C - .4byte _081479B8 - .4byte _081479DC - .4byte _081479F4 - .4byte _08147A20 - .4byte _08147A3C - .4byte _08147A5C - .4byte _08147A8C -_0814791C: - bl sub_80F9438 - bl sub_80F9368 - bl sub_8147B04 - ldr r1, _08147930 @ =gMain - ldr r2, _08147934 @ =0x0000043c - adds r1, r2 - b _08147A4A - .align 2, 0 -_08147930: .4byte gMain -_08147934: .4byte 0x0000043c -_08147938: - bl ResetPaletteFade - ldr r2, _08147948 @ =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - b _08147A44 - .align 2, 0 -_08147948: .4byte gPaletteFade -_0814794C: - bl ResetSpriteData - ldr r1, _08147958 @ =gMain - ldr r2, _0814795C @ =0x0000043c - adds r1, r2 - b _08147A4A - .align 2, 0 -_08147958: .4byte gMain -_0814795C: .4byte 0x0000043c -_08147960: - bl FreeAllSpritePalettes - b _08147A44 -_08147966: - ldr r0, _08147974 @ =gWindowConfig_81E6E50 - bl SetUpWindowConfig - ldr r1, _08147978 @ =gMain - ldr r2, _0814797C @ =0x0000043c - adds r1, r2 - b _08147A4A - .align 2, 0 -_08147974: .4byte gWindowConfig_81E6E50 -_08147978: .4byte gMain -_0814797C: .4byte 0x0000043c -_08147980: - ldr r0, _08147988 @ =gWindowConfig_81E6E50 - bl MultistepInitMenuWindowBegin - b _08147A44 - .align 2, 0 -_08147988: .4byte gWindowConfig_81E6E50 -_0814798C: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - bne _08147996 - b _08147AD0 -_08147996: - ldr r0, _081479A8 @ =0x02000000 - ldr r1, _081479AC @ =0x0001ffff - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r1, _081479B0 @ =gMain - ldr r2, _081479B4 @ =0x0000043c - adds r1, r2 - b _08147A4A - .align 2, 0 -_081479A8: .4byte 0x02000000 -_081479AC: .4byte 0x0001ffff -_081479B0: .4byte gMain -_081479B4: .4byte 0x0000043c -_081479B8: - ldr r0, _081479D4 @ =gUnknown_02039310 - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _081479D8 @ =gPlayerParty - adds r0, r1 - bl sub_8147B20 - lsls r0, 24 - cmp r0, 0 - bne _081479D0 - b _08147AD0 -_081479D0: - b _08147A44 - .align 2, 0 -_081479D4: .4byte gUnknown_02039310 -_081479D8: .4byte gPlayerParty -_081479DC: - bl sub_81480B4 - ldr r1, _081479EC @ =0x02000000 - ldr r2, _081479F0 @ =0x0001fffd - adds r1, r2 - strb r0, [r1] - b _08147A44 - .align 2, 0 -_081479EC: .4byte 0x02000000 -_081479F0: .4byte 0x0001fffd -_081479F4: - ldr r0, _08147A10 @ =gUnknown_02039310 - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08147A14 @ =gPlayerParty - adds r0, r1 - bl sub_8147F84 - ldr r1, _08147A18 @ =0x02000000 - ldr r2, _08147A1C @ =0x0001fffe - adds r1, r2 - strb r0, [r1] - b _08147A44 - .align 2, 0 -_08147A10: .4byte gUnknown_02039310 -_08147A14: .4byte gPlayerParty -_08147A18: .4byte 0x02000000 -_08147A1C: .4byte 0x0001fffe -_08147A20: - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r1, _08147A34 @ =gMain - ldr r2, _08147A38 @ =0x0000043c - adds r1, r2 - b _08147A4A - .align 2, 0 -_08147A34: .4byte gMain -_08147A38: .4byte 0x0000043c -_08147A3C: - bl sub_8055870 - cmp r0, 0x1 - beq _08147AD0 -_08147A44: - ldr r1, _08147A54 @ =gMain - ldr r0, _08147A58 @ =0x0000043c - adds r1, r0 -_08147A4A: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08147AD0 - .align 2, 0 -_08147A54: .4byte gMain -_08147A58: .4byte 0x0000043c -_08147A5C: - ldr r3, _08147AB0 @ =0x04000208 - ldrh r2, [r3] - movs r0, 0 - strh r0, [r3] - ldr r4, _08147AB4 @ =0x04000200 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _08147AB8 @ =REG_DISPSTAT - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - ldr r0, _08147ABC @ =sub_81478A8 - bl SetVBlankCallback - ldr r1, _08147AC0 @ =gMain - ldr r2, _08147AC4 @ =0x0000043c - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08147A8C: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r2, _08147AC8 @ =gPaletteFade - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x8] - ldr r0, _08147ACC @ =sub_8147890 - bl SetMainCallback2 - movs r0, 0x1 - b _08147AD2 - .align 2, 0 -_08147AB0: .4byte 0x04000208 -_08147AB4: .4byte 0x04000200 -_08147AB8: .4byte REG_DISPSTAT -_08147ABC: .4byte sub_81478A8 -_08147AC0: .4byte gMain -_08147AC4: .4byte 0x0000043c -_08147AC8: .4byte gPaletteFade -_08147ACC: .4byte sub_8147890 -_08147AD0: - movs r0, 0 -_08147AD2: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81478BC - - thumb_func_start sub_8147ADC -sub_8147ADC: @ 8147ADC - push {lr} -_08147ADE: - bl sub_81478BC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08147AF2 - movs r0, 0x1 - bl sub_8147DDC - b _08147AFE -_08147AF2: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08147ADE -_08147AFE: - pop {r0} - bx r0 - thumb_func_end sub_8147ADC - - thumb_func_start sub_8147B04 -sub_8147B04: @ 8147B04 - ldr r1, _08147B18 @ =REG_BG1CNT - ldr r2, _08147B1C @ =0x00001d02 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xA - movs r2, 0x9A - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - bx lr - .align 2, 0 -_08147B18: .4byte REG_BG1CNT -_08147B1C: .4byte 0x00001d02 - thumb_func_end sub_8147B04 - - thumb_func_start sub_8147B20 -sub_8147B20: @ 8147B20 - push {r4-r6,lr} - sub sp, 0xC - adds r4, r0, 0 - ldr r0, _08147B40 @ =0x02000000 - ldr r1, _08147B44 @ =0x0001ffff - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x8 - bls _08147B34 - b _08147C84 -_08147B34: - lsls r0, 2 - ldr r1, _08147B48 @ =_08147B4C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08147B40: .4byte 0x02000000 -_08147B44: .4byte 0x0001ffff -_08147B48: .4byte _08147B4C - .align 2, 0 -_08147B4C: - .4byte _08147B70 - .4byte _08147BB8 - .4byte _08147BF0 - .4byte _08147BFC - .4byte _08147C08 - .4byte _08147C14 - .4byte _08147C2C - .4byte _08147C38 - .4byte _08147C60 -_08147B70: - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - adds r6, r0, 0 - lsls r0, r5, 3 - ldr r1, _08147BAC @ =gMonFrontPicTable - adds r0, r1 - ldr r1, _08147BB0 @ =gMonFrontPicCoords - lsls r2, r5, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _08147BB4 @ =gUnknown_081FAF4C - ldr r4, [r4, 0x4] - str r4, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - bl sub_800D334 - b _08147C40 - .align 2, 0 -_08147BAC: .4byte gMonFrontPicTable -_08147BB0: .4byte gMonFrontPicCoords -_08147BB4: .4byte gUnknown_081FAF4C -_08147BB8: - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - adds r6, r0, 0 - adds r0, r4, 0 - movs r1, 0x1 - bl GetMonData - adds r1, r0, 0 - adds r0, r5, 0 - adds r2, r6, 0 - bl sub_80409C8 - adds r4, r0, 0 - bl LoadCompressedObjectPalette - ldrh r0, [r4, 0x4] - movs r1, 0x1 - bl GetMonSpriteTemplate_803C56C - b _08147C40 -_08147BF0: - ldr r0, _08147BF8 @ =gUnknown_083F7F74 - bl LoadCompressedObjectPic - b _08147C40 - .align 2, 0 -_08147BF8: .4byte gUnknown_083F7F74 -_08147BFC: - ldr r0, _08147C04 @ =gUnknown_083F7F7C - bl LoadCompressedObjectPalette - b _08147C40 - .align 2, 0 -_08147C04: .4byte gUnknown_083F7F7C -_08147C08: - ldr r0, _08147C10 @ =gUnknown_084121DC - bl LoadCompressedObjectPic - b _08147C40 - .align 2, 0 -_08147C10: .4byte gUnknown_084121DC -_08147C14: - ldr r0, _08147C24 @ =gScriptItemId - ldrb r0, [r0] - bl sub_8147C90 - ldr r0, _08147C28 @ =gUnknown_02039350 - bl LoadCompressedObjectPalette - b _08147C40 - .align 2, 0 -_08147C24: .4byte gScriptItemId -_08147C28: .4byte gUnknown_02039350 -_08147C2C: - ldr r0, _08147C34 @ =gBattleTerrainTiles_Building - movs r1, 0xC0 - lsls r1, 19 - b _08147C3C - .align 2, 0 -_08147C34: .4byte gBattleTerrainTiles_Building -_08147C38: - ldr r0, _08147C50 @ =gUnknown_08E782FC - ldr r1, _08147C54 @ =0x0600e800 -_08147C3C: - bl LZDecompressVram -_08147C40: - ldr r1, _08147C58 @ =0x02000000 - ldr r0, _08147C5C @ =0x0001ffff - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08147C84 - .align 2, 0 -_08147C50: .4byte gUnknown_08E782FC -_08147C54: .4byte 0x0600e800 -_08147C58: .4byte 0x02000000 -_08147C5C: .4byte 0x0001ffff -_08147C60: - ldr r0, _08147C78 @ =gBattleTerrainPalette_BattleTower - movs r1, 0x20 - movs r2, 0x60 - bl LoadCompressedPalette - ldr r0, _08147C7C @ =0x02000000 - ldr r1, _08147C80 @ =0x0001ffff - adds r0, r1 - movs r1, 0 - strb r1, [r0] - movs r0, 0x1 - b _08147C86 - .align 2, 0 -_08147C78: .4byte gBattleTerrainPalette_BattleTower -_08147C7C: .4byte 0x02000000 -_08147C80: .4byte 0x0001ffff -_08147C84: - movs r0, 0 -_08147C86: - add sp, 0xC - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8147B20 - - thumb_func_start sub_8147C90 -sub_8147C90: @ 8147C90 - push {lr} - lsls r0, 24 - lsrs r0, 21 - ldr r1, _08147CB8 @ =gSaveBlock1 + 0x7F8 - adds r0, r1 - movs r1, 0 - bl sub_810CA9C - lsls r0, 24 - ldr r2, _08147CBC @ =gUnknown_02039350 - ldr r1, _08147CC0 @ =gUnknown_084120A4 - lsrs r0, 22 - subs r0, 0x4 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] - ldr r0, _08147CC4 @ =0x000039e2 - strh r0, [r2, 0x4] - pop {r0} - bx r0 - .align 2, 0 -_08147CB8: .4byte gSaveBlock1 + 0x7F8 -_08147CBC: .4byte gUnknown_02039350 -_08147CC0: .4byte gUnknown_084120A4 -_08147CC4: .4byte 0x000039e2 - thumb_func_end sub_8147C90 - - thumb_func_start sub_8147CC8 -sub_8147CC8: @ 8147CC8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08147D00 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08147CDC - b _08147DCE -_08147CDC: - ldr r0, _08147D04 @ =gTasks - lsls r2, r4, 2 - adds r1, r2, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x8 - ldrsh r3, [r1, r0] - ldr r0, _08147D08 @ =0x0000010d - adds r5, r2, 0 - cmp r3, r0 - beq _08147D50 - cmp r3, r0 - bgt _08147D0C - cmp r3, 0 - beq _08147D20 - cmp r3, 0xFF - beq _08147D38 - b _08147D8C - .align 2, 0 -_08147D00: .4byte gPaletteFade -_08147D04: .4byte gTasks -_08147D08: .4byte 0x0000010d -_08147D0C: - ldr r0, _08147D1C @ =0x00000119 - cmp r3, r0 - beq _08147D68 - adds r0, 0x10 - cmp r3, r0 - beq _08147D80 - b _08147D8C - .align 2, 0 -_08147D1C: .4byte 0x00000119 -_08147D20: - ldr r0, _08147D30 @ =gUnknown_03005F3C - strb r3, [r0] - ldr r0, _08147D34 @ =gUnknown_03005F94 - strh r3, [r0] - bl sub_81481DC - b _08147D8C - .align 2, 0 -_08147D30: .4byte gUnknown_03005F3C -_08147D34: .4byte gUnknown_03005F94 -_08147D38: - ldr r0, _08147D48 @ =0x02000000 - ldr r2, _08147D4C @ =0x0001fffd - adds r0, r2 - ldrb r0, [r0] - ldrb r1, [r1, 0xA] - bl sub_8148108 - b _08147D8C - .align 2, 0 -_08147D48: .4byte 0x02000000 -_08147D4C: .4byte 0x0001fffd -_08147D50: - bl sub_814817C - ldr r1, _08147D60 @ =0x02000000 - ldr r2, _08147D64 @ =0x0001fffc - adds r1, r2 - strb r0, [r1] - b _08147D8C - .align 2, 0 -_08147D60: .4byte 0x02000000 -_08147D64: .4byte 0x0001fffc -_08147D68: - ldr r0, _08147D78 @ =0x02000000 - ldr r1, _08147D7C @ =0x0001fffe - adds r0, r1 - ldrb r0, [r0] - bl sub_8148044 - b _08147D8C - .align 2, 0 -_08147D78: .4byte 0x02000000 -_08147D7C: .4byte 0x0001fffe -_08147D80: - ldr r0, _08147D88 @ =sub_8147E40 - str r0, [r1] - b _08147DCE - .align 2, 0 -_08147D88: .4byte sub_8147E40 -_08147D8C: - ldr r0, _08147DA0 @ =gUnknown_03005F94 - ldr r1, _08147DA4 @ =gUnknown_03005F34 - ldrh r2, [r0] - ldrh r0, [r1] - cmp r2, r0 - bcs _08147DA8 - bl sub_814825C - b _08147DB8 - .align 2, 0 -_08147DA0: .4byte gUnknown_03005F94 -_08147DA4: .4byte gUnknown_03005F34 -_08147DA8: - cmp r2, r0 - bne _08147DB8 - ldr r0, _08147DD4 @ =gTasks - adds r1, r5, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0xFE - strh r0, [r1, 0x8] -_08147DB8: - ldr r1, _08147DD8 @ =gUnknown_03005F94 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - ldr r0, _08147DD4 @ =gTasks - adds r1, r5, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_08147DCE: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08147DD4: .4byte gTasks -_08147DD8: .4byte gUnknown_03005F94 - thumb_func_end sub_8147CC8 - - thumb_func_start sub_8147DDC -sub_8147DDC: @ 8147DDC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08147E08 @ =sub_8147CC8 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08147E0C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x8] - strh r4, [r1, 0xA] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08147E08: .4byte sub_8147CC8 -_08147E0C: .4byte gTasks - thumb_func_end sub_8147DDC - - thumb_func_start sub_8147E10 -sub_8147E10: @ 8147E10 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl MenuUpdateWindowText - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08147E30 - ldr r0, _08147E38 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _08147E3C @ =sub_8147F4C - str r0, [r1] -_08147E30: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08147E38: .4byte gTasks -_08147E3C: .4byte sub_8147F4C - thumb_func_end sub_8147E10 - - thumb_func_start sub_8147E40 -sub_8147E40: @ 8147E40 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _08147E94 @ =gUnknown_02039310 - ldrb r1, [r0] - movs r0, 0x64 - adds r5, r1, 0 - muls r5, r0 - ldr r0, _08147E98 @ =gPlayerParty - adds r5, r0 - ldr r0, _08147E9C @ =gScriptItemId - ldrh r4, [r0] - lsls r4, 3 - ldr r0, _08147EA0 @ =gSaveBlock1 + 0x7F8 - adds r4, r0 - adds r0, r5, 0 - bl GetNature - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - bl sub_810CAE4 - ldr r6, _08147EA4 @ =gUnknown_02039312 - strh r0, [r6] - ldr r1, _08147EA8 @ =gStringVar1 - adds r0, r5, 0 - bl GetMonNickname - ldr r1, _08147EAC @ =gStringVar2 - adds r0, r4, 0 - bl sub_810CB44 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _08147EB8 - ldr r0, _08147EB0 @ =gStringVar4 - ldr r1, _08147EB4 @ =gContestStatsText_NormallyAte - bl StringExpandPlaceholders - b _08147ED8 - .align 2, 0 -_08147E94: .4byte gUnknown_02039310 -_08147E98: .4byte gPlayerParty -_08147E9C: .4byte gScriptItemId -_08147EA0: .4byte gSaveBlock1 + 0x7F8 -_08147EA4: .4byte gUnknown_02039312 -_08147EA8: .4byte gStringVar1 -_08147EAC: .4byte gStringVar2 -_08147EB0: .4byte gStringVar4 -_08147EB4: .4byte gContestStatsText_NormallyAte -_08147EB8: - cmp r0, 0 - ble _08147ED0 - ldr r0, _08147EC8 @ =gStringVar4 - ldr r1, _08147ECC @ =gContestStatsText_HappilyAte - bl StringExpandPlaceholders - b _08147ED8 - .align 2, 0 -_08147EC8: .4byte gStringVar4 -_08147ECC: .4byte gContestStatsText_HappilyAte -_08147ED0: - ldr r0, _08147EF8 @ =gStringVar4 - ldr r1, _08147EFC @ =gContestStatsText_DisdainfullyAte - bl StringExpandPlaceholders -_08147ED8: - ldr r0, _08147EF8 @ =gStringVar4 - movs r1, 0x1 - movs r2, 0xF - bl MenuPrintMessage - ldr r1, _08147F00 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldr r1, _08147F04 @ =sub_8147E10 - str r1, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08147EF8: .4byte gStringVar4 -_08147EFC: .4byte gContestStatsText_DisdainfullyAte -_08147F00: .4byte gTasks -_08147F04: .4byte sub_8147E10 - thumb_func_end sub_8147E40 - - thumb_func_start sub_8147F08 -sub_8147F08: @ 8147F08 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08147F3C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08147F34 - ldr r0, _08147F40 @ =gMPlay_BGM - ldr r1, _08147F44 @ =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl - ldr r0, _08147F48 @ =gMain - ldr r0, [r0, 0x8] - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_08147F34: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08147F3C: .4byte gPaletteFade -_08147F40: .4byte gMPlay_BGM -_08147F44: .4byte 0x0000ffff -_08147F48: .4byte gMain - thumb_func_end sub_8147F08 - - thumb_func_start sub_8147F4C -sub_8147F4C: @ 8147F4C - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _08147F7C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08147F80 @ =sub_8147F08 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08147F7C: .4byte gTasks -_08147F80: .4byte sub_8147F08 - thumb_func_end sub_8147F4C - - thumb_func_start sub_8147F84 -sub_8147F84: @ 8147F84 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r5, r0, 0 - movs r1, 0x41 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _08148024 @ =gUnknown_02024E8C - movs r1, 0x30 - movs r2, 0x50 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _08148028 @ =gUnknown_03005F24 - strh r4, [r0] - ldr r0, _0814802C @ =gUnknown_03005F2C - mov r1, r8 - strb r1, [r0] - adds r0, r5, 0 - bl GetNature - ldr r1, _08148030 @ =gUnknown_03005F30 - strb r0, [r1] - ldr r7, _08148034 @ =gSprites - mov r1, r8 - lsls r0, r1, 4 - add r0, r8 - lsls r5, r0, 2 - adds r6, r5, r7 - strh r4, [r6, 0x32] - adds r0, r7, 0 - adds r0, 0x1C - adds r0, r5, r0 - ldr r1, _08148038 @ =SpriteCallbackDummy - str r1, [r0] - ldr r0, _0814803C @ =gUnknown_03005F28 - mov r9, r0 - movs r0, 0x1 - mov r1, r9 - strb r0, [r1] - adds r0, r4, 0 - bl sub_8040A3C - lsls r0, 24 - cmp r0, 0 - bne _08148016 - adds r0, r7, 0 - adds r0, 0x10 - adds r0, r5, r0 - ldr r1, _08148040 @ =gSpriteAffineAnimTable_84120EC - str r1, [r0] - ldrb r3, [r6, 0x1] - movs r0, 0x3 - orrs r3, r0 - strb r3, [r6, 0x1] - lsrs r1, r3, 6 - ldrb r2, [r6, 0x3] - lsrs r2, 6 - lsls r3, 30 - lsrs r3, 30 - adds r0, r6, 0 - bl CalcCenterToCornerVec - movs r0, 0 - mov r1, r9 - strb r0, [r1] -_08148016: - mov r0, r8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08148024: .4byte gUnknown_02024E8C -_08148028: .4byte gUnknown_03005F24 -_0814802C: .4byte gUnknown_03005F2C -_08148030: .4byte gUnknown_03005F30 -_08148034: .4byte gSprites -_08148038: .4byte SpriteCallbackDummy -_0814803C: .4byte gUnknown_03005F28 -_08148040: .4byte gSpriteAffineAnimTable_84120EC - thumb_func_end sub_8147F84 - - thumb_func_start sub_8148044 -sub_8148044: @ 8148044 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _0814806C @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r2, r1, r3 - movs r0, 0x30 - strh r0, [r2, 0x20] - movs r0, 0x50 - strh r0, [r2, 0x22] - ldr r0, _08148070 @ =0x0000fff8 - strh r0, [r2, 0x2E] - movs r0, 0x1 - strh r0, [r2, 0x30] - adds r3, 0x1C - adds r1, r3 - ldr r0, _08148074 @ =sub_8148078 - str r0, [r1] - bx lr - .align 2, 0 -_0814806C: .4byte gSprites -_08148070: .4byte 0x0000fff8 -_08148074: .4byte sub_8148078 - thumb_func_end sub_8148044 - - thumb_func_start sub_8148078 -sub_8148078: @ 8148078 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x20] - adds r0, 0x4 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x2E] - ldrh r2, [r4, 0x22] - adds r1, r0, r2 - strh r1, [r4, 0x22] - ldrh r1, [r4, 0x30] - adds r0, r1 - strh r0, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bne _0814809E - ldrh r0, [r4, 0x32] - movs r1, 0 - bl PlayCry1 -_0814809E: - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x9 - bne _081480AA - ldr r0, _081480B0 @ =SpriteCallbackDummy - str r0, [r4, 0x1C] -_081480AA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081480B0: .4byte SpriteCallbackDummy - thumb_func_end sub_8148078 - - thumb_func_start sub_81480B4 -sub_81480B4: @ 81480B4 - push {r4,r5,lr} - movs r0, 0xBC - movs r1, 0x64 - movs r2, 0x2 - bl sub_810BA50 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _081480FC @ =gSprites - lsls r3, r4, 4 - adds r3, r4 - lsls r3, 2 - adds r0, r3, r5 - ldrb r2, [r0, 0x1] - movs r1, 0x4 - negs r1, r1 - ands r1, r2 - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0, 0x1] - adds r1, r5, 0 - adds r1, 0x10 - adds r1, r3, r1 - ldr r2, _08148100 @ =gSpriteAffineAnimTable_84121A0 - str r2, [r1] - adds r5, 0x1C - adds r3, r5 - ldr r1, _08148104 @ =SpriteCallbackDummy - str r1, [r3] - bl InitSpriteAffineAnim - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_081480FC: .4byte gSprites -_08148100: .4byte gSpriteAffineAnimTable_84121A0 -_08148104: .4byte SpriteCallbackDummy - thumb_func_end sub_81480B4 - - thumb_func_start sub_8148108 -sub_8148108: @ 8148108 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r1, 0 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _08148148 @ =gSprites - mov r8, r0 - lsls r0, r7, 4 - adds r0, r7 - lsls r6, r0, 2 - mov r0, r8 - adds r4, r6, r0 - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - cmp r5, 0 - bne _08148150 - mov r0, r8 - adds r0, 0x10 - adds r0, r6, r0 - ldr r1, _0814814C @ =gSpriteAffineAnimTable_84121A4 - b _08148158 - .align 2, 0 -_08148148: .4byte gSprites -_0814814C: .4byte gSpriteAffineAnimTable_84121A4 -_08148150: - mov r0, r8 - adds r0, 0x10 - adds r0, r6, r0 - ldr r1, _08148174 @ =gSpriteAffineAnimTable_84121A8 -_08148158: - str r1, [r0] - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - ldr r1, _08148178 @ =gSprites - adds r0, r1 - bl InitSpriteAffineAnim - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08148174: .4byte gSpriteAffineAnimTable_84121A8 -_08148178: .4byte gSprites - thumb_func_end sub_8148108 - - thumb_func_start sub_814817C -sub_814817C: @ 814817C - push {lr} - ldr r0, _081481A4 @ =gSpriteTemplate_84121E4 - movs r1, 0xAE - movs r2, 0x54 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _081481A8 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldr r2, _081481AC @ =0x0000fff4 - strh r2, [r1, 0x2E] - movs r2, 0x1 - strh r2, [r1, 0x30] - pop {r1} - bx r1 - .align 2, 0 -_081481A4: .4byte gSpriteTemplate_84121E4 -_081481A8: .4byte gSprites -_081481AC: .4byte 0x0000fff4 - thumb_func_end sub_814817C - - thumb_func_start sub_81481B0 -sub_81481B0: @ 81481B0 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x20] - subs r0, 0x4 - strh r0, [r2, 0x20] - ldrh r0, [r2, 0x2E] - ldrh r3, [r2, 0x22] - adds r1, r0, r3 - strh r1, [r2, 0x22] - ldrh r1, [r2, 0x30] - adds r0, r1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _081481D6 - adds r0, r2, 0 - bl DestroySprite -_081481D6: - pop {r0} - bx r0 - thumb_func_end sub_81481B0 - - thumb_func_start sub_81481DC -sub_81481DC: @ 81481DC - push {r4-r7,lr} - ldr r6, _0814824C @ =gUnknown_03005F34 - movs r0, 0x1 - strh r0, [r6] - ldr r1, _08148250 @ =gNatureToMonPokeblockAnim - ldr r0, _08148254 @ =gUnknown_03005F30 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrb r3, [r0] - movs r4, 0 - ldr r2, _08148258 @ =gMonPokeblockAnims - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 2 - adds r7, r2, 0 - adds r7, 0x8 - adds r0, r1, r7 - ldrh r0, [r0] - adds r0, 0x1 - strh r0, [r6] - adds r5, r2, 0 - adds r5, 0x12 - adds r1, r5 - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - beq _08148244 - adds r2, r6, 0 - adds r6, r5, 0 - adds r5, r7, 0 -_0814821A: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r4, 0x7 - bhi _08148244 - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 2 - adds r0, r1, r5 - ldrh r0, [r0] - ldrh r7, [r2] - adds r0, r7 - strh r0, [r2] - adds r1, r6 - movs r7, 0 - ldrsh r0, [r1, r7] - cmp r0, 0x1 - bne _0814821A -_08148244: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814824C: .4byte gUnknown_03005F34 -_08148250: .4byte gNatureToMonPokeblockAnim -_08148254: .4byte gUnknown_03005F30 -_08148258: .4byte gMonPokeblockAnims - thumb_func_end sub_81481DC - - thumb_func_start sub_814825C -sub_814825C: @ 814825C - push {lr} - ldr r0, _08148274 @ =gUnknown_03005F3C - ldrb r0, [r0] - cmp r0, 0x5A - bls _08148268 - b _08148532 -_08148268: - lsls r0, 2 - ldr r1, _08148278 @ =_0814827C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08148274: .4byte gUnknown_03005F3C -_08148278: .4byte _0814827C - .align 2, 0 -_0814827C: - .4byte _081483E8 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _0814843C - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _0814847A - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _081484CC - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148524 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 -_081483E8: - ldr r2, _0814841C @ =gUnknown_03005F40 - ldr r1, _08148420 @ =gNatureToMonPokeblockAnim - ldr r0, _08148424 @ =gUnknown_03005F30 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r2, _08148428 @ =gUnknown_03005F20 - ldr r0, _0814842C @ =gUnknown_03005F2C - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _08148430 @ =gSprites - adds r1, r0 - str r1, [r2] - ldr r0, _08148434 @ =gUnknown_03005F50 - movs r2, 0x44 - bl memcpy - ldr r1, _08148438 @ =gUnknown_03005F3C - movs r0, 0xA - strb r0, [r1] - b _08148532 - .align 2, 0 -_0814841C: .4byte gUnknown_03005F40 -_08148420: .4byte gNatureToMonPokeblockAnim -_08148424: .4byte gUnknown_03005F30 -_08148428: .4byte gUnknown_03005F20 -_0814842C: .4byte gUnknown_03005F2C -_08148430: .4byte gSprites -_08148434: .4byte gUnknown_03005F50 -_08148438: .4byte gUnknown_03005F3C -_0814843C: - bl sub_8148540 - ldr r1, _081484A4 @ =gNatureToMonPokeblockAnim - ldr r0, _081484A8 @ =gUnknown_03005F30 - ldrb r0, [r0] - lsls r0, 1 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08148474 - ldr r3, _081484AC @ =gUnknown_03005F20 - ldr r2, [r3] - ldrb r0, [r2, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r2, 0x1] - ldr r2, [r3] - ldrb r1, [r2, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x3] - ldr r0, [r3] - ldr r1, _081484B0 @ =gSpriteAffineAnimTable_8412050 - str r1, [r0, 0x10] - bl InitSpriteAffineAnim -_08148474: - ldr r1, _081484B4 @ =gUnknown_03005F3C - movs r0, 0x32 - strb r0, [r1] -_0814847A: - ldr r1, _081484A4 @ =gNatureToMonPokeblockAnim - ldr r0, _081484A8 @ =gUnknown_03005F30 - ldrb r0, [r0] - lsls r0, 1 - adds r1, 0x1 - adds r2, r0, r1 - ldrb r1, [r2] - cmp r1, 0 - beq _081484EE - ldr r0, _081484B8 @ =gUnknown_03005F28 - ldrb r0, [r0] - cmp r0, 0 - bne _081484BC - ldr r0, _081484AC @ =gUnknown_03005F20 - ldr r0, [r0] - adds r1, 0xA - lsls r1, 24 - lsrs r1, 24 - bl StartSpriteAffineAnim - b _081484EE - .align 2, 0 -_081484A4: .4byte gNatureToMonPokeblockAnim -_081484A8: .4byte gUnknown_03005F30 -_081484AC: .4byte gUnknown_03005F20 -_081484B0: .4byte gSpriteAffineAnimTable_8412050 -_081484B4: .4byte gUnknown_03005F3C -_081484B8: .4byte gUnknown_03005F28 -_081484BC: - ldr r0, _081484C8 @ =gUnknown_03005F20 - ldr r0, [r0] - ldrb r1, [r2] - bl StartSpriteAffineAnim - b _081484EE - .align 2, 0 -_081484C8: .4byte gUnknown_03005F20 -_081484CC: - bl sub_81485CC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08148532 - ldr r0, _081484F8 @ =gUnknown_03005FA0 - movs r1, 0x12 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08148504 - ldr r1, _081484FC @ =gUnknown_03005F40 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - bl sub_8148540 -_081484EE: - ldr r1, _08148500 @ =gUnknown_03005F3C - movs r0, 0x3C - strb r0, [r1] - b _08148532 - .align 2, 0 -_081484F8: .4byte gUnknown_03005FA0 -_081484FC: .4byte gUnknown_03005F40 -_08148500: .4byte gUnknown_03005F3C -_08148504: - ldr r0, _0814851C @ =gUnknown_03005F20 - ldr r0, [r0] - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldr r1, _08148520 @ =gUnknown_03005F3C - movs r0, 0x46 - strb r0, [r1] - b _08148532 - .align 2, 0 -_0814851C: .4byte gUnknown_03005F20 -_08148520: .4byte gUnknown_03005F3C -_08148524: - bl sub_8148618 - ldr r0, _08148538 @ =gUnknown_03005F40 - movs r1, 0 - strb r1, [r0] - ldr r0, _0814853C @ =gUnknown_03005F3C - strb r1, [r0] -_08148532: - pop {r0} - bx r0 - .align 2, 0 -_08148538: .4byte gUnknown_03005F40 -_0814853C: .4byte gUnknown_03005F3C - thumb_func_end sub_814825C - - thumb_func_start sub_8148540 -sub_8148540: @ 8148540 - push {r4-r7,lr} - movs r4, 0 - ldr r5, _081485B4 @ =gUnknown_03005FA0 - mov r12, r5 - ldr r7, _081485B8 @ =gMonPokeblockAnims - ldr r6, _081485BC @ =gUnknown_03005F40 -_0814854C: - lsls r2, r4, 1 - mov r0, r12 - adds r3, r2, r0 - ldrb r1, [r6] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - adds r2, r7 - ldrh r0, [r2] - strh r0, [r3] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _0814854C - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _081485C4 - movs r2, 0 - ldrsh r0, [r5, r2] - movs r2, 0x4 - ldrsh r1, [r5, r2] - bl Sin - strh r0, [r5, 0x14] - movs r1, 0 - ldrsh r0, [r5, r1] - movs r2, 0x6 - ldrsh r1, [r5, r2] - bl Cos - strh r0, [r5, 0x16] - ldrh r0, [r5, 0x8] - strh r0, [r5, 0x18] - ldr r0, _081485C0 @ =gUnknown_03005F20 - ldr r1, [r0] - ldrh r0, [r1, 0x24] - strh r0, [r5, 0x1A] - ldrh r0, [r1, 0x26] - strh r0, [r5, 0x1C] - bl sub_8148710 - ldrh r0, [r5, 0x18] - strh r0, [r5, 0x8] - bl sub_814862C - ldrh r0, [r5, 0x18] - strh r0, [r5, 0x8] - movs r0, 0 - b _081485C6 - .align 2, 0 -_081485B4: .4byte gUnknown_03005FA0 -_081485B8: .4byte gMonPokeblockAnims -_081485BC: .4byte gUnknown_03005F40 -_081485C0: .4byte gUnknown_03005F20 -_081485C4: - movs r0, 0x1 -_081485C6: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8148540 - - thumb_func_start sub_81485CC -sub_81485CC: @ 81485CC - push {r4,lr} - ldr r3, _08148604 @ =gUnknown_03005FA0 - ldrh r0, [r3, 0x18] - ldrh r1, [r3, 0x8] - subs r0, r1 - lsls r0, 16 - ldr r1, _08148608 @ =gUnknown_03005F20 - ldr r4, [r1] - lsrs r0, 15 - ldr r1, _0814860C @ =0x0201d000 - adds r2, r0, r1 - ldrh r2, [r2] - strh r2, [r4, 0x24] - movs r2, 0x80 - lsls r2, 3 - adds r1, r2 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r4, 0x26] - ldrh r0, [r3, 0x8] - subs r0, 0x1 - strh r0, [r3, 0x8] - lsls r0, 16 - cmp r0, 0 - beq _08148610 - movs r0, 0 - b _08148612 - .align 2, 0 -_08148604: .4byte gUnknown_03005FA0 -_08148608: .4byte gUnknown_03005F20 -_0814860C: .4byte 0x0201d000 -_08148610: - movs r0, 0x1 -_08148612: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81485CC - - thumb_func_start sub_8148618 -sub_8148618: @ 8148618 - push {lr} - ldr r0, _08148628 @ =gUnknown_03005F20 - ldr r0, [r0] - bl FreeSpriteOamMatrix - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08148628: .4byte gUnknown_03005F20 - thumb_func_end sub_8148618 - - thumb_func_start sub_814862C -sub_814862C: @ 814862C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - ldr r1, _08148700 @ =gUnknown_03005FA0 - ldrh r0, [r1, 0x10] - mov r8, r0 - ldrh r0, [r1, 0x18] - mov r2, r8 - subs r0, r2 - lsls r0, 16 - lsrs r7, r0, 16 - ldrh r0, [r1, 0xC] - ldrh r3, [r1, 0x1A] - adds r0, r3 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp] - ldrh r0, [r1, 0xE] - ldrh r1, [r1, 0x1C] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r6, 0 - subs r0, r7, 0x1 - ldr r4, _08148704 @ =0x0201cffe - mov r10, r4 - cmp r6, r0 - bge _081486D4 - ldr r1, [sp] - lsls r0, r1, 16 - asrs r0, 16 - str r0, [sp, 0x4] -_08148674: - mov r2, r8 - adds r5, r2, r6 - lsls r5, 1 - ldr r4, _08148708 @ =0x0201d000 - adds r3, r5, r4 - ldrh r2, [r3] - ldr r0, [sp, 0x4] - subs r1, r2, r0 - ldr r4, _0814870C @ =0x0201d400 - adds r5, r4 - ldrh r0, [r5] - mov r12, r0 - mov r4, r9 - lsls r0, r4, 16 - asrs r0, 16 - mov r4, r12 - subs r0, r4, r0 - lsls r4, r0, 16 - lsrs r4, 16 - lsls r1, 16 - asrs r1, 16 - adds r6, 0x1 - adds r0, r1, 0 - muls r0, r6 - adds r1, r7, 0 - str r2, [sp, 0x8] - str r3, [sp, 0xC] - bl __divsi3 - ldr r2, [sp, 0x8] - subs r2, r0 - ldr r3, [sp, 0xC] - strh r2, [r3] - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - muls r0, r6 - adds r1, r7, 0 - bl __divsi3 - ldrh r1, [r5] - subs r1, r0 - strh r1, [r5] - lsls r6, 16 - lsrs r6, 16 - subs r0, r7, 0x1 - cmp r6, r0 - blt _08148674 -_081486D4: - mov r1, r8 - adds r0, r1, r7 - lsls r0, 1 - mov r2, r10 - adds r1, r0, r2 - mov r3, sp - ldrh r3, [r3] - strh r3, [r1] - movs r1, 0x80 - lsls r1, 3 - add r1, r10 - adds r0, r1 - mov r4, r9 - strh r4, [r0] - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08148700: .4byte gUnknown_03005FA0 -_08148704: .4byte 0x0201cffe -_08148708: .4byte 0x0201d000 -_0814870C: .4byte 0x0201d400 - thumb_func_end sub_814862C - - thumb_func_start sub_8148710 -sub_8148710: @ 8148710 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - ldr r1, _081487A4 @ =gUnknown_03005FA0 - ldrh r2, [r1, 0x1A] - ldrh r0, [r1, 0x14] - subs r2, r0 - ldrh r3, [r1, 0x1C] - ldrh r0, [r1, 0x16] - subs r3, r0 - adds r6, r1, 0 - ldr r1, _081487A8 @ =0x0201d000 - mov r9, r1 - lsls r2, 16 - asrs r2, 16 - mov r8, r2 - movs r2, 0x80 - lsls r2, 3 - add r2, r9 - mov r10, r2 - lsls r3, 16 - asrs r7, r3, 16 -_08148746: - movs r1, 0xA - ldrsh r0, [r6, r1] - cmp r0, 0 - bge _08148750 - negs r0, r0 -_08148750: - lsls r0, 16 - lsrs r0, 16 - ldrh r2, [r6, 0x6] - adds r0, r2 - lsls r5, r0, 16 - strh r0, [r6, 0x6] - ldrh r2, [r6, 0x4] - movs r1, 0x4 - ldrsh r0, [r6, r1] - cmp r0, 0 - bge _0814876A - movs r0, 0x1 - str r0, [sp] -_0814876A: - ldrh r0, [r6, 0x18] - ldrh r1, [r6, 0x8] - subs r0, r1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r1, 0 - beq _081487F0 - ldr r1, [sp] - cmp r1, 0 - bne _081487AC - movs r1, 0 - ldrsh r0, [r6, r1] - lsrs r5, 24 - adds r1, r2, r5 - lsls r1, 16 - asrs r1, 16 - bl Sin - lsls r4, 1 - mov r2, r9 - adds r1, r4, r2 - add r0, r8 - strh r0, [r1] - movs r1, 0 - ldrsh r0, [r6, r1] - ldrh r1, [r6, 0x6] - adds r1, r5 - b _081487CE - .align 2, 0 -_081487A4: .4byte gUnknown_03005FA0 -_081487A8: .4byte 0x0201d000 -_081487AC: - movs r1, 0 - ldrsh r0, [r6, r1] - lsrs r5, 24 - subs r1, r2, r5 - lsls r1, 16 - asrs r1, 16 - bl Sin - lsls r4, 1 - mov r2, r9 - adds r1, r4, r2 - add r0, r8 - strh r0, [r1] - movs r1, 0 - ldrsh r0, [r6, r1] - ldrh r1, [r6, 0x6] - subs r1, r5 -_081487CE: - lsls r1, 16 - asrs r1, 16 - bl Cos - add r4, r10 - adds r0, r7, r0 - strh r0, [r4] - ldrh r0, [r6, 0x2] - ldrh r2, [r6] - adds r0, r2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r6] - ldrh r0, [r6, 0x8] - subs r0, 0x1 - strh r0, [r6, 0x8] - b _08148746 -_081487F0: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8148710 - .align 2, 0 @ Don't pad with nop. diff --git a/ld_script.txt b/ld_script.txt index fbab390f3..cf42e2aaf 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -204,6 +204,7 @@ SECTIONS { src/mystery_event_menu.o(.text); src/save_failed_screen.o(.text); asm/rom_81473B8.o(.text); + asm/pokeblock_feed.o(.text); src/clear_save_data_menu.o(.text); asm/rom_8148B8C.o(.text); src/menu_cursor.o(.text); |