diff options
-rw-r--r-- | asm/braille_text.s | 8 | ||||
-rw-r--r-- | asm/intro.s | 2 | ||||
-rw-r--r-- | asm/new_game.s | 6 | ||||
-rw-r--r-- | asm/overworld.s | 6 | ||||
-rw-r--r-- | asm/reset_save_heap.s | 68 | ||||
-rw-r--r-- | asm/title_screen.s | 2 | ||||
-rw-r--r-- | include/new_game.h | 1 | ||||
-rw-r--r-- | include/overworld.h | 2 | ||||
-rw-r--r-- | include/reset_save_heap.h | 13 | ||||
-rw-r--r-- | ld_script.txt | 2 | ||||
-rw-r--r-- | src/quest_log.c | 2 | ||||
-rw-r--r-- | src/reset_save_heap.c | 30 |
12 files changed, 55 insertions, 87 deletions
diff --git a/asm/braille_text.s b/asm/braille_text.s deleted file mode 100644 index 2428f2984..000000000 --- a/asm/braille_text.s +++ /dev/null @@ -1,8 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/intro.s b/asm/intro.s index 4933785df..24b7bb9b6 100644 --- a/asm/intro.s +++ b/asm/intro.s @@ -305,7 +305,7 @@ c2_copyright_1: @ 80EC820 lsls r0, 24 cmp r0, 0 bne _080EC858 - bl sub_8054A28 + bl ResetMenuAndMonGlobals bl Save_ResetSaveCounters movs r0, 0 bl Save_LoadGameData diff --git a/asm/new_game.s b/asm/new_game.s index 234fefcd7..ad4983770 100644 --- a/asm/new_game.s +++ b/asm/new_game.s @@ -174,8 +174,8 @@ Sav2_ClearSetDefault: @ 8054A18 bx r0 thumb_func_end Sav2_ClearSetDefault - thumb_func_start sub_8054A28 -sub_8054A28: @ 8054A28 + thumb_func_start ResetMenuAndMonGlobals +ResetMenuAndMonGlobals: @ 8054A28 push {lr} ldr r1, _08054A5C @ =gUnknown_2031DB0 movs r0, 0 @@ -195,7 +195,7 @@ sub_8054A28: @ 8054A28 bx r0 .align 2, 0 _08054A5C: .4byte gUnknown_2031DB0 - thumb_func_end sub_8054A28 + thumb_func_end ResetMenuAndMonGlobals thumb_func_start sub_8054A60 sub_8054A60: @ 8054A60 diff --git a/asm/overworld.s b/asm/overworld.s index 6681b4a85..57ab4988c 100644 --- a/asm/overworld.s +++ b/asm/overworld.s @@ -3833,8 +3833,8 @@ _0805692C: _08056934: .4byte gMapHeader thumb_func_end sub_8056918 - thumb_func_start sub_8056938 -sub_8056938: @ 8056938 + thumb_func_start CB2_ContinueSavedGame +CB2_ContinueSavedGame: @ 8056938 push {lr} bl sub_80569BC bl StopMapMusic @@ -3880,7 +3880,7 @@ _080569AC: _080569B0: .4byte gFieldCallback _080569B4: .4byte sub_8056918 _080569B8: .4byte sub_8056534 - thumb_func_end sub_8056938 + thumb_func_end CB2_ContinueSavedGame thumb_func_start sub_80569BC sub_80569BC: @ 80569BC diff --git a/asm/reset_save_heap.s b/asm/reset_save_heap.s deleted file mode 100644 index fb46afb94..000000000 --- a/asm/reset_save_heap.s +++ /dev/null @@ -1,68 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8079B7C -sub_8079B7C: @ 8079B7C - push {r4,r5,lr} - ldr r5, _08079BEC @ =0x04000208 - ldrh r4, [r5] - movs r0, 0 - strh r0, [r5] - movs r0, 0x1 - bl RegisterRamReset - movs r0, 0 - movs r1, 0x80 - bl ClearGpuRegBits - strh r4, [r5] - ldr r1, _08079BF0 @ =gMain - ldr r0, _08079BF4 @ =0x00000439 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - bl SetSaveBlocksPointers - bl sub_8054A28 - bl Save_ResetSaveCounters - movs r0, 0 - bl Save_LoadGameData - ldr r0, _08079BF8 @ =gSaveFileStatus - ldrh r0, [r0] - cmp r0, 0 - beq _08079BC4 - cmp r0, 0x2 - bne _08079BC8 -_08079BC4: - bl Sav2_ClearSetDefault -_08079BC8: - ldr r0, _08079BFC @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x15] - lsls r0, 31 - lsrs r0, 31 - bl SetPokemonCryStereo - ldr r0, _08079C00 @ =gHeap - movs r1, 0xE0 - lsls r1, 9 - bl InitHeap - ldr r0, _08079C04 @ =sub_8056938 - bl SetMainCallback2 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08079BEC: .4byte 0x04000208 -_08079BF0: .4byte gMain -_08079BF4: .4byte 0x00000439 -_08079BF8: .4byte gSaveFileStatus -_08079BFC: .4byte gSaveBlock2Ptr -_08079C00: .4byte gHeap -_08079C04: .4byte sub_8056938 - thumb_func_end sub_8079B7C - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/title_screen.s b/asm/title_screen.s index a71921f43..1646e6ce4 100644 --- a/asm/title_screen.s +++ b/asm/title_screen.s @@ -1106,7 +1106,7 @@ _08079248: bne _080792A6 bl SeedRngAndSetTrainerId bl SetSaveBlocksPointers - bl sub_8054A28 + bl ResetMenuAndMonGlobals bl Save_ResetSaveCounters movs r0, 0 bl Save_LoadGameData diff --git a/include/new_game.h b/include/new_game.h index c495a9585..a45b090c8 100644 --- a/include/new_game.h +++ b/include/new_game.h @@ -14,5 +14,6 @@ void NewGameInitData(void); void ResetMiniGamesResults(void); void sub_808447C(void); void Sav2_ClearSetDefault(void); +void ResetMenuAndMonGlobals(void); #endif // GUARD_NEW_GAME_H diff --git a/include/overworld.h b/include/overworld.h index e08842143..c867549f1 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -81,7 +81,7 @@ void mapldr_default(void); u32 GetGameStat(u8); -void sub_8056938(void); +void CB2_ContinueSavedGame(void); void sub_8055D5C(struct WarpData *); void sub_80572A8(void); void sub_805726C(void); diff --git a/include/reset_save_heap.h b/include/reset_save_heap.h new file mode 100644 index 000000000..8cb038906 --- /dev/null +++ b/include/reset_save_heap.h @@ -0,0 +1,13 @@ +#ifndef GUARD_RESET_SAVE_HEAP_H +#define GUARD_RESET_SAVE_HEAP_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations + +void sub_8079B7C(void); + +#endif //GUARD_RESET_SAVE_HEAP_H + diff --git a/ld_script.txt b/ld_script.txt index 5d1a151f6..adbd9d0f5 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -117,7 +117,7 @@ SECTIONS { asm/reshow_battle_screen.o(.text); asm/battle_anim_status_effects.o(.text); asm/title_screen.o(.text); - asm/reset_save_heap.o(.text); + src/reset_save_heap.o(.text); asm/field_weather.o(.text); asm/field_weather_effects.o(.text); asm/field_fadetransition.o(.text); diff --git a/src/quest_log.c b/src/quest_log.c index 07d44388d..3fd9d53de 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -859,7 +859,7 @@ void sub_8110F14(u8 taskId) } else { - SetMainCallback2(sub_8056938); + SetMainCallback2(CB2_ContinueSavedGame); DestroyTask(taskId); } } diff --git a/src/reset_save_heap.c b/src/reset_save_heap.c new file mode 100644 index 000000000..4347eb756 --- /dev/null +++ b/src/reset_save_heap.c @@ -0,0 +1,30 @@ +#include "global.h" +#include "main.h" +#include "gpu_regs.h" +#include "m4a.h" +#include "load_save.h" +#include "save.h" +#include "new_game.h" +#include "overworld.h" +#include "malloc.h" + +void sub_8079B7C(void) +{ + u16 imeBackup; + + imeBackup = REG_IME; + REG_IME = 0; + RegisterRamReset(0x00000001); + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_FORCED_BLANK); + REG_IME = imeBackup; + gMain.inBattle = FALSE; + SetSaveBlocksPointers(); + ResetMenuAndMonGlobals(); + Save_ResetSaveCounters(); + Save_LoadGameData(0); + if (gSaveFileStatus == 0 || gSaveFileStatus == 2) + Sav2_ClearSetDefault(); + SetPokemonCryStereo(gSaveBlock2Ptr->optionsSound); + InitHeap(gHeap, HEAP_SIZE); + SetMainCallback2(CB2_ContinueSavedGame); +} |