diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2020-03-06 10:57:42 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2020-03-06 10:57:42 -0500 |
commit | 3581ce9ba202377282ee58ffe14037088634b954 (patch) | |
tree | 1b950eaec4c23865f495b328ad0c0b53b8efef9c | |
parent | f483a93beaaeff82ad0a6b8b6e67a5a1b25ec989 (diff) |
Decomp and doc clear_save_data_screen
-rw-r--r-- | asm/clear_save_data_screen.s | 469 | ||||
-rw-r--r-- | data/clear_save_data_screen.s | 23 | ||||
-rw-r--r-- | include/gba/macro.h | 10 | ||||
-rw-r--r-- | include/strings.h | 4 | ||||
-rw-r--r-- | ld_script.txt | 4 | ||||
-rw-r--r-- | src/clear_save_data_screen.c | 224 | ||||
-rw-r--r-- | sym_ewram.txt | 6 |
7 files changed, 241 insertions, 499 deletions
diff --git a/asm/clear_save_data_screen.s b/asm/clear_save_data_screen.s deleted file mode 100644 index 367f12814..000000000 --- a/asm/clear_save_data_screen.s +++ /dev/null @@ -1,469 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80F5574 -sub_80F5574: @ 80F5574 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_80F5574 - - thumb_func_start sub_80F558C -sub_80F558C: @ 80F558C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_80F558C - - thumb_func_start CB2_SaveClearScreen_Init -CB2_SaveClearScreen_Init: @ 80F55A0 - push {r4,lr} - ldr r4, _080F55D0 @ =gUnknown_203AB54 - movs r0, 0x4 - bl AllocZeroed - str r0, [r4] - movs r1, 0 - strb r1, [r0, 0x1] - ldr r0, [r4] - strb r1, [r0] - ldr r0, [r4] - strb r1, [r0, 0x2] - bl sub_80F580C - ldr r0, _080F55D4 @ =sub_80F55DC - movs r1, 0 - bl CreateTask - ldr r0, _080F55D8 @ =sub_80F5574 - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F55D0: .4byte gUnknown_203AB54 -_080F55D4: .4byte sub_80F55DC -_080F55D8: .4byte sub_80F5574 - thumb_func_end CB2_SaveClearScreen_Init - - thumb_func_start sub_80F55DC -sub_80F55DC: @ 80F55DC - push {r4,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080F55F8 @ =gUnknown_203AB54 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0x5 - bhi _080F56C0 - lsls r0, 2 - ldr r1, _080F55FC @ =_080F5600 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F55F8: .4byte gUnknown_203AB54 -_080F55FC: .4byte _080F5600 - .align 2, 0 -_080F5600: - .4byte _080F5618 - .4byte _080F562A - .4byte _080F5644 - .4byte _080F564A - .4byte _080F5660 - .4byte _080F569C -_080F5618: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _080F56E2 -_080F562A: - ldr r0, _080F5640 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080F56EC - movs r0, 0 - bl SetVBlankCallback - b _080F56E2 - .align 2, 0 -_080F5640: .4byte gPaletteFade -_080F5644: - bl sub_80F5820 - b _080F56E2 -_080F564A: - movs r0, 0 - movs r1, 0x1 - movs r2, 0xF0 - bl TextWindow_SetStdFrame0_WithPal - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0xF0 - bl TextWindow_SetStdFrame0_WithPal - b _080F56E2 -_080F5660: - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0xF - bl DrawStdFrameWithCustomTileAndPalette - movs r0, 0x1 - str r0, [sp] - str r0, [sp, 0x4] - ldr r0, _080F5694 @ =gUnknown_841EE80 - str r0, [sp, 0x8] - movs r0, 0 - str r0, [sp, 0xC] - ldr r0, _080F5698 @ =gUnknown_841B69E - str r0, [sp, 0x10] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x3 - bl AddTextPrinterParameterized4 - movs r0, 0x1 - movs r1, 0x2 - bl CopyWindowToVram - b _080F56E2 - .align 2, 0 -_080F5694: .4byte gUnknown_841EE80 -_080F5698: .4byte gUnknown_841B69E -_080F569C: - ldr r0, _080F56BC @ =gUnknown_841EE68 - movs r2, 0x1 - str r2, [sp] - movs r1, 0xF - str r1, [sp, 0x4] - str r2, [sp, 0x8] - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl CreateYesNoMenu - movs r0, 0 - bl CopyBgTilemapBufferToVram - b _080F56E2 - .align 2, 0 -_080F56BC: .4byte gUnknown_841EE68 -_080F56C0: - ldr r0, _080F56F4 @ =0x0000ffff - str r0, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _080F56F8 @ =sub_80F558C - bl SetVBlankCallback - ldr r1, _080F56FC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080F5700 @ =sub_80F5708 - str r1, [r0] -_080F56E2: - ldr r0, _080F5704 @ =gUnknown_203AB54 - ldr r1, [r0] - ldrb r0, [r1, 0x1] - adds r0, 0x1 - strb r0, [r1, 0x1] -_080F56EC: - add sp, 0x14 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F56F4: .4byte 0x0000ffff -_080F56F8: .4byte sub_80F558C -_080F56FC: .4byte gTasks -_080F5700: .4byte sub_80F5708 -_080F5704: .4byte gUnknown_203AB54 - thumb_func_end sub_80F55DC - - thumb_func_start sub_80F5708 -sub_80F5708: @ 80F5708 - push {r4,r5,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r1, r0, 24 - ldr r5, _080F5740 @ =gUnknown_203AB54 - ldr r0, [r5] - ldrb r0, [r0] - cmp r0, 0 - bne _080F578C - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, 24 - asrs r4, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r4, r0 - beq _080F5736 - cmp r4, r0 - ble _080F5792 - cmp r4, 0 - beq _080F5744 - cmp r4, 0x1 - bne _080F5792 -_080F5736: - movs r0, 0x5 - bl PlaySE - b _080F577A - .align 2, 0 -_080F5740: .4byte gUnknown_203AB54 -_080F5744: - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - movs r1, 0x11 - bl FillWindowPixelBuffer - movs r0, 0x1 - str r0, [sp] - str r0, [sp, 0x4] - ldr r0, _080F5784 @ =gUnknown_841EE80 - str r0, [sp, 0x8] - str r4, [sp, 0xC] - ldr r0, _080F5788 @ =gUnknown_841B6B9 - str r0, [sp, 0x10] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x3 - bl AddTextPrinterParameterized4 - movs r0, 0x1 - movs r1, 0x3 - bl CopyWindowToVram - bl ClearSaveData -_080F577A: - ldr r1, [r5] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080F5792 - .align 2, 0 -_080F5784: .4byte gUnknown_841EE80 -_080F5788: .4byte gUnknown_841B6B9 -_080F578C: - adds r0, r1, 0 - bl sub_80F579C -_080F5792: - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80F5708 - - thumb_func_start sub_80F579C -sub_80F579C: @ 80F579C - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r5, _080F57B4 @ =gUnknown_203AB54 - ldr r0, [r5] - ldrb r0, [r0, 0x2] - cmp r0, 0 - beq _080F57B8 - cmp r0, 0x1 - beq _080F57D4 - b _080F57FE - .align 2, 0 -_080F57B4: .4byte gUnknown_203AB54 -_080F57B8: - ldr r0, _080F57D0 @ =0x0000ffff - str r0, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, [r5] - ldrb r0, [r1, 0x2] - adds r0, 0x1 - strb r0, [r1, 0x2] - b _080F57FE - .align 2, 0 -_080F57D0: .4byte 0x0000ffff -_080F57D4: - ldr r0, _080F5808 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080F57FE - bl DestroyYesNoMenu - adds r0, r6, 0 - bl DestroyTask - bl FreeAllWindowBuffers - ldr r0, [r5] - bl Free - str r4, [r5] - bl DoSoftReset -_080F57FE: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F5808: .4byte gPaletteFade - thumb_func_end sub_80F579C - - thumb_func_start sub_80F580C -sub_80F580C: @ 80F580C - push {lr} - bl ResetSpriteData - bl ResetPaletteFade - bl ResetTasks - pop {r0} - bx r0 - thumb_func_end sub_80F580C - - thumb_func_start sub_80F5820 -sub_80F5820: @ 80F5820 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - movs r3, 0xC0 - lsls r3, 19 - movs r4, 0xC0 - lsls r4, 9 - add r0, sp, 0x4 - mov r8, r0 - mov r2, sp - movs r6, 0 - ldr r1, _080F593C @ =0x040000d4 - movs r5, 0x80 - lsls r5, 5 - ldr r7, _080F5940 @ =0x81000800 - movs r0, 0x81 - lsls r0, 24 - mov r12, r0 -_080F5846: - strh r6, [r2] - mov r0, sp - str r0, [r1] - str r3, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r5 - subs r4, r5 - cmp r4, r5 - bhi _080F5846 - strh r6, [r2] - mov r2, sp - str r2, [r1] - str r3, [r1, 0x4] - lsrs r0, r4, 1 - mov r2, r12 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r0, 0xE0 - lsls r0, 19 - movs r3, 0x80 - lsls r3, 3 - movs r4, 0 - str r4, [sp, 0x4] - ldr r2, _080F593C @ =0x040000d4 - mov r1, r8 - str r1, [r2] - str r0, [r2, 0x4] - lsrs r0, r3, 2 - movs r1, 0x85 - lsls r1, 24 - orrs r0, r1 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r1, 0xA0 - lsls r1, 19 - mov r0, sp - strh r4, [r0] - str r0, [r2] - str r1, [r2, 0x4] - lsrs r3, 1 - movs r0, 0x81 - lsls r0, 24 - orrs r3, r0 - str r3, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r0, 0 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _080F5944 @ =gUnknown_841EE64 - movs r0, 0 - movs r2, 0x1 - bl InitBgsFromTemplates - movs r0, 0 - 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 ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - ldr r0, _080F5948 @ =gUnknown_841EE68 - bl InitWindows - bl DeactivateAllTextPrinters - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F593C: .4byte 0x040000d4 -_080F5940: .4byte 0x81000800 -_080F5944: .4byte gUnknown_841EE64 -_080F5948: .4byte gUnknown_841EE68 - thumb_func_end sub_80F5820 - - .align 2, 0 @ Don't pad with nop. diff --git a/data/clear_save_data_screen.s b/data/clear_save_data_screen.s index 32a2d422a..7b0827b6c 100644 --- a/data/clear_save_data_screen.s +++ b/data/clear_save_data_screen.s @@ -5,26 +5,3 @@ .include "constants/constants.inc" .section .rodata .align 2 - -gUnknown_841EE64:: @ 841EE64 - .4byte 0x000001f0 - @ { - @ .bg = 0, - @ .charBaseIndex = 0, - @ .mapBaseIndex = 31, - @ .screenSize = 0, - @ .paletteMode = 0, - @ .priority = 0, - @ .baseTile = 0x0000 - @ } - -gUnknown_841EE68:: @ 841EE68 - .byte 0, 3, 5, 6, 4, 15 - .2byte 0x000a - .byte 0, 3, 15, 23, 4, 15 - .2byte 0x0022 - .byte 255, 0, 0, 0, 0, 0 - .2byte 0x0000 - -gUnknown_841EE80:: @ 841EE80 - .byte 0x01, 0x02, 0x03 diff --git a/include/gba/macro.h b/include/gba/macro.h index 6cf2e1651..cc8535305 100644 --- a/include/gba/macro.h +++ b/include/gba/macro.h @@ -171,6 +171,16 @@ #define DmaFill16Defvars(dmaNum, value, dest, size) DmaFillDefvars(dmaNum, value, dest, size, 16) #define DmaFill32Defvars(dmaNum, value, dest, size) DmaFillDefvars(dmaNum, value, dest, size, 32) +#define DmaClearDefvars(dmaNum, dest, size, bit) \ +{ \ + void *_dest = dest; \ + u32 _size = size; \ + DmaClear##bit(dmaNum, _dest, _size); \ +} + +#define DmaClear16Defvars(dmaNum, dest, size) DmaClearDefvars(dmaNum, dest, size, 16) +#define DmaClear32Defvars(dmaNum, dest, size) DmaClearDefvars(dmaNum, dest, size, 32) + #define IntrEnable(flags) \ { \ u16 imeTemp; \ diff --git a/include/strings.h b/include/strings.h index f2207e7a7..d5c6f4b58 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1309,4 +1309,8 @@ extern const u8 gText_QuestLog_VictoryRoad[]; extern const u8 gText_QuestLog_PokemonLeague[]; extern const u8 gText_QuestLog_CeruleanCave[]; +// clear_save_data_screen +extern const u8 gUnknown_841B69E[]; +extern const u8 gUnknown_841B6B9[]; + #endif //GUARD_STRINGS_H diff --git a/ld_script.txt b/ld_script.txt index 5c908a5f8..1de01ca5f 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -216,7 +216,7 @@ SECTIONS { src/credits.o(.text); src/diploma.o(.text); src/save_failed_screen.o(.text); - asm/clear_save_data_screen.o(.text); + src/clear_save_data_screen.o(.text); src/evolution_graphics.o(.text); src/fldeff_teleport.o(.text); src/new_menu_helpers.o(.text); @@ -510,7 +510,7 @@ SECTIONS { src/diploma.o(.rodata); src/strings.o(.rodata); src/save_failed_screen.o(.rodata); - data/clear_save_data_screen.o(.rodata); + src/clear_save_data_screen.o(.rodata); src/evolution_graphics.o(.rodata); src/new_menu_helpers.o(.rodata); src/box_party_pokemon_dropdown.o(.rodata); diff --git a/src/clear_save_data_screen.c b/src/clear_save_data_screen.c new file mode 100644 index 000000000..5485e8da9 --- /dev/null +++ b/src/clear_save_data_screen.c @@ -0,0 +1,224 @@ +#include "global.h" +#include "gflib.h" +#include "menu.h" +#include "save.h" +#include "strings.h" +#include "task.h" +#include "text_window.h" +#include "constants/songs.h" + +struct ClearSaveDataStruct { + u8 unk0; + u8 unk1; + u8 unk2; +}; + +static EWRAM_DATA struct ClearSaveDataStruct * sClearSaveDataState = NULL; + +static void Task_DrawClearSaveDataScreen(u8 taskId); +static void Task_HandleYesNoMenu(u8 taskId); +static void Task_CleanUpAndSoftReset(u8 taskId); +static void CB2_Sub_SaveClearScreen_Init(void); +static void SaveClearScreen_GpuInit(void); + +static const struct BgTemplate sBgTemplates[] = { + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0x000 + } +}; + +static const struct WindowTemplate sWindowTemplates[] = { + { + .bg = 0, + .tilemapLeft = 3, + .tilemapTop = 5, + .width = 6, + .height = 4, + .paletteNum = 0xF, + .baseBlock = 0x00A + }, { + .bg = 0, + .tilemapLeft = 3, + .tilemapTop = 15, + .width = 23, + .height = 4, + .paletteNum = 0xF, + .baseBlock = 0x022 + }, DUMMY_WIN_TEMPLATE +}; + +static const u8 sTextColor[] = { + TEXT_COLOR_WHITE, + TEXT_COLOR_DARK_GREY, + TEXT_COLOR_LIGHT_GREY +}; + +static void CB2_RunClearSaveDataScreen(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +static void VBlankCB_WaitYesNo(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void CB2_SaveClearScreen_Init(void) +{ + sClearSaveDataState = AllocZeroed(sizeof(struct ClearSaveDataStruct)); + sClearSaveDataState->unk1 = 0; + sClearSaveDataState->unk0 = 0; + sClearSaveDataState->unk2 = 0; + CB2_Sub_SaveClearScreen_Init(); + CreateTask(Task_DrawClearSaveDataScreen, 0); + SetMainCallback2(CB2_RunClearSaveDataScreen); +} + +static void Task_DrawClearSaveDataScreen(u8 taskId) +{ + switch (sClearSaveDataState->unk1) + { + case 0: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + break; + case 1: + if (gPaletteFade.active) + return; + SetVBlankCallback(NULL); + break; + case 2: + SaveClearScreen_GpuInit(); + break; + case 3: + TextWindow_SetStdFrame0_WithPal(0, 0x001, 0xF0); + TextWindow_SetStdFrame0_WithPal(1, 0x001, 0xF0); + break; + case 4: + DrawStdFrameWithCustomTileAndPalette(1, TRUE, 0x001, 0xF); + AddTextPrinterParameterized4(1, 2, 0, 3, 1, 1, sTextColor, 0, gUnknown_841B69E); + CopyWindowToVram(1, 2); + break; + case 5: + CreateYesNoMenu(&sWindowTemplates[0], 2, 0, 2, 0x001, 0xF, 1); + CopyBgTilemapBufferToVram(0); + break; + default: + BeginNormalPaletteFade(0xFFFF, 0, 16, 0, RGB_WHITEALPHA); + SetVBlankCallback(VBlankCB_WaitYesNo); + gTasks[taskId].func = Task_HandleYesNoMenu; + break; + } + sClearSaveDataState->unk1++; +} + +static void Task_HandleYesNoMenu(u8 taskId) +{ + // agbcc refuses to keep &sClearSaveDataState in a register + // unless explicitly told to do so as such: + struct ClearSaveDataStruct ** r5 = &sClearSaveDataState; + if ((*r5)->unk0 == 0) + { + switch (Menu_ProcessInputNoWrapClearOnChoose()) + { + case -1: + case 1: + PlaySE(SE_SELECT); + break; + case 0: + PlaySE(SE_SELECT); + FillWindowPixelBuffer(1, PIXEL_FILL(1)); + AddTextPrinterParameterized4(1, 2, 0, 3, 1, 1, sTextColor, 0, gUnknown_841B6B9); + CopyWindowToVram(1, 3); + ClearSaveData(); + break; + case -2: + default: + return; + } + (*r5)->unk0++; + } + else + { + Task_CleanUpAndSoftReset(taskId); + } +} + +static void Task_CleanUpAndSoftReset(u8 taskId) +{ + switch (sClearSaveDataState->unk2) + { + case 0: + BeginNormalPaletteFade(0xFFFF, 0, 0, 16, RGB_WHITEALPHA); + sClearSaveDataState->unk2++; + break; + case 1: + if (!gPaletteFade.active) + { + DestroyYesNoMenu(); + DestroyTask(taskId); + FreeAllWindowBuffers(); + FREE_AND_SET_NULL(sClearSaveDataState); + DoSoftReset(); + // noreturn + } + break; + } +} + +static void CB2_Sub_SaveClearScreen_Init(void) +{ + ResetSpriteData(); + ResetPaletteFade(); + ResetTasks(); +} + +static void SaveClearScreen_GpuInit(void) +{ + DmaClearLarge16(3, (void *)VRAM, VRAM_SIZE, 0x1000); + +#ifndef NONMATCHING + asm("":::"ip"); +#endif + + do + { + void * dest = (void *)OAM; + size_t size = OAM_SIZE; + DmaClear32(3, dest, size); + } while (0); + + do + { + void * dest = (void *)PLTT; + size_t size = PLTT_SIZE; + DmaClear16(3, dest, size); + } while (0); + + SetGpuReg(REG_OFFSET_DISPCNT, 0); + SetGpuReg(REG_OFFSET_BLDY, 0); + ResetBgsAndClearDma3BusyFlags(FALSE); + InitBgsFromTemplates(0, sBgTemplates, NELEMS(sBgTemplates)); + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgX(2, 0, 0); + ChangeBgY(2, 0, 0); + ChangeBgX(3, 0, 0); + ChangeBgY(3, 0, 0); + InitWindows(sWindowTemplates); + DeactivateAllTextPrinters(); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON); + ShowBg(0); +} diff --git a/sym_ewram.txt b/sym_ewram.txt index 2510d6649..4ec32870e 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -297,14 +297,10 @@ gUnknown_203998C: @ 203998C .include "src/credits.o" .align 2 .include "src/diploma.o" - .align 2 .include "src/save_failed_screen.o" - .align 2 -gUnknown_203AB54: @ 203AB54 - .space 0x4 - + .include "src/clear_save_data_screen.o" .align 2 .include "src/new_menu_helpers.o" .align 2 |