diff options
32 files changed, 594 insertions, 1287 deletions
diff --git a/asm/battle_anim_8074480.s b/asm/battle_anim_8074480.s index b900ba15a..f90748d37 100644 --- a/asm/battle_anim_8074480.s +++ b/asm/battle_anim_8074480.s @@ -5050,7 +5050,7 @@ _0807694E: beq _080769C4 _0807699A: lsls r0, r6, 3 - ldr r1, _080769C0 @ =gUnknown_82350AC + ldr r1, _080769C0 @ =gMonFrontPicTable adds r0, r1 ldr r1, _080769B8 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -5065,10 +5065,10 @@ _080769B0: .4byte gUnknown_83AE084 _080769B4: .4byte gUnknown_83AE054 _080769B8: .4byte gMonSpritesGfxPtr _080769BC: .4byte gUnknown_2024018 -_080769C0: .4byte gUnknown_82350AC +_080769C0: .4byte gMonFrontPicTable _080769C4: lsls r0, r6, 3 - ldr r1, _080769E4 @ =gUnknown_82350AC + ldr r1, _080769E4 @ =gMonFrontPicTable adds r0, r1 ldr r1, _080769E8 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -5080,10 +5080,10 @@ _080769C4: str r2, [sp] adds r2, r6, 0 mov r3, r8 - bl sub_800ECF0 + bl LoadSpecialPokePic b _08076A7C .align 2, 0 -_080769E4: .4byte gUnknown_82350AC +_080769E4: .4byte gMonFrontPicTable _080769E8: .4byte gMonSpritesGfxPtr _080769EC: adds r0, r6, 0 @@ -5120,7 +5120,7 @@ _080769EC: beq _08076A60 _08076A32: lsls r0, r6, 3 - ldr r1, _08076A58 @ =gUnknown_823654C + ldr r1, _08076A58 @ =gMonBackPicTable adds r0, r1 ldr r1, _08076A5C @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -5137,11 +5137,11 @@ _08076A46: b _08076A7C .align 2, 0 _08076A54: .4byte gUnknown_2024018 -_08076A58: .4byte gUnknown_823654C +_08076A58: .4byte gMonBackPicTable _08076A5C: .4byte gMonSpritesGfxPtr _08076A60: lsls r0, r6, 3 - ldr r1, _08076AC8 @ =gUnknown_823654C + ldr r1, _08076AC8 @ =gMonBackPicTable adds r0, r1 ldr r1, _08076ACC @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -5152,7 +5152,7 @@ _08076A60: str r2, [sp] adds r2, r6, 0 mov r3, r8 - bl sub_800ECF0 + bl LoadSpecialPokePic _08076A7C: ldr r5, _08076ACC @ =gMonSpritesGfxPtr ldr r0, [r5] @@ -5190,7 +5190,7 @@ _08076A7C: ldr r3, _08076AD8 @ =gUnknown_82349CC b _08076AEE .align 2, 0 -_08076AC8: .4byte gUnknown_823654C +_08076AC8: .4byte gMonBackPicTable _08076ACC: .4byte gMonSpritesGfxPtr _08076AD0: .4byte 0x06010000 _08076AD4: .4byte gUnknown_83AE054 diff --git a/asm/battle_controller_link_opponent.s b/asm/battle_controller_link_opponent.s index e2c52a592..a778933e8 100644 --- a/asm/battle_controller_link_opponent.s +++ b/asm/battle_controller_link_opponent.s @@ -4302,7 +4302,7 @@ _0803C992: adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x2E] - ldr r0, _0803CAE4 @ =gUnknown_8239A1C + ldr r0, _0803CAE4 @ =gTrainerFrontPicPaletteTable mov r1, r9 lsls r6, r1, 3 adds r0, r6, r0 @@ -4334,7 +4334,7 @@ _0803C992: lsls r0, 22 lsrs r0, 22 strh r0, [r1, 0x38] - ldr r0, _0803CAE8 @ =gUnknown_823957C + ldr r0, _0803CAE8 @ =gTrainerFrontPicTable adds r6, r0 ldrh r0, [r6, 0x6] bl GetSpriteTileStartByTag @@ -4395,8 +4395,8 @@ _0803CAD4: .4byte gUnknown_823932C _0803CAD8: .4byte gUnknown_2023D44 _0803CADC: .4byte gSprites _0803CAE0: .4byte 0x0000ff10 -_0803CAE4: .4byte gUnknown_8239A1C -_0803CAE8: .4byte gUnknown_823957C +_0803CAE4: .4byte gTrainerFrontPicPaletteTable +_0803CAE8: .4byte gTrainerFrontPicTable _0803CAEC: .4byte 0x000003ff _0803CAF0: .4byte 0xfffffc00 _0803CAF4: .4byte sub_8033EEC diff --git a/asm/battle_controller_opponent.s b/asm/battle_controller_opponent.s index 12185d562..f1585b5e7 100644 --- a/asm/battle_controller_opponent.s +++ b/asm/battle_controller_opponent.s @@ -4251,7 +4251,7 @@ _08037D3A: adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x2E] - ldr r0, _08037E88 @ =gUnknown_8239A1C + ldr r0, _08037E88 @ =gTrainerFrontPicPaletteTable mov r1, r9 lsls r6, r1, 3 adds r0, r6, r0 @@ -4283,7 +4283,7 @@ _08037D3A: lsls r0, 22 lsrs r0, 22 strh r0, [r1, 0x38] - ldr r0, _08037E8C @ =gUnknown_823957C + ldr r0, _08037E8C @ =gTrainerFrontPicTable adds r6, r0 ldrh r0, [r6, 0x6] bl GetSpriteTileStartByTag @@ -4344,8 +4344,8 @@ _08037E78: .4byte gUnknown_823932C _08037E7C: .4byte gUnknown_2023D44 _08037E80: .4byte gSprites _08037E84: .4byte 0x0000ff10 -_08037E88: .4byte gUnknown_8239A1C -_08037E8C: .4byte gUnknown_823957C +_08037E88: .4byte gTrainerFrontPicPaletteTable +_08037E8C: .4byte gTrainerFrontPicTable _08037E90: .4byte 0x000003ff _08037E94: .4byte 0xfffffc00 _08037E98: .4byte sub_8033EEC @@ -4473,7 +4473,7 @@ _08037F0E: adds r0, r4 ldr r1, _08038058 @ =0x0000fffe strh r1, [r0, 0x2E] - ldr r0, _0803805C @ =gUnknown_8239A1C + ldr r0, _0803805C @ =gTrainerFrontPicPaletteTable mov r3, r9 lsls r6, r3, 3 adds r0, r6, r0 @@ -4505,7 +4505,7 @@ _08037F0E: lsls r0, 22 lsrs r0, 22 strh r0, [r1, 0x38] - ldr r0, _08038060 @ =gUnknown_823957C + ldr r0, _08038060 @ =gTrainerFrontPicTable adds r6, r0 ldrh r0, [r6, 0x6] bl GetSpriteTileStartByTag @@ -4564,8 +4564,8 @@ _0803804C: .4byte gUnknown_823932C _08038050: .4byte gUnknown_2023D44 _08038054: .4byte gSprites _08038058: .4byte 0x0000fffe -_0803805C: .4byte gUnknown_8239A1C -_08038060: .4byte gUnknown_823957C +_0803805C: .4byte gTrainerFrontPicPaletteTable +_08038060: .4byte gTrainerFrontPicTable _08038064: .4byte 0x000003ff _08038068: .4byte 0xfffffc00 _0803806C: .4byte sub_8033EEC diff --git a/asm/battle_controller_pokedude.s b/asm/battle_controller_pokedude.s index 957a6f658..37e3d688a 100644 --- a/asm/battle_controller_pokedude.s +++ b/asm/battle_controller_pokedude.s @@ -4304,7 +4304,7 @@ _081583F0: adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x2E] - ldr r0, _08158524 @ =gUnknown_8239A1C + ldr r0, _08158524 @ =gTrainerFrontPicPaletteTable mov r1, r8 lsls r6, r1, 3 adds r0, r6 @@ -4334,7 +4334,7 @@ _081583F0: lsls r0, 22 lsrs r0, 22 strh r0, [r1, 0x38] - ldr r0, _08158528 @ =gUnknown_823957C + ldr r0, _08158528 @ =gTrainerFrontPicTable adds r0, r6 ldrh r0, [r0, 0x6] bl GetSpriteTileStartByTag @@ -4390,8 +4390,8 @@ _08158514: .4byte gUnknown_823932C _08158518: .4byte gUnknown_2023D44 _0815851C: .4byte gSprites _08158520: .4byte 0x0000ff10 -_08158524: .4byte gUnknown_8239A1C -_08158528: .4byte gUnknown_823957C +_08158524: .4byte gTrainerFrontPicPaletteTable +_08158528: .4byte gTrainerFrontPicTable _0815852C: .4byte 0x000003ff _08158530: .4byte 0xfffffc00 _08158534: .4byte sub_8033EEC diff --git a/asm/battle_gfx_sfx_util.s b/asm/battle_gfx_sfx_util.s index 9ae7accdc..d5ae72291 100644 --- a/asm/battle_gfx_sfx_util.s +++ b/asm/battle_gfx_sfx_util.s @@ -756,7 +756,7 @@ _0803436C: bl GetBattlerPosition lsls r0, 24 lsls r2, r5, 3 - ldr r1, _080343C4 @ =gUnknown_82350AC + ldr r1, _080343C4 @ =gMonFrontPicTable adds r2, r1 ldr r1, _080343C8 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -788,7 +788,7 @@ _0803436C: b _080343DA .align 2, 0 _080343C0: .4byte gUnknown_2024008 -_080343C4: .4byte gUnknown_82350AC +_080343C4: .4byte gMonFrontPicTable _080343C8: .4byte gMonSpritesGfxPtr _080343CC: .4byte gUnknown_2024018 _080343D0: @@ -946,7 +946,7 @@ _080344E4: beq _08034548 _0803451C: lsls r0, r5, 3 - ldr r1, _08034540 @ =gUnknown_823654C + ldr r1, _08034540 @ =gMonBackPicTable adds r0, r1 ldr r1, _08034544 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -961,11 +961,11 @@ _0803451C: .align 2, 0 _08034538: .4byte gUnknown_2024008 _0803453C: .4byte gUnknown_2024018 -_08034540: .4byte gUnknown_823654C +_08034540: .4byte gMonBackPicTable _08034544: .4byte gMonSpritesGfxPtr _08034548: lsls r0, r5, 3 - ldr r1, _08034584 @ =gUnknown_823654C + ldr r1, _08034584 @ =gMonBackPicTable adds r0, r1 ldr r1, _08034588 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -994,7 +994,7 @@ _08034562: bl GetMonFrontSpritePal b _0803459A .align 2, 0 -_08034584: .4byte gUnknown_823654C +_08034584: .4byte gMonBackPicTable _08034588: .4byte gMonSpritesGfxPtr _0803458C: .4byte gUnknown_2024018 _08034590: @@ -1149,7 +1149,7 @@ sub_80346C4: @ 80346C4 adds r4, r0, 0 lsls r4, 24 lsls r5, 3 - ldr r6, _0803473C @ =gUnknown_823957C + ldr r6, _0803473C @ =gTrainerFrontPicTable adds r6, r5, r6 ldr r0, _08034740 @ =gMonSpritesGfxPtr mov r8, r0 @@ -1181,7 +1181,7 @@ sub_80346C4: @ 80346C4 str r0, [sp, 0x4] mov r0, sp bl LoadSpriteSheet - ldr r0, _0803474C @ =gUnknown_8239A1C + ldr r0, _0803474C @ =gTrainerFrontPicPaletteTable adds r5, r0 adds r0, r5, 0 bl sub_800F078 @@ -1192,11 +1192,11 @@ sub_80346C4: @ 80346C4 pop {r0} bx r0 .align 2, 0 -_0803473C: .4byte gUnknown_823957C +_0803473C: .4byte gTrainerFrontPicTable _08034740: .4byte gMonSpritesGfxPtr _08034744: .4byte 0xffff0000 _08034748: .4byte 0x0000ffff -_0803474C: .4byte gUnknown_8239A1C +_0803474C: .4byte gTrainerFrontPicPaletteTable thumb_func_end sub_80346C4 thumb_func_start sub_8034750 @@ -1231,12 +1231,12 @@ sub_803477C: @ 803477C push {r4,lr} adds r4, r0, 0 lsls r4, 16 - ldr r0, _080347A0 @ =gUnknown_8239A1C + ldr r0, _080347A0 @ =gTrainerFrontPicPaletteTable lsrs r4, 13 adds r0, r4, r0 ldrh r0, [r0, 0x4] bl FreeSpritePaletteByTag - ldr r0, _080347A4 @ =gUnknown_823957C + ldr r0, _080347A4 @ =gTrainerFrontPicTable adds r4, r0 ldrh r0, [r4, 0x6] bl FreeSpriteTilesByTag @@ -1244,8 +1244,8 @@ sub_803477C: @ 803477C pop {r0} bx r0 .align 2, 0 -_080347A0: .4byte gUnknown_8239A1C -_080347A4: .4byte gUnknown_823957C +_080347A0: .4byte gTrainerFrontPicPaletteTable +_080347A4: .4byte gTrainerFrontPicTable thumb_func_end sub_803477C thumb_func_start sub_80347A8 @@ -1852,7 +1852,7 @@ _08034C16: adds r7, r0, 0 mov r1, r8 lsls r0, r1, 3 - ldr r1, _08034D60 @ =gUnknown_82350AC + ldr r1, _08034D60 @ =gMonFrontPicTable adds r0, r1 ldr r4, _08034D64 @ =gMonSpritesGfxPtr ldr r1, [r4] @@ -1961,7 +1961,7 @@ _08034C16: .align 2, 0 _08034D58: .4byte gBattlerPartyIndexes _08034D5C: .4byte gEnemyParty -_08034D60: .4byte gUnknown_82350AC +_08034D60: .4byte gMonFrontPicTable _08034D64: .4byte gMonSpritesGfxPtr _08034D68: .4byte gSprites _08034D6C: .4byte gUnknown_2023D44 @@ -2122,7 +2122,7 @@ _08034E90: adds r7, r0, 0 mov r2, r8 lsls r0, r2, 3 - ldr r1, _08034F04 @ =gUnknown_823654C + ldr r1, _08034F04 @ =gMonBackPicTable adds r0, r1 ldr r1, _08034F08 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -2142,7 +2142,7 @@ _08034E90: .align 2, 0 _08034EFC: .4byte gBattlerPartyIndexes _08034F00: .4byte gPlayerParty -_08034F04: .4byte gUnknown_823654C +_08034F04: .4byte gMonBackPicTable _08034F08: .4byte gMonSpritesGfxPtr _08034F0C: .4byte gUnknown_2024008 _08034F10: @@ -2166,7 +2166,7 @@ _08034F10: adds r7, r0, 0 mov r2, r8 lsls r0, r2, 3 - ldr r1, _0803507C @ =gUnknown_82350AC + ldr r1, _0803507C @ =gMonFrontPicTable adds r0, r1 ldr r1, _08035080 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -2315,7 +2315,7 @@ _08035062: .align 2, 0 _08035074: .4byte gBattlerPartyIndexes _08035078: .4byte gEnemyParty -_0803507C: .4byte gUnknown_82350AC +_0803507C: .4byte gMonFrontPicTable _08035080: .4byte gMonSpritesGfxPtr _08035084: .4byte gUnknown_2024008 _08035088: .4byte gUnknown_2023D44 diff --git a/asm/battle_records.s b/asm/battle_records.s index c407a988a..2684fbd43 100644 --- a/asm/battle_records.s +++ b/asm/battle_records.s @@ -474,7 +474,7 @@ sub_80CD608: @ 80CD608 bl ScanlineEffect_Stop bl ResetTasks bl ResetSpriteData - bl dp13_810BB8C + bl ResetAllPicSprites bl ResetPaletteFade bl FreeAllSpritePalettes pop {r0} diff --git a/asm/battle_script_commands.s b/asm/battle_script_commands.s index b01533468..9c69714cb 100644 --- a/asm/battle_script_commands.s +++ b/asm/battle_script_commands.s @@ -32536,7 +32536,7 @@ _0802DAE0: str r0, [sp, 0xC] adds r0, r5, 0 movs r3, 0x1 - bl sub_810C1CC + bl CreateMonPicSprite_HandleDeoxys str r4, [sp, 0x14] add r0, sp, 0x14 ldr r1, _0802DB48 @ =gPlttBufferFaded diff --git a/asm/battle_transition.s b/asm/battle_transition.s index 195d67c8c..cf761a220 100644 --- a/asm/battle_transition.s +++ b/asm/battle_transition.s @@ -4953,7 +4953,7 @@ sub_80D2EA4: @ 80D2EA4 ldr r0, [r0] ldrb r0, [r0, 0x8] movs r1, 0x1 - bl sub_810C374 + bl PlayerGenderToFrontTrainerPicId_Debug lsls r0, 24 lsrs r0, 24 movs r1, 0x88 diff --git a/asm/decompress.s b/asm/decompress.s index 8c213a8d1..175304245 100644 --- a/asm/decompress.s +++ b/asm/decompress.s @@ -132,12 +132,12 @@ DecompressPicFromTable: @ 800EC8C lsls r0, 1 cmp r5, r0 ble _0800ECAC - ldr r0, _0800ECA8 @ =gUnknown_82350AC + ldr r0, _0800ECA8 @ =gMonFrontPicTable ldr r0, [r0] bl LZ77UnCompWram b _0800ECB4 .align 2, 0 -_0800ECA8: .4byte gUnknown_82350AC +_0800ECA8: .4byte gMonFrontPicTable _0800ECAC: ldr r0, [r3] adds r1, r4, 0 @@ -158,7 +158,7 @@ sub_800ECC4: @ 800ECC4 adds r4, r0, 0 adds r5, r1, 0 lsls r0, r2, 3 - ldr r1, _0800ECEC @ =gUnknown_82350AC + ldr r1, _0800ECEC @ =gMonFrontPicTable adds r0, r1 movs r1, 0 cmp r4, r0 @@ -168,17 +168,17 @@ _0800ECDA: str r1, [sp] adds r0, r4, 0 adds r1, r5, 0 - bl sub_800ECF0 + bl LoadSpecialPokePic add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 -_0800ECEC: .4byte gUnknown_82350AC +_0800ECEC: .4byte gMonFrontPicTable thumb_func_end sub_800ECC4 - thumb_func_start sub_800ECF0 -sub_800ECF0: @ 800ECF0 + thumb_func_start LoadSpecialPokePic +LoadSpecialPokePic: @ 800ECF0 push {r4-r7,lr} mov r7, r8 push {r7} @@ -227,34 +227,34 @@ _0800ED48: mov r0, r8 cmp r0, 0 bne _0800ED5C - ldr r0, _0800ED58 @ =gUnknown_823654C + ldr r0, _0800ED58 @ =gMonBackPicTable lsls r1, 3 adds r1, r0 ldr r0, [r1] b _0800ED78 .align 2, 0 -_0800ED58: .4byte gUnknown_823654C +_0800ED58: .4byte gMonBackPicTable _0800ED5C: - ldr r0, _0800ED68 @ =gUnknown_82350AC + ldr r0, _0800ED68 @ =gMonFrontPicTable lsls r1, 3 adds r1, r0 ldr r0, [r1] b _0800ED78 .align 2, 0 -_0800ED68: .4byte gUnknown_82350AC +_0800ED68: .4byte gMonFrontPicTable _0800ED6C: movs r0, 0xCE lsls r0, 1 cmp r7, r0 ble _0800ED84 - ldr r0, _0800ED80 @ =gUnknown_82350AC + ldr r0, _0800ED80 @ =gMonFrontPicTable ldr r0, [r0] _0800ED78: adds r1, r4, 0 bl LZ77UnCompWram b _0800ED8C .align 2, 0 -_0800ED80: .4byte gUnknown_82350AC +_0800ED80: .4byte gMonFrontPicTable _0800ED84: ldr r0, [r6] adds r1, r4, 0 @@ -274,7 +274,7 @@ _0800ED8C: pop {r4-r7} pop {r0} bx r0 - thumb_func_end sub_800ECF0 + thumb_func_end LoadSpecialPokePic thumb_func_start sub_800EDAC sub_800EDAC: @ 800EDAC @@ -748,12 +748,12 @@ DecompressPicFromTable_DontHandleDeoxys: @ 800F0E0 lsls r0, 1 cmp r2, r0 ble _0800F0FC - ldr r0, _0800F0F8 @ =gUnknown_82350AC + ldr r0, _0800F0F8 @ =gMonFrontPicTable ldr r0, [r0] bl LZ77UnCompWram b _0800F102 .align 2, 0 -_0800F0F8: .4byte gUnknown_82350AC +_0800F0F8: .4byte gMonFrontPicTable _0800F0FC: ldr r0, [r3] bl LZ77UnCompWram @@ -769,7 +769,7 @@ HandleLoadSpecialPokePic_DontHandleDeoxys: @ 800F108 adds r4, r0, 0 adds r5, r1, 0 lsls r0, r2, 3 - ldr r1, _0800F130 @ =gUnknown_82350AC + ldr r1, _0800F130 @ =gMonFrontPicTable adds r0, r1 movs r1, 0 cmp r4, r0 @@ -785,7 +785,7 @@ _0800F11E: pop {r0} bx r0 .align 2, 0 -_0800F130: .4byte gUnknown_82350AC +_0800F130: .4byte gMonFrontPicTable thumb_func_end HandleLoadSpecialPokePic_DontHandleDeoxys thumb_func_start LoadSpecialPokePic_DontHandleDeoxys @@ -838,34 +838,34 @@ _0800F18C: mov r0, r8 cmp r0, 0 bne _0800F1A0 - ldr r0, _0800F19C @ =gUnknown_823654C + ldr r0, _0800F19C @ =gMonBackPicTable lsls r1, 3 adds r1, r0 ldr r0, [r1] b _0800F1BC .align 2, 0 -_0800F19C: .4byte gUnknown_823654C +_0800F19C: .4byte gMonBackPicTable _0800F1A0: - ldr r0, _0800F1AC @ =gUnknown_82350AC + ldr r0, _0800F1AC @ =gMonFrontPicTable lsls r1, 3 adds r1, r0 ldr r0, [r1] b _0800F1BC .align 2, 0 -_0800F1AC: .4byte gUnknown_82350AC +_0800F1AC: .4byte gMonFrontPicTable _0800F1B0: movs r0, 0xCE lsls r0, 1 cmp r7, r0 ble _0800F1C8 - ldr r0, _0800F1C4 @ =gUnknown_82350AC + ldr r0, _0800F1C4 @ =gMonFrontPicTable ldr r0, [r0] _0800F1BC: adds r1, r5, 0 bl LZ77UnCompWram b _0800F1D0 .align 2, 0 -_0800F1C4: .4byte gUnknown_82350AC +_0800F1C4: .4byte gMonFrontPicTable _0800F1C8: ldr r0, [r6] adds r1, r5, 0 diff --git a/asm/egg_hatch.s b/asm/egg_hatch.s index aa5b2d8f6..914012da5 100644 --- a/asm/egg_hatch.s +++ b/asm/egg_hatch.s @@ -398,7 +398,7 @@ _08046F1C: bl GetMonData adds r3, r0, 0 lsls r0, r4, 3 - ldr r1, _08046F64 @ =gUnknown_82350AC + ldr r1, _08046F64 @ =gMonFrontPicTable adds r0, r1 ldr r1, _08046F68 @ =gMonSpritesGfxPtr ldr r2, [r1] @@ -418,7 +418,7 @@ _08046F1C: strh r4, [r0] b _08046FA6 .align 2, 0 -_08046F64: .4byte gUnknown_82350AC +_08046F64: .4byte gMonFrontPicTable _08046F68: .4byte gMonSpritesGfxPtr _08046F6C: adds r0, r5, 0 diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s index f66a066ae..db6f44919 100644 --- a/asm/evolution_scene.s +++ b/asm/evolution_scene.s @@ -239,7 +239,7 @@ EvolutionScene: @ 80CDDF4 bl GetMonData mov r9, r0 lsls r0, r5, 3 - ldr r1, _080CE0B8 @ =gUnknown_82350AC + ldr r1, _080CE0B8 @ =gMonFrontPicTable adds r0, r1 ldr r2, _080CE0BC @ =gMonSpritesGfxPtr ldr r1, [r2] @@ -295,7 +295,7 @@ EvolutionScene: @ 80CDDF4 strb r0, [r1] mov r1, r10 lsls r0, r1, 3 - ldr r2, _080CE0B8 @ =gUnknown_82350AC + ldr r2, _080CE0B8 @ =gMonFrontPicTable adds r0, r2 ldr r2, _080CE0BC @ =gMonSpritesGfxPtr ldr r1, [r2] @@ -415,7 +415,7 @@ _080CE0A8: .4byte gUnknown_2039A20 _080CE0AC: .4byte gStringVar1 _080CE0B0: .4byte gStringVar2 _080CE0B4: .4byte gSpeciesNames -_080CE0B8: .4byte gUnknown_82350AC +_080CE0B8: .4byte gMonFrontPicTable _080CE0BC: .4byte gMonSpritesGfxPtr _080CE0C0: .4byte gMultiuseSpriteTemplate _080CE0C4: .4byte gDummySpriteAffineAnimTable @@ -524,7 +524,7 @@ CB2_EvolutionSceneLoadGraphics: @ 80CE0E8 movs r0, 0x4 strb r0, [r1] lsls r0, r5, 3 - ldr r1, _080CE2B8 @ =gUnknown_82350AC + ldr r1, _080CE2B8 @ =gMonFrontPicTable adds r0, r1 ldr r1, _080CE2BC @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -618,7 +618,7 @@ _080CE2A8: .4byte gBattle_BG3_X _080CE2AC: .4byte gBattle_BG3_Y _080CE2B0: .4byte gUnknown_2022B50 _080CE2B4: .4byte gReservedSpritePaletteCount -_080CE2B8: .4byte gUnknown_82350AC +_080CE2B8: .4byte gMonFrontPicTable _080CE2BC: .4byte gMonSpritesGfxPtr _080CE2C0: .4byte gMultiuseSpriteTemplate _080CE2C4: .4byte gDummySpriteAffineAnimTable @@ -770,7 +770,7 @@ _080CE414: bl GetMonData adds r4, r0, 0 lsls r0, r6, 3 - ldr r1, _080CE454 @ =gUnknown_82350AC + ldr r1, _080CE454 @ =gMonFrontPicTable adds r0, r1 ldr r1, _080CE458 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -788,7 +788,7 @@ _080CE414: bl LoadCompressedPalette b _080CE4EC .align 2, 0 -_080CE454: .4byte gUnknown_82350AC +_080CE454: .4byte gMonFrontPicTable _080CE458: .4byte gMonSpritesGfxPtr _080CE45C: adds r0, r6, 0 @@ -951,7 +951,7 @@ TradeEvolutionScene: @ 80CE540 movs r4, 0 strb r6, [r0] lsls r0, r5, 3 - ldr r1, _080CE6C4 @ =gUnknown_82350AC + ldr r1, _080CE6C4 @ =gMonFrontPicTable adds r0, r1 ldr r1, _080CE6C8 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -1069,7 +1069,7 @@ _080CE6B4: .4byte gStringVar2 _080CE6B8: .4byte gSpeciesNames _080CE6BC: .4byte gAffineAnimsDisabled _080CE6C0: .4byte gUnknown_2039A20 -_080CE6C4: .4byte gUnknown_82350AC +_080CE6C4: .4byte gMonFrontPicTable _080CE6C8: .4byte gMonSpritesGfxPtr _080CE6CC: .4byte gMultiuseSpriteTemplate _080CE6D0: .4byte gDummySpriteAffineAnimTable diff --git a/asm/field_effect.s b/asm/field_effect.s index 785e36266..6727b116c 100644 --- a/asm/field_effect.s +++ b/asm/field_effect.s @@ -603,13 +603,13 @@ CreateTrainerSprite: @ 8083858 lsrs r0, 24 mov r9, r0 lsrs r4, 21 - ldr r3, _080838E0 @ =gUnknown_8239A1C + ldr r3, _080838E0 @ =gTrainerFrontPicPaletteTable mov r8, r3 add r8, r4 mov r0, r8 adds r1, r7, 0 bl LoadCompressedObjectPaletteOverrideBuffer - ldr r0, _080838E4 @ =gUnknown_823957C + ldr r0, _080838E4 @ =gTrainerFrontPicTable adds r4, r0 adds r0, r4, 0 adds r1, r7, 0 @@ -649,8 +649,8 @@ CreateTrainerSprite: @ 8083858 pop {r1} bx r1 .align 2, 0 -_080838E0: .4byte gUnknown_8239A1C -_080838E4: .4byte gUnknown_823957C +_080838E0: .4byte gTrainerFrontPicPaletteTable +_080838E4: .4byte gTrainerFrontPicTable _080838E8: .4byte gUnknown_83CBE50 _080838EC: .4byte gDummySpriteAnimTable _080838F0: .4byte gDummySpriteAffineAnimTable @@ -666,12 +666,12 @@ LoadTrainerGfx_TrainerCard: @ 80838F8 lsls r4, 24 lsls r5, 16 lsrs r5, 16 - ldr r0, _08083928 @ =gUnknown_823957C + ldr r0, _08083928 @ =gTrainerFrontPicTable lsrs r4, 21 adds r0, r4, r0 ldr r0, [r0] bl LZDecompressVram - ldr r0, _0808392C @ =gUnknown_8239A1C + ldr r0, _0808392C @ =gTrainerFrontPicPaletteTable adds r4, r0 ldr r0, [r4] adds r1, r5, 0 @@ -681,8 +681,8 @@ LoadTrainerGfx_TrainerCard: @ 80838F8 pop {r0} bx r0 .align 2, 0 -_08083928: .4byte gUnknown_823957C -_0808392C: .4byte gUnknown_8239A1C +_08083928: .4byte gTrainerFrontPicTable +_0808392C: .4byte gTrainerFrontPicPaletteTable thumb_func_end LoadTrainerGfx_TrainerCard thumb_func_start AddNewGameBirchObject @@ -742,7 +742,7 @@ sub_8083970: @ 8083970 movs r1, 0 adds r2, r3, 0 movs r3, 0x1 - bl sub_810C1CC + bl CreateMonPicSprite_HandleDeoxys lsls r0, 16 lsrs r5, r0, 16 ldrh r0, [r4, 0x4] @@ -806,7 +806,7 @@ sub_80839D4: @ 80839D4 mov r1, r9 mov r2, r10 movs r3, 0x1 - bl sub_810C1CC + bl CreateMonPicSprite_HandleDeoxys lsls r0, 16 lsrs r4, r0, 16 mov r1, r8 @@ -854,7 +854,7 @@ sub_8083A5C: @ 8083A5C bl FreeOamMatrix _08083A7A: adds r0, r5, 0 - bl sub_810C214 + bl FreeAndDestroyMonPicSprite pop {r4,r5} pop {r0} bx r0 diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s index c74165999..8a240ed43 100644 --- a/asm/hall_of_fame.s +++ b/asm/hall_of_fame.s @@ -692,7 +692,7 @@ _080F22F2: ldr r3, _080F238C @ =0x0000ffff str r3, [sp, 0xC] movs r3, 0x1 - bl sub_810C1CC + bl CreateMonPicSprite_HandleDeoxys lsls r0, 24 lsrs r0, 24 ldr r3, _080F2390 @ =gSprites @@ -1172,7 +1172,7 @@ sub_80F26D4: @ 80F26D4 ldr r0, [r0] ldrb r0, [r0, 0x8] movs r1, 0x1 - bl sub_810C374 + bl PlayerGenderToFrontTrainerPicId_Debug lsls r0, 16 lsrs r0, 16 movs r1, 0x6 @@ -1182,7 +1182,7 @@ sub_80F26D4: @ 80F26D4 movs r1, 0x1 movs r2, 0x78 movs r3, 0x48 - bl sub_810C2A4 + bl CreateTrainerPicSprite ldr r1, _080F2750 @ =gTasks lsls r4, r5, 2 adds r4, r5 @@ -1383,7 +1383,7 @@ _080F28AC: ldrb r0, [r4] cmp r0, 0xFF beq _080F28B6 - bl sub_810C214 + bl FreeAndDestroyMonPicSprite _080F28B6: adds r4, 0x2 subs r5, 0x1 @@ -1394,7 +1394,7 @@ _080F28B6: lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x10] - bl sub_810C2E8 + bl FreeAndDestroyTrainerPicSprite movs r0, 0 bl HideBg movs r0, 0x1 @@ -1825,7 +1825,7 @@ _080F2C4C: ldr r3, _080F2CA0 @ =0x0000ffff str r3, [sp, 0xC] movs r3, 0x1 - bl sub_810C1CC + bl CreateMonPicSprite_HandleDeoxys lsls r0, 16 lsrs r0, 16 ldr r2, _080F2CA4 @ =gSprites @@ -2118,7 +2118,7 @@ _080F2EC4: ldrb r0, [r0] cmp r0, 0xFF beq _080F2ED6 - bl sub_810C214 + bl FreeAndDestroyMonPicSprite _080F2ED6: adds r0, r4, 0x1 lsls r0, 16 @@ -3074,7 +3074,7 @@ sub_80F36BC: @ 80F36BC bl ResetTasks bl ResetSpriteData bl reset_temp_tile_data_buffers - bl dp13_810BB8C + bl ResetAllPicSprites bl FreeAllSpritePalettes ldr r1, _080F36EC @ =gReservedSpritePaletteCount movs r0, 0x8 diff --git a/asm/overworld.s b/asm/overworld.s index d191a9009..38c5bbdd7 100644 --- a/asm/overworld.s +++ b/asm/overworld.s @@ -4631,7 +4631,7 @@ sub_8057024: @ 8057024 bl ResetSpriteData bl ResetPaletteFade bl ScanlineEffect_Clear - bl dp13_810BB8C + bl ResetAllPicSprites bl ResetCameraUpdateInfo bl InstallCameraPanAheadCallback cmp r4, 0 @@ -5396,7 +5396,7 @@ _08057690: b _0805772A _0805769C: bl ScanlineEffect_Clear - bl dp13_810BB8C + bl ResetAllPicSprites bl ResetCameraUpdateInfo bl InstallCameraPanAheadCallback bl FieldEffectActiveListClear diff --git a/asm/pokedex_screen.s b/asm/pokedex_screen.s index 1d0be1b23..33c3c0851 100644 --- a/asm/pokedex_screen.s +++ b/asm/pokedex_screen.s @@ -7777,7 +7777,7 @@ _08106504: ldrb r0, [r0] movs r1, 0x2 bl CopyWindowToVram - bl dp13_810BB8C + bl ResetAllPicSprites ldr r0, _081066BC @ =gUnknown_8452368 movs r1, 0x90 lsls r1, 1 @@ -7802,7 +7802,7 @@ _08106534: ldr r0, [sp, 0x1C] movs r1, 0x8 movs r3, 0x1 - bl sub_810C1CC + bl CreateMonPicSprite_HandleDeoxys ldr r1, [r7] adds r1, 0x58 strb r0, [r1] @@ -7892,7 +7892,7 @@ _08106534: ldr r0, [r0] ldrb r0, [r0, 0x8] movs r1, 0x1 - bl sub_810C374 + bl PlayerGenderToFrontTrainerPicId_Debug lsls r0, 16 lsrs r0, 16 movs r3, 0 @@ -7902,7 +7902,7 @@ _08106534: movs r1, 0x1 movs r2, 0x50 movs r3, 0x68 - bl sub_810C2A4 + bl CreateTrainerPicSprite ldr r1, [r7] adds r1, 0x59 strb r0, [r1] @@ -8114,7 +8114,7 @@ _081067CE: ldrb r0, [r1] cmp r0, 0xFF beq _081067F2 - bl sub_810C2E8 + bl FreeAndDestroyTrainerPicSprite _081067F2: ldr r0, [r4] adds r1, r0, 0 @@ -8122,7 +8122,7 @@ _081067F2: ldrb r0, [r1] cmp r0, 0xFF beq _08106802 - bl sub_810C214 + bl FreeAndDestroyMonPicSprite _08106802: movs r0, 0 pop {r4,r5} diff --git a/asm/pokemon_special_anim.s b/asm/pokemon_special_anim.s index 20ed51bda..56b077cef 100644 --- a/asm/pokemon_special_anim.s +++ b/asm/pokemon_special_anim.s @@ -2441,7 +2441,7 @@ _0811D884: cmp r4, 0 beq _0811D916 lsls r0, r7, 3 - ldr r1, _0811D900 @ =gUnknown_82350AC + ldr r1, _0811D900 @ =gMonFrontPicTable adds r0, r1 adds r1, r6, 0 adds r2, r7, 0 @@ -2474,7 +2474,7 @@ _0811D884: bl sub_811DB14 b _0811D910 .align 2, 0 -_0811D900: .4byte gUnknown_82350AC +_0811D900: .4byte gMonFrontPicTable _0811D904: .4byte gUnknown_8459A30 _0811D908: .4byte gSprites _0811D90C: diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 8b8407ce0..dada77eb3 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -7229,7 +7229,7 @@ sub_808F3F8: @ 808F3F8 cmp r2, 0 beq _0808F48C lsls r0, r2, 3 - ldr r1, _0808F470 @ =gUnknown_82350AC + ldr r1, _0808F470 @ =gMonFrontPicTable adds r0, r1 ldr r5, _0808F474 @ =0x000022bc adds r1, r4, r5 @@ -7270,7 +7270,7 @@ sub_808F3F8: @ 808F3F8 .align 2, 0 _0808F468: .4byte gUnknown_20397B0 _0808F46C: .4byte 0x00002238 -_0808F470: .4byte gUnknown_82350AC +_0808F470: .4byte gMonFrontPicTable _0808F474: .4byte 0x000022bc _0808F478: .4byte 0x00000cd8 _0808F47C: .4byte 0x0000223c diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index 1688f2ed5..62cedeb88 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -10258,7 +10258,7 @@ sub_813995C: @ 813995C adds r1, r4, 0 adds r2, r6, 0 movs r3, 0x1 - bl sub_810C16C + bl CreateMonPicSprite b _08139A40 .align 2, 0 _081399CC: .4byte gUnknown_203B170 @@ -10290,7 +10290,7 @@ _081399E8: adds r1, r4, 0 adds r2, r6, 0 movs r3, 0x1 - bl sub_810C16C + bl CreateMonPicSprite b _08139A40 .align 2, 0 _08139A1C: .4byte gUnknown_203B16C @@ -10308,7 +10308,7 @@ _08139A24: adds r1, r4, 0 adds r2, r6, 0 movs r3, 0x1 - bl sub_810C1CC + bl CreateMonPicSprite_HandleDeoxys _08139A40: lsls r0, 16 lsrs r5, r0, 16 @@ -10593,7 +10593,7 @@ sub_8139C80: @ 8139C80 ldr r1, _08139CA8 @ =0x00003010 adds r0, r1 ldrb r0, [r0] - bl sub_810C214 + bl FreeAndDestroyMonPicSprite ldr r4, _08139CAC @ =gUnknown_203B170 ldr r0, [r4] bl Free diff --git a/asm/trade.s b/asm/trade.s index 70ca6a736..d26aed7d8 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -7285,7 +7285,7 @@ _08050040: cmp r6, 0 bne _0805007C lsls r0, r5, 3 - ldr r1, _08050074 @ =gUnknown_82350AC + ldr r1, _08050074 @ =gMonFrontPicTable adds r0, r1 ldr r1, _08050078 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -7296,11 +7296,11 @@ _08050040: movs r4, 0 b _0805009A .align 2, 0 -_08050074: .4byte gUnknown_82350AC +_08050074: .4byte gMonFrontPicTable _08050078: .4byte gMonSpritesGfxPtr _0805007C: lsls r0, r5, 3 - ldr r1, _080500BC @ =gUnknown_82350AC + ldr r1, _080500BC @ =gMonFrontPicTable adds r0, r1 ldr r1, _080500C0 @ =gMonSpritesGfxPtr ldr r2, [r1] @@ -7329,7 +7329,7 @@ _0805009A: str r7, [r1] b _0805011E .align 2, 0 -_080500BC: .4byte gUnknown_82350AC +_080500BC: .4byte gMonFrontPicTable _080500C0: .4byte gMonSpritesGfxPtr _080500C4: .4byte gUnknown_2031DAC _080500C8: @@ -10807,7 +10807,7 @@ _08052042: adds r0, 0xF2 ldrh r2, [r0] lsls r0, r2, 3 - ldr r1, _08052068 @ =gUnknown_82350AC + ldr r1, _08052068 @ =gMonFrontPicTable adds r0, r1 ldr r1, _0805206C @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -10819,7 +10819,7 @@ _08052042: .align 2, 0 _08052060: .4byte gSprites _08052064: .4byte SpriteCallbackDummy -_08052068: .4byte gUnknown_82350AC +_08052068: .4byte gMonFrontPicTable _0805206C: .4byte gMonSpritesGfxPtr _08052070: ldr r4, _0805211C @ =gSprites @@ -13032,7 +13032,7 @@ _0805349E: adds r0, 0xF2 ldrh r2, [r0] lsls r0, r2, 3 - ldr r1, _080534C4 @ =gUnknown_82350AC + ldr r1, _080534C4 @ =gMonFrontPicTable adds r0, r1 ldr r1, _080534C8 @ =gMonSpritesGfxPtr ldr r1, [r1] @@ -13044,7 +13044,7 @@ _0805349E: .align 2, 0 _080534BC: .4byte gSprites _080534C0: .4byte SpriteCallbackDummy -_080534C4: .4byte gUnknown_82350AC +_080534C4: .4byte gMonFrontPicTable _080534C8: .4byte gMonSpritesGfxPtr _080534CC: ldr r4, _08053578 @ =gSprites diff --git a/asm/trainer_card.s b/asm/trainer_card.s index 0b0d6c2cf..1dcdc4849 100644 --- a/asm/trainer_card.s +++ b/asm/trainer_card.s @@ -5019,7 +5019,7 @@ _0808B8FC: adds r0, r1, r4 ldrb r0, [r0] movs r1, 0x1 - bl sub_810C374 + bl PlayerGenderToFrontTrainerPicId_Debug lsls r0, 16 lsrs r0, 16 ldr r5, _0808B944 @ =gUnknown_83CD8EC diff --git a/asm/trainer_pokemon_sprites.s b/asm/trainer_pokemon_sprites.s deleted file mode 100644 index 3ff8f9318..000000000 --- a/asm/trainer_pokemon_sprites.s +++ /dev/null @@ -1,1102 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start nullsub_91 -nullsub_91: @ 810BB88 - bx lr - thumb_func_end nullsub_91 - - thumb_func_start dp13_810BB8C -dp13_810BB8C: @ 810BB8C - push {r4-r7,lr} - ldr r4, _0810BBAC @ =gUnknown_8453178 - ldr r3, _0810BBB0 @ =gUnknown_203AD58 - movs r2, 0x7 -_0810BB94: - adds r1, r3, 0 - adds r0, r4, 0 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r3, 0xC - subs r2, 0x1 - cmp r2, 0 - bge _0810BB94 - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810BBAC: .4byte gUnknown_8453178 -_0810BBB0: .4byte gUnknown_203AD58 - thumb_func_end dp13_810BB8C - - thumb_func_start load_pokemon_image_TODO -load_pokemon_image_TODO: @ 810BBB4 - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r1, 0 - adds r5, r3, 0 - ldr r3, [sp, 0x18] - ldr r1, [sp, 0x1C] - lsls r0, 16 - lsrs r4, r0, 16 - adds r7, r4, 0 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsls r1, 24 - lsrs r1, 24 - adds r0, r1, 0 - cmp r3, 0 - bne _0810BC28 - cmp r2, 0 - beq _0810BBF4 - cmp r1, 0 - bne _0810BBE8 - lsls r0, r4, 3 - ldr r1, _0810BBE4 @ =gUnknown_82350AC - b _0810BBFC - .align 2, 0 -_0810BBE4: .4byte gUnknown_82350AC -_0810BBE8: - lsls r0, r4, 3 - ldr r1, _0810BBF0 @ =gUnknown_82350AC - b _0810BC14 - .align 2, 0 -_0810BBF0: .4byte gUnknown_82350AC -_0810BBF4: - cmp r0, 0 - bne _0810BC10 - lsls r0, r4, 3 - ldr r1, _0810BC0C @ =gUnknown_823654C -_0810BBFC: - adds r0, r1 - str r2, [sp] - adds r1, r5, 0 - adds r2, r4, 0 - adds r3, r6, 0 - bl sub_800ECF0 - b _0810BC4E - .align 2, 0 -_0810BC0C: .4byte gUnknown_823654C -_0810BC10: - lsls r0, r4, 3 - ldr r1, _0810BC24 @ =gUnknown_823654C -_0810BC14: - adds r0, r1 - str r2, [sp] - adds r1, r5, 0 - adds r2, r4, 0 - adds r3, r6, 0 - bl LoadSpecialPokePic_DontHandleDeoxys - b _0810BC4E - .align 2, 0 -_0810BC24: .4byte gUnknown_823654C -_0810BC28: - cmp r2, 0 - beq _0810BC40 - lsls r0, r4, 3 - ldr r1, _0810BC3C @ =gUnknown_823957C - adds r0, r1 - adds r1, r5, 0 - adds r2, r4, 0 - bl DecompressPicFromTable - b _0810BC4E - .align 2, 0 -_0810BC3C: .4byte gUnknown_823957C -_0810BC40: - lsls r0, r7, 3 - ldr r1, _0810BC58 @ =gUnknown_8239FA4 - adds r0, r1 - adds r1, r5, 0 - adds r2, r7, 0 - bl DecompressPicFromTable -_0810BC4E: - movs r0, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810BC58: .4byte gUnknown_8239FA4 - thumb_func_end load_pokemon_image_TODO - - thumb_func_start sub_810BC5C -sub_810BC5C: @ 810BC5C - push {r4,lr} - sub sp, 0x8 - ldr r4, [sp, 0x10] - lsls r0, 16 - lsrs r0, 16 - lsls r2, 24 - lsrs r2, 24 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp] - movs r4, 0 - str r4, [sp, 0x4] - bl load_pokemon_image_TODO - lsls r0, 16 - lsrs r0, 16 - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_810BC5C - - thumb_func_start sub_810BC84 -sub_810BC84: @ 810BC84 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r1, 0 - mov r8, r2 - ldr r1, [sp, 0x18] - ldr r2, [sp, 0x1C] - lsls r0, 16 - lsrs r4, r0, 16 - adds r6, r4, 0 - lsls r3, 24 - lsrs r5, r3, 24 - mov r12, r5 - lsls r1, 16 - lsrs r3, r1, 16 - adds r1, r3, 0 - lsls r2, 24 - cmp r2, 0 - bne _0810BCE8 - ldr r0, _0810BCC8 @ =0x0000ffff - cmp r3, r0 - bne _0810BCD0 - ldr r2, _0810BCCC @ =gUnknown_203AD40 - ldrh r1, [r2, 0x2] - adds r0, r3, 0 - orrs r0, r1 - strh r0, [r2, 0x2] - adds r0, r4, 0 - adds r1, r7, 0 - mov r2, r8 - bl GetFrontSpritePalFromSpeciesAndPersonality - lsls r1, r5, 20 - b _0810BD04 - .align 2, 0 -_0810BCC8: .4byte 0x0000ffff -_0810BCCC: .4byte gUnknown_203AD40 -_0810BCD0: - ldr r0, _0810BCE4 @ =gUnknown_203AD40 - strh r3, [r0, 0x2] - adds r0, r4, 0 - adds r1, r7, 0 - mov r2, r8 - bl GetMonSpritePalStructFromOtIdPersonality - bl LoadCompressedObjectPalette - b _0810BD2E - .align 2, 0 -_0810BCE4: .4byte gUnknown_203AD40 -_0810BCE8: - ldr r0, _0810BD14 @ =0x0000ffff - cmp r3, r0 - bne _0810BD20 - ldr r2, _0810BD18 @ =gUnknown_203AD40 - ldrh r1, [r2, 0x2] - adds r0, r3, 0 - orrs r0, r1 - strh r0, [r2, 0x2] - ldr r1, _0810BD1C @ =gUnknown_8239A1C - lsls r0, r4, 3 - adds r0, r1 - ldr r0, [r0] - mov r2, r12 - lsls r1, r2, 20 -_0810BD04: - movs r2, 0x80 - lsls r2, 17 - adds r1, r2 - lsrs r1, 16 - movs r2, 0x20 - bl LoadCompressedPalette - b _0810BD2E - .align 2, 0 -_0810BD14: .4byte 0x0000ffff -_0810BD18: .4byte gUnknown_203AD40 -_0810BD1C: .4byte gUnknown_8239A1C -_0810BD20: - ldr r0, _0810BD38 @ =gUnknown_203AD40 - strh r1, [r0, 0x2] - lsls r0, r6, 3 - ldr r1, _0810BD3C @ =gUnknown_8239A1C - adds r0, r1 - bl LoadCompressedObjectPalette -_0810BD2E: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810BD38: .4byte gUnknown_203AD40 -_0810BD3C: .4byte gUnknown_8239A1C - thumb_func_end sub_810BC84 - - thumb_func_start sub_810BD40 -sub_810BD40: @ 810BD40 - push {r4,r5,lr} - adds r5, r1, 0 - ldr r1, [sp, 0xC] - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r4, r3, 24 - lsls r1, 24 - cmp r1, 0 - bne _0810BD64 - adds r1, r5, 0 - bl GetFrontSpritePalFromSpeciesAndPersonality - lsls r1, r4, 4 - movs r2, 0x20 - bl LoadCompressedPalette - b _0810BD74 -_0810BD64: - ldr r1, _0810BD7C @ =gUnknown_8239A1C - lsls r0, 3 - adds r0, r1 - ldr r0, [r0] - lsls r1, r4, 4 - movs r2, 0x20 - bl LoadCompressedPalette -_0810BD74: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810BD7C: .4byte gUnknown_8239A1C - thumb_func_end sub_810BD40 - - thumb_func_start uns_builder_assign_animtable1 -uns_builder_assign_animtable1: @ 810BD80 - push {lr} - lsls r0, 24 - cmp r0, 0 - bne _0810BD98 - ldr r1, _0810BD90 @ =gUnknown_203AD40 - ldr r0, _0810BD94 @ =gUnknown_82349BC - str r0, [r1, 0x8] - b _0810BDA0 - .align 2, 0 -_0810BD90: .4byte gUnknown_203AD40 -_0810BD94: .4byte gUnknown_82349BC -_0810BD98: - ldr r0, _0810BDA4 @ =gUnknown_203AD40 - ldr r1, _0810BDA8 @ =gTrainerFrontAnimsPtrTable - ldr r1, [r1] - str r1, [r0, 0x8] -_0810BDA0: - pop {r0} - bx r0 - .align 2, 0 -_0810BDA4: .4byte gUnknown_203AD40 -_0810BDA8: .4byte gTrainerFrontAnimsPtrTable - thumb_func_end uns_builder_assign_animtable1 - - thumb_func_start oamt_spawn_poke_or_trainer_picture -oamt_spawn_poke_or_trainer_picture: @ 810BDAC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x30 - str r1, [sp, 0xC] - str r2, [sp, 0x10] - ldr r1, [sp, 0x50] - ldr r2, [sp, 0x54] - ldr r4, [sp, 0x58] - ldr r5, [sp, 0x5C] - ldr r6, [sp, 0x60] - ldr r7, [sp, 0x64] - mov r8, r7 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x14] - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x18] - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0x1C] - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x20] - lsls r5, 16 - lsrs r5, 16 - mov r10, r5 - lsls r6, 24 - lsrs r6, 24 - mov r9, r6 - mov r0, r8 - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r1, _0810BE44 @ =gUnknown_203AD58 - ldrb r0, [r1, 0xB] - cmp r0, 0 - beq _0810BE1C -_0810BE04: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bhi _0810BE1C - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0xB] - cmp r0, 0 - bne _0810BE04 -_0810BE1C: - cmp r4, 0x8 - beq _0810BE40 - movs r0, 0x80 - lsls r0, 6 - bl Alloc - adds r7, r0, 0 - cmp r7, 0 - beq _0810BE40 - movs r0, 0x20 - bl Alloc - mov r8, r0 - cmp r0, 0 - bne _0810BE4C - adds r0, r7, 0 - bl Free -_0810BE40: - ldr r0, _0810BE48 @ =0x0000ffff - b _0810BF16 - .align 2, 0 -_0810BE44: .4byte gUnknown_203AD58 -_0810BE48: .4byte 0x0000ffff -_0810BE4C: - mov r1, r9 - str r1, [sp] - str r5, [sp, 0x4] - ldr r0, [sp, 0x8] - ldr r1, [sp, 0x10] - ldr r2, [sp, 0x14] - adds r3, r7, 0 - bl load_pokemon_image_TODO - lsls r0, 16 - cmp r0, 0 - bne _0810BE40 - lsls r2, r4, 1 - str r2, [sp, 0x2C] - ldr r5, _0810BF28 @ =gUnknown_203AD40 - ldr r0, _0810BF2C @ =gUnknown_8453184 - mov r12, r0 - ldr r1, [sp, 0x18] - lsls r1, 16 - str r1, [sp, 0x24] - ldr r2, [sp, 0x1C] - lsls r2, 16 - str r2, [sp, 0x28] - movs r3, 0x80 - lsls r3, 4 - mov r0, r8 - adds r1, r7, 0 - adds r6, r3, 0 - movs r2, 0x3 -_0810BE86: - str r1, [r0] - strh r3, [r0, 0x4] - adds r0, 0x8 - adds r1, r6 - subs r2, 0x1 - cmp r2, 0 - bge _0810BE86 - ldr r0, _0810BF30 @ =0x0000ffff - strh r0, [r5] - mov r0, r12 - str r0, [r5, 0x4] - mov r0, r9 - bl uns_builder_assign_animtable1 - mov r1, r8 - str r1, [r5, 0xC] - ldr r0, _0810BF34 @ =gDummySpriteAffineAnimTable - str r0, [r5, 0x10] - ldr r0, _0810BF38 @ =nullsub_91 - str r0, [r5, 0x14] - mov r2, r10 - str r2, [sp] - mov r0, r9 - str r0, [sp, 0x4] - ldr r0, [sp, 0x8] - ldr r1, [sp, 0xC] - ldr r2, [sp, 0x10] - ldr r3, [sp, 0x20] - bl sub_810BC84 - ldr r2, [sp, 0x24] - asrs r1, r2, 16 - ldr r0, [sp, 0x28] - asrs r2, r0, 16 - adds r0, r5, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - adds r6, r2, 0 - ldr r0, _0810BF30 @ =0x0000ffff - cmp r10, r0 - bne _0810BEF6 - ldr r0, _0810BF3C @ =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldr r2, [sp, 0x20] - lsls r3, r2, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] -_0810BEF6: - ldr r1, _0810BF40 @ =gUnknown_203AD58 - ldr r2, [sp, 0x2C] - adds r0, r2, r4 - lsls r0, 2 - adds r2, r0, r1 - str r7, [r2] - adds r1, 0x4 - adds r0, r1 - mov r7, r8 - str r7, [r0] - mov r0, r10 - strh r0, [r2, 0x8] - strb r6, [r2, 0xA] - movs r0, 0x1 - strb r0, [r2, 0xB] - adds r0, r6, 0 -_0810BF16: - add sp, 0x30 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810BF28: .4byte gUnknown_203AD40 -_0810BF2C: .4byte gUnknown_8453184 -_0810BF30: .4byte 0x0000ffff -_0810BF34: .4byte gDummySpriteAffineAnimTable -_0810BF38: .4byte nullsub_91 -_0810BF3C: .4byte gSprites -_0810BF40: .4byte gUnknown_203AD58 - thumb_func_end oamt_spawn_poke_or_trainer_picture - - thumb_func_start sub_810BF44 -sub_810BF44: @ 810BF44 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x18 - ldr r4, [sp, 0x34] - ldr r5, [sp, 0x38] - ldr r6, [sp, 0x3C] - ldr r7, [sp, 0x40] - mov r8, r7 - ldr r7, [sp, 0x44] - mov r9, r7 - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r6, 24 - lsrs r6, 24 - mov r7, r8 - lsls r7, 16 - lsrs r7, 16 - mov r8, r7 - mov r7, r9 - lsls r7, 24 - lsrs r7, 24 - lsls r4, 16 - asrs r4, 16 - str r4, [sp] - lsls r5, 16 - asrs r5, 16 - str r5, [sp, 0x4] - str r6, [sp, 0x8] - mov r4, r8 - str r4, [sp, 0xC] - str r7, [sp, 0x10] - movs r4, 0 - str r4, [sp, 0x14] - bl oamt_spawn_poke_or_trainer_picture - lsls r0, 16 - lsrs r0, 16 - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_810BF44 - - thumb_func_start sub_810BFA4 -sub_810BFA4: @ 810BFA4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r4, r0, 16 - movs r2, 0 - ldr r0, _0810BFDC @ =gUnknown_203AD58 - ldrb r1, [r0, 0xA] - adds r3, r0, 0 - cmp r1, r4 - beq _0810BFD4 - adds r1, r3, 0 -_0810BFBC: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bhi _0810BFD4 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0xA] - cmp r0, r4 - bne _0810BFBC -_0810BFD4: - cmp r2, 0x8 - bne _0810BFE4 - ldr r0, _0810BFE0 @ =0x0000ffff - b _0810C03A - .align 2, 0 -_0810BFDC: .4byte gUnknown_203AD58 -_0810BFE0: .4byte 0x0000ffff -_0810BFE4: - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r5, r0, r3 - ldr r1, [r5] - mov r8, r1 - adds r1, r3, 0x4 - adds r0, r1 - ldr r7, [r0] - ldrh r1, [r5, 0x8] - ldr r0, _0810C044 @ =0x0000ffff - lsls r6, r4, 4 - cmp r1, r0 - beq _0810C018 - ldr r1, _0810C048 @ =gSprites - adds r0, r6, r4 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - bl GetSpritePaletteTagByPaletteNum - lsls r0, 16 - lsrs r0, 16 - bl FreeSpritePaletteByTag -_0810C018: - adds r0, r6, r4 - lsls r0, 2 - ldr r1, _0810C048 @ =gSprites - adds r0, r1 - bl DestroySprite - mov r0, r8 - bl Free - adds r0, r7, 0 - bl Free - adds r1, r5, 0 - ldr r0, _0810C04C @ =gUnknown_8453178 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - movs r0, 0 -_0810C03A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810C044: .4byte 0x0000ffff -_0810C048: .4byte gSprites -_0810C04C: .4byte gUnknown_8453178 - thumb_func_end sub_810BFA4 - - thumb_func_start sub_810C050 -sub_810C050: @ 810C050 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - mov r9, r1 - adds r7, r2, 0 - adds r4, r3, 0 - ldr r1, [sp, 0x20] - ldr r2, [sp, 0x24] - ldr r3, [sp, 0x28] - lsls r0, 16 - lsrs r5, r0, 16 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r6, r3, 24 - adds r0, r2, 0 - movs r1, 0x7 - bl GetWindowAttribute - adds r3, r0, 0 - movs r0, 0 - str r0, [sp] - adds r0, r5, 0 - adds r1, r7, 0 - adds r2, r4, 0 - bl sub_810BC5C - lsls r0, 16 - cmp r0, 0 - bne _0810C0AC - str r6, [sp] - adds r0, r5, 0 - mov r1, r9 - adds r2, r7, 0 - mov r3, r8 - bl sub_810BD40 - movs r0, 0 - b _0810C0AE -_0810C0AC: - ldr r0, _0810C0BC @ =0x0000ffff -_0810C0AE: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810C0BC: .4byte 0x0000ffff - thumb_func_end sub_810C050 - - thumb_func_start sub_810C0C0 -sub_810C0C0: @ 810C0C0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - str r1, [sp, 0x18] - str r2, [sp, 0x1C] - ldr r1, [sp, 0x44] - ldr r2, [sp, 0x48] - ldr r4, [sp, 0x4C] - ldr r5, [sp, 0x50] - ldr r6, [sp, 0x54] - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - lsls r3, 24 - lsrs r7, r3, 24 - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp, 0x20] - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - movs r0, 0x80 - lsls r0, 6 - bl Alloc - adds r4, r0, 0 - cmp r4, 0 - beq _0810C156 - str r6, [sp] - mov r0, r9 - ldr r1, [sp, 0x1C] - adds r2, r7, 0 - adds r3, r4, 0 - bl sub_810BC5C - lsls r0, 16 - cmp r0, 0 - bne _0810C156 - movs r0, 0x40 - str r0, [sp] - str r0, [sp, 0x4] - mov r1, r10 - str r1, [sp, 0x8] - mov r1, r8 - str r1, [sp, 0xC] - str r0, [sp, 0x10] - str r0, [sp, 0x14] - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0 - bl BlitBitmapRectToWindow - str r6, [sp] - mov r0, r9 - ldr r1, [sp, 0x18] - ldr r2, [sp, 0x1C] - ldr r3, [sp, 0x20] - bl sub_810BD40 - adds r0, r4, 0 - bl Free - movs r0, 0 - b _0810C158 -_0810C156: - ldr r0, _0810C168 @ =0x0000ffff -_0810C158: - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810C168: .4byte 0x0000ffff - thumb_func_end sub_810C0C0 - - thumb_func_start sub_810C16C -sub_810C16C: @ 810C16C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x18 - ldr r4, [sp, 0x34] - ldr r5, [sp, 0x38] - ldr r6, [sp, 0x3C] - ldr r7, [sp, 0x40] - mov r8, r7 - ldr r7, [sp, 0x44] - mov r9, r7 - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r6, 24 - lsrs r6, 24 - mov r7, r8 - lsls r7, 16 - lsrs r7, 16 - mov r8, r7 - mov r7, r9 - lsls r7, 24 - lsrs r7, 24 - lsls r4, 16 - asrs r4, 16 - str r4, [sp] - lsls r5, 16 - asrs r5, 16 - str r5, [sp, 0x4] - str r6, [sp, 0x8] - mov r4, r8 - str r4, [sp, 0xC] - movs r4, 0 - str r4, [sp, 0x10] - str r7, [sp, 0x14] - bl oamt_spawn_poke_or_trainer_picture - lsls r0, 16 - lsrs r0, 16 - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_810C16C - - thumb_func_start sub_810C1CC -sub_810C1CC: @ 810C1CC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - ldr r4, [sp, 0x2C] - ldr r5, [sp, 0x30] - ldr r6, [sp, 0x34] - ldr r7, [sp, 0x38] - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r7, 16 - lsrs r7, 16 - lsls r4, 16 - asrs r4, 16 - str r4, [sp] - lsls r5, 16 - asrs r5, 16 - str r5, [sp, 0x4] - str r6, [sp, 0x8] - str r7, [sp, 0xC] - movs r4, 0 - str r4, [sp, 0x10] - bl sub_810C16C - lsls r0, 16 - lsrs r0, 16 - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_810C1CC - - thumb_func_start sub_810C214 -sub_810C214: @ 810C214 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl sub_810BFA4 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_810C214 - - thumb_func_start sub_810C228 -sub_810C228: @ 810C228 - push {r4-r6,lr} - sub sp, 0x14 - ldr r5, [sp, 0x24] - ldr r6, [sp, 0x28] - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - str r5, [sp, 0x8] - str r6, [sp, 0xC] - str r4, [sp, 0x10] - bl sub_810C0C0 - lsls r0, 16 - lsrs r0, 16 - add sp, 0x14 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_810C228 - - thumb_func_start sub_810C25C -sub_810C25C: @ 810C25C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - ldr r4, [sp, 0x2C] - ldr r5, [sp, 0x30] - ldr r6, [sp, 0x34] - ldr r7, [sp, 0x38] - lsls r0, 16 - lsrs r0, 16 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 24 - lsrs r6, 24 - lsls r7, 24 - lsrs r7, 24 - str r4, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - str r7, [sp, 0xC] - movs r4, 0 - str r4, [sp, 0x10] - bl sub_810C0C0 - lsls r0, 16 - lsrs r0, 16 - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_810C25C - - thumb_func_start sub_810C2A4 -sub_810C2A4: @ 810C2A4 - push {r4,r5,lr} - sub sp, 0x14 - adds r5, r1, 0 - ldr r1, [sp, 0x20] - ldr r4, [sp, 0x24] - lsls r0, 16 - lsrs r0, 16 - lsls r5, 24 - lsrs r5, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r2, 16 - asrs r2, 16 - str r2, [sp] - lsls r3, 16 - asrs r3, 16 - str r3, [sp, 0x4] - str r1, [sp, 0x8] - str r4, [sp, 0xC] - movs r1, 0x1 - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0 - adds r3, r5, 0 - bl sub_810BF44 - lsls r0, 16 - lsrs r0, 16 - add sp, 0x14 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_810C2A4 - - thumb_func_start sub_810C2E8 -sub_810C2E8: @ 810C2E8 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl sub_810BFA4 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_810C2E8 - - thumb_func_start sub_810C2FC -sub_810C2FC: @ 810C2FC - push {r4,lr} - sub sp, 0xC - adds r4, r1, 0 - lsls r0, 16 - lsrs r0, 16 - lsls r4, 24 - lsrs r4, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - str r2, [sp] - str r3, [sp, 0x4] - movs r1, 0x1 - str r1, [sp, 0x8] - movs r1, 0 - movs r2, 0 - adds r3, r4, 0 - bl sub_810C050 - lsls r0, 16 - lsrs r0, 16 - add sp, 0xC - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_810C2FC - - thumb_func_start sub_810C330 -sub_810C330: @ 810C330 - push {r4,r5,lr} - sub sp, 0x14 - adds r5, r1, 0 - ldr r1, [sp, 0x20] - ldr r4, [sp, 0x24] - lsls r0, 16 - lsrs r0, 16 - lsls r5, 24 - lsrs r5, 24 - lsls r2, 16 - lsrs r2, 16 - lsls r3, 16 - lsrs r3, 16 - lsls r1, 24 - lsrs r1, 24 - lsls r4, 24 - lsrs r4, 24 - str r2, [sp] - str r3, [sp, 0x4] - str r1, [sp, 0x8] - str r4, [sp, 0xC] - movs r1, 0x1 - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0 - adds r3, r5, 0 - bl sub_810C0C0 - lsls r0, 16 - lsrs r0, 16 - add sp, 0x14 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_810C330 - - thumb_func_start sub_810C374 -sub_810C374: @ 810C374 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x1 - bne _0810C39A - cmp r0, 0 - beq _0810C394 - ldr r0, _0810C390 @ =gFacilityClassToPicIndex - adds r0, 0x87 - ldrb r0, [r0] - b _0810C39A - .align 2, 0 -_0810C390: .4byte gFacilityClassToPicIndex -_0810C394: - ldr r0, _0810C3A0 @ =gFacilityClassToPicIndex - adds r0, 0x86 - ldrb r0, [r0] -_0810C39A: - pop {r1} - bx r1 - .align 2, 0 -_0810C3A0: .4byte gFacilityClassToPicIndex - thumb_func_end sub_810C374 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/unk_8147AA8.s b/asm/unk_8147AA8.s index c0451378c..d430d7624 100644 --- a/asm/unk_8147AA8.s +++ b/asm/unk_8147AA8.s @@ -6877,7 +6877,7 @@ _0814AE2A: beq _0814AEEC ldrh r2, [r7] lsls r0, r2, 3 - ldr r1, _0814AED8 @ =gUnknown_82350AC + ldr r1, _0814AED8 @ =gMonFrontPicTable adds r0, r1 ldr r3, [r7, 0x8] mov r1, r8 @@ -6948,7 +6948,7 @@ _0814AE2A: strb r1, [r0] b _0814AEF8 .align 2, 0 -_0814AED8: .4byte gUnknown_82350AC +_0814AED8: .4byte gMonFrontPicTable _0814AEDC: .4byte 0xffff0000 _0814AEE0: .4byte 0x000081a8 _0814AEE4: .4byte gSprites diff --git a/data/data.s b/data/data.s index 2d3806e4a..eb704206c 100644 --- a/data/data.s +++ b/data/data.s @@ -76,7 +76,7 @@ gUnknown_82349BC:: @ 82349BC gUnknown_82349CC:: @ 82349CC .incbin "baserom.gba", 0x2349CC, 0x6E0 -gUnknown_82350AC:: @ 82350AC +gMonFrontPicTable:: @ 82350AC .incbin "baserom.gba", 0x2350AC, 0xE8 gUnknown_8235194:: @ 8235194 @@ -85,7 +85,7 @@ gUnknown_8235194:: @ 8235194 gUnknown_8235E6C:: @ 8235E6C .incbin "baserom.gba", 0x235E6C, 0x6E0 -gUnknown_823654C:: @ 823654C +gMonBackPicTable:: @ 823654C .incbin "baserom.gba", 0x23654C, 0xDC0 gMonPaletteTable:: @ 823730C @@ -103,10 +103,10 @@ gTrainerFrontAnimsPtrTable:: @ 82390DC gUnknown_823932C:: @ 823932C .incbin "baserom.gba", 0x23932C, 0x250 -gUnknown_823957C:: @ 823957C +gTrainerFrontPicTable:: @ 823957C .incbin "baserom.gba", 0x23957C, 0x4A0 -gUnknown_8239A1C:: @ 8239A1C +gTrainerFrontPicPaletteTable:: @ 8239A1C .incbin "baserom.gba", 0x239A1C, 0x558 gTrainerBackAnimsPtrTable:: @ 8239F74 @@ -115,7 +115,7 @@ gTrainerBackAnimsPtrTable:: @ 8239F74 gUnknown_8239F8C:: @ 8239F8C .incbin "baserom.gba", 0x239F8C, 0x18 -gUnknown_8239FA4:: @ 8239FA4 +gTrainerBackPicTable:: @ 8239FA4 .incbin "baserom.gba", 0x239FA4, 0x30 gUnknown_8239FD4:: @ 8239FD4 diff --git a/data/trainer_pokemon_sprites.s b/data/trainer_pokemon_sprites.s deleted file mode 100644 index 6d5477040..000000000 --- a/data/trainer_pokemon_sprites.s +++ /dev/null @@ -1,25 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - .section .rodata - - .align 2 -gUnknown_845312C:: @ 845312C - window_template 0x00, 0x02, 0x0f, 0x1a, 0x04, 0x0f, 0x02a2 - window_template 0x00, 0x06, 0x0f, 0x0e, 0x04, 0x0c, 0x02a2 - window_template 0x00, 0x06, 0x0f, 0x0f, 0x04, 0x0c, 0x02da - window_template 0x00, 0x06, 0x0f, 0x10, 0x04, 0x0c, 0x0316 - window_template 0x00, 0x06, 0x0f, 0x17, 0x04, 0x0c, 0x0356 - window_template 0x00, 0x16, 0x11, 0x07, 0x02, 0x0f, 0x020a - window_template 0x00, 0x16, 0x0f, 0x07, 0x04, 0x0f, 0x020a - window_template 0x00, 0x16, 0x0d, 0x07, 0x06, 0x0f, 0x020a - window_template 0x00, 0x16, 0x0b, 0x07, 0x08, 0x0f, 0x020a - -gUnknown_8453174:: - .byte 16, 8, 4, 0 - - .align 2 -gUnknown_8453178:: @ 8453178 - .space 12 - -gUnknown_8453184:: @ 8453184 - .byte 0, 0, 0, 0xc0, 0, 0, 0, 0 diff --git a/include/gba/types.h b/include/gba/types.h index 480619d21..9f2594703 100644 --- a/include/gba/types.h +++ b/include/gba/types.h @@ -28,29 +28,42 @@ typedef u8 bool8; typedef u16 bool16; typedef u32 bool32; +struct BgCnt +{ + u16 priority:2; + u16 charBaseBlock:2; + u16 dummy:2; + u16 mosaic:1; + u16 palettes:1; + u16 screenBaseBlock:5; + u16 areaOverflowMode:1; + u16 screenSize:2; +}; +typedef volatile struct BgCnt vBgCnt; + struct PlttData { u16 r:5; // red u16 g:5; // green u16 b:5; // blue u16 unused_15:1; -} /*__attribute__((packed))*/; +}; struct OamData { /*0x00*/ u32 y:8; - /*0x01*/ u32 affineMode:2; // 0x1, 0x2 = 0x3 - u32 objMode:2; // 0x4, 0x8 = 0xC + /*0x01*/ u32 affineMode:2; // 0x1, 0x2 -> 0x4 + u32 objMode:2; // 0x4, 0x8 -> 0xC u32 mosaic:1; // 0x10 u32 bpp:1; // 0x20 - u32 shape:2; // 0x40, 0x80 + u32 shape:2; // 0x40, 0x80 -> 0xC0 /*0x02*/ u32 x:9; - u32 matrixNum:5; // bits 3/4 are h-flip/v-flip if not in affine mode - u32 size:2; + u32 matrixNum:5; // bits 3/4 are h-flip/v-flip if not in affine mode + u32 size:2; // 0x4000, 0x8000 -> 0xC000 - /*0x04*/ u16 tileNum:10; - u16 priority:2; + /*0x04*/ u16 tileNum:10; // 0x3FF + u16 priority:2; // 0x400, 0x800 -> 0xC00 u16 paletteNum:4; /*0x06*/ u16 affineParam; }; @@ -74,6 +87,29 @@ struct OamData #define ST_OAM_H_RECTANGLE 1 #define ST_OAM_V_RECTANGLE 2 +#define ST_OAM_SIZE_0 0 +#define ST_OAM_SIZE_1 1 +#define ST_OAM_SIZE_2 2 +#define ST_OAM_SIZE_3 3 + +#define SPRITE_SIZE_8x8 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_SQUARE)) +#define SPRITE_SIZE_16x16 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_SQUARE)) +#define SPRITE_SIZE_32x32 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_SQUARE)) +#define SPRITE_SIZE_64x64 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_SQUARE)) + +#define SPRITE_SIZE_16x8 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_H_RECTANGLE)) +#define SPRITE_SIZE_32x8 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_H_RECTANGLE)) +#define SPRITE_SIZE_32x16 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_H_RECTANGLE)) +#define SPRITE_SIZE_64x32 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_H_RECTANGLE)) + +#define SPRITE_SIZE_8x16 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_V_RECTANGLE)) +#define SPRITE_SIZE_8x32 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_V_RECTANGLE)) +#define SPRITE_SIZE_16x32 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_V_RECTANGLE)) +#define SPRITE_SIZE_32x64 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_V_RECTANGLE)) + +#define SPRITE_SIZE(dim) ((SPRITE_SIZE_##dim >> 2) & 0x03) +#define SPRITE_SHAPE(dim) (SPRITE_SIZE_##dim & 0x03) + struct BgAffineSrcData { s32 texX; diff --git a/include/battle_dome_cards.h b/include/trainer_pokemon_sprites.h index 94c9876f3..3ae75ed0f 100644 --- a/include/battle_dome_cards.h +++ b/include/trainer_pokemon_sprites.h @@ -3,7 +3,7 @@ #include "global.h" -bool16 dp13_810BB8C(void); +bool16 ResetAllPicSprites(void); u16 sub_818D3E4(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); u16 sub_818D7D8(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); u16 sub_818D820(u16 spriteId); @@ -11,7 +11,7 @@ u16 sub_818D8AC(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 u16 sub_818D8F0(u16 spriteId); u16 sub_818D938(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId); u8 sub_818D97C(u8 a0, u8 a1); -u8 sub_810C2A4(u16, u8, s16, s16, u8, u16); -void sub_810C2E8(u16); +u16 CreateTrainerPicSprite(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag); +u16 FreeAndDestroyTrainerPicSprite(u16); #endif //GUARD_BATTLE_DOME_CARDS_H diff --git a/ld_script.txt b/ld_script.txt index ece412fc7..05ce768dd 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -213,8 +213,7 @@ SECTIONS { asm/item_menu.o(.text); asm/save_location.o(.text); src/bag.o(.text); - asm/bag.o(.text); - asm/trainer_pokemon_sprites.o(.text); + src/trainer_pokemon_sprites.o(.text); asm/unk_810C3A4.o(.text); src/vs_seeker.o(.text); asm/item_pc.o(.text); @@ -391,7 +390,7 @@ SECTIONS { src/save.o(.rodata); data/data_83FECCC.o(.rodata); src/bag.o(.rodata); - data/trainer_pokemon_sprites.o(.rodata); + src/trainer_pokemon_sprites.o(.rodata); src/vs_seeker.o(.rodata); data/data_83FECCC.o(.rodata.8453F6C); src/quest_log.o(.rodata); @@ -121,6 +121,84 @@ const struct WindowTemplate gUnknown_8453124 = { .baseBlock = 0x28a }; +const struct WindowTemplate gUnknown_845312C[] = { + { + .priority = 0x00, + .tilemapLeft = 0x02, + .tilemapTop = 0x0f, + .width = 0x1a, + .height = 0x04, + .paletteNum = 0x0f, + .baseBlock = 0x02a2 + }, { + .priority = 0x00, + .tilemapLeft = 0x06, + .tilemapTop = 0x0f, + .width = 0x0e, + .height = 0x04, + .paletteNum = 0x0c, + .baseBlock = 0x02a2 + }, { + .priority = 0x00, + .tilemapLeft = 0x06, + .tilemapTop = 0x0f, + .width = 0x0f, + .height = 0x04, + .paletteNum = 0x0c, + .baseBlock = 0x02da + }, { + .priority = 0x00, + .tilemapLeft = 0x06, + .tilemapTop = 0x0f, + .width = 0x10, + .height = 0x04, + .paletteNum = 0x0c, + .baseBlock = 0x0316 + }, { + .priority = 0x00, + .tilemapLeft = 0x06, + .tilemapTop = 0x0f, + .width = 0x17, + .height = 0x04, + .paletteNum = 0x0c, + .baseBlock = 0x0356 + }, { + .priority = 0x00, + .tilemapLeft = 0x16, + .tilemapTop = 0x11, + .width = 0x07, + .height = 0x02, + .paletteNum = 0x0f, + .baseBlock = 0x020a + }, { + .priority = 0x00, + .tilemapLeft = 0x16, + .tilemapTop = 0x0f, + .width = 0x07, + .height = 0x04, + .paletteNum = 0x0f, + .baseBlock = 0x020a + }, { + .priority = 0x00, + .tilemapLeft = 0x16, + .tilemapTop = 0x0d, + .width = 0x07, + .height = 0x06, + .paletteNum = 0x0f, + .baseBlock = 0x020a + }, { + .priority = 0x00, + .tilemapLeft = 0x16, + .tilemapTop = 0x0b, + .width = 0x07, + .height = 0x08, + .paletteNum = 0x0f, + .baseBlock = 0x020a + } +}; + +const u8 gUnknown_8453174[] = {16, 8, 4}; + EWRAM_DATA u8 gUnknown_203AD34[11] = {}; void sub_810B858(void) diff --git a/src/fame_checker.c b/src/fame_checker.c index c47e52f06..795863aca 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -8,7 +8,7 @@ #include "battle.h" #include "battle_setup.h" #include "menu.h" -#include "battle_dome_cards.h" +#include "trainer_pokemon_sprites.h" #include "scanline_effect.h" #include "new_menu_helpers.h" #include "item_menu.h" @@ -1012,7 +1012,7 @@ static void FCSetup_ResetTasksAndSpriteResources(void) ScanlineEffect_Stop(); ResetTasks(); ResetSpriteData(); - dp13_810BB8C(); + ResetAllPicSprites(); ResetPaletteFade(); npc_paltag_set_load(0); gReservedSpritePaletteCount = 7; @@ -1181,7 +1181,7 @@ static u8 CreatePersonPicSprite(u8 fcPersonIdx) } else { - spriteId = sub_810C2A4(sFameCheckerTrainerPicIdxs[fcPersonIdx], 1, 0x94, 0x42, 6, 0xFFFF); + spriteId = CreateTrainerPicSprite(sFameCheckerTrainerPicIdxs[fcPersonIdx], 1, 0x94, 0x42, 6, 0xFFFF); } gSprites[spriteId].callback = SpriteCB_FCSpinningPokeball; if (gSaveBlock1Ptr->fameChecker[fcPersonIdx].pickState == FCPICKSTATE_SILHOUETTE) @@ -1202,7 +1202,7 @@ static void DestroyPersonPicSprite(u8 taskId, u16 who) ) DestroySprite(&gSprites[data[2]]); else - sub_810C2E8(data[2]); + FreeAndDestroyTrainerPicSprite(data[2]); } static void UpdateIconDescriptionBox(u8 whichText) diff --git a/src/seagallop.c b/src/seagallop.c index 585838607..72813f525 100644 --- a/src/seagallop.c +++ b/src/seagallop.c @@ -4,7 +4,7 @@ #include "palette.h" #include "malloc.h" #include "scanline_effect.h" -#include "battle_dome_cards.h" +#include "trainer_pokemon_sprites.h" #include "window.h" #include "text_window.h" #include "sound.h" @@ -365,7 +365,7 @@ static void ResetAllAssets(void) ScanlineEffect_Stop(); ResetTasks(); ResetSpriteData(); - dp13_810BB8C(); + ResetAllPicSprites(); ResetPaletteFade(); FreeAllSpritePalettes(); } diff --git a/src/trainer_pokemon_sprites.c b/src/trainer_pokemon_sprites.c new file mode 100644 index 000000000..ecd889d80 --- /dev/null +++ b/src/trainer_pokemon_sprites.c @@ -0,0 +1,324 @@ +#include "global.h" +#include "sprite.h" +#include "window.h" +#include "malloc.h" +#include "constants/species.h" +#include "palette.h" +#include "decompress.h" +#include "trainer_pokemon_sprites.h" +#include "pokemon.h" +#include "constants/trainer_classes.h" + +extern const struct CompressedSpriteSheet gMonFrontPicTable[]; +extern const struct CompressedSpriteSheet gMonBackPicTable[]; +extern const struct CompressedSpriteSheet gTrainerFrontPicTable[]; +extern const struct CompressedSpriteSheet gTrainerBackPicTable[]; +extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; +extern const union AnimCmd *const gUnknown_82349BC[]; +extern const union AnimCmd *const *const gTrainerFrontAnimsPtrTable[]; + +// Static type declarations + +struct PicData +{ + u8 *frames; + struct SpriteFrameImage *images; + u16 paletteTag; + u8 spriteId; + u8 active; +}; + +// Static RAM declarations +#define PICS_COUNT 8 + +static EWRAM_DATA struct SpriteTemplate sCreatingSpriteTemplate = {}; +static EWRAM_DATA struct PicData sSpritePics[PICS_COUNT] = {}; + +// Static ROM declarations + +// .rodata + +static const struct PicData gUnknown_8453178 = {}; + +static const struct OamData gUnknown_8453184 = +{ + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64) +}; + +// .text + +void DummyPicSpriteCallback(struct Sprite *sprite) +{ + +} + +bool16 ResetAllPicSprites(void) +{ + int i; + + for (i = 0; i < PICS_COUNT; i ++) + sSpritePics[i] = gUnknown_8453178; + + return FALSE; +} + +static bool16 DecompressPic(u16 species, u32 personality, bool8 isFrontPic, u8 *dest, bool8 isTrainer, bool8 ignoreDeoxys) +{ + if (!isTrainer) + { + if (isFrontPic) + { + if (!ignoreDeoxys) + LoadSpecialPokePic(&gMonFrontPicTable[species], dest, species, personality, isFrontPic); + else + LoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], dest, species, personality, isFrontPic); + } + else + { + if (!ignoreDeoxys) + LoadSpecialPokePic(&gMonBackPicTable[species], dest, species, personality, isFrontPic); + else + LoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species], dest, species, personality, isFrontPic); + } + } + else + { + if (isFrontPic) + DecompressPicFromTable(&gTrainerFrontPicTable[species], dest, species); + else + DecompressPicFromTable(&gTrainerBackPicTable[species], dest, species); + } + return FALSE; +} + +static bool16 DecompressPic_HandleDeoxys(u16 species, u32 personality, bool8 isFrontPic, u8 *dest, bool8 isTrainer) +{ + return DecompressPic(species, personality, isFrontPic, dest, isTrainer, FALSE); +} + +void LoadPicPaletteByTagOrSlot(u16 species, u32 otId, u32 personality, u8 paletteSlot, u16 paletteTag, bool8 isTrainer) +{ + if (!isTrainer) + { + if (paletteTag == 0xFFFF) + { + sCreatingSpriteTemplate.paletteTag = 0xFFFF; + LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality), 0x100 + paletteSlot * 0x10, 0x20); + } + else + { + sCreatingSpriteTemplate.paletteTag = paletteTag; + LoadCompressedObjectPalette(GetMonSpritePalStructFromOtIdPersonality(species, otId, personality)); + } + } + else + { + if (paletteTag == 0xFFFF) + { + sCreatingSpriteTemplate.paletteTag = 0xFFFF; + LoadCompressedPalette(gTrainerFrontPicPaletteTable[species].data, 0x100 + paletteSlot * 0x10, 0x20); + } + else + { + sCreatingSpriteTemplate.paletteTag = paletteTag; + LoadCompressedObjectPalette(&gTrainerFrontPicPaletteTable[species]); + } + } +} + +void LoadPicPaletteBySlot(u16 species, u32 otId, u32 personality, u8 paletteSlot, bool8 isTrainer) +{ + if (!isTrainer) + LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality), paletteSlot * 0x10, 0x20); + else + LoadCompressedPalette(gTrainerFrontPicPaletteTable[species].data, paletteSlot * 0x10, 0x20); +} + +void AssignSpriteAnimsTable(bool8 isTrainer) +{ + if (!isTrainer) + sCreatingSpriteTemplate.anims = gUnknown_82349BC; + else + sCreatingSpriteTemplate.anims = gTrainerFrontAnimsPtrTable[0]; +} + +u16 CreatePicSprite(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 isTrainer, bool8 ignoreDeoxys) +{ + u8 i; + u8 *framePics; + struct SpriteFrameImage *images; + int j; + u8 spriteId; + + for (i = 0; i < PICS_COUNT; i ++) + { + if (!sSpritePics[i].active) + { + break; + } + } + if (i == PICS_COUNT) + { + return 0xFFFF; + } + framePics = Alloc(4 * 0x800); + if (!framePics) + { + return 0xFFFF; + } + images = Alloc(4 * sizeof(struct SpriteFrameImage)); + if (!images) + { + Free(framePics); + return 0xFFFF; + } + if (DecompressPic(species, personality, isFrontPic, framePics, isTrainer, ignoreDeoxys)) + { + // debug trap? + return 0xFFFF; + } + for (j = 0; j < 4; j ++) + { + images[j].data = framePics + 0x800 * j; + images[j].size = 0x800; + } + sCreatingSpriteTemplate.tileTag = 0xFFFF; + sCreatingSpriteTemplate.oam = &gUnknown_8453184; + AssignSpriteAnimsTable(isTrainer); + sCreatingSpriteTemplate.images = images; + sCreatingSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable; + sCreatingSpriteTemplate.callback = DummyPicSpriteCallback; + LoadPicPaletteByTagOrSlot(species, otId, personality, paletteSlot, paletteTag, isTrainer); + spriteId = CreateSprite(&sCreatingSpriteTemplate, x, y, 0); + if (paletteTag == 0xFFFF) + { + gSprites[spriteId].oam.paletteNum = paletteSlot; + } + sSpritePics[i].frames = framePics; + sSpritePics[i].images = images; + sSpritePics[i].paletteTag = paletteTag; + sSpritePics[i].spriteId = spriteId; + sSpritePics[i].active = TRUE; + return spriteId; +} + +u16 CreatePicSprite_HandleDeoxys(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 isTrainer) +{ + return CreatePicSprite(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, isTrainer, FALSE); +} + +u16 FreeAndDestroyPicSpriteInternal(u16 spriteId) +{ + u8 i; + u8 *framePics; + struct SpriteFrameImage *images; + + for (i = 0; i < PICS_COUNT; i ++) + { + if (sSpritePics[i].spriteId == spriteId) + { + break; + } + } + if (i == PICS_COUNT) + { + return 0xFFFF; + } + framePics = sSpritePics[i].frames; + images = sSpritePics[i].images; + if (sSpritePics[i].paletteTag != 0xFFFF) + { + FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(gSprites[spriteId].oam.paletteNum)); + } + DestroySprite(&gSprites[spriteId]); + Free(framePics); + Free(images); + sSpritePics[i] = gUnknown_8453178; + return 0; +} + +u16 sub_810C050(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId, bool8 isTrainer) +{ + if (DecompressPic_HandleDeoxys(species, personality, isFrontPic, (u8 *)GetWindowAttribute(windowId, WINDOW_TILE_DATA), FALSE)) + { + return 0xFFFF; + } + LoadPicPaletteBySlot(species, otId, personality, paletteSlot, isTrainer); + return 0; +} + +u16 sub_810C0C0(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId, bool8 isTrainer) +{ + u8 *framePics; + + framePics = Alloc(4 * 0x800); + if (framePics && !DecompressPic_HandleDeoxys(species, personality, isFrontPic, framePics, isTrainer)) + { + BlitBitmapRectToWindow(windowId, framePics, 0, 0, 0x40, 0x40, destX, destY, 0x40, 0x40); + LoadPicPaletteBySlot(species, otId, personality, paletteSlot, isTrainer); + Free(framePics); + return 0; + } + return 0xFFFF; +} + +u16 CreateMonPicSprite(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 ignoreDeoxys) +{ + return CreatePicSprite(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, FALSE, ignoreDeoxys); +} + +u16 CreateMonPicSprite_HandleDeoxys(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag) +{ + return CreateMonPicSprite(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, FALSE); +} + +u16 FreeAndDestroyMonPicSprite(u16 spriteId) +{ + return FreeAndDestroyPicSpriteInternal(spriteId); +} + +u16 sub_810C228(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId) +{ + return sub_810C0C0(species, otId, personality, isFrontPic, 0, 0, paletteSlot, windowId, FALSE); +} + +u16 sub_810C25C(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId) +{ + return sub_810C0C0(species, otId, personality, isFrontPic, destX, destY, paletteSlot, windowId, FALSE); +} + +u16 CreateTrainerPicSprite(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag) +{ + return CreatePicSprite_HandleDeoxys(species, 0, 0, isFrontPic, x, y, paletteSlot, paletteTag, TRUE); +} + +u16 FreeAndDestroyTrainerPicSprite(u16 spriteId) +{ + return FreeAndDestroyPicSpriteInternal(spriteId); +} + +u16 sub_810C2FC(u16 species, bool8 isFrontPic, u8 paletteSlot, u8 windowId) +{ + return sub_810C050(species, 0, 0, isFrontPic, paletteSlot, windowId, TRUE); +} + +u16 sub_810C330(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId) +{ + return sub_810C0C0(species, 0, 0, isFrontPic, destX, destY, paletteSlot, windowId, TRUE); +} + +u16 PlayerGenderToFrontTrainerPicId_Debug(u8 gender, bool8 getClass) +{ + if (getClass == TRUE) + { + switch (gender) + { + default: + return gFacilityClassToPicIndex[0x87]; + case MALE: + return gFacilityClassToPicIndex[0x86]; + } + } + return gender; +} diff --git a/sym_ewram.txt b/sym_ewram.txt index f301d9cc4..f61ca9aa0 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1347,12 +1347,9 @@ gSpecialVar_ItemId: @ 203AD30 .include "src/bag.o" .align 2 -gUnknown_203AD40: @ 203AD40 - .space 0x18 - -gUnknown_203AD58: @ 203AD58 - .space 0x60 + .include "src/trainer_pokemon_sprites.o" + .align 2 .include "src/vs_seeker.o" gUnknown_203ADBC: @ 203ADBC |