diff options
86 files changed, 2017 insertions, 5721 deletions
diff --git a/.gitignore b/.gitignore index 7029feac1..a28828524 100644 --- a/.gitignore +++ b/.gitignore @@ -42,5 +42,6 @@ build/ *.DS_Store *.pl *.bak +src/data/items.h src/data/items.h # Autogenerated by jsonproc tools/br_ips/{br_ips,ips_patch}{,.exe} diff --git a/asm/battle_1.s b/asm/battle_1.s index d60536883..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 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 f9c5008d8..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 diff --git a/asm/berry_pouch.s b/asm/berry_pouch.s index d3890c6e8..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 @@ -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/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/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_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_effect.s b/asm/field_effect.s index 255379525..f833b963a 100644 --- a/asm/field_effect.s +++ b/asm/field_effect.s @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 diff --git a/asm/field_fadetransition.s b/asm/field_fadetransition.s index ceaaaf7a6..a53329fab 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 @@ -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 @@ -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_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_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..4331fbd74 100644 --- a/asm/field_specials.s +++ b/asm/field_specials.s @@ -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] diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s index c70a06c58..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,7 +3073,7 @@ 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 @@ -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 de2b73004..4933785df 100644 --- a/asm/intro.s +++ b/asm/intro.s @@ -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 diff --git a/asm/item_menu.s b/asm/item_menu.s index d01991989..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 @@ -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/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_3.s b/asm/link_rfu_3.s index 50121e847..31d1e465b 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] @@ -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/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/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_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..6681b4a85 100644 --- a/asm/overworld.s +++ b/asm/overworld.s @@ -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 @@ -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 104ba9f7f..e56e6958e 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 @@ -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} @@ -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 @@ -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/pokemon_jump_2.s b/asm/pokemon_jump_2.s index 3497f993e..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 diff --git a/asm/pokemon_special_anim.s b/asm/pokemon_special_anim.s index 6961aea5e..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 diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 5bf5a87ae..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 @@ -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 @@ -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/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/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 8f492120f..b355fed51 100644 --- a/asm/slot_machine.s +++ b/asm/slot_machine.s @@ -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/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 06ca468a8..a71921f43 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 @@ -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 diff --git a/asm/trade.s b/asm/trade.s index 1373b84e1..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 diff --git a/asm/union_room_chat.s b/asm/union_room_chat.s index 19969116a..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 diff --git a/data/data_83FECCC.s b/data/data_83FECCC.s index 30a3f101a..1d96617c4 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 diff --git a/data/specials.inc b/data/specials.inc index 96d0ef253..e5edb47dd 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 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/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/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/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_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..e08842143 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -86,7 +86,7 @@ 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,7 +111,6 @@ 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); 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/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/ld_script.txt b/ld_script.txt index 8487e7265..5d1a151f6 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -61,7 +61,7 @@ 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); src/decompress.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); @@ -185,7 +185,7 @@ SECTIONS { 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); @@ -218,7 +218,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); @@ -419,6 +419,8 @@ 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/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..485d87a57 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) { diff --git a/src/daycare.c b/src/daycare.c index 7f64cf548..35670465a 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -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/dma3_manager.c b/src/dma3_manager.c index 10049a566..fb75c0963 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; @@ -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_softboiled.c b/src/fldeff_softboiled.c index 50c715388..a31678669 100644 --- a/src/fldeff_softboiled.c +++ b/src/fldeff_softboiled.c @@ -72,7 +72,7 @@ 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; } @@ -104,6 +104,6 @@ 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/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_pc.c b/src/item_pc.c index 1df6bcc9d..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]++; @@ -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/mevent_8145654.c b/src/mevent_8145654.c index 6534a8dc1..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); @@ -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..25b729dfd --- /dev/null +++ b/src/multiboot.c @@ -0,0 +1,420 @@ +#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; + int j; + int 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; + + 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 d6939d4e1..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); @@ -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..cb70a57c4 --- /dev/null +++ b/src/play_time.c @@ -0,0 +1,67 @@ +#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..07d44388d 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -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]++; @@ -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/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 f32273add..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++; @@ -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/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..80a75be9a 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -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 diff --git a/tools/br_ips/br_ips.c b/tools/br_ips/br_ips.c index 64c454a3e..10d9a37c0 100644 --- a/tools/br_ips/br_ips.c +++ b/tools/br_ips/br_ips.c @@ -50,6 +50,7 @@ static int getline(char ** lineptr, size_t * n, FILE * stream) { return i; } + static void getIncbinsFromFile(hunk_t ** hunks, size_t * num, size_t * maxnum, const char * fname, char ** strbuf, size_t * buffersize) { // Recursively find incbinned segments and encode them as hunks. FILE * file = fopen(fname, "r"); |