summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/braille_text.s8
-rw-r--r--asm/intro.s2
-rw-r--r--asm/new_game.s6
-rw-r--r--asm/overworld.s6
-rw-r--r--asm/reset_save_heap.s68
-rw-r--r--asm/title_screen.s2
-rw-r--r--include/new_game.h1
-rw-r--r--include/overworld.h2
-rw-r--r--include/reset_save_heap.h13
-rw-r--r--ld_script.txt2
-rw-r--r--src/quest_log.c2
-rw-r--r--src/reset_save_heap.c30
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);
+}