diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2020-01-17 10:49:57 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2020-01-17 10:49:57 -0500 |
commit | 29ef1708792b652ae4aa4d7f7db6091888fdb854 (patch) | |
tree | 7684be171c06a051d00ffc4b8d43c6eeed9bcac2 | |
parent | fc9a00848115282ceebd61bfa43e937c1f951bfa (diff) |
Finish save_failed_screen
-rw-r--r-- | asm/save_failed_screen.s | 312 | ||||
-rw-r--r-- | common_syms/save_failed_screen.txt | 1 | ||||
-rw-r--r-- | data/save_failed_screen.s | 3 | ||||
-rw-r--r-- | data/strings.s | 6 | ||||
-rw-r--r-- | include/help_system.h | 1 | ||||
-rw-r--r-- | include/save_failed_screen.h | 4 | ||||
-rw-r--r-- | include/strings.h | 6 | ||||
-rw-r--r-- | ld_script.txt | 3 | ||||
-rw-r--r-- | src/main.c | 4 | ||||
-rw-r--r-- | src/save_failed_screen.c | 182 | ||||
-rw-r--r-- | sym_common.txt | 6 | ||||
-rw-r--r-- | sym_ewram.txt | 8 |
12 files changed, 162 insertions, 374 deletions
diff --git a/asm/save_failed_screen.s b/asm/save_failed_screen.s deleted file mode 100644 index 4d95ba17d..000000000 --- a/asm/save_failed_screen.s +++ /dev/null @@ -1,312 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80F5350 -sub_80F5350: @ 80F5350 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, [sp, 0x20] - ldr r5, [sp, 0x24] - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r2, 24 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 16 - lsrs r7, r5, 16 - lsrs r0, r2, 24 - adds r2, r0, r4 - cmp r0, r2 - bge _080F53B6 - mov r12, r2 - ldr r1, _080F53C8 @ =gDecompressionBuffer + 0x3800 - mov r10, r1 -_080F5386: - mov r4, r9 - mov r2, r8 - adds r1, r4, r2 - adds r3, r0, 0x1 - cmp r4, r1 - bge _080F53AE - lsls r2, r0, 6 - mov r5, r10 -_080F5396: - lsls r0, r4, 1 - adds r0, r2, r0 - adds r0, r5 - strh r6, [r0] - adds r0, r6, r7 - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r1 - blt _080F5396 -_080F53AE: - lsls r0, r3, 16 - lsrs r0, 16 - cmp r0, r12 - blt _080F5386 -_080F53B6: - bl sub_80F5318 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F53C8: .4byte gDecompressionBuffer + 0x3800 - thumb_func_end sub_80F5350 - - thumb_func_start sub_80F53CC -sub_80F53CC: @ 80F53CC - push {lr} - sub sp, 0x8 - movs r0, 0xA - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r1, 0x1 - movs r2, 0x5 - movs r3, 0x1C - bl sub_80F5350 - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_80F53CC - - thumb_func_start sub_80F53E8 -sub_80F53E8: @ 80F53E8 - push {lr} - sub sp, 0x8 - movs r0, 0x14 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0x1E - bl sub_80F5350 - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_80F53E8 - - thumb_func_start sub_80F5404 -sub_80F5404: @ 80F5404 - push {r4,r5,lr} - sub sp, 0x10 - adds r5, r0, 0 - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0x3 - bl GenerateFontHalfRowLookupTable - add r1, sp, 0xC - ldr r2, _080F544C @ =0x00001111 - adds r0, r2, 0 - strh r0, [r1] - ldr r4, _080F5450 @ =gDecompressionBuffer + 0x020 - ldr r2, _080F5454 @ =0x01001180 - adds r0, r1, 0 - adds r1, r4, 0 - bl CpuSet - movs r0, 0x2 - str r0, [sp] - movs r0, 0x1C - str r0, [sp, 0x4] - movs r0, 0xA - str r0, [sp, 0x8] - movs r0, 0x2 - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0x2 - bl HelpSystemRenderText - bl sub_80F5334 - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F544C: .4byte 0x00001111 -_080F5450: .4byte gDecompressionBuffer + 0x020 -_080F5454: .4byte 0x01001180 - thumb_func_end sub_80F5404 - - thumb_func_start sub_80F5458 -sub_80F5458: @ 80F5458 - push {r4,r5,lr} - movs r5, 0 - ldr r0, _080F5490 @ =gDamagedSaveSectors - ldr r1, [r0] - adds r4, r0, 0 - cmp r1, 0 - beq _080F548C -_080F5466: - ldr r0, [r4] - bl sub_80F5540 - cmp r0, 0 - bne _080F5498 - ldr r0, _080F5494 @ =gUnknown_203AB4C - ldrb r0, [r0] - bl HandleSavingData - adds r5, 0x1 - ldr r0, [r4] - cmp r0, 0 - beq _080F548C - ldr r4, _080F5490 @ =gDamagedSaveSectors - cmp r5, 0x2 - ble _080F5466 - ldr r0, [r4] - cmp r0, 0 - bne _080F5498 -_080F548C: - movs r0, 0x1 - b _080F549A - .align 2, 0 -_080F5490: .4byte gDamagedSaveSectors -_080F5494: .4byte gUnknown_203AB4C -_080F5498: - movs r0, 0 -_080F549A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80F5458 - - thumb_func_start VerifySectorWipe -VerifySectorWipe: @ 80F54A0 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080F54C4 @ =gSaveDataBuffer - movs r3, 0x80 - lsls r3, 5 - movs r1, 0 - adds r2, r4, 0 - bl ReadFlash - movs r1, 0 - ldr r2, _080F54C8 @ =0x000003ff -_080F54B8: - ldr r0, [r4] - cmp r0, 0 - beq _080F54CC - movs r0, 0x1 - b _080F54DA - .align 2, 0 -_080F54C4: .4byte gSaveDataBuffer -_080F54C8: .4byte 0x000003ff -_080F54CC: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - adds r4, 0x4 - cmp r1, r2 - bls _080F54B8 - movs r0, 0 -_080F54DA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end VerifySectorWipe - - thumb_func_start WipeSector -WipeSector: @ 80F54E0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r0, 0 - movs r0, 0 - lsls r6, r7, 16 - ldr r1, _080F5538 @ =ProgramFlashByte - mov r9, r1 - ldr r1, _080F553C @ =0x00000fff - mov r8, r1 -_080F54F6: - movs r4, 0 - adds r5, r0, 0x1 -_080F54FA: - mov r0, r9 - ldr r3, [r0] - lsrs r0, r6, 16 - adds r1, r4, 0 - movs r2, 0 - bl _call_via_r3 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r8 - bls _080F54FA - adds r0, r7, 0 - bl VerifySectorWipe - lsls r0, 16 - lsrs r1, r0, 16 - lsls r0, r5, 16 - lsrs r0, 16 - cmp r1, 0 - beq _080F5528 - cmp r0, 0x81 - bls _080F54F6 -_080F5528: - adds r0, r1, 0 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080F5538: .4byte ProgramFlashByte -_080F553C: .4byte 0x00000fff - thumb_func_end WipeSector - - thumb_func_start sub_80F5540 -sub_80F5540: @ 80F5540 - push {r4-r6,lr} - adds r5, r0, 0 - movs r6, 0 -_080F5546: - movs r4, 0x1 - lsls r4, r6 - adds r0, r5, 0 - ands r0, r4 - cmp r0, 0 - beq _080F555E - adds r0, r6, 0 - bl WipeSector - cmp r0, 0 - bne _080F555E - bics r5, r4 -_080F555E: - adds r6, 0x1 - cmp r6, 0x1F - ble _080F5546 - cmp r5, 0 - beq _080F556C - movs r0, 0x1 - b _080F556E -_080F556C: - movs r0, 0 -_080F556E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80F5540 - - .align 2, 0 @ Don't pad with nop. diff --git a/common_syms/save_failed_screen.txt b/common_syms/save_failed_screen.txt new file mode 100644 index 000000000..caab09b26 --- /dev/null +++ b/common_syms/save_failed_screen.txt @@ -0,0 +1 @@ +sIsInSaveFailedScreen diff --git a/data/save_failed_screen.s b/data/save_failed_screen.s index e19763962..7b0827b6c 100644 --- a/data/save_failed_screen.s +++ b/data/save_failed_screen.s @@ -5,6 +5,3 @@ .include "constants/constants.inc" .section .rodata .align 2 - -gUnknown_841EE44:: @ 841EE44 - .incbin "graphics/interface/save_failed_screen.gbapal" diff --git a/data/strings.s b/data/strings.s index a9c76b88e..55c54f6c3 100644 --- a/data/strings.s +++ b/data/strings.s @@ -2465,14 +2465,14 @@ gUnknown_8418C62:: @ 0x8418C62 gUnknown_8418C6F:: @ 0x8418C6F .string "もう これいじょう たべない みたい‥$" -gUnknown_8418C83:: @ 8418C83 +gText_SaveFailedScreen_CheckingBackupMemory:: @ 8418C83 .string "Save failed.\n" .string "Checking the backup memory‥\n" .string "Please wait.\n" .string "“Time required:\n" .string "about 1 minute”$" -gUnknown_8418CD9:: @ 8418CD9 +gText_SaveFailedScreen_BackupMemoryDamaged:: @ 8418CD9 .string "The backup memory is damaged or\n" .string "the game's battery has run dry.\n" .string "The game can be played, but its\n" @@ -2493,7 +2493,7 @@ gUnknown_8418DC9:: @ 0x8418DC9 .string "{COLOR RED}“このまま ぼうけんをつづけることは できません\n" .string "タイトルに もどります”$" -gUnknown_8418E09:: @ 8418E09 +gText_SaveFailedScreen_SaveCompleted:: @ 8418E09 .string "Save completed.\n" .string "“Please press the A Button.”$" diff --git a/include/help_system.h b/include/help_system.h index 53dc45014..273b5e119 100644 --- a/include/help_system.h +++ b/include/help_system.h @@ -91,5 +91,6 @@ void PlaceListMenuCursor(void); bool8 MoveCursor(u8 by, u8 dirn); void HelpSystem_BackupSomeVariable(void); void HelpSystem_RestoreSomeVariable(void); +void HelpSystemRenderText(u8 font, u8 * dest, const u8 * src, u8 x, u8 y, u8 width, u8 height); #endif //GUARD_HELP_SYSTEM_H diff --git a/include/save_failed_screen.h b/include/save_failed_screen.h index 5950430d2..7056fc6c6 100644 --- a/include/save_failed_screen.h +++ b/include/save_failed_screen.h @@ -2,7 +2,7 @@ #define GUARD_SAVE_FAILED_SCREEN_H extern void DoSaveFailedScreen(u8 saveType); // save_failed_screen -void sub_80F50F4(void); -bool32 sub_80F5118(void); +void SetNotInSaveFailedScreen(void); +bool32 RunSaveFailedScreen(void); #endif //GUARD_SAVE_FAILED_SCREEN_H diff --git a/include/strings.h b/include/strings.h index c463b45b7..eace8d67e 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1034,8 +1034,8 @@ extern const u8 gText_RegionMap_AreaDesc_PatternBush[]; extern const u8 gText_RegionMap_AreaDesc_DottedHole[]; // save_failed_screen -extern const u8 gUnknown_8418C83[]; -extern const u8 gUnknown_8418CD9[]; -extern const u8 gUnknown_8418E09[]; +extern const u8 gText_SaveFailedScreen_CheckingBackupMemory[]; +extern const u8 gText_SaveFailedScreen_BackupMemoryDamaged[]; +extern const u8 gText_SaveFailedScreen_SaveCompleted[]; #endif //GUARD_STRINGS_H diff --git a/ld_script.txt b/ld_script.txt index 8b3da8303..f07e480a2 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -218,7 +218,6 @@ SECTIONS { src/credits.o(.text); src/diploma.o(.text); src/save_failed_screen.o(.text); - asm/save_failed_screen.o(.text); asm/clear_save_data_screen.o(.text); src/evolution_graphics.o(.text); src/fldeff_teleport.o(.text); @@ -506,7 +505,7 @@ SECTIONS { src/credits.o(.rodata); src/diploma.o(.rodata); data/strings.o(.rodata); - data/save_failed_screen.o(.rodata); + src/save_failed_screen.o(.rodata); data/clear_save_data_screen.o(.rodata); src/evolution_graphics.o(.rodata); src/new_menu_helpers.o(.rodata); diff --git a/src/main.c b/src/main.c index 336584ab3..b88326cda 100644 --- a/src/main.c +++ b/src/main.c @@ -115,7 +115,7 @@ void AgbMain() gSoftResetDisabled = FALSE; gHelpSystemEnabled = FALSE; - sub_80F50F4(); + SetNotInSaveFailedScreen(); AGBPrintInit(); @@ -186,7 +186,7 @@ static void InitMainCallbacks(void) static void CallCallbacks(void) { - if (!sub_80F5118() && !RunHelpSystemCallback()) + if (!RunSaveFailedScreen() && !RunHelpSystemCallback()) { if (gMain.callback1) gMain.callback1(); diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c index dda0515a0..4065bccef 100644 --- a/src/save_failed_screen.c +++ b/src/save_failed_screen.c @@ -1,65 +1,70 @@ #include "global.h" #include "decompress.h" #include "dma3.h" +#include "gba/flash_internal.h" #include "gpu_regs.h" #include "help_system.h" #include "m4a.h" #include "save.h" #include "save_failed_screen.h" #include "strings.h" +#include "text.h" -bool32 gUnknown_3005430; -EWRAM_DATA u16 gUnknown_203AB4C = SAVE_NORMAL; -EWRAM_DATA u8 gUnknown_203AB50 = 0; +bool32 sIsInSaveFailedScreen; -void sub_80F52EC(void); -void sub_80F53CC(void); -void sub_80F53E8(void); -void sub_80F5404(const u8 *a0); -bool32 sub_80F5458(void); +static EWRAM_DATA u16 sSaveType = SAVE_NORMAL; +static EWRAM_DATA u16 unused_203AB4E = 0; +static EWRAM_DATA u8 sSaveFailedScreenState = 0; -extern const u16 gUnknown_841EE44[]; +static void BlankPalettes(void); +static void UpdateMapBufferWithText(void); +static void ClearMapBuffer(void); +static void PrintTextOnSaveFailedScreen(const u8 *a0); +static bool32 TryWipeDamagedSectors(void); +static bool32 WipeDamagedSectors(u32 damagedSectors); -void sub_80F50F4(void) +static const u16 sSaveFailedScreenPals[] = INCBIN_U16("graphics/interface/save_failed_screen.gbapal"); + +void SetNotInSaveFailedScreen(void) { - gUnknown_3005430 = FALSE; + sIsInSaveFailedScreen = FALSE; } void DoSaveFailedScreen(u8 saveType) { - gUnknown_203AB4C = saveType; - gUnknown_3005430 = TRUE; + sSaveType = saveType; + sIsInSaveFailedScreen = TRUE; } -bool32 sub_80F5118(void) +bool32 RunSaveFailedScreen(void) { - switch (gUnknown_203AB50) + switch (sSaveFailedScreenState) { case 0: - if (!gUnknown_3005430) + if (!sIsInSaveFailedScreen) return FALSE; m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 128); SaveCallbacks(); - gUnknown_203AB50 = 1; + sSaveFailedScreenState = 1; break; case 1: SaveMapTiles(); SaveMapGPURegs(); SaveMapTextColors(); - sub_80F52EC(); + BlankPalettes(); SetGpuReg(REG_OFFSET_DISPCNT, 0); - gUnknown_203AB50 = 2; + sSaveFailedScreenState = 2; break; case 2: RequestDma3Fill(0, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, 0); - RequestDma3Copy(gUnknown_841EE44, (void *)PLTT, 0x20, 0); - gUnknown_203AB50 = 3; + RequestDma3Copy(sSaveFailedScreenPals, (void *)PLTT, 0x20, 0); + sSaveFailedScreenState = 3; break; case 3: - sub_80F53E8(); - sub_80F5404(gUnknown_8418C83); - sub_80F53CC(); - gUnknown_203AB50 = 4; + ClearMapBuffer(); + PrintTextOnSaveFailedScreen(gText_SaveFailedScreen_CheckingBackupMemory); + UpdateMapBufferWithText(); + sSaveFailedScreenState = 4; break; case 4: SetGpuReg(REG_OFFSET_BLDCNT, 0); @@ -67,44 +72,44 @@ bool32 sub_80F5118(void) SetGpuReg(REG_OFFSET_BG0VOFS, 0); SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(3) | BGCNT_SCREENBASE(31)); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_BG0_ON); - gUnknown_203AB50 = 5; + sSaveFailedScreenState = 5; break; case 5: - if (sub_80F5458() == TRUE) + if (TryWipeDamagedSectors() == TRUE) { gSaveSucceeded = SAVE_STATUS_OK; - sub_80F5404(gUnknown_8418E09); + PrintTextOnSaveFailedScreen(gText_SaveFailedScreen_SaveCompleted); } else { gSaveSucceeded = SAVE_STATUS_ERROR; - sub_80F5404(gUnknown_8418CD9); + PrintTextOnSaveFailedScreen(gText_SaveFailedScreen_BackupMemoryDamaged); } - gUnknown_203AB50 = 6; + sSaveFailedScreenState = 6; break; case 6: if (JOY_NEW(A_BUTTON)) - gUnknown_203AB50 = 7; + sSaveFailedScreenState = 7; break; case 7: SetGpuReg(REG_OFFSET_DISPCNT, 0); RestoreMapTiles(); - sub_80F52EC(); - gUnknown_203AB50 = 8; + BlankPalettes(); + sSaveFailedScreenState = 8; break; case 8: m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 256); RestoreMapTextColors(); RestoreGPURegs(); RestoreCallbacks(); - gUnknown_3005430 = FALSE; - gUnknown_203AB50 = 0; + sIsInSaveFailedScreen = FALSE; + sSaveFailedScreenState = 0; break; } return TRUE; } -void sub_80F52EC(void) +static void BlankPalettes(void) { int i; for (i = 0; i < BG_PLTT_SIZE; i += sizeof(u16)) @@ -114,12 +119,113 @@ void sub_80F52EC(void) } } -void sub_80F5318(void) +static void RequestDmaCopyFromScreenBuffer(void) { RequestDma3Copy(gDecompressionBuffer + 0x3800, (void *)BG_SCREEN_ADDR(31), 0x500, 0); } -void sub_80F5334(void) +static void RequestDmaCopyFromCharBuffer(void) { RequestDma3Copy(gDecompressionBuffer + 0x020, (void *)BG_CHAR_ADDR(3) + 0x20, 0x2300, 0); } + +static void FillBgMapBufferRect(u16 baseBlock, u8 left, u8 top, u8 width, u8 height, u16 blockOffset) +{ + u16 i, j; + + for (i = top; i < top + height; i++) + { + for (j = left; j < left + width; j++) + { + *((u16 *)(gDecompressionBuffer + 0x3800 + 64 * i + 2 * j)) = baseBlock; + baseBlock += blockOffset; + } + } + RequestDmaCopyFromScreenBuffer(); +} + +static void UpdateMapBufferWithText(void) +{ + FillBgMapBufferRect(0x001, 1, 5, 28, 10, 0x001); +} + +static void ClearMapBuffer(void) +{ + FillBgMapBufferRect(0x000, 0, 0, 30, 20, 0x000); +} + +static void PrintTextOnSaveFailedScreen(const u8 *str) +{ + GenerateFontHalfRowLookupTable(TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GREY); + CpuFill16(PIXEL_FILL(1) | (PIXEL_FILL(1) << 8), gDecompressionBuffer + 0x20, 0x2300); + HelpSystemRenderText(2, gDecompressionBuffer + 0x20, str, 2, 2, 28, 10); + RequestDmaCopyFromCharBuffer(); +} + +static bool32 TryWipeDamagedSectors(void) +{ + int i = 0; + for (i = 0; gDamagedSaveSectors != 0 && i < 3; i++) + { + if (WipeDamagedSectors(gDamagedSaveSectors)) + return FALSE; + HandleSavingData(sSaveType); + } + if (gDamagedSaveSectors != 0) + return FALSE; + return TRUE; +} + +static bool16 VerifySectorWipe(u32 sector) +{ + u16 sector0 = sector; + u16 i; + u32 *saveDataBuffer = (void *)&gSaveDataBuffer; + ReadFlash(sector0, 0, saveDataBuffer, 0x1000); + for (i = 0; i < 0x1000 / 4; i++, saveDataBuffer++) + { + if (*saveDataBuffer != 0) + return TRUE; + } + return FALSE; +} + +static bool32 WipeSector(u32 sector) +{ + bool32 result; + u16 i, j; + + i = 0; + while (i < 130) + { + for (j = 0; j < 0x1000; j++) + { + ProgramFlashByte(sector, j, 0); + } + result = VerifySectorWipe(sector); + i++; + if (!result) + break; + } + + return result; +} + +static bool32 WipeDamagedSectors(u32 damagedSectors) +{ + int i; + for (i = 0; i < 32; i++) + { + if (damagedSectors & (1 << i)) + { + if (!WipeSector(i)) + { + damagedSectors &= ~(1 << i); + } + } + } + if (damagedSectors == 0) + return FALSE; + else + return TRUE; +} diff --git a/sym_common.txt b/sym_common.txt index 9f39f9f2b..8367a6816 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -71,10 +71,8 @@ gUnknown_3005078: @ 3005078 .include "save.o" .align 2 .include "battle_anim_special.o" - -gUnknown_3005430: @ 3005430 - .space 0x10 - + .align 2 + .include "save_failed_screen.o" .align 4 .include "link_rfu_2.o" .align 4 diff --git a/sym_ewram.txt b/sym_ewram.txt index 921ae98d0..74d051544 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -306,15 +306,13 @@ gUnknown_203998C: @ 203998C .include "src/diploma.o" .align 2 -gUnknown_203AB4C: @ 203AB4C - .space 0x4 - -gUnknown_203AB50: @ 203AB50 - .space 0x4 + .include "src/save_failed_screen.o" + .align 2 gUnknown_203AB54: @ 203AB54 .space 0x4 + .align 2 .include "src/new_menu_helpers.o" .align 2 .include "src/box_party_pokemon_dropdown.o" |