diff options
author | PikalaxALT <PikalaxALT@users.noreply.github.com> | 2019-07-01 21:45:36 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-01 21:45:36 -0400 |
commit | 74d771ef90a3189bd2da1b35f6b42a1fa8f51e67 (patch) | |
tree | 96c754aee40f16956fb0958ecb31bd806bd99642 | |
parent | 7f06718571de81609208a5fa402a93da63cfa8bf (diff) | |
parent | 062238aa12cb4f54f70b73459ff5b5d775f69a54 (diff) |
Merge pull request #76 from jiangzhengwenjz/misc
new_menu_helpers, multiboot, hof_pc, play_time, decompress, reset_save_heap, save_location, mail_data, fldeff_*
164 files changed, 3909 insertions, 8954 deletions
diff --git a/.gitignore b/.gitignore index 7029feac1..e3cb43d69 100644 --- a/.gitignore +++ b/.gitignore @@ -42,5 +42,5 @@ build/ *.DS_Store *.pl *.bak -src/data/items.h # Autogenerated by jsonproc +src/data/items.h tools/br_ips/{br_ips,ips_patch}{,.exe} diff --git a/asm/battle_1.s b/asm/battle_1.s index 87cb0e750..310d1a791 100644 --- a/asm/battle_1.s +++ b/asm/battle_1.s @@ -257,7 +257,7 @@ sub_800F380: @ 800F380 movs r0, 0 movs r1, 0x30 movs r2, 0x70 - bl TextWindow_SetBubbleFrame_841F1C8 + bl TextWindow_LoadResourcesStdFrame0 adds r0, r4, 0 adds r0, 0xEC movs r1, 0 @@ -1197,7 +1197,7 @@ sub_800FAE0: @ 800FAE0 ldr r0, _0800FB8C @ =gBattle_BG2_Y strh r1, [r0] ldr r0, _0800FB90 @ =gUnknown_8248318 - bl sub_800F034 + bl LoadCompressedSpriteSheetUsingHeap b _0800FC26 .align 2, 0 _0800FB64: .4byte gBattleTypeFlags diff --git a/asm/battle_anim.s b/asm/battle_anim.s index 7e698830f..9aa80db64 100644 --- a/asm/battle_anim.s +++ b/asm/battle_anim.s @@ -483,11 +483,11 @@ ScriptCmd_loadspritegfx: @ 8072868 lsls r5, r4, 3 ldr r0, _080728B8 @ =gUnknown_8399388 adds r0, r5, r0 - bl sub_800F034 + bl LoadCompressedSpriteSheetUsingHeap ldr r0, _080728BC @ =gUnknown_8399C90 adds r5, r0 adds r0, r5, 0 - bl sub_800F078 + bl LoadCompressedSpritePaletteUsingHeap ldr r0, [r6] adds r0, 0x2 str r0, [r6] diff --git a/asm/battle_anim_special.s b/asm/battle_anim_special.s index 704a1e9a7..02a1216c6 100644 --- a/asm/battle_anim_special.s +++ b/asm/battle_anim_special.s @@ -3264,10 +3264,10 @@ sub_80F05B4: @ 80F05B4 cmp r0, r1 bne _080F05DA adds r0, r4, 0 - bl sub_800F034 + bl LoadCompressedSpriteSheetUsingHeap ldr r0, _080F05E8 @ =gUnknown_840BFA8 adds r0, r5, r0 - bl sub_800F078 + bl LoadCompressedSpritePaletteUsingHeap _080F05DA: pop {r4,r5} pop {r0} @@ -5514,9 +5514,9 @@ _080F177E: cmp r0, r7 bne _080F179E ldr r0, _080F17E8 @ =gUnknown_83AD350 - bl sub_800F034 + bl LoadCompressedSpriteSheetUsingHeap ldr r0, _080F17EC @ =gUnknown_83ADC58 - bl sub_800F078 + bl LoadCompressedSpritePaletteUsingHeap _080F179E: ldr r5, _080F17F0 @ =sub_80F181C adds r0, r5, 0 @@ -5941,9 +5941,9 @@ sub_80F1AE0: @ 80F1AE0 lsls r4, 24 lsrs r4, 24 ldr r0, _080F1B08 @ =gUnknown_83AD470 - bl sub_800F034 + bl LoadCompressedSpriteSheetUsingHeap ldr r0, _080F1B0C @ =gUnknown_83ADD78 - bl sub_800F078 + bl LoadCompressedSpritePaletteUsingHeap ldr r0, _080F1B10 @ =0x0000281d bl IndexOfSpritePaletteTag adds r0, r4, 0 diff --git a/asm/battle_anim_status_effects.s b/asm/battle_anim_status_effects.s index 5530fd869..b1da74298 100644 --- a/asm/battle_anim_status_effects.s +++ b/asm/battle_anim_status_effects.s @@ -26,9 +26,9 @@ sub_8078178: @ 8078178 lsrs r0, 24 mov r8, r0 ldr r0, _08078224 @ =gUnknown_83AD048 - bl sub_800F034 + bl LoadCompressedSpriteSheetUsingHeap ldr r0, _08078228 @ =gUnknown_83AD950 - bl sub_800F078 + bl LoadCompressedSpritePaletteUsingHeap ldr r1, _0807822C @ =gTasks mov r2, r8 lsls r0, r2, 2 diff --git a/asm/battle_gfx_sfx_util.s b/asm/battle_gfx_sfx_util.s index efbd89e9e..ba54bafbb 100644 --- a/asm/battle_gfx_sfx_util.s +++ b/asm/battle_gfx_sfx_util.s @@ -975,7 +975,7 @@ _08034548: ldr r1, [r1] adds r2, r5, 0 adds r3, r4, 0 - bl sub_800ECC4 + bl HandleLoadSpecialPokePic _08034562: mov r2, r8 lsls r1, r2, 4 @@ -1184,7 +1184,7 @@ sub_80346C4: @ 80346C4 ldr r0, _0803474C @ =gTrainerFrontPicPaletteTable adds r5, r0 adds r0, r5, 0 - bl sub_800F078 + bl LoadCompressedSpritePaletteUsingHeap add sp, 0x8 pop {r3} mov r8, r3 @@ -1262,9 +1262,9 @@ sub_80347A8: @ 80347A8 cmp r0, 0 bne _080347E0 ldr r0, _080347D8 @ =gUnknown_8260208 - bl sub_800F034 + bl LoadCompressedSpriteSheetUsingHeap ldr r0, _080347DC @ =gUnknown_8260210 - bl sub_800F034 + bl LoadCompressedSpriteSheetUsingHeap movs r5, 0x2 b _08034802 .align 2, 0 @@ -1274,16 +1274,16 @@ _080347DC: .4byte gUnknown_8260210 _080347E0: ldr r4, _08034828 @ =gUnknown_8260218 adds r0, r4, 0 - bl sub_800F034 + bl LoadCompressedSpriteSheetUsingHeap adds r4, 0x8 adds r0, r4, 0 - bl sub_800F034 + bl LoadCompressedSpriteSheetUsingHeap ldr r4, _0803482C @ =gUnknown_8260228 adds r0, r4, 0 - bl sub_800F034 + bl LoadCompressedSpriteSheetUsingHeap adds r4, 0x8 adds r0, r4, 0 - bl sub_800F034 + bl LoadCompressedSpriteSheetUsingHeap movs r5, 0x4 _08034802: movs r4, 0 @@ -1296,7 +1296,7 @@ _0803480C: ldrb r0, [r0] lsls r0, 3 adds r0, r6 - bl sub_800F034 + bl LoadCompressedSpriteSheetUsingHeap adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 @@ -1349,14 +1349,14 @@ _08034864: cmp r0, 0 beq _08034890 ldr r0, _0803488C @ =gUnknown_8260238 - bl sub_800F034 + bl LoadCompressedSpriteSheetUsingHeap b _0803495A .align 2, 0 _08034888: .4byte gBattleTypeFlags _0803488C: .4byte gUnknown_8260238 _08034890: ldr r0, _08034898 @ =gUnknown_8260208 - bl sub_800F034 + bl LoadCompressedSpriteSheetUsingHeap b _0803495A .align 2, 0 _08034898: .4byte gUnknown_8260208 @@ -1364,7 +1364,7 @@ _0803489C: cmp r4, 0x3 bne _080348AC ldr r0, _080348A8 @ =gUnknown_8260210 - bl sub_800F034 + bl LoadCompressedSpriteSheetUsingHeap b _0803495A .align 2, 0 _080348A8: .4byte gUnknown_8260210 @@ -1388,7 +1388,7 @@ _080348CC: cmp r4, 0x2 bne _080348DC ldr r0, _080348D8 @ =gUnknown_8260218 - bl sub_800F034 + bl LoadCompressedSpriteSheetUsingHeap b _0803495A .align 2, 0 _080348D8: .4byte gUnknown_8260218 @@ -1396,7 +1396,7 @@ _080348DC: cmp r4, 0x3 bne _080348EC ldr r0, _080348E8 @ =gUnknown_8260220 - bl sub_800F034 + bl LoadCompressedSpriteSheetUsingHeap b _0803495A .align 2, 0 _080348E8: .4byte gUnknown_8260220 @@ -1404,7 +1404,7 @@ _080348EC: cmp r4, 0x4 bne _080348FC ldr r0, _080348F8 @ =gUnknown_8260228 - bl sub_800F034 + bl LoadCompressedSpriteSheetUsingHeap b _0803495A .align 2, 0 _080348F8: .4byte gUnknown_8260228 @@ -1412,7 +1412,7 @@ _080348FC: cmp r4, 0x5 bne _0803490C ldr r0, _08034908 @ =gUnknown_8260230 - bl sub_800F034 + bl LoadCompressedSpriteSheetUsingHeap b _0803495A .align 2, 0 _08034908: .4byte gUnknown_8260230 @@ -1449,7 +1449,7 @@ _08034944: lsls r0, 3 ldr r1, _08034954 @ =gUnknown_8260240 adds r0, r1 - bl sub_800F034 + bl LoadCompressedSpriteSheetUsingHeap b _0803495A .align 2, 0 _08034950: .4byte gUnknown_2023BD6 @@ -2911,7 +2911,7 @@ LoadAndCreateEnemyShadowSprites: @ 8035538 mov r7, r8 push {r7} ldr r0, _08035614 @ =gUnknown_8250A0C - bl sub_800F034 + bl LoadCompressedSpriteSheetUsingHeap movs r0, 0x1 bl GetBattlerAtPosition adds r5, r0, 0 diff --git a/asm/battle_interface.s b/asm/battle_interface.s index 393eb4ee6..fa06f684b 100644 --- a/asm/battle_interface.s +++ b/asm/battle_interface.s @@ -2381,7 +2381,7 @@ _08048DC4: bge _08048DB0 mov r6, r10 adds r0, r4, r6 - bl sub_800F034 + bl LoadCompressedSpriteSheetUsingHeap ldr r0, _08048E4C @ =gUnknown_826049C adds r0, r4, r0 bl LoadSpriteSheet diff --git a/asm/battle_setup.s b/asm/battle_setup.s index 146e4a3c9..a13c1a418 100644 --- a/asm/battle_setup.s +++ b/asm/battle_setup.s @@ -25,7 +25,7 @@ sub_807F620: @ 807F620 .align 2, 0 _0807F640: .4byte gTasks+0x8 _0807F644: - bl c3_80A0DD8_is_running + bl FldEffPoison_IsActive cmp r0, 0 bne _0807F686 bl sub_812B478 diff --git a/asm/battle_transition.s b/asm/battle_transition.s index cf761a220..48a5836ed 100644 --- a/asm/battle_transition.s +++ b/asm/battle_transition.s @@ -137,7 +137,7 @@ _080D09AC: .4byte gTasks Transition_Phase1: @ 80D09B0 push {r4,lr} adds r4, r0, 0 - bl sub_807B05C + bl SetWeatherScreenFadeOut ldr r0, _080D09DC @ =gPlttBufferFaded ldr r1, _080D09E0 @ =gPlttBufferUnfaded ldr r2, _080D09E4 @ =0x04000100 diff --git a/asm/berry_crush_2.s b/asm/berry_crush_2.s index 172724d0f..f775bd8dc 100644 --- a/asm/berry_crush_2.s +++ b/asm/berry_crush_2.s @@ -2946,7 +2946,7 @@ _0814D1A6: strb r0, [r5, 0xC] b _0814D238 _0814D1CA: - bl sub_80F7858 + bl DisplayYesNoMenuDefaultYes b _0814D230 _0814D1D0: bl Menu_ProcessInputNoWrapClearOnChoose diff --git a/asm/berry_crush_3.s b/asm/berry_crush_3.s index f447c848f..716967e65 100644 --- a/asm/berry_crush_3.s +++ b/asm/berry_crush_3.s @@ -50,7 +50,7 @@ _0814D61C: movs r1, 0 bl SetGpuReg bl ScanlineEffect_Stop - bl reset_temp_tile_data_buffers + bl ResetTempTileDataBuffers b _0814D878 _0814D63A: add r0, sp, 0x8 @@ -175,12 +175,12 @@ _0814D73A: movs r0, 0x1 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram b _0814D878 .align 2, 0 _0814D764: .4byte gUnknown_8EAFFC0 _0814D768: - bl free_temp_tile_data_buffers_if_possible + bl FreeTempTileDataBuffersIfPossible lsls r0, 24 cmp r0, 0 beq _0814D774 @@ -2845,7 +2845,7 @@ sub_814ECE0: @ 814ECE0 _0814ECF6: lsls r0, r5, 3 adds r0, r4 - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 diff --git a/asm/berry_pouch.s b/asm/berry_pouch.s index 67d189a12..6aaa9ba76 100644 --- a/asm/berry_pouch.s +++ b/asm/berry_pouch.s @@ -100,7 +100,7 @@ sub_813CE00: @ 813CE00 bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram + bl DoScheduledBgTilemapCopiesToVram bl UpdatePaletteFade pop {r0} bx r0 @@ -184,7 +184,7 @@ _0813CE84: .4byte _0813CFBE _0813CED0: bl SetVBlankHBlankCallbacksToNull - bl clear_scheduled_bg_copies_to_vram + bl ClearScheduledBgCopiesToVram b _0813CFD2 _0813CEDA: bl ScanlineEffect_Stop @@ -405,7 +405,7 @@ sub_813D07C: @ 813D07C movs r0, 0x1 bl SetBgTilemapBuffer movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram movs r0, 0x50 movs r1, 0 bl SetGpuReg @@ -454,18 +454,18 @@ _0813D10C: beq _0813D178 b _0813D190 _0813D116: - bl reset_temp_tile_data_buffers + bl ResetTempTileDataBuffers ldr r1, _0813D12C @ =gUnknown_8E859D0 str r4, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram b _0813D17E .align 2, 0 _0813D12C: .4byte gUnknown_8E859D0 _0813D130: - bl free_temp_tile_data_buffers_if_possible + bl FreeTempTileDataBuffersIfPossible lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -498,7 +498,7 @@ _0813D170: .4byte gSaveBlock2Ptr _0813D174: .4byte gUnknown_8E85BF4 _0813D178: ldr r0, _0813D18C @ =gUnknown_84644A8 - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet _0813D17E: ldr r1, [r5] adds r1, r6 @@ -510,7 +510,7 @@ _0813D17E: _0813D18C: .4byte gUnknown_84644A8 _0813D190: ldr r0, _0813D1A8 @ =gUnknown_84644B0 - bl LoadCompressedObjectPalette + bl LoadCompressedSpritePalette ldr r0, _0813D1AC @ =gUnknown_203F36C ldr r0, [r0] ldr r1, _0813D1B0 @ =0x0000080c @@ -1030,7 +1030,7 @@ sub_813D594: @ 813D594 movs r3, 0x1E bl SetBgRectPal movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram add sp, 0x8 pop {r0} bx r0 @@ -2111,9 +2111,9 @@ sub_813DE0C: @ 813DE0C movs r0, 0x1 bl PutWindowTilemap movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r0, _0813DE60 @ =gUnknown_203F370 ldrb r0, [r0, 0x4] cmp r0, 0x4 @@ -2309,9 +2309,9 @@ sub_813DFC8: @ 813DFC8 movs r0, 0 bl PutWindowTilemap movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldrb r0, [r4] movs r1, 0x1 bl sub_813D4B0 @@ -2370,9 +2370,9 @@ _0813E048: movs r0, 0 bl sub_813EA98 movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram bl sub_813D684 adds r0, r5, 0 bl sub_813DF54 @@ -2395,9 +2395,9 @@ _0813E090: movs r0, 0x1 bl PutWindowTilemap movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldrb r0, [r4] movs r1, 0x1 bl sub_813D4B0 @@ -2519,7 +2519,7 @@ _0813E18A: movs r0, 0x1 bl PutWindowTilemap movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldrb r0, [r5] movs r1, 0x1 bl sub_813D4B0 @@ -2555,9 +2555,9 @@ sub_813E200: @ 813E200 movs r0, 0x1 bl PutWindowTilemap movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram bl CalculatePlayerPartyCount lsls r0, 24 cmp r0, 0 @@ -2659,7 +2659,7 @@ sub_813E2B8: @ 813E2B8 lsrs r0, 24 strh r0, [r5] movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldrb r0, [r5] movs r1, 0x1 bl sub_813D4B0 @@ -2693,9 +2693,9 @@ sub_813E320: @ 813E320 movs r0, 0x1 bl PutWindowTilemap movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r1, _0813E378 @ =gTasks lsls r0, r4, 2 adds r0, r4 @@ -2964,7 +2964,7 @@ sub_813E568: @ 813E568 movs r0, 0x1 bl PutWindowTilemap movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldrb r0, [r4] movs r1, 0x1 bl sub_813D4B0 @@ -3130,7 +3130,7 @@ _0813E6E4: movs r0, 0 bl PutWindowTilemap movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram bl sub_813D684 adds r0, r4, 0 bl sub_813E4E4 @@ -3157,7 +3157,7 @@ _0813E718: movs r0, 0x1 bl PutWindowTilemap movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram bl sub_813D684 ldrb r0, [r5] movs r1, 0x1 @@ -3184,7 +3184,7 @@ sub_813E768: @ 813E768 movs r0, 0 bl PutWindowTilemap movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r0, _0813E7D8 @ =gSpecialVar_ItemId ldrh r0, [r0] ldr r1, _0813E7DC @ =gStringVar1 @@ -3371,7 +3371,7 @@ sub_813E910: @ 813E910 movs r0, 0 movs r1, 0x13 movs r2, 0xD0 - bl TextWindow_SetBubbleFrame_841F1C8 + bl TextWindow_LoadResourcesStdFrame0 movs r0, 0 movs r1, 0xA movs r2, 0xC0 @@ -3397,9 +3397,9 @@ _0813E946: movs r0, 0x2 bl PutWindowTilemap movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram movs r4, 0 ldr r3, _0813E99C @ =gUnknown_203F38C movs r2, 0xFF @@ -3522,7 +3522,7 @@ _0813EA54: bl SetWindowBorderStyle _0813EA60: movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r0, _0813EA74 @ =gUnknown_203F38C adds r0, r4, r0 ldrb r0, [r0] @@ -3568,7 +3568,7 @@ sub_813EA98: @ 813EA98 ldrb r0, [r4] bl RemoveWindow movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram movs r0, 0xFF strb r0, [r4] pop {r4} @@ -3597,9 +3597,9 @@ sub_813EACC: @ 813EACC movs r0, 0x1 bl PutWindowTilemap movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram movs r0, 0xFF strb r0, [r4] _0813EB04: @@ -3656,7 +3656,7 @@ _0813EB44: movs r3, 0xD bl DisplayMessageAndContinueTask movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram add sp, 0x10 pop {r3} mov r8, r3 diff --git a/asm/bike.s b/asm/bike.s index b731e51c0..94583aa47 100644 --- a/asm/bike.s +++ b/asm/bike.s @@ -730,7 +730,7 @@ StartTransitionToFlipBikeState: @ 80BD5C8 movs r0, 0x1 bl SetPlayerAvatarTransitionFlags bl sav1_reset_battle_music_maybe - bl sub_8055DC4 + bl Overworld_PlaySpecialMapMusic b _080BD618 .align 2, 0 _080BD5F0: .4byte gUnknown_2036E2C diff --git a/asm/braille_text.s b/asm/braille_text.s deleted file mode 100644 index 2428f2984..000000000 --- a/asm/braille_text.s +++ /dev/null @@ -1,8 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/buy_menu_helpers.s b/asm/buy_menu_helpers.s index ed18eb711..1eba8e42e 100644 --- a/asm/buy_menu_helpers.s +++ b/asm/buy_menu_helpers.s @@ -28,7 +28,7 @@ _0813F686: movs r0, 0 movs r1, 0x13 movs r2, 0xE0 - bl TextWindow_SetBubbleFrame_841F1C8 + bl TextWindow_LoadResourcesStdFrame0 movs r0, 0 movs r1, 0xA movs r2, 0xF0 @@ -155,7 +155,7 @@ sub_813F75C: @ 813F75C movs r3, 0xE bl DisplayMessageAndContinueTask movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram add sp, 0x10 pop {r3} mov r8, r3 diff --git a/asm/cable_club.s b/asm/cable_club.s index b9b3a595c..ff11c4cef 100644 --- a/asm/cable_club.s +++ b/asm/cable_club.s @@ -55,7 +55,7 @@ sub_808078C: @ 808078C lsrs r4, 24 adds r0, r4, 0 movs r1, 0 - bl sub_80F7750 + bl SetStdWindowBorderStyle ldr r5, _080807E0 @ =gStringVar4 ldr r1, _080807E4 @ =gUnknown_841DF82 adds r0, r5, 0 diff --git a/asm/credits.s b/asm/credits.s index 6317b95f7..e52275e77 100644 --- a/asm/credits.s +++ b/asm/credits.s @@ -1987,7 +1987,7 @@ _080F49D8: ands r1, r3 orrs r1, r2 str r1, [r0, 0x4] - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet ldr r0, _080F4A1C @ =gUnknown_8410E10 b _080F4A36 .align 2, 0 @@ -2005,7 +2005,7 @@ _080F4A20: strh r1, [r0, 0x4] ldrh r1, [r6, 0x2] strh r1, [r0, 0x6] - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet ldr r0, _080F4A48 @ =gUnknown_8411BF8 _080F4A36: movs r1, 0xF8 @@ -2025,7 +2025,7 @@ _080F4A4C: strh r1, [r0, 0x4] ldrh r1, [r6, 0x2] strh r1, [r0, 0x6] - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet ldr r0, _080F4ADC @ =gUnknown_84129A0 movs r1, 0xF8 lsls r1, 1 @@ -2107,7 +2107,7 @@ _080F4AFE: strh r1, [r0, 0x4] ldrh r1, [r6, 0x8] strh r1, [r0, 0x6] - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet ldr r0, _080F4B1C @ =gUnknown_8413318 b _080F4B8A .align 2, 0 @@ -2122,7 +2122,7 @@ _080F4B20: strh r1, [r0, 0x4] ldrh r1, [r6, 0x8] strh r1, [r0, 0x6] - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet ldr r0, _080F4B4C @ =gUnknown_8413318 movs r1, 0xF0 lsls r1, 1 @@ -2144,7 +2144,7 @@ _080F4B54: strh r1, [r0, 0x4] ldrh r1, [r6, 0x8] strh r1, [r0, 0x6] - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet ldr r0, _080F4B70 @ =gUnknown_8413854 b _080F4B8A .align 2, 0 @@ -2159,7 +2159,7 @@ _080F4B74: strh r1, [r0, 0x4] ldrh r1, [r6, 0x8] strh r1, [r0, 0x6] - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet ldr r0, _080F4BF0 @ =gUnknown_8413D98 _080F4B8A: movs r1, 0xF0 diff --git a/asm/decompress.s b/asm/decompress.s deleted file mode 100644 index cc38e0df5..000000000 --- a/asm/decompress.s +++ /dev/null @@ -1,887 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start LZDecompressWram -LZDecompressWram: @ 800EBB4 - push {lr} - bl LZ77UnCompWram - pop {r0} - bx r0 - thumb_func_end LZDecompressWram - - thumb_func_start LZDecompressVram -LZDecompressVram: @ 800EBC0 - push {lr} - bl LZ77UnCompVram - pop {r0} - bx r0 - thumb_func_end LZDecompressVram - - thumb_func_start LoadCompressedObjectPic -LoadCompressedObjectPic: @ 800EBCC - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r0, [r4] - ldr r5, _0800EBFC @ =gDecompressionBuffer - adds r1, r5, 0 - bl LZ77UnCompWram - str r5, [sp] - ldrh r1, [r4, 0x6] - lsls r1, 16 - ldrh r0, [r4, 0x4] - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet - lsls r0, 16 - lsrs r0, 16 - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0800EBFC: .4byte gDecompressionBuffer - thumb_func_end LoadCompressedObjectPic - - thumb_func_start LoadCompressedObjectPicOverrideBuffer -LoadCompressedObjectPicOverrideBuffer: @ 800EC00 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, [r4] - bl LZ77UnCompWram - str r5, [sp] - ldrh r1, [r4, 0x6] - lsls r1, 16 - ldrh r0, [r4, 0x4] - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end LoadCompressedObjectPicOverrideBuffer - - thumb_func_start LoadCompressedObjectPalette -LoadCompressedObjectPalette: @ 800EC28 - push {r4,r5,lr} - sub sp, 0x8 - adds r5, r0, 0 - ldr r0, [r5] - ldr r4, _0800EC54 @ =gDecompressionBuffer - adds r1, r4, 0 - bl LZ77UnCompWram - str r4, [sp] - ldrh r2, [r5, 0x4] - ldr r1, _0800EC58 @ =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r1 - orrs r0, r2 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpritePalette - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0800EC54: .4byte gDecompressionBuffer -_0800EC58: .4byte 0xffff0000 - thumb_func_end LoadCompressedObjectPalette - - thumb_func_start LoadCompressedObjectPaletteOverrideBuffer -LoadCompressedObjectPaletteOverrideBuffer: @ 800EC5C - push {r4,r5,lr} - sub sp, 0x8 - adds r5, r0, 0 - adds r4, r1, 0 - ldr r0, [r5] - bl LZ77UnCompWram - str r4, [sp] - ldrh r2, [r5, 0x4] - ldr r1, _0800EC88 @ =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r1 - orrs r0, r2 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpritePalette - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0800EC88: .4byte 0xffff0000 - thumb_func_end LoadCompressedObjectPaletteOverrideBuffer - - thumb_func_start DecompressPicFromTable -DecompressPicFromTable: @ 800EC8C - push {r4,r5,lr} - adds r3, r0, 0 - adds r4, r1, 0 - adds r5, r2, 0 - movs r0, 0xCE - lsls r0, 1 - cmp r5, r0 - ble _0800ECAC - ldr r0, _0800ECA8 @ =gMonFrontPicTable - ldr r0, [r0] - bl LZ77UnCompWram - b _0800ECB4 - .align 2, 0 -_0800ECA8: .4byte gMonFrontPicTable -_0800ECAC: - ldr r0, [r3] - adds r1, r4, 0 - bl LZ77UnCompWram -_0800ECB4: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_800EDAC - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end DecompressPicFromTable - - thumb_func_start sub_800ECC4 -sub_800ECC4: @ 800ECC4 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r0, r2, 3 - ldr r1, _0800ECEC @ =gMonFrontPicTable - adds r0, r1 - movs r1, 0 - cmp r4, r0 - bne _0800ECDA - movs r1, 0x1 -_0800ECDA: - str r1, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - bl LoadSpecialPokePic - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0800ECEC: .4byte gMonFrontPicTable - thumb_func_end sub_800ECC4 - - thumb_func_start LoadSpecialPokePic -LoadSpecialPokePic: @ 800ECF0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - adds r4, r1, 0 - adds r7, r2, 0 - adds r5, r3, 0 - ldr r0, [sp, 0x18] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r7, 0xC9 - bne _0800ED6C - movs r0, 0xC0 - lsls r0, 18 - ands r0, r5 - lsrs r0, 18 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r5 - lsrs r1, 12 - orrs r0, r1 - movs r1, 0xC0 - lsls r1, 2 - ands r1, r5 - lsrs r1, 6 - orrs r0, r1 - movs r1, 0x3 - ands r1, r5 - orrs r0, r1 - movs r1, 0x1C - bl __umodsi3 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _0800ED3E - movs r1, 0xC9 - b _0800ED48 -_0800ED3E: - movs r2, 0xCE - lsls r2, 1 - adds r0, r1, r2 - lsls r0, 16 - lsrs r1, r0, 16 -_0800ED48: - mov r0, r8 - cmp r0, 0 - bne _0800ED5C - ldr r0, _0800ED58 @ =gMonBackPicTable - lsls r1, 3 - adds r1, r0 - ldr r0, [r1] - b _0800ED78 - .align 2, 0 -_0800ED58: .4byte gMonBackPicTable -_0800ED5C: - ldr r0, _0800ED68 @ =gMonFrontPicTable - lsls r1, 3 - adds r1, r0 - ldr r0, [r1] - b _0800ED78 - .align 2, 0 -_0800ED68: .4byte gMonFrontPicTable -_0800ED6C: - movs r0, 0xCE - lsls r0, 1 - cmp r7, r0 - ble _0800ED84 - ldr r0, _0800ED80 @ =gMonFrontPicTable - ldr r0, [r0] -_0800ED78: - adds r1, r4, 0 - bl LZ77UnCompWram - b _0800ED8C - .align 2, 0 -_0800ED80: .4byte gMonFrontPicTable -_0800ED84: - ldr r0, [r6] - adds r1, r4, 0 - bl LZ77UnCompWram -_0800ED8C: - adds r0, r4, 0 - adds r1, r7, 0 - bl sub_800EDAC - lsls r0, r7, 16 - lsrs r0, 16 - adds r1, r5, 0 - adds r2, r4, 0 - mov r3, r8 - bl DrawSpindaSpots - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end LoadSpecialPokePic - - thumb_func_start sub_800EDAC -sub_800EDAC: @ 800EDAC - push {lr} - adds r3, r0, 0 - movs r0, 0xCD - lsls r0, 1 - cmp r1, r0 - bne _0800EDC6 - movs r1, 0x80 - lsls r1, 4 - adds r0, r3, r1 - ldr r2, _0800EDCC @ =0x04000200 - adds r1, r3, 0 - bl CpuSet -_0800EDC6: - pop {r0} - bx r0 - .align 2, 0 -_0800EDCC: .4byte 0x04000200 - thumb_func_end sub_800EDAC - - thumb_func_start sub_800EDD0 -sub_800EDD0: @ 800EDD0 - push {lr} - ldr r0, [r0] - bl LZ77UnCompWram - pop {r0} - bx r0 - thumb_func_end sub_800EDD0 - - thumb_func_start sub_800EDDC -sub_800EDDC: @ 800EDDC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - mov r9, r0 - str r1, [sp] - str r2, [sp, 0x4] - adds r5, r3, 0 - movs r0, 0x1 - mov r1, r9 - ands r0, r1 - cmp r0, 0 - bne _0800EDFC - b _0800EF94 -_0800EDFC: - asrs r0, r1, 1 - adds r0, 0x4 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] - movs r0, 0 - ldr r2, [sp] - cmp r0, r2 - blt _0800EE10 - b _0800F024 -_0800EE10: - movs r4, 0x8 - subs r1, r4, r1 - str r1, [sp, 0x10] -_0800EE16: - movs r7, 0 - adds r0, 0x1 - str r0, [sp, 0x14] - ldr r0, [sp, 0x10] - cmp r7, r0 - bge _0800EE92 - ldr r1, [sp, 0x8] - lsls r1, 8 - str r1, [sp, 0x18] - movs r2, 0 - mov r10, r2 - mov r0, r9 - movs r4, 0x8 - subs r0, r4, r0 - str r0, [sp, 0xC] -_0800EE34: - movs r3, 0 - asrs r0, r7, 1 - adds r1, r7, 0 - movs r2, 0x1 - ands r1, r2 - str r1, [sp, 0x20] - lsls r0, 8 - mov r8, r0 - mov r12, r5 -_0800EE46: - lsls r1, r3, 5 - ldr r4, [sp, 0x18] - adds r0, r5, r4 - adds r0, r1 - mov r1, r8 - adds r2, r0, r1 - mov r1, r12 - add r1, r8 - movs r6, 0xF -_0800EE58: - ldr r4, [sp, 0x20] - cmp r4, 0 - bne _0800EE68 - strb r4, [r1] - add r4, sp, 0x20 - ldrb r4, [r4] - strb r4, [r2, 0x10] - b _0800EE76 -_0800EE68: - mov r0, r10 - strb r0, [r1, 0x10] - movs r4, 0x80 - lsls r4, 1 - adds r4, r2, r4 - str r4, [sp, 0x1C] - strb r0, [r4] -_0800EE76: - adds r2, 0x1 - adds r1, 0x1 - subs r6, 0x1 - cmp r6, 0 - bge _0800EE58 - movs r0, 0x20 - add r12, r0 - adds r3, 0x1 - cmp r3, 0x7 - ble _0800EE46 - adds r7, 0x1 - ldr r1, [sp, 0xC] - cmp r7, r1 - blt _0800EE34 -_0800EE92: - movs r7, 0 - movs r2, 0 -_0800EE96: - movs r6, 0 - adds r4, r7, 0x1 - mov r8, r4 - lsls r4, r7, 5 -_0800EE9E: - adds r0, r6, 0x1 - mov r10, r0 - lsls r1, r6, 8 - adds r0, r1, 0 - adds r0, 0xC0 - adds r0, r5, r0 - adds r0, r4 - adds r1, r5, r1 - adds r1, r4 - movs r3, 0x1F -_0800EEB2: - strb r2, [r1] - strb r2, [r0] - adds r0, 0x1 - adds r1, 0x1 - subs r3, 0x1 - cmp r3, 0 - bge _0800EEB2 - mov r6, r10 - cmp r6, 0x7 - ble _0800EE9E - mov r7, r8 - cmp r7, 0x1 - ble _0800EE96 - mov r1, r9 - cmp r1, 0x5 - bne _0800EED8 - movs r2, 0x90 - lsls r2, 1 - adds r5, r2 -_0800EED8: - movs r7, 0 - cmp r7, r9 - bge _0800EF6E -_0800EEDE: - movs r3, 0 - adds r7, 0x1 - mov r8, r7 - cmp r3, r9 - bge _0800EF4E -_0800EEE8: - adds r3, 0x1 - mov r10, r3 - ldr r4, [sp, 0x4] - adds r4, 0x20 - adds r7, r5, 0 - adds r7, 0x20 - movs r0, 0x12 - adds r0, r5 - mov r12, r0 - ldr r2, [sp, 0x4] - adds r3, r5, 0 - movs r6, 0x3 -_0800EF00: - ldrb r0, [r2] - mov r1, r12 - strb r0, [r1] - ldrb r0, [r2, 0x1] - strb r0, [r1, 0x1] - ldrb r0, [r2, 0x2] - strb r0, [r1, 0x1E] - ldrb r0, [r2, 0x3] - strb r0, [r1, 0x1F] - movs r0, 0x81 - lsls r0, 1 - adds r1, r3, r0 - ldrb r0, [r2, 0x10] - strb r0, [r1] - ldr r0, _0800EF58 @ =0x00000103 - adds r1, r3, r0 - ldrb r0, [r2, 0x11] - strb r0, [r1] - movs r0, 0x90 - lsls r0, 1 - adds r1, r3, r0 - ldrb r0, [r2, 0x12] - strb r0, [r1] - ldr r0, _0800EF5C @ =0x00000121 - adds r1, r3, r0 - ldrb r0, [r2, 0x13] - strb r0, [r1] - movs r1, 0x4 - add r12, r1 - adds r2, 0x4 - adds r3, 0x4 - subs r6, 0x1 - cmp r6, 0 - bge _0800EF00 - str r4, [sp, 0x4] - adds r5, r7, 0 - mov r3, r10 - cmp r3, r9 - blt _0800EEE8 -_0800EF4E: - mov r2, r9 - cmp r2, 0x7 - bne _0800EF60 - adds r5, 0x20 - b _0800EF68 - .align 2, 0 -_0800EF58: .4byte 0x00000103 -_0800EF5C: .4byte 0x00000121 -_0800EF60: - mov r4, r9 - cmp r4, 0x5 - bne _0800EF68 - adds r5, 0x60 -_0800EF68: - mov r7, r8 - cmp r7, r9 - blt _0800EEDE -_0800EF6E: - mov r0, r9 - cmp r0, 0x7 - bne _0800EF7C - movs r1, 0x80 - lsls r1, 1 - adds r5, r1 - b _0800EF88 -_0800EF7C: - mov r2, r9 - cmp r2, 0x5 - bne _0800EF88 - movs r4, 0xF0 - lsls r4, 1 - adds r5, r4 -_0800EF88: - ldr r0, [sp, 0x14] - ldr r1, [sp] - cmp r0, r1 - bge _0800EF92 - b _0800EE16 -_0800EF92: - b _0800F024 -_0800EF94: - movs r6, 0 - ldr r2, [sp] - cmp r6, r2 - bge _0800F024 -_0800EF9C: - adds r6, 0x1 - mov r10, r6 - mov r4, r9 - cmp r4, 0x6 - bne _0800EFB4 - movs r0, 0 - movs r3, 0xFF -_0800EFAA: - strb r0, [r5] - adds r5, 0x1 - subs r3, 0x1 - cmp r3, 0 - bge _0800EFAA -_0800EFB4: - movs r7, 0 - cmp r7, r9 - bge _0800F008 -_0800EFBA: - adds r7, 0x1 - mov r8, r7 - mov r1, r9 - lsls r0, r1, 5 - cmp r1, 0x6 - bne _0800EFD4 - movs r1, 0 - movs r3, 0x1F -_0800EFCA: - strb r1, [r5] - adds r5, 0x1 - subs r3, 0x1 - cmp r3, 0 - bge _0800EFCA -_0800EFD4: - adds r1, r0, 0 - cmp r1, 0 - ble _0800EFEE - adds r3, r1, 0 -_0800EFDC: - ldr r2, [sp, 0x4] - ldrb r0, [r2] - strb r0, [r5] - adds r2, 0x1 - str r2, [sp, 0x4] - adds r5, 0x1 - subs r3, 0x1 - cmp r3, 0 - bne _0800EFDC -_0800EFEE: - mov r4, r9 - cmp r4, 0x6 - bne _0800F002 - movs r0, 0 - movs r3, 0x1F -_0800EFF8: - strb r0, [r5] - adds r5, 0x1 - subs r3, 0x1 - cmp r3, 0 - bge _0800EFF8 -_0800F002: - mov r7, r8 - cmp r7, r9 - blt _0800EFBA -_0800F008: - mov r0, r9 - cmp r0, 0x6 - bne _0800F01C - movs r0, 0 - movs r3, 0xFF -_0800F012: - strb r0, [r5] - adds r5, 0x1 - subs r3, 0x1 - cmp r3, 0 - bge _0800F012 -_0800F01C: - mov r6, r10 - ldr r1, [sp] - cmp r6, r1 - blt _0800EF9C -_0800F024: - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_800EDDC - - thumb_func_start sub_800F034 -sub_800F034: @ 800F034 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r0, [r4] - ldr r0, [r0] - lsrs r0, 8 - bl AllocZeroed - adds r5, r0, 0 - cmp r5, 0 - beq _0800F06E - ldr r0, [r4] - adds r1, r5, 0 - bl LZ77UnCompWram - str r5, [sp] - ldrh r1, [r4, 0x6] - lsls r1, 16 - ldrh r0, [r4, 0x4] - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet - adds r0, r5, 0 - bl Free - movs r0, 0 - b _0800F070 -_0800F06E: - movs r0, 0x1 -_0800F070: - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_800F034 - - thumb_func_start sub_800F078 -sub_800F078: @ 800F078 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r0, [r4] - ldr r0, [r0] - lsrs r0, 8 - bl AllocZeroed - adds r5, r0, 0 - cmp r5, 0 - beq _0800F0B8 - ldr r0, [r4] - adds r1, r5, 0 - bl LZ77UnCompWram - str r5, [sp] - ldrh r2, [r4, 0x4] - ldr r1, _0800F0B4 @ =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r1 - orrs r0, r2 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpritePalette - adds r0, r5, 0 - bl Free - movs r0, 0 - b _0800F0BA - .align 2, 0 -_0800F0B4: .4byte 0xffff0000 -_0800F0B8: - movs r0, 0x1 -_0800F0BA: - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_800F078 - - thumb_func_start GetDecompressedDataSize -GetDecompressedDataSize: @ 800F0C4 - sub sp, 0x4 - mov r3, sp - ldrb r2, [r0, 0x1] - mov r1, sp - strb r2, [r1] - ldrb r1, [r0, 0x2] - strb r1, [r3, 0x1] - ldrb r0, [r0, 0x3] - strb r0, [r3, 0x2] - movs r0, 0 - strb r0, [r3, 0x3] - ldr r0, [sp] - add sp, 0x4 - bx lr - thumb_func_end GetDecompressedDataSize - - thumb_func_start DecompressPicFromTable_DontHandleDeoxys -DecompressPicFromTable_DontHandleDeoxys: @ 800F0E0 - push {lr} - adds r3, r0, 0 - movs r0, 0xCE - lsls r0, 1 - cmp r2, r0 - ble _0800F0FC - ldr r0, _0800F0F8 @ =gMonFrontPicTable - ldr r0, [r0] - bl LZ77UnCompWram - b _0800F102 - .align 2, 0 -_0800F0F8: .4byte gMonFrontPicTable -_0800F0FC: - ldr r0, [r3] - bl LZ77UnCompWram -_0800F102: - pop {r0} - bx r0 - thumb_func_end DecompressPicFromTable_DontHandleDeoxys - - thumb_func_start HandleLoadSpecialPokePic_DontHandleDeoxys -HandleLoadSpecialPokePic_DontHandleDeoxys: @ 800F108 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r0, r2, 3 - ldr r1, _0800F130 @ =gMonFrontPicTable - adds r0, r1 - movs r1, 0 - cmp r4, r0 - bne _0800F11E - movs r1, 0x1 -_0800F11E: - str r1, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - bl LoadSpecialPokePic_DontHandleDeoxys - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0800F130: .4byte gMonFrontPicTable - thumb_func_end HandleLoadSpecialPokePic_DontHandleDeoxys - - thumb_func_start LoadSpecialPokePic_DontHandleDeoxys -LoadSpecialPokePic_DontHandleDeoxys: @ 800F134 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - adds r5, r1, 0 - adds r7, r2, 0 - adds r4, r3, 0 - ldr r0, [sp, 0x18] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r7, 0xC9 - bne _0800F1B0 - movs r0, 0xC0 - lsls r0, 18 - ands r0, r4 - lsrs r0, 18 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r4 - lsrs r1, 12 - orrs r0, r1 - movs r1, 0xC0 - lsls r1, 2 - ands r1, r4 - lsrs r1, 6 - orrs r0, r1 - movs r1, 0x3 - ands r1, r4 - orrs r0, r1 - movs r1, 0x1C - bl __umodsi3 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _0800F182 - movs r1, 0xC9 - b _0800F18C -_0800F182: - movs r2, 0xCE - lsls r2, 1 - adds r0, r1, r2 - lsls r0, 16 - lsrs r1, r0, 16 -_0800F18C: - mov r0, r8 - cmp r0, 0 - bne _0800F1A0 - ldr r0, _0800F19C @ =gMonBackPicTable - lsls r1, 3 - adds r1, r0 - ldr r0, [r1] - b _0800F1BC - .align 2, 0 -_0800F19C: .4byte gMonBackPicTable -_0800F1A0: - ldr r0, _0800F1AC @ =gMonFrontPicTable - lsls r1, 3 - adds r1, r0 - ldr r0, [r1] - b _0800F1BC - .align 2, 0 -_0800F1AC: .4byte gMonFrontPicTable -_0800F1B0: - movs r0, 0xCE - lsls r0, 1 - cmp r7, r0 - ble _0800F1C8 - ldr r0, _0800F1C4 @ =gMonFrontPicTable - ldr r0, [r0] -_0800F1BC: - adds r1, r5, 0 - bl LZ77UnCompWram - b _0800F1D0 - .align 2, 0 -_0800F1C4: .4byte gMonFrontPicTable -_0800F1C8: - ldr r0, [r6] - adds r1, r5, 0 - bl LZ77UnCompWram -_0800F1D0: - lsls r0, r7, 16 - lsrs r0, 16 - adds r1, r4, 0 - adds r2, r5, 0 - mov r3, r8 - bl DrawSpindaSpots - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end LoadSpecialPokePic_DontHandleDeoxys - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/diploma.s b/asm/diploma.s index cfc70d694..f3fc0871a 100644 --- a/asm/diploma.s +++ b/asm/diploma.s @@ -463,7 +463,7 @@ _080F4FB8: beq _080F4FEE b _080F4FF8 _080F4FC2: - bl reset_temp_tile_data_buffers + bl ResetTempTileDataBuffers b _080F5000 _080F4FC8: ldr r1, _080F4FDC @ =gUnknown_84147C0 @@ -472,12 +472,12 @@ _080F4FC8: movs r0, 0x1 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram b _080F5000 .align 2, 0 _080F4FDC: .4byte gUnknown_84147C0 _080F4FE0: - bl free_temp_tile_data_buffers_if_possible + bl FreeTempTileDataBuffersIfPossible lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 diff --git a/asm/dodrio_berry_picking.s b/asm/dodrio_berry_picking.s index 160208493..35fefbe29 100644 --- a/asm/dodrio_berry_picking.s +++ b/asm/dodrio_berry_picking.s @@ -11348,7 +11348,7 @@ _08156020: .align 2, 0 _0815602C: .4byte gUnknown_84758A8 _08156030: - bl reset_temp_tile_data_buffers + bl ResetTempTileDataBuffers b _08156082 _08156036: ldr r1, _08156040 @ =gUnknown_8475B3C @@ -11366,12 +11366,12 @@ _08156044: _0815604C: movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram b _08156082 .align 2, 0 _08156058: .4byte gUnknown_84763CC _0815605C: - bl free_temp_tile_data_buffers_if_possible + bl FreeTempTileDataBuffersIfPossible lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 diff --git a/asm/evolution_graphics.s b/asm/evolution_graphics.s index 1dafc92ea..64edbdf7a 100644 --- a/asm/evolution_graphics.s +++ b/asm/evolution_graphics.s @@ -573,7 +573,7 @@ _080F5D80: .4byte SpriteCB_PostEvoSparkleSet2 LoadEvoSparkleSpriteAndPal: @ 80F5D84 push {lr} ldr r0, _080F5D98 @ =gUnknown_841EEC4 - bl sub_800F034 + bl LoadCompressedSpriteSheetUsingHeap ldr r0, _080F5D9C @ =gUnknown_841EED4 bl LoadSpritePalettes pop {r0} diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s index 08aa16703..e151e6d7d 100644 --- a/asm/evolution_scene.s +++ b/asm/evolution_scene.s @@ -1870,7 +1870,7 @@ _080CEDC6: cmp r4, 0 bne _080CEE40 bl StopMapMusic - bl sub_8055DC4 + bl Overworld_PlaySpecialMapMusic ldrh r1, [r5, 0xE] movs r0, 0x80 orrs r0, r1 @@ -1944,7 +1944,7 @@ _080CEE74: cmp r0, 0 bne _080CEE90 bl StopMapMusic - bl sub_8055DC4 + bl Overworld_PlaySpecialMapMusic _080CEE90: movs r2, 0x1A ldrsh r0, [r4, r2] diff --git a/asm/field_camera.s b/asm/field_camera.s index 5541c6472..f6cbbd0ef 100644 --- a/asm/field_camera.s +++ b/asm/field_camera.s @@ -710,11 +710,11 @@ _0805AAA2: strh r0, [r3] _0805AABE: movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram movs r0, 0x3 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram pop {r4} pop {r0} bx r0 diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s index 67e7e7d5a..c6476053a 100644 --- a/asm/field_control_avatar.s +++ b/asm/field_control_avatar.s @@ -320,7 +320,7 @@ sub_806CAC8: @ 806CAC8 sub sp, 0x8 adds r5, r0, 0 bl sub_8069A54 - bl player_get_direction_lower_nybble + bl GetPlayerFacingDirection lsls r0, 24 lsrs r6, r0, 24 mov r4, sp @@ -629,7 +629,7 @@ _0806CD54: ldrb r0, [r4, 0x2] cmp r0, 0 beq _0806CDC0 - bl player_get_direction_lower_nybble + bl GetPlayerFacingDirection lsls r0, 24 lsrs r0, 24 ldrb r1, [r4, 0x2] @@ -1033,7 +1033,7 @@ _0806D078: lsls r0, 2 ldr r1, _0806D098 @ =gMapObjects adds r0, r1 - bl FieldObjectCheckIfSpecialAnimFinishedOrInactive + bl FieldObjectCheckHeldMovementStatus lsls r0, 24 cmp r0, 0 bne _0806D0A0 diff --git a/asm/field_effect.s b/asm/field_effect.s index 0fa36ce46..3655d2830 100644 --- a/asm/field_effect.s +++ b/asm/field_effect.s @@ -608,12 +608,12 @@ CreateTrainerSprite: @ 8083858 add r8, r4 mov r0, r8 adds r1, r7, 0 - bl LoadCompressedObjectPaletteOverrideBuffer + bl LoadCompressedSpritePaletteOverrideBuffer ldr r0, _080838E4 @ =gTrainerFrontPicTable adds r4, r0 adds r0, r4, 0 adds r1, r7, 0 - bl LoadCompressedObjectPicOverrideBuffer + bl LoadCompressedSpriteSheetOverrideBuffer mov r1, sp ldrh r0, [r4, 0x6] movs r2, 0 @@ -2062,7 +2062,7 @@ _0808438C: .4byte mapldr_08084390 thumb_func_start mapldr_08084390 mapldr_08084390: @ 8084390 push {r4,lr} - bl sub_8055DC4 + bl Overworld_PlaySpecialMapMusic bl sub_807DC00 ldr r0, _080843E8 @ =c3_080843F8 movs r1, 0 @@ -2154,7 +2154,7 @@ _08084450: .4byte gPaletteFade thumb_func_start sub_8084454 sub_8084454: @ 8084454 push {lr} - bl sub_8055DC4 + bl Overworld_PlaySpecialMapMusic bl pal_fill_for_maplights bl sub_8111CF0 bl ScriptContext2_Enable @@ -2235,7 +2235,7 @@ sub_80844BC: @ 80844BC strb r1, [r0, 0x1] movs r0, 0x1 strb r0, [r6, 0x6] - bl player_get_direction_lower_nybble + bl GetPlayerFacingDirection lsls r0, 24 lsrs r0, 24 bl sub_8063EB8 @@ -2243,7 +2243,7 @@ sub_80844BC: @ 80844BC lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement adds r3, r4, 0 adds r3, 0x42 ldrb r0, [r3] @@ -2653,17 +2653,17 @@ sub_8084820: @ 8084820 ldr r1, _0808488C @ =gMapObjects adds r4, r0, r1 adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + bl FieldObjectIsMovementOverridden lsls r0, 24 cmp r0, 0 beq _0808484A adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _0808487E _0808484A: - bl player_get_direction_lower_nybble + bl GetPlayerFacingDirection lsls r0, 24 lsrs r0, 24 bl sub_8063EB8 @@ -2671,7 +2671,7 @@ _0808484A: lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement ldrh r0, [r5, 0x8] adds r0, 0x1 movs r1, 0 @@ -2885,7 +2885,7 @@ _080849F0: .4byte sub_80847C0 thumb_func_start sub_80849F4 sub_80849F4: @ 80849F4 push {lr} - bl sub_8055DC4 + bl Overworld_PlaySpecialMapMusic bl pal_fill_for_maplights bl sub_8111CF0 bl ScriptContext2_Enable @@ -2952,7 +2952,7 @@ sub_8084A5C: @ 8084A5C lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement mov r4, sp adds r4, 0x2 mov r0, sp @@ -3192,7 +3192,7 @@ sub_8084C3C: @ 8084C3C ldr r1, _08084C98 @ =gMapObjects adds r4, r0, r1 adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _08084C8A @@ -3205,7 +3205,7 @@ sub_8084C3C: @ 8084C3C lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement ldr r0, _08084C9C @ =sub_8084A24 bl FindTaskIdByFunc lsls r0, 24 @@ -3317,12 +3317,12 @@ waterfall_1_do_anim_probably: @ 8084D44 adds r5, r1, 0 bl ScriptContext2_Enable adds r0, r5, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + bl FieldObjectIsMovementOverridden lsls r0, 24 cmp r0, 0 bne _08084D74 adds r0, r5, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished ldr r1, _08084D7C @ =gFieldEffectArguments movs r2, 0xA ldrsh r0, [r4, r2] @@ -3374,7 +3374,7 @@ sub_8084DA4: @ 8084DA4 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] @@ -3390,7 +3390,7 @@ sub_8084DCC: @ 8084DCC adds r5, r0, 0 adds r4, r1, 0 adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 bne _08084DE2 @@ -3909,7 +3909,7 @@ _080851B8: .4byte sub_8084F44 thumb_func_start mapldr_080851BC mapldr_080851BC: @ 80851BC push {lr} - bl sub_8055DC4 + bl Overworld_PlaySpecialMapMusic bl pal_fill_for_maplights bl sub_8111CF0 bl ScriptContext2_Enable @@ -4070,7 +4070,7 @@ sub_80852C0: @ 80852C0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement _08085308: movs r0, 0 pop {r4} @@ -4084,7 +4084,7 @@ _08085310: .4byte gSprites sub_8085314: @ 8085314 push {lr} adds r0, r1, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _0808533E @@ -4266,7 +4266,7 @@ sub_8085470: @ 8085470 adds r4, r1, 0 adds r6, r2, 0 adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _080854E4 @@ -4311,7 +4311,7 @@ _080854C4: lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement movs r0, 0x21 bl PlaySE _080854E4: @@ -4527,7 +4527,7 @@ sub_808566C: @ 808566C strh r0, [r4, 0x8] movs r0, 0x40 strh r0, [r4, 0x22] - bl player_get_direction_lower_nybble + bl GetPlayerFacingDirection lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x24] @@ -4641,12 +4641,12 @@ sub_808576C: @ 808576C adds r4, r0, 0 adds r6, r1, 0 adds r5, r2, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + bl FieldObjectIsMovementOverridden lsls r0, 24 cmp r0, 0 beq _0808578A adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _080857E4 @@ -4673,7 +4673,7 @@ _0808579E: lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement ldrh r1, [r5] movs r2, 0 ldrsh r0, [r5, r2] @@ -4965,7 +4965,7 @@ _080859C4: thumb_func_start sub_80859D4 sub_80859D4: @ 80859D4 push {lr} - bl sub_8055DC4 + bl Overworld_PlaySpecialMapMusic bl pal_fill_for_maplights bl sub_8111CF0 bl ScriptContext2_Enable @@ -5031,7 +5031,7 @@ sub_8085A54: @ 8085A54 beq _08085A78 movs r0, 0x28 bl PlaySE - bl player_get_direction_lower_nybble + bl GetPlayerFacingDirection lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] @@ -5125,7 +5125,7 @@ _08085B10: cmp r1, r0 bne _08085B58 adds r0, r6, 0 - bl FieldObjectCheckIfSpecialAnimFinishedOrInactive + bl FieldObjectCheckHeldMovementStatus lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -5200,7 +5200,7 @@ sub_8085BA8: @ 8085BA8 bl ScriptContext2_Enable bl player_bitmagic bl CameraObjectReset2 - bl player_get_direction_lower_nybble + bl GetPlayerFacingDirection lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] @@ -5431,7 +5431,7 @@ _08085D84: .4byte sub_8085B78 thumb_func_start mapldr_08085D88 mapldr_08085D88: @ 8085D88 push {lr} - bl sub_8055DC4 + bl Overworld_PlaySpecialMapMusic bl pal_fill_for_maplights bl sub_8111CF0 bl ScriptContext2_Enable @@ -5540,7 +5540,7 @@ sub_8085E0C: @ 8085E0C ldrb r0, [r2] lsrs r0, 6 strh r0, [r6, 0x24] - bl player_get_direction_lower_nybble + bl GetPlayerFacingDirection lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x26] @@ -6185,7 +6185,7 @@ sub_8086358: @ 8086358 movs r1, 0 movs r2, 0 bl ChangeBgY - bl sub_80F77B8 + bl Menu_LoadStdPal movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -6568,7 +6568,7 @@ sub_8086650: @ 8086650 movs r1, 0 movs r2, 0 bl ChangeBgY - bl sub_80F77B8 + bl Menu_LoadStdPal movs r0, 0x26 ldrsh r1, [r4, r0] lsls r0, r1, 4 @@ -7050,12 +7050,12 @@ sub_8086A20: @ 8086A20 ldr r1, _08086A68 @ =gMapObjects adds r4, r0, r1 adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + bl FieldObjectIsMovementOverridden lsls r0, 24 cmp r0, 0 beq _08086A4A adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _08086A5C @@ -7063,7 +7063,7 @@ _08086A4A: bl sub_805CB70 adds r0, r4, 0 movs r1, 0x45 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] @@ -7087,7 +7087,7 @@ sub_8086A6C: @ 8086A6C lsls r0, 2 ldr r1, _08086AAC @ =gMapObjects adds r0, r1 - bl FieldObjectCheckIfSpecialAnimFinishedOrInactive + bl FieldObjectCheckHeldMovementStatus lsls r0, 24 cmp r0, 0 beq _08086AA2 @@ -7135,9 +7135,9 @@ sub_8086AB4: @ 8086AB4 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_805F060 + bl EventObjectSetGraphicsId adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished ldrb r0, [r4, 0x18] lsrs r0, 4 bl sub_80641C0 @@ -7145,7 +7145,7 @@ sub_8086AB4: @ 8086AB4 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement ldr r1, _08086B2C @ =gFieldEffectArguments movs r2, 0xA ldrsh r0, [r6, r2] @@ -7182,7 +7182,7 @@ sub_8086B30: @ 8086B30 ldr r1, _08086BA0 @ =gMapObjects adds r4, r0, r1 adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _08086B96 @@ -7199,7 +7199,7 @@ sub_8086B30: @ 8086B30 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement ldrb r0, [r4, 0x1A] movs r1, 0x1 bl sub_80DC44C @@ -7302,12 +7302,12 @@ sub_8086C24: @ 8086C24 ldr r1, _08086C6C @ =gMapObjects adds r4, r0, r1 adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + bl FieldObjectIsMovementOverridden lsls r0, 24 cmp r0, 0 beq _08086C4E adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _08086C60 @@ -7315,7 +7315,7 @@ _08086C4E: bl sub_805CBE8 adds r0, r4, 0 movs r1, 0x45 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] @@ -7340,7 +7340,7 @@ sub_8086C70: @ 8086C70 ldr r1, _08086CA0 @ =gMapObjects adds r4, r0, r1 adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _08086CEE @@ -7366,7 +7366,7 @@ _08086CAE: lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_805F060 + bl EventObjectSetGraphicsId b _08086CD2 _08086CC0: movs r0, 0 @@ -7375,7 +7375,7 @@ _08086CC0: lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_805F060 + bl EventObjectSetGraphicsId _08086CD2: ldrb r0, [r4, 0x18] lsls r0, 28 @@ -7405,7 +7405,7 @@ sub_8086CF4: @ 8086CF4 lsls r0, 2 ldr r1, _08086D30 @ =gMapObjects adds r0, r1 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _08086D26 @@ -7599,12 +7599,12 @@ sub_8086E70: @ 8086E70 ldr r1, _08086EC4 @ =gMapObjects adds r4, r0, r1 adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + bl FieldObjectIsMovementOverridden lsls r0, 24 cmp r0, 0 beq _08086E9A adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _08086EB8 @@ -7617,7 +7617,7 @@ _08086E9A: bl sub_805CB70 adds r0, r4, 0 movs r1, 0x45 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] @@ -7641,7 +7641,7 @@ sub_8086EC8: @ 8086EC8 lsls r0, 2 ldr r1, _08086F04 @ =gMapObjects adds r0, r1 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _08086EF8 @@ -7732,7 +7732,7 @@ sub_8086F64: @ 8086F64 ldr r1, _08086FA4 @ =gMapObjects adds r0, r1 movs r1, 0x2 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement _08086F98: pop {r4} pop {r0} @@ -7765,7 +7765,7 @@ sub_8086FA8: @ 8086FA8 bne _08086FEC _08086FCE: adds r0, r2, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _08086FEC @@ -7809,7 +7809,7 @@ sub_8086FFC: @ 8086FFC lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_805F060 + bl EventObjectSetGraphicsId ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 @@ -7824,7 +7824,7 @@ sub_8086FFC: @ 8086FFC strb r0, [r4, 0x1] adds r0, r4, 0 movs r1, 0x54 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] @@ -8433,12 +8433,12 @@ sub_80874C8: @ 80874C8 ldr r1, _080875B8 @ =gMapObjects adds r5, r0, r1 adds r0, r5, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + bl FieldObjectIsMovementOverridden lsls r0, 24 cmp r0, 0 beq _080874F2 adds r0, r5, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _080875AE @@ -8468,7 +8468,7 @@ _0808751A: lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 - bl sub_805F060 + bl EventObjectSetGraphicsId bl CameraObjectReset2 adds r0, r5, 0 movs r1, 0x3 @@ -8688,7 +8688,7 @@ sub_8087698: @ 8087698 bl sub_805CB70 adds r0, r5, 0 movs r1, 0x45 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] @@ -8713,7 +8713,7 @@ sub_8087710: @ 8087710 lsls r0, 2 ldr r1, _08087744 @ =gMapObjects adds r0, r1 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _08087738 @@ -8795,7 +8795,7 @@ _080877B4: lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_805F060 + bl EventObjectSetGraphicsId adds r0, r4, 0 movs r1, 0x1 bl FieldObjectTurn diff --git a/asm/field_fadetransition.s b/asm/field_fadetransition.s index ceaaaf7a6..6939ccac0 100644 --- a/asm/field_fadetransition.s +++ b/asm/field_fadetransition.s @@ -245,7 +245,7 @@ _0807DCDC: sub_807DCE4: @ 807DCE4 push {lr} bl ScriptContext2_Enable - bl sub_8055DC4 + bl Overworld_PlaySpecialMapMusic bl sub_807DC00 ldr r0, _0807DD00 @ =task0A_nop_for_a_while movs r1, 0xA @@ -277,7 +277,7 @@ _0807DD1C: FieldCallback_ReturnToEventScript2: @ 807DD24 push {lr} bl ScriptContext2_Enable - bl sub_8055DC4 + bl Overworld_PlaySpecialMapMusic bl sub_807DC00 ldr r0, _0807DD40 @ =task0A_asap_script_env_2_enable_and_set_ctx_running movs r1, 0xA @@ -366,7 +366,7 @@ _0807DDCA: sub_807DDD0: @ 807DDD0 push {lr} bl ScriptContext2_Enable - bl sub_8055DC4 + bl Overworld_PlaySpecialMapMusic bl palette_bg_faded_fill_black ldr r0, _0807DDEC @ =task_mpl_807DD60 movs r1, 0xA @@ -434,7 +434,7 @@ _0807DE50: sub_807DE58: @ 807DE58 push {lr} bl ScriptContext2_Enable - bl sub_8055DC4 + bl Overworld_PlaySpecialMapMusic bl palette_bg_faded_fill_black ldr r0, _0807DE74 @ =sub_807DDF0 movs r1, 0xA @@ -563,7 +563,7 @@ _0807DF5E: thumb_func_start sub_807DF64 sub_807DF64: @ 807DF64 push {lr} - bl sub_8055DC4 + bl Overworld_PlaySpecialMapMusic bl sub_8111CF0 movs r0, 0 bl sub_807DE78 @@ -575,7 +575,7 @@ sub_807DF64: @ 807DF64 thumb_func_start sub_807DF7C sub_807DF7C: @ 807DF7C push {lr} - bl sub_8055DC4 + bl Overworld_PlaySpecialMapMusic bl sub_8111CF0 movs r0, 0x1 bl sub_807DE78 @@ -587,7 +587,7 @@ sub_807DF7C: @ 807DF7C thumb_func_start sub_807DF94 sub_807DF94: @ 807DF94 push {lr} - bl sub_8055DC4 + bl Overworld_PlaySpecialMapMusic bl pal_fill_for_maplights bl sub_8111CF0 movs r0, 0x28 @@ -730,7 +730,7 @@ _0807E0AE: ldr r1, _0807E0E8 @ =gMapObjects adds r0, r1 movs r1, 0x10 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement movs r0, 0x8 strh r0, [r4, 0x8] b _0807E206 @@ -783,7 +783,7 @@ _0807E10E: lsls r0, 2 ldr r1, _0807E15C @ =gMapObjects adds r0, r1 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished b _0807E1F2 .align 2, 0 _0807E158: .4byte sub_807F204 @@ -807,7 +807,7 @@ _0807E160: ldr r1, _0807E194 @ =gMapObjects adds r0, r1 movs r1, 0x10 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement movs r0, 0x2 strh r0, [r4, 0x8] b _0807E206 @@ -838,7 +838,7 @@ _0807E198: lsls r0, 2 ldr r1, _0807E1D8 @ =gMapObjects adds r0, r1 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished movs r0, 0x3 strh r0, [r4, 0x8] b _0807E206 @@ -929,7 +929,7 @@ _0807E25E: lsls r4, 2 ldr r0, _0807E2A4 @ =gMapObjects adds r4, r0 - bl player_get_direction_lower_nybble + bl GetPlayerFacingDirection lsls r0, 24 lsrs r0, 24 bl sub_8063F84 @@ -937,7 +937,7 @@ _0807E25E: lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement movs r0, 0x2 strh r0, [r5, 0x8] b _0807E2C6 @@ -1112,7 +1112,7 @@ _0807E3E4: sub_807E3EC: @ 807E3EC push {lr} bl ScriptContext2_Enable - bl sub_8055DC4 + bl Overworld_PlaySpecialMapMusic bl sub_807DC00 ldr r0, _0807E408 @ =task_mpl_807E3C8 movs r1, 0xA @@ -1744,7 +1744,7 @@ _0807E8AE: lsls r0, 2 adds r0, r4 movs r1, 0x11 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement movs r0, 0x2 strh r0, [r5, 0x8] b _0807E976 @@ -1776,7 +1776,7 @@ _0807E8F4: lsls r0, 2 ldr r1, _0807E93C @ =gMapObjects adds r0, r1 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished movs r0, 0 bl sub_807DCB0 movs r0, 0x3 @@ -1871,12 +1871,12 @@ _0807E9DA: b _0807EA92 _0807E9E8: adds r0, r6, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + bl FieldObjectIsMovementOverridden lsls r0, 24 cmp r0, 0 beq _0807EA00 adds r0, r6, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _0807EAB0 @@ -2033,7 +2033,7 @@ _0807EB08: lsrs r0, 7 cmp r0, 0 beq _0807EB4C - bl player_get_direction_lower_nybble + bl GetPlayerFacingDirection lsls r0, 24 lsrs r0, 24 bl GetStepInPlaceDelay16AnimId @@ -2071,7 +2071,7 @@ sub_807EB64: @ 807EB64 lsls r4, 2 ldr r0, _0807EBB8 @ =gMapObjects adds r4, r0 - bl player_get_direction_lower_nybble + bl GetPlayerFacingDirection lsls r0, 24 lsrs r0, 24 bl GetStepInPlaceDelay16AnimId @@ -2188,7 +2188,7 @@ sub_807EC34: @ 807EC34 .align 2, 0 _0807EC6C: .4byte gTasks+0x8 _0807EC70: - bl sub_8055DC4 + bl Overworld_PlaySpecialMapMusic bl pal_fill_for_maplights bl ScriptContext2_Enable adds r0, r5, 0x2 diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s index 1275f7471..92ef6a6e4 100644 --- a/asm/field_map_obj.s +++ b/asm/field_map_obj.s @@ -2440,8 +2440,8 @@ _0805F058: .4byte gPlayerAvatar _0805F05C: .4byte gMapObjects thumb_func_end SetPlayerAvatarFieldObjectIdAndObjectId - thumb_func_start sub_805F060 -sub_805F060: @ 805F060 + thumb_func_start EventObjectSetGraphicsId +EventObjectSetGraphicsId: @ 805F060 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -2625,7 +2625,7 @@ _0805F1BA: _0805F1CC: .4byte gSprites _0805F1D0: .4byte 0x000003ff _0805F1D4: .4byte 0xfffffc00 - thumb_func_end sub_805F060 + thumb_func_end EventObjectSetGraphicsId thumb_func_start FieldObjectSetGraphicsIdByLocalIdAndMap FieldObjectSetGraphicsIdByLocalIdAndMap: @ 805F1D8 @@ -2652,7 +2652,7 @@ FieldObjectSetGraphicsIdByLocalIdAndMap: @ 805F1D8 ldr r1, _0805F214 @ =gMapObjects adds r0, r1 adds r1, r4, 0 - bl sub_805F060 + bl EventObjectSetGraphicsId _0805F20C: add sp, 0x4 pop {r4} @@ -10353,7 +10353,7 @@ mss_npc_reset_oampriv3_1_unk2_unk3: @ 80628C0 ldrb r0, [r4] cmp r0, 0 bne _080628D8 - bl player_get_direction_lower_nybble + bl GetPlayerFacingDirection strb r0, [r4] _080628D8: movs r0, 0x1 @@ -13097,8 +13097,8 @@ FieldObjectMoveDestCoords: @ 8063C50 bx r0 thumb_func_end FieldObjectMoveDestCoords - thumb_func_start FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive -FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive: @ 8063C70 + thumb_func_start FieldObjectIsMovementOverridden +FieldObjectIsMovementOverridden: @ 8063C70 push {lr} ldrb r1, [r0] movs r0, 0x42 @@ -13112,7 +13112,7 @@ _08063C80: _08063C82: pop {r1} bx r1 - thumb_func_end FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + thumb_func_end FieldObjectIsMovementOverridden thumb_func_start FieldObjectIsSpecialAnimActive FieldObjectIsSpecialAnimActive: @ 8063C88 @@ -13134,8 +13134,8 @@ _08063CA0: bx r1 thumb_func_end FieldObjectIsSpecialAnimActive - thumb_func_start sub_8063CA4 -sub_8063CA4: @ 8063CA4 + thumb_func_start FieldObjectSetHeldMovement +FieldObjectSetHeldMovement: @ 8063CA4 push {r4,r5,lr} adds r4, r0, 0 lsls r1, 24 @@ -13146,7 +13146,7 @@ sub_8063CA4: @ 8063CA4 cmp r0, 0x1 beq _08063CC8 adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + bl FieldObjectIsMovementOverridden lsls r0, 24 cmp r0, 0 beq _08063CCE @@ -13180,7 +13180,7 @@ _08063CF4: bx r1 .align 2, 0 _08063CFC: .4byte gSprites - thumb_func_end sub_8063CA4 + thumb_func_end FieldObjectSetHeldMovement thumb_func_start FieldObjectForceSetSpecialAnim FieldObjectForceSetSpecialAnim: @ 8063D00 @@ -13191,7 +13191,7 @@ FieldObjectForceSetSpecialAnim: @ 8063D00 bl FieldObjectClearAnimIfSpecialAnimActive adds r0, r5, 0 adds r1, r4, 0 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement pop {r4,r5} pop {r0} bx r0 @@ -13242,8 +13242,8 @@ FieldObjectClearAnim: @ 8063D34 _08063D64: .4byte gSprites thumb_func_end FieldObjectClearAnim - thumb_func_start FieldObjectCheckIfSpecialAnimFinishedOrInactive -FieldObjectCheckIfSpecialAnimFinishedOrInactive: @ 8063D68 + thumb_func_start FieldObjectCheckHeldMovementStatus +FieldObjectCheckHeldMovementStatus: @ 8063D68 push {lr} ldrb r1, [r0] lsls r0, r1, 25 @@ -13256,13 +13256,13 @@ _08063D76: _08063D78: pop {r1} bx r1 - thumb_func_end FieldObjectCheckIfSpecialAnimFinishedOrInactive + thumb_func_end FieldObjectCheckHeldMovementStatus - thumb_func_start FieldObjectClearAnimIfSpecialAnimFinished -FieldObjectClearAnimIfSpecialAnimFinished: @ 8063D7C + thumb_func_start FieldObjectClearHeldMovementIfFinished +FieldObjectClearHeldMovementIfFinished: @ 8063D7C push {r4,r5,lr} adds r5, r0, 0 - bl FieldObjectCheckIfSpecialAnimFinishedOrInactive + bl FieldObjectCheckHeldMovementStatus lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 @@ -13276,7 +13276,7 @@ _08063D96: pop {r4,r5} pop {r1} bx r1 - thumb_func_end FieldObjectClearAnimIfSpecialAnimFinished + thumb_func_end FieldObjectClearHeldMovementIfFinished thumb_func_start FieldObjectGetSpecialAnim FieldObjectGetSpecialAnim: @ 8063DA0 @@ -14023,7 +14023,7 @@ FieldObjectFaceOppositeDirection: @ 80642C8 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement lsls r0, 24 lsrs r0, 24 pop {r4} diff --git a/asm/field_message_box.s b/asm/field_message_box.s index 46f4c3f8e..a326e0f59 100644 --- a/asm/field_message_box.s +++ b/asm/field_message_box.s @@ -65,13 +65,13 @@ _0806939E: movs r1, 0x80 lsls r1, 2 movs r0, 0 - bl sub_814FF98 + bl TextWindow_LoadTilesStdFrame1 b _080693E2 .align 2, 0 _080693BC: .4byte gUnknown_203ADFA _080693C0: .4byte gTextFlags _080693C4: - bl sub_8069A38 + bl IsMsgSignPost lsls r0, 24 cmp r0, 0 bne _080693D4 @@ -90,7 +90,7 @@ _080693E2: strh r0, [r5, 0x8] b _08069402 _080693EA: - bl sub_80F6CBC + bl RunTextPrinters_CheckPrinter0Active lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 @@ -226,7 +226,7 @@ textbox_fdecode_auto_and_task_add: @ 80694C8 ldr r0, _080694E0 @ =gStringVar4 bl StringExpandPlaceholders movs r0, 0x1 - bl sub_80F6D5C + bl AddTextPrinterDiffStyle bl task_add_textbox pop {r0} bx r0 @@ -238,7 +238,7 @@ _080694E0: .4byte gStringVar4 textbox_auto_and_task_add: @ 80694E4 push {lr} movs r0, 0x1 - bl sub_80F6D5C + bl AddTextPrinterDiffStyle bl task_add_textbox pop {r0} bx r0 diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s index 5fb0f3dad..c753fb948 100644 --- a/asm/field_player_avatar.s +++ b/asm/field_player_avatar.s @@ -94,12 +94,12 @@ sub_805B45C: @ 805B45C adds r4, r0, 0 lsls r1, 24 lsrs r5, r1, 24 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + bl FieldObjectIsMovementOverridden lsls r0, 24 cmp r0, 0 beq _0805B4A6 adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 bne _0805B4A6 @@ -845,7 +845,7 @@ _0805B9AC: .4byte gPlayerAvatar thumb_func_start PlayerNotOnBikeNotMoving PlayerNotOnBikeNotMoving: @ 805B9B0 push {lr} - bl player_get_direction_lower_nybble + bl GetPlayerFacingDirection lsls r0, 24 lsrs r0, 24 bl PlayerFaceDirection @@ -1631,7 +1631,7 @@ PlayerIsAnimActive: @ 805BF7C lsls r0, 2 ldr r1, _0805BF9C @ =gMapObjects adds r0, r1 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + bl FieldObjectIsMovementOverridden lsls r0, 24 lsrs r0, 24 pop {r1} @@ -1651,7 +1651,7 @@ PlayerCheckIfAnimFinishedOrInactive: @ 805BFA0 lsls r0, 2 ldr r1, _0805BFC0 @ =gMapObjects adds r0, r1 - bl FieldObjectCheckIfSpecialAnimFinishedOrInactive + bl FieldObjectCheckHeldMovementStatus lsls r0, 24 lsrs r0, 24 pop {r1} @@ -1737,7 +1737,7 @@ sub_805C024: @ 805C024 ldr r1, _0805C068 @ =gMapObjects adds r0, r1 adds r1, r5, 0 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement lsls r0, 24 cmp r0, 0 bne _0805C05E @@ -1765,7 +1765,7 @@ sub_805C06C: @ 805C06C ldr r1, _0805C0A0 @ =gMapObjects adds r0, r1 adds r1, r4, 0 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement lsls r0, 24 cmp r0, 0 bne _0805C094 @@ -1789,7 +1789,7 @@ sub_805C0A4: @ 805C0A4 lsls r1, 24 lsrs r5, r1, 24 adds r1, r5, 0 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement lsls r0, 24 cmp r0, 0 bne _0805C0CA @@ -2404,7 +2404,7 @@ GetXYCoordsOneStepInFrontOfPlayer: @ 805C4F4 adds r0, r3 ldrh r0, [r0, 0x12] strh r0, [r5] - bl player_get_direction_lower_nybble + bl GetPlayerFacingDirection lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 @@ -2582,8 +2582,8 @@ _0805C6BC: bx r1 thumb_func_end plaer_get_pos_including_state_based_drift - thumb_func_start player_get_direction_lower_nybble -player_get_direction_lower_nybble: @ 805C6C4 + thumb_func_start GetPlayerFacingDirection +GetPlayerFacingDirection: @ 805C6C4 ldr r2, _0805C6DC @ =gMapObjects ldr r0, _0805C6E0 @ =gPlayerAvatar ldrb r1, [r0, 0x5] @@ -2598,7 +2598,7 @@ player_get_direction_lower_nybble: @ 805C6C4 .align 2, 0 _0805C6DC: .4byte gMapObjects _0805C6E0: .4byte gPlayerAvatar - thumb_func_end player_get_direction_lower_nybble + thumb_func_end GetPlayerFacingDirection thumb_func_start player_get_direction_upper_nybble player_get_direction_upper_nybble: @ 805C6E4 @@ -3257,7 +3257,7 @@ sub_805CB70: @ 805CB70 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_805F060 + bl EventObjectSetGraphicsId ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 @@ -3318,7 +3318,7 @@ sub_805CBE8: @ 805CBE8 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_805F060 + bl EventObjectSetGraphicsId ldrb r1, [r5, 0x4] lsls r0, r1, 4 adds r0, r1 @@ -3532,19 +3532,19 @@ sub_805CD84: @ 805CD84 adds r5, r1, 0 adds r4, r2, 0 adds r0, r5, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + bl FieldObjectIsMovementOverridden lsls r0, 24 cmp r0, 0 bne _0805CE0E adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + bl FieldObjectIsMovementOverridden lsls r0, 24 cmp r0, 0 bne _0805CE0E adds r0, r5, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished ldrb r0, [r6, 0xC] bl GetStepInPlaceDelay16AnimId adds r1, r0, 0 @@ -3602,19 +3602,19 @@ sub_805CE20: @ 805CE20 adds r5, r1, 0 adds r4, r2, 0 adds r0, r5, 0 - bl FieldObjectCheckIfSpecialAnimFinishedOrInactive + bl FieldObjectCheckHeldMovementStatus lsls r0, 24 cmp r0, 0 beq _0805CE70 adds r0, r4, 0 - bl FieldObjectCheckIfSpecialAnimFinishedOrInactive + bl FieldObjectCheckHeldMovementStatus lsls r0, 24 cmp r0, 0 beq _0805CE70 adds r0, r5, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished adds r0, r4, 0 bl sub_806DE28 ldrh r0, [r4, 0x10] @@ -3704,7 +3704,7 @@ PlayerAvatar_DoSecretBaseMatJump: @ 805CEEC movs r0, 0x1 strb r0, [r5, 0x6] adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _0805CF48 @@ -3836,7 +3836,7 @@ sub_805CFEC: @ 805CFEC movs r2, 0x4 bl memcpy adds r0, r5, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _0805D054 @@ -3896,7 +3896,7 @@ sub_805D064: @ 805D064 movs r2, 0x5 bl memcpy adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _0805D094 @@ -3924,7 +3924,7 @@ sub_805D0A4: @ 805D0A4 adds r4, r0, 0 adds r5, r1, 0 adds r0, r5, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _0805D0E8 @@ -4073,12 +4073,12 @@ taskFF_0805D1D4: @ 805D1D4 ldr r1, _0805D234 @ =gMapObjects adds r5, r0, r1 adds r0, r5, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + bl FieldObjectIsMovementOverridden lsls r0, 24 cmp r0, 0 beq _0805D200 adds r0, r5, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _0805D228 @@ -4124,7 +4124,7 @@ sub_805D240: @ 805D240 ldr r1, _0805D2B8 @ =gMapObjects adds r4, r0, r1 adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _0805D2AE @@ -4134,7 +4134,7 @@ sub_805D240: @ 805D240 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_805F060 + bl EventObjectSetGraphicsId ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 @@ -4503,7 +4503,7 @@ _0805D548: adds r4, r0 lsls r4, 2 adds r4, r5 - bl player_get_direction_lower_nybble + bl GetPlayerFacingDirection lsls r0, 24 lsrs r0, 24 bl sub_8063510 @@ -4734,7 +4734,7 @@ _0805D6EA: lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_805F060 + bl EventObjectSetGraphicsId ldrb r1, [r4, 0x18] lsrs r1, 4 adds r0, r4, 0 @@ -4827,7 +4827,7 @@ sub_805D7C0: @ 805D7C0 adds r4, r0 lsls r4, 2 adds r4, r5 - bl player_get_direction_lower_nybble + bl GetPlayerFacingDirection lsls r0, 24 lsrs r0, 24 bl sub_8063500 @@ -4883,7 +4883,7 @@ sub_805D838: @ 805D838 adds r4, r0 lsls r4, 2 adds r4, r5 - bl player_get_direction_lower_nybble + bl GetPlayerFacingDirection lsls r0, 24 lsrs r0, 24 bl sub_8063500 @@ -4978,7 +4978,7 @@ sub_805D8D8: @ 805D8D8 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_805F060 + bl EventObjectSetGraphicsId ldrb r1, [r4, 0x18] lsrs r1, 4 adds r0, r4, 0 @@ -5131,7 +5131,7 @@ _0805DA2E: bhi _0805DA60 movs r0, 0x8 strh r0, [r4, 0x24] - bl player_get_direction_lower_nybble + bl GetPlayerFacingDirection lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 @@ -5280,7 +5280,7 @@ _0805DB58: b _0805DBFA _0805DB5E: adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _0805DBFA @@ -5608,7 +5608,7 @@ sub_805DDC8: @ 805DDC8 ble _0805DE20 _0805DDE4: adds r0, r5, 0 - bl FieldObjectCheckIfSpecialAnimFinishedOrInactive + bl FieldObjectCheckHeldMovementStatus lsls r0, 24 cmp r0, 0 beq _0805DE20 diff --git a/asm/field_poison.s b/asm/field_poison.s index f76e7db4f..811f375c6 100644 --- a/asm/field_poison.s +++ b/asm/field_poison.s @@ -291,7 +291,7 @@ _080A0668: cmp r7, 0 beq _080A067C _080A0678: - bl overworld_poison_effect + bl FldEffPoison_Start _080A067C: cmp r6, 0 beq _080A0688 diff --git a/asm/field_special_scene.s b/asm/field_special_scene.s deleted file mode 100644 index ab436029f..000000000 --- a/asm/field_special_scene.s +++ /dev/null @@ -1,39 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80A0E78 -sub_80A0E78: @ 80A0E78 - movs r0, 0 - bx lr - thumb_func_end sub_80A0E78 - - thumb_func_start nullsub_57 -nullsub_57: @ 80A0E7C - bx lr - thumb_func_end nullsub_57 - - thumb_func_start nullsub_58 -nullsub_58: @ 80A0E80 - bx lr - thumb_func_end nullsub_58 - - thumb_func_start nullsub_59 -nullsub_59: @ 80A0E84 - bx lr - thumb_func_end nullsub_59 - - thumb_func_start nullsub_60 -nullsub_60: @ 80A0E88 - bx lr - thumb_func_end nullsub_60 - - thumb_func_start nullsub_61 -nullsub_61: @ 80A0E8C - bx lr - thumb_func_end nullsub_61 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/field_specials.s b/asm/field_specials.s index ad1806d2e..fe4ac2b2d 100644 --- a/asm/field_specials.s +++ b/asm/field_specials.s @@ -413,7 +413,7 @@ sub_80CA8F8: @ 80CA8F8 movs r4, 0 movs r7, 0 movs r5, 0 - bl player_get_direction_lower_nybble + bl GetPlayerFacingDirection lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 @@ -510,7 +510,7 @@ sub_80CA9A8: @ 80CA9A8 movs r4, 0 movs r6, 0 movs r5, 0 - bl player_get_direction_lower_nybble + bl GetPlayerFacingDirection lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 @@ -2631,7 +2631,7 @@ _080CB9D2: lsrs r0, 24 strh r0, [r5, 0x22] movs r1, 0 - bl sub_80F7750 + bl SetStdWindowBorderStyle ldr r4, _080CBA70 @ =gUnknown_3005360 ldrh r0, [r5, 0xA] strh r0, [r4, 0xC] @@ -5152,7 +5152,7 @@ sub_80CCD84: @ 80CCD84 ldr r0, _080CCDC4 @ =0x00190018 cmp r1, r0 bne _080CCDC8 - bl player_get_direction_lower_nybble + bl GetPlayerFacingDirection lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 diff --git a/asm/field_weather.s b/asm/field_weather.s index e8d3ba7ee..ac24101a7 100644 --- a/asm/field_weather.s +++ b/asm/field_weather.s @@ -2672,8 +2672,8 @@ _0807B054: .4byte gUnknown_2037F34 _0807B058: .4byte 0x000006d3 thumb_func_end sub_807B048 - thumb_func_start sub_807B05C -sub_807B05C: @ 807B05C + thumb_func_start SetWeatherScreenFadeOut +SetWeatherScreenFadeOut: @ 807B05C ldr r0, _0807B068 @ =gUnknown_2037F34 ldr r1, _0807B06C @ =0x000006c6 adds r0, r1 @@ -2683,7 +2683,7 @@ sub_807B05C: @ 807B05C .align 2, 0 _0807B068: .4byte gUnknown_2037F34 _0807B06C: .4byte 0x000006c6 - thumb_func_end sub_807B05C + thumb_func_end SetWeatherScreenFadeOut thumb_func_start sub_807B070 sub_807B070: @ 807B070 diff --git a/asm/fldeff_cut.s b/asm/fldeff_cut.s index c98cda3b7..3452841c4 100644 --- a/asm/fldeff_cut.s +++ b/asm/fldeff_cut.s @@ -39,7 +39,7 @@ sub_8097898: @ 8097898 cmp r0, 0x1 beq _080978E0 movs r0, 0x5F - bl npc_before_player_of_type + bl CheckObjectGraphicsInFrontOfPlayer lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -74,7 +74,7 @@ _080978F8: .4byte FieldCallback_PrepareFadeInFromMenu _080978FC: .4byte gPostMenuFieldCallback _08097900: .4byte sub_8097984 _08097904: - ldr r4, _0809797C @ =gUnknown_2039A04 + ldr r4, _0809797C @ =gPlayerFacingPosition adds r1, r4, 0x2 adds r0, r4, 0 bl PlayerGetDestCoords @@ -136,7 +136,7 @@ _08097970: pop {r1} bx r1 .align 2, 0 -_0809797C: .4byte gUnknown_2039A04 +_0809797C: .4byte gPlayerFacingPosition _08097980: .4byte 0x0000ffff thumb_func_end sub_8097898 @@ -253,7 +253,7 @@ sub_8097A48: @ 8097A48 movs r7, 0 movs r0, 0x79 bl PlaySE - ldr r4, _08097B38 @ =gUnknown_2039A04 + ldr r4, _08097B38 @ =gPlayerFacingPosition adds r1, r4, 0x2 adds r0, r4, 0 bl PlayerGetDestCoords @@ -362,7 +362,7 @@ _08097AE2: pop {r1} bx r1 .align 2, 0 -_08097B38: .4byte gUnknown_2039A04 +_08097B38: .4byte gPlayerFacingPosition _08097B3C: .4byte 0x0000ffff _08097B40: .4byte gUnknown_2039870 _08097B44: .4byte gSprites diff --git a/asm/fldeff_poison.s b/asm/fldeff_poison.s deleted file mode 100644 index dd3bb622e..000000000 --- a/asm/fldeff_poison.s +++ /dev/null @@ -1,98 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start task50_overworld_poison_effect -task50_overworld_poison_effect: @ 80A0DD8 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080A0DFC @ =gTasks+0x8 - adds r1, r0, r1 - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0x1 - beq _080A0E16 - cmp r0, 0x1 - bgt _080A0E00 - cmp r0, 0 - beq _080A0E06 - b _080A0E32 - .align 2, 0 -_080A0DFC: .4byte gTasks+0x8 -_080A0E00: - cmp r0, 0x2 - beq _080A0E2A - b _080A0E32 -_080A0E06: - ldrh r0, [r1, 0x2] - adds r0, 0x1 - strh r0, [r1, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080A0E32 - b _080A0E22 -_080A0E16: - ldrh r0, [r1, 0x2] - subs r0, 0x1 - strh r0, [r1, 0x2] - lsls r0, 16 - cmp r0, 0 - bne _080A0E32 -_080A0E22: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080A0E32 -_080A0E2A: - adds r0, r2, 0 - bl DestroyTask - b _080A0E42 -_080A0E32: - ldrb r1, [r1, 0x2] - lsls r0, r1, 4 - orrs r0, r1 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl Unused_AdjustBgMosaic -_080A0E42: - pop {r0} - bx r0 - thumb_func_end task50_overworld_poison_effect - - thumb_func_start overworld_poison_effect -overworld_poison_effect: @ 80A0E48 - push {lr} - movs r0, 0x48 - bl PlaySE - ldr r0, _080A0E5C @ =task50_overworld_poison_effect - movs r1, 0x50 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080A0E5C: .4byte task50_overworld_poison_effect - thumb_func_end overworld_poison_effect - - thumb_func_start c3_80A0DD8_is_running -c3_80A0DD8_is_running: @ 80A0E60 - push {lr} - ldr r0, _080A0E70 @ =task50_overworld_poison_effect - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_080A0E70: .4byte task50_overworld_poison_effect - thumb_func_end c3_80A0DD8_is_running - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/fldeff_strength.s b/asm/fldeff_strength.s deleted file mode 100644 index ace765f55..000000000 --- a/asm/fldeff_strength.s +++ /dev/null @@ -1,111 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80D07EC -sub_80D07EC: @ 80D07EC - push {r4,lr} - movs r0, 0x8 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - bne _080D0808 - movs r0, 0x61 - bl npc_before_player_of_type - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080D080C -_080D0808: - movs r0, 0 - b _080D0826 -_080D080C: - ldr r4, _080D082C @ =gSpecialVar_Result - bl GetCursorSelectionMonId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - ldr r1, _080D0830 @ =gFieldCallback2 - ldr r0, _080D0834 @ =FieldCallback_PrepareFadeInFromMenu - str r0, [r1] - ldr r1, _080D0838 @ =gPostMenuFieldCallback - ldr r0, _080D083C @ =sub_80D0840 - str r0, [r1] - movs r0, 0x1 -_080D0826: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080D082C: .4byte gSpecialVar_Result -_080D0830: .4byte gFieldCallback2 -_080D0834: .4byte FieldCallback_PrepareFadeInFromMenu -_080D0838: .4byte gPostMenuFieldCallback -_080D083C: .4byte sub_80D0840 - thumb_func_end sub_80D07EC - - thumb_func_start sub_80D0840 -sub_80D0840: @ 80D0840 - push {lr} - bl GetCursorSelectionMonId - ldr r1, _080D0858 @ =gFieldEffectArguments - lsls r0, 24 - lsrs r0, 24 - str r0, [r1] - ldr r0, _080D085C @ =gUnknown_81BE16E - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_080D0858: .4byte gFieldEffectArguments -_080D085C: .4byte gUnknown_81BE16E - thumb_func_end sub_80D0840 - - thumb_func_start sub_80D0860 -sub_80D0860: @ 80D0860 - push {lr} - bl oei_task_add - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080D0894 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _080D0898 @ =sub_80D08A8 - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - ldr r0, _080D089C @ =gFieldEffectArguments - ldr r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080D08A0 @ =gPlayerParty - adds r0, r1 - ldr r1, _080D08A4 @ =gStringVar1 - bl GetMonNickname - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080D0894: .4byte gTasks -_080D0898: .4byte sub_80D08A8 -_080D089C: .4byte gFieldEffectArguments -_080D08A0: .4byte gPlayerParty -_080D08A4: .4byte gStringVar1 - thumb_func_end sub_80D0860 - - thumb_func_start sub_80D08A8 -sub_80D08A8: @ 80D08A8 - push {lr} - movs r0, 0x28 - bl FieldEffectActiveListRemove - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_80D08A8 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/fldeff_sweetscent.s b/asm/fldeff_sweetscent.s deleted file mode 100644 index aead537d4..000000000 --- a/asm/fldeff_sweetscent.s +++ /dev/null @@ -1,262 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80DE0B4 -sub_80DE0B4: @ 80DE0B4 - push {lr} - ldr r1, _080DE0C4 @ =gUnknown_203B0A0 - movs r0, 0 - strb r0, [r1, 0x9] - bl hm2_sweet_scent - pop {r0} - bx r0 - .align 2, 0 -_080DE0C4: .4byte gUnknown_203B0A0 - thumb_func_end sub_80DE0B4 - - thumb_func_start sub_80DE0C8 -sub_80DE0C8: @ 80DE0C8 - ldr r1, _080DE0D8 @ =gFieldCallback2 - ldr r0, _080DE0DC @ =FieldCallback_PrepareFadeInFromMenu - str r0, [r1] - ldr r1, _080DE0E0 @ =gPostMenuFieldCallback - ldr r0, _080DE0E4 @ =hm2_sweet_scent - str r0, [r1] - movs r0, 0x1 - bx lr - .align 2, 0 -_080DE0D8: .4byte gFieldCallback2 -_080DE0DC: .4byte FieldCallback_PrepareFadeInFromMenu -_080DE0E0: .4byte gPostMenuFieldCallback -_080DE0E4: .4byte hm2_sweet_scent - thumb_func_end sub_80DE0C8 - - thumb_func_start hm2_sweet_scent -hm2_sweet_scent: @ 80DE0E8 - push {lr} - movs r0, 0x33 - bl FieldEffectStart - bl GetCursorSelectionMonId - ldr r1, _080DE100 @ =gFieldEffectArguments - lsls r0, 24 - lsrs r0, 24 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080DE100: .4byte gFieldEffectArguments - thumb_func_end hm2_sweet_scent - - thumb_func_start FldEff_SweetScent -FldEff_SweetScent: @ 80DE104 - push {lr} - bl sub_807B05C - bl oei_task_add - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080DE12C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _080DE130 @ =sub_80DE134 - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080DE12C: .4byte gTasks -_080DE130: .4byte sub_80DE134 - thumb_func_end FldEff_SweetScent - - thumb_func_start sub_80DE134 -sub_80DE134: @ 80DE134 - push {r4,r5,lr} - sub sp, 0x4 - movs r0, 0xE5 - bl PlaySE - ldr r4, _080DE1B8 @ =gUnknown_203AAB0 - movs r0, 0x80 - lsls r0, 3 - bl Alloc - adds r1, r0, 0 - str r1, [r4] - ldr r4, _080DE1BC @ =gPlttBufferUnfaded - movs r5, 0x80 - lsls r5, 1 - adds r0, r4, 0 - adds r2, r5, 0 - bl CpuFastSet - ldr r0, _080DE1C0 @ =gPlttBufferFaded - adds r1, r4, 0 - adds r2, r5, 0 - bl CpuFastSet - bl GetPlayerAvatarObjectId - ldr r2, _080DE1C4 @ =gSprites - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r1, [r1, 0x5] - lsrs r1, 4 - adds r1, 0x10 - movs r0, 0x1 - lsls r0, r1 - mvns r0, r0 - movs r1, 0x1F - str r1, [sp] - movs r1, 0x4 - movs r2, 0 - movs r3, 0x8 - bl BeginNormalPaletteFade - ldr r0, _080DE1C8 @ =sub_80DE1D0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080DE1CC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x8] - movs r0, 0x33 - bl FieldEffectActiveListRemove - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DE1B8: .4byte gUnknown_203AAB0 -_080DE1BC: .4byte gPlttBufferUnfaded -_080DE1C0: .4byte gPlttBufferFaded -_080DE1C4: .4byte gSprites -_080DE1C8: .4byte sub_80DE1D0 -_080DE1CC: .4byte gTasks - thumb_func_end sub_80DE134 - - thumb_func_start sub_80DE1D0 -sub_80DE1D0: @ 80DE1D0 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r5, r0, 3 - ldr r6, _080DE21C @ =gTasks+0x8 - adds r2, r5, r6 - ldr r0, _080DE220 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080DE26C - ldrh r3, [r2] - movs r7, 0 - ldrsh r0, [r2, r7] - cmp r0, 0x40 - bne _080DE268 - strh r1, [r2] - bl sub_8082EC0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080DE228 - ldr r0, _080DE224 @ =gUnknown_203AAB0 - ldr r0, [r0] - bl Free - adds r0, r4, 0 - bl DestroyTask - b _080DE26C - .align 2, 0 -_080DE21C: .4byte gTasks+0x8 -_080DE220: .4byte gPaletteFade -_080DE224: .4byte gUnknown_203AAB0 -_080DE228: - adds r0, r6, 0 - subs r0, 0x8 - adds r0, r5, r0 - ldr r1, _080DE260 @ =sub_80DE274 - str r1, [r0] - bl GetPlayerAvatarObjectId - ldr r2, _080DE264 @ =gSprites - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r1, [r1, 0x5] - lsrs r1, 4 - adds r1, 0x10 - movs r0, 0x1 - lsls r0, r1 - mvns r0, r0 - movs r1, 0x1F - str r1, [sp] - movs r1, 0x4 - movs r2, 0x8 - movs r3, 0 - bl BeginNormalPaletteFade - b _080DE26C - .align 2, 0 -_080DE260: .4byte sub_80DE274 -_080DE264: .4byte gSprites -_080DE268: - adds r0, r3, 0x1 - strh r0, [r2] -_080DE26C: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80DE1D0 - - thumb_func_start sub_80DE274 -sub_80DE274: @ 80DE274 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080DE2B0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080DE2AA - ldr r4, _080DE2B4 @ =gUnknown_203AAB0 - ldr r0, [r4] - ldr r1, _080DE2B8 @ =gPlttBufferUnfaded - movs r2, 0x80 - lsls r2, 1 - bl CpuFastSet - bl sub_807B070 - ldr r0, [r4] - bl Free - ldr r0, _080DE2BC @ =gUnknown_81BE564 - bl ScriptContext1_SetupScript - adds r0, r5, 0 - bl DestroyTask -_080DE2AA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DE2B0: .4byte gPaletteFade -_080DE2B4: .4byte gUnknown_203AAB0 -_080DE2B8: .4byte gPlttBufferUnfaded -_080DE2BC: .4byte gUnknown_81BE564 - thumb_func_end sub_80DE274 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s index 97bf9ef64..4d861b902 100644 --- a/asm/hall_of_fame.s +++ b/asm/hall_of_fame.s @@ -2322,7 +2322,7 @@ _080F3082: bl Free str r4, [r5] _080F3090: - bl sub_80CA5A0 + bl ReturnFromHallOfFamePC _080F3094: pop {r4,r5} pop {r0} @@ -3073,16 +3073,16 @@ sub_80F36BC: @ 80F36BC bl ScanlineEffect_Stop bl ResetTasks bl ResetSpriteData - bl reset_temp_tile_data_buffers + bl ResetTempTileDataBuffers bl ResetAllPicSprites bl FreeAllSpritePalettes ldr r1, _080F36EC @ =gReservedSpritePaletteCount movs r0, 0x8 strb r0, [r1] ldr r0, _080F36F0 @ =gUnknown_840C248 - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet ldr r0, _080F36F4 @ =gUnknown_840C258 - bl LoadCompressedObjectPalette + bl LoadCompressedSpritePalette pop {r0} bx r0 .align 2, 0 @@ -3174,12 +3174,12 @@ _080F37A4: movs r0, 0x1 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram b _080F3854 .align 2, 0 _080F37B8: .4byte gUnknown_840C3BC _080F37BC: - bl free_temp_tile_data_buffers_if_possible + bl FreeTempTileDataBuffersIfPossible lsls r0, 24 cmp r0, 0 beq _080F3854 diff --git a/asm/hof_pc.s b/asm/hof_pc.s deleted file mode 100644 index 80f7fc3f9..000000000 --- a/asm/hof_pc.s +++ /dev/null @@ -1,118 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80CA53C -sub_80CA53C: @ 80CA53C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080CA56C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080CA564 - bl FreeAllWindowBuffers - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - adds r0, r4, 0 - bl DestroyTask - ldr r0, _080CA570 @ =sub_80F2978 - bl SetMainCallback2 -_080CA564: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080CA56C: .4byte gPaletteFade -_080CA570: .4byte sub_80F2978 - thumb_func_end sub_80CA53C - - thumb_func_start sub_80CA574 -sub_80CA574: @ 80CA574 - push {lr} - sub sp, 0x4 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - bl ScriptContext2_Enable - ldr r0, _080CA59C @ =sub_80CA53C - movs r1, 0 - bl CreateTask - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080CA59C: .4byte sub_80CA53C - thumb_func_end sub_80CA574 - - thumb_func_start sub_80CA5A0 -sub_80CA5A0: @ 80CA5A0 - push {lr} - ldr r0, _080CA5B4 @ =CB2_ReturnToField - bl SetMainCallback2 - ldr r1, _080CA5B8 @ =gFieldCallback - ldr r0, _080CA5BC @ =sub_80CA5C0 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080CA5B4: .4byte CB2_ReturnToField -_080CA5B8: .4byte gFieldCallback -_080CA5BC: .4byte sub_80CA5C0 - thumb_func_end sub_80CA5A0 - - thumb_func_start sub_80CA5C0 -sub_80CA5C0: @ 80CA5C0 - push {lr} - sub sp, 0x4 - bl ScriptContext2_Enable - bl sub_8055DC4 - bl sp109_CreatePCMenu - bl sub_809D254 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080CA5F4 @ =sub_80CA5F8 - movs r1, 0xA - bl CreateTask - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080CA5F4: .4byte sub_80CA5F8 - thumb_func_end sub_80CA5C0 - - thumb_func_start sub_80CA5F8 -sub_80CA5F8: @ 80CA5F8 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080CA614 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080CA610 - adds r0, r2, 0 - bl DestroyTask -_080CA610: - pop {r0} - bx r0 - .align 2, 0 -_080CA614: .4byte gPaletteFade - thumb_func_end sub_80CA5F8 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/intro.s b/asm/intro.s index 909fee72e..24b7bb9b6 100644 --- a/asm/intro.s +++ b/asm/intro.s @@ -305,7 +305,7 @@ c2_copyright_1: @ 80EC820 lsls r0, 24 cmp r0, 0 bne _080EC858 - bl sub_8054A28 + bl ResetMenuAndMonGlobals bl Save_ResetSaveCounters movs r0, 0 bl Save_LoadGameData @@ -381,7 +381,7 @@ _080EC8A0: bl ResetTasks bl ResetSpriteData bl ResetPaletteFade - bl reset_temp_tile_data_buffers + bl ResetTempTileDataBuffers bl sub_80ECA00 add r1, sp, 0x4 movs r0, 0 @@ -445,13 +445,13 @@ _080EC944: movs r0, 0x3 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r1, _080EC980 @ =gUnknown_8402668 str r4, [sp] movs r0, 0x3 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r0, _080EC984 @ =gUnknown_840270C movs r1, 0xD0 movs r2, 0x20 @@ -463,7 +463,7 @@ _080EC97C: .4byte gUnknown_8402650 _080EC980: .4byte gUnknown_8402668 _080EC984: .4byte gUnknown_840270C _080EC988: - bl free_temp_tile_data_buffers_if_possible + bl FreeTempTileDataBuffersIfPossible lsls r0, 24 cmp r0, 0 bne _080EC9C6 @@ -1144,13 +1144,13 @@ _080ECED8: movs r0, 0x1 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r1, _080ECF5C @ =gUnknown_8404F7C movs r0, 0x1 str r0, [sp] movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram movs r0, 0x1 bl ShowBg movs r0, 0 @@ -1172,7 +1172,7 @@ _080ECF58: .4byte gUnknown_84048EC _080ECF5C: .4byte gUnknown_8404F7C _080ECF60: .4byte sub_80EC9EC _080ECF64: - bl free_temp_tile_data_buffers_if_possible + bl FreeTempTileDataBuffersIfPossible lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -1184,15 +1184,15 @@ _080ECF72: movs r0, 0 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r1, _080ECFA0 @ =gUnknown_8403FE8 movs r0, 0x1 str r0, [sp] movs r0, 0 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - bl sub_80F6C14 + bl DecompressAndCopyTileDataToVram + bl ResetBgPositions movs r0, 0x1 bl ShowBg b _080ECFF0 @@ -1200,7 +1200,7 @@ _080ECF72: _080ECF9C: .4byte gUnknown_8402D54 _080ECFA0: .4byte gUnknown_8403FE8 _080ECFA4: - bl free_temp_tile_data_buffers_if_possible + bl FreeTempTileDataBuffersIfPossible lsls r0, 24 cmp r0, 0 bne _080ED094 @@ -1476,14 +1476,14 @@ _080ED1C4: movs r0, 0x3 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r1, _080ED210 @ =gUnknown_8405890 movs r0, 0x1 str r0, [sp] movs r0, 0x3 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram movs r0, 0x3 bl ShowBg b _080ED3CA @@ -1493,7 +1493,7 @@ _080ED208: .4byte gUnknown_840BB90 _080ED20C: .4byte gUnknown_8405414 _080ED210: .4byte gUnknown_8405890 _080ED214: - bl free_temp_tile_data_buffers_if_possible + bl FreeTempTileDataBuffersIfPossible lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 @@ -1527,39 +1527,39 @@ _080ED222: movs r0, 0 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r1, _080ED310 @ =gUnknown_8405CDC movs r4, 0x1 str r4, [sp] movs r0, 0 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r1, _080ED314 @ =gUnknown_8406654 str r6, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r1, _080ED318 @ =gUnknown_84071D0 str r4, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r1, _080ED31C @ =gUnknown_8405DC4 str r6, [sp] movs r0, 0x2 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r1, _080ED320 @ =gUnknown_840644C str r4, [sp] movs r0, 0x2 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - bl sub_80F6C14 + bl DecompressAndCopyTileDataToVram + bl ResetBgPositions movs r0, 0 bl ShowBg movs r0, 0x1 @@ -1602,7 +1602,7 @@ _080ED320: .4byte gUnknown_840644C _080ED324: .4byte sub_80ED40C _080ED328: .4byte sub_80EC9EC _080ED32C: - bl free_temp_tile_data_buffers_if_possible + bl FreeTempTileDataBuffersIfPossible lsls r0, 24 cmp r0, 0 bne _080ED3F6 @@ -1847,13 +1847,13 @@ _080ED4E4: movs r0, 0x1 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r1, _080ED598 @ =gUnknown_8407A50 movs r0, 0x1 str r0, [sp] movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram movs r0, 0x1 bl ShowBg movs r0, 0 @@ -1862,7 +1862,7 @@ _080ED4E4: bl HideBg movs r0, 0x3 bl HideBg - bl sub_80F6C14 + bl ResetBgPositions ldrb r0, [r5, 0x4] adds r0, 0x1 strb r0, [r5, 0x4] @@ -1895,7 +1895,7 @@ _080ED590: .4byte gUnknown_840BBA0 _080ED594: .4byte gUnknown_8407470 _080ED598: .4byte gUnknown_8407A50 _080ED59C: - bl free_temp_tile_data_buffers_if_possible + bl FreeTempTileDataBuffersIfPossible lsls r0, 24 lsrs r0, 24 cmp r0, 0 @@ -1905,13 +1905,13 @@ _080ED59C: movs r0, 0 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r1, _080ED5F0 @ =gUnknown_8408D98 str r4, [sp] movs r0, 0 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r1, _080ED5F4 @ =gUnknown_203AB00 movs r0, 0x4 strh r0, [r1] @@ -1935,7 +1935,7 @@ _080ED5F0: .4byte gUnknown_8408D98 _080ED5F4: .4byte gUnknown_203AB00 _080ED5F8: .4byte gUnknown_203AB02 _080ED5FC: - bl free_temp_tile_data_buffers_if_possible + bl FreeTempTileDataBuffersIfPossible lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 @@ -2730,7 +2730,7 @@ _080EDBF8: strb r0, [r4, 0x4] b _080EDC34 _080EDC0C: - bl free_temp_tile_data_buffers_if_possible + bl FreeTempTileDataBuffersIfPossible lsls r0, 24 cmp r0, 0 bne _080EDC34 @@ -2759,7 +2759,7 @@ sub_80EDC40: @ 80EDC40 ldr r4, _080EDCE4 @ =gUnknown_840BBC0 _080EDC46: adds r0, r4, 0 - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet adds r4, 0x8 adds r5, 0x1 cmp r5, 0x4 @@ -4823,7 +4823,7 @@ sub_80EEBE4: @ 80EEBE4 ldr r4, _080EEC04 @ =gUnknown_840BEDC _080EEBEA: adds r0, r4, 0 - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet adds r4, 0x8 adds r5, 0x1 cmp r5, 0x6 diff --git a/asm/item_menu.s b/asm/item_menu.s index 4e4c2ebfd..001198d95 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -170,7 +170,7 @@ sub_8107EE0: @ 8107EE0 bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram + bl DoScheduledBgTilemapCopiesToVram bl UpdatePaletteFade pop {r0} bx r0 @@ -254,7 +254,7 @@ _08107F60: .4byte _081080DE _08107FB0: bl SetVBlankHBlankCallbacksToNull - bl clear_scheduled_bg_copies_to_vram + bl ClearScheduledBgCopiesToVram b _08108104 _08107FBA: bl ScanlineEffect_Stop @@ -542,7 +542,7 @@ sub_81081D0: @ 81081D0 movs r0, 0x1 bl SetBgTilemapBuffer movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram movs r1, 0xC1 lsls r1, 6 movs r0, 0 @@ -595,19 +595,19 @@ _08108264: .4byte _08108340 .4byte _0810834C _0810827C: - bl reset_temp_tile_data_buffers + bl ResetTempTileDataBuffers ldr r1, _08108294 @ =gUnknown_8E830CC movs r0, 0 str r0, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram b _08108352 .align 2, 0 _08108294: .4byte gUnknown_8E830CC _08108298: - bl free_temp_tile_data_buffers_if_possible + bl FreeTempTileDataBuffersIfPossible lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -676,20 +676,20 @@ _0810832C: .4byte gSaveBlock2Ptr _08108330: .4byte gUnknown_83D41E4 _08108334: ldr r0, _0810833C @ =gUnknown_83D41EC - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet b _08108352 .align 2, 0 _0810833C: .4byte gUnknown_83D41EC _08108340: ldr r0, _08108348 @ =gUnknown_83D41F4 - bl LoadCompressedObjectPalette + bl LoadCompressedSpritePalette b _08108352 .align 2, 0 _08108348: .4byte gUnknown_83D41F4 _0810834C: ldr r0, _08108360 @ =gBagSwapSpriteSheet _0810834E: - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet _08108352: ldr r0, _08108364 @ =gUnknown_203AD10 ldr r1, [r0] @@ -702,7 +702,7 @@ _08108360: .4byte gBagSwapSpriteSheet _08108364: .4byte gUnknown_203AD10 _08108368: ldr r0, _08108378 @ =gBagSwapSpritePalette - bl LoadCompressedObjectPalette + bl LoadCompressedSpritePalette ldr r1, [r4] movs r0, 0 strb r0, [r1, 0x10] @@ -2192,7 +2192,7 @@ DisplayItemMessageInBag: @ 8108E70 movs r3, 0xD bl DisplayMessageAndContinueTask movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram add sp, 0x10 pop {r3,r4} mov r8, r3 @@ -2516,7 +2516,7 @@ sub_8109140: @ 8109140 movs r3, 0x1E bl SetBgRectPal movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram add sp, 0x8 pop {r0} bx r0 @@ -2619,7 +2619,7 @@ sub_81091D0: @ 81091D0 adds r2, r3 bl DestroyListMenu movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r0, _08109290 @ =gUnknown_203AD10 ldr r0, [r0] ldrb r1, [r0, 0x5] @@ -2640,7 +2640,7 @@ _08109242: movs r3, 0x1 bl FillBgTilemapBufferRect_Palette0 movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r0, _0810928C @ =gUnknown_203ACFC ldrb r0, [r0, 0x6] adds r0, r6 @@ -2792,7 +2792,7 @@ _08109358: movs r0, 0x2 bl PutWindowTilemap movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram bl sub_8108888 bl sub_81088D8 adds r0, r6, 0 @@ -3374,7 +3374,7 @@ sub_8109854: @ 8109854 movs r2, 0xB bl CopyToBgTilemapBufferRect movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram add sp, 0x8 pop {r0} bx r0 @@ -3852,7 +3852,7 @@ sub_8109C50: @ 8109C50 movs r0, 0x1 bl PutWindowTilemap movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram bl CalculatePlayerPartyCount lsls r0, 24 cmp r0, 0 @@ -4008,7 +4008,7 @@ sub_8109DB0: @ 8109DB0 movs r0, 0x1 bl PutWindowTilemap movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldrb r0, [r4] movs r1, 0x1 bl bag_menu_print_cursor_ @@ -4066,7 +4066,7 @@ _08109E20: movs r0, 0 bl sub_810BA3C movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram bl sub_8108978 adds r0, r5, 0 bl sub_8109D38 @@ -4089,7 +4089,7 @@ _08109E64: movs r0, 0x1 bl PutWindowTilemap movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldrb r0, [r4] movs r1, 0x1 bl bag_menu_print_cursor_ @@ -4234,7 +4234,7 @@ _08109F6E: movs r0, 0x1 bl PutWindowTilemap movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldrb r0, [r7] movs r1, 0x1 bl bag_menu_print_cursor_ @@ -4538,7 +4538,7 @@ sub_810A1F8: @ 810A1F8 lsrs r0, 24 strh r0, [r5] movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldrb r0, [r5] movs r1, 0x1 bl bag_menu_print_cursor_ @@ -4582,7 +4582,7 @@ sub_810A288: @ 810A288 movs r0, 0 bl PutWindowTilemap movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldrb r0, [r4] movs r1, 0x1 bl bag_menu_print_cursor_ @@ -4611,7 +4611,7 @@ sub_810A2DC: @ 810A2DC movs r0, 0x1 bl PutWindowTilemap movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r1, _0810A320 @ =gTasks lsls r0, r4, 2 adds r0, r4 @@ -5160,7 +5160,7 @@ sub_810A720: @ 810A720 movs r0, 0x1 bl PutWindowTilemap movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldrb r0, [r4] movs r1, 0x1 bl bag_menu_print_cursor_ @@ -5339,7 +5339,7 @@ _0810A8BC: movs r0, 0 bl PutWindowTilemap movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram bl sub_8108978 adds r0, r4, 0 bl sub_810A690 @@ -5366,7 +5366,7 @@ _0810A8F0: movs r0, 0x1 bl PutWindowTilemap movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram bl sub_8108978 ldrb r0, [r5] movs r1, 0x1 @@ -5393,7 +5393,7 @@ sub_810A940: @ 810A940 movs r0, 0 bl PutWindowTilemap movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r0, _0810A9B8 @ =gSpecialVar_ItemId ldrh r0, [r0] ldr r1, _0810A9BC @ =gStringVar1 @@ -5690,7 +5690,7 @@ _0810ABBC: movs r0, 0 bl sub_810BA3C movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram bl sub_8108978 adds r0, r5, 0 bl sub_810AC40 @@ -5711,7 +5711,7 @@ _0810AC00: movs r0, 0x1 bl PutWindowTilemap movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldrb r0, [r4] movs r1, 0x1 bl bag_menu_print_cursor_ diff --git a/asm/itemfinder.s b/asm/itemfinder.s index e510252ab..8a2dec9de 100644 --- a/asm/itemfinder.s +++ b/asm/itemfinder.s @@ -1091,7 +1091,7 @@ _0813F470: .4byte _0813F50C .4byte _0813F52C _0813F484: - bl player_get_direction_lower_nybble + bl GetPlayerFacingDirection lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 diff --git a/asm/learn_move.s b/asm/learn_move.s index 4a37c7eae..f00135fda 100644 --- a/asm/learn_move.s +++ b/asm/learn_move.s @@ -76,7 +76,7 @@ sub_80E469C: @ 80E469C movs r0, 0 movs r2, 0x2 bl InitBgsFromTemplates - bl reset_temp_tile_data_buffers + bl ResetTempTileDataBuffers ldr r0, _080E4778 @ =gUnknown_83FFA44 bl InitWindows lsls r0, 16 diff --git a/asm/link.s b/asm/link.s index 28dc18656..7275ebbd2 100644 --- a/asm/link.s +++ b/asm/link.s @@ -3288,7 +3288,7 @@ _0800AD30: cmp r0, 0 beq _0800ADD8 bl DeactivateAllTextPrinters - bl reset_temp_tile_data_buffers + bl ResetTempTileDataBuffers movs r0, 0x52 movs r1, 0 bl SetGpuReg diff --git a/asm/link_rfu.s b/asm/link_rfu.s index a2b6a20fc..c6918f6ad 100644 --- a/asm/link_rfu.s +++ b/asm/link_rfu.s @@ -9465,7 +9465,7 @@ sub_8101A90: @ 8101A90 ldr r4, _08101AC0 @ =gUnknown_843F938 _08101AA2: adds r0, r4, 0 - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet adds r4, 0x8 adds r5, 0x1 cmp r5, 0x3 diff --git a/asm/link_rfu_2.s b/asm/link_rfu_2.s index feb7c886f..2bfeaca50 100644 --- a/asm/link_rfu_2.s +++ b/asm/link_rfu_2.s @@ -9525,7 +9525,7 @@ sub_80FCEA8: @ 80FCEA8 cmp r0, r1 bne _080FCEC0 adds r0, r4, 0 - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet _080FCEC0: ldr r0, _080FCEDC @ =gUnknown_843F27C bl LoadSpritePalette diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s index 50121e847..111161c06 100644 --- a/asm/link_rfu_3.s +++ b/asm/link_rfu_3.s @@ -8491,7 +8491,7 @@ sub_811A0B4: @ 811A0B4 bl StringExpandPlaceholders movs r0, 0 movs r1, 0x1 - bl sub_80F6E54 + bl AddTextPrinterWithCustomSpeedForMessage movs r0, 0 pop {r4} pop {r1} @@ -8503,7 +8503,7 @@ _0811A0DC: .4byte gStringVar4 thumb_func_start sub_811A0E0 sub_811A0E0: @ 811A0E0 push {lr} - bl sub_80F6CBC + bl RunTextPrinters_CheckPrinter0Active lsls r0, 16 cmp r0, 0 beq _0811A0F0 @@ -8536,7 +8536,7 @@ _0811A10A: adds r1, r5, 0 bl StringExpandPlaceholders movs r0, 0x1 - bl sub_80F6E08 + bl AddTextPrinterForMessage ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] @@ -8544,7 +8544,7 @@ _0811A10A: .align 2, 0 _0811A12C: .4byte gStringVar4 _0811A130: - bl sub_80F6CBC + bl RunTextPrinters_CheckPrinter0Active lsls r0, 16 lsrs r0, 16 cmp r0, 0 @@ -8578,7 +8578,7 @@ _0811A15E: negs r0, r0 b _0811A1A4 _0811A168: - bl sub_80F7858 + bl DisplayYesNoMenuDefaultYes ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] @@ -11381,13 +11381,13 @@ sub_811B66C: @ 811B66C ldr r1, _0811B6C0 @ =gMapObjects adds r4, r0, r1 adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + bl FieldObjectIsMovementOverridden lsls r0, 24 cmp r0, 0 bne _0811B6D0 ldrb r1, [r5] adds r0, r4, 0 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement lsls r0, 24 cmp r0, 0 bne _0811B6C4 @@ -11440,7 +11440,7 @@ sub_811B6E8: @ 811B6E8 ldr r1, _0811B72C @ =gMapObjects adds r4, r0, r1 adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 bne _0811B730 @@ -12496,7 +12496,7 @@ sub_811BF00: @ 811BF00 b _0811BFEE _0811BF1C: ldr r4, _0811BF44 @ =gUnknown_8457116 - bl player_get_direction_lower_nybble + bl GetPlayerFacingDirection lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -12935,7 +12935,7 @@ _0811C2C0: movs r0, 0 movs r2, 0x1 bl InitBgsFromTemplates - bl reset_temp_tile_data_buffers + bl ResetTempTileDataBuffers ldr r0, _0811C358 @ =gUnknown_8457198 bl InitWindows lsls r0, 16 @@ -12967,7 +12967,7 @@ _0811C300: movs r1, 0x1 movs r2, 0xD0 bl TextWindow_SetStdFrame0_WithPal - bl sub_80F77B8 + bl Menu_LoadStdPal ldr r0, _0811C35C @ =sub_811C1B4 bl SetVBlankCallback ldr r1, _0811C360 @ =gMain diff --git a/asm/mail.s b/asm/mail.s index 77f8864ed..23aba36f6 100644 --- a/asm/mail.s +++ b/asm/mail.s @@ -240,7 +240,7 @@ _080BEDE0: b _080BF0F4 _080BEDE6: bl FreeAllSpritePalettes - bl reset_temp_tile_data_buffers + bl ResetTempTileDataBuffers movs r0, 0x10 movs r1, 0 bl SetGpuReg @@ -318,13 +318,13 @@ _080BEE88: movs r0, 0x1 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram b _080BF0F4 .align 2, 0 _080BEEB0: .4byte gUnknown_83EE9C8 _080BEEB4: .4byte gUnknown_20399C4 _080BEEB8: - bl free_temp_tile_data_buffers_if_possible + bl FreeTempTileDataBuffersIfPossible lsls r0, 24 cmp r0, 0 bne _080BEEC4 diff --git a/asm/mail_data.s b/asm/mail_data.s deleted file mode 100644 index e19c99e59..000000000 --- a/asm/mail_data.s +++ /dev/null @@ -1,626 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start ClearMailData -ClearMailData: @ 8097C84 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _08097CAC @ =gSaveBlock1Ptr -_08097C8A: - lsls r1, r4, 3 - adds r1, r4 - lsls r1, 2 - ldr r0, _08097CB0 @ =0x00002cd0 - adds r1, r0 - ldr r0, [r5] - adds r0, r1 - bl ClearMailStruct - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _08097C8A - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08097CAC: .4byte gSaveBlock1Ptr -_08097CB0: .4byte 0x00002cd0 - thumb_func_end ClearMailData - - thumb_func_start ClearMailStruct -ClearMailStruct: @ 8097CB4 - push {r4-r6,lr} - adds r3, r0, 0 - ldr r0, _08097D04 @ =0x0000ffff - adds r4, r0, 0 - adds r1, r3, 0 - movs r2, 0x8 -_08097CC0: - ldrh r0, [r1] - orrs r0, r4 - strh r0, [r1] - adds r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _08097CC0 - movs r2, 0 - adds r6, r3, 0 - adds r6, 0x1A - adds r4, r3, 0 - adds r4, 0x12 - movs r5, 0xFF -_08097CDA: - adds r1, r4, r2 - ldrb r0, [r1] - orrs r0, r5 - strb r0, [r1] - adds r2, 0x1 - cmp r2, 0x7 - ble _08097CDA - adds r1, r6, 0 - movs r2, 0 - adds r0, r1, 0x3 -_08097CEE: - strb r2, [r0] - subs r0, 0x1 - cmp r0, r1 - bge _08097CEE - movs r1, 0 - movs r0, 0x1 - strh r0, [r3, 0x1E] - strh r1, [r3, 0x20] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08097D04: .4byte 0x0000ffff - thumb_func_end ClearMailStruct - - thumb_func_start MonHasMail -MonHasMail: @ 8097D08 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl ItemIsMail - lsls r0, 24 - cmp r0, 0 - beq _08097D30 - adds r0, r4, 0 - movs r1, 0x40 - bl GetMonData - cmp r0, 0xFF - beq _08097D30 - movs r0, 0x1 - b _08097D32 -_08097D30: - movs r0, 0 -_08097D32: - pop {r4} - pop {r1} - bx r1 - thumb_func_end MonHasMail - - thumb_func_start sub_8097D38 -sub_8097D38: @ 8097D38 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - mov r8, r0 - lsls r1, 16 - lsrs r0, r1, 16 - str r0, [sp, 0x8] - mov r0, sp - movs r2, 0 - ldrb r3, [r0, 0x8] - strb r3, [r0] - lsrs r1, 24 - strb r1, [r0, 0x1] - add r4, sp, 0x4 - strb r2, [r4] - mov r12, r4 - mov r9, r4 - adds r5, r4, 0 -_08097D62: - ldr r2, _08097EC0 @ =gSaveBlock1Ptr - ldr r0, [r2] - ldrb r3, [r5] - lsls r1, r3, 3 - adds r1, r3 - lsls r1, 2 - adds r0, r1 - ldr r1, _08097EC4 @ =0x00002cf0 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _08097D7C - b _08097EE0 -_08097D7C: - movs r4, 0 - ldr r3, _08097EC8 @ =gSaveBlock2Ptr - mov r10, r3 - adds r7, r2, 0 - mov r5, r12 - ldr r0, _08097ECC @ =0x0000ffff - adds r6, r0, 0 -_08097D8A: - ldr r2, [r7] - lsls r3, r4, 1 - ldrb r1, [r5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r3, r0 - ldr r1, _08097ED0 @ =0x00002cd0 - adds r2, r1 - adds r2, r3 - ldrh r0, [r2] - orrs r0, r6 - strh r0, [r2] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x8 - bls _08097D8A - movs r4, 0 - mov r2, r10 - ldr r0, [r2] - ldrb r0, [r0] - cmp r0, 0xFF - beq _08097DEE - ldr r3, _08097EC8 @ =gSaveBlock2Ptr -_08097DBC: - ldr r0, _08097EC0 @ =gSaveBlock1Ptr - ldr r2, [r0] - mov r0, r12 - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4, r0 - ldr r1, _08097ED4 @ =0x00002ce2 - adds r2, r1 - adds r2, r0 - ldr r0, [r3] - adds r0, r4 - ldrb r0, [r0] - strb r0, [r2] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x6 - bhi _08097DEE - ldr r0, [r3] - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08097DBC -_08097DEE: - cmp r4, 0x5 - bhi _08097E16 - ldr r7, _08097EC0 @ =gSaveBlock1Ptr - mov r3, r12 - ldr r6, _08097ED4 @ =0x00002ce2 - movs r5, 0 -_08097DFA: - ldr r2, [r7] - ldrb r1, [r3] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4, r0 - adds r2, r6 - adds r2, r0 - strb r5, [r2] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _08097DFA -_08097E16: - ldr r3, _08097EC0 @ =gSaveBlock1Ptr - ldr r2, [r3] - mov r0, r12 - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4, r0 - ldr r1, _08097ED4 @ =0x00002ce2 - adds r2, r1 - adds r2, r0 - movs r0, 0xFF - strb r0, [r2] - movs r4, 0 - adds r5, r3, 0 - mov r3, r12 -_08097E36: - ldr r2, [r5] - ldrb r1, [r3] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4, r0 - ldr r1, _08097ED8 @ =0x00002cea - adds r2, r1 - adds r2, r0 - mov r1, r10 - ldr r0, [r1] - adds r0, 0xA - adds r0, r4 - ldrb r0, [r0] - strb r0, [r2] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _08097E36 - mov r0, r8 - movs r1, 0xB - bl GetBoxMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, r8 - movs r1, 0 - bl GetBoxMonData - adds r1, r0, 0 - adds r0, r4, 0 - bl SpeciesToMailSpecies - ldr r1, _08097EC0 @ =gSaveBlock1Ptr - ldr r3, [r1] - mov r4, r9 - ldrb r2, [r4] - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - adds r1, r3, r1 - ldr r2, _08097EDC @ =0x00002cee - adds r1, r2 - strh r0, [r1] - ldrb r1, [r4] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r3, r0 - ldr r4, _08097EC4 @ =0x00002cf0 - adds r3, r4 - mov r0, sp - ldrh r0, [r0, 0x8] - strh r0, [r3] - mov r0, r8 - movs r1, 0x40 - mov r2, r9 - bl SetMonData - mov r0, r8 - movs r1, 0xC - mov r2, sp - bl SetMonData - mov r1, r9 - ldrb r0, [r1] - b _08097EEE - .align 2, 0 -_08097EC0: .4byte gSaveBlock1Ptr -_08097EC4: .4byte 0x00002cf0 -_08097EC8: .4byte gSaveBlock2Ptr -_08097ECC: .4byte 0x0000ffff -_08097ED0: .4byte 0x00002cd0 -_08097ED4: .4byte 0x00002ce2 -_08097ED8: .4byte 0x00002cea -_08097EDC: .4byte 0x00002cee -_08097EE0: - adds r0, r3, 0x1 - strb r0, [r4] - ldrb r0, [r5] - cmp r0, 0x5 - bhi _08097EEC - b _08097D62 -_08097EEC: - movs r0, 0xFF -_08097EEE: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8097D38 - - thumb_func_start SpeciesToMailSpecies -SpeciesToMailSpecies: @ 8097F00 - push {lr} - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xC9 - bne _08097F18 - adds r0, r1, 0 - bl mon_icon_personality_to_unown_id - lsls r0, 16 - ldr r1, _08097F1C @ =0x75300000 - adds r0, r1 - lsrs r0, 16 -_08097F18: - pop {r1} - bx r1 - .align 2, 0 -_08097F1C: .4byte 0x75300000 - thumb_func_end SpeciesToMailSpecies - - thumb_func_start MailSpeciesToSpecies -MailSpeciesToSpecies: @ 8097F20 - push {lr} - lsls r0, 16 - lsrs r3, r0, 16 - ldr r0, _08097F38 @ =0xffff8ad0 - adds r2, r3, r0 - lsls r0, r2, 16 - lsrs r0, 16 - cmp r0, 0x1B - bhi _08097F3C - movs r0, 0xC9 - strh r2, [r1] - b _08097F3E - .align 2, 0 -_08097F38: .4byte 0xffff8ad0 -_08097F3C: - adds r0, r3, 0 -_08097F3E: - pop {r1} - bx r1 - thumb_func_end MailSpeciesToSpecies - - thumb_func_start GiveMailToMon2 -GiveMailToMon2: @ 8097F44 - push {r4-r7,lr} - sub sp, 0x8 - adds r6, r0, 0 - adds r7, r1, 0 - ldrh r5, [r7, 0x20] - adds r1, r5, 0 - bl sub_8097D38 - add r4, sp, 0x4 - strb r0, [r4] - ldrb r2, [r4] - cmp r2, 0xFF - beq _08097FA8 - ldr r0, _08097FA0 @ =gSaveBlock1Ptr - ldr r1, [r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r0, _08097FA4 @ =0x00002cd0 - adds r1, r0 - adds r0, r7, 0 - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - adds r0, r6, 0 - movs r1, 0x40 - adds r2, r4, 0 - bl SetMonData - mov r0, sp - strb r5, [r0] - mov r1, sp - lsrs r0, r5, 8 - strb r0, [r1, 0x1] - adds r0, r6, 0 - movs r1, 0xC - mov r2, sp - bl SetMonData - ldrb r0, [r4] - b _08097FAA - .align 2, 0 -_08097FA0: .4byte gSaveBlock1Ptr -_08097FA4: .4byte 0x00002cd0 -_08097FA8: - movs r0, 0xFF -_08097FAA: - add sp, 0x8 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end GiveMailToMon2 - - thumb_func_start sub_8097FB4 -sub_8097FB4: @ 8097FB4 - movs r0, 0 - bx lr - thumb_func_end sub_8097FB4 - - thumb_func_start TakeMailFromMon -TakeMailFromMon: @ 8097FB8 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - bl MonHasMail - lsls r0, 24 - cmp r0, 0 - beq _08098008 - adds r0, r4, 0 - movs r1, 0x40 - bl GetMonData - add r2, sp, 0x4 - strb r0, [r2] - ldr r0, _08098010 @ =gSaveBlock1Ptr - ldr r3, [r0] - ldrb r1, [r2] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r3, r0 - ldr r0, _08098014 @ =0x00002cf0 - adds r3, r0 - movs r1, 0 - movs r0, 0 - strh r0, [r3] - movs r0, 0xFF - strb r0, [r2] - mov r0, sp - strb r1, [r0] - strb r1, [r0, 0x1] - adds r0, r4, 0 - movs r1, 0x40 - bl SetMonData - adds r0, r4, 0 - movs r1, 0xC - mov r2, sp - bl SetMonData -_08098008: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08098010: .4byte gSaveBlock1Ptr -_08098014: .4byte 0x00002cf0 - thumb_func_end TakeMailFromMon - - thumb_func_start sub_8098018 -sub_8098018: @ 8098018 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08098034 @ =gSaveBlock1Ptr - ldr r2, [r1] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r2, r1 - ldr r0, _08098038 @ =0x00002cf0 - adds r2, r0 - movs r0, 0 - strh r0, [r2] - bx lr - .align 2, 0 -_08098034: .4byte gSaveBlock1Ptr -_08098038: .4byte 0x00002cf0 - thumb_func_end sub_8098018 - - thumb_func_start sub_809803C -sub_809803C: @ 809803C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xC - adds r5, r0, 0 - mov r0, sp - movs r1, 0 - strb r1, [r0] - strb r1, [r0, 0x1] - add r1, sp, 0x4 - movs r0, 0xFF - strb r0, [r1] - movs r7, 0x6 - mov r9, r1 - ldr r0, _080980D0 @ =gSaveBlock1Ptr - mov r8, r0 - ldr r3, _080980D4 @ =0x00002cd0 -_08098060: - mov r1, r8 - ldr r0, [r1] - lsls r1, r7, 3 - adds r1, r7 - lsls r1, 2 - adds r4, r0, r1 - ldr r2, _080980D8 @ =0x00002cf0 - adds r0, r4, r2 - ldrh r6, [r0] - cmp r6, 0 - bne _080980DC - adds r4, r3 - adds r0, r5, 0 - movs r1, 0x40 - str r3, [sp, 0x8] - bl GetMonData - mov r1, r8 - ldr r2, [r1] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldr r3, [sp, 0x8] - adds r1, r3 - ldm r1!, {r0,r2,r3} - stm r4!, {r0,r2,r3} - ldm r1!, {r0,r2,r3} - stm r4!, {r0,r2,r3} - ldm r1!, {r0,r2,r3} - stm r4!, {r0,r2,r3} - adds r0, r5, 0 - movs r1, 0x40 - bl GetMonData - mov r1, r8 - ldr r2, [r1] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r2, r1 - ldr r3, _080980D8 @ =0x00002cf0 - adds r2, r3 - strh r6, [r2] - adds r0, r5, 0 - movs r1, 0x40 - mov r2, r9 - bl SetMonData - adds r0, r5, 0 - movs r1, 0xC - mov r2, sp - bl SetMonData - adds r0, r7, 0 - b _080980E8 - .align 2, 0 -_080980D0: .4byte gSaveBlock1Ptr -_080980D4: .4byte 0x00002cd0 -_080980D8: .4byte 0x00002cf0 -_080980DC: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0xF - bls _08098060 - movs r0, 0xFF -_080980E8: - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809803C - - thumb_func_start ItemIsMail -ItemIsMail: @ 80980F8 - push {lr} - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x84 - bgt _0809810A - cmp r0, 0x79 - blt _0809810A - movs r0, 0x1 - b _0809810C -_0809810A: - movs r0, 0 -_0809810C: - pop {r1} - bx r1 - thumb_func_end ItemIsMail - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/mailbox_pc.s b/asm/mailbox_pc.s index aecca0735..e41fb23c1 100644 --- a/asm/mailbox_pc.s +++ b/asm/mailbox_pc.s @@ -60,7 +60,7 @@ sub_810EBAC: @ 810EBAC strb r0, [r4] ldrb r0, [r4] movs r1, 0 - bl sub_80F7750 + bl SetStdWindowBorderStyle _0810EBD0: ldrb r0, [r4] pop {r4} diff --git a/asm/map_preview_screen.s b/asm/map_preview_screen.s index be9f5e3c5..900b36d9c 100644 --- a/asm/map_preview_screen.s +++ b/asm/map_preview_screen.s @@ -123,7 +123,7 @@ sub_80F819C: @ 80F819C lsrs r5, r0, 24 cmp r5, 0x1C beq _080F8224 - bl reset_temp_tile_data_buffers + bl ResetTempTileDataBuffers ldr r4, _080F8200 @ =gUnknown_843E9E8 lsls r5, 4 adds r0, r4, 0 @@ -141,7 +141,7 @@ sub_80F819C: @ 80F819C movs r0, 0 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram movs r0, 0 bl GetBgTilemapBuffer cmp r0, 0 @@ -206,7 +206,7 @@ _080F8254: .4byte gUnknown_203ABED thumb_func_start sub_80F8258 sub_80F8258: @ 80F8258 push {lr} - bl free_temp_tile_data_buffers_if_possible + bl FreeTempTileDataBuffersIfPossible lsls r0, 24 lsrs r0, 24 pop {r1} @@ -440,7 +440,7 @@ _080F8448: lsls r0, 24 cmp r0, 0 beq _080F853C - bl sub_8055DC4 + bl Overworld_PlaySpecialMapMusic b _080F84EA _080F8458: ldrh r0, [r4, 0x2] diff --git a/asm/menu_indicators.s b/asm/menu_indicators.s index 28e783731..d7b78b1b2 100644 --- a/asm/menu_indicators.s +++ b/asm/menu_indicators.s @@ -180,7 +180,7 @@ AddScrollIndicatorArrowPair: @ 8133A20 orrs r0, r1 str r0, [sp, 0x8] add r0, sp, 0x4 - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet ldrh r2, [r6, 0xC] cmp r2, r4 bne _08133A7C @@ -727,7 +727,7 @@ ListMenuAddRedOutlineCursorObject: @ 8133E38 ands r1, r3 orrs r1, r2 str r1, [r0, 0x4] - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet ldrh r2, [r6, 0x8] ldr r7, _08133E8C @ =0x0000ffff cmp r2, r7 @@ -1005,7 +1005,7 @@ ListMenuAddRedArrowCursorObject: @ 8134070 ands r1, r4 orrs r1, r2 str r1, [r0, 0x4] - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet ldrh r2, [r5, 0x8] cmp r2, r4 bne _081340C4 diff --git a/asm/multiboot.s b/asm/multiboot.s deleted file mode 100644 index 615995301..000000000 --- a/asm/multiboot.s +++ /dev/null @@ -1,924 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start MultiBootInit -MultiBootInit: @ 800BC20 - adds r2, r0, 0 - movs r1, 0 - strb r1, [r2, 0x1E] - strb r1, [r2, 0x18] - strb r1, [r2, 0x1D] - adds r3, r2, 0 - adds r3, 0x4A - movs r0, 0xF - strb r0, [r3] - adds r0, r2, 0 - adds r0, 0x48 - strb r1, [r0] - strh r1, [r2, 0x16] - ldr r0, _0800BC4C @ =0x04000134 - strh r1, [r0] - ldr r2, _0800BC50 @ =0x04000128 - ldr r3, _0800BC54 @ =0x00002003 - adds r0, r3, 0 - strh r0, [r2] - ldr r0, _0800BC58 @ =0x0400012a - strh r1, [r0] - bx lr - .align 2, 0 -_0800BC4C: .4byte 0x04000134 -_0800BC50: .4byte 0x04000128 -_0800BC54: .4byte 0x00002003 -_0800BC58: .4byte 0x0400012a - thumb_func_end MultiBootInit - - thumb_func_start MultiBootMain -MultiBootMain: @ 800BC5C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r7, r0, 0 - bl MultiBootCheckComplete - cmp r0, 0 - beq _0800BC72 - b _0800C03A -_0800BC72: - adds r0, r7, 0 - adds r0, 0x4A - ldrb r1, [r0] - mov r10, r0 - cmp r1, 0xF - bls _0800BC86 - subs r0, r1, 0x1 - mov r1, r10 - strb r0, [r1] - b _0800C03A -_0800BC86: - adds r1, r7, 0 - adds r1, 0x48 - ldrb r0, [r1] - cmp r0, 0 - beq _0800BCB0 - movs r0, 0 - strb r0, [r1] - ldr r0, _0800BCAC @ =0x04000128 - ldrh r0, [r0] - movs r5, 0xFC - ands r5, r0 - cmp r5, 0x8 - beq _0800BCB0 - adds r0, r7, 0 - bl MultiBootInit - movs r0, 0x8 - eors r0, r5 - b _0800C03C - .align 2, 0 -_0800BCAC: .4byte 0x04000128 -_0800BCB0: - ldrb r0, [r7, 0x18] - cmp r0, 0xDF - bls _0800BD02 - adds r0, r7, 0 - bl MultiBootHandShake - adds r5, r0, 0 - cmp r5, 0 - beq _0800BCC4 - b _0800C03C -_0800BCC4: - adds r0, r7, 0 - adds r0, 0x4B - ldrb r0, [r0] - cmp r0, 0x1 - bne _0800BCE0 - ldrb r0, [r7, 0x18] - cmp r0, 0xE1 - bls _0800BCE0 - adds r0, r7, 0 - bl MultiBootCheckComplete - cmp r0, 0 - bne _0800BCE0 - b _0800C02A -_0800BCE0: - adds r0, r7, 0 - bl MultiBootCheckComplete - cmp r0, 0 - beq _0800BCEC - b _0800C03A -_0800BCEC: - ldrh r0, [r7, 0x16] - cmp r0, 0 - bne _0800BCFC - adds r0, r7, 0 - bl MultiBootInit - movs r0, 0x71 - b _0800C03C -_0800BCFC: - subs r0, 0x1 - strh r0, [r7, 0x16] - b _0800C03A -_0800BD02: - ldrb r0, [r7, 0x18] - cmp r0, 0x2 - bne _0800BD0A - b _0800BE40 -_0800BD0A: - cmp r0, 0x2 - bgt _0800BD18 - cmp r0, 0 - beq _0800BD26 - cmp r0, 0x1 - beq _0800BDE2 - b _0800BF78 -_0800BD18: - cmp r0, 0xD0 - bne _0800BD1E - b _0800BE8C -_0800BD1E: - cmp r0, 0xD1 - bne _0800BD24 - b _0800BF26 -_0800BD24: - b _0800BF78 -_0800BD26: - movs r3, 0xE - movs r5, 0x3 - ldr r0, _0800BD6C @ =0x04000120 - ldrh r0, [r0, 0x6] - adds r1, r0, 0 - ldr r0, _0800BD70 @ =0x0000ffff - ldrb r2, [r7, 0x1E] - adds r6, r2, 0 - cmp r1, r0 - bne _0800BD4E - adds r4, r1, 0 - ldr r1, _0800BD74 @ =0x04000126 -_0800BD3E: - asrs r3, 1 - subs r1, 0x2 - subs r5, 0x1 - cmp r5, 0 - beq _0800BD4E - ldrh r0, [r1] - cmp r0, r4 - beq _0800BD3E -_0800BD4E: - movs r0, 0xE - ands r3, r0 - strb r3, [r7, 0x1D] - movs r5, 0x3 - ldr r0, _0800BD6C @ =0x04000120 - ldrh r0, [r0, 0x6] - adds r4, r0, 0 - asrs r0, r2, 3 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0800BD7C - ldr r0, _0800BD78 @ =0x00007208 - b _0800BDA2 - .align 2, 0 -_0800BD6C: .4byte 0x04000120 -_0800BD70: .4byte 0x0000ffff -_0800BD74: .4byte 0x04000126 -_0800BD78: .4byte 0x00007208 -_0800BD7C: - subs r5, 0x1 - cmp r5, 0 - beq _0800BDA8 - lsls r0, r5, 1 - ldr r1, _0800BDD0 @ =0x04000120 - adds r0, r1 - ldrh r0, [r0] - adds r4, r0, 0 - adds r0, r2, 0 - asrs r0, r5 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0800BD7C - adds r0, r1, 0 - lsls r0, r5 - movs r1, 0xE4 - lsls r1, 7 - orrs r0, r1 -_0800BDA2: - cmp r4, r0 - beq _0800BD7C - movs r3, 0 -_0800BDA8: - adds r0, r3, 0 - ands r0, r6 - strb r0, [r7, 0x1E] - cmp r3, 0 - bne _0800BDB8 - movs r0, 0xF - mov r2, r10 - strb r0, [r2] -_0800BDB8: - mov r1, r10 - ldrb r0, [r1] - cmp r0, 0 - bne _0800BDD4 - ldrb r0, [r7, 0x1D] - ldrb r2, [r7, 0x1E] - cmp r0, r2 - beq _0800BDDA - adds r0, r7, 0 - bl MultiBootStartProbe - b _0800BDE2 - .align 2, 0 -_0800BDD0: .4byte 0x04000120 -_0800BDD4: - subs r0, 0x1 - mov r1, r10 - strb r0, [r1] -_0800BDDA: - ldrb r1, [r7, 0x1E] - movs r2, 0xC4 - lsls r2, 7 - b _0800BEE2 -_0800BDE2: - adds r1, r7, 0 - adds r1, 0x49 - movs r0, 0 - strb r0, [r1] - movs r5, 0x3 - mov r12, r1 - ldr r3, _0800BE38 @ =gUnknown_3000E6C -_0800BDF0: - lsls r0, r5, 1 - ldr r2, _0800BE3C @ =0x04000120 - adds r0, r2 - ldrh r0, [r0] - adds r4, r0, 0 - asrs r0, r4, 8 - subs r2, r5, 0x1 - cmp r0, 0x72 - bne _0800BE1A - lsls r0, r2, 1 - adds r0, r3 - strh r4, [r0] - movs r0, 0xFF - ands r4, r0 - movs r0, 0x1 - lsls r0, r5 - cmp r4, r0 - bne _0800BE1A - ldrb r0, [r1] - orrs r4, r0 - strb r4, [r1] -_0800BE1A: - adds r5, r2, 0 - cmp r5, 0 - bne _0800BDF0 - ldrb r0, [r7, 0x1D] - mov r1, r12 - ldrb r1, [r1] - cmp r0, r1 - bne _0800BDDA - movs r0, 0x2 - strb r0, [r7, 0x18] - mov r2, r12 - ldrb r1, [r2] - movs r2, 0xC2 - lsls r2, 7 - b _0800BEE2 - .align 2, 0 -_0800BE38: .4byte gUnknown_3000E6C -_0800BE3C: .4byte 0x04000120 -_0800BE40: - movs r5, 0x3 - movs r0, 0x49 - adds r0, r7 - mov r12, r0 - mov r4, r12 - movs r6, 0x1 - ldr r1, _0800BE84 @ =gUnknown_3000E6C - mov r9, r1 - ldr r2, _0800BE88 @ =0x04000120 - mov r8, r2 -_0800BE54: - ldrb r3, [r4] - adds r0, r3, 0 - asrs r0, r5 - ands r0, r6 - subs r2, r5, 0x1 - cmp r0, 0 - beq _0800BE7A - lsls r0, r5, 1 - add r0, r8 - ldrh r1, [r0] - lsls r0, r2, 1 - add r0, r9 - ldrh r0, [r0] - cmp r1, r0 - beq _0800BE7A - adds r0, r6, 0 - lsls r0, r5 - eors r3, r0 - strb r3, [r4] -_0800BE7A: - adds r5, r2, 0 - cmp r5, 0 - bne _0800BE54 - b _0800BFE0 - .align 2, 0 -_0800BE84: .4byte gUnknown_3000E6C -_0800BE88: .4byte 0x04000120 -_0800BE8C: - movs r3, 0x1 - movs r5, 0x3 - movs r0, 0x49 - adds r0, r7 - mov r12, r0 - adds r6, r7, 0 - adds r6, 0x19 - ldr r1, _0800BEF0 @ =gUnknown_3000E6C - mov r8, r1 -_0800BE9E: - lsls r0, r5, 1 - ldr r2, _0800BEF4 @ =0x04000120 - adds r0, r2 - ldrh r0, [r0] - adds r4, r0, 0 - subs r2, r5, 0x1 - adds r0, r6, r2 - strb r4, [r0] - mov r0, r12 - ldrb r1, [r0] - asrs r1, r5 - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - beq _0800BED2 - asrs r0, r4, 8 - subs r0, 0x72 - cmp r0, 0x1 - bls _0800BEC6 - b _0800C030 -_0800BEC6: - lsls r0, r2, 1 - add r0, r8 - ldrh r0, [r0] - cmp r4, r0 - bne _0800BED2 - movs r3, 0 -_0800BED2: - adds r5, r2, 0 - cmp r5, 0 - bne _0800BE9E - cmp r3, 0 - bne _0800BEF8 - ldrb r1, [r7, 0x1C] - movs r2, 0xC6 - lsls r2, 7 -_0800BEE2: - adds r0, r2, 0 - orrs r1, r0 - adds r0, r7, 0 - bl MultiBootSend - b _0800C03C - .align 2, 0 -_0800BEF0: .4byte gUnknown_3000E6C -_0800BEF4: .4byte 0x04000120 -_0800BEF8: - movs r0, 0xD1 - strb r0, [r7, 0x18] - movs r3, 0x11 - movs r5, 0x3 - adds r1, r6, 0x2 -_0800BF02: - ldrb r0, [r1] - adds r3, r0 - subs r1, 0x1 - subs r5, 0x1 - cmp r5, 0 - bne _0800BF02 - strb r3, [r7, 0x14] - movs r0, 0xFF - ands r3, r0 - movs r1, 0xC8 - lsls r1, 7 - adds r0, r1, 0 - orrs r3, r0 - adds r0, r7, 0 - adds r1, r3, 0 - bl MultiBootSend - b _0800C03C -_0800BF26: - movs r5, 0x3 - movs r2, 0x49 - ldrb r1, [r2, r7] - ldr r2, _0800BF64 @ =0x04000126 - movs r3, 0x1 -_0800BF30: - ldrh r0, [r2] - adds r4, r0, 0 - adds r0, r1, 0 - asrs r0, r5 - ands r0, r3 - cmp r0, 0 - beq _0800BF44 - asrs r0, r4, 8 - cmp r0, 0x73 - bne _0800C030 -_0800BF44: - subs r2, 0x2 - subs r5, 0x1 - cmp r5, 0 - bne _0800BF30 - adds r0, r7, 0 - bl MultiBoot - adds r5, r0, 0 - cmp r5, 0 - bne _0800BF68 - movs r0, 0xE0 - strb r0, [r7, 0x18] - adds r0, 0xB0 - strh r0, [r7, 0x16] - b _0800C03A - .align 2, 0 -_0800BF64: .4byte 0x04000126 -_0800BF68: - adds r0, r7, 0 - bl MultiBootInit - movs r0, 0x1E - mov r1, r10 - strb r0, [r1] - movs r0, 0x70 - b _0800C03C -_0800BF78: - movs r5, 0x3 - movs r2, 0x49 - adds r2, r7 - mov r12, r2 - mov r8, r12 - movs r0, 0x1 - mov r9, r0 -_0800BF86: - mov r1, r8 - ldrb r6, [r1] - adds r0, r6, 0 - asrs r0, r5 - mov r2, r9 - ands r0, r2 - cmp r0, 0 - beq _0800BFC0 - lsls r0, r5, 1 - ldr r1, _0800BFDC @ =0x04000120 - adds r0, r1 - ldrh r0, [r0] - adds r4, r0, 0 - asrs r2, r4, 8 - ldrb r0, [r7, 0x18] - lsrs r0, 1 - movs r1, 0x62 - subs r1, r0 - mov r3, r9 - lsls r3, r5 - cmp r2, r1 - bne _0800BFBA - movs r0, 0xFF - ands r4, r0 - cmp r4, r3 - beq _0800BFC0 -_0800BFBA: - eors r6, r3 - mov r2, r8 - strb r6, [r2] -_0800BFC0: - subs r5, 0x1 - cmp r5, 0 - bne _0800BF86 - ldrb r0, [r7, 0x18] - cmp r0, 0xC4 - bne _0800BFE0 - mov r0, r12 - ldrb r1, [r0] - movs r0, 0xE - ands r0, r1 - strb r0, [r7, 0x1E] - strb r5, [r7, 0x18] - b _0800BDDA - .align 2, 0 -_0800BFDC: .4byte 0x04000120 -_0800BFE0: - mov r1, r12 - ldrb r0, [r1] - cmp r0, 0 - bne _0800BFF2 - adds r0, r7, 0 - bl MultiBootInit - movs r0, 0x50 - b _0800C03C -_0800BFF2: - ldrb r0, [r7, 0x18] - adds r0, 0x2 - strb r0, [r7, 0x18] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xC4 - bne _0800C002 - b _0800BDDA -_0800C002: - ldrb r0, [r7, 0x18] - ldr r1, [r7, 0x28] - adds r0, r1 - subs r1, r0, 0x3 - ldrb r2, [r1] - lsls r2, 8 - subs r0, 0x4 - ldrb r1, [r0] - orrs r1, r2 - adds r0, r7, 0 - bl MultiBootSend - adds r5, r0, 0 - cmp r5, 0 - bne _0800C03C - adds r0, r7, 0 - adds r0, 0x4B - ldrb r0, [r0] - cmp r0, 0x1 - bne _0800C03A -_0800C02A: - bl MultiBootWaitSendDone - b _0800BC86 -_0800C030: - adds r0, r7, 0 - bl MultiBootInit - movs r0, 0x60 - b _0800C03C -_0800C03A: - movs r0, 0 -_0800C03C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end MultiBootMain - - thumb_func_start MultiBootSend -MultiBootSend: @ 800C04C - push {r4,lr} - adds r2, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r3, _0800C078 @ =0x04000128 - ldrh r0, [r3] - movs r4, 0x8C - ands r4, r0 - cmp r4, 0x8 - bne _0800C084 - ldr r0, _0800C07C @ =0x0400012a - strh r1, [r0] - ldr r1, _0800C080 @ =0x00002083 - adds r0, r1, 0 - strh r0, [r3] - adds r1, r2, 0 - adds r1, 0x48 - movs r0, 0x1 - strb r0, [r1] - movs r0, 0 - b _0800C090 - .align 2, 0 -_0800C078: .4byte 0x04000128 -_0800C07C: .4byte 0x0400012a -_0800C080: .4byte 0x00002083 -_0800C084: - adds r0, r2, 0 - bl MultiBootInit - movs r0, 0x8 - eors r4, r0 - adds r0, r4, 0 -_0800C090: - pop {r4} - pop {r1} - bx r1 - thumb_func_end MultiBootSend - - thumb_func_start MultiBootStartProbe -MultiBootStartProbe: @ 800C098 - push {lr} - adds r1, r0, 0 - ldrb r0, [r1, 0x18] - cmp r0, 0 - beq _0800C0AA - adds r0, r1, 0 - bl MultiBootInit - b _0800C0B6 -_0800C0AA: - adds r2, r1, 0 - adds r2, 0x4A - strb r0, [r2] - strb r0, [r1, 0x1E] - movs r0, 0x1 - strb r0, [r1, 0x18] -_0800C0B6: - pop {r0} - bx r0 - thumb_func_end MultiBootStartProbe - - thumb_func_start MultiBootStartMaster -MultiBootStartMaster: @ 800C0BC - push {r4-r7,lr} - adds r4, r0, 0 - adds r6, r1, 0 - ldr r0, [sp, 0x14] - lsls r3, 24 - lsrs r5, r3, 24 - lsls r0, 24 - lsrs r7, r0, 24 - movs r3, 0 - ldrb r0, [r4, 0x18] - cmp r0, 0 - bne _0800C0F8 - ldrb r0, [r4, 0x1E] - cmp r0, 0 - beq _0800C0F8 - adds r0, r4, 0 - adds r0, 0x4A - ldrb r0, [r0] - cmp r0, 0 - bne _0800C0F8 - str r6, [r4, 0x20] - adds r2, 0xF - movs r0, 0x10 - negs r0, r0 - ands r2, r0 - subs r0, 0xF0 - adds r1, r2, r0 - ldr r0, _0800C100 @ =0x0003ff00 - cmp r1, r0 - bls _0800C104 -_0800C0F8: - adds r0, r4, 0 - bl MultiBootInit - b _0800C178 - .align 2, 0 -_0800C100: .4byte 0x0003ff00 -_0800C104: - adds r0, r6, r2 - str r0, [r4, 0x24] - lsls r1, r7, 24 - movs r2, 0x80 - lsls r2, 19 - adds r0, r1, r2 - asrs r0, 24 - adds r2, r1, 0 - cmp r0, 0x8 - bhi _0800C164 - lsls r0, 2 - ldr r1, _0800C124 @ =_0800C128 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0800C124: .4byte _0800C128 - .align 2, 0 -_0800C128: - .4byte _0800C14C - .4byte _0800C14C - .4byte _0800C14C - .4byte _0800C14C - .4byte _0800C156 - .4byte _0800C15C - .4byte _0800C15C - .4byte _0800C15C - .4byte _0800C15C -_0800C14C: - lsls r3, r5, 3 - asrs r1, r2, 24 - movs r0, 0x3 - subs r0, r1 - b _0800C162 -_0800C156: - movs r0, 0x38 - adds r3, r5, 0 - b _0800C162 -_0800C15C: - lsls r3, r5, 3 - asrs r0, r2, 24 - subs r0, 0x1 -_0800C162: - orrs r3, r0 -_0800C164: - movs r0, 0x3F - ands r3, r0 - lsls r0, r3, 1 - movs r2, 0x7F - negs r2, r2 - adds r1, r2, 0 - orrs r0, r1 - strb r0, [r4, 0x1C] - movs r0, 0xD0 - strb r0, [r4, 0x18] -_0800C178: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end MultiBootStartMaster - - thumb_func_start MultiBootCheckComplete -MultiBootCheckComplete: @ 800C180 - push {lr} - ldrb r0, [r0, 0x18] - cmp r0, 0xE9 - beq _0800C18C - movs r0, 0 - b _0800C18E -_0800C18C: - movs r0, 0x1 -_0800C18E: - pop {r1} - bx r1 - thumb_func_end MultiBootCheckComplete - - thumb_func_start MultiBootHandShake -MultiBootHandShake: @ 800C194 - push {r4-r6,lr} - adds r3, r0, 0 - ldrb r0, [r3, 0x18] - cmp r0, 0xE0 - beq _0800C1B0 - cmp r0, 0xE0 - blt _0800C1C0 - cmp r0, 0xE8 - bgt _0800C1C0 - cmp r0, 0xE7 - blt _0800C1C0 - movs r4, 0x3 - ldrb r5, [r3, 0x1E] - b _0800C220 -_0800C1B0: - movs r1, 0 - movs r0, 0xE1 - strb r0, [r3, 0x18] - str r1, [r3, 0x4] - movs r0, 0x80 - lsls r0, 13 - str r0, [r3] - b _0800C212 -_0800C1C0: - movs r4, 0x3 - ldrb r5, [r3, 0x1E] - movs r6, 0x1 - ldr r1, _0800C21C @ =0x04000126 -_0800C1C8: - ldrh r0, [r1] - adds r2, r0, 0 - adds r0, r5, 0 - asrs r0, r4 - ands r0, r6 - cmp r0, 0 - beq _0800C1DC - ldr r0, [r3, 0x4] - cmp r2, r0 - bne _0800C1B0 -_0800C1DC: - subs r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bne _0800C1C8 - ldrb r0, [r3, 0x18] - adds r0, 0x1 - strb r0, [r3, 0x18] - ldr r1, [r3] - ldrh r0, [r3] - str r0, [r3, 0x4] - cmp r1, 0 - bne _0800C20A - ldr r0, [r3, 0x28] - adds r1, r0, 0 - adds r1, 0xAC - ldrb r1, [r1] - adds r0, 0xAD - ldrb r0, [r0] - lsls r0, 8 - orrs r1, r0 - str r1, [r3, 0x4] - lsls r1, 5 - str r1, [r3] -_0800C20A: - ldr r0, [r3] - lsrs r0, 5 - str r0, [r3] -_0800C210: - ldrh r1, [r3] -_0800C212: - adds r0, r3, 0 - bl MultiBootSend - b _0800C278 - .align 2, 0 -_0800C21C: .4byte 0x04000126 -_0800C220: - lsls r0, r4, 1 - ldr r1, _0800C268 @ =0x04000120 - adds r0, r1 - ldrh r0, [r0] - adds r2, r0, 0 - adds r0, r5, 0 - asrs r0, r4 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0800C23C - ldr r0, [r3, 0x4] - cmp r2, r0 - bne _0800C26C -_0800C23C: - subs r4, 0x1 - cmp r4, 0 - bne _0800C220 - ldrb r0, [r3, 0x18] - adds r0, 0x1 - strb r0, [r3, 0x18] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xE9 - beq _0800C276 - ldr r0, [r3, 0x28] - adds r1, r0, 0 - adds r1, 0xAE - ldrb r1, [r1] - adds r0, 0xAF - ldrb r0, [r0] - lsls r0, 8 - orrs r1, r0 - str r1, [r3] - str r1, [r3, 0x4] - b _0800C210 - .align 2, 0 -_0800C268: .4byte 0x04000120 -_0800C26C: - adds r0, r3, 0 - bl MultiBootInit - movs r0, 0x71 - b _0800C278 -_0800C276: - movs r0, 0 -_0800C278: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end MultiBootHandShake - - thumb_func_start MultiBootWaitCycles -MultiBootWaitCycles: @ 800C280 - mov r2, pc - lsrs r2, 24 - movs r1, 0xC - cmp r2, 0x2 - beq _0800C292 - movs r1, 0xD - cmp r2, 0x8 - beq _0800C292 - movs r1, 0x4 -_0800C292: - subs r0, r1 - bgt _0800C292 - bx lr - thumb_func_end MultiBootWaitCycles - - thumb_func_start MultiBootWaitSendDone -MultiBootWaitSendDone: @ 800C298 - push {r4,r5,lr} - movs r2, 0 - ldr r3, _0800C2CC @ =0x04000128 - ldrh r1, [r3] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0800C2BC - ldr r5, _0800C2D0 @ =0x0000795c - movs r4, 0x80 -_0800C2AC: - adds r2, 0x1 - cmp r2, r5 - bgt _0800C2BC - ldrh r1, [r3] - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - bne _0800C2AC -_0800C2BC: - movs r0, 0x96 - lsls r0, 2 - bl MultiBootWaitCycles - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0800C2CC: .4byte 0x04000128 -_0800C2D0: .4byte 0x0000795c - thumb_func_end MultiBootWaitSendDone - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/new_game.s b/asm/new_game.s index 234fefcd7..ad4983770 100644 --- a/asm/new_game.s +++ b/asm/new_game.s @@ -174,8 +174,8 @@ Sav2_ClearSetDefault: @ 8054A18 bx r0 thumb_func_end Sav2_ClearSetDefault - thumb_func_start sub_8054A28 -sub_8054A28: @ 8054A28 + thumb_func_start ResetMenuAndMonGlobals +ResetMenuAndMonGlobals: @ 8054A28 push {lr} ldr r1, _08054A5C @ =gUnknown_2031DB0 movs r0, 0 @@ -195,7 +195,7 @@ sub_8054A28: @ 8054A28 bx r0 .align 2, 0 _08054A5C: .4byte gUnknown_2031DB0 - thumb_func_end sub_8054A28 + thumb_func_end ResetMenuAndMonGlobals thumb_func_start sub_8054A60 sub_8054A60: @ 8054A60 diff --git a/asm/new_menu_helpers.s b/asm/new_menu_helpers.s deleted file mode 100644 index 5e7b10e5b..000000000 --- a/asm/new_menu_helpers.s +++ /dev/null @@ -1,2497 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start clear_scheduled_bg_copies_to_vram -clear_scheduled_bg_copies_to_vram: @ 80F6790 - push {lr} - ldr r0, _080F67A0 @ =gUnknown_203AB58 - movs r1, 0 - movs r2, 0x4 - bl memset - pop {r0} - bx r0 - .align 2, 0 -_080F67A0: .4byte gUnknown_203AB58 - thumb_func_end clear_scheduled_bg_copies_to_vram - - thumb_func_start schedule_bg_copy_tilemap_to_vram -schedule_bg_copy_tilemap_to_vram: @ 80F67A4 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080F67B4 @ =gUnknown_203AB58 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - bx lr - .align 2, 0 -_080F67B4: .4byte gUnknown_203AB58 - thumb_func_end schedule_bg_copy_tilemap_to_vram - - thumb_func_start do_scheduled_bg_tilemap_copies_to_vram -do_scheduled_bg_tilemap_copies_to_vram: @ 80F67B8 - push {r4,lr} - ldr r4, _080F6804 @ =gUnknown_203AB58 - ldrb r0, [r4] - cmp r0, 0x1 - bne _080F67CC - movs r0, 0 - bl CopyBgTilemapBufferToVram - movs r0, 0 - strb r0, [r4] -_080F67CC: - ldrb r0, [r4, 0x1] - cmp r0, 0x1 - bne _080F67DC - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - movs r0, 0 - strb r0, [r4, 0x1] -_080F67DC: - ldrb r0, [r4, 0x2] - cmp r0, 0x1 - bne _080F67EC - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - movs r0, 0 - strb r0, [r4, 0x2] -_080F67EC: - ldrb r0, [r4, 0x3] - cmp r0, 0x1 - bne _080F67FC - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - movs r0, 0 - strb r0, [r4, 0x3] -_080F67FC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F6804: .4byte gUnknown_203AB58 - thumb_func_end do_scheduled_bg_tilemap_copies_to_vram - - thumb_func_start reset_temp_tile_data_buffers -reset_temp_tile_data_buffers: @ 80F6808 - push {lr} - ldr r3, _080F6824 @ =gUnknown_203AB5C - ldr r1, _080F6828 @ =gUnknown_203AB60 - movs r2, 0 - adds r0, r1, 0 - adds r0, 0x7C -_080F6814: - str r2, [r0] - subs r0, 0x4 - cmp r0, r1 - bge _080F6814 - movs r0, 0 - strh r0, [r3] - pop {r0} - bx r0 - .align 2, 0 -_080F6824: .4byte gUnknown_203AB5C -_080F6828: .4byte gUnknown_203AB60 - thumb_func_end reset_temp_tile_data_buffers - - thumb_func_start free_temp_tile_data_buffers_if_possible -free_temp_tile_data_buffers_if_possible: @ 80F682C - push {r4-r6,lr} - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _080F6870 - ldr r1, _080F6868 @ =gUnknown_203AB5C - ldrh r0, [r1] - cmp r0, 0 - beq _080F6864 - movs r4, 0 - ldrh r1, [r1] - cmp r4, r1 - bge _080F685E - ldr r5, _080F686C @ =gUnknown_203AB60 - movs r6, 0 -_080F684C: - ldr r0, [r5] - bl Free - stm r5!, {r6} - adds r4, 0x1 - ldr r0, _080F6868 @ =gUnknown_203AB5C - ldrh r0, [r0] - cmp r4, r0 - blt _080F684C -_080F685E: - ldr r1, _080F6868 @ =gUnknown_203AB5C - movs r0, 0 - strh r0, [r1] -_080F6864: - movs r0, 0 - b _080F6872 - .align 2, 0 -_080F6868: .4byte gUnknown_203AB5C -_080F686C: .4byte gUnknown_203AB60 -_080F6870: - movs r0, 0x1 -_080F6872: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end free_temp_tile_data_buffers_if_possible - - thumb_func_start decompress_and_copy_tile_data_to_vram -decompress_and_copy_tile_data_to_vram: @ 80F6878 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - adds r4, r1, 0 - adds r5, r2, 0 - ldr r1, [sp, 0x24] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r3, 16 - lsrs r3, 16 - mov r9, r3 - lsls r1, 24 - lsrs r7, r1, 24 - ldr r6, _080F68D8 @ =gUnknown_203AB5C - ldrh r0, [r6] - cmp r0, 0x1F - bhi _080F68E0 - adds r0, r4, 0 - add r1, sp, 0x4 - bl malloc_and_decompress - adds r4, r0, 0 - cmp r5, 0 - bne _080F68B0 - ldr r5, [sp, 0x4] -_080F68B0: - cmp r4, 0 - beq _080F68D4 - lsls r2, r5, 16 - lsrs r2, 16 - str r7, [sp] - mov r0, r8 - adds r1, r4, 0 - mov r3, r9 - bl sub_80F6AD0 - ldr r2, _080F68DC @ =gUnknown_203AB60 - ldrh r0, [r6] - adds r1, r0, 0x1 - strh r1, [r6] - lsls r0, 16 - lsrs r0, 14 - adds r0, r2 - str r4, [r0] -_080F68D4: - adds r0, r4, 0 - b _080F68E2 - .align 2, 0 -_080F68D8: .4byte gUnknown_203AB5C -_080F68DC: .4byte gUnknown_203AB60 -_080F68E0: - movs r0, 0 -_080F68E2: - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end decompress_and_copy_tile_data_to_vram - - thumb_func_start sub_80F68F0 -sub_80F68F0: @ 80F68F0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - adds r4, r1, 0 - adds r6, r2, 0 - ldr r1, [sp, 0x24] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r3, 16 - lsrs r3, 16 - mov r9, r3 - lsls r1, 24 - lsrs r7, r1, 24 - ldr r5, _080F6954 @ =gUnknown_203AB5C - ldrh r0, [r5] - cmp r0, 0x1F - bhi _080F695C - adds r0, r4, 0 - add r1, sp, 0x4 - bl malloc_and_decompress - adds r4, r0, 0 - ldr r0, [sp, 0x4] - cmp r0, r6 - bls _080F692A - str r6, [sp, 0x4] -_080F692A: - cmp r4, 0 - beq _080F6950 - ldr r2, [sp, 0x4] - lsls r2, 16 - lsrs r2, 16 - str r7, [sp] - mov r0, r8 - adds r1, r4, 0 - mov r3, r9 - bl sub_80F6AD0 - ldr r2, _080F6958 @ =gUnknown_203AB60 - ldrh r0, [r5] - adds r1, r0, 0x1 - strh r1, [r5] - lsls r0, 16 - lsrs r0, 14 - adds r0, r2 - str r4, [r0] -_080F6950: - adds r0, r4, 0 - b _080F695E - .align 2, 0 -_080F6954: .4byte gUnknown_203AB5C -_080F6958: .4byte gUnknown_203AB60 -_080F695C: - movs r0, 0 -_080F695E: - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80F68F0 - - thumb_func_start DecompressAndLoadBgGfxUsingHeap -DecompressAndLoadBgGfxUsingHeap: @ 80F696C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - adds r5, r2, 0 - ldr r2, [sp, 0x24] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r3, 16 - lsrs r3, 16 - mov r9, r3 - lsls r2, 24 - lsrs r7, r2, 24 - adds r0, r1, 0 - add r1, sp, 0x4 - bl malloc_and_decompress - adds r6, r0, 0 - cmp r5, 0 - bne _080F699A - ldr r5, [sp, 0x4] -_080F699A: - cmp r6, 0 - beq _080F69D2 - ldr r0, _080F69E0 @ =task_free_buf_after_copying_tile_data_to_vram - movs r1, 0 - bl CreateTask - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r2, r5, 16 - lsrs r2, 16 - str r7, [sp] - mov r0, r8 - adds r1, r6, 0 - mov r3, r9 - bl sub_80F6AD0 - ldr r2, _080F69E4 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r2 - strh r0, [r1, 0x8] - adds r0, r4, 0 - movs r1, 0x1 - adds r2, r6, 0 - bl SetWordTaskArg -_080F69D2: - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F69E0: .4byte task_free_buf_after_copying_tile_data_to_vram -_080F69E4: .4byte gTasks - thumb_func_end DecompressAndLoadBgGfxUsingHeap - - thumb_func_start sub_80F69E8 -sub_80F69E8: @ 80F69E8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - adds r4, r2, 0 - ldr r2, [sp, 0x20] - lsls r0, 24 - lsrs r7, r0, 24 - lsls r3, 16 - lsrs r3, 16 - mov r8, r3 - lsls r2, 24 - lsrs r6, r2, 24 - adds r0, r1, 0 - add r1, sp, 0x4 - bl malloc_and_decompress - adds r5, r0, 0 - ldr r0, [sp, 0x4] - cmp r0, r4 - bls _080F6A14 - str r4, [sp, 0x4] -_080F6A14: - cmp r5, 0 - beq _080F6A4E - ldr r0, _080F6A5C @ =task_free_buf_after_copying_tile_data_to_vram - movs r1, 0 - bl CreateTask - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r2, [sp, 0x4] - lsls r2, 16 - lsrs r2, 16 - str r6, [sp] - adds r0, r7, 0 - adds r1, r5, 0 - mov r3, r8 - bl sub_80F6AD0 - ldr r2, _080F6A60 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r2 - strh r0, [r1, 0x8] - adds r0, r4, 0 - movs r1, 0x1 - adds r2, r5, 0 - bl SetWordTaskArg -_080F6A4E: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F6A5C: .4byte task_free_buf_after_copying_tile_data_to_vram -_080F6A60: .4byte gTasks - thumb_func_end sub_80F69E8 - - thumb_func_start task_free_buf_after_copying_tile_data_to_vram -task_free_buf_after_copying_tile_data_to_vram: @ 80F6A64 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080F6A9C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x8 - ldrsh r0, [r0, r1] - bl CheckForSpaceForDma3Request - lsls r0, 16 - cmp r0, 0 - bne _080F6A94 - adds r0, r4, 0 - movs r1, 0x1 - bl GetWordTaskArg - bl Free - adds r0, r4, 0 - bl DestroyTask -_080F6A94: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F6A9C: .4byte gTasks - thumb_func_end task_free_buf_after_copying_tile_data_to_vram - - thumb_func_start malloc_and_decompress -malloc_and_decompress: @ 80F6AA0 - push {r4,r5,lr} - adds r5, r0, 0 - ldrb r0, [r5, 0x1] - strb r0, [r1] - ldrb r0, [r5, 0x2] - strb r0, [r1, 0x1] - ldrb r0, [r5, 0x3] - strb r0, [r1, 0x2] - movs r0, 0 - strb r0, [r1, 0x3] - ldr r0, [r1] - bl Alloc - adds r4, r0, 0 - cmp r4, 0 - beq _080F6AC8 - adds r0, r5, 0 - adds r1, r4, 0 - bl LZ77UnCompWram -_080F6AC8: - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end malloc_and_decompress - - thumb_func_start sub_80F6AD0 -sub_80F6AD0: @ 80F6AD0 - push {r4,lr} - adds r4, r1, 0 - ldr r1, [sp, 0x8] - lsls r0, 24 - lsrs r0, 24 - lsls r2, 16 - lsrs r2, 16 - lsls r3, 16 - lsrs r3, 16 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0 - beq _080F6AEE - cmp r1, 0x1 - beq _080F6AF6 -_080F6AEE: - adds r1, r4, 0 - bl LoadBgTiles - b _080F6AFC -_080F6AF6: - adds r1, r4, 0 - bl LoadBgTilemap -_080F6AFC: - lsls r0, 16 - lsrs r0, 16 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80F6AD0 - - thumb_func_start SetBgRectPal -SetBgRectPal: @ 80F6B08 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r5, r2, 0 - ldr r4, [sp, 0x28] - ldr r2, [sp, 0x2C] - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp] - lsls r5, 24 - lsrs r5, 24 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x4] - lsls r4, 24 - lsrs r4, 24 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - bl GetBgTilemapBuffer - mov r8, r0 - adds r0, r5, r4 - cmp r5, r0 - bge _080F6B80 - mov r9, r0 -_080F6B46: - ldr r3, [sp] - ldr r1, [sp, 0x4] - adds r0, r3, r1 - adds r7, r5, 0x1 - cmp r3, r0 - bge _080F6B78 - lsls r6, r5, 5 - ldr r1, _080F6B90 @ =0x00000fff - mov r12, r1 - mov r1, r10 - lsls r5, r1, 12 - adds r4, r0, 0 -_080F6B5E: - adds r1, r6, r3 - lsls r1, 1 - add r1, r8 - ldrh r2, [r1] - mov r0, r12 - ands r0, r2 - orrs r0, r5 - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r4 - blt _080F6B5E -_080F6B78: - lsls r0, r7, 24 - lsrs r5, r0, 24 - cmp r5, r9 - blt _080F6B46 -_080F6B80: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F6B90: .4byte 0x00000fff - thumb_func_end SetBgRectPal - - thumb_func_start sub_80F6B94 -sub_80F6B94: @ 80F6B94 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r10, r1 - ldr r1, [sp, 0x24] - ldr r4, [sp, 0x28] - lsls r0, 24 - lsrs r0, 24 - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp] - lsls r1, 24 - lsrs r5, r1, 24 - lsls r4, 24 - lsrs r4, 24 - mov r8, r4 - bl GetBgTilemapBuffer - adds r7, r0, 0 - movs r0, 0 - cmp r0, r8 - bcs _080F6C02 -_080F6BCC: - movs r2, 0 - adds r6, r0, 0x1 - cmp r2, r5 - bcs _080F6BFA - adds r4, r0, 0 - muls r4, r5 - ldr r1, [sp] - adds r0, r1 - lsls r3, r0, 5 -_080F6BDE: - adds r1, r4, r2 - lsls r1, 1 - add r1, r10 - adds r0, r3, r2 - add r0, r9 - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r5 - bcc _080F6BDE -_080F6BFA: - lsls r0, r6, 24 - lsrs r0, 24 - cmp r0, r8 - bcc _080F6BCC -_080F6C02: - 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_80F6B94 - - thumb_func_start sub_80F6C14 -sub_80F6C14: @ 80F6C14 - push {lr} - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - pop {r0} - bx r0 - thumb_func_end sub_80F6C14 - - thumb_func_start InitStandardTextBoxWindows -InitStandardTextBoxWindows: @ 80F6C6C - push {lr} - ldr r0, _080F6C84 @ =gUnknown_841F42C - bl InitWindows - ldr r1, _080F6C88 @ =gUnknown_203ABE0 - movs r0, 0xFF - strb r0, [r1] - bl sub_8112EA8 - pop {r0} - bx r0 - .align 2, 0 -_080F6C84: .4byte gUnknown_841F42C -_080F6C88: .4byte gUnknown_203ABE0 - thumb_func_end InitStandardTextBoxWindows - - thumb_func_start sub_80F6C8C -sub_80F6C8C: @ 80F6C8C - push {lr} - bl FreeAllWindowBuffers - pop {r0} - bx r0 - thumb_func_end sub_80F6C8C - - thumb_func_start ResetBg0 -ResetBg0: @ 80F6C98 - push {lr} - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - bl DeactivateAllTextPrinters - bl sub_80F6E9C - pop {r0} - bx r0 - thumb_func_end ResetBg0 - - thumb_func_start sub_80F6CBC -sub_80F6CBC: @ 80F6CBC - push {lr} - bl RunTextPrinters - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_80F6CBC - - thumb_func_start AddTextPrinterParameterized2 -AddTextPrinterParameterized2: @ 80F6CD0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - ldr r7, [sp, 0x28] - ldr r4, [sp, 0x2C] - mov r8, r4 - ldr r5, [sp, 0x30] - ldr r6, [sp, 0x34] - lsls r3, 24 - lsrs r3, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - str r2, [sp] - mov r2, sp - movs r4, 0 - strb r0, [r2, 0x4] - mov r0, sp - strb r1, [r0, 0x5] - strb r4, [r0, 0x6] - movs r1, 0x1 - strb r1, [r0, 0x7] - strb r4, [r0, 0x8] - strb r1, [r0, 0x9] - strb r1, [r0, 0xA] - strb r1, [r0, 0xB] - mov r4, sp - ldrb r2, [r4, 0xC] - subs r1, 0x11 - adds r0, r1, 0 - ands r0, r2 - strb r0, [r4, 0xC] - mov r0, sp - mov r2, r8 - lsls r2, 4 - movs r4, 0xF - strb r2, [r0, 0xC] - mov r2, sp - ands r5, r4 - ldrb r0, [r2, 0xD] - ands r1, r0 - orrs r1, r5 - strb r1, [r2, 0xD] - mov r0, sp - lsrs r6, 20 - ands r1, r4 - orrs r1, r6 - strb r1, [r0, 0xD] - ldr r2, _080F6D58 @ =gTextFlags - ldrb r1, [r2] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - mov r0, sp - adds r1, r3, 0 - adds r2, r7, 0 - bl AddTextPrinter - lsls r0, 16 - lsrs r0, 16 - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080F6D58: .4byte gTextFlags - thumb_func_end AddTextPrinterParameterized2 - - thumb_func_start sub_80F6D5C -sub_80F6D5C: @ 80F6D5C - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - ldr r3, _080F6DA8 @ =gTextFlags - movs r4, 0x1 - ands r0, r4 - ldrb r2, [r3] - movs r1, 0x2 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] - bl ContextNpcGetTextColor - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080F6DB0 - bl GetTextSpeedSetting - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - ldr r2, _080F6DAC @ =gStringVar4 - str r5, [sp] - movs r0, 0x8 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x4 - bl AddTextPrinterParameterized2 - b _080F6DFC - .align 2, 0 -_080F6DA8: .4byte gTextFlags -_080F6DAC: .4byte gStringVar4 -_080F6DB0: - cmp r0, 0x1 - bne _080F6DDC - bl GetTextSpeedSetting - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - ldr r2, _080F6DD8 @ =gStringVar4 - str r5, [sp] - movs r0, 0x4 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x5 - bl AddTextPrinterParameterized2 - b _080F6DFC - .align 2, 0 -_080F6DD8: .4byte gStringVar4 -_080F6DDC: - bl GetTextSpeedSetting - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - ldr r2, _080F6E04 @ =gStringVar4 - str r5, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x2 - bl AddTextPrinterParameterized2 -_080F6DFC: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F6E04: .4byte gStringVar4 - thumb_func_end sub_80F6D5C - - thumb_func_start sub_80F6E08 -sub_80F6E08: @ 80F6E08 - push {r4,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080F6E4C @ =gTextFlags - movs r4, 0x1 - ands r0, r4 - ldrb r2, [r3] - movs r1, 0x2 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] - bl GetTextSpeedSetting - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - ldr r2, _080F6E50 @ =gStringVar4 - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x2 - bl AddTextPrinterParameterized2 - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F6E4C: .4byte gTextFlags -_080F6E50: .4byte gStringVar4 - thumb_func_end sub_80F6E08 - - thumb_func_start sub_80F6E54 -sub_80F6E54: @ 80F6E54 - push {r4,r5,lr} - sub sp, 0x10 - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r3, 24 - lsrs r3, 24 - ldr r4, _080F6E94 @ =gTextFlags - movs r5, 0x1 - ands r0, r5 - ldrb r2, [r4] - movs r1, 0x2 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4] - ldr r2, _080F6E98 @ =gStringVar4 - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x2 - bl AddTextPrinterParameterized2 - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F6E94: .4byte gTextFlags -_080F6E98: .4byte gStringVar4 - thumb_func_end sub_80F6E54 - - thumb_func_start sub_80F6E9C -sub_80F6E9C: @ 80F6E9C - push {lr} - ldr r0, _080F6EBC @ =gUnknown_203ADFA - ldrb r0, [r0] - cmp r0, 0x2 - bne _080F6EC4 - ldr r2, _080F6EC0 @ =gTextFlags - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - movs r1, 0x80 - lsls r1, 2 - movs r0, 0 - bl sub_814FF98 - b _080F6ED4 - .align 2, 0 -_080F6EBC: .4byte gUnknown_203ADFA -_080F6EC0: .4byte gTextFlags -_080F6EC4: - bl sub_80F77B8 - movs r1, 0x80 - lsls r1, 2 - movs r0, 0 - movs r2, 0xF0 - bl TextWindow_SetBubbleFrame_841F1C8 -_080F6ED4: - movs r1, 0x85 - lsls r1, 2 - movs r0, 0 - movs r2, 0xE0 - bl TextWindow_SetUserSelectedFrame - pop {r0} - bx r0 - thumb_func_end sub_80F6E9C - - thumb_func_start DrawDialogueFrame -DrawDialogueFrame: @ 80F6EE4 - push {r4,r5,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080F6F18 @ =sub_80F7124 - adds r0, r5, 0 - bl CallWindowFunction - adds r0, r5, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - adds r0, r5, 0 - bl PutWindowTilemap - cmp r4, 0x1 - bne _080F6F12 - adds r0, r5, 0 - movs r1, 0x3 - bl CopyWindowToVram -_080F6F12: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F6F18: .4byte sub_80F7124 - thumb_func_end DrawDialogueFrame - - thumb_func_start DrawStdWindowFrame -DrawStdWindowFrame: @ 80F6F1C - push {r4,r5,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080F6F50 @ =sub_80F6FD4 - adds r0, r5, 0 - bl CallWindowFunction - adds r0, r5, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - adds r0, r5, 0 - bl PutWindowTilemap - cmp r4, 0x1 - bne _080F6F4A - adds r0, r5, 0 - movs r1, 0x3 - bl CopyWindowToVram -_080F6F4A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F6F50: .4byte sub_80F6FD4 - thumb_func_end DrawStdWindowFrame - - thumb_func_start ClearDialogWindowAndFrame -ClearDialogWindowAndFrame: @ 80F6F54 - push {r4,r5,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080F6F94 @ =sub_80F76CC - adds r0, r5, 0 - bl CallWindowFunction - adds r0, r5, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - adds r0, r5, 0 - bl ClearWindowTilemap - cmp r4, 0x1 - bne _080F6F82 - adds r0, r5, 0 - movs r1, 0x3 - bl CopyWindowToVram -_080F6F82: - ldr r0, _080F6F98 @ =gUnknown_203ADFA - ldrb r0, [r0] - cmp r0, 0x2 - bne _080F6F8E - bl sub_8111134 -_080F6F8E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F6F94: .4byte sub_80F76CC -_080F6F98: .4byte gUnknown_203ADFA - thumb_func_end ClearDialogWindowAndFrame - - thumb_func_start ClearStdWindowAndFrame -ClearStdWindowAndFrame: @ 80F6F9C - push {r4,r5,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080F6FD0 @ =sub_80F7684 - adds r0, r5, 0 - bl CallWindowFunction - adds r0, r5, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - adds r0, r5, 0 - bl ClearWindowTilemap - cmp r4, 0x1 - bne _080F6FCA - adds r0, r5, 0 - movs r1, 0x3 - bl CopyWindowToVram -_080F6FCA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F6FD0: .4byte sub_80F7684 - thumb_func_end ClearStdWindowAndFrame - - thumb_func_start sub_80F6FD4 -sub_80F6FD4: @ 80F6FD4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - adds r4, r2, 0 - ldr r2, [sp, 0x3C] - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsls r4, 24 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x10] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x14] - movs r3, 0x85 - lsls r3, 2 - lsrs r0, r1, 24 - str r0, [sp, 0xC] - movs r2, 0xFF - lsls r2, 24 - adds r2, r1 - mov r8, r2 - lsrs r2, 24 - lsrs r0, r4, 24 - mov r9, r0 - movs r0, 0xFF - lsls r0, 24 - adds r4, r0 - lsrs r4, 24 - movs r5, 0x1 - str r5, [sp] - str r5, [sp, 0x4] - movs r6, 0xE - str r6, [sp, 0x8] - adds r0, r7, 0 - adds r1, r3, 0 - adds r3, r4, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F710C @ =0x00000215 - ldr r2, [sp, 0x10] - str r2, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0xC] - adds r3, r4, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F7110 @ =0x00000216 - ldr r3, [sp, 0xC] - ldr r2, [sp, 0x10] - adds r0, r3, r2 - lsls r0, 24 - mov r10, r0 - lsrs r2, r0, 24 - str r5, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - adds r3, r4, 0 - bl FillBgTilemapBufferRect - mov r5, r9 - ldr r0, [sp, 0x14] - add r0, r9 - cmp r9, r0 - bge _080F70A8 - mov r3, r8 - str r3, [sp, 0x18] - movs r6, 0x1 - movs r0, 0xE - mov r8, r0 -_080F706E: - lsls r4, r5, 24 - lsrs r4, 24 - str r6, [sp] - str r6, [sp, 0x4] - mov r2, r8 - str r2, [sp, 0x8] - adds r0, r7, 0 - ldr r1, _080F7114 @ =0x00000217 - ldr r3, [sp, 0x18] - lsrs r2, r3, 24 - adds r3, r4, 0 - bl FillBgTilemapBufferRect - str r6, [sp] - str r6, [sp, 0x4] - mov r0, r8 - str r0, [sp, 0x8] - adds r0, r7, 0 - ldr r1, _080F7118 @ =0x00000219 - mov r3, r10 - lsrs r2, r3, 24 - adds r3, r4, 0 - bl FillBgTilemapBufferRect - adds r5, 0x1 - ldr r0, [sp, 0x14] - add r0, r9 - cmp r5, r0 - blt _080F706E -_080F70A8: - ldr r1, _080F711C @ =0x0000021a - ldr r2, [sp, 0xC] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldr r4, [sp, 0x14] - add r4, r9 - lsls r4, 24 - lsrs r4, 24 - movs r5, 0x1 - str r5, [sp] - str r5, [sp, 0x4] - movs r6, 0xE - str r6, [sp, 0x8] - adds r0, r7, 0 - adds r3, r4, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F7120 @ =0x0000021b - ldr r0, [sp, 0x10] - str r0, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0xC] - adds r3, r4, 0 - bl FillBgTilemapBufferRect - movs r1, 0x87 - lsls r1, 2 - ldr r3, [sp, 0xC] - ldr r0, [sp, 0x10] - adds r2, r3, r0 - lsls r2, 24 - lsrs r2, 24 - str r5, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - adds r3, r4, 0 - bl FillBgTilemapBufferRect - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F710C: .4byte 0x00000215 -_080F7110: .4byte 0x00000216 -_080F7114: .4byte 0x00000217 -_080F7118: .4byte 0x00000219 -_080F711C: .4byte 0x0000021a -_080F7120: .4byte 0x0000021b - thumb_func_end sub_80F6FD4 - - thumb_func_start sub_80F7124 -sub_80F7124: @ 80F7124 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0xC] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x10] - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x14] - bl sub_8069A38 - lsls r0, 24 - cmp r0, 0 - beq _080F715A - ldr r0, _080F7390 @ =gUnknown_203ADFA - ldrb r0, [r0] - cmp r0, 0x2 - beq _080F715A - b _080F73E8 -_080F715A: - movs r1, 0x80 - lsls r1, 2 - ldr r0, [sp, 0xC] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r5, [sp, 0x10] - subs r5, 0x1 - lsls r5, 24 - lsrs r5, 24 - movs r4, 0x1 - str r4, [sp] - str r4, [sp, 0x4] - movs r6, 0xF - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r10 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F7394 @ =0x00000201 - ldr r2, [sp, 0xC] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F7398 @ =0x00000202 - ldr r0, [sp, 0x14] - str r0, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0xC] - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F739C @ =0x00000203 - ldr r2, [sp, 0xC] - ldr r0, [sp, 0x14] - adds r2, r0 - mov r8, r2 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x18] - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - movs r1, 0x81 - lsls r1, 2 - add r8, r4 - mov r2, r8 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F73A0 @ =0x00000205 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r10 - ldr r3, [sp, 0x10] - bl FillBgTilemapBufferRect - ldr r1, _080F73A4 @ =0x00000206 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r9 - ldr r3, [sp, 0x10] - bl FillBgTilemapBufferRect - movs r1, 0x82 - lsls r1, 2 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x18] - ldr r3, [sp, 0x10] - bl FillBgTilemapBufferRect - ldr r1, _080F73A8 @ =0x00000209 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r8 - ldr r3, [sp, 0x10] - bl FillBgTilemapBufferRect - ldr r1, _080F73AC @ =0x0000020a - ldr r5, [sp, 0x10] - adds r5, 0x1 - lsls r5, 24 - lsrs r5, 24 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r10 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F73B0 @ =0x0000020b - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r9 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - movs r1, 0x83 - lsls r1, 2 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x18] - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F73B4 @ =0x0000020d - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r8 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F73B8 @ =0x00000a0a - ldr r5, [sp, 0x10] - adds r5, 0x2 - lsls r5, 24 - lsrs r5, 24 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r10 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F73BC @ =0x00000a0b - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r9 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F73C0 @ =0x00000a0c - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x18] - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F73C4 @ =0x00000a0d - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r8 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F73C8 @ =0x00000a05 - ldr r5, [sp, 0x10] - adds r5, 0x3 - lsls r5, 24 - lsrs r5, 24 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r10 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F73CC @ =0x00000a06 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r9 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F73D0 @ =0x00000a08 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x18] - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F73D4 @ =0x00000a09 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r8 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - movs r1, 0xA0 - lsls r1, 4 - ldr r5, [sp, 0x10] - adds r5, 0x4 - lsls r5, 24 - lsrs r5, 24 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r10 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F73D8 @ =0x00000a01 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r9 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F73DC @ =0x00000a02 - ldr r0, [sp, 0x14] - str r0, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0xC] - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F73E0 @ =0x00000a03 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x18] - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F73E4 @ =0x00000a04 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r8 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - b _080F761E - .align 2, 0 -_080F7390: .4byte gUnknown_203ADFA -_080F7394: .4byte 0x00000201 -_080F7398: .4byte 0x00000202 -_080F739C: .4byte 0x00000203 -_080F73A0: .4byte 0x00000205 -_080F73A4: .4byte 0x00000206 -_080F73A8: .4byte 0x00000209 -_080F73AC: .4byte 0x0000020a -_080F73B0: .4byte 0x0000020b -_080F73B4: .4byte 0x0000020d -_080F73B8: .4byte 0x00000a0a -_080F73BC: .4byte 0x00000a0b -_080F73C0: .4byte 0x00000a0c -_080F73C4: .4byte 0x00000a0d -_080F73C8: .4byte 0x00000a05 -_080F73CC: .4byte 0x00000a06 -_080F73D0: .4byte 0x00000a08 -_080F73D4: .4byte 0x00000a09 -_080F73D8: .4byte 0x00000a01 -_080F73DC: .4byte 0x00000a02 -_080F73E0: .4byte 0x00000a03 -_080F73E4: .4byte 0x00000a04 -_080F73E8: - movs r1, 0x80 - lsls r1, 2 - ldr r2, [sp, 0xC] - subs r2, 0x2 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - ldr r5, [sp, 0x10] - subs r5, 0x1 - lsls r5, 24 - lsrs r5, 24 - movs r4, 0x1 - str r4, [sp] - str r4, [sp, 0x4] - movs r6, 0xF - str r6, [sp, 0x8] - adds r0, r7, 0 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F7630 @ =0x00000201 - ldr r0, [sp, 0xC] - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r9 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F7634 @ =0x00000202 - ldr r2, [sp, 0x14] - str r2, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0xC] - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F7638 @ =0x00000203 - ldr r0, [sp, 0xC] - ldr r2, [sp, 0x14] - adds r0, r2 - mov r8, r0 - lsls r2, r0, 24 - lsrs r2, 24 - str r2, [sp, 0x1C] - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - movs r1, 0x81 - lsls r1, 2 - add r8, r4 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r8 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F763C @ =0x00000205 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r10 - ldr r3, [sp, 0x10] - bl FillBgTilemapBufferRect - ldr r1, _080F7640 @ =0x00000206 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r9 - ldr r3, [sp, 0x10] - bl FillBgTilemapBufferRect - movs r1, 0x82 - lsls r1, 2 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x1C] - ldr r3, [sp, 0x10] - bl FillBgTilemapBufferRect - ldr r1, _080F7644 @ =0x00000209 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r8 - ldr r3, [sp, 0x10] - bl FillBgTilemapBufferRect - ldr r1, _080F7648 @ =0x0000020a - ldr r5, [sp, 0x10] - adds r5, 0x1 - lsls r5, 24 - lsrs r5, 24 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r10 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F764C @ =0x0000020b - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r9 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - movs r1, 0x83 - lsls r1, 2 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x1C] - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F7650 @ =0x0000020d - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r8 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F7654 @ =0x00000a05 - ldr r5, [sp, 0x10] - adds r5, 0x2 - lsls r5, 24 - lsrs r5, 24 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r10 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F7658 @ =0x00000a06 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r9 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F765C @ =0x00000a08 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x1C] - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F7660 @ =0x00000a09 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r8 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F7664 @ =0x00000a0a - ldr r5, [sp, 0x10] - adds r5, 0x3 - lsls r5, 24 - lsrs r5, 24 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r10 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F7668 @ =0x00000a0b - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r9 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F766C @ =0x00000a0c - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x1C] - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F7670 @ =0x00000a0d - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r8 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - movs r1, 0xA0 - lsls r1, 4 - ldr r5, [sp, 0x10] - adds r5, 0x4 - lsls r5, 24 - lsrs r5, 24 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r10 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F7674 @ =0x00000a01 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r9 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F7678 @ =0x00000a02 - ldr r2, [sp, 0x14] - str r2, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0xC] - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F767C @ =0x00000a03 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - ldr r2, [sp, 0x1C] - adds r3, r5, 0 - bl FillBgTilemapBufferRect - ldr r1, _080F7680 @ =0x00000a04 - str r4, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - adds r0, r7, 0 - mov r2, r8 - adds r3, r5, 0 - bl FillBgTilemapBufferRect -_080F761E: - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F7630: .4byte 0x00000201 -_080F7634: .4byte 0x00000202 -_080F7638: .4byte 0x00000203 -_080F763C: .4byte 0x00000205 -_080F7640: .4byte 0x00000206 -_080F7644: .4byte 0x00000209 -_080F7648: .4byte 0x0000020a -_080F764C: .4byte 0x0000020b -_080F7650: .4byte 0x0000020d -_080F7654: .4byte 0x00000a05 -_080F7658: .4byte 0x00000a06 -_080F765C: .4byte 0x00000a08 -_080F7660: .4byte 0x00000a09 -_080F7664: .4byte 0x00000a0a -_080F7668: .4byte 0x00000a0b -_080F766C: .4byte 0x00000a0c -_080F7670: .4byte 0x00000a0d -_080F7674: .4byte 0x00000a01 -_080F7678: .4byte 0x00000a02 -_080F767C: .4byte 0x00000a03 -_080F7680: .4byte 0x00000a04 - thumb_func_end sub_80F7124 - - thumb_func_start sub_80F7684 -sub_80F7684: @ 80F7684 - push {r4,r5,lr} - sub sp, 0xC - adds r4, r1, 0 - adds r5, r2, 0 - ldr r1, [sp, 0x18] - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsls r5, 24 - lsls r3, 24 - lsls r1, 24 - movs r2, 0xFF - lsls r2, 24 - adds r4, r2 - lsrs r4, 24 - adds r5, r2 - lsrs r5, 24 - movs r2, 0x80 - lsls r2, 18 - adds r3, r2 - lsrs r3, 24 - str r3, [sp] - adds r1, r2 - lsrs r1, 24 - str r1, [sp, 0x4] - movs r1, 0xE - str r1, [sp, 0x8] - movs r1, 0 - adds r2, r4, 0 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80F7684 - - thumb_func_start sub_80F76CC -sub_80F76CC: @ 80F76CC - push {r4,r5,lr} - sub sp, 0xC - adds r4, r1, 0 - adds r5, r2, 0 - ldr r1, [sp, 0x18] - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsls r5, 24 - lsls r3, 24 - lsls r1, 24 - movs r2, 0xFE - lsls r2, 24 - adds r4, r2 - lsrs r4, 24 - movs r2, 0xFF - lsls r2, 24 - adds r5, r2 - lsrs r5, 24 - movs r2, 0x80 - lsls r2, 19 - adds r3, r2 - lsrs r3, 24 - str r3, [sp] - movs r2, 0x80 - lsls r2, 18 - adds r1, r2 - lsrs r1, 24 - str r1, [sp, 0x4] - movs r1, 0xE - str r1, [sp, 0x8] - movs r1, 0 - adds r2, r4, 0 - adds r3, r5, 0 - bl FillBgTilemapBufferRect - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80F76CC - - thumb_func_start sub_80F771C -sub_80F771C: @ 80F771C - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x20 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect - cmp r4, 0x1 - bne _080F7746 - movs r0, 0 - bl CopyBgTilemapBufferToVram -_080F7746: - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80F771C - - thumb_func_start sub_80F7750 -sub_80F7750: @ 80F7750 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0x85 - lsls r2, 2 - movs r3, 0xE - bl SetWindowBorderStyle - pop {r0} - bx r0 - thumb_func_end sub_80F7750 - - thumb_func_start sub_80F7768 -sub_80F7768: @ 80F7768 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r0, _080F7790 @ =gUnknown_203ADFA - ldrb r0, [r0] - cmp r0, 0x2 - bne _080F7798 - ldr r2, _080F7794 @ =gTextFlags - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - movs r1, 0x80 - lsls r1, 2 - movs r0, 0 - bl sub_814FF98 - b _080F77A4 - .align 2, 0 -_080F7790: .4byte gUnknown_203ADFA -_080F7794: .4byte gTextFlags -_080F7798: - movs r1, 0x80 - lsls r1, 2 - adds r0, r4, 0 - movs r2, 0xF0 - bl TextWindow_SetBubbleFrame_841F1C8 -_080F77A4: - movs r2, 0x80 - lsls r2, 2 - adds r0, r4, 0 - adds r1, r5, 0 - movs r3, 0xF - bl DrawDialogFrameWithCustomTileAndPalette - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80F7768 - - thumb_func_start sub_80F77B8 -sub_80F77B8: @ 80F77B8 - push {lr} - ldr r0, _080F77C8 @ =gTMCaseMainWindowPalette - movs r1, 0xE0 - movs r2, 0x14 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_080F77C8: .4byte gTMCaseMainWindowPalette - thumb_func_end sub_80F77B8 - - thumb_func_start Menu_LoadStdPalAt -Menu_LoadStdPalAt: @ 80F77CC - push {lr} - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r0, _080F77E0 @ =gTMCaseMainWindowPalette - movs r2, 0x14 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_080F77E0: .4byte gTMCaseMainWindowPalette - thumb_func_end Menu_LoadStdPalAt - - thumb_func_start sub_80F77E4 -sub_80F77E4: @ 80F77E4 - ldr r0, _080F77E8 @ =gTMCaseMainWindowPalette - bx lr - .align 2, 0 -_080F77E8: .4byte gTMCaseMainWindowPalette - thumb_func_end sub_80F77E4 - - thumb_func_start sub_80F77EC -sub_80F77EC: @ 80F77EC - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _080F77F8 - movs r1, 0 -_080F77F8: - ldr r0, _080F7804 @ =gTMCaseMainWindowPalette - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] - pop {r1} - bx r1 - .align 2, 0 -_080F7804: .4byte gTMCaseMainWindowPalette - thumb_func_end sub_80F77EC - - thumb_func_start DisplayItemMessageOnField -DisplayItemMessageOnField: @ 80F7808 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x10 - adds r5, r0, 0 - adds r4, r1, 0 - adds r6, r2, 0 - mov r8, r3 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 24 - lsrs r4, 24 - bl sub_80F6E9C - bl GetTextSpeedSetting - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x80 - lsls r2, 2 - str r4, [sp] - str r0, [sp, 0x4] - str r6, [sp, 0x8] - mov r0, r8 - str r0, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0 - movs r3, 0xF - bl DisplayMessageAndContinueTask - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end DisplayItemMessageOnField - - thumb_func_start sub_80F7858 -sub_80F7858: @ 80F7858 - push {lr} - sub sp, 0xC - ldr r0, _080F787C @ =gUnknown_841F43C - movs r1, 0x85 - lsls r1, 2 - str r1, [sp] - movs r1, 0xE - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl CreateYesNoMenu - add sp, 0xC - pop {r0} - bx r0 - .align 2, 0 -_080F787C: .4byte gUnknown_841F43C - thumb_func_end sub_80F7858 - - thumb_func_start sub_80F7880 -sub_80F7880: @ 80F7880 - push {lr} - sub sp, 0xC - ldr r0, _080F78A4 @ =gUnknown_841F43C - movs r1, 0x85 - lsls r1, 2 - str r1, [sp] - movs r1, 0xE - str r1, [sp, 0x4] - movs r1, 0x1 - str r1, [sp, 0x8] - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl CreateYesNoMenu - add sp, 0xC - pop {r0} - bx r0 - .align 2, 0 -_080F78A4: .4byte gUnknown_841F43C - thumb_func_end sub_80F7880 - - thumb_func_start GetTextSpeedSetting -GetTextSpeedSetting: @ 80F78A8 - push {lr} - ldr r3, _080F78D8 @ =gSaveBlock2Ptr - ldr r2, [r3] - ldrb r1, [r2, 0x14] - lsls r0, r1, 29 - lsrs r0, 29 - cmp r0, 0x2 - bls _080F78C4 - movs r0, 0x8 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x14] -_080F78C4: - ldr r1, _080F78DC @ =gUnknown_841F428 - ldr r0, [r3] - ldrb r0, [r0, 0x14] - lsls r0, 29 - lsrs r0, 29 - adds r0, r1 - ldrb r0, [r0] - pop {r1} - bx r1 - .align 2, 0 -_080F78D8: .4byte gSaveBlock2Ptr -_080F78DC: .4byte gUnknown_841F428 - thumb_func_end GetTextSpeedSetting - - thumb_func_start sub_80F78E0 -sub_80F78E0: @ 80F78E0 - push {r4,lr} - sub sp, 0x20 - lsls r0, 24 - lsrs r1, r0, 24 - ldr r4, _080F7934 @ =gUnknown_203ABE0 - ldrb r0, [r4] - cmp r0, 0xFF - bne _080F792A - movs r0, 0x7 - str r0, [sp] - lsls r0, r1, 25 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r0, 0xF - str r0, [sp, 0x8] - ldr r0, _080F7938 @ =0x0000013d - str r0, [sp, 0xC] - add r0, sp, 0x10 - movs r1, 0 - movs r2, 0x16 - movs r3, 0x1 - bl SetWindowTemplateFields - ldr r0, [sp, 0x10] - ldr r1, [sp, 0x14] - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - add r0, sp, 0x18 - bl AddWindow - strb r0, [r4] - ldrb r0, [r4] - bl PutWindowTilemap -_080F792A: - ldrb r0, [r4] - add sp, 0x20 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080F7934: .4byte gUnknown_203ABE0 -_080F7938: .4byte 0x0000013d - thumb_func_end sub_80F78E0 - - thumb_func_start GetStartMenuWindowId -GetStartMenuWindowId: @ 80F793C - ldr r0, _080F7944 @ =gUnknown_203ABE0 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080F7944: .4byte gUnknown_203ABE0 - thumb_func_end GetStartMenuWindowId - - thumb_func_start remove_start_menu_window_maybe -remove_start_menu_window_maybe: @ 80F7948 - push {r4,lr} - ldr r4, _080F7960 @ =gUnknown_203ABE0 - ldrb r0, [r4] - cmp r0, 0xFF - beq _080F795A - bl RemoveWindow - movs r0, 0xFF - strb r0, [r4] -_080F795A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F7960: .4byte gUnknown_203ABE0 - thumb_func_end remove_start_menu_window_maybe - - thumb_func_start sub_80F7964 -sub_80F7964: @ 80F7964 - movs r0, 0x80 - lsls r0, 2 - bx lr - thumb_func_end sub_80F7964 - - thumb_func_start sub_80F796C -sub_80F796C: @ 80F796C - movs r0, 0x85 - lsls r0, 2 - bx lr - thumb_func_end sub_80F796C - - thumb_func_start sub_80F7974 -sub_80F7974: @ 80F7974 - push {r4,lr} - adds r4, r0, 0 - bl sub_8112EB4 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x80 - lsls r1, 2 - movs r2, 0xF0 - bl sub_814FE6C - adds r0, r4, 0 - movs r1, 0x2 - bl sub_8113018 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80F7974 - - thumb_func_start sub_80F7998 -sub_80F7998: @ 80F7998 - push {lr} - movs r0, 0x2 - bl sub_8112EDC - pop {r0} - bx r0 - thumb_func_end sub_80F7998 - - thumb_func_start sub_80F79A4 -sub_80F79A4: @ 80F79A4 - push {lr} - bl sub_80F77B8 - movs r1, 0x80 - lsls r1, 2 - movs r0, 0 - movs r2, 0xF0 - bl sub_814FEEC - movs r1, 0x85 - lsls r1, 2 - movs r0, 0 - movs r2, 0xE0 - bl TextWindow_SetUserSelectedFrame - pop {r0} - bx r0 - thumb_func_end sub_80F79A4 - - thumb_func_start SetDefaultFontsPointer -SetDefaultFontsPointer: @ 80F79C8 - push {lr} - ldr r0, _080F79D4 @ =gUnknown_841F444 - bl SetFontsPointer - pop {r0} - bx r0 - .align 2, 0 -_080F79D4: .4byte gUnknown_841F444 - thumb_func_end SetDefaultFontsPointer - - thumb_func_start GetFontAttribute -GetFontAttribute: @ 80F79D8 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - cmp r1, 0x7 - bhi _080F7AB6 - lsls r0, r1, 2 - ldr r1, _080F79F4 @ =_080F79F8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F79F4: .4byte _080F79F8 - .align 2, 0 -_080F79F8: - .4byte _080F7A18 - .4byte _080F7A2C - .4byte _080F7A40 - .4byte _080F7A54 - .4byte _080F7A68 - .4byte _080F7A7C - .4byte _080F7A90 - .4byte _080F7AA8 -_080F7A18: - ldr r1, _080F7A28 @ =gUnknown_841F444 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x4] - b _080F7AB6 - .align 2, 0 -_080F7A28: .4byte gUnknown_841F444 -_080F7A2C: - ldr r1, _080F7A3C @ =gUnknown_841F444 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x5] - b _080F7AB6 - .align 2, 0 -_080F7A3C: .4byte gUnknown_841F444 -_080F7A40: - ldr r1, _080F7A50 @ =gUnknown_841F444 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x6] - b _080F7AB6 - .align 2, 0 -_080F7A50: .4byte gUnknown_841F444 -_080F7A54: - ldr r1, _080F7A64 @ =gUnknown_841F444 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x7] - b _080F7AB6 - .align 2, 0 -_080F7A64: .4byte gUnknown_841F444 -_080F7A68: - ldr r0, _080F7A78 @ =gUnknown_841F444 - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x8] - b _080F7A9C - .align 2, 0 -_080F7A78: .4byte gUnknown_841F444 -_080F7A7C: - ldr r0, _080F7A8C @ =gUnknown_841F444 - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x8] - b _080F7AB4 - .align 2, 0 -_080F7A8C: .4byte gUnknown_841F444 -_080F7A90: - ldr r0, _080F7AA4 @ =gUnknown_841F444 - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x9] -_080F7A9C: - lsls r0, 28 - lsrs r0, 28 - b _080F7AB6 - .align 2, 0 -_080F7AA4: .4byte gUnknown_841F444 -_080F7AA8: - ldr r0, _080F7ABC @ =gUnknown_841F444 - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x9] -_080F7AB4: - lsrs r0, 4 -_080F7AB6: - pop {r1} - bx r1 - .align 2, 0 -_080F7ABC: .4byte gUnknown_841F444 - thumb_func_end GetFontAttribute - - thumb_func_start GetMenuCursorDimensionByFont -GetMenuCursorDimensionByFont: @ 80F7AC0 - lsls r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _080F7AD4 @ =gUnknown_841F4A4 - lsrs r0, 23 - adds r1, r0 - adds r1, r2 - ldrb r0, [r1] - bx lr - .align 2, 0 -_080F7AD4: .4byte gUnknown_841F4A4 - thumb_func_end GetMenuCursorDimensionByFont - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/overworld.s b/asm/overworld.s index 62add03d2..aacb22510 100644 --- a/asm/overworld.s +++ b/asm/overworld.s @@ -193,8 +193,8 @@ _08054D68: .4byte 0x00000808 _08054D6C: .4byte 0x0000404d thumb_func_end Overworld_ResetStateAfterTeleport - thumb_func_start sub_8054D70 -sub_8054D70: @ 8054D70 + thumb_func_start Overworld_ResetStateAfterDigEscRope +Overworld_ResetStateAfterDigEscRope: @ 8054D70 push {lr} bl ResetInitialPlayerAvatarState movs r0, 0x83 @@ -230,7 +230,7 @@ _08054DC8: .4byte 0x00000805 _08054DCC: .4byte 0x00000806 _08054DD0: .4byte 0x00000808 _08054DD4: .4byte 0x0000404d - thumb_func_end sub_8054D70 + thumb_func_end Overworld_ResetStateAfterDigEscRope thumb_func_start sub_8054DD8 sub_8054DD8: @ 8054DD8 @@ -1257,7 +1257,7 @@ sub_805550C: @ 805550C ldrh r0, [r0, 0x4] cmp r0, 0x1 beq _08055590 - bl player_get_direction_lower_nybble + bl GetPlayerFacingDirection lsls r0, 24 lsrs r0, 24 movs r1, 0x1 @@ -1858,7 +1858,7 @@ _08055A04: .4byte gUnknown_2031DD4 thumb_func_start sub_8055A08 sub_8055A08: @ 8055A08 push {r4,lr} - bl player_get_direction_lower_nybble + bl GetPlayerFacingDirection ldr r4, _08055A24 @ =gUnknown_2031DD4 strb r0, [r4, 0x1] movs r0, 0x2 @@ -2378,8 +2378,8 @@ sub_8055DB8: @ 8055DB8 bx r0 thumb_func_end sub_8055DB8 - thumb_func_start sub_8055DC4 -sub_8055DC4: @ 8055DC4 + thumb_func_start Overworld_PlaySpecialMapMusic +Overworld_PlaySpecialMapMusic: @ 8055DC4 push {r4,r5,lr} sub sp, 0x4 ldr r0, _08055DD8 @ =gUnknown_2031DD8 @@ -2462,7 +2462,7 @@ _08055E6C: bx r0 .align 2, 0 _08055E74: .4byte 0x00000131 - thumb_func_end sub_8055DC4 + thumb_func_end Overworld_PlaySpecialMapMusic thumb_func_start Overworld_SetSavedMusic Overworld_SetSavedMusic: @ 8055E78 @@ -3199,7 +3199,7 @@ _080563EC: .4byte gUnknown_300501C thumb_func_start CleanupOverworldWindowsAndTilemaps CleanupOverworldWindowsAndTilemaps: @ 80563F0 push {lr} - bl sub_80F6C8C + bl FreeAllOverworldWindowBuffers ldr r0, _08056414 @ =gUnknown_300501C ldr r0, [r0] bl Free @@ -3393,7 +3393,7 @@ sub_8056578: @ 8056578 bl BuildOamBuffer bl UpdatePaletteFade bl sub_806FFBC - bl do_scheduled_bg_tilemap_copies_to_vram + bl DoScheduledBgTilemapCopiesToVram pop {r0} bx r0 thumb_func_end sub_8056578 @@ -3833,8 +3833,8 @@ _0805692C: _08056934: .4byte gMapHeader thumb_func_end sub_8056918 - thumb_func_start sub_8056938 -sub_8056938: @ 8056938 + thumb_func_start CB2_ContinueSavedGame +CB2_ContinueSavedGame: @ 8056938 push {lr} bl sub_80569BC bl StopMapMusic @@ -3880,7 +3880,7 @@ _080569AC: _080569B0: .4byte gFieldCallback _080569B4: .4byte sub_8056918 _080569B8: .4byte sub_8056534 - thumb_func_end sub_8056938 + thumb_func_end CB2_ContinueSavedGame thumb_func_start sub_80569BC sub_80569BC: @ 80569BC @@ -4036,7 +4036,7 @@ _08056B04: .align 2, 0 _08056B10: .4byte gMapHeader _08056B14: - bl free_temp_tile_data_buffers_if_possible + bl FreeTempTileDataBuffersIfPossible lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -4178,7 +4178,7 @@ _08056C40: .align 2, 0 _08056C4C: .4byte gMapHeader _08056C50: - bl free_temp_tile_data_buffers_if_possible + bl FreeTempTileDataBuffersIfPossible lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -4367,7 +4367,7 @@ _08056DE0: .align 2, 0 _08056DEC: .4byte gMapHeader _08056DF0: - bl free_temp_tile_data_buffers_if_possible + bl FreeTempTileDataBuffersIfPossible lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -4523,8 +4523,8 @@ sub_8056F08: @ 8056F08 thumb_func_start sub_8056F1C sub_8056F1C: @ 8056F1C push {r4,lr} - bl clear_scheduled_bg_copies_to_vram - bl reset_temp_tile_data_buffers + bl ClearScheduledBgCopiesToVram + bl ResetTempTileDataBuffers movs r0, 0x4C movs r1, 0 bl SetGpuReg @@ -4563,11 +4563,11 @@ sub_8056F1C: @ 8056F1C movs r0, 0x52 bl SetGpuReg movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram movs r0, 0x3 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r1, _08057020 @ =0x00007060 movs r0, 0 bl SetGpuReg @@ -5078,7 +5078,7 @@ _080573D8: .align 2, 0 _080573E4: .4byte gMapHeader _080573E8: - bl free_temp_tile_data_buffers_if_possible + bl FreeTempTileDataBuffersIfPossible lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -5177,7 +5177,7 @@ _080574B8: bl BuildOamBuffer bl UpdatePaletteFade bl sub_806FFBC - bl do_scheduled_bg_tilemap_copies_to_vram + bl DoScheduledBgTilemapCopiesToVram cmp r4, 0 beq _080574E0 bl SetFieldVBlankCallback @@ -5427,7 +5427,7 @@ _080576E0: .align 2, 0 _080576EC: .4byte gMapHeader _080576F0: - bl free_temp_tile_data_buffers_if_possible + bl FreeTempTileDataBuffersIfPossible lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 diff --git a/asm/party_menu.s b/asm/party_menu.s index 9042219e3..58f7529e2 100644 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -189,7 +189,7 @@ sub_811EBA0: @ 811EBA0 bl RunTasks bl AnimateSprites bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram + bl DoScheduledBgTilemapCopiesToVram bl UpdatePaletteFade pop {r0} bx r0 @@ -278,7 +278,7 @@ _0811EC24: _0811EC80: bl SetVBlankHBlankCallbacksToNull bl ClearVramOamPltt - bl clear_scheduled_bg_copies_to_vram + bl ClearScheduledBgCopiesToVram b _0811EDFC _0811EC8E: bl ScanlineEffect_Stop @@ -587,7 +587,7 @@ sub_811EECC: @ 811EECC movs r0, 0x1 bl SetBgTilemapBuffer movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram movs r1, 0x82 lsls r1, 5 movs r0, 0 @@ -649,7 +649,7 @@ _0811EF8C: ldr r4, _0811EFAC @ =gUnknown_203B0B8 ldr r0, _0811EFB0 @ =gFile_graphics_interface_party_menu_misc_sheet mov r1, sp - bl malloc_and_decompress + bl MallocAndDecompress adds r1, r0, 0 str r1, [r4] ldr r2, [sp] @@ -883,7 +883,7 @@ sub_811F124: @ 811F124 ldrb r0, [r4, 0x8] bl PutWindowTilemap movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram b _0811F22A .align 2, 0 _0811F16C: .4byte gUnknown_203B0A0 @@ -973,7 +973,7 @@ _0811F218: ldrb r0, [r0, 0x8] bl PutWindowTilemap movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram _0811F22A: pop {r4,r5} pop {r0} @@ -1878,7 +1878,7 @@ _0811F926: mov r1, r8 bl sub_81227B8 movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram _0811F934: add sp, 0x8 pop {r3} @@ -2000,7 +2000,7 @@ sub_811F9DC: @ 811F9DC movs r3, 0x12 bl CopyToBgTilemapBufferRect_ChangePalette movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram add sp, 0xC pop {r4-r6} pop {r0} @@ -3392,7 +3392,7 @@ _08120468: adds r1, r6, 0 bl sub_81202F8 movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram pop {r4-r6} pop {r0} bx r0 @@ -3433,7 +3433,7 @@ sub_81204AC: @ 81204AC adds r1, r5, 0 bl sub_81202F8 movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram pop {r4-r6} pop {r0} bx r0 @@ -3467,7 +3467,7 @@ sub_812050C: @ 812050C adds r1, r5, 0 bl sub_81202F8 movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram pop {r4,r5} pop {r0} bx r0 @@ -3514,7 +3514,7 @@ sub_8120558: @ 8120558 adds r1, r6, 0 bl sub_81202F8 movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram pop {r4-r6} pop {r0} bx r0 @@ -3543,7 +3543,7 @@ sub_81205C8: @ 81205C8 bne _081205F2 adds r0, r6, 0 adds r1, r4, 0 - bl sub_8097D38 + bl GiveMailToMon lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF @@ -4121,7 +4121,7 @@ _08120A24: movs r1, 0 bl sub_81202F8 movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r1, _08120A50 @ =gTasks lsls r0, r4, 2 adds r0, r4 @@ -4149,7 +4149,7 @@ sub_8120A58: @ 8120A58 movs r1, 0x1 bl sub_81202F8 movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r1, _08120A88 @ =gTasks lsls r0, r4, 2 adds r0, r4 @@ -5180,7 +5180,7 @@ _08121224: movs r1, 0x2 bl CopyWindowToVram movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram _08121238: add sp, 0x14 pop {r4-r6} @@ -6513,7 +6513,7 @@ sub_8121CE4: @ 8121CE4 movs r0, 0xFF strb r0, [r4] movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram _08121D04: pop {r4} pop {r0} @@ -6627,7 +6627,7 @@ _08121DB0: movs r3, 0 bl AddTextPrinterParameterized movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram _08121DE8: add sp, 0xC pop {r4-r6} @@ -6856,7 +6856,7 @@ _08121F7A: movs r3, 0x2 bl sub_810F774 movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r0, [r4] _08121FA2: ldrb r0, [r0, 0xC] @@ -7026,7 +7026,7 @@ sub_81220D4: @ 81220D4 adds r0, r4, 0 movs r1, 0x4F movs r2, 0xE0 - bl TextWindow_SetBubbleFrame_841F1C8 + bl TextWindow_LoadResourcesStdFrame0 adds r0, r4, 0 movs r1, 0x1 movs r2, 0x4F @@ -7058,7 +7058,7 @@ sub_8122110: @ 8122110 adds r0, r4, 0 bl RemoveWindow movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram pop {r4} pop {r0} bx r0 @@ -7084,7 +7084,7 @@ sub_8122138: @ 8122138 movs r0, 0xFF strb r0, [r4, 0xE] movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram b _081221C0 .align 2, 0 _08122168: .4byte gUnknown_203B09C @@ -7125,7 +7125,7 @@ _0812217A: ldrb r0, [r4, 0xE] bl PutWindowTilemap movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram _081221C0: add sp, 0x14 pop {r4,r5} @@ -8013,11 +8013,11 @@ _0812285C: .4byte 0x0000fffc sub_8122860: @ 8122860 push {lr} ldr r0, _08122878 @ =gUnknown_845A474 - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet ldr r0, _0812287C @ =gUnknown_845A4EC - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet ldr r0, _08122880 @ =gUnknown_845A47C - bl LoadCompressedObjectPalette + bl LoadCompressedSpritePalette pop {r0} bx r0 .align 2, 0 @@ -8164,9 +8164,9 @@ _0812297C: .4byte gSprites sub_8122980: @ 8122980 push {lr} ldr r0, _08122994 @ =gUnknown_845A574 - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet ldr r0, _08122998 @ =gUnknown_845A57C - bl LoadCompressedObjectPalette + bl LoadCompressedSpritePalette pop {r0} bx r0 .align 2, 0 @@ -8914,7 +8914,7 @@ _08122F56: ldrb r0, [r6, 0x6] str r0, [sp, 0x4] movs r0, 0 - bl sub_80F6B94 + bl CopyRectIntoAltRect ldr r1, [r5] ldrb r2, [r6, 0x8] ldrb r3, [r6, 0xA] @@ -8923,7 +8923,7 @@ _08122F56: ldrb r0, [r6, 0xE] str r0, [sp, 0x4] movs r0, 0 - bl sub_80F6B94 + bl CopyRectIntoAltRect add r0, sp, 0x8 ldrb r0, [r0] bl ClearWindowTilemap @@ -9276,7 +9276,7 @@ _08123228: bl sub_8123068 _08123256: movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram add sp, 0x8 pop {r4-r6} pop {r0} @@ -9369,7 +9369,7 @@ sub_8123270: @ 8123270 ldrb r0, [r6, 0x6] str r0, [sp, 0x4] movs r0, 0 - bl sub_80F6B94 + bl CopyRectIntoAltRect ldr r0, _08123380 @ =gUnknown_203B0CC ldr r1, [r0] ldrb r2, [r6, 0x8] @@ -9379,7 +9379,7 @@ sub_8123270: @ 8123270 ldrb r0, [r6, 0xE] str r0, [sp, 0x4] movs r0, 0 - bl sub_80F6B94 + bl CopyRectIntoAltRect movs r0, 0x9 ldrsb r0, [r4, r0] ldr r1, [r5] @@ -9454,7 +9454,7 @@ sub_8123388: @ 8123388 ldrb r0, [r0, 0x8] bl PutWindowTilemap movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram adds r0, r6, 0 bl sub_81235E8 b _08123418 @@ -10537,7 +10537,7 @@ _08123CC8: bl sub_81202F8 _08123CCE: movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r0, _08123CEC @ =gTasks lsls r1, r7, 2 adds r1, r7 @@ -10776,7 +10776,7 @@ _08123EB2: muls r0, r1 ldr r1, _08123EE8 @ =gPlayerParty adds r0, r1 - bl sub_809803C + bl TakeMailFromMon2 lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF @@ -13293,7 +13293,7 @@ _08125342: movs r1, 0x1 bl sub_81202F8 movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r1, _0812537C @ =gTasks lsls r0, r7, 2 adds r0, r7 @@ -13501,7 +13501,7 @@ _0812551C: movs r1, 0x1 bl sub_81202F8 movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r1, _08125550 @ =gTasks mov r2, r9 lsls r0, r2, 2 @@ -13548,7 +13548,7 @@ sub_8125554: @ 8125554 movs r1, 0 bl sub_81202F8 movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram bl sub_803539C ldr r1, _081255B4 @ =gTasks lsls r0, r5, 2 @@ -13686,7 +13686,7 @@ _08125680: movs r3, 0x2 bl ProgramAndPlaceMenuCursorOnWindow movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram add sp, 0x10 pop {r3-r5} mov r8, r3 @@ -13897,7 +13897,7 @@ sub_812580C: @ 812580C movs r1, 0x1 bl sub_81202F8 movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r1, _08125874 @ =gTasks lsls r0, r5, 2 adds r0, r5 @@ -13984,7 +13984,7 @@ sub_8125898: @ 8125898 movs r1, 0x1 bl sub_81202F8 movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r1, _08125950 @ =gTasks mov r2, r8 lsls r0, r2, 2 @@ -14086,7 +14086,7 @@ _081259F6: movs r1, 0x1 bl sub_81202F8 movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r1, _08125A34 @ =gTasks lsls r0, r6, 2 adds r0, r6 @@ -14225,7 +14225,7 @@ sub_8125AF0: @ 8125AF0 movs r1, 0x1 bl sub_81202F8 movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram pop {r4} pop {r0} bx r0 @@ -14427,7 +14427,7 @@ _08125C84: movs r1, 0x1 bl sub_81202F8 movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r1, _08125CEC @ =gTasks lsls r0, r7, 2 adds r0, r7 @@ -14956,7 +14956,7 @@ sub_81260D8: @ 81260D8 movs r1, 0x1 bl sub_81202F8 movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r1, _08126134 @ =gTasks lsls r0, r5, 2 adds r0, r5 @@ -15197,7 +15197,7 @@ _081262F6: movs r1, 0x1 bl sub_81202F8 movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r1, _0812632C @ =gTasks lsls r0, r6, 2 adds r0, r6 @@ -15298,7 +15298,7 @@ sub_8126350: @ 8126350 movs r1, 0x1 bl sub_81202F8 movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r1, _08126438 @ =gTasks mov r2, r8 lsls r0, r2, 2 @@ -15381,7 +15381,7 @@ _0812647C: movs r1, 0x1 bl sub_811F818 movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram pop {r4-r7} pop {r0} bx r0 @@ -15502,7 +15502,7 @@ sub_8126570: @ 8126570 movs r1, 0x2 bl CopyWindowToVram movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram add sp, 0x8 pop {r4,r5} pop {r0} @@ -15533,7 +15533,7 @@ sub_81265BC: @ 81265BC movs r1, 0x2 bl CopyWindowToVram movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram add sp, 0x4 pop {r4} pop {r0} @@ -15765,7 +15765,7 @@ sub_8126770: @ 8126770 movs r1, 0x1 bl sub_81202F8 movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldrh r0, [r6] mov r1, r8 strh r0, [r1, 0xE] @@ -15829,7 +15829,7 @@ sub_8126804: @ 8126804 movs r1, 0x1 bl sub_81202F8 movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram mov r0, r8 strh r5, [r0, 0xE] ldr r1, _0812688C @ =gTasks @@ -16089,7 +16089,7 @@ _08126A4E: movs r1, 0x1 bl sub_81202F8 movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram b _08126ABE .align 2, 0 _08126A80: .4byte gUnknown_203B09C @@ -16170,7 +16170,7 @@ sub_8126AFC: @ 8126AFC movs r1, 0 bl sub_81202F8 movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r1, _08126B58 @ =gTasks lsls r0, r5, 2 adds r0, r5 @@ -16221,7 +16221,7 @@ sub_8126B60: @ 8126B60 movs r1, 0x1 bl sub_81202F8 movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r1, _08126BC4 @ =gTasks lsls r0, r4, 2 adds r0, r4 @@ -17205,7 +17205,7 @@ sub_812734C: @ 812734C movs r1, 0x1 bl sub_81202F8 movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r1, _0812737C @ =gTasks lsls r0, r4, 2 adds r0, r4 @@ -17351,7 +17351,7 @@ _0812746C: bl sub_81202F8 _08127482: movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r0, _081274A0 @ =gTasks lsls r1, r6, 2 adds r1, r6 diff --git a/asm/play_time.s b/asm/play_time.s deleted file mode 100644 index 41d0f6239..000000000 --- a/asm/play_time.s +++ /dev/null @@ -1,137 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start PlayTimeCounter_Reset -PlayTimeCounter_Reset: @ 8054814 - ldr r1, _08054830 @ =gUnknown_3000E7C - movs r0, 0 - strb r0, [r1] - ldr r2, _08054834 @ =gSaveBlock2Ptr - ldr r3, [r2] - movs r1, 0 - movs r0, 0 - strh r0, [r3, 0xE] - strb r1, [r3, 0x10] - ldr r0, [r2] - strb r1, [r0, 0x11] - ldr r0, [r2] - strb r1, [r0, 0x12] - bx lr - .align 2, 0 -_08054830: .4byte gUnknown_3000E7C -_08054834: .4byte gSaveBlock2Ptr - thumb_func_end PlayTimeCounter_Reset - - thumb_func_start PlayTimeCounter_Start -PlayTimeCounter_Start: @ 8054838 - push {lr} - ldr r1, _08054854 @ =gUnknown_3000E7C - movs r0, 0x1 - strb r0, [r1] - ldr r0, _08054858 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrh r1, [r0, 0xE] - ldr r0, _0805485C @ =0x000003e7 - cmp r1, r0 - bls _08054850 - bl PlayTimeCounter_SetToMax -_08054850: - pop {r0} - bx r0 - .align 2, 0 -_08054854: .4byte gUnknown_3000E7C -_08054858: .4byte gSaveBlock2Ptr -_0805485C: .4byte 0x000003e7 - thumb_func_end PlayTimeCounter_Start - - thumb_func_start sub_8054860 -sub_8054860: @ 8054860 - ldr r1, _08054868 @ =gUnknown_3000E7C - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_08054868: .4byte gUnknown_3000E7C - thumb_func_end sub_8054860 - - thumb_func_start PlayTimeCounter_Update -PlayTimeCounter_Update: @ 805486C - push {lr} - ldr r0, _080548C8 @ =gUnknown_3000E7C - ldrb r0, [r0] - cmp r0, 0x1 - bne _080548C4 - ldr r2, _080548CC @ =gSaveBlock2Ptr - ldr r0, [r2] - ldrb r1, [r0, 0x12] - adds r1, 0x1 - movs r3, 0 - strb r1, [r0, 0x12] - ldr r1, [r2] - ldrb r0, [r1, 0x12] - cmp r0, 0x3B - bls _080548C4 - strb r3, [r1, 0x12] - ldr r0, [r2] - ldrb r1, [r0, 0x11] - adds r1, 0x1 - strb r1, [r0, 0x11] - ldr r1, [r2] - ldrb r0, [r1, 0x11] - cmp r0, 0x3B - bls _080548C4 - strb r3, [r1, 0x11] - ldr r0, [r2] - ldrb r1, [r0, 0x10] - adds r1, 0x1 - strb r1, [r0, 0x10] - ldr r1, [r2] - ldrb r0, [r1, 0x10] - cmp r0, 0x3B - bls _080548C4 - strb r3, [r1, 0x10] - ldr r0, [r2] - ldrh r1, [r0, 0xE] - adds r1, 0x1 - strh r1, [r0, 0xE] - lsls r1, 16 - ldr r0, _080548D0 @ =0x03e70000 - cmp r1, r0 - bls _080548C4 - bl PlayTimeCounter_SetToMax -_080548C4: - pop {r0} - bx r0 - .align 2, 0 -_080548C8: .4byte gUnknown_3000E7C -_080548CC: .4byte gSaveBlock2Ptr -_080548D0: .4byte 0x03e70000 - thumb_func_end PlayTimeCounter_Update - - thumb_func_start PlayTimeCounter_SetToMax -PlayTimeCounter_SetToMax: @ 80548D4 - ldr r1, _080548F0 @ =gUnknown_3000E7C - movs r0, 0x2 - strb r0, [r1] - ldr r2, _080548F4 @ =gSaveBlock2Ptr - ldr r3, [r2] - ldr r0, _080548F8 @ =0x000003e7 - strh r0, [r3, 0xE] - movs r1, 0x3B - strb r1, [r3, 0x10] - ldr r0, [r2] - strb r1, [r0, 0x11] - ldr r0, [r2] - strb r1, [r0, 0x12] - bx lr - .align 2, 0 -_080548F0: .4byte gUnknown_3000E7C -_080548F4: .4byte gSaveBlock2Ptr -_080548F8: .4byte 0x000003e7 - thumb_func_end PlayTimeCounter_SetToMax - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/player_pc.s b/asm/player_pc.s index f9d781513..4d917504a 100644 --- a/asm/player_pc.s +++ b/asm/player_pc.s @@ -149,7 +149,7 @@ _080EB77E: strh r0, [r7, 0x14] ldrb r0, [r7, 0x14] movs r1, 0 - bl sub_80F7750 + bl SetStdWindowBorderStyle movs r0, 0x2 movs r1, 0 bl GetMenuCursorDimensionByFont @@ -189,7 +189,7 @@ _080EB77E: movs r3, 0x2 bl ProgramAndPlaceMenuCursorOnWindow movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r1, _080EB814 @ =gTasks mov r2, r8 lsls r0, r2, 2 @@ -243,7 +243,7 @@ sub_80EB81C: @ 80EB81C ldrb r0, [r4, 0x14] bl RemoveWindow movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 @@ -262,7 +262,7 @@ _080EB878: ldrb r0, [r4, 0x14] bl RemoveWindow movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram adds r2, r7, 0 subs r2, 0x8 adds r2, r6, r2 @@ -464,7 +464,7 @@ _080EBA1E: lsls r0, 24 lsrs r0, 24 movs r1, 0 - bl sub_80F7750 + bl SetStdWindowBorderStyle movs r0, 0x2 movs r1, 0 bl GetMenuCursorDimensionByFont @@ -490,7 +490,7 @@ _080EBA1E: movs r3, 0x2 bl ProgramAndPlaceMenuCursorOnWindow movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r1, _080EBA88 @ =gUnknown_84021DC lsls r0, r7, 2 adds r0, r1 @@ -1084,7 +1084,7 @@ sub_80EBEB0: @ 80EBEB0 mov r2, r8 bl AddTextPrinterParameterized movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r4, _080EBF38 @ =gUnknown_203AAC4 adds r0, r4, 0 bl sub_810EC98 @@ -1176,7 +1176,7 @@ _080EBFB6: mov r2, r8 bl DestroyListMenu movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram mov r1, r8 ldrb r0, [r1, 0xA] bl RemoveScrollIndicatorArrowPair @@ -1290,7 +1290,7 @@ sub_80EC094: @ 80EC094 movs r2, 0 bl DestroyListMenu movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram bl sub_810EDB0 adds r0, r5, 0 bl sub_80EB8BC @@ -1343,7 +1343,7 @@ sub_80EC0D8: @ 80EC0D8 movs r3, 0x2 bl ProgramAndPlaceMenuCursorOnWindow movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r1, _080EC154 @ =gTasks lsls r0, r5, 2 adds r0, r5 @@ -1578,7 +1578,7 @@ sub_80EC2FC: @ 80EC2FC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - bl sub_80F7858 + bl DisplayYesNoMenuDefaultYes ldr r1, _080EC31C @ =gTasks lsls r0, r4, 2 adds r0, r4 @@ -1875,7 +1875,7 @@ sub_80EC53C: @ 80EC53C adds r0, r4, 0 bl sub_80EBEB0 movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r1, _080EC56C @ =gTasks lsls r0, r4, 2 adds r0, r4 @@ -1900,7 +1900,7 @@ sub_80EC574: @ 80EC574 movs r0, 0x2 bl sub_810EBE0 movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r1, _080EC59C @ =gTasks lsls r0, r4, 2 adds r0, r4 diff --git a/asm/pokeball.s b/asm/pokeball.s index eace88832..85bfcb620 100644 --- a/asm/pokeball.s +++ b/asm/pokeball.s @@ -2029,9 +2029,9 @@ CreatePokeballSpriteToReleaseMon: @ 804B908 lsls r0, 24 lsrs r7, r0, 24 ldr r0, _0804B9D4 @ =gUnknown_826056C - bl sub_800F034 + bl LoadCompressedSpriteSheetUsingHeap ldr r0, _0804B9D8 @ =gUnknown_82605CC - bl sub_800F078 + bl LoadCompressedSpritePaletteUsingHeap ldr r0, _0804B9DC @ =gUnknown_82606F4 mov r1, r9 mov r2, r10 @@ -2362,9 +2362,9 @@ sub_804BB98: @ 804BB98 lsrs r0, 24 mov r9, r0 ldr r0, _0804BC3C @ =gUnknown_826056C - bl sub_800F034 + bl LoadCompressedSpriteSheetUsingHeap ldr r0, _0804BC40 @ =gUnknown_82605CC - bl sub_800F078 + bl LoadCompressedSpritePaletteUsingHeap ldr r0, _0804BC44 @ =gUnknown_82606F4 adds r1, r6, 0 mov r2, r8 @@ -2790,10 +2790,10 @@ LoadBallGfx: @ 804BEF4 cmp r0, r1 bne _0804BF1C adds r0, r5, 0 - bl sub_800F034 + bl LoadCompressedSpriteSheetUsingHeap ldr r0, _0804BF58 @ =gUnknown_82605CC adds r0, r6, r0 - bl sub_800F078 + bl LoadCompressedSpritePaletteUsingHeap _0804BF1C: cmp r4, 0x6 beq _0804BF48 diff --git a/asm/pokedex_area_markers.s b/asm/pokedex_area_markers.s index 6062b95ee..d6ea7f251 100644 --- a/asm/pokedex_area_markers.s +++ b/asm/pokedex_area_markers.s @@ -66,7 +66,7 @@ sub_8134230: @ 8134230 ands r2, r5 orrs r2, r1 str r2, [r0, 0x4] - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet ldr r0, _081343D0 @ =gUnknown_846341C mov r3, r8 lsls r3, 4 diff --git a/asm/pokemon_icon.s b/asm/pokemon_icon.s index c269ce8a4..a6a83033a 100644 --- a/asm/pokemon_icon.s +++ b/asm/pokemon_icon.s @@ -166,7 +166,7 @@ mon_icon_convert_unown_species_id: @ 8096F5C cmp r2, 0xC9 bne _08096F86 adds r0, r1, 0 - bl mon_icon_personality_to_unown_id + bl GetUnownLetterByPersonality lsls r0, 16 lsrs r0, 16 cmp r0, 0 @@ -195,8 +195,8 @@ _08096F92: bx r1 thumb_func_end mon_icon_convert_unown_species_id - thumb_func_start mon_icon_personality_to_unown_id -mon_icon_personality_to_unown_id: @ 8096F98 + thumb_func_start GetUnownLetterByPersonality +GetUnownLetterByPersonality: @ 8096F98 push {lr} adds r2, r0, 0 cmp r2, 0 @@ -228,7 +228,7 @@ _08096FCE: _08096FD0: pop {r1} bx r1 - thumb_func_end mon_icon_personality_to_unown_id + thumb_func_end GetUnownLetterByPersonality thumb_func_start sub_8096FD4 sub_8096FD4: @ 8096FD4 diff --git a/asm/pokemon_jump.s b/asm/pokemon_jump.s index c00c08f20..d94a5c8db 100644 --- a/asm/pokemon_jump.s +++ b/asm/pokemon_jump.s @@ -170,7 +170,7 @@ sub_81476E0: @ 81476E0 lsls r0, 3 ldr r1, _081477B0 @ =gUnknown_846B42C adds r0, r1 - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet movs r2, 0x8 ldrsh r0, [r4, r2] lsls r0, 3 diff --git a/asm/pokemon_jump_2.s b/asm/pokemon_jump_2.s index a8595db7f..af4b28a27 100644 --- a/asm/pokemon_jump_2.s +++ b/asm/pokemon_jump_2.s @@ -4793,8 +4793,8 @@ _08149DF0: bl InitBgsFromTemplates ldr r0, _08149EEC @ =gUnknown_846D8E4 bl InitWindows - bl sub_80F6C14 - bl reset_temp_tile_data_buffers + bl ResetBgPositions + bl ResetTempTileDataBuffers ldr r0, [r6] bl sub_814AD6C bl sub_814A9C8 @@ -4807,14 +4807,14 @@ _08149DF0: movs r0, 0x3 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r1, _08149EF8 @ =gUnknown_846BA00 movs r4, 0x1 str r4, [sp] movs r0, 0x3 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r0, _08149EFC @ =gUnknown_846BBB0 movs r1, 0x30 movs r2, 0x20 @@ -4824,13 +4824,13 @@ _08149DF0: movs r0, 0x2 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r1, _08149F04 @ =gUnknown_846C520 str r4, [sp] movs r0, 0x2 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r0, _08149F08 @ =gUnknown_846C8D8 movs r1, 0x10 movs r2, 0x20 @@ -4840,13 +4840,13 @@ _08149DF0: movs r0, 0x1 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r1, _08149F10 @ =gUnknown_846D3A8 str r4, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r0, _08149F14 @ =gUnknown_846B794 movs r1, 0x20 movs r2, 0x20 @@ -4897,7 +4897,7 @@ _08149F0C: .4byte gUnknown_846C8F8 _08149F10: .4byte gUnknown_846D3A8 _08149F14: .4byte gUnknown_846B794 _08149F18: - bl free_temp_tile_data_buffers_if_possible + bl FreeTempTileDataBuffersIfPossible lsls r0, 24 cmp r0, 0 bne _08149F5A @@ -6777,7 +6777,7 @@ sub_814AD6C: @ 814AD6C ldr r5, _0814ADAC @ =gUnknown_846E0B0 _0814AD74: adds r0, r5, 0 - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet adds r5, 0x8 adds r4, 0x1 cmp r4, 0x4 @@ -6881,7 +6881,7 @@ _0814AE2A: adds r0, r1 ldr r3, [r7, 0x8] mov r1, r8 - bl sub_800ECC4 + bl HandleLoadSpecialPokePic mov r3, r8 str r3, [sp, 0x18] adds r4, r6, 0 @@ -6903,7 +6903,7 @@ _0814AE2A: ands r1, r5 orrs r1, r4 str r1, [r0, 0x4] - bl LoadCompressedObjectPalette + bl LoadCompressedSpritePalette mov r0, r8 bl Free mov r0, r10 diff --git a/asm/pokemon_special_anim.s b/asm/pokemon_special_anim.s index 94d451a73..31e3752d3 100644 --- a/asm/pokemon_special_anim.s +++ b/asm/pokemon_special_anim.s @@ -1558,7 +1558,7 @@ sub_811D184: @ 811D184 lsls r5, r1, 16 lsrs r5, 16 bl FreeAllWindowBuffers - bl reset_temp_tile_data_buffers + bl ResetTempTileDataBuffers movs r0, 0 movs r1, 0 bl SetGpuReg @@ -1654,7 +1654,7 @@ _0811D27C: .4byte 0x00001914 thumb_func_start sub_811D280 sub_811D280: @ 811D280 push {lr} - bl free_temp_tile_data_buffers_if_possible + bl FreeTempTileDataBuffersIfPossible lsls r0, 24 cmp r0, 0 beq _0811D290 @@ -2353,7 +2353,7 @@ sub_811D7D4: @ 811D7D4 movs r0, 0x3 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram cmp r4, 0x4 beq _0811D818 ldr r0, _0811D814 @ =gUnknown_845963C @@ -2446,7 +2446,7 @@ _0811D884: adds r1, r6, 0 adds r2, r7, 0 mov r3, r10 - bl sub_800ECC4 + bl HandleLoadSpecialPokePic mov r0, r8 bl GetMonFrontSpritePal adds r1, r4, 0 @@ -3699,7 +3699,7 @@ sub_811E204: @ 811E204 sub sp, 0x8 mov r10, r0 ldr r0, _0811E2E0 @ =gUnknown_84599B8 - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet ldr r0, _0811E2E4 @ =gUnknown_84599C0 bl LoadSpritePalette movs r0, 0 @@ -4148,7 +4148,7 @@ _0811E582: sub_811E588: @ 811E588 push {lr} ldr r0, _0811E59C @ =gUnknown_84599C8 - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet ldr r0, _0811E5A0 @ =gUnknown_84599D0 bl LoadSpritePalette pop {r0} @@ -4216,7 +4216,7 @@ sub_811E5B8: @ 811E5B8 str r1, [r4] mov r1, r9 strh r1, [r4, 0x4] - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet adds r0, r4, 0 bl LoadSpritePalette ldr r0, _0811E674 @ =sub_811E694 diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index a4c77e32e..0c9536a8e 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -2669,7 +2669,7 @@ _0808CDC0: .4byte gUnknown_20397B0 c2_Box: @ 808CDC4 push {lr} bl RunTasks - bl do_scheduled_bg_tilemap_copies_to_vram + bl DoScheduledBgTilemapCopiesToVram bl sub_808EFC8 bl sub_808F99C bl AnimateSprites @@ -2835,7 +2835,7 @@ sub_808CF10: @ 808CF10 ldr r1, _0808CF88 @ =gKeyRepeatStartDelay movs r0, 0x14 strh r0, [r1] - bl clear_scheduled_bg_copies_to_vram + bl ClearScheduledBgCopiesToVram movs r0, 0x3 bl sub_80F7AD8 ldr r2, _0808CF8C @ =gUnknown_83CE6F8 @@ -6738,7 +6738,7 @@ sub_808EFE4: @ 808EFE4 movs r0, 0x1 bl ShowBg movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram add sp, 0x4 pop {r4,r5} pop {r0} @@ -6956,7 +6956,7 @@ sub_808F1D0: @ 808F1D0 bl sub_808F49C bl sub_808F5E8 movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram pop {r0} bx r0 .align 2, 0 @@ -7233,7 +7233,7 @@ sub_808F3F8: @ 808F3F8 adds r0, r1 ldr r5, _0808F474 @ =0x000022bc adds r1, r4, r5 - bl sub_800ECC4 + bl HandleLoadSpecialPokePic ldr r1, [r6] ldr r2, _0808F478 @ =0x00000cd8 adds r0, r1, r2 @@ -7526,7 +7526,7 @@ _0808F66E: movs r0, 0 bl sub_80F7E54 movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram add sp, 0x4 pop {r4} pop {r0} @@ -7608,7 +7608,7 @@ _0808F718: bl sub_80F7E54 _0808F73A: movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r0, _0808F754 @ =gUnknown_20397B0 ldr r0, [r0] ldr r1, _0808F758 @ =0x000002c7 @@ -7680,7 +7680,7 @@ sub_808F794: @ 808F794 movs r0, 0x1 bl sub_80F7E54 movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram movs r0, 0x8 bl sub_8090B98 ldr r1, [r4] @@ -7800,7 +7800,7 @@ sub_808F850: @ 808F850 cmp r0, 0x14 beq _0808F8D4 movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram movs r0, 0x1 b _0808F8FE .align 2, 0 @@ -7822,7 +7822,7 @@ _0808F8D4: movs r0, 0x2 bl sub_80F7E54 movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram _0808F8FC: movs r0, 0 _0808F8FE: @@ -7859,7 +7859,7 @@ _0808F934: movs r0, 0x2 bl sub_80F7E54 movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram add sp, 0x4 pop {r0} bx r0 @@ -8068,7 +8068,7 @@ sub_808FAA8: @ 808FAA8 movs r0, 0x1 bl sub_80F7E54 movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram add sp, 0x4 pop {r0} bx r0 @@ -8318,7 +8318,7 @@ _0808FC7C: movs r1, 0x2 bl CopyWindowToVram movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram add sp, 0xC pop {r4-r6} pop {r0} @@ -8365,7 +8365,7 @@ sub_808FD20: @ 808FD20 movs r1, 0 bl ClearMenuWindow movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram pop {r0} bx r0 thumb_func_end sub_808FD20 @@ -18963,7 +18963,7 @@ sub_8094E88: @ 8094E88 movs r3, 0x2 bl ProgramAndPlaceMenuCursorOnWindow movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r0, [r5] ldr r3, _08094F8C @ =0x00000caa adds r0, r3 @@ -20609,7 +20609,7 @@ _08095B9C: orrs r0, r1 str r0, [r2, 0x4] mov r0, r9 - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet mov r4, r9 ldrh r0, [r4, 0x6] bl GetSpriteTileStartByTag @@ -22334,7 +22334,7 @@ _080968D0: movs r3, 0x14 bl FillBgTilemapBufferRect movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram add sp, 0xC pop {r4-r7} pop {r0} diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index 301d7e0d7..f561ad660 100644 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -3197,7 +3197,7 @@ _08135FD8: .align 2, 0 _08135FE0: .4byte gUnknown_84636C0 _08135FE4: - bl reset_temp_tile_data_buffers + bl ResetTempTileDataBuffers b _08136020 _08135FEA: ldr r1, _08135FFC @ =gUnknown_8E9A460 @@ -3206,12 +3206,12 @@ _08135FEA: movs r0, 0x2 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram b _08136020 .align 2, 0 _08135FFC: .4byte gUnknown_8E9A460 _08136000: - bl free_temp_tile_data_buffers_if_possible + bl FreeTempTileDataBuffersIfPossible lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 diff --git a/asm/region_map.s b/asm/region_map.s index 519b766c1..01c5a71c7 100644 --- a/asm/region_map.s +++ b/asm/region_map.s @@ -595,7 +595,7 @@ _080C02F0: .4byte gUnknown_20399D4 _080C02F4: .4byte 0x00004796 _080C02F8: .4byte gUnknown_83EF25A _080C02FC: - bl reset_temp_tile_data_buffers + bl ResetTempTileDataBuffers b _080C03C8 _080C0302: ldr r1, _080C0330 @ =gUnknown_83EF61C @@ -604,7 +604,7 @@ _080C0302: movs r0, 0 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r0, _080C0334 @ =gUnknown_20399D4 ldr r0, [r0] ldr r2, _080C0338 @ =0x00004796 @@ -617,7 +617,7 @@ _080C0302: movs r0, 0x1 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram b _080C03C8 .align 2, 0 _080C0330: .4byte gUnknown_83EF61C @@ -625,7 +625,7 @@ _080C0334: .4byte gUnknown_20399D4 _080C0338: .4byte 0x00004796 _080C033C: .4byte gUnknown_83F1978 _080C0340: - bl free_temp_tile_data_buffers_if_possible + bl FreeTempTileDataBuffersIfPossible lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 diff --git a/asm/reset_save_heap.s b/asm/reset_save_heap.s deleted file mode 100644 index fb46afb94..000000000 --- a/asm/reset_save_heap.s +++ /dev/null @@ -1,68 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8079B7C -sub_8079B7C: @ 8079B7C - push {r4,r5,lr} - ldr r5, _08079BEC @ =0x04000208 - ldrh r4, [r5] - movs r0, 0 - strh r0, [r5] - movs r0, 0x1 - bl RegisterRamReset - movs r0, 0 - movs r1, 0x80 - bl ClearGpuRegBits - strh r4, [r5] - ldr r1, _08079BF0 @ =gMain - ldr r0, _08079BF4 @ =0x00000439 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - bl SetSaveBlocksPointers - bl sub_8054A28 - bl Save_ResetSaveCounters - movs r0, 0 - bl Save_LoadGameData - ldr r0, _08079BF8 @ =gSaveFileStatus - ldrh r0, [r0] - cmp r0, 0 - beq _08079BC4 - cmp r0, 0x2 - bne _08079BC8 -_08079BC4: - bl Sav2_ClearSetDefault -_08079BC8: - ldr r0, _08079BFC @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x15] - lsls r0, 31 - lsrs r0, 31 - bl SetPokemonCryStereo - ldr r0, _08079C00 @ =gHeap - movs r1, 0xE0 - lsls r1, 9 - bl InitHeap - ldr r0, _08079C04 @ =sub_8056938 - bl SetMainCallback2 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08079BEC: .4byte 0x04000208 -_08079BF0: .4byte gMain -_08079BF4: .4byte 0x00000439 -_08079BF8: .4byte gSaveFileStatus -_08079BFC: .4byte gSaveBlock2Ptr -_08079C00: .4byte gHeap -_08079C04: .4byte sub_8056938 - thumb_func_end sub_8079B7C - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom6.s b/asm/rom6.s deleted file mode 100644 index 2ac2cc0a4..000000000 --- a/asm/rom6.s +++ /dev/null @@ -1,459 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start npc_before_player_of_type -npc_before_player_of_type: @ 80C97A8 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r4, _080C97E8 @ =gUnknown_2039A04 - adds r1, r4, 0x2 - adds r0, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - bl PlayerGetZCoord - strb r0, [r4, 0x4] - ldrh r0, [r4] - ldrh r1, [r4, 0x2] - ldrb r2, [r4, 0x4] - bl GetFieldObjectIdByXYZ - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C97EC @ =gMapObjects - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r2, r1, r2 - ldrb r0, [r2, 0x5] - cmp r0, r5 - bne _080C97F4 - ldr r1, _080C97F0 @ =gSpecialVar_LastTalked - ldrb r0, [r2, 0x8] - strh r0, [r1] - movs r0, 0x1 - b _080C97F6 - .align 2, 0 -_080C97E8: .4byte gUnknown_2039A04 -_080C97EC: .4byte gMapObjects -_080C97F0: .4byte gSpecialVar_LastTalked -_080C97F4: - movs r0, 0 -_080C97F6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end npc_before_player_of_type - - thumb_func_start oei_task_add -oei_task_add: @ 80C97FC - push {lr} - ldr r0, _080C9818 @ =gUnknown_2039A04 - adds r1, r0, 0x2 - bl GetXYCoordsOneStepInFrontOfPlayer - ldr r0, _080C981C @ =task08_080C9820 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_080C9818: .4byte gUnknown_2039A04 -_080C981C: .4byte task08_080C9820 - thumb_func_end oei_task_add - - thumb_func_start task08_080C9820 -task08_080C9820: @ 80C9820 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - bl ScriptContext2_Enable - ldr r1, _080C9874 @ =gPlayerAvatar - movs r0, 0x1 - strb r0, [r1, 0x6] - ldrb r1, [r1, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C9878 @ =gMapObjects - adds r4, r0, r1 - adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - cmp r0, 0 - beq _080C9856 - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _080C98A2 -_080C9856: - ldr r0, _080C987C @ =gMapHeader - ldrb r0, [r0, 0x17] - cmp r0, 0x5 - bne _080C9888 - movs r0, 0x3B - bl FieldEffectStart - ldr r0, _080C9880 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080C9884 @ =sub_80C98FC - b _080C98A0 - .align 2, 0 -_080C9874: .4byte gPlayerAvatar -_080C9878: .4byte gMapObjects -_080C987C: .4byte gMapHeader -_080C9880: .4byte gTasks -_080C9884: .4byte sub_80C98FC -_080C9888: - bl sub_805CB70 - adds r0, r4, 0 - movs r1, 0x45 - bl sub_8063CA4 - ldr r0, _080C98A8 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _080C98AC @ =sub_80C98B0 -_080C98A0: - str r0, [r1] -_080C98A2: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C98A8: .4byte gTasks -_080C98AC: .4byte sub_80C98B0 - thumb_func_end task08_080C9820 - - thumb_func_start sub_80C98B0 -sub_80C98B0: @ 80C98B0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080C98EC @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C98F0 @ =gMapObjects - adds r0, r1 - bl FieldObjectCheckIfSpecialAnimFinishedOrInactive - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C98E4 - movs r0, 0x3B - bl FieldEffectStart - ldr r0, _080C98F4 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080C98F8 @ =sub_80C98FC - str r0, [r1] -_080C98E4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C98EC: .4byte gPlayerAvatar -_080C98F0: .4byte gMapObjects -_080C98F4: .4byte gTasks -_080C98F8: .4byte sub_80C98FC - thumb_func_end sub_80C98B0 - - thumb_func_start sub_80C98FC -sub_80C98FC: @ 80C98FC - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0x6 - bl FieldEffectActiveListContains - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080C9980 - bl player_get_direction_lower_nybble - ldr r6, _080C9988 @ =gFieldEffectArguments - lsls r0, 24 - lsrs r0, 24 - str r0, [r6, 0x4] - cmp r0, 0x1 - bne _080C9922 - str r4, [r6, 0x8] -_080C9922: - ldr r1, [r6, 0x4] - cmp r1, 0x2 - bne _080C992C - movs r0, 0x1 - str r0, [r6, 0x8] -_080C992C: - cmp r1, 0x3 - bne _080C9934 - movs r0, 0x2 - str r0, [r6, 0x8] -_080C9934: - cmp r1, 0x4 - bne _080C993C - movs r0, 0x3 - str r0, [r6, 0x8] -_080C993C: - ldr r5, _080C998C @ =gPlayerAvatar - ldrb r0, [r5, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _080C9990 @ =gMapObjects - adds r4, r0 - bl GetPlayerAvatarGraphicsIdByCurrentState - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_805F060 - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C9994 @ =gSprites - adds r0, r1 - ldrb r1, [r6, 0x8] - bl StartSpriteAnim - movs r0, 0x6 - bl FieldEffectActiveListRemove - ldr r1, _080C9998 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldr r1, _080C999C @ =sub_80C99A0 - str r1, [r0] -_080C9980: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C9988: .4byte gFieldEffectArguments -_080C998C: .4byte gPlayerAvatar -_080C9990: .4byte gMapObjects -_080C9994: .4byte gSprites -_080C9998: .4byte gTasks -_080C999C: .4byte sub_80C99A0 - thumb_func_end sub_80C98FC - - thumb_func_start sub_80C99A0 -sub_80C99A0: @ 80C99A0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080C99D0 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x18] - lsls r1, 16 - ldrh r0, [r0, 0x1A] - orrs r1, r0 - bl _call_via_r1 - ldr r1, _080C99D4 @ =gPlayerAvatar - movs r0, 0 - strb r0, [r1, 0x6] - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C99D0: .4byte gTasks -_080C99D4: .4byte gPlayerAvatar - thumb_func_end sub_80C99A0 - - thumb_func_start SetUpFieldMove_RockSmash -SetUpFieldMove_RockSmash: @ 80C99D8 - push {lr} - movs r0, 0x60 - bl npc_before_player_of_type - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080C99EC - movs r0, 0 - b _080C99FA -_080C99EC: - ldr r1, _080C9A00 @ =gFieldCallback2 - ldr r0, _080C9A04 @ =FieldCallback_PrepareFadeInFromMenu - str r0, [r1] - ldr r1, _080C9A08 @ =gPostMenuFieldCallback - ldr r0, _080C9A0C @ =sub_80C9A10 - str r0, [r1] - movs r0, 0x1 -_080C99FA: - pop {r1} - bx r1 - .align 2, 0 -_080C9A00: .4byte gFieldCallback2 -_080C9A04: .4byte FieldCallback_PrepareFadeInFromMenu -_080C9A08: .4byte gPostMenuFieldCallback -_080C9A0C: .4byte sub_80C9A10 - thumb_func_end SetUpFieldMove_RockSmash - - thumb_func_start sub_80C9A10 -sub_80C9A10: @ 80C9A10 - push {lr} - bl GetCursorSelectionMonId - ldr r1, _080C9A28 @ =gFieldEffectArguments - lsls r0, 24 - lsrs r0, 24 - str r0, [r1] - ldr r0, _080C9A2C @ =gUnknown_81BE064 - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_080C9A28: .4byte gFieldEffectArguments -_080C9A2C: .4byte gUnknown_81BE064 - thumb_func_end sub_80C9A10 - - thumb_func_start oei_rocksmash -oei_rocksmash: @ 80C9A30 - push {lr} - bl oei_task_add - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C9A58 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _080C9A5C @ =sub_80C9A60 - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - movs r0, 0x13 - bl IncrementGameStat - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080C9A58: .4byte gTasks -_080C9A5C: .4byte sub_80C9A60 - thumb_func_end oei_rocksmash - - thumb_func_start sub_80C9A60 -sub_80C9A60: @ 80C9A60 - push {lr} - movs r0, 0x7C - bl PlaySE - movs r0, 0x25 - bl FieldEffectActiveListRemove - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_80C9A60 - - thumb_func_start SetUpFieldMove_Dig -SetUpFieldMove_Dig: @ 80C9A78 - push {lr} - bl sub_80A1B8C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080C9A8A - movs r0, 0 - b _080C9A98 -_080C9A8A: - ldr r1, _080C9A9C @ =gFieldCallback2 - ldr r0, _080C9AA0 @ =FieldCallback_PrepareFadeInFromMenu - str r0, [r1] - ldr r1, _080C9AA4 @ =gPostMenuFieldCallback - ldr r0, _080C9AA8 @ =hm2_dig - str r0, [r1] - movs r0, 0x1 -_080C9A98: - pop {r1} - bx r1 - .align 2, 0 -_080C9A9C: .4byte gFieldCallback2 -_080C9AA0: .4byte FieldCallback_PrepareFadeInFromMenu -_080C9AA4: .4byte gPostMenuFieldCallback -_080C9AA8: .4byte hm2_dig - thumb_func_end SetUpFieldMove_Dig - - thumb_func_start hm2_dig -hm2_dig: @ 80C9AAC - push {lr} - bl sub_8054D70 - movs r0, 0x26 - bl FieldEffectStart - bl GetCursorSelectionMonId - ldr r1, _080C9AC8 @ =gFieldEffectArguments - lsls r0, 24 - lsrs r0, 24 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080C9AC8: .4byte gFieldEffectArguments - thumb_func_end hm2_dig - - thumb_func_start sub_80C9ACC -sub_80C9ACC: @ 80C9ACC - push {lr} - bl oei_task_add - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C9AF4 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _080C9AF8 @ =sub_80C9AFC - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - movs r0, 0x1 - bl SetPlayerAvatarTransitionFlags - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080C9AF4: .4byte gTasks -_080C9AF8: .4byte sub_80C9AFC - thumb_func_end sub_80C9ACC - - thumb_func_start sub_80C9AFC -sub_80C9AFC: @ 80C9AFC - push {lr} - movs r0, 0x26 - bl FieldEffectActiveListRemove - ldr r0, _080C9B24 @ =sub_80A1C44 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C9B28 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x8] - pop {r0} - bx r0 - .align 2, 0 -_080C9B24: .4byte sub_80A1C44 -_080C9B28: .4byte gTasks - thumb_func_end sub_80C9AFC - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/save_location.s b/asm/save_location.s deleted file mode 100644 index 8a1031963..000000000 --- a/asm/save_location.s +++ /dev/null @@ -1,222 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start IsCurMapInLocationList -IsCurMapInLocationList: @ 810B6F4 - push {r4,lr} - adds r2, r0, 0 - ldr r0, _0810B724 @ =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x4 - ldrsb r1, [r0, r1] - lsls r1, 8 - ldrb r0, [r0, 0x5] - lsls r0, 24 - asrs r0, 24 - adds r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - ldrh r0, [r2] - ldr r1, _0810B728 @ =0x0000ffff - cmp r0, r1 - beq _0810B734 - adds r4, r1, 0 - adds r1, r2, 0 -_0810B71A: - ldrh r0, [r1] - cmp r0, r3 - bne _0810B72C - movs r0, 0x1 - b _0810B736 - .align 2, 0 -_0810B724: .4byte gSaveBlock1Ptr -_0810B728: .4byte 0x0000ffff -_0810B72C: - adds r1, 0x2 - ldrh r0, [r1] - cmp r0, r4 - bne _0810B71A -_0810B734: - movs r0, 0 -_0810B736: - pop {r4} - pop {r1} - bx r1 - thumb_func_end IsCurMapInLocationList - - thumb_func_start IsCurMapPokeCenter -IsCurMapPokeCenter: @ 810B73C - push {lr} - ldr r0, _0810B748 @ =gUnknown_845303C - bl IsCurMapInLocationList - pop {r1} - bx r1 - .align 2, 0 -_0810B748: .4byte gUnknown_845303C - thumb_func_end IsCurMapPokeCenter - - thumb_func_start IsCurMapReloadLocation -IsCurMapReloadLocation: @ 810B74C - push {lr} - ldr r0, _0810B758 @ =gUnknown_8453092 - bl IsCurMapInLocationList - pop {r1} - bx r1 - .align 2, 0 -_0810B758: .4byte gUnknown_8453092 - thumb_func_end IsCurMapReloadLocation - - thumb_func_start sub_810B75C -sub_810B75C: @ 810B75C - push {lr} - ldr r0, _0810B768 @ =gUnknown_8453094 - bl IsCurMapInLocationList - pop {r1} - bx r1 - .align 2, 0 -_0810B768: .4byte gUnknown_8453094 - thumb_func_end sub_810B75C - - thumb_func_start TrySetPokeCenterWarpStatus -TrySetPokeCenterWarpStatus: @ 810B76C - push {lr} - bl IsCurMapPokeCenter - cmp r0, 0 - bne _0810B788 - ldr r0, _0810B784 @ =gSaveBlock2Ptr - ldr r2, [r0] - ldrb r1, [r2, 0x9] - movs r0, 0xFD - ands r0, r1 - b _0810B792 - .align 2, 0 -_0810B784: .4byte gSaveBlock2Ptr -_0810B788: - ldr r0, _0810B798 @ =gSaveBlock2Ptr - ldr r2, [r0] - ldrb r1, [r2, 0x9] - movs r0, 0x2 - orrs r0, r1 -_0810B792: - strb r0, [r2, 0x9] - pop {r0} - bx r0 - .align 2, 0 -_0810B798: .4byte gSaveBlock2Ptr - thumb_func_end TrySetPokeCenterWarpStatus - - thumb_func_start TrySetReloadWarpStatus -TrySetReloadWarpStatus: @ 810B79C - push {lr} - bl IsCurMapReloadLocation - cmp r0, 0 - bne _0810B7B8 - ldr r0, _0810B7B4 @ =gSaveBlock2Ptr - ldr r2, [r0] - ldrb r1, [r2, 0x9] - movs r0, 0xFB - ands r0, r1 - b _0810B7C2 - .align 2, 0 -_0810B7B4: .4byte gSaveBlock2Ptr -_0810B7B8: - ldr r0, _0810B7C8 @ =gSaveBlock2Ptr - ldr r2, [r0] - ldrb r1, [r2, 0x9] - movs r0, 0x4 - orrs r0, r1 -_0810B7C2: - strb r0, [r2, 0x9] - pop {r0} - bx r0 - .align 2, 0 -_0810B7C8: .4byte gSaveBlock2Ptr - thumb_func_end TrySetReloadWarpStatus - - thumb_func_start sub_810B7CC -sub_810B7CC: @ 810B7CC - push {lr} - bl sub_810B75C - cmp r0, 0 - bne _0810B7E8 - ldr r0, _0810B7E4 @ =gSaveBlock2Ptr - ldr r2, [r0] - ldrb r1, [r2, 0x9] - movs r0, 0xF7 - ands r0, r1 - b _0810B7F2 - .align 2, 0 -_0810B7E4: .4byte gSaveBlock2Ptr -_0810B7E8: - ldr r0, _0810B7F8 @ =gSaveBlock2Ptr - ldr r2, [r0] - ldrb r1, [r2, 0x9] - movs r0, 0x8 - orrs r0, r1 -_0810B7F2: - strb r0, [r2, 0x9] - pop {r0} - bx r0 - .align 2, 0 -_0810B7F8: .4byte gSaveBlock2Ptr - thumb_func_end sub_810B7CC - - thumb_func_start TrySetMapSaveWarpStatus -TrySetMapSaveWarpStatus: @ 810B7FC - push {lr} - bl TrySetPokeCenterWarpStatus - bl TrySetReloadWarpStatus - bl sub_810B7CC - pop {r0} - bx r0 - thumb_func_end TrySetMapSaveWarpStatus - - thumb_func_start sub_810B810 -sub_810B810: @ 810B810 - ldr r0, _0810B828 @ =gSaveBlock2Ptr - ldr r2, [r0] - adds r2, 0xA8 - ldr r0, [r2] - movs r1, 0x1 - orrs r0, r1 - movs r1, 0x10 - orrs r0, r1 - movs r1, 0x20 - orrs r0, r1 - str r0, [r2] - bx lr - .align 2, 0 -_0810B828: .4byte gSaveBlock2Ptr - thumb_func_end sub_810B810 - - thumb_func_start sub_810B82C -sub_810B82C: @ 810B82C - ldr r3, _0810B854 @ =gSaveBlock2Ptr - ldr r2, [r3] - ldrb r1, [r2, 0x9] - movs r0, 0x80 - orrs r0, r1 - strb r0, [r2, 0x9] - ldr r2, [r3] - adds r2, 0xA8 - ldr r0, [r2] - movs r1, 0x2 - orrs r0, r1 - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x8 - orrs r0, r1 - movs r1, 0x80 - lsls r1, 8 - orrs r0, r1 - str r0, [r2] - bx lr - .align 2, 0 -_0810B854: .4byte gSaveBlock2Ptr - thumb_func_end sub_810B82C - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/script_menu.s b/asm/script_menu.s index 69e487bcc..0d5cabbcf 100644 --- a/asm/script_menu.s +++ b/asm/script_menu.s @@ -249,7 +249,7 @@ _0809CB02: lsrs r5, r0, 24 adds r0, r5, 0 movs r1, 0 - bl sub_80F7750 + bl SetStdWindowBorderStyle mov r2, r10 cmp r2, 0x1E beq _0809CB32 @@ -308,7 +308,7 @@ _0809CB7A: mov r3, r10 bl sub_809CC18 movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram _0809CBA2: add sp, 0x20 pop {r3-r5} @@ -636,7 +636,7 @@ _0809CE08: lsls r0, 24 cmp r0, 0 bne _0809CE26 - bl sub_80F7858 + bl DisplayYesNoMenuDefaultYes adds r0, r4, 0 movs r1, 0x50 bl CreateTask @@ -822,7 +822,7 @@ _0809CF08: lsrs r0, 24 strh r0, [r4, 0x14] movs r1, 0 - bl sub_80F7750 + bl SetStdWindowBorderStyle ldrb r0, [r4, 0x14] lsls r5, 27 lsrs r5, 24 @@ -845,7 +845,7 @@ _0809CF08: movs r3, 0x1 bl sub_811030C movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram _0809CFB8: movs r0, 0x1 _0809CFBA: @@ -914,8 +914,8 @@ _0809D034: _0809D03C: .4byte gSpecialVar_Result thumb_func_end sub_809CFDC - thumb_func_start sp109_CreatePCMenu -sp109_CreatePCMenu: @ 809D040 + thumb_func_start ScrSpecial_CreatePCMenu +ScrSpecial_CreatePCMenu: @ 809D040 push {lr} ldr r0, _0809D060 @ =sub_809CC98 bl FuncIsActiveTask @@ -937,7 +937,7 @@ _0809D068: _0809D06A: pop {r1} bx r1 - thumb_func_end sp109_CreatePCMenu + thumb_func_end ScrSpecial_CreatePCMenu thumb_func_start sub_809D070 sub_809D070: @ 809D070 @@ -989,7 +989,7 @@ _0809D0B0: lsrs r6, r0, 24 adds r0, r6, 0 movs r1, 0 - bl sub_80F7750 + bl SetStdWindowBorderStyle ldr r2, _0809D128 @ =gUnknown_8417BD3 movs r0, 0x22 str r0, [sp] @@ -1050,7 +1050,7 @@ _0809D14C: lsrs r6, r0, 24 adds r0, r6, 0 movs r1, 0 - bl sub_80F7750 + bl SetStdWindowBorderStyle mov r0, r8 bl FlagGet lsls r0, 24 @@ -1145,7 +1145,7 @@ _0809D1FA: movs r3, 0xFF bl sub_809CC18 movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram add sp, 0xC pop {r3,r4} mov r8, r3 @@ -1159,8 +1159,8 @@ _0809D24C: .4byte gStringVar4 _0809D250: .4byte gUnknown_8417BB6 thumb_func_end sub_809D070 - thumb_func_start sub_809D254 -sub_809D254: @ 809D254 + thumb_func_start ScriptMenu_DisplayPCStartupPrompt +ScriptMenu_DisplayPCStartupPrompt: @ 809D254 push {lr} sub sp, 0x10 movs r0, 0 @@ -1184,7 +1184,7 @@ sub_809D254: @ 809D254 bx r0 .align 2, 0 _0809D284: .4byte gUnknown_81A508A - thumb_func_end sub_809D254 + thumb_func_end ScriptMenu_DisplayPCStartupPrompt thumb_func_start sub_809D288 sub_809D288: @ 809D288 @@ -1326,9 +1326,9 @@ _0809D31C: strb r0, [r1, 0x5] ldrb r0, [r3, 0x12] movs r1, 0x1 - bl sub_80F7750 + bl SetStdWindowBorderStyle movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram movs r0, 0x1 b _0809D3C2 .align 2, 0 @@ -1613,9 +1613,9 @@ _0809D572: strh r2, [r1, 0x8] strh r5, [r1, 0xC] movs r1, 0x1 - bl sub_80F7750 + bl SetStdWindowBorderStyle movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram _0809D5F2: movs r0, 0x1 _0809D5F4: @@ -1859,7 +1859,7 @@ _0809D7B8: lsrs r7, r0, 24 adds r0, r7, 0 movs r1, 0 - bl sub_80F7750 + bl SetStdWindowBorderStyle movs r6, 0 mov r5, r9 subs r5, 0x2 @@ -1953,7 +1953,7 @@ _0809D844: movs r3, 0xFF bl sub_809CC18 movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram _0809D8A8: add sp, 0xC pop {r3,r4} diff --git a/asm/script_movement.s b/asm/script_movement.s index 826d6d6bd..a2d48d44a 100644 --- a/asm/script_movement.s +++ b/asm/script_movement.s @@ -565,7 +565,7 @@ sub_80977F0: @ 80977F0 cmp r0, 0 beq _08097838 adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _0809786A @@ -583,7 +583,7 @@ _08097838: _08097850: .4byte gMapObjects _08097854: adds r0, r4, 0 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement lsls r0, 24 cmp r0, 0 bne _0809786A diff --git a/asm/shop.s b/asm/shop.s index 370f8b296..51955f88d 100644 --- a/asm/shop.s +++ b/asm/shop.s @@ -49,7 +49,7 @@ _0809AAF8: strb r0, [r4] ldrb r0, [r4] movs r1, 0 - bl sub_80F7750 + bl SetStdWindowBorderStyle movs r0, 0x2 movs r1, 0 bl GetMenuCursorDimensionByFont @@ -435,7 +435,7 @@ sub_809ADE4: @ 809ADE4 bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade - bl do_scheduled_bg_tilemap_copies_to_vram + bl DoScheduledBgTilemapCopiesToVram pop {r0} bx r0 thumb_func_end sub_809ADE4 @@ -523,12 +523,12 @@ _0809AEAC: add r0, sp, 0x8 bl CpuFastSet bl ScanlineEffect_Stop - bl reset_temp_tile_data_buffers + bl ResetTempTileDataBuffers bl FreeAllSpritePalettes bl ResetPaletteFade bl ResetSpriteData bl ResetTasks - bl clear_scheduled_bg_copies_to_vram + bl ClearScheduledBgCopiesToVram bl ResetItemMenuIconState bl sub_809AF6C lsls r0, 24 @@ -579,7 +579,7 @@ _0809AEAC: _0809AF4C: .4byte 0x01000100 _0809AF50: .4byte gUnknown_2039934 _0809AF54: - bl free_temp_tile_data_buffers_if_possible + bl FreeTempTileDataBuffersIfPossible lsls r0, 24 cmp r0, 0 bne _0809AF64 @@ -721,7 +721,7 @@ sub_809B080: @ 809B080 movs r0, 0 str r0, [sp] movs r0, 0x1 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r0, _0809B0B4 @ =gUnknown_2039934 ldrb r1, [r0, 0x16] movs r0, 0xF @@ -808,7 +808,7 @@ _0809B13C: bl SetBgRectPal _0809B14E: movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram add sp, 0x8 pop {r0} bx r0 @@ -821,13 +821,13 @@ sub_809B15C: @ 809B15C bl sub_809BAFC bl sub_813F6D0 movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram movs r0, 0x3 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram pop {r0} bx r0 thumb_func_end sub_809B15C @@ -2295,7 +2295,7 @@ sub_809BCA0: @ 809BCA0 adds r0, r7, 0 bl sub_809BB44 movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram ldr r0, _0809BD50 @ =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0xA4 @@ -2621,7 +2621,7 @@ sub_809BF98: @ 809BF98 bl PutWindowTilemap _0809BFDC: movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram + bl ScheduleBgCopyTilemapToVram bl sub_809B690 adds r0, r6, 0 subs r0, 0x8 diff --git a/asm/slot_machine.s b/asm/slot_machine.s index 680004d4a..b355fed51 100644 --- a/asm/slot_machine.s +++ b/asm/slot_machine.s @@ -2689,7 +2689,7 @@ sub_8140C0C: @ 8140C0C ldr r4, _08140C3C @ =gUnknown_84655B0 _08140C12: adds r0, r4, 0 - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet adds r4, 0x8 adds r5, 0x1 cmp r5, 0x2 @@ -3472,7 +3472,7 @@ _081411D0: movs r0, 0 movs r1, 0 bl SetGpuReg - bl sub_80F6C14 + bl ResetBgPositions movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, _081413A0 @ =gUnknown_8466B10 @@ -3495,20 +3495,20 @@ _081411D0: bl FillBgTilemapBufferRect_Palette0 movs r0, 0x3 bl CopyBgTilemapBufferToVram - bl reset_temp_tile_data_buffers + bl ResetTempTileDataBuffers ldr r1, _081413AC @ =gUnknown_84659D0 movs r5, 0 str r5, [sp] movs r0, 0x2 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r1, _081413B0 @ =gUnknown_846653C str r5, [sp] movs r0, 0x2 movs r2, 0 movs r3, 0xC0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r1, _081413B4 @ =0x0000185c add r1, r8 movs r0, 0x2 @@ -3563,13 +3563,13 @@ _081411D0: movs r0, 0x1 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r1, _081413D4 @ =gUnknown_8466998 str r6, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram movs r0, 0x1 bl CopyBgTilemapBufferToVram movs r0, 0x2 @@ -3648,7 +3648,7 @@ _081413D8: .4byte gUnknown_841B779 _081413DC: .4byte sub_8141118 _081413E0: .4byte sub_8140E40 _081413E4: - bl free_temp_tile_data_buffers_if_possible + bl FreeTempTileDataBuffersIfPossible lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 diff --git a/asm/smokescreen.s b/asm/smokescreen.s index 1768a5ea4..2a350c911 100644 --- a/asm/smokescreen.s +++ b/asm/smokescreen.s @@ -26,9 +26,9 @@ sub_804A76C: @ 804A76C cmp r0, r1 bne _0804A79E adds r0, r5, 0 - bl sub_800F034 + bl LoadCompressedSpriteSheetUsingHeap ldr r0, _0804A8AC @ =gUnknown_8250994 - bl sub_800F078 + bl LoadCompressedSpritePaletteUsingHeap _0804A79E: ldr r0, _0804A8B0 @ =sub_804A8C0 bl CreateInvisibleSpriteWithCallback diff --git a/asm/start_menu.s b/asm/start_menu.s index cf06662d2..9f6ef8662 100644 --- a/asm/start_menu.s +++ b/asm/start_menu.s @@ -1127,7 +1127,7 @@ _0806F644: .4byte gUnknown_3000FA9 thumb_func_start sub_806F648 sub_806F648: @ 806F648 push {lr} - bl sub_80F6CBC + bl RunTextPrinters_CheckPrinter0Active lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 @@ -1179,7 +1179,7 @@ sub_806F69C: @ 806F69C movs r1, 0x1 bl sub_80F7768 movs r0, 0x1 - bl sub_80F6E08 + bl AddTextPrinterForMessage ldr r1, _0806F6CC @ =gUnknown_3000FA9 movs r0, 0x1 strb r0, [r1] @@ -1329,7 +1329,7 @@ sub_806F7A8: @ 806F7A8 lsrs r0, 24 movs r1, 0 bl ClearStdWindowAndFrame - bl remove_start_menu_window_maybe + bl RemoveStartMenuWindow movs r0, 0 bl sub_8112EDC bl sub_806FCF4 @@ -1347,7 +1347,7 @@ _0806F7D8: .4byte sub_806F7DC thumb_func_start sub_806F7DC sub_806F7DC: @ 806F7DC push {lr} - bl sub_80F7858 + bl DisplayYesNoMenuDefaultYes ldr r1, _0806F7F0 @ =gUnknown_3000FA4 ldr r0, _0806F7F4 @ =sub_806F7F8 str r0, [r1] @@ -1451,7 +1451,7 @@ _0806F8A0: .4byte sub_806F8A4 thumb_func_start sub_806F8A4 sub_806F8A4: @ 806F8A4 push {lr} - bl sub_80F7858 + bl DisplayYesNoMenuDefaultYes ldr r1, _0806F8B8 @ =gUnknown_3000FA4 ldr r0, _0806F8BC @ =sub_806F8DC str r0, [r1] @@ -1466,7 +1466,7 @@ _0806F8BC: .4byte sub_806F8DC thumb_func_start sub_806F8C0 sub_806F8C0: @ 806F8C0 push {lr} - bl sub_80F7880 + bl DisplayYesNoMenuDefaultNo ldr r1, _0806F8D4 @ =gUnknown_3000FA4 ldr r0, _0806F8D8 @ =sub_806F8DC str r0, [r1] @@ -1596,7 +1596,7 @@ _0806F9B4: .4byte sub_806FA04 thumb_func_start sub_806F9B8 sub_806F9B8: @ 806F9B8 push {lr} - bl sub_80F6CBC + bl RunTextPrinters_CheckPrinter0Active lsls r0, 16 cmp r0, 0 bne _0806F9D0 @@ -1638,7 +1638,7 @@ _0806FA00: thumb_func_start sub_806FA04 sub_806FA04: @ 806FA04 push {lr} - bl sub_80F6CBC + bl RunTextPrinters_CheckPrinter0Active lsls r0, 16 cmp r0, 0 bne _0806FA1C @@ -2198,7 +2198,7 @@ sub_806FEA0: @ 806FEA0 lsrs r0, 24 movs r1, 0x1 bl ClearStdWindowAndFrame - bl remove_start_menu_window_maybe + bl RemoveStartMenuWindow bl sub_80696C0 bl ScriptContext2_Disable pop {r0} diff --git a/asm/title_screen.s b/asm/title_screen.s index 07a861c86..1646e6ce4 100644 --- a/asm/title_screen.s +++ b/asm/title_screen.s @@ -113,13 +113,13 @@ _080789F0: movs r0, 0 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r1, _08078A9C @ =gUnknown_8EAD390 str r6, [sp] movs r0, 0 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r0, _08078AA0 @ =gUnknown_8EAD5E8 movs r1, 0xD0 movs r2, 0x20 @@ -129,13 +129,13 @@ _080789F0: movs r0, 0x1 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r1, _08078AA8 @ =gUnknown_8EADEE4 str r6, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r5, _08078AAC @ =gUnknown_8EAE094 adds r0, r5, 0 movs r1, 0xF0 @@ -146,13 +146,13 @@ _080789F0: movs r0, 0x2 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r1, _08078AB4 @ =gUnknown_8EAE374 str r6, [sp] movs r0, 0x2 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram adds r0, r5, 0 movs r1, 0xE0 movs r2, 0x20 @@ -162,13 +162,13 @@ _080789F0: movs r0, 0x3 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r1, _08078ABC @ =gUnknown_83BF5A8 str r6, [sp] movs r0, 0x3 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram bl sub_8079708 b _08078B18 .align 2, 0 @@ -184,7 +184,7 @@ _08078AB4: .4byte gUnknown_8EAE374 _08078AB8: .4byte gUnknown_83BF58C _08078ABC: .4byte gUnknown_83BF5A8 _08078AC0: - bl free_temp_tile_data_buffers_if_possible + bl FreeTempTileDataBuffersIfPossible lsls r0, 24 cmp r0, 0 bne _08078B26 @@ -1106,7 +1106,7 @@ _08079248: bne _080792A6 bl SeedRngAndSetTrainerId bl SetSaveBlocksPointers - bl sub_8054A28 + bl ResetMenuAndMonGlobals bl Save_ResetSaveCounters movs r0, 0 bl Save_LoadGameData @@ -1641,7 +1641,7 @@ _0807965C: movs r1, 0xE0 movs r2, 0x20 bl LoadPalette - bl sub_80F6C14 + bl ResetBgPositions movs r1, 0xE0 lsls r1, 8 movs r0, 0 @@ -1704,7 +1704,7 @@ sub_8079708: @ 8079708 ldr r4, _08079728 @ =gUnknown_83BFB9C _0807970E: adds r0, r4, 0 - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet adds r4, 0x8 adds r5, 0x1 cmp r5, 0x3 diff --git a/asm/trade.s b/asm/trade.s index a45cedc3e..3e8dc9fc1 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -1909,7 +1909,7 @@ sub_804D638: @ 804D638 lsrs r1, 24 movs r0, 0x1C bl SetGpuReg - bl sub_80F6CBC + bl RunTextPrinters_CheckPrinter0Active bl RunTasks bl AnimateSprites bl BuildOamBuffer @@ -7292,7 +7292,7 @@ _08050040: ldr r1, [r1, 0x8] adds r2, r5, 0 adds r3, r7, 0 - bl sub_800ECC4 + bl HandleLoadSpecialPokePic movs r4, 0 b _0805009A .align 2, 0 @@ -7316,7 +7316,7 @@ _0805007C: _0805009A: mov r0, r8 bl GetMonSpritePalStruct - bl LoadCompressedObjectPalette + bl LoadCompressedSpritePalette ldr r0, _080500C4 @ =gUnknown_2031DAC ldr r1, [r0] adds r0, r1, 0 @@ -10813,7 +10813,7 @@ _08052042: ldr r1, [r1] ldr r1, [r1, 0x10] ldr r3, [r3, 0x6C] - bl sub_800ECC4 + bl HandleLoadSpecialPokePic ldr r1, [r7] b _080522AC .align 2, 0 @@ -13038,7 +13038,7 @@ _0805349E: ldr r1, [r1] ldr r1, [r1, 0x10] ldr r3, [r3, 0x6C] - bl sub_800ECC4 + bl HandleLoadSpecialPokePic ldr r1, [r7] b _08053708 .align 2, 0 diff --git a/asm/trainer_see.s b/asm/trainer_see.s index a07c918f8..c52229215 100644 --- a/asm/trainer_see.s +++ b/asm/trainer_see.s @@ -601,7 +601,7 @@ _08081F54: lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement ldrh r0, [r5, 0x8] adds r0, 0x1 _08081F82: @@ -658,12 +658,12 @@ sub_8081FD0: @ 8081FD0 adds r5, r1, 0 adds r4, r2, 0 adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + bl FieldObjectIsMovementOverridden lsls r0, 24 cmp r0, 0 beq _08081FEE adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _08082022 @@ -680,7 +680,7 @@ _08081FEE: lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement ldrh r0, [r5, 0xE] subs r0, 0x1 strh r0, [r5, 0xE] @@ -688,7 +688,7 @@ _08081FEE: _08082014: adds r0, r4, 0 movs r1, 0x4A - bl sub_8063CA4 + bl FieldObjectSetHeldMovement ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] @@ -705,12 +705,12 @@ sub_808202C: @ 808202C adds r5, r1, 0 adds r4, r2, 0 adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + bl FieldObjectIsMovementOverridden lsls r0, 24 cmp r0, 0 beq _0808204A adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _080820AC @@ -743,12 +743,12 @@ _0808204A: ldr r1, _080820B8 @ =gMapObjects adds r4, r0, r1 adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + bl FieldObjectIsMovementOverridden lsls r0, 24 cmp r0, 0 beq _080820A2 adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _080820AC @@ -780,12 +780,12 @@ sub_80820BC: @ 80820BC ldr r1, _080820FC @ =gMapObjects adds r4, r0, r1 adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + bl FieldObjectIsMovementOverridden lsls r0, 24 cmp r0, 0 beq _080820E8 adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _080820EE @@ -808,19 +808,19 @@ sub_8082100: @ 8082100 adds r5, r1, 0 adds r4, r2, 0 adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + bl FieldObjectIsMovementOverridden lsls r0, 24 cmp r0, 0 beq _0808211E adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _0808212C _0808211E: adds r0, r4, 0 movs r1, 0x67 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] @@ -836,7 +836,7 @@ sub_8082134: @ 8082134 push {r4,lr} adds r4, r1, 0 adds r0, r2, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _08082148 @@ -855,19 +855,19 @@ sub_8082150: @ 8082150 adds r5, r1, 0 adds r4, r2, 0 adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + bl FieldObjectIsMovementOverridden lsls r0, 24 cmp r0, 0 beq _0808216E adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _0808217C _0808216E: adds r0, r4, 0 movs r1, 0x4A - bl sub_8063CA4 + bl FieldObjectSetHeldMovement ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] @@ -884,7 +884,7 @@ sub_8082184: @ 8082184 adds r5, r1, 0 adds r4, r2, 0 adds r0, r4, 0 - bl FieldObjectCheckIfSpecialAnimFinishedOrInactive + bl FieldObjectCheckHeldMovementStatus lsls r0, 24 cmp r0, 0 beq _080821CA @@ -961,7 +961,7 @@ sub_80821DC: @ 80821DC orrs r1, r2 strb r1, [r0, 0x5] adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished ldrb r0, [r4, 0x18] lsls r0, 28 lsrs r0, 28 @@ -970,7 +970,7 @@ sub_80821DC: @ 80821DC lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] @@ -1069,7 +1069,7 @@ sub_80822CC: @ 80822CC lsls r0, 2 ldr r4, _0808234C @ =gMapObjects adds r0, r4 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + bl FieldObjectIsMovementOverridden lsls r0, 24 cmp r0, 0 beq _08082312 @@ -1079,7 +1079,7 @@ sub_80822CC: @ 80822CC adds r0, r1 lsls r0, 2 adds r0, r4 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _0808236E @@ -1104,7 +1104,7 @@ _08082312: lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement ldrh r0, [r5, 0x12] adds r0, 0x1 strh r0, [r5, 0x12] @@ -1160,7 +1160,7 @@ sub_808237C: @ 808237C lsls r0, 2 ldr r4, _08082408 @ =gMapObjects adds r0, r4 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + bl FieldObjectIsMovementOverridden lsls r0, 24 cmp r0, 0 beq _080823CC @@ -1170,7 +1170,7 @@ sub_808237C: @ 808237C adds r0, r1 lsls r0, 2 adds r0, r4 - bl FieldObjectClearAnimIfSpecialAnimFinished + bl FieldObjectClearHeldMovementIfFinished lsls r0, 24 cmp r0, 0 beq _0808242E @@ -1195,7 +1195,7 @@ _080823CC: lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 - bl sub_8063CA4 + bl FieldObjectSetHeldMovement ldrh r0, [r5, 0x12] adds r0, 0x1 strh r0, [r5, 0x12] diff --git a/asm/union_room_chat.s b/asm/union_room_chat.s index 6c917be27..137ee69c1 100644 --- a/asm/union_room_chat.s +++ b/asm/union_room_chat.s @@ -2999,7 +2999,7 @@ sub_8129B14: @ 8129B14 bl InitBgsFromTemplates ldr r0, _08129B6C @ =gUnknown_845AA94 bl InitWindows - bl reset_temp_tile_data_buffers + bl ResetTempTileDataBuffers bl sub_812AD50 ldr r0, [r4] bl sub_8129BB8 @@ -3199,7 +3199,7 @@ _08129C9C: .4byte gUnknown_203B0E4 sub_8129CA0: @ 8129CA0 push {r4,lr} adds r4, r0, 0 - bl free_temp_tile_data_buffers_if_possible + bl FreeTempTileDataBuffersIfPossible lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -5224,7 +5224,7 @@ sub_812AC08: @ 812AC08 movs r0, 0x1 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r1, _0812AC54 @ =gUnknown_8EAAA6C movs r0, 0x1 movs r2, 0 @@ -5256,7 +5256,7 @@ sub_812AC58: @ 812AC58 movs r0, 0x2 movs r2, 0 movs r3, 0 - bl decompress_and_copy_tile_data_to_vram + bl DecompressAndCopyTileDataToVram ldr r1, _0812AC98 @ =gUnknown_8EA1958 movs r0, 0x2 movs r2, 0 @@ -5510,7 +5510,7 @@ sub_812AE70: @ 812AE70 ldr r4, _0812AE9C @ =gUnknown_845AF58 _0812AE76: adds r0, r4, 0 - bl LoadCompressedObjectPic + bl LoadCompressedSpriteSheet adds r4, 0x8 adds r5, 0x1 cmp r5, 0x4 diff --git a/asm/wild_encounter.s b/asm/wild_encounter.s index 21b97c942..e9fb8a630 100644 --- a/asm/wild_encounter.s +++ b/asm/wild_encounter.s @@ -482,7 +482,7 @@ _08082A8E: lsrs r0, 16 orrs r4, r0 adds r0, r4, 0 - bl GetUnownLetterByPersonality + bl GetUnownLetterByPersonalityLoByte lsls r0, 24 lsrs r0, 24 cmp r0, r5 @@ -493,8 +493,8 @@ _08082A8E: bx r1 thumb_func_end sub_8082A88 - thumb_func_start GetUnownLetterByPersonality -GetUnownLetterByPersonality: @ 8082AB8 + thumb_func_start GetUnownLetterByPersonalityLoByte +GetUnownLetterByPersonalityLoByte: @ 8082AB8 push {lr} adds r2, r0, 0 movs r0, 0xC0 @@ -520,7 +520,7 @@ GetUnownLetterByPersonality: @ 8082AB8 lsrs r0, 24 pop {r1} bx r1 - thumb_func_end GetUnownLetterByPersonality + thumb_func_end GetUnownLetterByPersonalityLoByte thumb_func_start sub_8082AEC sub_8082AEC: @ 8082AEC @@ -1020,8 +1020,8 @@ _08082EB6: _08082EBC: .4byte gSpecialVar_Result thumb_func_end sub_8082E54 - thumb_func_start sub_8082EC0 -sub_8082EC0: @ 8082EC0 + thumb_func_start SweetScentWildEncounter +SweetScentWildEncounter: @ 8082EC0 push {r4,r5,lr} sub sp, 0x4 mov r4, sp @@ -1108,7 +1108,7 @@ _08082F6E: pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_8082EC0 + thumb_func_end SweetScentWildEncounter thumb_func_start sub_8082F78 sub_8082F78: @ 8082F78 diff --git a/berry_fix/payload/include/global.fieldmap.h b/berry_fix/payload/include/global.fieldmap.h index 81f805ee2..f876e5a56 100644 --- a/berry_fix/payload/include/global.fieldmap.h +++ b/berry_fix/payload/include/global.fieldmap.h @@ -309,7 +309,7 @@ struct Camera s32 y; }; -extern struct EventObject gEventObjects[]; +extern struct EventObject gMapObjects[]; extern u8 gSelectedEventObject; extern struct MapHeader gMapHeader; extern struct PlayerAvatar gPlayerAvatar; diff --git a/data/data_83FECCC.s b/data/data_83FECCC.s index 30a3f101a..d10a7d403 100644 --- a/data/data_83FECCC.s +++ b/data/data_83FECCC.s @@ -553,21 +553,8 @@ gUnknown_841F1C8:: @ 841F1C8 gTMCaseMainWindowPalette:: @ 841F408 .incbin "graphics/tm_case/unk_841F408.gbapal" -gUnknown_841F428:: @ 841F428 - .incbin "baserom.gba", 0x41F428, 0x4 - -gUnknown_841F42C:: @ 841F42C - .incbin "baserom.gba", 0x41F42C, 0x10 - -gUnknown_841F43C:: @ 841F43C - .incbin "baserom.gba", 0x41F43C, 0x8 - -gUnknown_841F444:: @ 841F444 - .incbin "baserom.gba", 0x41F444, 0x60 - -gUnknown_841F4A4:: @ 841F4A4 - .incbin "baserom.gba", 0x41F4A4, 0x10 - + .section .rodata.841F4B4 + .align 2 gUnknown_841F4B4:: @ 841F4B4 .incbin "baserom.gba", 0x41F4B4, 0x1F534 @@ -982,17 +969,7 @@ gUnknown_8452F6C:: @ 8452F6C gUnknown_8452F7C:: @ 8452F7C .incbin "baserom.gba", 0x452F7C, 0xC0 -gUnknown_845303C:: @ 845303C - .incbin "baserom.gba", 0x45303C, 0x56 - -gUnknown_8453092:: @ 8453092 - .incbin "baserom.gba", 0x453092, 0x2 - -gUnknown_8453094:: @ 8453094 - .incbin "baserom.gba", 0x453094, 0x4 - .section .rodata.8453F6C - // mailbox_pc.o gUnknown_8453FE8:: @ 8453FE8 .incbin "baserom.gba", 0x453FE8, 0x18 diff --git a/data/map_event_scripts.inc b/data/map_event_scripts.inc index 460477812..f3205689d 100644 --- a/data/map_event_scripts.inc +++ b/data/map_event_scripts.inc @@ -3545,7 +3545,7 @@ CeruleanCave_B1F_EventScript_1BE00C:: @ 81BE00C CeruleanCave_1F_EventScript_1BE00C:: @ 81BE00C .incbin "baserom.gba", 0x1BE00C, 0x58 -gUnknown_81BE064:: @ 81BE064 +EventScript_FldEffRockSmash:: @ 81BE064 .incbin "baserom.gba", 0x1BE064, 0xB9 MtEmber_Exterior_EventScript_1BE11D:: @ 81BE11D @@ -3566,7 +3566,7 @@ SeafoamIslands_B1F_EventScript_1BE11D:: @ 81BE11D VictoryRoad_2F_EventScript_1BE11D:: @ 81BE11D .incbin "baserom.gba", 0x1BE11D, 0x51 -gUnknown_81BE16E:: @ 81BE16E +EventScript_FldEffStrength:: @ 81BE16E .incbin "baserom.gba", 0x1BE16E, 0x149 gUnknown_81BE2B7:: @ 81BE2B7 @@ -3575,7 +3575,7 @@ gUnknown_81BE2B7:: @ 81BE2B7 gUnknown_81BE2FF:: @ 81BE2FF .incbin "baserom.gba", 0x1BE2FF, 0x265 -gUnknown_81BE564:: @ 81BE564 +EventScript_FailSweetScent:: @ 81BE564 .incbin "baserom.gba", 0x1BE564, 0x2A Route2_EventScript_1BE58E:: @ 81BE58E diff --git a/data/maps/FiveIsland_RocketWarehouse/scripts.inc b/data/maps/FiveIsland_RocketWarehouse/scripts.inc index bac115e76..490afe501 100644 --- a/data/maps/FiveIsland_RocketWarehouse/scripts.inc +++ b/data/maps/FiveIsland_RocketWarehouse/scripts.inc @@ -113,7 +113,7 @@ FiveIsland_RocketWarehouse_EventScript_164087:: @ 8164087 EventScript_1640A2:: @ 81640A2 getplayerxy VAR_0x8004, VAR_0x8005 - specialvar VAR_RESULT, player_get_direction_lower_nybble + specialvar VAR_RESULT, GetPlayerFacingDirection compare_var_to_value VAR_RESULT, 2 call_if 1, EventScript_16412E msgbox gUnknown_817B7AE diff --git a/data/specials.inc b/data/specials.inc index 96d0ef253..e6cec1766 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -162,7 +162,7 @@ gSpecials:: @ 815FD60 def_special sub_80CA758 def_special nullsub_75 def_special nullsub_75 - def_special sub_8055DC4 + def_special Overworld_PlaySpecialMapMusic def_special nullsub_75 def_special nullsub_75 def_special nullsub_75 @@ -271,8 +271,8 @@ gSpecials:: @ 815FD60 def_special nullsub_75 def_special nullsub_75 def_special nullsub_75 - def_special sp109_CreatePCMenu - def_special sub_80CA574 + def_special ScrSpecial_CreatePCMenu + def_special HallOfFamePCBeginFade def_special sub_80CA618 def_special nullsub_75 def_special nullsub_75 @@ -296,7 +296,7 @@ gSpecials:: @ 815FD60 def_special nullsub_75 def_special sub_80CAAAC def_special sub_80CAABC - def_special player_get_direction_lower_nybble + def_special GetPlayerFacingDirection def_special nullsub_75 def_special nullsub_75 def_special nullsub_75 @@ -435,7 +435,7 @@ gSpecials:: @ 815FD60 def_special sub_809D764 def_special sub_809D8C0 def_special sub_8147500 - def_special player_get_direction_lower_nybble + def_special GetPlayerFacingDirection def_special sub_80CCDFC def_special sub_80CD008 def_special sub_8147594 diff --git a/include/bg.h b/include/bg.h index 003ffc916..40c51167f 100644 --- a/include/bg.h +++ b/include/bg.h @@ -25,6 +25,17 @@ enum BG_CTRL_ATTR_WRAPAROUND = 8, }; +enum AdjustBgMosaicMode +{ + BG_MOSAIC_SET, + BG_MOSAIC_SET_H, + BG_MOSAIC_INC_H, + BG_MOSAIC_DEC_H, + BG_MOSAIC_SET_V, + BG_MOSAIC_INC_V, + BG_MOSAIC_DEC_V, +}; + enum BgTileAllocMode { BG_TILE_FIND_FREE_SPACE, @@ -71,7 +82,7 @@ u32 ChangeBgY(u8 bg, u32 value, u8 op); u32 ChangeBgY_ScreenOff(u8 bg, u32 value, u8 op); u32 GetBgY(u8 bg); void SetBgAffine(u8 bg, u32 srcCenterX, u32 srcCenterY, s16 dispCenterX, s16 dispCenterY, s16 scaleX, s16 scaleY, u16 rotationAngle); -u8 Unused_AdjustBgMosaic(u8 a1, u8 a2); +u8 AdjustBgMosaic(u8 value, u8 mode); void SetBgTilemapBuffer(u8 bg, void *tilemap); void UnsetBgTilemapBuffer(u8 bg); void* GetBgTilemapBuffer(u8 bg); diff --git a/include/decompress.h b/include/decompress.h index 19b507525..03080fe48 100644 --- a/include/decompress.h +++ b/include/decompress.h @@ -10,15 +10,13 @@ extern u8 gDecompressionBuffer[0x4000]; void LZDecompressWram(const void *src, void *dest); void LZDecompressVram(const void *src, void *dest); -u16 LoadCompressedObjectPic(const struct CompressedSpriteSheet *src); -void LoadCompressedObjectPicOverrideBuffer(const struct CompressedSpriteSheet *src, void *buffer); -bool8 LoadCompressedObjectPicUsingHeap(const struct CompressedSpriteSheet* src); +u16 LoadCompressedSpriteSheet(const struct CompressedSpriteSheet *src); +void LoadCompressedSpriteSheetOverrideBuffer(const struct CompressedSpriteSheet *src, void *buffer); +bool8 LoadCompressedSpriteSheetUsingHeap(const struct CompressedSpriteSheet* src); -void LoadCompressedObjectPalette(const struct CompressedSpritePalette *src); -void LoadCompressedObjectPaletteOverrideBuffer(const struct CompressedSpritePalette *a, void *buffer); -bool8 LoadCompressedObjectPaletteUsingHeap(const struct CompressedSpritePalette *src); - -bool8 sub_800F078(const struct CompressedSpritePalette *src); +void LoadCompressedSpritePalette(const struct CompressedSpritePalette *src); +void LoadCompressedSpritePaletteOverrideBuffer(const struct CompressedSpritePalette *a, void *buffer); +bool8 LoadCompressedSpritePaletteUsingHeap(const struct CompressedSpritePalette *src); void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void* buffer, s32 species); void DecompressPicFromTable_2(const struct CompressedSpriteSheet *src, void* buffer, s32 species); @@ -27,15 +25,12 @@ void DecompressPicFromTable_DontHandleDeoxys(const struct CompressedSpriteSheet void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality); void HandleLoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality); void HandleLoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality); -void sub_800ECC4(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality); +void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality); void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic); void LoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic); void LoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic); -u32 sub_8034974(const u8 *ptr); - -void sub_800F034(const struct CompressedSpriteSheet *src); u32 GetDecompressedDataSize(const u8 *ptr); #endif // GUARD_DECOMPRESS_H diff --git a/include/dma3.h b/include/dma3.h index fcd7bae43..381e1e322 100644 --- a/include/dma3.h +++ b/include/dma3.h @@ -3,10 +3,55 @@ #include "global.h" +// Maximum amount of data we will transfer in one operation +#define MAX_DMA_BLOCK_SIZE 0x1000 + +#define Dma3CopyLarge_(src, dest, size, bit) \ +{ \ + const void *_src = src; \ + void *_dest = dest; \ + u32 _size = size; \ + while (1) \ + { \ + if (_size <= MAX_DMA_BLOCK_SIZE) \ + { \ + DmaCopy##bit(3, _src, _dest, _size); \ + break; \ + } \ + DmaCopy##bit(3, _src, _dest, MAX_DMA_BLOCK_SIZE); \ + _src += MAX_DMA_BLOCK_SIZE; \ + _dest += MAX_DMA_BLOCK_SIZE; \ + _size -= MAX_DMA_BLOCK_SIZE; \ + } \ +} + +#define Dma3CopyLarge16_(src, dest, size) Dma3CopyLarge_(src, dest, size, 16) +#define Dma3CopyLarge32_(src, dest, size) Dma3CopyLarge_(src, dest, size, 32) + +#define Dma3FillLarge_(value, dest, size, bit) \ +{ \ + void *_dest = dest; \ + u32 _size = size; \ + while (1) \ + { \ + if (_size <= MAX_DMA_BLOCK_SIZE) \ + { \ + DmaFill##bit(3, value, _dest, _size); \ + break; \ + } \ + DmaFill##bit(3, value, _dest, MAX_DMA_BLOCK_SIZE); \ + _dest += MAX_DMA_BLOCK_SIZE; \ + _size -= MAX_DMA_BLOCK_SIZE; \ + } \ +} + +#define Dma3FillLarge16_(value, dest, size) Dma3FillLarge_(value, dest, size, 16) +#define Dma3FillLarge32_(value, dest, size) Dma3FillLarge_(value, dest, size, 32) + void ClearDma3Requests(void); void ProcessDma3Requests(void); -int RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode); -int RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode); -int CheckForSpaceForDma3Request(s16 index); +s16 RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode); +s16 RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode); +s16 CheckForSpaceForDma3Request(s16 index); #endif // GUARD_DMA3_H diff --git a/include/event_scripts.h b/include/event_scripts.h index d5ee57d56..917269de4 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -1144,4 +1144,8 @@ extern const u8 gUnknown_81BB084[]; extern const u8 gUnknown_81BB0DF[]; extern const u8 gUnknown_81BB156[]; +extern const u8 EventScript_FldEffStrength[]; +extern const u8 EventScript_FailSweetScent[]; +extern const u8 EventScript_FldEffRockSmash[]; + #endif //GUARD_EVENT_SCRIPTS_H diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 27a7f23d7..83cc263e5 100644 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -76,18 +76,20 @@ u8 GetStepInPlaceDelay32AnimId(u32); u8 npc_block_way(struct MapObject *, s16, s16, u32); void MoveCoords(u8, s16 *, s16 *); bool8 FieldObjectIsSpecialAnimActive(struct MapObject *); -u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *); +u8 FieldObjectClearHeldMovementIfFinished(struct MapObject *); u8 GetFieldObjectIdByXYZ(u16 x, u16 y, u8 z); void sub_8063E28(struct MapObject *, struct Sprite *); -void sub_8063CA4(struct MapObject *, u8); +void FieldObjectSetHeldMovement(struct MapObject *, u8); void npc_coords_shift_still(struct MapObject *); void sub_805FE7C(struct MapObject *, u8); void npc_set_running_behaviour_etc(struct MapObject *, u8); u8 sub_80634F0(u8 direction); u8 sub_8063500(u8 a0); -void sub_805F060(struct MapObject *mapObject, u8 a1); +void EventObjectSetGraphicsId(struct MapObject *mapObject, u8 a1); u8 sub_805EB44(u8, u8, s16, s16); void npc_paltag_set_load(u8 mode); +bool8 FieldObjectIsMovementOverridden(struct MapObject *mapObject); +u8 FieldObjectCheckHeldMovementStatus(struct MapObject *mapObject); // Exported data declarations diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h index 4871bd082..b87de3fef 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -8,7 +8,7 @@ void SetPlayerAvatarExtraStateTransition(u8, u8); u8 GetPlayerAvatarGenderByGraphicsId(u8); bool8 TestPlayerAvatarFlags(u8); void PlayerGetDestCoords(s16 *, s16 *); -u8 player_get_direction_lower_nybble(void); +u8 GetPlayerFacingDirection(void); u8 player_get_direction_upper_nybble(void); u8 player_get_x22(void); @@ -24,5 +24,9 @@ void sub_805DAE4(u8 direction); void SetPlayerAvatarTransitionFlags(u16 a); bool8 IsPlayerFacingSurfableFishableWater(void); void sub_805D2C0(u8 secondaryId); +u8 GetPlayerAvatarObjectId(void); +u8 PlayerGetZCoord(void); +u8 GetPlayerAvatarGraphicsIdByCurrentState(void); +void sub_805CB70(void); #endif //GUARD_FIELD_PLAYER_AVATAR_H diff --git a/include/field_weather.h b/include/field_weather.h index 13a1b4fcb..c3ecd4fa6 100644 --- a/include/field_weather.h +++ b/include/field_weather.h @@ -14,5 +14,7 @@ void SetSav1WeatherFromCurrMapHeader(void); void sub_807B0C4(u16 *, u16 *, u32); void PlayRainStoppingSoundEffect(void); bool8 sub_807AA70(void); +void SetWeatherScreenFadeOut(void); +void sub_807B070(void); #endif // GUARD_WEATHER_H diff --git a/include/fldeff.h b/include/fldeff.h index 364cb7550..e5e7e5f7d 100644 --- a/include/fldeff.h +++ b/include/fldeff.h @@ -1,7 +1,51 @@ #ifndef GUARD_FLDEFF_H #define GUARD_FLDEFF_H -// rock smash +#define FLDEFF_CALL_FUNC_IN_DATA() ((void (*)(void))(((u16)gTasks[taskId].data[8] << 16) | (u16)gTasks[taskId].data[9]))(); + +#define FLDEFF_SET_FUNC_TO_DATA(func) \ +gTasks[taskId].data[8] = (u32)func >> 16; \ +gTasks[taskId].data[9] = (u32)func; + +extern struct MapPosition gPlayerFacingPosition; + +bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId); u8 oei_task_add(void); +// flash + +// cut + +// dig +bool8 SetUpFieldMove_Dig(void); +bool8 FldEff_UseDig(void); + +// rocksmash +bool8 SetUpFieldMove_RockSmash(void); +bool8 FldEff_UseRockSmash(void); + +// berrytree +void nullsub_56(void); + +// poison +void FldEffPoison_Start(void); +bool32 FldEffPoison_IsActive(void); + +// strength +bool8 SetUpFieldMove_Strength(void); +bool8 sub_80D0860(void); + +// teleport +bool8 SetUpFieldMove_Teleport(void); +bool8 FldEff_UseTeleport(void); + +// softboiled +bool8 hm_prepare_dive_probably(void); +void sub_80E56DC(u8 taskId); +void sub_80E5724(u8 taskId); + +// sweetscent +bool8 SetUpFieldMove_SweetScent(void); +bool8 FldEff_SweetScent(void); + #endif // GUARD_FLDEFF_H diff --git a/include/fldeff_80F9BCC.h b/include/fldeff_80F9BCC.h deleted file mode 100644 index 3960c6c65..000000000 --- a/include/fldeff_80F9BCC.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef GUARD_FLDEFF_80F9BCC_H -#define GUARD_FLDEFF_80F9BCC_H - -#include "global.h" - -// Exported type declarations - -// Exported RAM declarations - -// Exported ROM declarations - -void sub_80FA5E4(s16 id, s16 x, s16 y); -void sub_80FA794(s16 x, s16 y); -void overworld_poison_effect(void); - -#endif //GUARD_FLDEFF_80F9BCC_H diff --git a/include/gba/defines.h b/include/gba/defines.h index a0ef506dd..5489f9e14 100644 --- a/include/gba/defines.h +++ b/include/gba/defines.h @@ -40,6 +40,9 @@ #define BG_SCREEN_ADDR(n) (void *)(BG_VRAM + (BG_SCREEN_SIZE * (n))) #define BG_TILE_ADDR(n) (void *)(BG_VRAM + (0x80 * (n))) +#define BG_TILE_H_FLIP(n) (0x400 + (n)) +#define BG_TILE_V_FLIP(n) (0x800 + (n)) + // text-mode BG #define OBJ_VRAM0 (void *)(VRAM + 0x10000) #define OBJ_VRAM0_SIZE 0x8000 diff --git a/include/gba/multiboot.h b/include/gba/multiboot.h index e88b43a19..a8bc8fddf 100644 --- a/include/gba/multiboot.h +++ b/include/gba/multiboot.h @@ -18,9 +18,9 @@ struct MultiBootParam u8 response_bit; u8 client_bit; u8 reserved1; - u8 *boot_srcp; - u8 *boot_endp; - u8 *masterp; + const u8 *boot_srcp; + const u8 *boot_endp; + const u8 *masterp; u8 *reserved2[MULTIBOOT_NCHILD]; u32 system_work2[4]; u8 sendflag; diff --git a/include/global.h b/include/global.h index 050c311e4..e1f63213a 100644 --- a/include/global.h +++ b/include/global.h @@ -209,7 +209,7 @@ struct SaveBlock2 { /*0x000*/ u8 playerName[PLAYER_NAME_LENGTH]; /*0x008*/ u8 playerGender; // MALE, FEMALE - /*0x009*/ u8 specialSaveWarp; + /*0x009*/ u8 specialSaveWarpFlags; /*0x00A*/ u8 playerTrainerId[4]; /*0x00E*/ u16 playTimeHours; /*0x010*/ u8 playTimeMinutes; @@ -726,8 +726,14 @@ struct SaveBlock1 /*0x3D38*/ struct TrainerTowerLog unkArray[4]; }; -extern struct SaveBlock1* gSaveBlock1Ptr; +struct MapPosition +{ + s16 x; + s16 y; + s8 height; +}; +extern struct SaveBlock1* gSaveBlock1Ptr; extern u8 gReservedSpritePaletteCount; #endif // GUARD_GLOBAL_H diff --git a/include/hall_of_fame.h b/include/hall_of_fame.h index 2dc9fae41..1d2122399 100644 --- a/include/hall_of_fame.h +++ b/include/hall_of_fame.h @@ -7,5 +7,8 @@ void CB2_DoHallOfFameScreen(void); void CB2_DoHallOfFameScreenDontSaveData(void); void CB2_DoHallOfFamePC(void); void sub_8175280(void); +void sub_80F2978(void); +void HallOfFamePCBeginFade(void); +void ReturnFromHallOfFamePC(void); #endif // GUARD_HALL_OF_FAME_H diff --git a/include/item_use.h b/include/item_use.h index 0a45762f7..db98533f1 100644 --- a/include/item_use.h +++ b/include/item_use.h @@ -38,5 +38,7 @@ void ItemUseOutOfBattle_EscapeRope(u8 taskId); void ItemUseOutOfBattle_EnigmaBerry(u8 taskId); void ItemUseInBattle_EnigmaBerry(u8 taskId); void ItemUseOutOfBattle_Itemfinder(u8 taskId); +void sub_80A1C44(u8 taskId); +u8 CanUseEscapeRopeOnCurrMap(void); #endif //GUARD_ITEM_USE_H diff --git a/include/mail.h b/include/mail.h index 9ffccbb5b..3ba731c66 100644 --- a/include/mail.h +++ b/include/mail.h @@ -3,6 +3,8 @@ #include "global.h" +#define MAIL_WORDS_COUNT 9 + #define IS_ITEM_MAIL(itemId)((itemId == ITEM_ORANGE_MAIL \ || itemId == ITEM_HARBOR_MAIL \ || itemId == ITEM_GLITTER_MAIL \ @@ -17,10 +19,6 @@ || itemId == ITEM_RETRO_MAIL)) -bool8 MonHasMail(struct Pokemon *mon); -void TakeMailFromMon(struct Pokemon *mon); -u8 GiveMailToMon2(struct Pokemon *mon, struct MailStruct *mail); -void ClearMailStruct(struct MailStruct *mail); void sub_80BEBEC(struct MailStruct * mail, void (* callback)(void), u8 a2); #endif // GUARD_MAIL_H diff --git a/include/mail_data.h b/include/mail_data.h index 79a4a7851..a5795ed7e 100644 --- a/include/mail_data.h +++ b/include/mail_data.h @@ -9,7 +9,16 @@ // Exported ROM declarations -u16 sub_80D45E8(u16, u16 *); +void ClearMailData(void); +void ClearMailStruct(struct MailStruct *mail); +bool8 MonHasMail(struct Pokemon *mon); +u8 GiveMailToMon(struct Pokemon *mon, u16 itemId); +u16 SpeciesToMailSpecies(u16 species, u32 personality); +u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *buffer); +u8 GiveMailToMon2(struct Pokemon *mon, struct MailStruct *mail); +void TakeMailFromMon(struct Pokemon *mon); +void ClearMailItemId(u8 mailId); +u8 TakeMailFromMon2(struct Pokemon *mon); bool8 ItemIsMail(u16 itemId); #endif //GUARD_MAIL_DATA_H diff --git a/include/menu.h b/include/menu.h index bc45e7e61..3231587de 100644 --- a/include/menu.h +++ b/include/menu.h @@ -21,25 +21,25 @@ void AddTextPrinterParameterized3(u8, u8, u8, u8, const void *, s8, const u8 *); void sub_8198070(u8 windowId, bool8 copyToVram); void SetWindowTemplateFields(struct WindowTemplate* template, u8 priority, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 palNum, u16 baseBlock); void SetWindowBorderStyle(u8 windowId, bool8 copyToVram, u16 tileStart, u8 palette); -void schedule_bg_copy_tilemap_to_vram(u8 bgNum); +void ScheduleBgCopyTilemapToVram(u8 bgNum); void PrintMenuTable(u8 idx, u8 nstrs, const struct MenuAction *strs); void InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 idx, u8 nstrs,u8); u8 GetMenuCursorPos(void); s8 ProcessMenuInput(void); s8 ProcessMenuInputNoWrapAround(void); void blit_move_info_icon(u8 winId, u8 a2, u16 x, u16 y); -void reset_temp_tile_data_buffers(void); -int decompress_and_copy_tile_data_to_vram(u8 bg_id, const void *src, int size, u16 offset, u8 mode); -bool8 free_temp_tile_data_buffers_if_possible(void); +void ResetTempTileDataBuffers(void); +void *DecompressAndCopyTileDataToVram(u8 bg_id, const void *src, u32 size, u16 offset, u8 mode); +bool8 FreeTempTileDataBuffersIfPossible(void); u64 sub_8198A50(struct WindowTemplate*, u8, u8, u8, u8, u8, u8, u16); // returns something but it isn't used, fix when menu.s is decomp'd //void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos); s8 Menu_ProcessInputNoWrapClearOnChoose(void); -void do_scheduled_bg_tilemap_copies_to_vram(void); -void clear_scheduled_bg_copies_to_vram(void); +void DoScheduledBgTilemapCopiesToVram(void); +void ClearScheduledBgCopiesToVram(void); void AddTextPrinterParameterized4(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const struct TextColor *color, s8 speed, const u8 *str); void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u16 a3); void ClearMenuWindow(u8 windowId, bool8 copyToVram); -void *sub_80F68F0(u8 bgId, const void *src, u32 size, u16 offset, u8 mode); +void *DecompressAndCopyTileDataToVram2(u8 bgId, const void *src, u32 size, u16 offset, u8 mode); void CreateWindow_SnapRight_StdPal(u8, u8, u8, u8, u16); void Menu_PrintHelpSystemUIHeader(const u8 *, const u8 *, u8, u32, u8); void PrintTextOnRightSnappedWindow(const u8 *, u32, u8); diff --git a/include/multiboot.h b/include/multiboot.h index 4b4a3693a..ee0a34c83 100644 --- a/include/multiboot.h +++ b/include/multiboot.h @@ -18,6 +18,6 @@ void MultiBootInit(struct MultiBootParam *mp); int MultiBootMain(struct MultiBootParam *mp); void MultiBootStartProbe(struct MultiBootParam *mp); void MultiBootStartMaster(struct MultiBootParam *mp, const u8 *srcp, int length, u8 palette_color, s8 palette_speed); -int MultiBootCheckComplete(struct MultiBootParam *mp); +bool32 MultiBootCheckComplete(struct MultiBootParam *mp); #endif // GUARD_MULTIBOOT_H diff --git a/include/new_game.h b/include/new_game.h index c495a9585..a45b090c8 100644 --- a/include/new_game.h +++ b/include/new_game.h @@ -14,5 +14,6 @@ void NewGameInitData(void); void ResetMiniGamesResults(void); void sub_808447C(void); void Sav2_ClearSetDefault(void); +void ResetMenuAndMonGlobals(void); #endif // GUARD_NEW_GAME_H diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h index ed933089f..caa7cfc3c 100644 --- a/include/new_menu_helpers.h +++ b/include/new_menu_helpers.h @@ -9,7 +9,7 @@ void sub_81973A4(void); void sub_81973C4(u8, u8); void sub_819746C(u8 windowId, bool8 copyToVram); void sub_81973FC(u8, u8); -u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed, void ( *callback)(u16, struct TextPrinter *), u8 fgColor, u8 bgColor, u8 shadowColor); +u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16), u8 fgColor, u8 bgColor, u8 shadowColor); void DisplayItemMessageOnField(u8 taskId, u8 bgId, const u8 *src, TaskFunc callback); void sub_8197434(u8 a0, u8 a1); void SetStandardWindowBorderStyle(u8 a0, u8 a1); @@ -19,18 +19,34 @@ void ClearDialogWindowAndFrame(u8, u8); u8 GetTextSpeedSetting(void); void sub_80F6E9C(void); void DrawDialogueFrame(u8 windowId, bool8 transfer); -void sub_80F7974(const u8 *); -u8 GetStartMenuWindowId(void); +void sub_80F7974(const u8 * text); void sub_80F7998(void); -void sub_80F69E8(u8 bgId, const void *src, u32 size, u16 offset, u8 mode); +void sub_80F79A4(void); void DrawStdWindowFrame(u8 windowId, bool8 copyNow); void InitStandardTextBoxWindows(void); void ResetBg0(void); -void Menu_LoadStdPalAt(u16); -void * malloc_and_decompress(const void * src, u32 * size); -u16 sub_80F796C(void); +void ResetBgPositions(void); +void CopyRectIntoAltRect(u8 bgId, u16 *dest, u8 left, u8 top, u8 width, u8 height); void SetBgRectPal(u8 bgId, u8 left, u8 top, u8 width, u8 height, u8 palette); -void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void * gfx, u32 size, u16 a3, u8 a4); +void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void *src, u32 size, u16 offset, u8 mode); +void DecompressAndLoadBgGfxUsingHeap2(u8 bgId, const void *src, u32 size, u16 offset, u8 mode); +void Menu_LoadStdPal(void); +void Menu_LoadStdPalAt(u16); +void * MallocAndDecompress(const void * src, u32 * size); +u16 GetStdWindowBaseTileNum(void); void ClearStdWindowAndFrame(u8 taskId, bool8 copyNow); +void sub_80F6E9C(void); +void sub_80F771C(bool8 copyToVram); +void AddTextPrinterWithCustomSpeedForMessage(bool8 allowSkippingDelayWithButtonPress, u8 speed); +void AddTextPrinterDiffStyle(bool8 allowSkippingDelayWithButtonPress); +void AddTextPrinterForMessage(bool8 allowSkippingDelayWithButtonPress); +void SetStdWindowBorderStyle(u8 windowId, bool8 copyToVram); +void sub_80F7768(u8 windowId, bool8 copyToVram); +void DisplayYesNoMenuDefaultYes(void); +void DisplayYesNoMenuDefaultNo(void); +u8 sub_80F78E0(u8 windowId); +u8 GetStartMenuWindowId(void); +void RemoveStartMenuWindow(void); +void SetDefaultFontsPointer(void); #endif // GUARD_NEW_MENU_HELPERS_H diff --git a/include/overworld.h b/include/overworld.h index fed1a33a5..bab4797ff 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -81,12 +81,12 @@ void mapldr_default(void); u32 GetGameStat(u8); -void sub_8056938(void); +void CB2_ContinueSavedGame(void); void sub_8055D5C(struct WarpData *); void sub_80572A8(void); void sub_805726C(void); void sub_8057430(void); -void sub_8055DC4(void); +void Overworld_PlaySpecialMapMusic(void); u8 GetCurrentRegionMapSectionId(void); @@ -111,11 +111,10 @@ void Overworld_ResetStateAfterTeleport(void); void Overworld_FadeOutMapMusic(void); void sub_805671C(void); -void sub_8055DC4(void); bool8 sub_8055FC4(void); bool8 is_light_level_8_or_9(u8 mapType); bool32 sub_8055C9C(void); -void sub_8054D70(void); +void Overworld_ResetStateAfterDigEscRope(void); bool32 sub_8058244(void); #endif //GUARD_ROM4_H diff --git a/include/palette.h b/include/palette.h index 31c8ffefe..78f398873 100644 --- a/include/palette.h +++ b/include/palette.h @@ -43,7 +43,7 @@ struct PaletteFadeControl extern struct PaletteFadeControl gPaletteFade; extern u32 gPlttBufferTransferPending; -extern u8 gPaletteDecompressionBuffer[]; +extern u8 *gPaletteDecompressionBuffer; extern u16 gPlttBufferUnfaded[PLTT_BUFFER_SIZE]; extern u16 gPlttBufferFaded[PLTT_BUFFER_SIZE]; diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h index 593715b7d..cd8c798f9 100644 --- a/include/pokemon_icon.h +++ b/include/pokemon_icon.h @@ -15,5 +15,6 @@ void FreeMonIconPalettes(void); u16 sub_8096FD4(u16); u8 sub_8096ECC(u16, void (*)(struct Sprite *), s16, s16, u8, bool32); void sub_8097070(struct Sprite *); +u16 GetUnownLetterByPersonality(u32 personality); #endif // GUARD_POKEMON_ICON_H diff --git a/include/quest_log.h b/include/quest_log.h index cdd28371f..4fb4fe0fa 100644 --- a/include/quest_log.h +++ b/include/quest_log.h @@ -26,6 +26,11 @@ void sub_8115748(u16); u8 sub_8112CAC(void); bool8 sub_81119D4(void (*func)(void)); void sub_8111F38(u16, u16); +void sub_8111134(void); +void sub_8112EDC(u8 a0); +u8 sub_8112EB4(void); +void sub_8113018(const u8 * text, u8 mode); +void MapNamePopupWindowIdSetDummy(void); extern u8 gUnknown_203ADFA; diff --git a/include/reset_save_heap.h b/include/reset_save_heap.h new file mode 100644 index 000000000..8cb038906 --- /dev/null +++ b/include/reset_save_heap.h @@ -0,0 +1,13 @@ +#ifndef GUARD_RESET_SAVE_HEAP_H +#define GUARD_RESET_SAVE_HEAP_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations + +void sub_8079B7C(void); + +#endif //GUARD_RESET_SAVE_HEAP_H + diff --git a/include/save_location.h b/include/save_location.h index cd499643e..4e01c64e4 100644 --- a/include/save_location.h +++ b/include/save_location.h @@ -1,12 +1,15 @@ #ifndef GUARD_SAVE_LOCATION_H #define GUARD_SAVE_LOCATION_H -#include "global.h" +// specialSaveWarp flags +#define CONTINUE_GAME_WARP (1 << 0) +#define POKECENTER_SAVEWARP (1 << 1) +#define LOBBY_SAVEWARP (1 << 2) +#define UNK_SPECIAL_SAVE_WARP_FLAG_3 (1 << 3) -bool32 sub_81AFCEC(void); void TrySetMapSaveWarpStatus(void); -void sub_81AFDA0(void); -void sub_81AFDD0(void); bool32 IsCurMapPokeCenter(void); +void sub_810B810(void); +void sub_810B82C(void); -#endif // GUARD_SAVE_LOCATION_H +#endif // GUARD_SAVE_LOCATION_H
\ No newline at end of file diff --git a/include/script.h b/include/script.h index 8ffbe1563..4e8b8c305 100644 --- a/include/script.h +++ b/include/script.h @@ -72,6 +72,7 @@ void sub_80699A4(void); void sub_8069970(void); void sub_8069A20(void); void sub_8069A2C(void); +bool8 IsMsgSignPost(void); extern const u8 *gRAMScriptPtr; diff --git a/include/script_menu.h b/include/script_menu.h index f82b061a5..c1e32beae 100644 --- a/include/script_menu.h +++ b/include/script_menu.h @@ -10,6 +10,9 @@ bool8 ScriptMenu_MultichoiceWithDefault(u8 left, u8 top, u8 var3, u8 var4, u8 va bool8 ScriptMenu_YesNo(u8 var1, u8 var2); bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 a4, u8 columnCount); bool8 ScriptMenu_ShowPokemonPic(u16 var1, u8 var2, u8 var3); +bool32 ScrSpecial_CreatePCMenu(void); +void ScriptMenu_DisplayPCStartupPrompt(void); + bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void); void sub_809D6D4(void); diff --git a/include/text.h b/include/text.h index 2e6a8c837..07f6b29c2 100644 --- a/include/text.h +++ b/include/text.h @@ -230,6 +230,7 @@ u16 Font4Func(struct TextPrinter *textPrinter); u16 Font5Func(struct TextPrinter *textPrinter); u16 Font7Func(struct TextPrinter *textPrinter); u16 Font8Func(struct TextPrinter *textPrinter); +u16 Font6Func(struct TextPrinter *textPrinter); void TextPrinterInitDownArrowCounters(struct TextPrinter *textPrinter); void TextPrinterDrawDownArrow(struct TextPrinter *textPrinter); diff --git a/include/text_window.h b/include/text_window.h index cc1de56ae..c1463a9c7 100644 --- a/include/text_window.h +++ b/include/text_window.h @@ -20,11 +20,14 @@ void rbox_fill_rectangle(u8 windowId); const u16* stdpal_get(u8 id); const u16* GetOverworldTextboxPalettePtr(void); void sub_8098C6C(u8 bg, u16 destOffset, u8 palOffset); -void TextWindow_SetBubbleFrame_841F1C8(u8 windowId, u16 tileStart, u8 palette); +void TextWindow_LoadResourcesStdFrame0(u8 windowId, u16 tileStart, u8 palette); void TextWindow_SetStdFrame0_WithPal(u8 windowId, u16 tileStart, u8 palette); void TextWindow_SetUserSelectedFrame(u8 windowId, u16 tileStart, u8 palette); void LoadUserWindowBorderGfx(u8 windowId, u16 tileStart, u8 palette); void sub_814FDA0(u8 windowId, u16 tileStart, u8 palette); void DrawTextBorderOuter(u8 windowId, u16 tileStart, u8 palette); +void TextWindow_LoadTilesStdFrame1(u8 windowId, u16 destOffset); +void sub_814FE6C(u8 windowId, u16 destOffset, u8 palIdx); +void sub_814FEEC(u8 windowId, u16 destOffset, u8 palIdx); #endif // GUARD_TEXT_WINDOW_H diff --git a/include/wild_encounter.h b/include/wild_encounter.h index b4c42116a..bf53ed6ee 100644 --- a/include/wild_encounter.h +++ b/include/wild_encounter.h @@ -43,6 +43,7 @@ u16 GetLocalWildMon(bool8 *isWaterMon); u16 GetLocalWaterMon(void); bool8 UpdateRepelCounter(void); void sub_8082740(u8); -u8 GetUnownLetterByPersonality(u32 personality); +u8 GetUnownLetterByPersonalityLoByte(u32 personality); +bool8 SweetScentWildEncounter(void); #endif // GUARD_WILD_ENCOUNTER_H diff --git a/ld_script.txt b/ld_script.txt index 2664d8010..22672e178 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -61,10 +61,10 @@ SECTIONS { src/sprite.o(.text); src/string_util.o(.text); asm/link.o(.text); - asm/multiboot.o(.text); + src/multiboot.o(.text); asm/main_menu.o(.text); asm/battle_controllers.o(.text); - asm/decompress.o(.text); + src/decompress.o(.text); asm/battle_1.o(.text); asm/battle_2.o(.text); asm/battle_util.o(.text); @@ -87,7 +87,7 @@ SECTIONS { asm/pokeball.o(.text); src/load_save.o(.text); asm/trade.o(.text); - asm/play_time.o(.text); + src/play_time.o(.text); asm/new_game.o(.text); asm/overworld.o(.text); src/fieldmap.o(.text); @@ -117,7 +117,7 @@ SECTIONS { asm/reshow_battle_screen.o(.text); asm/battle_anim_status_effects.o(.text); asm/title_screen.o(.text); - asm/reset_save_heap.o(.text); + src/reset_save_heap.o(.text); asm/field_weather.o(.text); asm/field_weather_effects.o(.text); asm/field_fadetransition.o(.text); @@ -135,7 +135,7 @@ SECTIONS { asm/pokemon_icon.o(.text); asm/script_movement.o(.text); asm/fldeff_cut.o(.text); - asm/mail_data.o(.text); + src/mail_data.o(.text); asm/map_name_popup.o(.text); src/item_menu_icons.o(.text); src/battle_anim_mon_movement.o(.text); @@ -149,7 +149,7 @@ SECTIONS { asm/field_poison.o(.text); asm/pokemon_size_record.o(.text); asm/pc_screen_effect.o(.text); - asm/fldeff_poison.o(.text); + src/fldeff_poison.o(.text); src/fldeff_berrytree.o(.text); src/field_special_scene.o(.text); asm/safari_zone.o(.text); @@ -181,16 +181,17 @@ SECTIONS { src/heal_location.o(.text); asm/region_map.o(.text); src/battle_ai_script_commands.o(.text); - asm/rom6.o(.text); + src/fldeff_rocksmash.o(.text); + src/fldeff_dig.o(.text); asm/fldeff_flash.o(.text); asm/post_battle_event_funcs.o(.text); src/prof_pc.o(.text); - asm/hof_pc.o(.text); + src/hof_pc.o(.text); asm/field_specials.o(.text); asm/battle_records.o(.text); asm/evolution_scene.o(.text); src/coins.o(.text); - asm/fldeff_strength.o(.text); + src/fldeff_strength.o(.text); asm/battle_transition.o(.text); asm/battle_controller_link_partner.o(.text); asm/battle_message.o(.text); @@ -202,7 +203,7 @@ SECTIONS { asm/field_effect_helpers.o(.text); asm/battle_anim_sound_tasks.o(.text); asm/battle_controller_safari.o(.text); - asm/fldeff_sweetscent.o(.text); + src/fldeff_sweetscent.o(.text); asm/battle_anim_effects_3.o(.text); asm/learn_move.o(.text); src/fldeff_softboiled.o(.text); @@ -218,7 +219,7 @@ SECTIONS { asm/clear_save_data_screen.o(.text); asm/evolution_graphics.o(.text); src/fldeff_teleport.o(.text); - asm/new_menu_helpers.o(.text); + src/new_menu_helpers.o(.text); asm/box_party_pokemon_dropdown.o(.text); asm/save_menu_util.o(.text); asm/map_preview_screen.o(.text); @@ -227,7 +228,7 @@ SECTIONS { asm/pokedex_screen.o(.text); asm/list_menu.o(.text); asm/item_menu.o(.text); - asm/save_location.o(.text); + src/save_location.o(.text); src/bag.o(.text); src/trainer_pokemon_sprites.o(.text); src/vs_seeker.o(.text); @@ -419,6 +420,9 @@ SECTIONS { data/data_83FECCC.o(.rodata); data/strings.o(.rodata); data/data_83FECCC.o(.rodata.841EE44); + src/new_menu_helpers.o(.rodata); + data/data_83FECCC.o(.rodata.841F4B4); + src/save_location.o(.rodata); src/bag.o(.rodata); src/trainer_pokemon_sprites.o(.rodata); src/vs_seeker.o(.rodata); @@ -211,7 +211,7 @@ void sub_810B858(void) InitWindows(gUnknown_84530E4); DeactivateAllTextPrinters(); TextWindow_SetUserSelectedFrame(0, 0x64, 0xE0); - TextWindow_SetBubbleFrame_841F1C8(0, 0x6D, 0xD0); + TextWindow_LoadResourcesStdFrame0(0, 0x6D, 0xD0); TextWindow_SetStdFrame0_WithPal(0, 0x81, 0xC0); LoadPalette(gUnknown_8453098, 0xF0, 0x20); for (i = 0; i < 3; i++) @@ -219,7 +219,7 @@ void sub_810B858(void) FillWindowPixelBuffer(i, 0x00); PutWindowTilemap(i); } - schedule_bg_copy_tilemap_to_vram(0); + ScheduleBgCopyTilemapToVram(0); for (i = 0; i < 11; i++) { gUnknown_203AD34[i] = 0xFF; @@ -258,7 +258,7 @@ u8 sub_810B9DC(u8 a0, u8 a1) { SetWindowBorderStyle(gUnknown_203AD34[a0], FALSE, 0x081, 0x0C); } - schedule_bg_copy_tilemap_to_vram(0); + ScheduleBgCopyTilemapToVram(0); } return gUnknown_203AD34[a0]; } @@ -268,7 +268,7 @@ void sub_810BA3C(u8 a0) ClearMenuWindow(gUnknown_203AD34[a0], FALSE); ClearWindowTilemap(gUnknown_203AD34[a0]); RemoveWindow(gUnknown_203AD34[a0]); - schedule_bg_copy_tilemap_to_vram(0); + ScheduleBgCopyTilemapToVram(0); gUnknown_203AD34[a0] = 0xFF; } @@ -289,7 +289,7 @@ void sub_810BA9C(u8 a0) ClearWindowTilemap(gUnknown_203AD34[a0]); RemoveWindow(gUnknown_203AD34[a0]); PutWindowTilemap(1); - schedule_bg_copy_tilemap_to_vram(0); + ScheduleBgCopyTilemapToVram(0); gUnknown_203AD34[a0] = 0xFF; } diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c index 6343b55cd..ff3d26b65 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -6,6 +6,7 @@ #include "constants/abilities.h" #include "constants/battle_ai.h" #include "constants/battle_move_effects.h" +#include "constants/moves.h" extern u16 Random(void); extern void sub_80C7164(void); @@ -230,10 +231,7 @@ static const BattleAICmdFunc sBattleAICmdTable[] = BattleAICmd_if_not_taunted, // 0x5D }; -#ifdef NONMATCHING -static -#endif -const u16 sDiscouragedPowerfulMoveEffects[] = +static const u16 sDiscouragedPowerfulMoveEffects[] = { EFFECT_EXPLOSION, EFFECT_DREAM_EATER, @@ -970,331 +968,69 @@ static void BattleAICmd_get_move_power(void) gAIScriptPtr += 1; } -// still a nonmatching -#ifdef NONMATCHING static void BattleAICmd_is_most_powerful_move(void) { - int i, j; - s32 damages[MAX_MON_MOVES]; + s32 i, checkedMove; + s32 moveDmgs[4]; for (i = 0; sDiscouragedPowerfulMoveEffects[i] != 0xFFFF; i++) + { if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].effect == sDiscouragedPowerfulMoveEffects[i]) break; + } if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].power > 1 - && sDiscouragedPowerfulMoveEffects[i] == 0xFFFF) + && sDiscouragedPowerfulMoveEffects[i] == 0xFFFF) { gDynamicBasePower = 0; - eDynamicMoveType = 0; - eDmgMultiplier = 1; + gBattleStruct->dynamicMoveType = 0; + gBattleScripting.dmgMultiplier = 1; gMoveResultFlags = 0; gCritMultiplier = 1; - for (i = 0; i < MAX_MON_MOVES; i++) + for (checkedMove = 0; checkedMove < MAX_MON_MOVES; checkedMove++) { - for (j = 0; sDiscouragedPowerfulMoveEffects[j] != 0xFFFF; j++) - { // _08108276 - if (gBattleMoves[gBattleMons[gBankAttacker].moves[i]].effect == sDiscouragedPowerfulMoveEffects[j]) + for (i = 0; sDiscouragedPowerfulMoveEffects[i] != 0xFFFF; i++) + { + if (gBattleMoves[gBattleMons[sBattler_AI].moves[checkedMove]].effect == sDiscouragedPowerfulMoveEffects[i]) break; } - // _081082BA - if (gBattleMons[gBankAttacker].moves[i] - && sDiscouragedPowerfulMoveEffects[j] == 0xFFFF - && gBattleMoves[gBattleMons[gBankAttacker].moves[i]].power > 1) + if (gBattleMons[sBattler_AI].moves[checkedMove] != MOVE_NONE + && sDiscouragedPowerfulMoveEffects[i] == 0xFFFF + && gBattleMoves[gBattleMons[sBattler_AI].moves[checkedMove]].power > 1) { - gCurrentMove = gBattleMons[gBankAttacker].moves[i]; - AI_CalcDmg(gBankAttacker, gBankTarget); - TypeCalc(gCurrentMove, gBankAttacker, gBankTarget); - damages[i] = (gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[i]) / 100; - - if (damages[i] == 0) // moves always do at least 1 damage. - damages[i] = 1; + gCurrentMove = gBattleMons[sBattler_AI].moves[checkedMove]; + AI_CalcDmg(sBattler_AI, gBattlerTarget); + TypeCalc(gCurrentMove, sBattler_AI, gBattlerTarget); + moveDmgs[checkedMove] = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[checkedMove] / 100; + if (moveDmgs[checkedMove] == 0) + moveDmgs[checkedMove] = 1; } else { - damages[i] = 0; + moveDmgs[checkedMove] = 0; } } - for (i = 0; i < MAX_MON_MOVES; i++) - if (damages[i] > damages[AI_THINKING_STRUCT->movesetIndex]) + for (checkedMove = 0; checkedMove < MAX_MON_MOVES; checkedMove++) + { + if (moveDmgs[checkedMove] > moveDmgs[AI_THINKING_STRUCT->movesetIndex]) break; + } - if (i == MAX_MON_MOVES) - AI_THINKING_STRUCT->funcResult = 2; + if (checkedMove == MAX_MON_MOVES) + AI_THINKING_STRUCT->funcResult = MOVE_MOST_POWERFUL; // Is the most powerful. else - AI_THINKING_STRUCT->funcResult = 1; + AI_THINKING_STRUCT->funcResult = MOVE_NOT_MOST_POWERFUL; // Not the most powerful. } else { - AI_THINKING_STRUCT->funcResult = 0; + AI_THINKING_STRUCT->funcResult = MOVE_POWER_DISCOURAGED; // Highly discouraged in terms of power. } - gAIScriptPtr += 1; + gAIScriptPtr++; } -#else -NAKED -static void BattleAICmd_is_most_powerful_move(void) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x14\n\ - movs r3, 0\n\ - ldr r0, _080C80A4 @ =sDiscouragedPowerfulMoveEffects\n\ - ldrh r1, [r0]\n\ - ldr r5, _080C80A8 @ =0x0000ffff\n\ - ldr r6, _080C80AC @ =gBattleMoves\n\ - ldr r2, _080C80B0 @ =gBattleResources\n\ - cmp r1, r5\n\ - beq _080C7FA2\n\ - ldr r0, [r2]\n\ - ldr r0, [r0, 0x14]\n\ - ldrh r1, [r0, 0x2]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r6\n\ - ldrb r4, [r0]\n\ - ldr r1, _080C80A4 @ =sDiscouragedPowerfulMoveEffects\n\ -_080C7F92:\n\ - ldrh r0, [r1]\n\ - cmp r4, r0\n\ - beq _080C7FA2\n\ - adds r1, 0x2\n\ - adds r3, 0x1\n\ - ldrh r0, [r1]\n\ - cmp r0, r5\n\ - bne _080C7F92\n\ -_080C7FA2:\n\ - ldr r0, [r2]\n\ - ldr r0, [r0, 0x14]\n\ - ldrh r1, [r0, 0x2]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r6\n\ - ldrb r0, [r0, 0x1]\n\ - cmp r0, 0x1\n\ - bhi _080C7FB8\n\ - b _080C8142\n\ -_080C7FB8:\n\ - lsls r0, r3, 1\n\ - ldr r1, _080C80A4 @ =sDiscouragedPowerfulMoveEffects\n\ - adds r0, r1\n\ - ldrh r3, [r0]\n\ - ldr r0, _080C80A8 @ =0x0000ffff\n\ - cmp r3, r0\n\ - beq _080C7FC8\n\ - b _080C8142\n\ -_080C7FC8:\n\ - ldr r0, _080C80B4 @ =gDynamicBasePower\n\ - movs r1, 0\n\ - strh r1, [r0]\n\ - ldr r0, _080C80B8 @ =gBattleStruct\n\ - ldr r0, [r0]\n\ - strb r1, [r0, 0x13]\n\ - ldr r0, _080C80BC @ =gBattleScripting\n\ - movs r2, 0x1\n\ - strb r2, [r0, 0xE]\n\ - ldr r0, _080C80C0 @ =gMoveResultFlags\n\ - strb r1, [r0]\n\ - ldr r0, _080C80C4 @ =gCritMultiplier\n\ - strb r2, [r0]\n\ - movs r6, 0\n\ - mov r9, r3\n\ - ldr r2, _080C80A4 @ =sDiscouragedPowerfulMoveEffects\n\ - ldrh r2, [r2]\n\ - str r2, [sp, 0x10]\n\ -_080C7FEC:\n\ - movs r3, 0\n\ - ldr r5, _080C80C8 @ =gBattleMons\n\ - lsls r4, r6, 1\n\ - ldr r7, _080C80CC @ =sBattler_AI\n\ - lsls r0, r6, 2\n\ - mov r8, r0\n\ - adds r1, r6, 0x1\n\ - mov r10, r1\n\ - ldr r2, [sp, 0x10]\n\ - cmp r2, r9\n\ - beq _080C8030\n\ - ldr r2, _080C80AC @ =gBattleMoves\n\ - ldrb r1, [r7]\n\ - movs r0, 0x58\n\ - muls r0, r1\n\ - adds r0, r4, r0\n\ - adds r1, r5, 0\n\ - adds r1, 0xC\n\ - adds r0, r1\n\ - ldrh r1, [r0]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r2\n\ - ldrb r2, [r0]\n\ - ldr r1, _080C80A4 @ =sDiscouragedPowerfulMoveEffects\n\ -_080C8020:\n\ - ldrh r0, [r1]\n\ - cmp r2, r0\n\ - beq _080C8030\n\ - adds r1, 0x2\n\ - adds r3, 0x1\n\ - ldrh r0, [r1]\n\ - cmp r0, r9\n\ - bne _080C8020\n\ -_080C8030:\n\ - ldrb r1, [r7]\n\ - movs r0, 0x58\n\ - muls r0, r1\n\ - adds r0, r4, r0\n\ - adds r1, r5, 0\n\ - adds r1, 0xC\n\ - adds r1, r0, r1\n\ - ldrh r0, [r1]\n\ - cmp r0, 0\n\ - beq _080C80DC\n\ - lsls r0, r3, 1\n\ - ldr r2, _080C80A4 @ =sDiscouragedPowerfulMoveEffects\n\ - adds r0, r2\n\ - ldrh r0, [r0]\n\ - cmp r0, r9\n\ - bne _080C80DC\n\ - ldr r0, _080C80AC @ =gBattleMoves\n\ - ldrh r2, [r1]\n\ - lsls r1, r2, 1\n\ - adds r1, r2\n\ - lsls r1, 2\n\ - adds r1, r0\n\ - ldrb r0, [r1, 0x1]\n\ - cmp r0, 0x1\n\ - bls _080C80DC\n\ - ldr r5, _080C80D0 @ =gCurrentMove\n\ - strh r2, [r5]\n\ - ldrb r0, [r7]\n\ - ldr r4, _080C80D4 @ =gBattlerTarget\n\ - ldrb r1, [r4]\n\ - bl AI_CalcDmg\n\ - ldrh r0, [r5]\n\ - ldrb r1, [r7]\n\ - ldrb r2, [r4]\n\ - bl TypeCalc\n\ - mov r4, sp\n\ - add r4, r8\n\ - ldr r2, _080C80D8 @ =gBattleMoveDamage\n\ - ldr r0, _080C80B0 @ =gBattleResources\n\ - ldr r0, [r0]\n\ - ldr r0, [r0, 0x14]\n\ - adds r0, 0x18\n\ - adds r0, r6\n\ - ldrb r1, [r0]\n\ - ldr r0, [r2]\n\ - muls r0, r1\n\ - movs r1, 0x64\n\ - bl __divsi3\n\ - str r0, [r4]\n\ - cmp r0, 0\n\ - bne _080C80E4\n\ - movs r0, 0x1\n\ - str r0, [r4]\n\ - b _080C80E4\n\ - .align 2, 0\n\ -_080C80A4: .4byte sDiscouragedPowerfulMoveEffects\n\ -_080C80A8: .4byte 0x0000ffff\n\ -_080C80AC: .4byte gBattleMoves\n\ -_080C80B0: .4byte gBattleResources\n\ -_080C80B4: .4byte gDynamicBasePower\n\ -_080C80B8: .4byte gBattleStruct\n\ -_080C80BC: .4byte gBattleScripting\n\ -_080C80C0: .4byte gMoveResultFlags\n\ -_080C80C4: .4byte gCritMultiplier\n\ -_080C80C8: .4byte gBattleMons\n\ -_080C80CC: .4byte sBattler_AI\n\ -_080C80D0: .4byte gCurrentMove\n\ -_080C80D4: .4byte gBattlerTarget\n\ -_080C80D8: .4byte gBattleMoveDamage\n\ -_080C80DC:\n\ - mov r1, sp\n\ - add r1, r8\n\ - movs r0, 0\n\ - str r0, [r1]\n\ -_080C80E4:\n\ - mov r6, r10\n\ - cmp r6, 0x3\n\ - bgt _080C80EC\n\ - b _080C7FEC\n\ -_080C80EC:\n\ - movs r6, 0\n\ - ldr r2, _080C8130 @ =gBattleResources\n\ - ldr r0, [r2]\n\ - ldr r0, [r0, 0x14]\n\ - ldrb r0, [r0, 0x1]\n\ - lsls r0, 2\n\ - add r0, sp\n\ - ldr r1, [sp]\n\ - ldr r0, [r0]\n\ - ldr r5, _080C8134 @ =gAIScriptPtr\n\ - cmp r1, r0\n\ - bgt _080C8122\n\ - adds r4, r2, 0\n\ - mov r3, sp\n\ -_080C8108:\n\ - adds r3, 0x4\n\ - adds r6, 0x1\n\ - cmp r6, 0x3\n\ - bgt _080C8122\n\ - ldr r0, [r4]\n\ - ldr r0, [r0, 0x14]\n\ - ldrb r0, [r0, 0x1]\n\ - lsls r0, 2\n\ - add r0, sp\n\ - ldr r1, [r3]\n\ - ldr r0, [r0]\n\ - cmp r1, r0\n\ - ble _080C8108\n\ -_080C8122:\n\ - cmp r6, 0x4\n\ - bne _080C8138\n\ - ldr r0, [r2]\n\ - ldr r1, [r0, 0x14]\n\ - movs r0, 0x2\n\ - str r0, [r1, 0x8]\n\ - b _080C814C\n\ - .align 2, 0\n\ -_080C8130: .4byte gBattleResources\n\ -_080C8134: .4byte gAIScriptPtr\n\ -_080C8138:\n\ - ldr r0, [r2]\n\ - ldr r1, [r0, 0x14]\n\ - movs r0, 0x1\n\ - str r0, [r1, 0x8]\n\ - b _080C814C\n\ -_080C8142:\n\ - ldr r0, [r2]\n\ - ldr r1, [r0, 0x14]\n\ - movs r0, 0\n\ - str r0, [r1, 0x8]\n\ - ldr r5, _080C8164 @ =gAIScriptPtr\n\ -_080C814C:\n\ - ldr r0, [r5]\n\ - adds r0, 0x1\n\ - str r0, [r5]\n\ - add sp, 0x14\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_080C8164: .4byte gAIScriptPtr\n\ - .syntax divided\n"); -} -#endif static void BattleAICmd_get_move(void) { @@ -605,88 +605,25 @@ u16 Unused_LoadBgPalette(u8 bg, const void *src, u16 size, u16 destOffset) return (u8)cursor; } -#ifdef NONMATCHING // Matches everything but r5 and r6 are flipped, rrr bool8 IsDma3ManagerBusyWithBgCopy(void) { - u8 mod; - u8 div; - s8 reqSpace; - int i; for (i = 0; i < 0x80; i++) { - div = i / 0x20; - mod = i % 0x20; + u8 div = i / 0x20; + u8 mod = i % 0x20; - if ((sDmaBusyBitfield[div] & (1 << mod)) != FALSE) + if ((sDmaBusyBitfield[div] & (1 << mod))) { - reqSpace = CheckForSpaceForDma3Request(i); + s8 reqSpace = CheckForSpaceForDma3Request(i); if (reqSpace == -1) - { return TRUE; - } - sDmaBusyBitfield[div] &= ~(1 << mod); } } - return FALSE; } -#else -NAKED -bool8 IsDma3ManagerBusyWithBgCopy(void) -{ - asm("push {r4-r7,lr}\n\ - mov r5, #0\n\ - mov r7, #0x1\n\ - neg r7, r7\n\ -_08001ADC:\n\ - add r0, r5, #0\n\ - cmp r5, #0\n\ - bge _08001AE4\n\ - add r0, #0x1F\n\ -_08001AE4:\n\ - asr r0, #5\n\ - lsl r2, r0, #24\n\ - lsl r0, #5\n\ - sub r0, r5, r0\n\ - lsl r0, #24\n\ - lsr r0, #24\n\ - ldr r1, =sDmaBusyBitfield\n\ - lsr r2, #22\n\ - add r4, r2, r1\n\ - mov r6, #0x1\n\ - lsl r6, r0\n\ - ldr r0, [r4]\n\ - and r0, r6\n\ - cmp r0, #0\n\ - beq _08001B22\n\ - lsl r0, r5, #16\n\ - asr r0, #16\n\ - bl CheckForSpaceForDma3Request\n\ - lsl r0, #24\n\ - asr r0, #24\n\ - cmp r0, r7\n\ - bne _08001B1C\n\ - mov r0, #0x1\n\ - b _08001B2A\n\ - .pool\n\ -_08001B1C:\n\ - ldr r0, [r4]\n\ - bic r0, r6\n\ - str r0, [r4]\n\ -_08001B22:\n\ - add r5, #0x1\n\ - cmp r5, #0x7F\n\ - ble _08001ADC\n\ - mov r0, #0\n\ -_08001B2A:\n\ - pop {r4-r7}\n\ - pop {r1}\n\ - bx r1\n"); -} -#endif // NONMATCHING void ShowBg(u8 bg) { @@ -928,79 +865,58 @@ void SetBgAffine(u8 bg, u32 srcCenterX, u32 srcCenterY, s16 dispCenterX, s16 dis SetBgAffineInternal(bg, srcCenterX, srcCenterY, dispCenterX, dispCenterY, scaleX, scaleY, rotationAngle); } -u8 Unused_AdjustBgMosaic(u8 a1, u8 a2) +u8 AdjustBgMosaic(u8 value, u8 mode) { - u16 result; - s16 test1; - s16 test2; - - result = GetGpuReg(REG_OFFSET_MOSAIC); - - test1 = result & 0xF; - test2 = (result >> 4) & 0xF; - result &= 0xFF00; + u16 mosaicSize; + s16 bgMosaicH; + s16 bgMosaicV; + mosaicSize = GetGpuReg(REG_OFFSET_MOSAIC); + bgMosaicH = mosaicSize & 0xF; + bgMosaicV = (mosaicSize >> 4) & 0xF; + mosaicSize &= 0xFF00; - switch (a2) + switch (mode) { - case 0: - default: - test1 = a1 & 0xF; - test2 = a1 >> 0x4; - break; - case 1: - test1 = a1 & 0xF; - break; - case 2: - if ((test1 + a1) > 0xF) - { - test1 = 0xF; - } - else - { - test1 += a1; - } - break; - case 3: - if ((test1 - a1) < 0) - { - test1 = 0x0; - } - else - { - test1 -= a1; - } - break; - case 4: - test2 = a1 & 0xF; - break; - case 5: - if ((test2 + a1) > 0xF) - { - test2 = 0xF; - } - else - { - test2 += a1; - } - break; - case 6: - if ((test2 - a1) < 0) - { - test2 = 0x0; - } - else - { - test2 -= a1; - } - break; + case BG_MOSAIC_SET: + default: + bgMosaicH = value & 0xF; + bgMosaicV = value >> 0x4; + break; + case BG_MOSAIC_SET_H: + bgMosaicH = value & 0xF; + break; + case BG_MOSAIC_INC_H: + if ((bgMosaicH + value) > 0xF) + bgMosaicH = 0xF; + else + bgMosaicH += value; + break; + case BG_MOSAIC_DEC_H: + if ((bgMosaicH - value) < 0) + bgMosaicH = 0x0; + else + bgMosaicH -= value; + break; + case BG_MOSAIC_SET_V: + bgMosaicV = value & 0xF; + break; + case BG_MOSAIC_INC_V: + if ((bgMosaicV + value) > 0xF) + bgMosaicV = 0xF; + else + bgMosaicV += value; + break; + case BG_MOSAIC_DEC_V: + if ((bgMosaicV - value) < 0) + bgMosaicV = 0x0; + else + bgMosaicV -= value; + break; } - - result |= ((test2 << 0x4) & 0xF0); - result |= (test1 & 0xF); - - SetGpuReg(REG_OFFSET_MOSAIC, result); - - return result; + mosaicSize |= ((bgMosaicV << 0x4) & 0xF0); + mosaicSize |= (bgMosaicH & 0xF); + SetGpuReg(REG_OFFSET_MOSAIC, mosaicSize); + return mosaicSize; } void SetBgTilemapBuffer(u8 bg, void *tilemap) diff --git a/src/daycare.c b/src/daycare.c index 206e0b383..7a2cb0698 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -5,7 +5,7 @@ #include "string_util.h" #include "constants/species.h" #include "constants/items.h" -#include "mail.h" +#include "mail_data.h" #include "pokemon_storage_system.h" #include "event_data.h" #include "random.h" @@ -1768,8 +1768,8 @@ static u8 EggHatchCreateMonSprite(u8 a0, u8 switchID, u8 pokeID, u16* speciesLoc { u16 species = GetMonData(mon, MON_DATA_SPECIES); u32 pid = GetMonData(mon, MON_DATA_PERSONALITY); - sub_800ECC4(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[(a0 * 2) + 1], species, pid); - LoadCompressedObjectPalette(GetMonSpritePalStruct(mon)); + HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[(a0 * 2) + 1], species, pid); + LoadCompressedSpritePalette(GetMonSpritePalStruct(mon)); *speciesLoc = species; } break; @@ -1824,7 +1824,7 @@ static void CB2_EggHatch_0(void) SetVBlankCallback(VBlankCB_EggHatch); gSpecialVar_0x8005 = GetCurrentMapMusic(); - reset_temp_tile_data_buffers(); + ResetTempTileDataBuffers(); ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, sBgTemplates_EggHatch, ARRAY_COUNT(sBgTemplates_EggHatch)); diff --git a/src/decompress.c b/src/decompress.c new file mode 100644 index 000000000..caeda738a --- /dev/null +++ b/src/decompress.c @@ -0,0 +1,662 @@ +#include "global.h" +#include "malloc.h" +#include "decompress.h" +#include "pokemon.h" +#include "text.h" +#include "constants/species.h" + +extern const struct CompressedSpriteSheet gMonFrontPicTable[]; +extern const struct CompressedSpriteSheet gMonBackPicTable[]; + +static void DuplicateDeoxysTiles(void *pointer, s32 species); + +void LZDecompressWram(const void *src, void *dest) +{ + LZ77UnCompWram(src, dest); +} + +void LZDecompressVram(const void *src, void *dest) +{ + LZ77UnCompVram(src, dest); +} + +u16 LoadCompressedSpriteSheet(const struct CompressedSpriteSheet *src) +{ + struct SpriteSheet dest; + + LZ77UnCompWram(src->data, gDecompressionBuffer); + dest.data = gDecompressionBuffer; + dest.size = src->size; + dest.tag = src->tag; + return LoadSpriteSheet(&dest); +} + +void LoadCompressedSpriteSheetOverrideBuffer(const struct CompressedSpriteSheet *src, void *buffer) +{ + struct SpriteSheet dest; + + LZ77UnCompWram(src->data, buffer); + dest.data = buffer; + dest.size = src->size; + dest.tag = src->tag; + LoadSpriteSheet(&dest); +} + +void LoadCompressedSpritePalette(const struct CompressedSpritePalette *src) +{ + struct SpritePalette dest; + + LZ77UnCompWram(src->data, gDecompressionBuffer); + dest.data = (void*) gDecompressionBuffer; + dest.tag = src->tag; + LoadSpritePalette(&dest); +} + +void LoadCompressedSpritePaletteOverrideBuffer(const struct CompressedSpritePalette *a, void *buffer) +{ + struct SpritePalette dest; + + LZ77UnCompWram(a->data, buffer); + dest.data = buffer; + dest.tag = a->tag; + LoadSpritePalette(&dest); +} + +void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void* buffer, s32 species) +{ + if (species > NUM_SPECIES) + LZ77UnCompWram(gMonFrontPicTable[0].data, buffer); + else + LZ77UnCompWram(src->data, buffer); + DuplicateDeoxysTiles(buffer, species); +} + +void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality) +{ + bool8 isFrontPic; + + if (src == &gMonFrontPicTable[species]) + isFrontPic = TRUE; // frontPic + else + isFrontPic = FALSE; // backPic + LoadSpecialPokePic(src, dest, species, personality, isFrontPic); +} + +void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic) +{ + if (species == SPECIES_UNOWN) + { + u16 i = (((personality & 0x3000000) >> 18) | ((personality & 0x30000) >> 12) | ((personality & 0x300) >> 6) | (personality & 3)) % 0x1C; + + // The other Unowns are separate from Unown A. + if (i == 0) + i = SPECIES_UNOWN; + else + i += SPECIES_UNOWN_B - 1; + if (!isFrontPic) + LZ77UnCompWram(gMonBackPicTable[i].data, dest); + else + LZ77UnCompWram(gMonFrontPicTable[i].data, dest); + } + else if (species > NUM_SPECIES) // is species unknown? draw the ? icon + LZ77UnCompWram(gMonFrontPicTable[0].data, dest); + else + LZ77UnCompWram(src->data, dest); + + DuplicateDeoxysTiles(dest, species); + DrawSpindaSpots(species, personality, dest, isFrontPic); +} + +static void DuplicateDeoxysTiles(void *pointer, s32 species) +{ + if (species == SPECIES_DEOXYS) + CpuCopy32(pointer + 0x800, pointer, 0x800); +} + +static void Unused_LZDecompressWramIndirect(const void **src, void *dest) +{ + LZ77UnCompWram(*src, dest); +} + +#ifdef NONMATCHING +static void sub_800EDDC(s32 a0, s32 a1, const u8 *a2, u8 *a3) +{ + u8 *v1, *v2; + int i, j, k, l; + + if (a0 & 1) + { + u8 v40 = ((a0 >> 1) + 4); + for (i = 0; i < a1; ++i) + { + // this nested loop failed to match + for (j = 0; j < 8 - a0; ++j) + { + for (k = 0; k < 8; ++k) + { + + v1 = a3 + 0x100 * v40 + 0x100 * (j >> 1) + 0x20 * k; + v2 = a3 + 0x20 * k + 0x100 * (j >> 1); + for (l = 0; l < 0x10; ++l) + { + if (!(j & 1)) + { + v2[0] = j & 1; + v1[16] = 0; +// a3[0x100 * (j / 2) + 0x20 * k + l] = 0; +// a3[0x100 * v40 + 0x100 * (j / 2) + 0x20 * k + l + 0x10] = 0; + } + else + { + v2[16] = 0; + v1[0x100] = 0; +// a3[0x100 * (j / 2) + 0x20 * k + l + 0x10] = 0; +// a3[0x100 * v40 + 0x100 * (j / 2) + 0x20 * k + l + 0x100] = 0; + } + ++v1; + ++v2; // this should be generated if you write stuff inside operator [] instead of declaring v1/v2 + } + } + } + for (j = 0; j < 2; ++j) + { + for (k = 0; k < 8; ++k) + { + for (l = 0; l < 0x20; ++l) + { + a3[0x100 * k + 0x20 * j + l] = 0; + a3[0x100 * k + 0xC0 + 0x20 * j + l] = 0; + } + } + } + if (a0 == 5) + a3 += 0x120; + for (j = 0; j < a0; ++j) + { + for (k = 0; k < a0; ++k) + { + for (l = 0; l < 4; ++l) + { + a3[0x12 + 4 * l] = a2[0 + 4 * l]; + a3[0x13 + 4 * l] = a2[1 + 4 * l]; + a3[0x12 + 0x1E + 4 * l] = a2[2 + 4 * l]; + a3[0x12 + 0x1F + 4 * l] = a2[3 + 4 * l]; + a3[0x102 + 4 * l] = a2[0x10 + 4 * l]; + a3[0x103 + 4 * l] = a2[0x11 + 4 * l]; + a3[0x120 + 4 * l] = a2[0x12 + 4 * l]; + a3[0x121 + 4 * l] = a2[0x13 + 4 * l]; + } + a2 += 0x20; + a3 += 0x20; + } + if (a0 == 7) + a3 += 0x20; + else if (a0 == 5) + a3 += 0x60; + } + if (a0 == 7) + a3 += 0x100; + else if (a0 == 5) + a3 += 0x1E0; + } + } + else + { + for (i = 0; i < a1; ++i) + { + if (a0 == 6) + for (j = 0; j < 0x100; ++j) + *a3++ = 0; + for (j = 0; j < a0; ++j) + { + if (a0 == 6) + for (k = 0; k < 0x20; ++k) + *a3++ = 0; + for (k = 0; k < 0x20 * a0; ++k) + *a3++ = *a2++; + if (a0 == 6) + for (k = 0; k < 0x20; ++k) + *a3++ = 0; + } + if (a0 == 6) + for (j = 0; j < 0x100; ++j) + *a3++ = 0; + } + } +} +#else +NAKED +static void sub_800EDDC(s32 a0, s32 a1, const u8 *a2, u8 *a3) +{ + asm_unified("\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x24\n\ + mov r9, r0\n\ + str r1, [sp]\n\ + str r2, [sp, 0x4]\n\ + adds r5, r3, 0\n\ + movs r0, 0x1\n\ + mov r1, r9\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _0800EDFC\n\ + b _0800EF94\n\ + _0800EDFC:\n\ + asrs r0, r1, 1\n\ + adds r0, 0x4\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + str r0, [sp, 0x8]\n\ + movs r0, 0\n\ + ldr r2, [sp]\n\ + cmp r0, r2\n\ + blt _0800EE10\n\ + b _0800F024\n\ + _0800EE10:\n\ + movs r4, 0x8\n\ + subs r1, r4, r1\n\ + str r1, [sp, 0x10]\n\ + _0800EE16:\n\ + movs r7, 0\n\ + adds r0, 0x1\n\ + str r0, [sp, 0x14]\n\ + ldr r0, [sp, 0x10]\n\ + cmp r7, r0\n\ + bge _0800EE92\n\ + ldr r1, [sp, 0x8]\n\ + lsls r1, 8\n\ + str r1, [sp, 0x18]\n\ + movs r2, 0\n\ + mov r10, r2\n\ + mov r0, r9\n\ + movs r4, 0x8\n\ + subs r0, r4, r0\n\ + str r0, [sp, 0xC]\n\ + _0800EE34:\n\ + movs r3, 0\n\ + asrs r0, r7, 1\n\ + adds r1, r7, 0\n\ + movs r2, 0x1\n\ + ands r1, r2\n\ + str r1, [sp, 0x20]\n\ + lsls r0, 8\n\ + mov r8, r0\n\ + mov r12, r5\n\ + _0800EE46:\n\ + lsls r1, r3, 5\n\ + ldr r4, [sp, 0x18]\n\ + adds r0, r5, r4\n\ + adds r0, r1\n\ + mov r1, r8\n\ + adds r2, r0, r1\n\ + mov r1, r12\n\ + add r1, r8\n\ + movs r6, 0xF\n\ + _0800EE58:\n\ + ldr r4, [sp, 0x20]\n\ + cmp r4, 0\n\ + bne _0800EE68\n\ + strb r4, [r1]\n\ + add r4, sp, 0x20\n\ + ldrb r4, [r4]\n\ + strb r4, [r2, 0x10]\n\ + b _0800EE76\n\ + _0800EE68:\n\ + mov r0, r10\n\ + strb r0, [r1, 0x10]\n\ + movs r4, 0x80\n\ + lsls r4, 1\n\ + adds r4, r2, r4\n\ + str r4, [sp, 0x1C]\n\ + strb r0, [r4]\n\ + _0800EE76:\n\ + adds r2, 0x1\n\ + adds r1, 0x1\n\ + subs r6, 0x1\n\ + cmp r6, 0\n\ + bge _0800EE58\n\ + movs r0, 0x20\n\ + add r12, r0\n\ + adds r3, 0x1\n\ + cmp r3, 0x7\n\ + ble _0800EE46\n\ + adds r7, 0x1\n\ + ldr r1, [sp, 0xC]\n\ + cmp r7, r1\n\ + blt _0800EE34\n\ + _0800EE92:\n\ + movs r7, 0\n\ + movs r2, 0\n\ + _0800EE96:\n\ + movs r6, 0\n\ + adds r4, r7, 0x1\n\ + mov r8, r4\n\ + lsls r4, r7, 5\n\ + _0800EE9E:\n\ + adds r0, r6, 0x1\n\ + mov r10, r0\n\ + lsls r1, r6, 8\n\ + adds r0, r1, 0\n\ + adds r0, 0xC0\n\ + adds r0, r5, r0\n\ + adds r0, r4\n\ + adds r1, r5, r1\n\ + adds r1, r4\n\ + movs r3, 0x1F\n\ + _0800EEB2:\n\ + strb r2, [r1]\n\ + strb r2, [r0]\n\ + adds r0, 0x1\n\ + adds r1, 0x1\n\ + subs r3, 0x1\n\ + cmp r3, 0\n\ + bge _0800EEB2\n\ + mov r6, r10\n\ + cmp r6, 0x7\n\ + ble _0800EE9E\n\ + mov r7, r8\n\ + cmp r7, 0x1\n\ + ble _0800EE96\n\ + mov r1, r9\n\ + cmp r1, 0x5\n\ + bne _0800EED8\n\ + movs r2, 0x90\n\ + lsls r2, 1\n\ + adds r5, r2\n\ + _0800EED8:\n\ + movs r7, 0\n\ + cmp r7, r9\n\ + bge _0800EF6E\n\ + _0800EEDE:\n\ + movs r3, 0\n\ + adds r7, 0x1\n\ + mov r8, r7\n\ + cmp r3, r9\n\ + bge _0800EF4E\n\ + _0800EEE8:\n\ + adds r3, 0x1\n\ + mov r10, r3\n\ + ldr r4, [sp, 0x4]\n\ + adds r4, 0x20\n\ + adds r7, r5, 0\n\ + adds r7, 0x20\n\ + movs r0, 0x12\n\ + adds r0, r5\n\ + mov r12, r0\n\ + ldr r2, [sp, 0x4]\n\ + adds r3, r5, 0\n\ + movs r6, 0x3\n\ + _0800EF00:\n\ + ldrb r0, [r2]\n\ + mov r1, r12\n\ + strb r0, [r1]\n\ + ldrb r0, [r2, 0x1]\n\ + strb r0, [r1, 0x1]\n\ + ldrb r0, [r2, 0x2]\n\ + strb r0, [r1, 0x1E]\n\ + ldrb r0, [r2, 0x3]\n\ + strb r0, [r1, 0x1F]\n\ + movs r0, 0x81\n\ + lsls r0, 1\n\ + adds r1, r3, r0\n\ + ldrb r0, [r2, 0x10]\n\ + strb r0, [r1]\n\ + ldr r0, _0800EF58 @ =0x00000103\n\ + adds r1, r3, r0\n\ + ldrb r0, [r2, 0x11]\n\ + strb r0, [r1]\n\ + movs r0, 0x90\n\ + lsls r0, 1\n\ + adds r1, r3, r0\n\ + ldrb r0, [r2, 0x12]\n\ + strb r0, [r1]\n\ + ldr r0, _0800EF5C @ =0x00000121\n\ + adds r1, r3, r0\n\ + ldrb r0, [r2, 0x13]\n\ + strb r0, [r1]\n\ + movs r1, 0x4\n\ + add r12, r1\n\ + adds r2, 0x4\n\ + adds r3, 0x4\n\ + subs r6, 0x1\n\ + cmp r6, 0\n\ + bge _0800EF00\n\ + str r4, [sp, 0x4]\n\ + adds r5, r7, 0\n\ + mov r3, r10\n\ + cmp r3, r9\n\ + blt _0800EEE8\n\ + _0800EF4E:\n\ + mov r2, r9\n\ + cmp r2, 0x7\n\ + bne _0800EF60\n\ + adds r5, 0x20\n\ + b _0800EF68\n\ + .align 2, 0\n\ + _0800EF58: .4byte 0x00000103\n\ + _0800EF5C: .4byte 0x00000121\n\ + _0800EF60:\n\ + mov r4, r9\n\ + cmp r4, 0x5\n\ + bne _0800EF68\n\ + adds r5, 0x60\n\ + _0800EF68:\n\ + mov r7, r8\n\ + cmp r7, r9\n\ + blt _0800EEDE\n\ + _0800EF6E:\n\ + mov r0, r9\n\ + cmp r0, 0x7\n\ + bne _0800EF7C\n\ + movs r1, 0x80\n\ + lsls r1, 1\n\ + adds r5, r1\n\ + b _0800EF88\n\ + _0800EF7C:\n\ + mov r2, r9\n\ + cmp r2, 0x5\n\ + bne _0800EF88\n\ + movs r4, 0xF0\n\ + lsls r4, 1\n\ + adds r5, r4\n\ + _0800EF88:\n\ + ldr r0, [sp, 0x14]\n\ + ldr r1, [sp]\n\ + cmp r0, r1\n\ + bge _0800EF92\n\ + b _0800EE16\n\ + _0800EF92:\n\ + b _0800F024\n\ + _0800EF94:\n\ + movs r6, 0\n\ + ldr r2, [sp]\n\ + cmp r6, r2\n\ + bge _0800F024\n\ + _0800EF9C:\n\ + adds r6, 0x1\n\ + mov r10, r6\n\ + mov r4, r9\n\ + cmp r4, 0x6\n\ + bne _0800EFB4\n\ + movs r0, 0\n\ + movs r3, 0xFF\n\ + _0800EFAA:\n\ + strb r0, [r5]\n\ + adds r5, 0x1\n\ + subs r3, 0x1\n\ + cmp r3, 0\n\ + bge _0800EFAA\n\ + _0800EFB4:\n\ + movs r7, 0\n\ + cmp r7, r9\n\ + bge _0800F008\n\ + _0800EFBA:\n\ + adds r7, 0x1\n\ + mov r8, r7\n\ + mov r1, r9\n\ + lsls r0, r1, 5\n\ + cmp r1, 0x6\n\ + bne _0800EFD4\n\ + movs r1, 0\n\ + movs r3, 0x1F\n\ + _0800EFCA:\n\ + strb r1, [r5]\n\ + adds r5, 0x1\n\ + subs r3, 0x1\n\ + cmp r3, 0\n\ + bge _0800EFCA\n\ + _0800EFD4:\n\ + adds r1, r0, 0\n\ + cmp r1, 0\n\ + ble _0800EFEE\n\ + adds r3, r1, 0\n\ + _0800EFDC:\n\ + ldr r2, [sp, 0x4]\n\ + ldrb r0, [r2]\n\ + strb r0, [r5]\n\ + adds r2, 0x1\n\ + str r2, [sp, 0x4]\n\ + adds r5, 0x1\n\ + subs r3, 0x1\n\ + cmp r3, 0\n\ + bne _0800EFDC\n\ + _0800EFEE:\n\ + mov r4, r9\n\ + cmp r4, 0x6\n\ + bne _0800F002\n\ + movs r0, 0\n\ + movs r3, 0x1F\n\ + _0800EFF8:\n\ + strb r0, [r5]\n\ + adds r5, 0x1\n\ + subs r3, 0x1\n\ + cmp r3, 0\n\ + bge _0800EFF8\n\ + _0800F002:\n\ + mov r7, r8\n\ + cmp r7, r9\n\ + blt _0800EFBA\n\ + _0800F008:\n\ + mov r0, r9\n\ + cmp r0, 0x6\n\ + bne _0800F01C\n\ + movs r0, 0\n\ + movs r3, 0xFF\n\ + _0800F012:\n\ + strb r0, [r5]\n\ + adds r5, 0x1\n\ + subs r3, 0x1\n\ + cmp r3, 0\n\ + bge _0800F012\n\ + _0800F01C:\n\ + mov r6, r10\n\ + ldr r1, [sp]\n\ + cmp r6, r1\n\ + blt _0800EF9C\n\ + _0800F024:\n\ + add sp, 0x24\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + "); +} +#endif + +bool8 LoadCompressedSpriteSheetUsingHeap(const struct CompressedSpriteSheet* src) +{ + struct SpriteSheet dest; + void* buffer; + + buffer = AllocZeroed(*((u32*)src->data) >> 8); + if (!buffer) + return TRUE; + LZ77UnCompWram(src->data, buffer); + dest.data = buffer; + dest.size = src->size; + dest.tag = src->tag; + LoadSpriteSheet(&dest); + Free(buffer); + return FALSE; +} + +bool8 LoadCompressedSpritePaletteUsingHeap(const struct CompressedSpritePalette *src) +{ + struct SpritePalette dest; + void* buffer; + + buffer = AllocZeroed(*((u32*)src->data) >> 8); + if (!buffer) + return TRUE; + LZ77UnCompWram(src->data, buffer); + dest.data = buffer; + dest.tag = src->tag; + LoadSpritePalette(&dest); + Free(buffer); + return FALSE; +} + +u32 GetDecompressedDataSize(const u8 *ptr) +{ + u32 ptr32[1]; + u8 *ptr8 = (u8 *)ptr32; + + ptr8[0] = ptr[1]; + ptr8[1] = ptr[2]; + ptr8[2] = ptr[3]; + ptr8[3] = 0; + return ptr32[0]; +} + +void DecompressPicFromTable_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void* buffer, s32 species) +{ + if (species > NUM_SPECIES) + LZ77UnCompWram(gMonFrontPicTable[0].data, buffer); + else + LZ77UnCompWram(src->data, buffer); +} + +void HandleLoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality) +{ + bool8 isFrontPic; + + if (src == &gMonFrontPicTable[species]) + isFrontPic = TRUE; // frontPic + else + isFrontPic = FALSE; // backPic + LoadSpecialPokePic_DontHandleDeoxys(src, dest, species, personality, isFrontPic); +} + +void LoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic) +{ + if (species == SPECIES_UNOWN) + { + u16 i = (((personality & 0x3000000) >> 18) | ((personality & 0x30000) >> 12) | ((personality & 0x300) >> 6) | (personality & 3)) % 0x1C; + + // The other Unowns are separate from Unown A. + if (i == 0) + i = SPECIES_UNOWN; + else + i += SPECIES_UNOWN_B - 1; + if (!isFrontPic) + LZ77UnCompWram(gMonBackPicTable[i].data, dest); + else + LZ77UnCompWram(gMonFrontPicTable[i].data, dest); + } + else if (species > NUM_SPECIES) // is species unknown? draw the ? icon + { + LZ77UnCompWram(gMonFrontPicTable[0].data, dest); + } + else + { + LZ77UnCompWram(src->data, dest); + } + DrawSpindaSpots(species, personality, dest, isFrontPic); +} diff --git a/src/dma3_manager.c b/src/dma3_manager.c index 10049a566..ec2cb932f 100644 --- a/src/dma3_manager.c +++ b/src/dma3_manager.c @@ -1,6 +1,13 @@ #include "global.h" #include "dma3.h" +#define MAX_DMA_REQUESTS 128 + +#define DMA_REQUEST_COPY32 1 +#define DMA_REQUEST_FILL32 2 +#define DMA_REQUEST_COPY16 3 +#define DMA_REQUEST_FILL16 4 + static /*IWRAM_DATA*/ struct { /* 0x00 */ const u8 *src; /* 0x04 */ u8 *dest; @@ -9,7 +16,7 @@ static /*IWRAM_DATA*/ struct { /* 0x0C */ u32 value; } gDma3Requests[128]; -static bool8 gDma3ManagerLocked; +static volatile bool8 gDma3ManagerLocked; static u8 gDma3RequestCursor; void ClearDma3Requests(void) @@ -29,78 +36,50 @@ void ClearDma3Requests(void) gDma3ManagerLocked = FALSE; } -#ifdef NONMATCHING void ProcessDma3Requests(void) { - // NOTE: the fillerA member of the DMA struct is actually u32 value; - u16 total_size; + u16 bytesTransferred; if (gDma3ManagerLocked) return; - total_size = 0; + bytesTransferred = 0; // as long as there are DMA requests to process (unless size or vblank is an issue), do not exit - while (gDma3Requests[gDma3RequestCursor].size) + while (gDma3Requests[gDma3RequestCursor].size != 0) { - total_size += gDma3Requests[gDma3RequestCursor].size; + bytesTransferred += gDma3Requests[gDma3RequestCursor].size; - if (total_size > 0xA000) - return; // don't do too much at once - - if (REG_VCOUNT > 224) - return;// we're about to leave vblank, stop + if (bytesTransferred > 40 * 1024) + return; // don't transfer more than 40 KiB + if (*(u8 *)REG_ADDR_VCOUNT > 224) + return; // we're about to leave vblank, stop switch (gDma3Requests[gDma3RequestCursor].mode) { - case 1: // regular 32-bit copy - // _08000C8C - if(gDma3Requests[gDma3RequestCursor].size <= 0x1000) - { - DmaCopy32(3, gDma3Requests[gDma3RequestCursor].src, gDma3Requests[gDma3RequestCursor].dest, gDma3Requests[gDma3RequestCursor].size); - break; - } - while (gDma3Requests[gDma3RequestCursor].size > 0x1000) - { - DmaCopy32(3, gDma3Requests[gDma3RequestCursor].src, gDma3Requests[gDma3RequestCursor].dest, 0x1000); - gDma3Requests[gDma3RequestCursor].src += 0x1000; - gDma3Requests[gDma3RequestCursor].dest += 0x1000; - gDma3Requests[gDma3RequestCursor].size -= 0x1000; - } - DmaCopy32(3, gDma3Requests[gDma3RequestCursor].src, gDma3Requests[gDma3RequestCursor].dest, gDma3Requests[gDma3RequestCursor].size); + case DMA_REQUEST_COPY32: // regular 32-bit copy + Dma3CopyLarge32_(gDma3Requests[gDma3RequestCursor].src, + gDma3Requests[gDma3RequestCursor].dest, + gDma3Requests[gDma3RequestCursor].size); break; - case 2: // repeat a single 32-bit value across RAM - // _08000CD0 - while (gDma3Requests[gDma3RequestCursor].size > 0x1000) - { - DmaFill32(3, gDma3Requests[gDma3RequestCursor].value, gDma3Requests[gDma3RequestCursor].dest, 0x1000); - gDma3Requests[gDma3RequestCursor].dest += 0x1000; - gDma3Requests[gDma3RequestCursor].size -= 0x1000; - } - DmaFill32(3, gDma3Requests[gDma3RequestCursor].value, gDma3Requests[gDma3RequestCursor].dest, gDma3Requests[gDma3RequestCursor].size); + case DMA_REQUEST_FILL32: // repeat a single 32-bit value across RAM + Dma3FillLarge32_(gDma3Requests[gDma3RequestCursor].value, + gDma3Requests[gDma3RequestCursor].dest, + gDma3Requests[gDma3RequestCursor].size); break; - case 3: // regular 16-bit copy - // _08000D3C - while (gDma3Requests[gDma3RequestCursor].size > 0x1000) - { - DmaCopy16(3, gDma3Requests[gDma3RequestCursor].src, gDma3Requests[gDma3RequestCursor].dest, 0x1000); - gDma3Requests[gDma3RequestCursor].src += 0x1000; - gDma3Requests[gDma3RequestCursor].dest += 0x1000; - gDma3Requests[gDma3RequestCursor].size -= 0x1000; - } - DmaCopy16(3, gDma3Requests[gDma3RequestCursor].src, gDma3Requests[gDma3RequestCursor].dest, gDma3Requests[gDma3RequestCursor].size); + case DMA_REQUEST_COPY16: // regular 16-bit copy + Dma3CopyLarge16_(gDma3Requests[gDma3RequestCursor].src, + gDma3Requests[gDma3RequestCursor].dest, + gDma3Requests[gDma3RequestCursor].size); break; - case 4: // repeat a single 16-bit value across RAM - // _08000D88 - while (gDma3Requests[gDma3RequestCursor].size > 0x1000) - { - DmaFill16(3, gDma3Requests[gDma3RequestCursor].value, gDma3Requests[gDma3RequestCursor].dest, 0x1000); - gDma3Requests[gDma3RequestCursor].dest += 0x1000; - gDma3Requests[gDma3RequestCursor].size -= 0x1000; - } - DmaFill16(3, gDma3Requests[gDma3RequestCursor].value, gDma3Requests[gDma3RequestCursor].dest, gDma3Requests[gDma3RequestCursor].size); + case DMA_REQUEST_FILL16: // repeat a single 16-bit value across RAM + Dma3FillLarge16_(gDma3Requests[gDma3RequestCursor].value, + gDma3Requests[gDma3RequestCursor].dest, + gDma3Requests[gDma3RequestCursor].size); break; } + + // Free the request gDma3Requests[gDma3RequestCursor].src = NULL; gDma3Requests[gDma3RequestCursor].dest = NULL; gDma3Requests[gDma3RequestCursor].size = 0; @@ -108,328 +87,12 @@ void ProcessDma3Requests(void) gDma3Requests[gDma3RequestCursor].value = 0; gDma3RequestCursor++; - if (gDma3RequestCursor >= 128) // loop back to the first DMA request + if (gDma3RequestCursor >= MAX_DMA_REQUESTS) // loop back to the first DMA request gDma3RequestCursor = 0; } } -#else -__attribute__((naked)) -void ProcessDma3Requests(void) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0xC\n\ - ldr r0, =gDma3ManagerLocked\n\ - ldrb r0, [r0]\n\ - cmp r0, 0\n\ - beq _08000C06\n\ - b _08000E46\n\ -_08000C06:\n\ - movs r0, 0\n\ - str r0, [sp, 0x8]\n\ - ldr r1, =gDma3Requests\n\ - ldr r2, =gDma3RequestCursor\n\ - ldrb r0, [r2]\n\ - lsls r0, 4\n\ - adds r0, r1\n\ - ldrh r0, [r0, 0x8]\n\ - mov r12, r2\n\ - cmp r0, 0\n\ - bne _08000C1E\n\ - b _08000E46\n\ -_08000C1E:\n\ - mov r8, r1\n\ - adds r1, 0x4\n\ - mov r10, r1\n\ - movs r6, 0x80\n\ - lsls r6, 5\n\ - ldr r7, =0x040000D4 @REG_DMA3\n\ - movs r2, 0\n\ - mov r9, r2\n\ -_08000C2E:\n\ - mov r3, r12 @ gDma3RequestCursor\n\ - ldrb r0, [r3]\n\ - lsls r5, r0, 4\n\ - mov r0, r8 @ gDma3Requests\n\ - adds r1, r5, r0 @ gDma3Requests[gDma3RequestCursor]\n\ - ldrh r0, [r1, 0x8] @ gDma3Requests[gDma3RequestCursor].size\n\ - ldr r2, [sp, 0x8]\n\ - adds r0, r2, r0\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - str r0, [sp, 0x8]\n\ - movs r0, 0xA0\n\ - lsls r0, 8\n\ - ldr r3, [sp, 0x8]\n\ - cmp r3, r0\n\ - bls _08000C50\n\ - b _08000E46\n\ -_08000C50:\n\ - ldr r0, =0x04000006 @REG_VCOUNT\n\ - ldrb r0, [r0]\n\ - cmp r0, 0xE0\n\ - bls _08000C5A\n\ - b _08000E46\n\ -_08000C5A:\n\ - ldrh r0, [r1, 0xA]\n\ - cmp r0, 0x2\n\ - beq _08000CD0\n\ - cmp r0, 0x2\n\ - bgt _08000C80\n\ - cmp r0, 0x1\n\ - beq _08000C8C\n\ - b _08000DF0\n\ - .pool\n\ -_08000C80:\n\ - cmp r0, 0x3\n\ - beq _08000D3C\n\ - cmp r0, 0x4\n\ - bne _08000C8A\n\ - b _08000D88\n\ -_08000C8A:\n\ - b _08000DF0\n\ -_08000C8C:\n\ - ldr r3, [r1]\n\ - mov r2, r10\n\ - adds r0, r5, r2\n\ - ldr r2, [r0]\n\ - ldrh r1, [r1, 0x8]\n\ - cmp r1, r6\n\ - bhi _08000CA6\n\ - str r3, [r7]\n\ - str r2, [r7, 0x4]\n\ - lsrs r0, r1, 2\n\ - movs r1, 0x84\n\ - lsls r1, 24\n\ - b _08000DAA\n\ -_08000CA6:\n\ - ldr r4, =0x040000D4 @REG_DMA3\n\ - str r3, [r4]\n\ - str r2, [r4, 0x4]\n\ - ldr r0, =0x84000400\n\ - str r0, [r4, 0x8]\n\ - ldr r0, [r4, 0x8]\n\ - adds r3, r6\n\ - adds r2, r6\n\ - subs r1, r6\n\ - cmp r1, r6\n\ - bhi _08000CA6\n\ - str r3, [r4]\n\ - str r2, [r4, 0x4]\n\ - lsrs r0, r1, 2\n\ - movs r1, 0x84\n\ - lsls r1, 24\n\ - b _08000D76\n\ - .pool\n\ -_08000CD0:\n\ - mov r3, r10\n\ - adds r0, r5, r3\n\ - ldr r4, [r0]\n\ - ldrh r1, [r1, 0x8]\n\ - cmp r1, r6\n\ - bhi _08000CF4\n\ - mov r0, r8\n\ - adds r0, 0xC\n\ - adds r0, r5, r0\n\ - ldr r0, [r0]\n\ - str r0, [sp]\n\ - mov r5, sp\n\ - str r5, [r7]\n\ - str r4, [r7, 0x4]\n\ - lsrs r0, r1, 2\n\ - movs r1, 0x85\n\ - lsls r1, 24\n\ - b _08000DAA\n\ -_08000CF4:\n\ - mov r2, r12\n\ - ldrb r0, [r2]\n\ - lsls r0, 4\n\ - mov r5, r8\n\ - adds r5, 0xC\n\ - adds r0, r5\n\ - ldr r0, [r0]\n\ - str r0, [sp]\n\ - ldr r3, =0x040000D4 @REG_DMA3\n\ - mov r0, sp\n\ - str r0, [r3]\n\ - str r4, [r3, 0x4]\n\ - ldr r0, =0x85000400\n\ - str r0, [r3, 0x8]\n\ - ldr r0, [r3, 0x8]\n\ - adds r4, r6\n\ - subs r1, r6\n\ - cmp r1, r6\n\ - bhi _08000CF4\n\ - ldrb r0, [r2]\n\ - lsls r0, 4\n\ - adds r0, r5\n\ - ldr r0, [r0]\n\ - str r0, [sp]\n\ - mov r2, sp\n\ - str r2, [r3]\n\ - str r4, [r3, 0x4]\n\ - lsrs r0, r1, 2\n\ - movs r1, 0x85\n\ - lsls r1, 24\n\ - b _08000DEA\n\ - .pool\n\ -_08000D3C:\n\ - ldr r3, [r1]\n\ - mov r2, r10\n\ - adds r0, r5, r2\n\ - ldr r2, [r0]\n\ - ldrh r1, [r1, 0x8]\n\ - cmp r1, r6\n\ - bhi _08000D56\n\ - str r3, [r7]\n\ - str r2, [r7, 0x4]\n\ - lsrs r0, r1, 1\n\ - movs r1, 0x80\n\ - lsls r1, 24\n\ - b _08000DAA\n\ -_08000D56:\n\ - ldr r4, =0x040000D4 @REG_DMA3\n\ - str r3, [r4]\n\ - str r2, [r4, 0x4]\n\ - ldr r0, =0x80000800\n\ - str r0, [r4, 0x8]\n\ - ldr r0, [r4, 0x8]\n\ - adds r3, r6\n\ - adds r2, r6\n\ - subs r1, r6\n\ - cmp r1, r6\n\ - bhi _08000D56\n\ - str r3, [r4]\n\ - str r2, [r4, 0x4]\n\ - lsrs r0, r1, 1\n\ - movs r1, 0x80\n\ - lsls r1, 24\n\ -_08000D76:\n\ - orrs r0, r1\n\ - str r0, [r4, 0x8]\n\ - ldr r0, [r4, 0x8]\n\ - b _08000DF0\n\ - .pool\n\ -_08000D88:\n\ - mov r3, r10\n\ - adds r0, r5, r3\n\ - ldr r2, [r0]\n\ - ldrh r4, [r1, 0x8]\n\ - add r1, sp, 0x4\n\ - cmp r4, r6\n\ - bhi _08000DB2\n\ - mov r0, r8\n\ - adds r0, 0xC\n\ - adds r0, r5, r0\n\ - ldr r0, [r0]\n\ - strh r0, [r1]\n\ - str r1, [r7]\n\ - str r2, [r7, 0x4]\n\ - lsrs r0, r4, 1\n\ - movs r1, 0x81\n\ - lsls r1, 24\n\ -_08000DAA:\n\ - orrs r0, r1\n\ - str r0, [r7, 0x8]\n\ - ldr r0, [r7, 0x8]\n\ - b _08000DF0\n\ -_08000DB2:\n\ - mov r5, r12\n\ - ldrb r0, [r5]\n\ - lsls r0, 4\n\ - ldr r3, =gDma3Requests + 0x0C\n\ - adds r0, r3\n\ - ldr r0, [r0]\n\ - strh r0, [r1]\n\ - ldr r3, =0x040000D4 @REG_DMA3\n\ - str r1, [r3]\n\ - str r2, [r3, 0x4]\n\ - ldr r0, =0x81000800\n\ - str r0, [r3, 0x8]\n\ - ldr r0, [r3, 0x8]\n\ - adds r2, r6\n\ - subs r4, r6\n\ - cmp r4, r6\n\ - bhi _08000DB2\n\ - ldrb r0, [r5]\n\ - lsls r0, 4\n\ - ldr r5, =gDma3Requests + 0x0C\n\ - adds r0, r5\n\ - ldr r0, [r0]\n\ - strh r0, [r1]\n\ - str r1, [r3]\n\ - str r2, [r3, 0x4]\n\ - lsrs r0, r4, 1\n\ - movs r1, 0x81\n\ - lsls r1, 24\n\ -_08000DEA:\n\ - orrs r0, r1\n\ - str r0, [r3, 0x8]\n\ - ldr r0, [r3, 0x8]\n\ -_08000DF0:\n\ - ldr r1, =gDma3Requests\n\ - mov r3, r12\n\ - ldrb r0, [r3]\n\ - lsls r0, 4\n\ - adds r0, r1\n\ - mov r2, r9\n\ - str r2, [r0]\n\ - ldrb r0, [r3]\n\ - lsls r0, 4\n\ - add r0, r10\n\ - str r2, [r0]\n\ - ldrb r0, [r3]\n\ - lsls r0, 4\n\ - adds r0, r1\n\ - movs r4, 0\n\ - strh r2, [r0, 0x8]\n\ - ldrb r0, [r3]\n\ - lsls r0, 4\n\ - adds r0, r1\n\ - mov r5, r9\n\ - strh r5, [r0, 0xA]\n\ - ldrb r0, [r3]\n\ - lsls r0, 4\n\ - adds r1, 0xC\n\ - adds r0, r1\n\ - mov r1, r9\n\ - str r1, [r0]\n\ - ldrb r0, [r3]\n\ - adds r0, 0x1\n\ - strb r0, [r3]\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bge _08000E34\n\ - strb r4, [r3]\n\ -_08000E34:\n\ - mov r2, r12\n\ - ldrb r0, [r2]\n\ - lsls r0, 4\n\ - ldr r3, =gDma3Requests\n\ - adds r0, r3\n\ - ldrh r0, [r0, 0x8]\n\ - cmp r0, 0\n\ - beq _08000E46\n\ - b _08000C2E\n\ -_08000E46:\n\ - add sp, 0xC\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided"); -} -#endif -int RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode) +s16 RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode) { int cursor; int var = 0; @@ -466,7 +129,7 @@ int RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode) return -1; } -int RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode) +s16 RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode) { int cursor; int var = 0; @@ -504,7 +167,7 @@ int RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode) return -1; } -int CheckForSpaceForDma3Request(s16 index) +s16 CheckForSpaceForDma3Request(s16 index) { int current = 0; diff --git a/src/fieldmap.c b/src/fieldmap.c index 5d11c7d99..2683eaf62 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -897,7 +897,7 @@ void copy_tileset_patterns_to_vram(struct Tileset const *tileset, u16 numTiles, if (!tileset->isCompressed) LoadBgTiles(2, tileset->tiles, numTiles * 32, offset); else - sub_80F68F0(2, tileset->tiles, numTiles * 32, offset, 0); + DecompressAndCopyTileDataToVram2(2, tileset->tiles, numTiles * 32, offset, 0); } } @@ -908,7 +908,7 @@ void copy_tileset_patterns_to_vram2(struct Tileset const *tileset, u16 numTiles, if (!tileset->isCompressed) LoadBgTiles(2, tileset->tiles, numTiles * 32, offset); else - sub_80F69E8(2, tileset->tiles, numTiles * 32, offset, 0); + DecompressAndLoadBgGfxUsingHeap2(2, tileset->tiles, numTiles * 32, offset, 0); } } diff --git a/src/fldeff_dig.c b/src/fldeff_dig.c new file mode 100644 index 000000000..3a28c1adc --- /dev/null +++ b/src/fldeff_dig.c @@ -0,0 +1,48 @@ +#include "global.h" +#include "field_effect.h" +#include "field_player_avatar.h" +#include "fldeff.h" +#include "item_use.h" +#include "overworld.h" +#include "party_menu.h" +#include "sprite.h" +#include "constants/map_objects.h" + +static void FieldCallback_Dig(void); +static void sub_80C9AFC(void); + +bool8 SetUpFieldMove_Dig(void) +{ + if (CanUseEscapeRopeOnCurrMap() == TRUE) + { + gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu; + gPostMenuFieldCallback = FieldCallback_Dig; + return TRUE; + } + return FALSE; +} + +static void FieldCallback_Dig(void) +{ + Overworld_ResetStateAfterDigEscRope(); + FieldEffectStart(FLDEFF_USE_DIG); + gFieldEffectArguments[0] = GetCursorSelectionMonId(); +} + +bool8 FldEff_UseDig(void) +{ + u8 taskId = oei_task_add(); + + FLDEFF_SET_FUNC_TO_DATA(sub_80C9AFC); + SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT); + return FALSE; +} + +static void sub_80C9AFC(void) +{ + u8 taskId; + + FieldEffectActiveListRemove(FLDEFF_USE_DIG); + taskId = CreateTask(sub_80A1C44, 8); + gTasks[taskId].data[0] = 0; +} diff --git a/src/fldeff_poison.c b/src/fldeff_poison.c new file mode 100644 index 000000000..98f54b4d4 --- /dev/null +++ b/src/fldeff_poison.c @@ -0,0 +1,39 @@ +#include "global.h" +#include "task.h" +#include "bg.h" +#include "sound.h" +#include "constants/songs.h" + +static void Task_FieldPoisonEffect(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + switch (data[0]) + { + case 0: + data[1] += 1; + if (data[1] > 4) + data[0]++; + break; + case 1: + data[1] -= 1; + if (data[1] == 0) + data[0]++; + break; + case 2: + DestroyTask(taskId); + return; + } + AdjustBgMosaic((u8)(((u8)data[1] << 4) | (u8)data[1]), BG_MOSAIC_SET); +} + +void FldEffPoison_Start(void) +{ + PlaySE(SE_DAUGI); + CreateTask(Task_FieldPoisonEffect, 80); +} + +bool32 FldEffPoison_IsActive(void) +{ + return FuncIsActiveTask(Task_FieldPoisonEffect); +} diff --git a/src/fldeff_rocksmash.c b/src/fldeff_rocksmash.c new file mode 100644 index 000000000..517f3479a --- /dev/null +++ b/src/fldeff_rocksmash.c @@ -0,0 +1,137 @@ +#include "global.h" +#include "global.fieldmap.h" +#include "field_player_avatar.h" +#include "field_effect.h" +#include "party_menu.h" +#include "malloc.h" +#include "event_data.h" +#include "script.h" +#include "fldeff.h" +#include "event_scripts.h" +#include "field_weather.h" +#include "sound.h" +#include "palette.h" +#include "overworld.h" +#include "wild_encounter.h" +#include "field_map_obj.h" +#include "constants/songs.h" +#include "constants/map_objects.h" + +static void task08_080C9820(u8 taskId); +static void sub_80C98FC(u8 taskId); +static void sub_80C98B0(u8 taskId); +static void sub_80C99A0(u8 taskId); +static void sub_80C9A10(void); +static void sub_80C9A60(void); + +bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId) +{ + u8 mapObjId; + + GetXYCoordsOneStepInFrontOfPlayer(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y); + gPlayerFacingPosition.height = PlayerGetZCoord(); + mapObjId = GetFieldObjectIdByXYZ(gPlayerFacingPosition.x, gPlayerFacingPosition.y, gPlayerFacingPosition.height); + if (gMapObjects[mapObjId].graphicsId != graphicsId) + return FALSE; + gSpecialVar_LastTalked = gMapObjects[mapObjId].localId; + return TRUE; +} + +u8 oei_task_add(void) +{ + GetXYCoordsOneStepInFrontOfPlayer(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y); + return CreateTask(task08_080C9820, 8); +} + +static void task08_080C9820(u8 taskId) +{ + u8 mapObjId; + + ScriptContext2_Enable(); + gPlayerAvatar.unk6 = TRUE; + mapObjId = gPlayerAvatar.mapObjectId; + if (!FieldObjectIsMovementOverridden(&gMapObjects[mapObjId]) + || FieldObjectClearHeldMovementIfFinished(&gMapObjects[mapObjId])) + { + if (gMapHeader.mapType == MAP_TYPE_UNDERWATER) + { + FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT); + gTasks[taskId].func = sub_80C98FC; + } + else + { + sub_805CB70(); + FieldObjectSetHeldMovement(&gMapObjects[mapObjId], 0x45); + gTasks[taskId].func = sub_80C98B0; + } + } +} + +static void sub_80C98B0(u8 taskId) +{ + if (FieldObjectCheckHeldMovementStatus(&gMapObjects[gPlayerAvatar.mapObjectId]) == TRUE) + { + FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT); + gTasks[taskId].func = sub_80C98FC; + } +} + +static void sub_80C98FC(u8 taskId) +{ + if (!FieldEffectActiveListContains(FLDEFF_FIELD_MOVE_SHOW_MON)) + { + gFieldEffectArguments[1] = GetPlayerFacingDirection(); + if (gFieldEffectArguments[1] == 1) + gFieldEffectArguments[2] = 0; + if (gFieldEffectArguments[1] == 2) + gFieldEffectArguments[2] = 1; + if (gFieldEffectArguments[1] == 3) + gFieldEffectArguments[2] = 2; + if (gFieldEffectArguments[1] == 4) + gFieldEffectArguments[2] = 3; + EventObjectSetGraphicsId(&gMapObjects[gPlayerAvatar.mapObjectId], GetPlayerAvatarGraphicsIdByCurrentState()); + StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], gFieldEffectArguments[2]); + FieldEffectActiveListRemove(6); + gTasks[taskId].func = sub_80C99A0; + } +} + +static void sub_80C99A0(u8 taskId) +{ + FLDEFF_CALL_FUNC_IN_DATA(); + gPlayerAvatar.unk6 = FALSE; + DestroyTask(taskId); +} + +bool8 SetUpFieldMove_RockSmash(void) +{ + if (CheckObjectGraphicsInFrontOfPlayer(/*MAP_OBJ_GFX_BREAKABLE_ROCK*/0x60) == TRUE) + { + gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu; + gPostMenuFieldCallback = sub_80C9A10; + return TRUE; + } + return FALSE; +} + +static void sub_80C9A10(void) +{ + gFieldEffectArguments[0] = GetCursorSelectionMonId(); + ScriptContext1_SetupScript(EventScript_FldEffRockSmash); +} + +bool8 FldEff_UseRockSmash(void) +{ + u8 taskId = oei_task_add(); + + FLDEFF_SET_FUNC_TO_DATA(sub_80C9A60); + IncrementGameStat(GAME_STAT_USED_ROCK_SMASH); + return FALSE; +} + +static void sub_80C9A60(void) +{ + PlaySE(SE_W145); + FieldEffectActiveListRemove(FLDEFF_USE_ROCK_SMASH); + EnableBothScriptContexts(); +} diff --git a/src/fldeff_softboiled.c b/src/fldeff_softboiled.c index 50c715388..2a3d68e70 100644 --- a/src/fldeff_softboiled.c +++ b/src/fldeff_softboiled.c @@ -4,11 +4,12 @@ #include "string_util.h" #include "menu.h" #include "constants/songs.h" +#include "fldeff.h" -void sub_80E57E8(u8 taskId); -void sub_80E583C(u8 taskId); -void sub_80E58A0(u8 taskId); -void sub_80E5934(u8 taskId); +static void sub_80E57E8(u8 taskId); +static void sub_80E583C(u8 taskId); +static void sub_80E58A0(u8 taskId); +static void sub_80E5934(u8 taskId); extern const u8 gUnknown_84169F8[]; extern const u8 gUnknown_8416F27[]; @@ -61,22 +62,22 @@ void sub_80E5724(u8 taskId) } } -void sub_80E57E8(u8 taskId) +static void sub_80E57E8(u8 taskId) { PlaySE(SE_KAIFUKU); sub_8120760(taskId, gUnknown_203B0A0.unkA, 1, GetMonData(&gPlayerParty[gUnknown_203B0A0.unk9], MON_DATA_MAX_HP) / 5, sub_80E583C); } -void sub_80E583C(u8 taskId) +static void sub_80E583C(u8 taskId) { GetMonNickname(&gPlayerParty[gUnknown_203B0A0.unkA], gStringVar1); StringExpandPlaceholders(gStringVar4, gUnknown_8416F27); sub_81202F8(gStringVar4, 0); - schedule_bg_copy_tilemap_to_vram(2); + ScheduleBgCopyTilemapToVram(2); gTasks[taskId].func = sub_80E58A0; } -void sub_80E58A0(u8 taskId) +static void sub_80E58A0(u8 taskId) { if (sub_8120370() != TRUE) { @@ -91,7 +92,7 @@ void sub_80E58A0(u8 taskId) } } -void sub_80E5900(u8 taskId) +static void sub_80E5900(u8 taskId) { if (sub_8120370() != TRUE) { @@ -100,10 +101,10 @@ void sub_80E5900(u8 taskId) } } -void sub_80E5934(u8 taskId) +static void sub_80E5934(u8 taskId) { PlaySE(SE_SELECT); sub_81202F8(gUnknown_84169F8, 0); - schedule_bg_copy_tilemap_to_vram(2); + ScheduleBgCopyTilemapToVram(2); gTasks[taskId].func = sub_80E5900; } diff --git a/src/fldeff_strength.c b/src/fldeff_strength.c new file mode 100644 index 000000000..3f3254ade --- /dev/null +++ b/src/fldeff_strength.c @@ -0,0 +1,47 @@ +#include "global.h" +#include "field_player_avatar.h" +#include "field_effect.h" +#include "party_menu.h" +#include "event_data.h" +#include "script.h" +#include "fldeff.h" +#include "event_scripts.h" +#include "constants/songs.h" +#include "constants/map_objects.h" + +static void FldEff_UseStrength(void); +static void sub_80D08A8(void); + +bool8 SetUpFieldMove_Strength(void) +{ + if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING) || CheckObjectGraphicsInFrontOfPlayer(/*MAP_OBJ_GFX_PUSHABLE_BOULDER*/0x61) != TRUE) + { + return FALSE; + } + else + { + gSpecialVar_Result = GetCursorSelectionMonId(); + gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu; + gPostMenuFieldCallback = FldEff_UseStrength; + return TRUE; + } +} +static void FldEff_UseStrength(void) +{ + gFieldEffectArguments[0] = GetCursorSelectionMonId(); + ScriptContext1_SetupScript(EventScript_FldEffStrength); +} + +bool8 sub_80D0860(void) +{ + u8 taskId = oei_task_add(); + FLDEFF_SET_FUNC_TO_DATA(sub_80D08A8); + GetMonNickname(&gPlayerParty[gFieldEffectArguments[0]], gStringVar1); + return FALSE; +} + +static void sub_80D08A8(void) +{ + FieldEffectActiveListRemove(FLDEFF_USE_STRENGTH); + EnableBothScriptContexts(); +} diff --git a/src/fldeff_sweetscent.c b/src/fldeff_sweetscent.c new file mode 100644 index 000000000..9c6115044 --- /dev/null +++ b/src/fldeff_sweetscent.c @@ -0,0 +1,101 @@ +#include "global.h" +#include "field_player_avatar.h" +#include "field_effect.h" +#include "party_menu.h" +#include "malloc.h" +#include "event_data.h" +#include "script.h" +#include "fldeff.h" +#include "event_scripts.h" +#include "field_weather.h" +#include "sound.h" +#include "palette.h" +#include "wild_encounter.h" +#include "constants/songs.h" + +static void FieldCallback_SweetScent(void); +static void StartSweetScentFieldEffect(void); +static void TrySweetScentEncounter(u8 taskId); +static void FailSweetScentEncounter(u8 taskId); + +static void Unused_StartSweetscentFldeff(void) +{ + gUnknown_203B0A0.unk9 = 0; + FieldCallback_SweetScent(); +} + +bool8 SetUpFieldMove_SweetScent(void) +{ + gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu; + gPostMenuFieldCallback = FieldCallback_SweetScent; + return TRUE; +} + +static void FieldCallback_SweetScent(void) +{ + FieldEffectStart(FLDEFF_SWEET_SCENT); + gFieldEffectArguments[0] = GetCursorSelectionMonId(); +} + +bool8 FldEff_SweetScent(void) +{ + u8 taskId; + + SetWeatherScreenFadeOut(); + taskId = oei_task_add(); + FLDEFF_SET_FUNC_TO_DATA(StartSweetScentFieldEffect); + return FALSE; +} + +static void StartSweetScentFieldEffect(void) +{ + u8 taskId; + + PlaySE(SE_W260); + gPaletteDecompressionBuffer = (u8 *)Alloc(0x400); + CpuFastSet(gPlttBufferUnfaded, gPaletteDecompressionBuffer, 0x100); + CpuFastSet(gPlttBufferFaded, gPlttBufferUnfaded, 0x100); + BeginNormalPaletteFade(~(1 << (gSprites[GetPlayerAvatarObjectId()].oam.paletteNum + 16)), 4, 0, 8, RGB(31, 0, 0)); + taskId = CreateTask(TrySweetScentEncounter, 0); + gTasks[taskId].data[0] = 0; + FieldEffectActiveListRemove(FLDEFF_SWEET_SCENT); +} + +static void TrySweetScentEncounter(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + if (!gPaletteFade.active) + { + if (data[0] == 64) + { + data[0] = 0; + if (SweetScentWildEncounter() == TRUE) + { + Free(gPaletteDecompressionBuffer); + DestroyTask(taskId); + } + else + { + gTasks[taskId].func = FailSweetScentEncounter; + BeginNormalPaletteFade(~(1 << (gSprites[GetPlayerAvatarObjectId()].oam.paletteNum + 16)), 4, 8, 0, RGB(31, 0, 0)); + } + } + else + { + data[0]++; + } + } +} + +static void FailSweetScentEncounter(u8 taskId) +{ + if (!gPaletteFade.active) + { + CpuFastSet(gPaletteDecompressionBuffer, gPlttBufferUnfaded, 0x100); + sub_807B070(); + Free(gPaletteDecompressionBuffer); + ScriptContext1_SetupScript(EventScript_FailSweetScent); + DestroyTask(taskId); + } +} diff --git a/src/fldeff_teleport.c b/src/fldeff_teleport.c index 74fad1110..a66a332bf 100644 --- a/src/fldeff_teleport.c +++ b/src/fldeff_teleport.c @@ -29,8 +29,7 @@ static void FieldCallback_Teleport(void) bool8 FldEff_UseTeleport(void) { u8 taskId = oei_task_add(); - gTasks[taskId].data[8] = (u32)StartTeleportFieldEffect >> 16; - gTasks[taskId].data[9] = (u32)StartTeleportFieldEffect; + FLDEFF_SET_FUNC_TO_DATA(StartTeleportFieldEffect); SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT); return FALSE; } diff --git a/src/hof_pc.c b/src/hof_pc.c new file mode 100644 index 000000000..241fbc4f3 --- /dev/null +++ b/src/hof_pc.c @@ -0,0 +1,53 @@ +#include "global.h" +#include "hall_of_fame.h" +#include "palette.h" +#include "overworld.h" +#include "script.h" +#include "script_menu.h" +#include "task.h" +#include "hall_of_fame.h" +#include "bg.h" +#include "window.h" + +static void ReshowPCMenuAfterHallOfFamePC(void); +static void Task_WaitForPaletteFade(u8 taskId); + +static void Task_WaitFadeAndSetCallback(u8 taskId) +{ + if (!gPaletteFade.active) + { + FreeAllWindowBuffers(); + ResetBgsAndClearDma3BusyFlags(0); + DestroyTask(taskId); + SetMainCallback2(sub_80F2978); + } +} + +void HallOfFamePCBeginFade(void) +{ + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); + ScriptContext2_Enable(); + CreateTask(Task_WaitFadeAndSetCallback, 0); +} + +void ReturnFromHallOfFamePC(void) +{ + SetMainCallback2(CB2_ReturnToField); + gFieldCallback = ReshowPCMenuAfterHallOfFamePC; +} + +static void ReshowPCMenuAfterHallOfFamePC(void) +{ + ScriptContext2_Enable(); + Overworld_PlaySpecialMapMusic(); + ScrSpecial_CreatePCMenu(); + ScriptMenu_DisplayPCStartupPrompt(); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK); + CreateTask(Task_WaitForPaletteFade, 10); +} + +static void Task_WaitForPaletteFade(u8 taskId) +{ + if (!gPaletteFade.active) + DestroyTask(taskId); +} diff --git a/src/item_menu_icons.c b/src/item_menu_icons.c index a244a1075..0c2c60437 100644 --- a/src/item_menu_icons.c +++ b/src/item_menu_icons.c @@ -683,7 +683,7 @@ u8 AddItemIconObject(u16 tilesTag, u16 paletteTag, u16 itemId) spritePalette.data = sub_8098974(itemId, 1); spritePalette.tag = paletteTag; - LoadCompressedObjectPalette(&spritePalette); + LoadCompressedSpritePalette(&spritePalette); CpuCopy16(&gUnknown_83D427C, &template, sizeof(struct SpriteTemplate)); template.tileTag = tilesTag; @@ -714,7 +714,7 @@ u8 AddItemIconObjectWithCustomObjectTemplate(const struct SpriteTemplate * origT spritePalette.data = sub_8098974(itemId, 1); spritePalette.tag = paletteTag; - LoadCompressedObjectPalette(&spritePalette); + LoadCompressedSpritePalette(&spritePalette); CpuCopy16(origTemplate, &template, sizeof(struct SpriteTemplate)); template.tileTag = tilesTag; diff --git a/src/item_pc.c b/src/item_pc.c index afc82a73f..2d30416c9 100644 --- a/src/item_pc.c +++ b/src/item_pc.c @@ -247,7 +247,7 @@ static void ItemPc_MainCB(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); UpdatePaletteFade(); } @@ -276,7 +276,7 @@ static bool8 ItemPc_DoGfxSetup(void) { case 0: SetVBlankHBlankCallbacksToNull(); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); gMain.state++; break; case 1: @@ -423,7 +423,7 @@ static bool8 ItemPc_InitBgs(void) ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, sBgTemplates, NELEMS(sBgTemplates)); SetBgTilemapBuffer(1, sBg1TilemapBuffer); - schedule_bg_copy_tilemap_to_vram(1); + ScheduleBgCopyTilemapToVram(1); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON); SetGpuReg(REG_OFFSET_BLDCNT , 0); ShowBg(0); @@ -436,12 +436,12 @@ static bool8 ItemPc_LoadGraphics(void) switch (sStateDataPtr->data[0]) { case 0: - reset_temp_tile_data_buffers(); - decompress_and_copy_tile_data_to_vram(1, gItemPcTiles, 0, 0, 0); + ResetTempTileDataBuffers(); + DecompressAndCopyTileDataToVram(1, gItemPcTiles, 0, 0, 0); sStateDataPtr->data[0]++; break; case 1: - if (free_temp_tile_data_buffers_if_possible() != TRUE) + if (FreeTempTileDataBuffersIfPossible() != TRUE) { LZDecompressWram(gItemPcTilemap, sBg1TilemapBuffer); sStateDataPtr->data[0]++; @@ -452,11 +452,11 @@ static bool8 ItemPc_LoadGraphics(void) sStateDataPtr->data[0]++; break; case 3: - LoadCompressedObjectPic(&gBagSwapSpriteSheet); + LoadCompressedSpriteSheet(&gBagSwapSpriteSheet); sStateDataPtr->data[0]++; break; default: - LoadCompressedObjectPalette(&gBagSwapSpritePalette); + LoadCompressedSpritePalette(&gBagSwapSpritePalette); sStateDataPtr->data[0] = 0; return TRUE; } @@ -710,7 +710,7 @@ static void ItemPc_SetScrollPosition(void) static void ItemPc_SetMessageWindowPalette(int a0) { SetBgRectPal(1, 0, 14, 30, 6, a0 + 1); - schedule_bg_copy_tilemap_to_vram(1); + ScheduleBgCopyTilemapToVram(1); } void ItemPc_SetInitializedFlag(u8 a0) @@ -849,7 +849,7 @@ static void Task_ItemPcSubmenuInit(u8 taskId) CopyItemName(ItemPc_GetItemIdBySlotId(data[1]), gStringVar1); StringExpandPlaceholders(gStringVar4, gOtherText_StrVar1); ItemPc_AddTextPrinterParameterized(windowId, 2, gStringVar4, 0, 2, 1, 0, 0, 1); - schedule_bg_copy_tilemap_to_vram(0); + ScheduleBgCopyTilemapToVram(0); gTasks[taskId].func = Task_ItemPcSubmenuRun; } @@ -881,7 +881,7 @@ static void Task_ItemPcWithdraw(u8 taskId) if (ItemPc_GetItemQuantityBySlotId(data[1]) == 1) { PutWindowTilemap(0); - schedule_bg_copy_tilemap_to_vram(0); + ScheduleBgCopyTilemapToVram(0); ItemPc_DoWithdraw(taskId); } else @@ -952,7 +952,7 @@ static void Task_ItemPcCleanUpWithdraw(u8 taskId) ItemPc_SetCursorPosition(); ItemPc_BuildListMenuTemplate(); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row); - schedule_bg_copy_tilemap_to_vram(0); + ScheduleBgCopyTilemapToVram(0); ItemPc_ReturnFromSubmenu(taskId); } @@ -967,7 +967,7 @@ static void ItemPc_WithdrawMultipleInitWindow(u16 slotId) StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1); ItemPc_SetBorderStyleOnWindow(3); ItemPc_AddTextPrinterParameterized(3, 0, gStringVar4, 8, 10, 1, 0, 0, 1); - schedule_bg_copy_tilemap_to_vram(0); + ScheduleBgCopyTilemapToVram(0); } static void sub_810E670(s16 quantity) @@ -991,7 +991,7 @@ static void Task_ItemPcHandleWithdrawMultiple(u8 taskId) ClearWindowTilemap(3); PutWindowTilemap(0); ItemPc_PrintOrRemoveCursor(data[0], 1); - schedule_bg_copy_tilemap_to_vram(0); + ScheduleBgCopyTilemapToVram(0); ItemPc_RemoveScrollIndicatorArrowPair(); ItemPc_DoWithdraw(taskId); } @@ -1004,7 +1004,7 @@ static void Task_ItemPcHandleWithdrawMultiple(u8 taskId) PutWindowTilemap(0); PutWindowTilemap(1); ItemPc_PrintOrRemoveCursor(data[0], 1); - schedule_bg_copy_tilemap_to_vram(0); + ScheduleBgCopyTilemapToVram(0); ItemPc_RemoveScrollIndicatorArrowPair(); ItemPc_ReturnFromSubmenu(taskId); } @@ -1049,7 +1049,7 @@ static void gTask_ItemPcWaitButtonAndExitSubmenu(u8 taskId) ClearWindowTilemap(5); PutWindowTilemap(1); ItemPc_PrintOrRemoveCursor(data[0], 1); - schedule_bg_copy_tilemap_to_vram(0); + ScheduleBgCopyTilemapToVram(0); ItemPc_ReturnFromSubmenu(taskId); } } @@ -1064,7 +1064,7 @@ static void Task_ItemPcCancel(u8 taskId) PutWindowTilemap(0); PutWindowTilemap(1); ItemPc_PrintOrRemoveCursor(data[0], 1); - schedule_bg_copy_tilemap_to_vram(0); + ScheduleBgCopyTilemapToVram(0); ItemPc_ReturnFromSubmenu(taskId); } @@ -1076,7 +1076,7 @@ static void ItemPc_InitWindows(void) DeactivateAllTextPrinters(); TextWindow_SetUserSelectedFrame(0, 0x3C0, 0xE0); TextWindow_SetStdFrame0_WithPal(0, 0x3A3, 0xC0); - TextWindow_SetBubbleFrame_841F1C8(0, 0x3AC, 0xB0); + TextWindow_LoadResourcesStdFrame0(0, 0x3AC, 0xB0); LoadPalette(stdpal_get(2), 0xD0, 0x20); LoadPalette(gTMCaseMainWindowPalette, 0xF0, 0x20); for (i = 0; i < 3; i++) @@ -1084,7 +1084,7 @@ static void ItemPc_InitWindows(void) FillWindowPixelBuffer(i, 0x00); PutWindowTilemap(i); } - schedule_bg_copy_tilemap_to_vram(0); + ScheduleBgCopyTilemapToVram(0); for (i = 0; i < 3; i++) sSubmenuWindowIds[i] = 0xFF; } @@ -1146,5 +1146,5 @@ static u8 ItemPc_GetSubwindow(u8 idx) static void ItemPc_PrintOnWindow5WithContinueTask(u8 taskId, const u8 * str, TaskFunc taskFunc) { DisplayMessageAndContinueTask(taskId, 5, 0x3AC, 0x0B, 2, GetTextSpeedSetting(), str, taskFunc); - schedule_bg_copy_tilemap_to_vram(0); + ScheduleBgCopyTilemapToVram(0); } diff --git a/src/item_use.c b/src/item_use.c index a7146b65e..3653a1699 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -68,7 +68,6 @@ void sub_80A19E8(u8 taskId); void sub_80A1A44(void); void sub_80A1B48(u8 taskId); void sub_80A1C08(u8 taskId); -void sub_80A1C44(u8 taskId); void sub_80A1CAC(void); void sub_80A1CC0(u8 taskId); void sub_80A1D58(void); @@ -557,7 +556,7 @@ void sub_80A1B48(u8 taskId) } } -bool8 sub_80A1B8C(void) +bool8 CanUseEscapeRopeOnCurrMap(void) { if (gMapHeader.escapeRope & 1) return TRUE; @@ -567,7 +566,7 @@ bool8 sub_80A1B8C(void) void ItemUseOutOfBattle_EscapeRope(u8 taskId) { - if (sub_80A1B8C() == TRUE) + if (CanUseEscapeRopeOnCurrMap() == TRUE) { ItemUse_SetQuestLogEvent(4, NULL, gSpecialVar_ItemId, gMapHeader.regionMapSectionId); sItemUseOnFieldCB = sub_80A1C08; @@ -579,7 +578,7 @@ void ItemUseOutOfBattle_EscapeRope(u8 taskId) void sub_80A1C08(u8 taskId) { - sub_8054D70(); + Overworld_ResetStateAfterDigEscRope(); sub_80A1A44(); gTasks[taskId].data[0] = 0; DisplayItemMessageOnField(taskId, 2, gStringVar4, sub_80A1C44); diff --git a/src/load_save.c b/src/load_save.c index 8d09a86a8..0a7bbbfc5 100644 --- a/src/load_save.c +++ b/src/load_save.c @@ -6,6 +6,7 @@ #include "random.h" #include "malloc.h" #include "item.h" +#include "save_location.h" extern void SetBagPocketsPointers(void); extern void sub_8110840(void *oldSave); @@ -132,28 +133,28 @@ void MoveSaveBlocks_ResetHeap(void) u32 sav2_x1_query_bit1(void) { - return gSaveBlock2Ptr->specialSaveWarp & 1; + return gSaveBlock2Ptr->specialSaveWarpFlags & CONTINUE_GAME_WARP; } void sav2_x9_clear_bit1(void) { - gSaveBlock2Ptr->specialSaveWarp &= ~1; + gSaveBlock2Ptr->specialSaveWarpFlags &= ~CONTINUE_GAME_WARP; } void sub_804C1AC(void) { - gSaveBlock2Ptr->specialSaveWarp |= 1; + gSaveBlock2Ptr->specialSaveWarpFlags |= CONTINUE_GAME_WARP; } void sub_804C1C0(void) { sub_8055778(0); - gSaveBlock2Ptr->specialSaveWarp |= 1; + gSaveBlock2Ptr->specialSaveWarpFlags |= CONTINUE_GAME_WARP; } void sav2_gender2_inplace_and_xFE(void) { - gSaveBlock2Ptr->specialSaveWarp &= ~1; + gSaveBlock2Ptr->specialSaveWarpFlags &= ~CONTINUE_GAME_WARP; } void SavePlayerParty(void) diff --git a/src/mail_data.c b/src/mail_data.c new file mode 100644 index 000000000..d4fa649e1 --- /dev/null +++ b/src/mail_data.c @@ -0,0 +1,186 @@ +#include "global.h" +#include "text.h" +#include "mail.h" +#include "mail_data.h" +#include "constants/species.h" +#include "constants/items.h" +#include "pokemon_icon.h" + +void ClearMailData(void) +{ + u8 i; + + for (i = 0; i < MAIL_COUNT; i++) + ClearMailStruct(&gSaveBlock1Ptr->mail[i]); +} + +void ClearMailStruct(struct MailStruct *mail) +{ + s32 i; + + for (i = 0; i < MAIL_WORDS_COUNT; i++) + mail->words[i] = 0xFFFF; + for (i = 0; i < PLAYER_NAME_LENGTH; i++) + mail->playerName[i] = EOS; + for (i = 0; i < 4; i++) + mail->trainerId[i] = 0; + mail->species = SPECIES_BULBASAUR; + mail->itemId = ITEM_NONE; +} + +bool8 MonHasMail(struct Pokemon *mon) +{ + u16 heldItem = GetMonData(mon, MON_DATA_HELD_ITEM); + if (ItemIsMail(heldItem) && GetMonData(mon, MON_DATA_MAIL) != 0xFF) + return TRUE; + else + return FALSE; +} + +u8 GiveMailToMon(struct Pokemon *mon, u16 itemId) +{ + u8 heldItem[2]; + u8 id, i; + u16 species; + u32 personality; + + heldItem[0] = itemId; + heldItem[1] = itemId >> 8; + for (id = 0; id < PARTY_SIZE; id++) + { + if (gSaveBlock1Ptr->mail[id].itemId == 0) + { + for (i = 0; i < MAIL_WORDS_COUNT; i++) + gSaveBlock1Ptr->mail[id].words[i] = 0xFFFF; + for (i = 0; i < PLAYER_NAME_LENGTH - 1 && gSaveBlock2Ptr->playerName[i] != EOS; i++) + gSaveBlock1Ptr->mail[id].playerName[i] = gSaveBlock2Ptr->playerName[i]; + for (; i <= 5; i++) + gSaveBlock1Ptr->mail[id].playerName[i] = CHAR_SPACE; + gSaveBlock1Ptr->mail[id].playerName[i] = EOS; + for (i = 0; i < 4; i++) + gSaveBlock1Ptr->mail[id].trainerId[i] = gSaveBlock2Ptr->playerTrainerId[i]; + species = GetBoxMonData(&mon->box, MON_DATA_SPECIES); + personality = GetBoxMonData(&mon->box, MON_DATA_PERSONALITY); + gSaveBlock1Ptr->mail[id].species = SpeciesToMailSpecies(species, personality); + gSaveBlock1Ptr->mail[id].itemId = itemId; + SetMonData(mon, MON_DATA_MAIL, &id); + SetMonData(mon, MON_DATA_HELD_ITEM, heldItem); + return id; + } + } + return 0xFF; +} + +u16 SpeciesToMailSpecies(u16 species, u32 personality) +{ + if (species == SPECIES_UNOWN) { + u32 mailSpecies = GetUnownLetterByPersonality(personality) + 30000; + return mailSpecies; + } + return species; +} + +u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *unownLetter) +{ + u16 result; + + if (mailSpecies >= 30000 && mailSpecies < (30000 + UNOWN_FORM_COUNT)) + { + result = SPECIES_UNOWN; + *unownLetter = mailSpecies - 30000; + } + else + { + result = mailSpecies; + } + return result; +} + +u8 GiveMailToMon2(struct Pokemon *mon, struct MailStruct *mail) +{ + u8 heldItem[2]; + u16 itemId = mail->itemId; + u8 mailId = GiveMailToMon(mon, itemId); + + if (mailId == 0xFF) + return 0xFF; + gSaveBlock1Ptr->mail[mailId] = *mail; + SetMonData(mon, MON_DATA_MAIL, &mailId); + heldItem[0] = itemId; + heldItem[1] = itemId >> 8; + + SetMonData(mon, MON_DATA_HELD_ITEM, heldItem); + + return mailId; +} + +static bool32 DummyMailFunc(void) +{ + return FALSE; +} + +void TakeMailFromMon(struct Pokemon *mon) +{ + u8 heldItem[2]; + u8 mailId; + + if (MonHasMail(mon)) + { + mailId = GetMonData(mon, MON_DATA_MAIL); + gSaveBlock1Ptr->mail[mailId].itemId = ITEM_NONE; + mailId = 0xFF; + heldItem[0] = ITEM_NONE; + heldItem[1] = ITEM_NONE << 8; + SetMonData(mon, MON_DATA_MAIL, &mailId); + SetMonData(mon, MON_DATA_HELD_ITEM, heldItem); + } +} + +void ClearMailItemId(u8 mailId) +{ + gSaveBlock1Ptr->mail[mailId].itemId = ITEM_NONE; +} + +u8 TakeMailFromMon2(struct Pokemon *mon) +{ + u8 i, newMailId; + u8 newHeldItem[2]; + + newHeldItem[0] = ITEM_NONE; + newHeldItem[1] = ITEM_NONE << 8; + newMailId = 0xFF; + for (i = PARTY_SIZE; i < MAIL_COUNT; i++) + { + if (gSaveBlock1Ptr->mail[i].itemId == ITEM_NONE) + { + memcpy(&gSaveBlock1Ptr->mail[i], &gSaveBlock1Ptr->mail[GetMonData(mon, MON_DATA_MAIL)], sizeof(struct MailStruct)); + gSaveBlock1Ptr->mail[GetMonData(mon, MON_DATA_MAIL)].itemId = ITEM_NONE; + SetMonData(mon, MON_DATA_MAIL, &newMailId); + SetMonData(mon, MON_DATA_HELD_ITEM, newHeldItem); + return i; + } + } + return 0xFF; +} + +bool8 ItemIsMail(u16 itemId) +{ + switch (itemId) + { + case ITEM_ORANGE_MAIL: + case ITEM_HARBOR_MAIL: + case ITEM_GLITTER_MAIL: + case ITEM_MECH_MAIL: + case ITEM_WOOD_MAIL: + case ITEM_WAVE_MAIL: + case ITEM_BEAD_MAIL: + case ITEM_SHADOW_MAIL: + case ITEM_TROPIC_MAIL: + case ITEM_DREAM_MAIL: + case ITEM_FAB_MAIL: + case ITEM_RETRO_MAIL: + return TRUE; + default: + return FALSE; + } +} diff --git a/src/map_obj_lock.c b/src/map_obj_lock.c index cdd74a5b9..f89819647 100644 --- a/src/map_obj_lock.c +++ b/src/map_obj_lock.c @@ -89,7 +89,7 @@ void LockSelectedMapObject(void) void sub_80696C0(void) { u8 fieldObjectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0); - FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[fieldObjectId]); + FieldObjectClearHeldMovementIfFinished(&gMapObjects[fieldObjectId]); sub_80974D8(); UnfreezeMapObjects(); } @@ -98,9 +98,9 @@ void sub_80696F0(void) { u8 fieldObjectId; if (gMapObjects[gSelectedEventObject].active) - FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[gSelectedEventObject]); + FieldObjectClearHeldMovementIfFinished(&gMapObjects[gSelectedEventObject]); fieldObjectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0); - FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[fieldObjectId]); + FieldObjectClearHeldMovementIfFinished(&gMapObjects[fieldObjectId]); sub_80974D8(); UnfreezeMapObjects(); } diff --git a/src/menu2.c b/src/menu2.c index 9a1846c7e..ffe5865e4 100644 --- a/src/menu2.c +++ b/src/menu2.c @@ -820,7 +820,7 @@ u8 sub_812EA78(u16 species, u32 personality, u8 a2) { if (species == SPECIES_UNOWN) { - u8 unownLetter = GetUnownLetterByPersonality(personality); + u8 unownLetter = GetUnownLetterByPersonalityLoByte(personality); switch (unownLetter) { case 0: diff --git a/src/mevent_8145654.c b/src/mevent_8145654.c index 034a07679..abd29ca11 100644 --- a/src/mevent_8145654.c +++ b/src/mevent_8145654.c @@ -175,13 +175,13 @@ s32 FadeToWonderCardMenu(void) CopyBgTilemapBufferToVram(0); CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(2); - decompress_and_copy_tile_data_to_vram(2, gUnknown_203F3C8->unk_0170->tiles, 0, 0x008, 0); + DecompressAndCopyTileDataToVram(2, gUnknown_203F3C8->unk_0170->tiles, 0, 0x008, 0); gUnknown_203F3C8->unk_0176[0] = AddWindow(&gUnknown_8467074[0]); gUnknown_203F3C8->unk_0176[1] = AddWindow(&gUnknown_8467074[1]); gUnknown_203F3C8->unk_0176[2] = AddWindow(&gUnknown_8467074[2]); break; case 3: - if (free_temp_tile_data_buffers_if_possible()) + if (FreeTempTileDataBuffersIfPossible()) return 0; gPaletteFade.bufferTransferDisabled = TRUE; LoadPalette(gUnknown_203F3C8->unk_0170->pal, 0x10, 0x20); @@ -402,7 +402,7 @@ void sub_8146060(void) } if (gUnknown_203F3C8->unk_0000.unk_09 != 0 && gUnknown_203F3C8->unk_0000.unk_08_0 == 1) { - sub_800F034(&gUnknown_8467F58); + LoadCompressedSpriteSheetUsingHeap(&gUnknown_8467F58); LoadSpritePalette(&gUnknown_8467F60[gUnknown_203F3C8->unk_0170->textPal4]); for (; r7 < gUnknown_203F3C8->unk_0000.unk_09; r7++) { @@ -565,12 +565,12 @@ s32 FadeToWonderNewsMenu(void) CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(2); CopyBgTilemapBufferToVram(3); - decompress_and_copy_tile_data_to_vram(3, gUnknown_203F3CC->unk_01BC->tiles, 0, 8, 0); + DecompressAndCopyTileDataToVram(3, gUnknown_203F3CC->unk_01BC->tiles, 0, 8, 0); gUnknown_203F3CC->unk_01C8[0] = AddWindow(&gUnknown_8468040[0]); gUnknown_203F3CC->unk_01C8[1] = AddWindow(&gUnknown_8468040[1]); break; case 3: - if (free_temp_tile_data_buffers_if_possible()) + if (FreeTempTileDataBuffersIfPossible()) return 0; gPaletteFade.bufferTransferDisabled = TRUE; LoadPalette(gUnknown_203F3CC->unk_01BC->pal, 0x10, 0x20); diff --git a/src/multiboot.c b/src/multiboot.c new file mode 100644 index 000000000..cfc9821d2 --- /dev/null +++ b/src/multiboot.c @@ -0,0 +1,416 @@ +#include "global.h" +#include "multiboot.h" + +static IWRAM_DATA u16 MultiBoot_required_data[MULTIBOOT_NCHILD]; + +static int MultiBootSend(struct MultiBootParam *mp, u16 data); +static int MultiBootHandShake(struct MultiBootParam *mp); +static void MultiBootWaitCycles(u32 cycles); +static void MultiBootWaitSendDone(void); + +void MultiBootInit(struct MultiBootParam *mp) +{ + mp->client_bit = 0; + mp->probe_count = 0; + mp->response_bit = 0; + mp->check_wait = MULTIBOOT_CONNECTION_CHECK_WAIT; + mp->sendflag = 0; + mp->handshake_timeout = 0; + REG_RCNT = 0; + REG_SIOCNT = SIO_MULTI_MODE | SIO_115200_BPS; + REG_SIODATA8 = 0; +} + +int MultiBootMain(struct MultiBootParam *mp) +{ + int i, j, k; + + if (MultiBootCheckComplete(mp)) + { + return 0; + } + if (mp->check_wait > MULTIBOOT_CONNECTION_CHECK_WAIT) + { + mp->check_wait--; + return 0; + } +output_burst: + if (mp->sendflag) + { + mp->sendflag = 0; + + i = REG_SIOCNT & (SIO_MULTI_BUSY | SIO_ERROR | SIO_ID | SIO_MULTI_SD | SIO_MULTI_SI); + if (i != SIO_MULTI_SD) + { + MultiBootInit(mp); + return i ^ SIO_MULTI_SD; + } + } + if (mp->probe_count >= 0xe0) + { + i = MultiBootHandShake(mp); + if (i) + { + return i; + } + + if (mp->server_type == MULTIBOOT_SERVER_TYPE_QUICK + && mp->probe_count > 0xe1 + && MultiBootCheckComplete(mp) == 0) + { + MultiBootWaitSendDone(); + goto output_burst; + } + + if (MultiBootCheckComplete(mp) == 0) + { + if (mp->handshake_timeout == 0) + { + MultiBootInit(mp); + return MULTIBOOT_ERROR_HANDSHAKE_FAILURE; + } + mp->handshake_timeout--; + } + + return 0; + } + switch (mp->probe_count) + { + case 0: + k = 0x0e; + for (i = MULTIBOOT_NCHILD; i != 0; i--) + { + if (*(vu16 *)(REG_ADDR_SIOMULTI0 + i * 2) != 0xffff) + { + break; + } + k >>= 1; + } + k &= 0x0e; + mp->response_bit = k; + for (i = MULTIBOOT_NCHILD; i != 0; i--) + { + j = *(vu16 *)(REG_ADDR_SIOMULTI0 + i * 2); + if (mp->client_bit & (1 << i)) + { + if (j != ((MULTIBOOT_CLIENT_INFO << 8) | (1 << i))) + { + k = 0; + break; + } + } + } + mp->client_bit &= k; + if (k == 0) + { + mp->check_wait = MULTIBOOT_CONNECTION_CHECK_WAIT; + } + + if (mp->check_wait) + { + mp->check_wait--; + } + else + { + if (mp->response_bit != mp->client_bit) + { + MultiBootStartProbe(mp); + goto case_1; + } + } + output_master_info: + return MultiBootSend(mp, (MULTIBOOT_MASTER_INFO << 8) | mp->client_bit); + case_1: + case 1: + mp->probe_target_bit = 0; + for (i = MULTIBOOT_NCHILD; i != 0; i--) + { + j = *(vu16 *)(REG_ADDR_SIOMULTI0 + i * 2); + if ((j >> 8) == MULTIBOOT_CLIENT_INFO) + { + MultiBoot_required_data[i - 1] = j; + j &= 0xff; + if (j == (1 << i)) + { + mp->probe_target_bit |= j; + } + } + } + if (mp->response_bit != mp->probe_target_bit) + { + goto output_master_info; + } + mp->probe_count = 2; + return MultiBootSend(mp, (MULTIBOOT_MASTER_START_PROBE << 8) | mp->probe_target_bit); + case 2: + for (i = MULTIBOOT_NCHILD; i != 0; i--) + { + if (mp->probe_target_bit & (1 << i)) + { + j = *(vu16 *)(REG_ADDR_SIOMULTI0 + i * 2); + if (j != MultiBoot_required_data[i - 1]) + { + mp->probe_target_bit ^= 1 << i; + } + } + } + goto output_header; + case 0xd0: + k = 1; + for (i = MULTIBOOT_NCHILD; i != 0; i--) + { + j = *(vu16 *)(REG_ADDR_SIOMULTI0 + i * 2); + mp->client_data[i - 1] = j; + if (mp->probe_target_bit & (1 << i)) + { + if ((j >> 8) != MULTIBOOT_CLIENT_INFO + && (j >> 8) != MULTIBOOT_CLIENT_DLREADY) + { + MultiBootInit(mp); + return MULTIBOOT_ERROR_NO_DLREADY; + } + if (j == MultiBoot_required_data[i - 1]) + { + k = 0; + } + } + } + if (k == 0) + { + return MultiBootSend(mp, (MULTIBOOT_MASTER_REQUEST_DLREADY << 8) | mp->palette_data); + } + mp->probe_count = 0xd1; + k = 0x11; + for (i = MULTIBOOT_NCHILD; i != 0; i--) + { + k += mp->client_data[i - 1]; + } + mp->handshake_data = k; + return MultiBootSend(mp, (MULTIBOOT_MASTER_START_DL << 8) | (k & 0xff)); + case 0xd1: + for (i = MULTIBOOT_NCHILD; i != 0; i--) + { + j = *(vu16 *)(REG_ADDR_SIOMULTI0 + i * 2); + if (mp->probe_target_bit & (1 << i)) + { + if ((j >> 8) != MULTIBOOT_CLIENT_DLREADY) + { + MultiBootInit(mp); + return MULTIBOOT_ERROR_NO_DLREADY; + } + } + } + i = MultiBoot(mp); + if (i == 0) + { + mp->probe_count = 0xe0; + mp->handshake_timeout = MULTIBOOT_HANDSHAKE_TIMEOUT; + return 0; + } + MultiBootInit(mp); + mp->check_wait = MULTIBOOT_CONNECTION_CHECK_WAIT * 2; + return MULTIBOOT_ERROR_BOOT_FAILURE; + default: + for (i = MULTIBOOT_NCHILD; i != 0; i--) + { + if (mp->probe_target_bit & (1 << i)) + { + j = *(vu16 *)(REG_ADDR_SIOMULTI0 + i * 2); + if ((j >> 8) != (MULTIBOOT_MASTER_START_PROBE + 1 - (mp->probe_count >> 1)) + || ((j & 0xff) != (1 << i))) + { + mp->probe_target_bit ^= 1 << i; + } + } + } + if (mp->probe_count == 0xc4) + { + mp->client_bit = mp->probe_target_bit & 0x0e; + mp->probe_count = 0; + goto output_master_info; + } + output_header: + if (mp->probe_target_bit == 0) + { + MultiBootInit(mp); + return MULTIBOOT_ERROR_NO_PROBE_TARGET; + } + mp->probe_count += 2; + if (mp->probe_count == 0xc4) + { + goto output_master_info; + } + i = MultiBootSend(mp, + (mp->masterp[mp->probe_count - 4 + 1] << 8) + | mp->masterp[mp->probe_count - 4]); + if (i) + { + return i; + } + if (mp->server_type == MULTIBOOT_SERVER_TYPE_QUICK) + { + MultiBootWaitSendDone(); + goto output_burst; + } + return 0; + } +} + +static int MultiBootSend(struct MultiBootParam *mp, u16 data) +{ + int i = REG_SIOCNT & (SIO_MULTI_BUSY | SIO_MULTI_SD | SIO_MULTI_SI); + if (i != SIO_MULTI_SD) + { + MultiBootInit(mp); + return i ^ SIO_MULTI_SD; + } + REG_SIODATA8 = data; + REG_SIOCNT = SIO_MULTI_MODE | SIO_START | SIO_115200_BPS; + mp->sendflag = 1; + return 0; +} + +void MultiBootStartProbe(struct MultiBootParam *mp) +{ + if (mp->probe_count != 0) + { + MultiBootInit(mp); + return; + } + mp->check_wait = 0; + mp->client_bit = 0; + mp->probe_count = 1; +} + +void MultiBootStartMaster(struct MultiBootParam *mp, const u8 *srcp, int length, u8 palette_color, s8 palette_speed) +{ + int i = 0; + + if (mp->probe_count != 0 + || mp->client_bit == 0 + || mp->check_wait != 0) + { + MultiBootInit(mp); + return; + } + mp->boot_srcp = srcp; + length = (length + 15) & ~15; + if (length < MULTIBOOT_SEND_SIZE_MIN || length > MULTIBOOT_SEND_SIZE_MAX) + { + MultiBootInit(mp); + return; + } + mp->boot_endp = srcp + length; + switch (palette_speed) + { + case -4: + case -3: + case -2: + case -1: + i = (palette_color << 3) | (3 - palette_speed); + break; + case 0: + i = 0x38 | palette_color; + break; + case 1: + case 2: + case 3: + case 4: + i = (palette_color << 3) | (palette_speed - 1); + break; + } + mp->palette_data = ((i & 0x3f) << 1) | 0x81; + mp->probe_count = 0xd0; +} + +bool32 MultiBootCheckComplete(struct MultiBootParam *mp) +{ + if (mp->probe_count == 0xe9) + return 1; + else + return 0; +} + +static int MultiBootHandShake(struct MultiBootParam *mp) +{ + int i, j; + +#define send_data (mp->system_work[0]) +#define must_data (mp->system_work[1]) + switch (mp->probe_count) + { + case_0xe0: + case 0xe0: + mp->probe_count = 0xe1; + must_data = 0x0000; + send_data = 0x100000; + return MultiBootSend(mp, 0x0000); + default: + for (i = MULTIBOOT_NCHILD; i != 0; i--) + { + j = *(vu16 *)(REG_ADDR_SIOMULTI0 + i * 2); + if ((mp->client_bit & (1 << i)) + && j != must_data) + { + goto case_0xe0; + } + } + mp->probe_count++; + must_data = send_data & 0xffff; + if (send_data == 0x0000) + { + must_data = mp->masterp[0xac] | (mp->masterp[0xad] << 8); + send_data = must_data << 5; + } + send_data >>= 5; + output_common: + return MultiBootSend(mp, send_data); + case 0xe7: + case 0xe8: + for (i = MULTIBOOT_NCHILD; i != 0; i--) + { + j = *(vu16 *)(REG_ADDR_SIOMULTI0 + i * 2); + if ((mp->client_bit & (1 << i)) && j != must_data) + { + MultiBootInit(mp); + return MULTIBOOT_ERROR_HANDSHAKE_FAILURE; + } + } + + mp->probe_count++; + if (mp->probe_count == 0xe9) + { + return 0; + } + send_data = mp->masterp[0xae] | (mp->masterp[0xaf] << 8); + must_data = send_data; + goto output_common; + } +#undef send_data +#undef must_data +} + +static void MultiBootWaitCycles(u32 cycles) +{ + asm("mov r2, pc"); + asm("lsr r2, #24"); + asm("mov r1, #12"); + asm("cmp r2, #0x02"); + asm("beq MultiBootWaitCyclesLoop"); + asm("mov r1, #13"); + asm("cmp r2, #0x08"); + asm("beq MultiBootWaitCyclesLoop"); + asm("mov r1, #4"); + + asm("MultiBootWaitCyclesLoop:"); + asm("sub r0, r1"); + asm("bgt MultiBootWaitCyclesLoop"); +} + +static void MultiBootWaitSendDone(void) +{ + int i; + + for (i = 0; (i < 31069) && (REG_SIOCNT & SIO_START); i++); + MultiBootWaitCycles(600); +} diff --git a/src/new_menu_helpers.c b/src/new_menu_helpers.c new file mode 100644 index 000000000..1939154da --- /dev/null +++ b/src/new_menu_helpers.c @@ -0,0 +1,767 @@ +#include "global.h" +#include "malloc.h" +#include "dma3.h" +#include "task.h" +#include "bg.h" +#include "gpu_regs.h" +#include "window.h" +#include "menu.h" +#include "menu_helpers.h" +#include "new_menu_helpers.h" +#include "quest_log.h" +#include "text.h" +#include "field_specials.h" +#include "text_window.h" +#include "script.h" +#include "graphics.h" +#include "palette.h" + +#define DLG_WINDOW_PALETTE_NUM 15 +#define DLG_WINDOW_BASE_TILE_NUM 0x200 +#define STD_WINDOW_PALETTE_NUM 14 +#define STD_WINDOW_BASE_TILE_NUM 0x214 + +static EWRAM_DATA bool8 gUnknown_203AB58[4] = {FALSE}; // knizz: bgmaps_that_need_syncing +static EWRAM_DATA u16 gUnknown_203AB5C = {0}; +static EWRAM_DATA void *gUnknown_203AB60[0x20] = {NULL}; +static EWRAM_DATA u8 sStartMenuWindowId = {0}; + +static const u8 gUnknown_841F428[] = { 8, 4, 1 }; + +static const struct WindowTemplate sStandardTextBox_WindowTemplates[] = +{ + { + .bg = 0, + .tilemapLeft = 0x2, + .tilemapTop = 0xF, + .width = 0x1A, + .height = 0x4, + .paletteNum = DLG_WINDOW_PALETTE_NUM, + .baseBlock = 0x198, + }, + DUMMY_WIN_TEMPLATE +}; + +static const struct WindowTemplate sYesNo_WindowTemplate = +{ + .bg = 0, + .tilemapLeft = 0x15, + .tilemapTop = 0x9, + .width = 0x6, + .height = 0x4, + .paletteNum = DLG_WINDOW_PALETTE_NUM, + .baseBlock = 0x125, +}; + +static const struct FontInfo gFontInfos[] = +{ + { + .fontFunction = Font0Func, + .maxLetterWidth = 0x8, + .maxLetterHeight = 0xD, + .letterSpacing = 0x0, + .lineSpacing = 0x0, + .unk = 0x0, + .fgColor = 0x2, + .bgColor = 0x1, + .shadowColor = 0x3, + }, + { + .fontFunction = Font1Func, + .maxLetterWidth = 0x8, + .maxLetterHeight = 0xE, + .letterSpacing = 0x0, + .lineSpacing = 0x0, + .unk = 0x0, + .fgColor = 0x2, + .bgColor = 0x1, + .shadowColor = 0x3, + }, + { + .fontFunction = Font2Func, + .maxLetterWidth = 0xA, + .maxLetterHeight = 0xE, + .letterSpacing = 0x1, + .lineSpacing = 0x0, + .unk = 0x0, + .fgColor = 0x2, + .bgColor = 0x1, + .shadowColor = 0x3, + }, + { + .fontFunction = Font3Func, + .maxLetterWidth = 0xA, + .maxLetterHeight = 0xE, + .letterSpacing = 0x1, + .lineSpacing = 0x0, + .unk = 0x0, + .fgColor = 0x2, + .bgColor = 0x1, + .shadowColor = 0x3, + }, + { + .fontFunction = Font4Func, + .maxLetterWidth = 0xA, + .maxLetterHeight = 0xE, + .letterSpacing = 0x0, + .lineSpacing = 0x0, + .unk = 0x0, + .fgColor = 0x2, + .bgColor = 0x1, + .shadowColor = 0x3, + }, + { + .fontFunction = Font5Func, + .maxLetterWidth = 0xA, + .maxLetterHeight = 0xE, + .letterSpacing = 0x0, + .lineSpacing = 0x0, + .unk = 0x0, + .fgColor = 0x2, + .bgColor = 0x1, + .shadowColor = 0x3, + }, + { + .fontFunction = Font6Func, + .maxLetterWidth = 0x8, + .maxLetterHeight = 0x10, + .letterSpacing = 0x0, + .lineSpacing = 0x2, + .unk = 0x0, + .fgColor = 0x2, + .bgColor = 0x1, + .shadowColor = 0x3, + }, + { + .fontFunction = NULL, + .maxLetterWidth = 0x8, + .maxLetterHeight = 0x8, + .letterSpacing = 0x0, + .lineSpacing = 0x0, + .unk = 0x0, + .fgColor = 0x1, + .bgColor = 0x2, + .shadowColor = 0xF, + } +}; + +static const u8 gMenuCursorDimensions[][2] = +{ + { 0x8, 0xD }, + { 0x8, 0xE }, + { 0x8, 0xE }, + { 0x8, 0xE }, + { 0x8, 0xE }, + { 0x8, 0xE }, + { 0x8, 0x10 }, + { 0x0, 0x0 } +}; + +static u16 CopyDecompressedTileDataToVram(u8 bgId, const void *src, u16 size, u16 offset, u8 mode); +static void WindowFunc_DrawDialogueFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum); +static void WindowFunc_DrawStandardFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum); +static void WindowFunc_ClearDialogWindowAndFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum); +static void WindowFunc_ClearStdWindowAndFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum); +static void TaskFreeBufAfterCopyingTileDataToVram(u8 taskId); + +void ClearScheduledBgCopiesToVram(void) +{ + memset(gUnknown_203AB58, 0, sizeof(gUnknown_203AB58)); +} + +void ScheduleBgCopyTilemapToVram(u8 bgId) +{ + gUnknown_203AB58[bgId] = TRUE; +} + +void DoScheduledBgTilemapCopiesToVram(void) +{ + if (gUnknown_203AB58[0] == TRUE) + { + CopyBgTilemapBufferToVram(0); + gUnknown_203AB58[0] = FALSE; + } + if (gUnknown_203AB58[1] == TRUE) + { + CopyBgTilemapBufferToVram(1); + gUnknown_203AB58[1] = FALSE; + } + if (gUnknown_203AB58[2] == TRUE) + { + CopyBgTilemapBufferToVram(2); + gUnknown_203AB58[2] = FALSE; + } + if (gUnknown_203AB58[3] == TRUE) + { + CopyBgTilemapBufferToVram(3); + gUnknown_203AB58[3] = FALSE; + } +} + +void ResetTempTileDataBuffers(void) +{ + int i; + + for (i = 0; i < (s32)NELEMS(gUnknown_203AB60); i++) + { + gUnknown_203AB60[i] = NULL; + } + gUnknown_203AB5C = 0; +} + +bool8 FreeTempTileDataBuffersIfPossible(void) +{ + int i; + + if (!IsDma3ManagerBusyWithBgCopy()) + { + if (gUnknown_203AB5C) + { + for (i = 0; i < gUnknown_203AB5C; i++) + { + FREE_AND_SET_NULL(gUnknown_203AB60[i]); + } + gUnknown_203AB5C = 0; + } + return FALSE; + } + else + { + return TRUE; + } +} + +void *DecompressAndCopyTileDataToVram(u8 bgId, const void *src, u32 size, u16 offset, u8 mode) +{ + u32 sizeOut; + + if (gUnknown_203AB5C < NELEMS(gUnknown_203AB60)) + { + void *ptr = MallocAndDecompress(src, &sizeOut); + if (!size) + size = sizeOut; + if (ptr) + { + CopyDecompressedTileDataToVram(bgId, ptr, size, offset, mode); + gUnknown_203AB60[gUnknown_203AB5C++] = ptr; + } + return ptr; + } + return NULL; +} + +void *DecompressAndCopyTileDataToVram2(u8 bgId, const void *src, u32 size, u16 offset, u8 mode) +{ + u32 sizeOut; + + if (gUnknown_203AB5C < NELEMS(gUnknown_203AB60)) + { + void *ptr = MallocAndDecompress(src, &sizeOut); + if (sizeOut > size) + sizeOut = size; + if (ptr) + { + CopyDecompressedTileDataToVram(bgId, ptr, sizeOut, offset, mode); + gUnknown_203AB60[gUnknown_203AB5C++] = ptr; + } + return ptr; + } + return NULL; +} + +void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void *src, u32 size, u16 offset, u8 mode) +{ + u32 sizeOut; + + void *ptr = MallocAndDecompress(src, &sizeOut); + if (!size) + size = sizeOut; + if (ptr) + { + u8 taskId = CreateTask(TaskFreeBufAfterCopyingTileDataToVram, 0); + gTasks[taskId].data[0] = CopyDecompressedTileDataToVram(bgId, ptr, size, offset, mode); + SetWordTaskArg(taskId, 1, (u32)ptr); + } +} + +void DecompressAndLoadBgGfxUsingHeap2(u8 bgId, const void *src, u32 size, u16 offset, u8 mode) +{ + u32 sizeOut; + + void *ptr = MallocAndDecompress(src, &sizeOut); + if (sizeOut > size) + sizeOut = size; + if (ptr) + { + u8 taskId = CreateTask(TaskFreeBufAfterCopyingTileDataToVram, 0); + gTasks[taskId].data[0] = CopyDecompressedTileDataToVram(bgId, ptr, sizeOut, offset, mode); + SetWordTaskArg(taskId, 1, (u32)ptr); + } +} + +static void TaskFreeBufAfterCopyingTileDataToVram(u8 taskId) +{ + if (!CheckForSpaceForDma3Request(gTasks[taskId].data[0])) + { + Free((void *)GetWordTaskArg(taskId, 1)); + DestroyTask(taskId); + } +} + +void *MallocAndDecompress(const void *src, u32 *size) +{ + void *ptr; + u8 *sizeAsBytes = (u8 *)size; + const u8 *srcAsBytes = src; + + sizeAsBytes[0] = srcAsBytes[1]; + sizeAsBytes[1] = srcAsBytes[2]; + sizeAsBytes[2] = srcAsBytes[3]; + sizeAsBytes[3] = 0; + + ptr = Alloc(*size); + if (ptr) + LZ77UnCompWram(src, ptr); + return ptr; +} + +static u16 CopyDecompressedTileDataToVram(u8 bgId, const void *src, u16 size, u16 offset, u8 mode) +{ + switch (mode) + { + case 1: + break; + case 0: + default: + return LoadBgTiles(bgId, src, size, offset); + } + return LoadBgTilemap(bgId, src, size, offset); +} + +void SetBgRectPal(u8 bgId, u8 left, u8 top, u8 width, u8 height, u8 palette) +{ + u8 i, j; + u16 *ptr = GetBgTilemapBuffer(bgId); + + for (i = top; i < top + height; i++) + { + for (j = left; j < left + width; j++) + { + ptr[(i * 32) + j] = (ptr[(i * 32) + j] & 0xFFF) | (palette << 12); + } + } +} + +void CopyRectIntoAltRect(u8 bgId, u16 *dest, u8 left, u8 top, u8 width, u8 height) +{ + u8 i,j; + const u16 *src = GetBgTilemapBuffer(bgId); + + for (i = 0; i < height; i++) + { + for (j = 0; j < width; j++) + { + dest[(i * width) + j] = src[(i + top) * 32 + j + left]; + } + } +} + +void ResetBgPositions(void) +{ + ChangeBgX(0, 0, 0); + ChangeBgX(1, 0, 0); + ChangeBgX(2, 0, 0); + ChangeBgX(3, 0, 0); + ChangeBgY(0, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgY(2, 0, 0); + ChangeBgY(3, 0, 0); +} + +void InitStandardTextBoxWindows(void) +{ + InitWindows(sStandardTextBox_WindowTemplates); + sStartMenuWindowId = 0xFF; + MapNamePopupWindowIdSetDummy(); +} + +void FreeAllOverworldWindowBuffers(void) +{ + FreeAllWindowBuffers(); +} + +void ResetBg0(void) +{ + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + DeactivateAllTextPrinters(); + sub_80F6E9C(); +} + +u16 RunTextPrinters_CheckPrinter0Active(void) +{ + RunTextPrinters(); + return IsTextPrinterActive(0); +} + +u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16), u8 fgColor, u8 bgColor, u8 shadowColor) +{ + struct TextPrinterTemplate printer; + + printer.currentChar = str; + printer.windowId = windowId; + printer.fontId = fontId; + printer.x = 0; + printer.y = 1; + printer.currentX = 0; + printer.currentY = 1; + printer.letterSpacing = 1; + printer.lineSpacing = 1; + printer.unk = 0; + printer.fgColor = fgColor; + printer.bgColor = bgColor; + printer.shadowColor = shadowColor; + gTextFlags.useAlternateDownArrow = 0; + return AddTextPrinter(&printer, speed, callback); +} + +void AddTextPrinterDiffStyle(bool8 allowSkippingDelayWithButtonPress) +{ + u8 result; + void *nptr = NULL; + + gTextFlags.canABSpeedUpPrint = allowSkippingDelayWithButtonPress; + result = ContextNpcGetTextColor(); + if (result == 0) + AddTextPrinterParameterized2(0, 4, gStringVar4, GetTextSpeedSetting(), nptr, 8, 1, 3); + else if (result == 1) + AddTextPrinterParameterized2(0, 5, gStringVar4, GetTextSpeedSetting(), nptr, 4, 1, 3); + else + AddTextPrinterParameterized2(0, 2, gStringVar4, GetTextSpeedSetting(), nptr, 2, 1, 3); +} + +void AddTextPrinterForMessage(bool8 allowSkippingDelayWithButtonPress) +{ + gTextFlags.canABSpeedUpPrint = allowSkippingDelayWithButtonPress; + AddTextPrinterParameterized2(0, 2, gStringVar4, GetTextSpeedSetting(), NULL, 2, 1, 3); +} + +void AddTextPrinterWithCustomSpeedForMessage(bool8 allowSkippingDelayWithButtonPress, u8 speed) +{ + gTextFlags.canABSpeedUpPrint = allowSkippingDelayWithButtonPress; + AddTextPrinterParameterized2(0, 2, gStringVar4, speed, NULL, 2, 1, 3); +} + +void sub_80F6E9C(void) +{ + if (gUnknown_203ADFA == 2) + { + gTextFlags.autoScroll = 1; + TextWindow_LoadTilesStdFrame1(0, DLG_WINDOW_BASE_TILE_NUM); + } + else + { + Menu_LoadStdPal(); + TextWindow_LoadResourcesStdFrame0(0, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM * 0x10); + } + TextWindow_SetUserSelectedFrame(0, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM * 0x10); +} + +void DrawDialogueFrame(u8 windowId, bool8 copyToVram) +{ + CallWindowFunction(windowId, WindowFunc_DrawDialogueFrame); + FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); + PutWindowTilemap(windowId); + if (copyToVram == TRUE) + CopyWindowToVram(windowId, 3); +} + +void DrawStdWindowFrame(u8 windowId, bool8 copyToVram) +{ + CallWindowFunction(windowId, WindowFunc_DrawStandardFrame); + FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); + PutWindowTilemap(windowId); + if (copyToVram == TRUE) + CopyWindowToVram(windowId, 3); +} + +void ClearDialogWindowAndFrame(u8 windowId, bool8 copyToVram) +{ + CallWindowFunction(windowId, WindowFunc_ClearDialogWindowAndFrame); + FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); + ClearWindowTilemap(windowId); + if (copyToVram == TRUE) + CopyWindowToVram(windowId, 3); + if (gUnknown_203ADFA == 2) + sub_8111134(); +} + +void ClearStdWindowAndFrame(u8 windowId, bool8 copyToVram) +{ + CallWindowFunction(windowId, WindowFunc_ClearStdWindowAndFrame); + FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); + ClearWindowTilemap(windowId); + if (copyToVram == TRUE) + CopyWindowToVram(windowId, 3); +} + +static void WindowFunc_DrawStandardFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) +{ + int i; + + FillBgTilemapBufferRect(bg, STD_WINDOW_BASE_TILE_NUM + 0, tilemapLeft - 1, tilemapTop - 1, 1, 1, STD_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, STD_WINDOW_BASE_TILE_NUM + 1, tilemapLeft, tilemapTop - 1, width, 1, STD_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, STD_WINDOW_BASE_TILE_NUM + 2, tilemapLeft + width, tilemapTop - 1, 1, 1, STD_WINDOW_PALETTE_NUM); + for (i = tilemapTop; i < tilemapTop + height; i++) + { + FillBgTilemapBufferRect(bg, STD_WINDOW_BASE_TILE_NUM + 3, tilemapLeft - 1, i, 1, 1, STD_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, STD_WINDOW_BASE_TILE_NUM + 5, tilemapLeft + width, i, 1, 1, STD_WINDOW_PALETTE_NUM); + } + FillBgTilemapBufferRect(bg, STD_WINDOW_BASE_TILE_NUM + 6, tilemapLeft - 1, tilemapTop + height, 1, 1, STD_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, STD_WINDOW_BASE_TILE_NUM + 7, tilemapLeft, tilemapTop + height, width, 1, STD_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, STD_WINDOW_BASE_TILE_NUM + 8, tilemapLeft + width, tilemapTop + height, 1, 1, STD_WINDOW_PALETTE_NUM); +} + +static void WindowFunc_DrawDialogueFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) +{ + if (!IsMsgSignPost() || gUnknown_203ADFA == 2) + { + FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 0, tilemapLeft - 2, tilemapTop - 1, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 1, tilemapLeft - 1, tilemapTop - 1, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 2, tilemapLeft, tilemapTop - 1, width, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 3, tilemapLeft + width, tilemapTop - 1, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 4, tilemapLeft + width + 1, tilemapTop - 1, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 5, tilemapLeft - 2, tilemapTop, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 6, tilemapLeft - 1, tilemapTop, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 8, tilemapLeft + width, tilemapTop, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 9, tilemapLeft + width + 1, tilemapTop, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 10, tilemapLeft - 2, tilemapTop + 1, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 11, tilemapLeft - 1, tilemapTop + 1, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 12, tilemapLeft + width, tilemapTop + 1, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 13, tilemapLeft + width + 1, tilemapTop + 1, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 10), tilemapLeft - 2, tilemapTop + 2, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 11), tilemapLeft - 1, tilemapTop + 2, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 12), tilemapLeft + width, tilemapTop + 2, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 13), tilemapLeft + width + 1, tilemapTop + 2, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 5), tilemapLeft - 2, tilemapTop + 3, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 6), tilemapLeft - 1, tilemapTop + 3, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 8), tilemapLeft + width, tilemapTop + 3, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 9), tilemapLeft + width + 1, tilemapTop + 3, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 0), tilemapLeft - 2, tilemapTop + 4, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 1), tilemapLeft - 1, tilemapTop + 4, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 2), tilemapLeft, tilemapTop + 4, width, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 3), tilemapLeft + width, tilemapTop + 4, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 4), tilemapLeft + width + 1, tilemapTop + 4, 1, 1, DLG_WINDOW_PALETTE_NUM); + } + else + { + FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 0, tilemapLeft - 2, tilemapTop - 1, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 1, tilemapLeft - 1, tilemapTop - 1, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 2, tilemapLeft, tilemapTop - 1, width, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 3, tilemapLeft + width, tilemapTop - 1, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 4, tilemapLeft + width + 1, tilemapTop - 1, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 5, tilemapLeft - 2, tilemapTop, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 6, tilemapLeft - 1, tilemapTop, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 8, tilemapLeft + width, tilemapTop, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 9, tilemapLeft + width + 1, tilemapTop, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 10, tilemapLeft - 2, tilemapTop + 1, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 11, tilemapLeft - 1, tilemapTop + 1, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 12, tilemapLeft + width, tilemapTop + 1, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 13, tilemapLeft + width + 1, tilemapTop + 1, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 5), tilemapLeft - 2, tilemapTop + 2, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 6), tilemapLeft - 1, tilemapTop + 2, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 8), tilemapLeft + width, tilemapTop + 2, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 9), tilemapLeft + width + 1, tilemapTop + 2, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 10), tilemapLeft - 2, tilemapTop + 3, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 11), tilemapLeft - 1, tilemapTop + 3, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 12), tilemapLeft + width, tilemapTop + 3, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 13), tilemapLeft + width + 1, tilemapTop + 3, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 0), tilemapLeft - 2, tilemapTop + 4, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 1), tilemapLeft - 1, tilemapTop + 4, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 2), tilemapLeft, tilemapTop + 4, width, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 3), tilemapLeft + width, tilemapTop + 4, 1, 1, DLG_WINDOW_PALETTE_NUM); + FillBgTilemapBufferRect(bg, BG_TILE_V_FLIP(DLG_WINDOW_BASE_TILE_NUM + 4), tilemapLeft + width + 1, tilemapTop + 4, 1, 1, DLG_WINDOW_PALETTE_NUM); + } +} + +static void WindowFunc_ClearStdWindowAndFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) +{ + FillBgTilemapBufferRect(bg, 0, tilemapLeft - 1, tilemapTop - 1, width + 2, height + 2, STD_WINDOW_PALETTE_NUM); +} + +static void WindowFunc_ClearDialogWindowAndFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) +{ + FillBgTilemapBufferRect(bg, 0, tilemapLeft - 2, tilemapTop - 1, width + 4, height + 2, STD_WINDOW_PALETTE_NUM); +} + +void sub_80F771C(bool8 copyToVram) +{ + FillBgTilemapBufferRect(0, 0, 0, 0, 0x20, 0x20, 0x11); + if (copyToVram == TRUE) + CopyBgTilemapBufferToVram(0); +} + +void SetStdWindowBorderStyle(u8 windowId, bool8 copyToVram) +{ + SetWindowBorderStyle(windowId, copyToVram, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM); +} + +void sub_80F7768(u8 windowId, bool8 copyToVram) +{ + if (gUnknown_203ADFA == 2) + { + gTextFlags.autoScroll = 1; + TextWindow_LoadTilesStdFrame1(0, DLG_WINDOW_BASE_TILE_NUM); + } + else + { + TextWindow_LoadResourcesStdFrame0(windowId, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM * 0x10); + } + DrawDialogFrameWithCustomTileAndPalette(windowId, copyToVram, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM); +} + +void Menu_LoadStdPal(void) +{ + LoadPalette(gTMCaseMainWindowPalette, STD_WINDOW_PALETTE_NUM * 0x10, 0x14); +} + +void Menu_LoadStdPalAt(u16 offset) +{ + LoadPalette(gTMCaseMainWindowPalette, offset, 0x14); +} + +static const u16 *GetTmCaseMainWindowPalette(void) +{ + return gTMCaseMainWindowPalette; +} + +static u16 GetStdPalColor(u8 colorNum) +{ + if (colorNum > 0xF) + colorNum = 0; + return gTMCaseMainWindowPalette[colorNum]; +} + +void DisplayItemMessageOnField(u8 taskId, u8 bgId, const u8 *string, TaskFunc callback) +{ + sub_80F6E9C(); + DisplayMessageAndContinueTask(taskId, 0, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM, bgId, GetTextSpeedSetting(), string, callback); + CopyWindowToVram(0, 3); +} + +void DisplayYesNoMenuDefaultYes(void) +{ + CreateYesNoMenu(&sYesNo_WindowTemplate, 2, 0, 2, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM, 0); +} + +void DisplayYesNoMenuDefaultNo(void) +{ + CreateYesNoMenu(&sYesNo_WindowTemplate, 2, 0, 2, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM, 1); +} + +u8 GetTextSpeedSetting(void) +{ + u32 speed; + if (gSaveBlock2Ptr->optionsTextSpeed > OPTIONS_TEXT_SPEED_FAST) + gSaveBlock2Ptr->optionsTextSpeed = OPTIONS_TEXT_SPEED_MID; + return gUnknown_841F428[gSaveBlock2Ptr->optionsTextSpeed]; +} + +u8 sub_80F78E0(u8 height) +{ + if (sStartMenuWindowId == 0xFF) + { + struct WindowTemplate wTemp1, wTemp2; + SetWindowTemplateFields(&wTemp1, 0, 0x16, 1, 7, height * 2 - 1, DLG_WINDOW_PALETTE_NUM, 0x13D); + wTemp2 = wTemp1; + sStartMenuWindowId = AddWindow(&wTemp2); + PutWindowTilemap(sStartMenuWindowId); + } + return sStartMenuWindowId; +} + +u8 GetStartMenuWindowId(void) +{ + return sStartMenuWindowId; +} + +void RemoveStartMenuWindow(void) +{ + if (sStartMenuWindowId != 0xFF) + { + RemoveWindow(sStartMenuWindowId); + sStartMenuWindowId = 0xFF; + } +} + +static u16 GetDlgWindowBaseTileNum(void) +{ + return DLG_WINDOW_BASE_TILE_NUM; +} + +u16 GetStdWindowBaseTileNum(void) +{ + return STD_WINDOW_BASE_TILE_NUM; +} + +void sub_80F7974(const u8 * text) +{ + sub_814FE6C(sub_8112EB4(), DLG_WINDOW_BASE_TILE_NUM, 0x10 * DLG_WINDOW_PALETTE_NUM); + sub_8113018(text, 2); +} + +void sub_80F7998(void) +{ + sub_8112EDC(2); +} + +void sub_80F79A4(void) +{ + Menu_LoadStdPal(); + sub_814FEEC(0, DLG_WINDOW_BASE_TILE_NUM, 0x10 * DLG_WINDOW_PALETTE_NUM); + TextWindow_SetUserSelectedFrame(0, STD_WINDOW_BASE_TILE_NUM, 0x10 * STD_WINDOW_PALETTE_NUM); +} + +void SetDefaultFontsPointer(void) +{ + SetFontsPointer(&gFontInfos[0]); +} + +u8 GetFontAttribute(u8 fontId, u8 attributeId) +{ + int result = 0; + + switch (attributeId) + { + case FONTATTR_MAX_LETTER_WIDTH: + result = gFontInfos[fontId].maxLetterWidth; + break; + case FONTATTR_MAX_LETTER_HEIGHT: + result = gFontInfos[fontId].maxLetterHeight; + break; + case FONTATTR_LETTER_SPACING: + result = gFontInfos[fontId].letterSpacing; + break; + case FONTATTR_LINE_SPACING: + result = gFontInfos[fontId].lineSpacing; + break; + case FONTATTR_UNKNOWN: + result = gFontInfos[fontId].unk; + break; + case FONTATTR_COLOR_FOREGROUND: + result = gFontInfos[fontId].fgColor; + break; + case FONTATTR_COLOR_BACKGROUND: + result = gFontInfos[fontId].bgColor; + break; + case FONTATTR_COLOR_SHADOW: + result = gFontInfos[fontId].shadowColor; + break; + } + return result; +} + +u8 GetMenuCursorDimensionByFont(u8 fontId, u8 whichDimension) +{ + return gMenuCursorDimensions[fontId][whichDimension]; +} diff --git a/src/oak_speech.c b/src/oak_speech.c index 3bf174778..14e7c87d0 100644 --- a/src/oak_speech.c +++ b/src/oak_speech.c @@ -495,7 +495,7 @@ static void Task_OaksSpeech1(u8 taskId) ScanlineEffect_Stop(); ResetSpriteData(); FreeAllSpritePalettes(); - reset_temp_tile_data_buffers(); + ResetTempTileDataBuffers(); HelpSystem_SetSomeVariable2(2); break; case 1: @@ -536,10 +536,10 @@ static void Task_OaksSpeech1(u8 taskId) case 5: sOakSpeechResources->textSpeed = GetTextSpeedSetting(); gTextFlags.canABSpeedUpPrint = TRUE; - decompress_and_copy_tile_data_to_vram(1, sOakSpeechGfx_GameStartHelpUI, 0, 0, 0); + DecompressAndCopyTileDataToVram(1, sOakSpeechGfx_GameStartHelpUI, 0, 0, 0); break; case 6: - if (free_temp_tile_data_buffers_if_possible()) + if (FreeTempTileDataBuffersIfPossible()) return; ClearDialogWindowAndFrame(0, 1); FillBgTilemapBufferRect_Palette0(1, 0x0000, 0, 0, 32, 32); @@ -718,7 +718,7 @@ static void Task_OakSpeech6(u8 taskId) PlayBGM(BGM_FRLG_GAME_EXPLANATION_MIDDLE); sub_810F71C(); PrintTextOnRightSnappedWindow(gText_ABUTTONNext, 0, 1); - sOakSpeechResources->unk_0008 = malloc_and_decompress(sNewGameAdventureIntroTilemap, &sp14); + sOakSpeechResources->unk_0008 = MallocAndDecompress(sNewGameAdventureIntroTilemap, &sp14); CopyToBgTilemapBufferRect(1, sOakSpeechResources->unk_0008, 0, 2, 30, 19); CopyBgTilemapBufferToVram(1); Free(sOakSpeechResources->unk_0008); @@ -869,7 +869,7 @@ static void Task_OakSpeech9(u8 taskId) data[3]--; else { - sOakSpeechResources->solidColorsGfx = malloc_and_decompress(sOakSpeechGfx_SolidColors, &size); + sOakSpeechResources->solidColorsGfx = MallocAndDecompress(sOakSpeechGfx_SolidColors, &size); LoadBgTiles(1, sOakSpeechResources->solidColorsGfx, size, 0); CopyToBgTilemapBuffer(1, sOakSpeech_BackgroundTilemap, 0, 0); CopyBgTilemapBufferToVram(1); @@ -1054,7 +1054,7 @@ static void Task_OakSpeech19(u8 taskId) { gTasks[taskId].data[13] = AddWindow(&sNewGameAdventureIntroWindowTemplates[1]); PutWindowTilemap(gTasks[taskId].data[13]); - SetWindowBorderStyle(gTasks[taskId].data[13], 1, sub_80F796C(), 14); + SetWindowBorderStyle(gTasks[taskId].data[13], 1, GetStdWindowBaseTileNum(), 14); FillWindowPixelBuffer(gTasks[taskId].data[13], 0x11); sOakSpeechResources->unk_001C[0] = 1; sOakSpeechResources->unk_001C[1] = 2; @@ -1246,7 +1246,7 @@ static void Task_OakSpeech26(u8 taskId) data[3]--; else { - CreateYesNoMenu(&sNewGameAdventureIntroWindowTemplates[2], 2, 0, 2, sub_80F796C(), 14, 0); + CreateYesNoMenu(&sNewGameAdventureIntroWindowTemplates[2], 2, 0, 2, GetStdWindowBaseTileNum(), 14, 0); gTasks[taskId].func = Task_OakSpeech27; } } @@ -1536,7 +1536,7 @@ static void CB2_ReturnFromNamingScreen(void) ScanlineEffect_Stop(); ResetSpriteData(); FreeAllSpritePalettes(); - reset_temp_tile_data_buffers(); + ResetTempTileDataBuffers(); break; case 1: ResetBgsAndClearDma3BusyFlags(0); @@ -1564,10 +1564,10 @@ static void CB2_ReturnFromNamingScreen(void) LoadPalette(sHelpDocsPalette, 0, 0xe0); break; case 4: - decompress_and_copy_tile_data_to_vram(1, sOakSpeechGfx_SolidColors, 0, 0, 0); + DecompressAndCopyTileDataToVram(1, sOakSpeechGfx_SolidColors, 0, 0, 0); break; case 5: - if (free_temp_tile_data_buffers_if_possible()) + if (FreeTempTileDataBuffersIfPossible()) return; FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20); CopyToBgTilemapBuffer(1, sOakSpeech_BackgroundTilemap, 0, 0); @@ -1613,7 +1613,7 @@ static void CreateNidoranFSprite(u8 taskId) u8 spriteId; DecompressPicFromTable(gUnknown_8235194, sub_8044E00(0), SPECIES_NIDORAN_F); - sub_800F078(&gUnknown_82373F4); + LoadCompressedSpritePaletteUsingHeap(&gUnknown_82373F4); SetMultiuseSpriteTemplateToPokemon(SPECIES_NIDORAN_F, 0); spriteId = CreateSprite(&gMultiuseSpriteTemplate, 0x60, 0x60, 1); gSprites[spriteId].callback = SpriteCallbackDummy; @@ -1635,9 +1635,9 @@ static void CreatePikaOrGrassPlatformSpriteAndLinkToCurrentTask(u8 taskId, u8 st switch (state) { case 0: - LoadCompressedObjectPic(&sOakSpeech_PikaSpriteSheets[0]); - LoadCompressedObjectPic(&sOakSpeech_PikaSpriteSheets[1]); - LoadCompressedObjectPic(&sOakSpeech_PikaSpriteSheets[2]); + LoadCompressedSpriteSheet(&sOakSpeech_PikaSpriteSheets[0]); + LoadCompressedSpriteSheet(&sOakSpeech_PikaSpriteSheets[1]); + LoadCompressedSpriteSheet(&sOakSpeech_PikaSpriteSheets[2]); LoadSpritePalette(&sOakSpeech_PikaSpritePal); spriteId = CreateSprite(&sOakSpeech_PikaSpriteTemplates[0], 0x10, 0x11, 2); gSprites[spriteId].oam.priority = 0; @@ -1654,7 +1654,7 @@ static void CreatePikaOrGrassPlatformSpriteAndLinkToCurrentTask(u8 taskId, u8 st gTasks[taskId].data[9] = spriteId; break; case 1: - LoadCompressedObjectPic(&sOakSpeech_GrassPlatformSpriteSheet); + LoadCompressedSpriteSheet(&sOakSpeech_GrassPlatformSpriteSheet); LoadSpritePalette(&sOakSpeech_GrassPlatformSpritePal); for (i = 0; i < 3; i++) { @@ -1850,7 +1850,7 @@ static void PrintNameChoiceOptions(u8 taskId, u8 state) data[13] = AddWindow(&sNewGameAdventureIntroWindowTemplates[3]); PutWindowTilemap(data[13]); - SetWindowBorderStyle(data[13], 1, sub_80F796C(), 14); + SetWindowBorderStyle(data[13], 1, GetStdWindowBaseTileNum(), 14); FillWindowPixelBuffer(gTasks[taskId].data[13], 0x11); AddTextPrinterParameterized(data[13], 2, gOtherText_NewName, 8, 1, 0, NULL); if (state == 0) diff --git a/src/play_time.c b/src/play_time.c new file mode 100644 index 000000000..04f4b2040 --- /dev/null +++ b/src/play_time.c @@ -0,0 +1,65 @@ +#include "play_time.h" + +static IWRAM_DATA u8 sPlayTimeCounterState; + +enum +{ + STOPPED, + RUNNING, + MAXED_OUT, +}; + +void PlayTimeCounter_Reset(void) +{ + sPlayTimeCounterState = STOPPED; + gSaveBlock2Ptr->playTimeHours = 0; + gSaveBlock2Ptr->playTimeMinutes = 0; + gSaveBlock2Ptr->playTimeSeconds = 0; + gSaveBlock2Ptr->playTimeVBlanks = 0; +} + +void PlayTimeCounter_Start(void) +{ + sPlayTimeCounterState = RUNNING; + if (gSaveBlock2Ptr->playTimeHours > 999) + PlayTimeCounter_SetToMax(); +} + +void PlayTimeCounter_Stop(void) +{ + sPlayTimeCounterState = STOPPED; +} + +void PlayTimeCounter_Update(void) +{ + if (sPlayTimeCounterState == RUNNING) + { + gSaveBlock2Ptr->playTimeVBlanks++; + if (gSaveBlock2Ptr->playTimeVBlanks > 59) + { + gSaveBlock2Ptr->playTimeVBlanks = 0; + gSaveBlock2Ptr->playTimeSeconds++; + if (gSaveBlock2Ptr->playTimeSeconds > 59) + { + gSaveBlock2Ptr->playTimeSeconds = 0; + gSaveBlock2Ptr->playTimeMinutes++; + if (gSaveBlock2Ptr->playTimeMinutes > 59) + { + gSaveBlock2Ptr->playTimeMinutes = 0; + gSaveBlock2Ptr->playTimeHours++; + if (gSaveBlock2Ptr->playTimeHours > 999) + PlayTimeCounter_SetToMax(); + } + } + } + } +} + +void PlayTimeCounter_SetToMax(void) +{ + sPlayTimeCounterState = MAXED_OUT; + gSaveBlock2Ptr->playTimeHours = 999; + gSaveBlock2Ptr->playTimeMinutes = 59; + gSaveBlock2Ptr->playTimeSeconds = 59; + gSaveBlock2Ptr->playTimeVBlanks = 59; +} diff --git a/src/quest_log.c b/src/quest_log.c index 0021ee927..fe83f67e9 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -859,7 +859,7 @@ void sub_8110F14(u8 taskId) } else { - SetMainCallback2(sub_8056938); + SetMainCallback2(CB2_ContinueSavedGame); DestroyTask(taskId); } } @@ -1418,7 +1418,7 @@ void sub_8111D10(void) PutWindowTilemap(gUnknown_203ADFE[2]); sub_8111D90(gUnknown_203ADFE[2]); AddTextPrinterParameterized4(gUnknown_203ADFE[2], 2, 2, gUnknown_8456698[count], 1, 0, &gUnknown_8456634, 0, gStringVar4); - schedule_bg_copy_tilemap_to_vram(0); + ScheduleBgCopyTilemapToVram(0); } void sub_8111D90(u8 a0) @@ -1567,7 +1567,7 @@ void sub_81120AC(u8 taskId) { case 0: gUnknown_2031DD8 = 0; - sub_8055DC4(); + Overworld_PlaySpecialMapMusic(); sub_811229C(); FillWindowPixelRect(gUnknown_203ADFE[0], 0xF, 0, 0, gUnknown_845661C[0].width * 8, gUnknown_845661C[0].height * 8); data[0]++; @@ -1705,7 +1705,7 @@ void sub_811246C(struct Sprite *sprite) { if (gUnknown_203AF9A[0][0] != 0xFF) { - sub_8063CA4(mapObject, gUnknown_203AF9A[0][0]); + FieldObjectSetHeldMovement(mapObject, gUnknown_203AF9A[0][0]); gUnknown_203AF9A[0][0] = 0xFF; } if (gUnknown_203AF9A[0][1] != 0xFF) @@ -1719,7 +1719,7 @@ void sub_811246C(struct Sprite *sprite) { if (gUnknown_203AF9A[mapObject->localId][0] != 0xFF) { - sub_8063CA4(mapObject, gUnknown_203AF9A[mapObject->localId][0]); + FieldObjectSetHeldMovement(mapObject, gUnknown_203AF9A[mapObject->localId][0]); gUnknown_203AF9A[mapObject->localId][0] = 0xFF; } sub_8063E28(mapObject, sprite); @@ -1911,7 +1911,7 @@ void sub_8112940(u8 a0, struct UnkStruct_203AE98 *a1, u16 a2) gUnknown_3005E94[gUnknown_203AF98].unk_4 = 0; gUnknown_3005E94[gUnknown_203AF98].unk_6 = 0; gUnknown_3005E94[gUnknown_203AF98].unk_0 = 0; - switch (player_get_direction_lower_nybble()) + switch (GetPlayerFacingDirection()) { case 0: case 1: @@ -2297,7 +2297,7 @@ const struct WindowTemplate gUnknown_8456928 = { 0x00, 0, 15, 30, 5, 15, 0x008F }; -void sub_8112EA8(void) +void MapNamePopupWindowIdSetDummy(void) { gUnknown_203B020 = 0xFF; } @@ -2471,12 +2471,12 @@ void sub_8112FE4(const u8 * a0) AddTextPrinterParameterized4(gUnknown_203B020, 0x02, 2, 5, 1, 1, &gUnknown_8456930, -1, a0); } -void sub_8113018(const u8 * a0, u8 a1) +void sub_8113018(const u8 * text, u8 mode) { sub_8112FD0(); - sub_8112FE4(a0); - if (a1) - CopyWindowToVram(gUnknown_203B020, a1); + sub_8112FE4(text); + if (mode) + CopyWindowToVram(gUnknown_203B020, mode); } void sub_8113044(void) diff --git a/src/quest_log_8150454.c b/src/quest_log_8150454.c index 8af516e3a..3d61dee72 100644 --- a/src/quest_log_8150454.c +++ b/src/quest_log_8150454.c @@ -115,7 +115,7 @@ void sub_81505C4(u8 taskId) gTasks[taskId].data[0]++; break; case 2: - StartSpriteAnim(sprite, sub_8063500(player_get_direction_lower_nybble())); + StartSpriteAnim(sprite, sub_8063500(GetPlayerFacingDirection())); gTasks[taskId].data[0]++; break; case 3: @@ -173,7 +173,7 @@ void sub_8150794(u8 taskId) void sub_81507BC(struct MapObject * a0, u8 a1) { - sub_805F060(a0, a1); + EventObjectSetGraphicsId(a0, a1); } void sub_81507CC(void) diff --git a/src/reset_save_heap.c b/src/reset_save_heap.c new file mode 100644 index 000000000..428f7b88d --- /dev/null +++ b/src/reset_save_heap.c @@ -0,0 +1,29 @@ +#include "global.h" +#include "main.h" +#include "gpu_regs.h" +#include "m4a.h" +#include "load_save.h" +#include "save.h" +#include "new_game.h" +#include "overworld.h" +#include "malloc.h" + +void sub_8079B7C(void) +{ + u16 imeBackup = REG_IME; + + REG_IME = 0; + RegisterRamReset(RESET_EWRAM); + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_FORCED_BLANK); + REG_IME = imeBackup; + gMain.inBattle = FALSE; + SetSaveBlocksPointers(); + ResetMenuAndMonGlobals(); + Save_ResetSaveCounters(); + Save_LoadGameData(0); + if (gSaveFileStatus == 0 || gSaveFileStatus == 2) + Sav2_ClearSetDefault(); + SetPokemonCryStereo(gSaveBlock2Ptr->optionsSound); + InitHeap(gHeap, HEAP_SIZE); + SetMainCallback2(CB2_ContinueSavedGame); +} diff --git a/src/save_location.c b/src/save_location.c new file mode 100644 index 000000000..9b679c7ee --- /dev/null +++ b/src/save_location.c @@ -0,0 +1,108 @@ +#include "global.h" +#include "save_location.h" +#include "constants/maps.h" + +static bool32 IsCurMapInLocationList(const u16 *list) +{ + s32 i; + u16 locSum = (gSaveBlock1Ptr->location.mapGroup << 8) + (gSaveBlock1Ptr->location.mapNum); + + for (i = 0; list[i] != 0xFFFF; i++) + { + if (list[i] == locSum) + return TRUE; + } + return FALSE; +} + +static const u16 sSaveLocationPokeCenterList[] = +{ + MAP_VIRIDIAN_CITY_POKEMON_CENTER_1F, MAP_VIRIDIAN_CITY_POKEMON_CENTER_2F, + MAP_PEWTER_CITY_POKEMON_CENTER_1F, MAP_PEWTER_CITY_POKEMON_CENTER_2F, + MAP_CERULEAN_CITY_POKEMON_CENTER_1F, MAP_CERULEAN_CITY_POKEMON_CENTER_2F, + MAP_LAVENDER_TOWN_POKEMON_CENTER_1F, MAP_LAVENDER_TOWN_POKEMON_CENTER_2F, + MAP_VERMILION_CITY_POKEMON_CENTER_1F, MAP_VERMILION_CITY_POKEMON_CENTER_2F, + MAP_CELADON_CITY_POKEMON_CENTER_1F, MAP_CELADON_CITY_POKEMON_CENTER_2F, + MAP_FUCHSIA_CITY_POKEMON_CENTER_1F, MAP_FUCHSIA_CITY_POKEMON_CENTER_2F, + MAP_CINNABAR_ISLAND_POKEMON_CENTER_1F, MAP_CINNABAR_ISLAND_POKEMON_CENTER_2F, + MAP_INDIGO_PLATEAU_POKEMON_CENTER_1F, MAP_INDIGO_PLATEAU_POKEMON_CENTER_2F, + MAP_SAFFRON_CITY_POKEMON_CENTER_1F, MAP_SAFFRON_CITY_POKEMON_CENTER_2F, + MAP_ROUTE4_POKEMON_CENTER_1F, MAP_ROUTE4_POKEMON_CENTER_2F, + MAP_ROUTE10_POKEMON_CENTER_1F, MAP_ROUTE10_POKEMON_CENTER_2F, + MAP_ONE_ISLAND_POKEMON_CENTER_1F, MAP_ONE_ISLAND_POKEMON_CENTER_2F, + MAP_TWO_ISLAND_POKEMON_CENTER_1F, MAP_TWO_ISLAND_POKEMON_CENTER_2F, + MAP_THREE_ISLAND_POKEMON_CENTER_1F, MAP_THREE_ISLAND_POKEMON_CENTER_2F, + MAP_FOUR_ISLAND_POKEMON_CENTER_1F, MAP_FOUR_ISLAND_POKEMON_CENTER_2F, + MAP_FIVE_ISLAND_POKEMON_CENTER_1F, MAP_FIVE_ISLAND_POKEMON_CENTER_2F, + MAP_SEVEN_ISLAND_POKEMON_CENTER_1F, MAP_SEVEN_ISLAND_POKEMON_CENTER_2F, + MAP_SIX_ISLAND_POKEMON_CENTER_1F, MAP_SIX_ISLAND_POKEMON_CENTER_2F, + MAP_UNKNOWN_MAP_00_00, MAP_UNKNOWN_MAP_00_01, + MAP_UNKNOWN_MAP_00_03, MAP_UNKNOWN_MAP_00_04, + 0xFFFF, +}; + +bool32 IsCurMapPokeCenter(void) +{ + return IsCurMapInLocationList(sSaveLocationPokeCenterList); +} + +static const u16 sSaveLocationReloadLocList[] = { 0xFFFF }; + +static bool32 IsCurMapReloadLocation(void) +{ + return IsCurMapInLocationList(sSaveLocationReloadLocList); +} + +static const u16 sUnknown_8453094[] = { 0xFFFF }; + +static bool32 sub_810B75C(void) +{ + return IsCurMapInLocationList(sUnknown_8453094); +} + +static void TrySetPokeCenterWarpStatus(void) +{ + if (IsCurMapPokeCenter() == FALSE) + gSaveBlock2Ptr->specialSaveWarpFlags &= ~(POKECENTER_SAVEWARP); + else + gSaveBlock2Ptr->specialSaveWarpFlags |= POKECENTER_SAVEWARP; +} + +static void TrySetReloadWarpStatus(void) +{ + if (!IsCurMapReloadLocation()) + gSaveBlock2Ptr->specialSaveWarpFlags &= ~(LOBBY_SAVEWARP); + else + gSaveBlock2Ptr->specialSaveWarpFlags |= LOBBY_SAVEWARP; +} + +static void sub_810B7CC(void) +{ + if (!sub_810B75C()) + gSaveBlock2Ptr->specialSaveWarpFlags &= ~(UNK_SPECIAL_SAVE_WARP_FLAG_3); + else + gSaveBlock2Ptr->specialSaveWarpFlags |= UNK_SPECIAL_SAVE_WARP_FLAG_3; +} + +void TrySetMapSaveWarpStatus(void) +{ + TrySetPokeCenterWarpStatus(); + TrySetReloadWarpStatus(); + sub_810B7CC(); +} + +void sub_810B810(void) +{ + gSaveBlock2Ptr->field_A8 |= 0x1; + gSaveBlock2Ptr->field_A8 |= 0x10; + gSaveBlock2Ptr->field_A8 |= 0x20; +} + +void sub_810B82C(void) +{ + gSaveBlock2Ptr->specialSaveWarpFlags |= 0x80; + gSaveBlock2Ptr->field_A8 |= 0x2; + gSaveBlock2Ptr->field_A8 |= 0x4; + gSaveBlock2Ptr->field_A8 |= 0x8; + gSaveBlock2Ptr->field_A8 |= 0x8000; +} diff --git a/src/scrcmd.c b/src/scrcmd.c index 12b2892bb..d317a78b5 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -807,7 +807,7 @@ bool8 ScrCmd_warpteleport2(struct ScriptContext *ctx) u16 y = VarGet(ScriptReadHalfword(ctx)); Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); - sub_805DAE4(player_get_direction_lower_nybble()); + sub_805DAE4(GetPlayerFacingDirection()); sub_807E500(); ResetInitialPlayerAvatarState(); return TRUE; @@ -1154,7 +1154,7 @@ bool8 ScrCmd_faceplayer(struct ScriptContext *ctx) if (gMapObjects[gSelectedEventObject].active) { FieldObjectFaceOppositeDirection(&gMapObjects[gSelectedEventObject], - player_get_direction_lower_nybble()); + GetPlayerFacingDirection()); } return FALSE; } @@ -1241,7 +1241,7 @@ bool8 ScrCmd_releaseall(struct ScriptContext *ctx) HideFieldMessageBox(); playerObjectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0); - FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[playerObjectId]); + FieldObjectClearHeldMovementIfFinished(&gMapObjects[playerObjectId]); sub_80974D8(); UnfreezeMapObjects(); return FALSE; @@ -1253,9 +1253,9 @@ bool8 ScrCmd_release(struct ScriptContext *ctx) HideFieldMessageBox(); if (gMapObjects[gSelectedEventObject].active) - FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[gSelectedEventObject]); + FieldObjectClearHeldMovementIfFinished(&gMapObjects[gSelectedEventObject]); playerObjectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0); - FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[playerObjectId]); + FieldObjectClearHeldMovementIfFinished(&gMapObjects[playerObjectId]); sub_80974D8(); UnfreezeMapObjects(); return FALSE; diff --git a/src/script.c b/src/script.c index 608dc6ba0..06418b8d0 100644 --- a/src/script.c +++ b/src/script.c @@ -279,7 +279,7 @@ void sub_8069A2C(void) gUnknown_3000FA1 = 0; } -bool8 sub_8069A38(void) +bool8 IsMsgSignPost(void) { if(gUnknown_3000FA1 == TRUE) return TRUE; diff --git a/src/sprite.c b/src/sprite.c index 60bcd1da4..c1fc89777 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -250,12 +250,26 @@ static const AffineAnimCmdFunc sAffineAnimCmdFuncs[] = AffineAnimCmd_frame, }; -static const s32 gUnknown_082EC6F4[24] = +static const s32 sUnknown_082EC6F4[3][4][2] = { - 8, 8, 0x10, 0x10, 0x20, 0x20, - 0x40, 0x40, 0x10, 8, 0x20, 8, - 0x20, 0x10, 0x40, 0x20, 8, 0x10, - 8, 0x20, 0x10, 0x20, 0x20, 0x40, + { + {8, 8}, + {0x10, 0x10}, + {0x20, 0x20}, + {0x40, 0x40}, + }, + { + {0x10, 8}, + {0x20, 8}, + {0x20, 0x10}, + {0x40, 0x20}, + }, + { + {8, 0x10}, + {8, 0x20}, + {0x10, 0x20}, + {0x20, 0x40}, + }, }; static const struct OamDimensions sOamDimensions[3][4] = @@ -1227,106 +1241,26 @@ s32 sub_800800C(s32 a0, s32 a1, s32 a2) return a2 - ((u32)(a2 * a1) / (u32)(a0) + var1); } -#ifdef NONMATCHING -void obj_update_pos2(struct Sprite* sprite, s32 a1, s32 a2) +void obj_update_pos2(struct Sprite *sprite, s32 a1, s32 a2) { s32 var0, var1, var2; - u8 matrixNum = sprite->oam.matrixNum; + + u32 matrixNum = sprite->oam.matrixNum; if (a1 != 0x800) { - var0 = gUnknown_082EC6F4[sprite->oam.size * 8 + sprite->oam.shape * 32]; + var0 = sUnknown_082EC6F4[sprite->oam.shape][sprite->oam.size][0]; var1 = var0 << 8; var2 = (var0 << 16) / gOamMatrices[matrixNum].a; sprite->pos2.x = sub_800800C(var1, var2, a1); } if (a2 != 0x800) { - var0 = gUnknown_082EC6F4[4 + (sprite->oam.size * 8 + sprite->oam.shape * 32)]; + var0 = sUnknown_082EC6F4[sprite->oam.shape][sprite->oam.size][1]; var1 = var0 << 8; var2 = (var0 << 16) / gOamMatrices[matrixNum].d; sprite->pos2.y = sub_800800C(var1, var2, a2); } } -#else -__attribute__((naked)) -void obj_update_pos2(struct Sprite* sprite, s32 a1, s32 a2) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r9\n\ - mov r6, r8\n\ - push {r6,r7}\n\ - adds r5, r0, 0\n\ - adds r6, r1, 0\n\ - mov r8, r2\n\ - ldrb r1, [r5, 0x3]\n\ - lsls r0, r1, 26\n\ - lsrs r7, r0, 27\n\ - movs r0, 0x80\n\ - lsls r0, 4\n\ - mov r9, r0\n\ - cmp r6, r9\n\ - beq _08007EA2\n\ - ldr r2, =gUnknown_082EC6F4\n\ - lsrs r1, 6\n\ - lsls r1, 3\n\ - ldrb r0, [r5, 0x1]\n\ - lsrs r0, 6\n\ - lsls r0, 5\n\ - adds r1, r0\n\ - adds r1, r2\n\ - ldr r0, [r1]\n\ - lsls r4, r0, 8\n\ - lsls r0, 16\n\ - ldr r2, =gOamMatrices\n\ - lsls r1, r7, 3\n\ - adds r1, r2\n\ - movs r2, 0\n\ - ldrsh r1, [r1, r2]\n\ - bl __divsi3\n\ - adds r1, r0, 0\n\ - adds r0, r4, 0\n\ - adds r2, r6, 0\n\ - bl sub_800800C\n\ - strh r0, [r5, 0x24]\n\ -_08007EA2:\n\ - cmp r8, r9\n\ - beq _08007EDA\n\ - ldr r2, =gUnknown_082EC6F4\n\ - ldrb r1, [r5, 0x3]\n\ - lsrs r1, 6\n\ - lsls r1, 3\n\ - ldrb r0, [r5, 0x1]\n\ - lsrs r0, 6\n\ - lsls r0, 5\n\ - adds r1, r0\n\ - adds r2, 0x4\n\ - adds r1, r2\n\ - ldr r0, [r1]\n\ - lsls r4, r0, 8\n\ - lsls r0, 16\n\ - ldr r2, =gOamMatrices\n\ - lsls r1, r7, 3\n\ - adds r1, r2\n\ - movs r2, 0x6\n\ - ldrsh r1, [r1, r2]\n\ - bl __divsi3\n\ - adds r1, r0, 0\n\ - adds r0, r4, 0\n\ - mov r2, r8\n\ - bl sub_800800C\n\ - strh r0, [r5, 0x26]\n\ -_08007EDA:\n\ - pop {r3,r4}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided"); -} -#endif // NONMATCHING void SetSpriteOamFlipBits(struct Sprite *sprite, u8 hFlip, u8 vFlip) { diff --git a/src/teachy_tv.c b/src/teachy_tv.c index eb5a7293d..1e3f42027 100644 --- a/src/teachy_tv.c +++ b/src/teachy_tv.c @@ -422,7 +422,7 @@ static void TeachyTvCallback(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); UpdatePaletteFade(); } @@ -476,7 +476,7 @@ static void TeachyTvMainCallback(void) sResources->grassAnimDisabled = 0; sResources->scrollIndicatorArrowPairId = 0xFF; SetVBlankHBlankCallbacksToNull(); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); ScanlineEffect_Stop(); FreeAllSpritePalettes(); ResetPaletteFade(); @@ -487,7 +487,7 @@ static void TeachyTvMainCallback(void) ++gMain.state; break; case 1: - if (free_temp_tile_data_buffers_if_possible() == TRUE) + if (FreeTempTileDataBuffersIfPossible() == TRUE) return; TeachyTvCreateAndRenderRbox(); TeachyTvInitIo(); @@ -506,10 +506,10 @@ static void TeachyTvMainCallback(void) PlayNewMapMusic(BGM_FRLG_TEACHY_TV); TeachyTvSetWindowRegs(); } - schedule_bg_copy_tilemap_to_vram(0); - schedule_bg_copy_tilemap_to_vram(1); - schedule_bg_copy_tilemap_to_vram(2); - schedule_bg_copy_tilemap_to_vram(3); + ScheduleBgCopyTilemapToVram(0); + ScheduleBgCopyTilemapToVram(1); + ScheduleBgCopyTilemapToVram(2); + ScheduleBgCopyTilemapToVram(3); sub_812B1E0(9); // help system something BlendPalettes(0xFFFFFFFF, 0x10, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0); @@ -542,8 +542,8 @@ static void TeachyTvSetupBg(void) static void TeachyTvLoadGraphic(void) { u16 src = RGB_BLACK; - reset_temp_tile_data_buffers(); - decompress_and_copy_tile_data_to_vram(1, gUnknown_8E86240, 0, 0, 0); + ResetTempTileDataBuffers(); + DecompressAndCopyTileDataToVram(1, gUnknown_8E86240, 0, 0, 0); LZDecompressWram(gUnknown_8E86BE8, sResources->buffer1); LZDecompressWram(gUnknown_8E86D6C, sResources->buffer4); LoadCompressedPalette(gUnknown_8E86F98, 0, 0x80); @@ -656,7 +656,7 @@ static void TeachyTvBg2AnimController(void) tilemapBuffer[32 * i + j] = ((Random() & 3) << 10) + 0x301F; } } - schedule_bg_copy_tilemap_to_vram(2); + ScheduleBgCopyTilemapToVram(2); } static void TeachyTvSetupPostBattleWindowAndObj(u8 taskId) @@ -718,7 +718,7 @@ static void TeachyTvQuitFadeControlAndTaskDel(u8 taskId) } else { - sub_8055DC4(); + Overworld_PlaySpecialMapMusic(); SetMainCallback2(sStaticResources.callback); } TeachyTvFree(); @@ -757,7 +757,7 @@ static void TeachyTvOptionListController(u8 taskId) DestroyListMenu(data[0], &sStaticResources.scrollOffset, &sStaticResources.selectedRow); TeachyTvClearWindowRegs(); ClearWindowTilemap(1); - schedule_bg_copy_tilemap_to_vram(0); + ScheduleBgCopyTilemapToVram(0); TeachyTvRemoveScrollIndicatorArrowPair(); data[3] = 0; data[2] = 0; @@ -776,7 +776,7 @@ static void TTVcmd_TransitionRenderBg2TeachyTvGraphicInitNpcPos(u8 taskId) { CopyToBgTilemapBufferRect_ChangePalette(2, sResources->buffer4, 0, 0, 0x20, 0x20, 0x11); TeachyTvSetSpriteCoordsAndSwitchFrame(data[1], 8, 0x38, 7); - schedule_bg_copy_tilemap_to_vram(2); + ScheduleBgCopyTilemapToVram(2); data[2] = 0; ++data[3]; PlayNewMapMusic(BGM_FRLG_FOLLOW_ME); @@ -789,7 +789,7 @@ static void TTVcmd_ClearBg2TeachyTvGraphic(u8 taskId) if (++data[2] == 134) { FillBgTilemapBufferRect_Palette0(2, 0, 2, 1, 0x1A, 0xC); - schedule_bg_copy_tilemap_to_vram(2); + ScheduleBgCopyTilemapToVram(2); data[2] = 0; ++data[3]; } @@ -1040,7 +1040,7 @@ static void TTVcmd_RenderAndRemoveBg1EndGraphic(u8 taskId) if (!data[2]) { CopyToBgTilemapBufferRect_ChangePalette(1, sBg1EndGraphic, 20, 10, 8, 2, 0x11); - schedule_bg_copy_tilemap_to_vram(1); + ScheduleBgCopyTilemapToVram(1); } if (++data[2] > 126) { @@ -1053,7 +1053,7 @@ static void TTVcmd_RenderAndRemoveBg1EndGraphic(u8 taskId) static void TeachyTvClearBg1EndGraphicText(void) { FillBgTilemapBufferRect_Palette0(1, 0, 20, 10, 8, 2); - schedule_bg_copy_tilemap_to_vram(1); + ScheduleBgCopyTilemapToVram(1); } static void TTVcmd_End(u8 taskId) @@ -1071,7 +1071,7 @@ static void TTVcmd_End(u8 taskId) PutWindowTilemap(0); TeachyTvSetupScrollIndicatorArrowPair(); TeachyTvSetWindowRegs(); - schedule_bg_copy_tilemap_to_vram(0); + ScheduleBgCopyTilemapToVram(0); ChangeBgX(3, 0x0, 0); ChangeBgY(3, 0x0, 0); ChangeBgX(3, 0x1000, 2); diff --git a/src/text.c b/src/text.c index f84420352..c0fe6a444 100644 --- a/src/text.c +++ b/src/text.c @@ -16,7 +16,6 @@ extern void FillWindowPixelRect(u8 windowId, u8 fillValue, u16 x, u16 y, u16 wid extern void BlitBitmapRectToWindow(u8 windowId, const u8 *pixels, u16 srcX, u16 srcY, u16 srcWidth, int srcHeight, u16 destX, u16 destY, u16 rectWidth, u16 rectHeight); extern u8 GetKeypadIconWidth(u8 keypadIconId); extern void CopyWindowToVram(u8 windowId, u8 mode); -extern u16 Font6Func(struct TextPrinter *textPrinter); extern s32 GetGlyphWidthFont6(u16 glyphId, bool32 isJapanese); extern void PlaySE(u16 songNum); extern u8* UnkTextUtil_GetPtrI(u8 a1); diff --git a/src/text_window.c b/src/text_window.c index 0c562b195..98f82e818 100644 --- a/src/text_window.c +++ b/src/text_window.c @@ -57,7 +57,7 @@ void sub_814FE6C(u8 windowId, u16 destOffset, u8 palIdx) LoadPalette(stdpal_get(2), palIdx, 32); } -void TextWindow_SetBubbleFrame_841F1C8(u8 windowId, u16 destOffset, u8 palIdx) +void TextWindow_LoadResourcesStdFrame0(u8 windowId, u16 destOffset, u8 palIdx) { LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gUnknown_841F1C8, 0x280, destOffset); LoadPalette(stdpal_get(0), palIdx, 32); @@ -80,7 +80,7 @@ void sub_814FF6C(u8 windowId, u16 destOffset) LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gStdFrame0, 0x120, destOffset); } -void sub_814FF98(u8 windowId, u16 destOffset) +void TextWindow_LoadTilesStdFrame1(u8 windowId, u16 destOffset) { LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gStdFrame1, 0x280, destOffset); } diff --git a/src/tm_case.c b/src/tm_case.c index 7c26c1c58..54c50cc71 100644 --- a/src/tm_case.c +++ b/src/tm_case.c @@ -290,7 +290,7 @@ static void CB2_Idle(void) RunTasks(); AnimateSprites(); BuildOamBuffer(); - do_scheduled_bg_tilemap_copies_to_vram(); + DoScheduledBgTilemapCopiesToVram(); UpdatePaletteFade(); } @@ -322,7 +322,7 @@ static bool8 DoSetUpTMCaseUI(void) { case 0: SetVBlankHBlankCallbacksToNull(); - clear_scheduled_bg_copies_to_vram(); + ClearScheduledBgCopiesToVram(); gMain.state++; break; case 1: @@ -432,8 +432,8 @@ static void LoadBGTemplates(void) ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, sBGTemplates, NELEMS(sBGTemplates)); SetBgTilemapBuffer(2, *ptr); - schedule_bg_copy_tilemap_to_vram(1); - schedule_bg_copy_tilemap_to_vram(2); + ScheduleBgCopyTilemapToVram(1); + ScheduleBgCopyTilemapToVram(2); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON); SetGpuReg(REG_OFFSET_BLDCNT, 0); ShowBg(0); @@ -446,12 +446,12 @@ static bool8 HandleLoadTMCaseGraphicsAndPalettes(void) switch (sTMCaseDynamicResources->seqId) { case 0: - reset_temp_tile_data_buffers(); - decompress_and_copy_tile_data_to_vram(1, gUnknown_8E845D8, 0, 0, 0); + ResetTempTileDataBuffers(); + DecompressAndCopyTileDataToVram(1, gUnknown_8E845D8, 0, 0, 0); sTMCaseDynamicResources->seqId++; break; case 1: - if (free_temp_tile_data_buffers_if_possible() != TRUE) + if (FreeTempTileDataBuffersIfPossible() != TRUE) { LZDecompressWram(gUnknown_8E84A24, sTilemapBuffer); sTMCaseDynamicResources->seqId++; @@ -469,7 +469,7 @@ static bool8 HandleLoadTMCaseGraphicsAndPalettes(void) sTMCaseDynamicResources->seqId++; break; case 4: - LoadCompressedObjectPic(&sTMSpriteSheet); + LoadCompressedSpriteSheet(&sTMSpriteSheet); sTMCaseDynamicResources->seqId++; break; default: @@ -596,7 +596,7 @@ static void TMCase_MoveCursor_UpdatePrintedDescription(s32 itemIndex) static void FillBG2RowWithPalette_2timesNplus1(s32 a0) { SetBgRectPal(2, 0, 12, 30, 8, 2 * a0 + 1); - schedule_bg_copy_tilemap_to_vram(2); + ScheduleBgCopyTilemapToVram(2); } static void PrintListMenuCursorByID_WithColorIdx(u8 a0, u8 a1) @@ -806,8 +806,8 @@ static void Task_SelectTMAction_FromFieldBag(u8 taskId) PlaceHMTileInWindow(2, 0, 2); CopyWindowToVram(2, 2); } - schedule_bg_copy_tilemap_to_vram(0); - schedule_bg_copy_tilemap_to_vram(1); + ScheduleBgCopyTilemapToVram(0); + ScheduleBgCopyTilemapToVram(1); gTasks[taskId].func = Task_TMContextMenu_HandleInput; } @@ -840,8 +840,8 @@ static void TMHMContextMenuAction_Use(u8 taskId) ClearMenuWindow(2, 0); ClearWindowTilemap(2); PutWindowTilemap(0); - schedule_bg_copy_tilemap_to_vram(0); - schedule_bg_copy_tilemap_to_vram(1); + ScheduleBgCopyTilemapToVram(0); + ScheduleBgCopyTilemapToVram(1); if (CalculatePlayerPartyCount() == 0) { PrintError_ThereIsNoPokemon(taskId); @@ -864,8 +864,8 @@ static void TMHMContextMenuAction_Give(u8 taskId) PutWindowTilemap(1); PutWindowTilemap(4); PutWindowTilemap(5); - schedule_bg_copy_tilemap_to_vram(0); - schedule_bg_copy_tilemap_to_vram(1); + ScheduleBgCopyTilemapToVram(0); + ScheduleBgCopyTilemapToVram(1); if (!itemid_is_unique(itemId)) { if (CalculatePlayerPartyCount() == 0) @@ -917,8 +917,8 @@ static void Subtask_CloseContextMenuAndReturnToMain(u8 taskId) PutWindowTilemap(1); PutWindowTilemap(4); PutWindowTilemap(5); - schedule_bg_copy_tilemap_to_vram(0); - schedule_bg_copy_tilemap_to_vram(1); + ScheduleBgCopyTilemapToVram(0); + ScheduleBgCopyTilemapToVram(1); Subtask_ReturnToTMCaseMain(taskId); } @@ -934,8 +934,8 @@ static void TMHMContextMenuAction_Exit(u8 taskId) PutWindowTilemap(1); PutWindowTilemap(4); PutWindowTilemap(5); - schedule_bg_copy_tilemap_to_vram(0); - schedule_bg_copy_tilemap_to_vram(1); + ScheduleBgCopyTilemapToVram(0); + ScheduleBgCopyTilemapToVram(1); Subtask_ReturnToTMCaseMain(taskId); } @@ -1023,8 +1023,8 @@ static void Task_SaleOfTMsCancelled(u8 taskId) PutWindowTilemap(3); PutWindowTilemap(4); PutWindowTilemap(5); - schedule_bg_copy_tilemap_to_vram(0); - schedule_bg_copy_tilemap_to_vram(1); + ScheduleBgCopyTilemapToVram(0); + ScheduleBgCopyTilemapToVram(1); PrintListMenuCursorByID_WithColorIdx(data[0], 1); Subtask_ReturnToTMCaseMain(taskId); } @@ -1040,8 +1040,8 @@ static void Task_InitQuantitySelectUI(u8 taskId) SellTM_PrintQuantityAndSalePrice(1, itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])) / 2 * data[8]); HandlePrintMoneyOnHand(); CreateTMCaseScrollIndicatorArrowPair_SellQuantitySelect(); - schedule_bg_copy_tilemap_to_vram(0); - schedule_bg_copy_tilemap_to_vram(1); + ScheduleBgCopyTilemapToVram(0); + ScheduleBgCopyTilemapToVram(1); gTasks[taskId].func = Task_QuantitySelect_HandleInput; } @@ -1066,8 +1066,8 @@ static void Task_QuantitySelect_HandleInput(u8 taskId) { PlaySE(SE_SELECT); ClearMenuWindow(7, 0); - schedule_bg_copy_tilemap_to_vram(0); - schedule_bg_copy_tilemap_to_vram(1); + ScheduleBgCopyTilemapToVram(0); + ScheduleBgCopyTilemapToVram(1); RemoveTMCaseScrollIndicatorArrowPair(); Task_AskConfirmSaleWithAmount(taskId); } @@ -1080,8 +1080,8 @@ static void Task_QuantitySelect_HandleInput(u8 taskId) PutWindowTilemap(3); PutWindowTilemap(0); PutWindowTilemap(1); - schedule_bg_copy_tilemap_to_vram(0); - schedule_bg_copy_tilemap_to_vram(1); + ScheduleBgCopyTilemapToVram(0); + ScheduleBgCopyTilemapToVram(1); RemoveTMCaseScrollIndicatorArrowPair(); PrintListMenuCursorByID_WithColorIdx(data[0], 1); Subtask_ReturnToTMCaseMain(taskId); @@ -1093,7 +1093,7 @@ static void Task_PrintSaleConfirmedText(u8 taskId) s16 * data = gTasks[taskId].data; PutWindowTilemap(0); - schedule_bg_copy_tilemap_to_vram(0); + ScheduleBgCopyTilemapToVram(0); CopyItemName(gSpecialVar_ItemId, gStringVar1); ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6); StringExpandPlaceholders(gStringVar4, gText_TurnedOverItemsWorthYen); @@ -1250,7 +1250,7 @@ static void Task_TMCaseDude_Playback(u8 taskId) FillBG2RowWithPalette_2timesNplus1(0); BeginNormalPaletteFade(0x00000400, 0, 6, 0, 0); ClearMenuWindow_BorderThickness2(6, 0); - schedule_bg_copy_tilemap_to_vram(1); + ScheduleBgCopyTilemapToVram(1); data[8]++; } break; @@ -1298,7 +1298,7 @@ static void InitWindowTemplatesAndPals(void) InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); TextWindow_SetUserSelectedFrame(0, 0x5B, 0xE0); - TextWindow_SetBubbleFrame_841F1C8(0, 0x64, 0xB0); + TextWindow_LoadResourcesStdFrame0(0, 0x64, 0xB0); TextWindow_SetStdFrame0_WithPal(0, 0x78, 0xD0); LoadPalette(gTMCaseMainWindowPalette, 0xF0, 0x20); LoadPalette(gTMCaseMainWindowPalette, 0xA0, 0x20); @@ -1312,7 +1312,7 @@ static void InitWindowTemplatesAndPals(void) PutWindowTilemap(3); PutWindowTilemap(4); PutWindowTilemap(5); - schedule_bg_copy_tilemap_to_vram(0); + ScheduleBgCopyTilemapToVram(0); } static void AddTextPrinterParameterized_ColorByIndex(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx) @@ -1333,7 +1333,7 @@ static void TMCase_SetWindowBorder2(u8 windowId) static void TMCase_PrintMessageWithFollowupTask(u8 taskId, u8 windowId, const u8 * str, TaskFunc func) { DisplayMessageAndContinueTask(taskId, 6, 0x64, 0x0B, windowId, GetTextSpeedSetting(), str, func); - schedule_bg_copy_tilemap_to_vram(1); + ScheduleBgCopyTilemapToVram(1); } static void PrintStringTMCaseOnWindow3(void) @@ -1413,7 +1413,7 @@ static u8 AddTMContextMenu(u8 * a0, u8 a1) { *a0 = AddWindow(&sTMContextWindowTemplates[a1]); TMCase_SetWindowBorder1(*a0); - schedule_bg_copy_tilemap_to_vram(0); + ScheduleBgCopyTilemapToVram(0); } return *a0; } @@ -1423,7 +1423,7 @@ static void RemoveTMContextMenu(u8 * a0) ClearMenuWindow(*a0, FALSE); ClearWindowTilemap(*a0); RemoveWindow(*a0); - schedule_bg_copy_tilemap_to_vram(0); + ScheduleBgCopyTilemapToVram(0); *a0 = 0xFF; } diff --git a/src/trainer_pokemon_sprites.c b/src/trainer_pokemon_sprites.c index ecd889d80..25a8d4515 100644 --- a/src/trainer_pokemon_sprites.c +++ b/src/trainer_pokemon_sprites.c @@ -109,7 +109,7 @@ void LoadPicPaletteByTagOrSlot(u16 species, u32 otId, u32 personality, u8 palett else { sCreatingSpriteTemplate.paletteTag = paletteTag; - LoadCompressedObjectPalette(GetMonSpritePalStructFromOtIdPersonality(species, otId, personality)); + LoadCompressedSpritePalette(GetMonSpritePalStructFromOtIdPersonality(species, otId, personality)); } } else @@ -122,7 +122,7 @@ void LoadPicPaletteByTagOrSlot(u16 species, u32 otId, u32 personality, u8 palett else { sCreatingSpriteTemplate.paletteTag = paletteTag; - LoadCompressedObjectPalette(&gTrainerFrontPicPaletteTable[species]); + LoadCompressedSpritePalette(&gTrainerFrontPicPaletteTable[species]); } } } diff --git a/src/unk_8159F40.c b/src/unk_8159F40.c index a6f6e67fc..b0147d06a 100644 --- a/src/unk_8159F40.c +++ b/src/unk_8159F40.c @@ -612,7 +612,7 @@ void sub_815A540(void) s16 x, y; PlayerGetDestCoords(&x, &y); - if (!MetatileBehavior_IsSurfable(MapGridGetMetatileBehaviorAt(x, y)) && TestPlayerAvatarFlags(0x08)) + if (!MetatileBehavior_IsSurfable(MapGridGetMetatileBehaviorAt(x, y)) && TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING)) { struct MapObject *mapObject = &gMapObjects[gPlayerAvatar.mapObjectId]; SetPlayerAvatarTransitionFlags(0x01); diff --git a/src/unk_815C980.c b/src/unk_815C980.c index b90d2fb03..09b92c834 100644 --- a/src/unk_815C980.c +++ b/src/unk_815C980.c @@ -128,7 +128,7 @@ bool32 sub_815CA40(u32 id, s32 arg1, const struct UnkStruct3 *arg2) compObjectPic = *(struct CompressedSpriteSheet*)(arg2->spriteSheet); compObjectPic.size = GetDecompressedDataSize(arg2->spriteSheet->data); - gUnknown_203F454->array[id].tileStart = LoadCompressedObjectPic(&compObjectPic); + gUnknown_203F454->array[id].tileStart = LoadCompressedSpriteSheet(&compObjectPic); } if (gUnknown_203F454->array[id].tileStart == 0xFFFF) diff --git a/src/unk_815F138.c b/src/unk_815F138.c index 8941f1559..96005a07b 100644 --- a/src/unk_815F138.c +++ b/src/unk_815F138.c @@ -209,7 +209,7 @@ void sub_815F564(u16 tilesTag, u16 palTag) struct SpritePalette spritePalette = {gUnknown_847A328}; spriteSheet.tag = tilesTag; spritePalette.tag = palTag; - LoadCompressedObjectPic(&spriteSheet); + LoadCompressedSpriteSheet(&spriteSheet); LoadSpritePalette(&spritePalette); } diff --git a/src/window.c b/src/window.c index 4c302885c..5ccd05f35 100644 --- a/src/window.c +++ b/src/window.c @@ -378,696 +378,74 @@ void FillWindowPixelBuffer(u8 windowId, u8 fillValue) CpuFastFill8(fillValue, gWindows[windowId].tileData, 0x20 * fillSize); } -// functionally equivalent, its fucking hard to match -#ifdef NONMATCHING +#define MOVE_TILES_DOWN(a) \ +{ \ + destOffset = i + (a); \ + srcOffset = i + (((width * (distanceLoop & ~7)) | (distanceLoop & 7)) * 4); \ + if (srcOffset < size) \ + *(u32*)(tileData + destOffset) = *(u32*)(tileData + srcOffset); \ + else \ + *(u32*)(tileData + destOffset) = fillValue32; \ + distanceLoop++; \ +} + +#define MOVE_TILES_UP(a) \ +{ \ + destOffset = i + (a); \ + srcOffset = i + (((width * (distanceLoop & ~7)) | (distanceLoop & 7)) * 4); \ + if (srcOffset < size) \ + *(u32*)(tileData - destOffset) = *(u32*)(tileData - srcOffset); \ + else \ + *(u32*)(tileData - destOffset) = fillValue32; \ + distanceLoop++; \ +} + void ScrollWindow(u8 windowId, u8 direction, u8 distance, u8 fillValue) { - s32 i, id1, id2, size; - u32 distanceLoop, toFill, width; - u8 *tileData; - struct WindowTemplate window; - - tileData = gWindows[windowId].tileData; - toFill = (fillValue << 0x18) | (fillValue << 0x10) | (fillValue << 8) | fillValue; - window = gWindows[windowId].window; - size = 0x20 * (window.height * window.width); - width = window.width; - if (direction != 1) + struct WindowTemplate window = gWindows[windowId].window; + u8 *tileData = gWindows[windowId].tileData; + u32 fillValue32 = (fillValue << 24) | (fillValue << 16) | (fillValue << 8) | fillValue; + s32 size = window.height * window.width * 32; + u32 width = window.width; + s32 i; + s32 srcOffset, destOffset; + u32 distanceLoop; + + switch (direction) { - s32 signedDirection = direction; - if (signedDirection <= 1) + case 0: + for (i = 0; i < size; i += 32) { - if (signedDirection == 0) - { - for (i = 0; i < size; i += 0x20) - { - distanceLoop = distance; - id1 = i + 0; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData + id1) = *(u32*)(tileData + id2); - else - *(u32*)(tileData + id1) = toFill; - - distanceLoop++; - id1 = i + 4; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData + id1) = *(u32*)(tileData + id2); - else - *(u32*)(tileData + id1) = toFill; - - distanceLoop++; - id1 = i + 8; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData + id1) = *(u32*)(tileData + id2); - else - *(u32*)(tileData + id1) = toFill; - - distanceLoop++; - id1 = i + 12; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData + id1) = *(u32*)(tileData + id2); - else - *(u32*)(tileData + id1) = toFill; - - distanceLoop++; - id1 = i + 16; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData + id1) = *(u32*)(tileData + id2); - else - *(u32*)(tileData + id1) = toFill; - - distanceLoop++; - id1 = i + 20; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData + id1) = *(u32*)(tileData + id2); - else - *(u32*)(tileData + id1) = toFill; - - distanceLoop++; - id1 = i + 24; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData + id1) = *(u32*)(tileData + id2); - else - *(u32*)(tileData + id1) = toFill; - - distanceLoop++; - id1 = i + 28; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData + id1) = *(u32*)(tileData + id2); - else - *(u32*)(tileData + id1) = toFill; - } - } + distanceLoop = distance; + MOVE_TILES_DOWN(0) + MOVE_TILES_DOWN(4) + MOVE_TILES_DOWN(8) + MOVE_TILES_DOWN(12) + MOVE_TILES_DOWN(16) + MOVE_TILES_DOWN(20) + MOVE_TILES_DOWN(24) + MOVE_TILES_DOWN(28) } - } - else - { + break; + case 1: tileData += size - 4; - for (i = 0; i < size; i += 0x20) + for (i = 0; i < size; i += 32) { distanceLoop = distance; - id1 = i + 0; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData - id1) = *(u32*)(tileData - id2); - else - *(u32*)(tileData - id1) = toFill; - - distanceLoop++; - id1 = i + 4; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData - id1) = *(u32*)(tileData - id2); - else - *(u32*)(tileData - id1) = toFill; - - distanceLoop++; - id1 = i + 8; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData - id1) = *(u32*)(tileData - id2); - else - *(u32*)(tileData - id1) = toFill; - - distanceLoop++; - id1 = i + 12; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData - id1) = *(u32*)(tileData - id2); - else - *(u32*)(tileData - id1) = toFill; - - distanceLoop++; - id1 = i + 16; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData - id1) = *(u32*)(tileData - id2); - else - *(u32*)(tileData - id1) = toFill; - - distanceLoop++; - id1 = i + 20; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData - id1) = *(u32*)(tileData - id2); - else - *(u32*)(tileData - id1) = toFill; - - distanceLoop++; - id1 = i + 24; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData - id1) = *(u32*)(tileData - id2); - else - *(u32*)(tileData - id1) = toFill; - - distanceLoop++; - id1 = i + 28; - id2 = i + (((width * ((distanceLoop) & ~(7))) | ((distanceLoop) & 7)) * 4); - if (id2 < size) - *(u32*)(tileData - id1) = *(u32*)(tileData - id2); - else - *(u32*)(tileData - id1) = toFill; + MOVE_TILES_UP(0) + MOVE_TILES_UP(4) + MOVE_TILES_UP(8) + MOVE_TILES_UP(12) + MOVE_TILES_UP(16) + MOVE_TILES_UP(20) + MOVE_TILES_UP(24) + MOVE_TILES_UP(28) } + break; + case 2: + break; } } -#else -__attribute__((naked)) -void ScrollWindow(u8 windowId, u8 direction, u8 distance, u8 fillValue) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x8\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - mov r8, r1\n\ - lsls r2, 24\n\ - lsrs r2, 24\n\ - str r2, [sp]\n\ - lsls r3, 24\n\ - lsrs r3, 24\n\ - ldr r2, =gWindows\n\ - lsls r1, r0, 1\n\ - adds r1, r0\n\ - lsls r1, 2\n\ - adds r4, r1, r2\n\ - adds r2, 0x8\n\ - adds r1, r2\n\ - ldr r5, [r1]\n\ - lsls r7, r3, 24\n\ - lsls r0, r3, 16\n\ - orrs r7, r0\n\ - lsls r0, r3, 8\n\ - orrs r7, r0\n\ - orrs r7, r3\n\ - ldr r1, [r4]\n\ - ldr r2, [r4, 0x4]\n\ - ldrb r3, [r4, 0x4]\n\ - lsrs r0, r1, 24\n\ - muls r0, r3\n\ - lsls r6, r0, 5\n\ - lsrs r1, 24\n\ - mov r12, r1\n\ - mov r0, r8\n\ - cmp r0, 0x1\n\ - bne _08003CE8\n\ - b _08003E9E\n\ -_08003CE8:\n\ - cmp r0, 0x1\n\ - ble _08003CEE\n\ - b _08004046\n\ -_08003CEE:\n\ - cmp r0, 0\n\ - beq _08003CF4\n\ - b _08004046\n\ -_08003CF4:\n\ - movs r4, 0\n\ - cmp r4, r6\n\ - blt _08003CFC\n\ - b _08004046\n\ -_08003CFC:\n\ - movs r1, 0x8\n\ - negs r1, r1\n\ - mov r9, r1\n\ - movs r2, 0x7\n\ - mov r8, r2\n\ - mov r10, r5\n\ -_08003D08:\n\ - ldr r3, [sp]\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - adds r0, r3, 0\n\ - mov r2, r8\n\ - ands r0, r2\n\ - orrs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r4, r1\n\ - cmp r1, r6\n\ - bge _08003D34\n\ - adds r0, r5, r1\n\ - ldr r0, [r0]\n\ - mov r1, r10\n\ - str r0, [r1]\n\ - b _08003D38\n\ - .pool\n\ -_08003D34:\n\ - mov r2, r10\n\ - str r7, [r2]\n\ -_08003D38:\n\ - adds r3, 0x1\n\ - adds r2, r4, 0x4\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - str r1, [sp, 0x4]\n\ - adds r0, r3, 0\n\ - mov r1, r8\n\ - ands r0, r1\n\ - ldr r1, [sp, 0x4]\n\ - orrs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r4, r1\n\ - cmp r1, r6\n\ - bge _08003D64\n\ - adds r0, r5, r2\n\ - adds r1, r5, r1\n\ - ldr r1, [r1]\n\ - str r1, [r0]\n\ - b _08003D68\n\ -_08003D64:\n\ - adds r0, r5, r2\n\ - str r7, [r0]\n\ -_08003D68:\n\ - adds r3, 0x1\n\ - adds r2, r4, 0\n\ - adds r2, 0x8\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - str r1, [sp, 0x4]\n\ - adds r0, r3, 0\n\ - mov r1, r8\n\ - ands r0, r1\n\ - ldr r1, [sp, 0x4]\n\ - orrs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r4, r1\n\ - cmp r1, r6\n\ - bge _08003D96\n\ - adds r0, r5, r2\n\ - adds r1, r5, r1\n\ - ldr r1, [r1]\n\ - str r1, [r0]\n\ - b _08003D9A\n\ -_08003D96:\n\ - adds r0, r5, r2\n\ - str r7, [r0]\n\ -_08003D9A:\n\ - adds r3, 0x1\n\ - adds r2, r4, 0\n\ - adds r2, 0xC\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - str r1, [sp, 0x4]\n\ - adds r0, r3, 0\n\ - mov r1, r8\n\ - ands r0, r1\n\ - ldr r1, [sp, 0x4]\n\ - orrs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r4, r1\n\ - cmp r1, r6\n\ - bge _08003DC8\n\ - adds r0, r5, r2\n\ - adds r1, r5, r1\n\ - ldr r1, [r1]\n\ - str r1, [r0]\n\ - b _08003DCC\n\ -_08003DC8:\n\ - adds r0, r5, r2\n\ - str r7, [r0]\n\ -_08003DCC:\n\ - adds r3, 0x1\n\ - adds r2, r4, 0\n\ - adds r2, 0x10\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - str r1, [sp, 0x4]\n\ - adds r0, r3, 0\n\ - mov r1, r8\n\ - ands r0, r1\n\ - ldr r1, [sp, 0x4]\n\ - orrs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r4, r1\n\ - cmp r1, r6\n\ - bge _08003DFA\n\ - adds r0, r5, r2\n\ - adds r1, r5, r1\n\ - ldr r1, [r1]\n\ - str r1, [r0]\n\ - b _08003DFE\n\ -_08003DFA:\n\ - adds r0, r5, r2\n\ - str r7, [r0]\n\ -_08003DFE:\n\ - adds r3, 0x1\n\ - adds r2, r4, 0\n\ - adds r2, 0x14\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - str r1, [sp, 0x4]\n\ - adds r0, r3, 0\n\ - mov r1, r8\n\ - ands r0, r1\n\ - ldr r1, [sp, 0x4]\n\ - orrs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r4, r1\n\ - cmp r1, r6\n\ - bge _08003E2C\n\ - adds r0, r5, r2\n\ - adds r1, r5, r1\n\ - ldr r1, [r1]\n\ - str r1, [r0]\n\ - b _08003E30\n\ -_08003E2C:\n\ - adds r0, r5, r2\n\ - str r7, [r0]\n\ -_08003E30:\n\ - adds r3, 0x1\n\ - adds r2, r4, 0\n\ - adds r2, 0x18\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - str r1, [sp, 0x4]\n\ - adds r0, r3, 0\n\ - mov r1, r8\n\ - ands r0, r1\n\ - ldr r1, [sp, 0x4]\n\ - orrs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r4, r1\n\ - cmp r1, r6\n\ - bge _08003E5E\n\ - adds r0, r5, r2\n\ - adds r1, r5, r1\n\ - ldr r1, [r1]\n\ - str r1, [r0]\n\ - b _08003E62\n\ -_08003E5E:\n\ - adds r0, r5, r2\n\ - str r7, [r0]\n\ -_08003E62:\n\ - adds r3, 0x1\n\ - adds r2, r4, 0\n\ - adds r2, 0x1C\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - adds r0, r1, 0\n\ - mov r1, r8\n\ - ands r3, r1\n\ - orrs r0, r3\n\ - lsls r0, 2\n\ - adds r1, r4, r0\n\ - cmp r1, r6\n\ - bge _08003E8C\n\ - adds r0, r5, r2\n\ - adds r1, r5, r1\n\ - ldr r1, [r1]\n\ - str r1, [r0]\n\ - b _08003E90\n\ -_08003E8C:\n\ - adds r0, r5, r2\n\ - str r7, [r0]\n\ -_08003E90:\n\ - movs r2, 0x20\n\ - add r10, r2\n\ - adds r4, 0x20\n\ - cmp r4, r6\n\ - bge _08003E9C\n\ - b _08003D08\n\ -_08003E9C:\n\ - b _08004046\n\ -_08003E9E:\n\ - subs r0, r6, 0x4\n\ - adds r5, r0\n\ - movs r4, 0\n\ - cmp r4, r6\n\ - blt _08003EAA\n\ - b _08004046\n\ -_08003EAA:\n\ - movs r0, 0x8\n\ - negs r0, r0\n\ - mov r9, r0\n\ - movs r1, 0x7\n\ - mov r8, r1\n\ - mov r10, r5\n\ -_08003EB6:\n\ - ldr r3, [sp]\n\ - adds r0, r3, 0\n\ - mov r2, r9\n\ - ands r0, r2\n\ - mov r1, r12\n\ - muls r1, r0\n\ - adds r0, r3, 0\n\ - mov r2, r8\n\ - ands r0, r2\n\ - orrs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r4, r1\n\ - cmp r1, r6\n\ - bge _08003EDC\n\ - subs r0, r5, r1\n\ - ldr r0, [r0]\n\ - mov r1, r10\n\ - str r0, [r1]\n\ - b _08003EE0\n\ -_08003EDC:\n\ - mov r2, r10\n\ - str r7, [r2]\n\ -_08003EE0:\n\ - adds r3, 0x1\n\ - adds r2, r4, 0x4\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - str r1, [sp, 0x4]\n\ - adds r0, r3, 0\n\ - mov r1, r8\n\ - ands r0, r1\n\ - ldr r1, [sp, 0x4]\n\ - orrs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r4, r1\n\ - cmp r1, r6\n\ - bge _08003F0C\n\ - subs r0, r5, r2\n\ - subs r1, r5, r1\n\ - ldr r1, [r1]\n\ - str r1, [r0]\n\ - b _08003F10\n\ -_08003F0C:\n\ - subs r0, r5, r2\n\ - str r7, [r0]\n\ -_08003F10:\n\ - adds r3, 0x1\n\ - adds r2, r4, 0\n\ - adds r2, 0x8\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - str r1, [sp, 0x4]\n\ - adds r0, r3, 0\n\ - mov r1, r8\n\ - ands r0, r1\n\ - ldr r1, [sp, 0x4]\n\ - orrs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r4, r1\n\ - cmp r1, r6\n\ - bge _08003F3E\n\ - subs r0, r5, r2\n\ - subs r1, r5, r1\n\ - ldr r1, [r1]\n\ - str r1, [r0]\n\ - b _08003F42\n\ -_08003F3E:\n\ - subs r0, r5, r2\n\ - str r7, [r0]\n\ -_08003F42:\n\ - adds r3, 0x1\n\ - adds r2, r4, 0\n\ - adds r2, 0xC\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - str r1, [sp, 0x4]\n\ - adds r0, r3, 0\n\ - mov r1, r8\n\ - ands r0, r1\n\ - ldr r1, [sp, 0x4]\n\ - orrs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r4, r1\n\ - cmp r1, r6\n\ - bge _08003F70\n\ - subs r0, r5, r2\n\ - subs r1, r5, r1\n\ - ldr r1, [r1]\n\ - str r1, [r0]\n\ - b _08003F74\n\ -_08003F70:\n\ - subs r0, r5, r2\n\ - str r7, [r0]\n\ -_08003F74:\n\ - adds r3, 0x1\n\ - adds r2, r4, 0\n\ - adds r2, 0x10\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - str r1, [sp, 0x4]\n\ - adds r0, r3, 0\n\ - mov r1, r8\n\ - ands r0, r1\n\ - ldr r1, [sp, 0x4]\n\ - orrs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r4, r1\n\ - cmp r1, r6\n\ - bge _08003FA2\n\ - subs r0, r5, r2\n\ - subs r1, r5, r1\n\ - ldr r1, [r1]\n\ - str r1, [r0]\n\ - b _08003FA6\n\ -_08003FA2:\n\ - subs r0, r5, r2\n\ - str r7, [r0]\n\ -_08003FA6:\n\ - adds r3, 0x1\n\ - adds r2, r4, 0\n\ - adds r2, 0x14\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - str r1, [sp, 0x4]\n\ - adds r0, r3, 0\n\ - mov r1, r8\n\ - ands r0, r1\n\ - ldr r1, [sp, 0x4]\n\ - orrs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r4, r1\n\ - cmp r1, r6\n\ - bge _08003FD4\n\ - subs r0, r5, r2\n\ - subs r1, r5, r1\n\ - ldr r1, [r1]\n\ - str r1, [r0]\n\ - b _08003FD8\n\ -_08003FD4:\n\ - subs r0, r5, r2\n\ - str r7, [r0]\n\ -_08003FD8:\n\ - adds r3, 0x1\n\ - adds r2, r4, 0\n\ - adds r2, 0x18\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - str r1, [sp, 0x4]\n\ - adds r0, r3, 0\n\ - mov r1, r8\n\ - ands r0, r1\n\ - ldr r1, [sp, 0x4]\n\ - orrs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r4, r1\n\ - cmp r1, r6\n\ - bge _08004006\n\ - subs r0, r5, r2\n\ - subs r1, r5, r1\n\ - ldr r1, [r1]\n\ - str r1, [r0]\n\ - b _0800400A\n\ -_08004006:\n\ - subs r0, r5, r2\n\ - str r7, [r0]\n\ -_0800400A:\n\ - adds r3, 0x1\n\ - adds r2, r4, 0\n\ - adds r2, 0x1C\n\ - adds r0, r3, 0\n\ - mov r1, r9\n\ - ands r0, r1\n\ - mov r1, r12\n\ - muls r1, r0\n\ - adds r0, r1, 0\n\ - mov r1, r8\n\ - ands r3, r1\n\ - orrs r0, r3\n\ - lsls r0, 2\n\ - adds r1, r4, r0\n\ - cmp r1, r6\n\ - bge _08004034\n\ - subs r0, r5, r2\n\ - subs r1, r5, r1\n\ - ldr r1, [r1]\n\ - str r1, [r0]\n\ - b _08004038\n\ -_08004034:\n\ - subs r0, r5, r2\n\ - str r7, [r0]\n\ -_08004038:\n\ - movs r2, 0x20\n\ - negs r2, r2\n\ - add r10, r2\n\ - adds r4, 0x20\n\ - cmp r4, r6\n\ - bge _08004046\n\ - b _08003EB6\n\ -_08004046:\n\ - add sp, 0x8\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .syntax divided"); -} -#endif // NONMATCHING void CallWindowFunction(u8 windowId, WindowFunc func) { diff --git a/sym_bss.txt b/sym_bss.txt index 603da6ddb..7c0bdf1a1 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -57,17 +57,14 @@ gUnknown_3000E6A: @ 3000E6A gUnknown_3000E6B: @ 3000E6B .space 0x1 -gUnknown_3000E6C: @ 3000E6C - .space 0x8 - + .include "src/multiboot.o" .include "src/daycare.o" gUnknown_3000E78: @ 3000E78 .space 0x4 -gUnknown_3000E7C: @ 3000E7C - .space 0x4 - + .include "src/play_time.o" + .align 2 gUnknown_3000E80: @ 3000E80 .space 0x4 diff --git a/sym_ewram.txt b/sym_ewram.txt index ca297b540..2c791be78 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1043,7 +1043,7 @@ gUnknown_20399FC: @ 20399FC gAIScriptPtr: @ 2039A00 .space 0x4 -gUnknown_2039A04: @ 2039A04 +gPlayerFacingPosition: @ 2039A04 .space 0x8 gUnknown_2039A0C: @ 2039A0C @@ -1091,7 +1091,7 @@ gUnknown_2039A34: @ 2039A34 .include "src/save.o" .include "src/mystery_event_script.o" -gUnknown_203AAB0: @ 203AAB0 +gPaletteDecompressionBuffer: @ 203AAB0 .space 0x4 gUnknown_203AAB4: @ 203AAB4 @@ -1208,18 +1208,8 @@ gUnknown_203AB50: @ 203AB50 gUnknown_203AB54: @ 203AB54 .space 0x4 -gUnknown_203AB58: @ 203AB58 - .space 0x4 - -gUnknown_203AB5C: @ 203AB5C - .space 0x4 - -gUnknown_203AB60: @ 203AB60 - .space 0x80 - -gUnknown_203ABE0: @ 203ABE0 - .space 0x4 - + .include "src/new_menu_helpers.o" + .align 2 gUnknown_203ABE4: @ 203ABE4 .space 0x4 |