summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCameron Hall <cameronghall@cox.net>2019-08-11 14:20:54 -0500
committerCameron Hall <cameronghall@cox.net>2019-08-11 14:20:54 -0500
commit68de07eabfe27625e4b5b43502da0efade337456 (patch)
tree0778a30ee71ca7afc89b2967560a28dbd2a42e91
parentb0870ee7fbf34fe4fa8bf6a622a3c46aa326f1fb (diff)
cleanup
-rwxr-xr-xasm/bonus_field_select.s2
-rwxr-xr-xasm/field_select.s2
-rwxr-xr-xasm/high_scores.s8
-rwxr-xr-xasm/intro.s2
-rwxr-xr-xasm/options.s25
-rwxr-xr-xasm/pokedex.s4
-rwxr-xr-xasm/rom_11B9C.s12
-rw-r--r--include/agb_sram.h4
-rw-r--r--include/functions.h10
-rwxr-xr-xinclude/main.h7
-rw-r--r--include/variables.h11
-rwxr-xr-xsrc/gbplayer.c2
-rw-r--r--src/options.c43
-rw-r--r--src/rom_528AC.c135
-rwxr-xr-xsrc/titlescreen.c4
-rwxr-xr-xsrc/util.c4
-rw-r--r--sym_ewram.txt1
17 files changed, 127 insertions, 149 deletions
diff --git a/asm/bonus_field_select.s b/asm/bonus_field_select.s
index 331e00b..75f11da 100755
--- a/asm/bonus_field_select.s
+++ b/asm/bonus_field_select.s
@@ -368,7 +368,7 @@ _080028A0:
lsls r2, r2, #1
adds r1, r5, r2
strb r0, [r1]
- bl sub_52B30
+ bl SaveFile_WriteToSram
movs r0, #2
strb r0, [r6]
_080028CC:
diff --git a/asm/field_select.s b/asm/field_select.s
index f789dbf..2ee614e 100755
--- a/asm/field_select.s
+++ b/asm/field_select.s
@@ -386,7 +386,7 @@ _08008DDA:
lsls r2, r2, #1
adds r1, r7, r2
strb r0, [r1]
- bl sub_52B30
+ bl SaveFile_WriteToSram
movs r0, #3
strh r0, [r5, #0xa]
_08008E00:
diff --git a/asm/high_scores.s b/asm/high_scores.s
index 2c93e68..2db7c6a 100755
--- a/asm/high_scores.s
+++ b/asm/high_scores.s
@@ -1320,7 +1320,7 @@ _0800D8CE:
mov r3, sb
cmp r3, #1
ble _0800D8AC
- bl sub_52B30
+ bl SaveFile_WriteToSram
ldr r1, _0800D8FC @ =gMain
movs r0, #3
strb r0, [r1, #3]
@@ -1772,7 +1772,7 @@ _0800DC88:
mov r2, sb
cmp r2, #1
ble _0800DC68
- bl sub_52B30
+ bl SaveFile_WriteToSram
bl sub_2B4
bl m4aMPlayAllStop
bl sub_D10
@@ -1813,7 +1813,7 @@ sub_DCF0: @ 0x0800DCF0
movs r0, #0x65
bl m4aSongNumStart
bl sub_F6E0
- bl sub_52B30
+ bl SaveFile_WriteToSram
bl sub_2B4
bl m4aMPlayAllStop
bl sub_D10
@@ -6025,7 +6025,7 @@ _0800FE8C:
bls _0800FE4C
bl sub_10528
bl sub_D74
- bl sub_490
+ bl ClearGraphicsMemory
add sp, #4
pop {r3}
mov r8, r3
diff --git a/asm/intro.s b/asm/intro.s
index 1953b80..401f925 100755
--- a/asm/intro.s
+++ b/asm/intro.s
@@ -264,7 +264,7 @@ sub_9498: @ 0x08009498
mov r6, sb
mov r5, r8
push {r5, r6, r7}
- bl sub_490
+ bl ClearGraphicsMemory
bl sub_518
bl sub_578
movs r2, #0x80
diff --git a/asm/options.s b/asm/options.s
index d2938b9..0ddc2e5 100755
--- a/asm/options.s
+++ b/asm/options.s
@@ -4,31 +4,6 @@
.text
- thumb_func_start sub_51C60
-sub_51C60: @ 0x08051C60
- push {lr}
- ldr r1, _08051C90 @ =gMain+0x74
- ldr r0, _08051C94 @ =gUnknown_02002920
- adds r0, #0x2a
- ldrb r0, [r0]
- adds r1, #0xcd
- strb r0, [r1]
- bl sub_52B30
- bl sub_2B4
- bl m4aMPlayAllStop
- bl sub_D10
- ldr r1, _08051C98 @ =gAutoDisplayTitlescreenMenu
- movs r0, #1
- strb r0, [r1]
- movs r0, #1
- bl SetMainGameState
- pop {r0}
- bx r0
- .align 2, 0
-_08051C90: .4byte gMain+0x74
-_08051C94: .4byte gUnknown_02002920
-_08051C98: .4byte gAutoDisplayTitlescreenMenu
-
thumb_func_start sub_51C9C
sub_51C9C: @ 0x08051C9C
push {r4, r5, r6, r7, lr}
diff --git a/asm/pokedex.s b/asm/pokedex.s
index 9980236..c0c5dea 100755
--- a/asm/pokedex.s
+++ b/asm/pokedex.s
@@ -1684,7 +1684,7 @@ _08004C2A:
adds r2, #1
cmp r2, #0xcc
ble _08004C2A
- bl sub_52B30
+ bl SaveFile_WriteToSram
bl sub_2B4
bl m4aMPlayAllStop
bl sub_D10
@@ -1760,7 +1760,7 @@ _08004CC2:
movs r0, #1
mov r1, ip
strh r0, [r1]
- bl sub_52B30
+ bl SaveFile_WriteToSram
bl sub_2B4
bl m4aMPlayAllStop
bl sub_D10
diff --git a/asm/rom_11B9C.s b/asm/rom_11B9C.s
index ca2c4c6..d5b362d 100755
--- a/asm/rom_11B9C.s
+++ b/asm/rom_11B9C.s
@@ -35770,7 +35770,7 @@ _08023B36:
movs r4, #0
ldrsh r0, [r0, r4]
movs r1, #1
- bl sub_52BB0
+ bl SaveFile_SetPokedexFlags
_08023B66:
ldr r5, _08023C94 @ =gUnknown_020314E0
ldr r0, [r5]
@@ -44250,7 +44250,7 @@ _08028040:
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #1
- bl sub_52BB0
+ bl SaveFile_SetPokedexFlags
_08028060:
ldr r0, _08028070 @ =gUnknown_020314E0
ldr r1, [r0]
@@ -60704,7 +60704,7 @@ _0803062E:
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #1
- bl sub_52BB0
+ bl SaveFile_SetPokedexFlags
_0803065E:
ldr r5, _08030784 @ =gUnknown_020314E0
ldr r0, [r5]
@@ -63561,7 +63561,7 @@ sub_31CF8: @ 0x08031CF8
movs r2, #0
ldrsh r0, [r0, r2]
movs r1, #4
- bl sub_52BB0
+ bl SaveFile_SetPokedexFlags
_08031D20:
ldr r2, _08031D88 @ =gUnknown_086A3700
ldr r1, _08031D84 @ =gUnknown_020314E0
@@ -63757,7 +63757,7 @@ _08031E7C:
beq _08031E94
movs r0, #0x2b
movs r1, #4
- bl sub_52BB0
+ bl SaveFile_SetPokedexFlags
_08031E94:
mov r2, r8
ldr r0, [r2]
@@ -63789,7 +63789,7 @@ _08031EB4:
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #4
- bl sub_52BB0
+ bl SaveFile_SetPokedexFlags
_08031ECE:
ldr r2, _08031F1C @ =gUnknown_086A3700
ldr r1, _08031F20 @ =gUnknown_020314E0
diff --git a/include/agb_sram.h b/include/agb_sram.h
index c609417..fe1ea85 100644
--- a/include/agb_sram.h
+++ b/include/agb_sram.h
@@ -1,10 +1,12 @@
#ifndef GUARD_AGB_SRAM_H
#define GUARD_AGB_SRAM_H
+#define SRAM 0x0E000000
+
void SetSramFastFunc(void);
void WriteSramFast(const u8 *src, u8 *dest, u32 size);
extern void (*ReadSramFast)(const u8 *src, u8 *dest, u32 size);
extern u32 (*VerifySramFast)(const u8 *src, u8 *dest, u32 size);
u32 WriteAndVerifySramFast(const u8 *src, u8 *dest, u32 size);
-#endif // GUARD_AGB_SRAM_H \ No newline at end of file
+#endif // GUARD_AGB_SRAM_H
diff --git a/include/functions.h b/include/functions.h
index 7d843c5..c84637b 100644
--- a/include/functions.h
+++ b/include/functions.h
@@ -73,7 +73,7 @@ void sub_24C(void);
void sub_2B4(void);
s16 LoadSpriteSets(const struct SpriteSet *const *spriteSets, u16 numSpriteSets, struct SpriteGroup *spriteGroups);
void sub_438(void);
-void sub_490(void);
+void ClearGraphicsMemory(void);
void sub_518(void);
void sub_578(void);
void sub_678(u8 *arg0, s16 arg1, s16 arg2);
@@ -776,10 +776,10 @@ extern void sub_1090C(void);
//extern ? sub_5291C();
//extern ? sub_52940();
extern void sub_52A18(void);
-//extern ? sub_52A68();
-extern void sub_52B30(void);
-//extern ? sub_52BB0();
-extern void sub_52C44(void);
+//extern ? LoadSaveDataFromSram();
+extern void SaveFile_WriteToSram(void);
+//extern ? SaveFile_SetPokedexFlags();
+extern void SaveFile_ReadSavedGamePresent(void);
extern void sub_52C64(void);
// asm/rom_9BC.s
diff --git a/include/main.h b/include/main.h
index 6415742..873c4bb 100755
--- a/include/main.h
+++ b/include/main.h
@@ -14,7 +14,7 @@ struct SaveData
/*0x144*/ //u8 filler144[0x2D8-0x144];
u16 unk144[0x65][2];
/*0x2D8*/ s8 signature[10];
- u16 unk2E2;
+ u16 checksum;
u32 unk2E4;
};
@@ -68,7 +68,8 @@ struct Main
extern struct Main gMain;
-extern struct SaveData gUnknown_0200B134;
+//extern struct SaveData gMain_saveData;
+#define gMain_saveData (*(struct SaveData *)(&gMain.saveData))
extern struct SpriteGroup gUnknown_0200B3B8[];
extern u32 IntrMain_Buffer[0x200];
extern u32 IntrMain[];
@@ -98,7 +99,7 @@ extern struct OamData gOamBuffer[128];
void sub_24C(void);
void sub_2B4(void);
-void sub_490(void);
+void ClearGraphicsMemory(void);
void sub_518(void);
void sub_578(void);
u32 Random(void);
diff --git a/include/variables.h b/include/variables.h
index a2112e1..0f9c113 100644
--- a/include/variables.h
+++ b/include/variables.h
@@ -3,6 +3,16 @@
// Place all external variable declarations in this file
+extern struct ToneData gUnknown_08532D6C[];
+extern struct ToneData gUnknown_08533360[];
+extern struct ToneData gUnknown_08533960[];
+extern struct ToneData gUnknown_08533F60[];
+extern u16 gUnknown_08527D22[];
+extern u16 gUnknown_086BB910[][4];
+extern struct {u8 unk0; s16 unk2;} gUnknown_086BB9B4[];
+extern u16 gUnknown_08527D66[];
+extern u8 gUnknown_02031AF0[][10];
+extern u8 gUnknown_08527ED6[][10];
extern void (*const gUnknown_08527F08[])(void);
extern u16 gUnknown_0201A520[];
extern u16 gUnknown_0201AD20[];
@@ -27,7 +37,6 @@ extern u8 gUnknown_02002808[];
//extern ? gUnknown_02002958;
//extern ? gIntrTable;
//extern ? gMain;
-//extern ? gMain+0x74;
//extern ? gUnknown_0200B3B8;
//extern ? gUnknown_0200FB98;
//extern ? gUnknown_0200FB9C;
diff --git a/src/gbplayer.c b/src/gbplayer.c
index e2c1cea..412be7d 100755
--- a/src/gbplayer.c
+++ b/src/gbplayer.c
@@ -291,7 +291,7 @@ void sub_1198(void)
void sub_11B0(int arg0)
{
- if (gUnknown_0200B134.unk141)
+ if (gMain_saveData.unk141)
{
gUnknown_02019BF8 = arg0;
gUnknown_02019BFC = 0;
diff --git a/src/options.c b/src/options.c
index ef31b58..e05d727 100644
--- a/src/options.c
+++ b/src/options.c
@@ -1,6 +1,7 @@
#include "global.h"
#include "m4a.h"
#include "main.h"
+#include "titlescreen.h"
struct OptionsData
{
@@ -85,9 +86,6 @@ void sub_51240(void)
gMain.subState++;
}
-extern u8 gUnknown_02031AF0[][10];
-extern u8 gUnknown_08527ED6[][10];
-
void sub_513B8(void)
{
int i;
@@ -99,7 +97,7 @@ void sub_513B8(void)
gUnknown_02002920.unk6 = 1;
gUnknown_02002920.unk8 = 0;
gUnknown_02002920.unkA = 0;
- gUnknown_02002920.unkC = gUnknown_0200B134.unk143;
+ gUnknown_02002920.unkC = gMain_saveData.unk143;
gUnknown_02002920.unkE = 0;
gUnknown_02002920.unk10 = 0;
gUnknown_02002920.unk12 = 0;
@@ -124,13 +122,13 @@ void sub_513B8(void)
sub_52528();
if (gGameBoyPlayerEnabled == 1)
{
- gUnknown_02002920.unk2A = gUnknown_0200B134.unk141;
- gUnknown_0200B134.unk141 = 1;
+ gUnknown_02002920.unk2A = gMain_saveData.unk141;
+ gMain_saveData.unk141 = 1;
}
else
{
gUnknown_02002920.unk2A = 0;
- gUnknown_0200B134.unk141 = 0;
+ gMain_saveData.unk141 = 0;
}
gUnknown_02002920.unk2E = 0;
gUnknown_02002920.unk2B = 0;
@@ -140,11 +138,6 @@ void sub_513B8(void)
gUnknown_02002920.unk30 = 0;
}
-extern u16 gUnknown_08527D22[];
-extern u16 gUnknown_086BB910[][4];
-extern struct {u8 unk0; s16 unk2;} gUnknown_086BB9B4[];
-extern u16 gUnknown_08527D66[];
-
void sub_514B8(void)
{
s16 r4;
@@ -238,12 +231,12 @@ void sub_514B8(void)
case 5:
m4aSongNumStart(0x65);
gUnknown_02002920.unkC = gUnknown_02002920.unkA - 2;
- gUnknown_0200B134.unk143 = gUnknown_02002920.unkC;
+ gMain_saveData.unk143 = gUnknown_02002920.unkC;
break;
case 6:
m4aSongNumStart(0x65);
gUnknown_02002920.unkC = gUnknown_02002920.unkA - 2;
- gUnknown_0200B134.unk143 = gUnknown_02002920.unkC;
+ gMain_saveData.unk143 = gUnknown_02002920.unkC;
gUnknown_02002920.unkA = 7;
gUnknown_02002920.unk0 = 3;
break;
@@ -448,8 +441,8 @@ void sub_514B8(void)
{
gUnknown_02031AF0[4][(gUnknown_02002920.unkA - 7) * 2 + 0] = gUnknown_02002920.unk24[0];
gUnknown_02031AF0[4][(gUnknown_02002920.unkA - 7) * 2 + 1] = gUnknown_02002920.unk24[1];
- gUnknown_0200B134.unk144[(gUnknown_02002920.unkA - 7)][0] = gUnknown_086BB910[gUnknown_02002920.unk24[0]][0];
- gUnknown_0200B134.unk144[(gUnknown_02002920.unkA - 7)][1] = gUnknown_086BB910[gUnknown_02002920.unk24[1]][0];
+ gMain_saveData.unk144[(gUnknown_02002920.unkA - 7)][0] = gUnknown_086BB910[gUnknown_02002920.unk24[0]][0];
+ gMain_saveData.unk144[(gUnknown_02002920.unkA - 7)][1] = gUnknown_086BB910[gUnknown_02002920.unk24[1]][0];
gUnknown_02002920.unk0 = 3;
gUnknown_02002920.unk1A[gUnknown_02002920.unkA - 7] = 0;
gUnknown_02002920.unk8 = 0;
@@ -499,3 +492,21 @@ void sub_51C3C(void)
gMain.subState++;
}
}
+
+void sub_51C60(void)
+{
+ gMain_saveData.unk141 = gUnknown_02002920.unk2A;
+ SaveFile_WriteToSram();
+ sub_2B4();
+ m4aMPlayAllStop();
+ sub_D10();
+ gAutoDisplayTitlescreenMenu = 1;
+ SetMainGameState(1);
+}
+
+/*
+void sub_51C9C(void)
+{
+
+}
+*/
diff --git a/src/rom_528AC.c b/src/rom_528AC.c
index f1c7d5f..6f33318 100644
--- a/src/rom_528AC.c
+++ b/src/rom_528AC.c
@@ -5,6 +5,9 @@
extern const u16 gUnknown_08527F18[];
+static void sub_52940(u16, s8, s8, u8, int);
+static u16 LoadSaveDataFromSram(void);
+
#ifdef NONMATCHING
// Like sub_C24, it matches except for that damn 'push {lr}/pop {lr}'
int sub_528AC(u16 a)
@@ -46,8 +49,6 @@ _080528DA:\n\
}
#endif
-void sub_52940(u16, s8, s8, u8, int);
-
void sub_528DC(u16 a, s8 b)
{
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x99);
@@ -59,12 +60,7 @@ void sub_5291C(u16 a, s8 b, s8 c, u8 d)
sub_52940(a, b, c, d, 0);
}
-extern struct ToneData gUnknown_08532D6C[];
-extern struct ToneData gUnknown_08533360[];
-extern struct ToneData gUnknown_08533960[];
-extern struct ToneData gUnknown_08533F60[];
-
-void sub_52940(u16 a, s8 b, s8 c, u8 d, int unused)
+static void sub_52940(u16 a, s8 b, s8 c, u8 d, int unused)
{
u16 r5 = a - 1;
u32 pitch = 0x3C00;
@@ -100,18 +96,15 @@ void sub_52940(u16 a, s8 b, s8 c, u8 d, int unused)
}
}
-extern u16 sub_52A68(void);
-extern void sub_525CC(s8);
-
void sub_52A18(void)
{
SetSramFastFunc();
gMain.unkC = 0;
- if (sub_52A68() == 0)
+ if (LoadSaveDataFromSram() == 0)
{
sub_52C64();
- sub_52B30();
- if (sub_52A68() == 0)
+ SaveFile_WriteToSram();
+ if (LoadSaveDataFromSram() == 0)
{
gMain.unkC = 1;
sub_52C64();
@@ -119,16 +112,15 @@ void sub_52A18(void)
}
else
{
- sub_525CC(gMain.saveData.unk143);
+ sub_525CC(gMain_saveData.unk143);
}
}
-extern struct Main2 gMain_;
extern u8 gSaveFileSignature[];
-u16 sub_52A68(void)
+static u16 LoadSaveDataFromSram(void)
{
- u16 r8 = 0;
+ u16 isOk = FALSE;
u16 fileNum;
u16 i;
u32 checksum;
@@ -136,15 +128,15 @@ u16 sub_52A68(void)
// Looks like there are two copies of the save data, one used as a backup?
for (fileNum = 0; fileNum < 2; fileNum++)
{
- u16 *saveData = (u16 *)&gMain.saveData;
- u32 size = 0x274;
+ u16 *saveData = (u16 *)&gMain_saveData;
+ size_t size = sizeof(gMain_saveData);
- ReadSramFast((u8 *)0x0E000004 + fileNum * 672, (u8 *)saveData, size);
+ ReadSramFast((void *)(SRAM + 0x4 + fileNum * 672), (u8 *)saveData, size);
// Verify signature
for (i = 0; i < 10; i++)
{
- if (gMain.saveData.signature[i] != gSaveFileSignature[i])
+ if (gMain_saveData.signature[i] != gSaveFileSignature[i])
break;
}
if (i != 10)
@@ -162,93 +154,82 @@ u16 sub_52A68(void)
checksum = (checksum & 0xFFFF) + (checksum >> 16);
if (checksum == 0xFFFF)
{
- r8 = 1;
+ isOk = TRUE;
break;
}
}
- return r8;
+ return isOk;
}
-// I really think gUnknown_0200B134_ is part of gMain, but the code doesn't
-// match if I do that.
-#ifdef NONMATCHING
-#define gUnknown_0200B134_ gMain.saveData
-#else
-extern struct SaveData gUnknown_0200B134_; // gMain.saveData
-asm(".set gUnknown_0200B134_, gMain+0x74");
-#endif
-
-void sub_52B30(void)
+void SaveFile_WriteToSram(void)
{
u32 checksum;
- u16 *saveData = (u16 *)&gUnknown_0200B134_;
- u32 size = 0x274;
+ u16 *saveData = (u16 *)&gMain_saveData;
+ size_t size = sizeof(gMain_saveData);
- gUnknown_0200B134_.unk2E4++;
- gUnknown_0200B134_.unk2E2 = 0;
+ gMain_saveData.unk2E4++;
+ gMain_saveData.checksum = 0;
checksum = 0;
while (size > 1)
{
- checksum += *saveData++;
- size -= 2;
+ checksum += *saveData++;
+ size -= 2;
}
if (size != 0) // never happens (size is even)
- checksum += *saveData & 0xFF00;
+ checksum += *saveData & 0xFF00;
checksum = (checksum & 0xFFFF) + (checksum >> 16);
- gUnknown_0200B134_.unk2E2 = ~((checksum >> 16) + checksum);
+ gMain_saveData.checksum = ~((checksum >> 16) + checksum);
- WriteAndVerifySramFast((u8 *)&gUnknown_0200B134_, (u8 *)0x0E000004, 0x274);
- WriteAndVerifySramFast((u8 *)&gUnknown_0200B134_, (u8 *)0x0E0002A4, 0x274);
+ WriteAndVerifySramFast((u8 *)&gMain_saveData, (void *)(SRAM + 0x4), sizeof(gMain_saveData));
+ WriteAndVerifySramFast((u8 *)&gMain_saveData, (void *)(SRAM + 0x2A4), sizeof(gMain_saveData));
}
-void sub_52BB0(s16 a, u8 b)
+void SaveFile_SetPokedexFlags(s16 a, u8 b)
{
- u16 *saveData = (u16 *)&gUnknown_0200B134_;
- u32 size = 0x274;
+ u16 *saveData = (u16 *)&gMain_saveData;
+ size_t size = sizeof(gMain_saveData);
u32 checksum;
- if (gUnknown_0200B134_.pokedexFlags[a] < b)
+ if (gMain_saveData.pokedexFlags[a] < b)
{
- u16 r1;
-
- gUnknown_0200B134_.unk2E4++;
- r1 = 0;
- gUnknown_0200B134_.pokedexFlags[a] = b;
- gUnknown_0200B134_.unk2E2 = r1;
-
- checksum = 0;
- while (size > 1)
- {
- checksum += *saveData++;
- size -= 2;
- }
- if (size != 0) // never happens (size is even)
- checksum += *saveData & 0xFF00;
- checksum = (checksum & 0xFFFF) + (checksum >> 16);
- gUnknown_0200B134_.unk2E2 = ~((checksum >> 16) + checksum);
-
- WriteAndVerifySramFast((u8 *)&gUnknown_0200B134_, (u8 *)0x0E000004, 0x274);
- WriteAndVerifySramFast((u8 *)&gUnknown_0200B134_, (u8 *)0x0E0002A4, 0x274);
+ gMain_saveData.unk2E4++;
+ gMain_saveData.pokedexFlags[a] = b;
+ gMain_saveData.checksum = 0;
+
+ checksum = 0;
+ while (size > 1)
+ {
+ checksum += *saveData++;
+ size -= 2;
+ }
+ if (size != 0) // never happens (size is even)
+ checksum += *saveData & 0xFF00;
+ checksum = (checksum & 0xFFFF) + (checksum >> 16);
+ gMain_saveData.checksum = ~((checksum >> 16) + checksum);
+
+ WriteAndVerifySramFast((u8 *)&gMain_saveData, (void *)(SRAM + 0x4), sizeof(gMain_saveData));
+ WriteAndVerifySramFast((u8 *)&gMain_saveData, (void *)(SRAM + 0x2A4), sizeof(gMain_saveData));
}
}
-void sub_52C44(void)
+void SaveFile_ReadSavedGamePresent(void)
{
- ReadSramFast((u8 *)0x0E000544, (u8 *)&gMain.hasSavedGame, sizeof(gMain.hasSavedGame));
+ ReadSramFast((void *)(SRAM + 0x544), (u8 *)&gMain.hasSavedGame, sizeof(gMain.hasSavedGame));
}
void sub_52C64(void)
{
- s16 r1;
+ s16 i;
+
+ for (i = 0; i < 10; i++)
+ gMain_saveData.signature[i] = gSaveFileSignature[i];
- for (r1 = 0; r1 < 10; r1++)
- gUnknown_0200B134_.signature[r1] = gSaveFileSignature[r1];
- gUnknown_0200B134_.unk2E4 = 0;
- gUnknown_0200B134_.unk141 = 0;
- gUnknown_0200B134_.unk142 = 0;
+ gMain_saveData.unk2E4 = 0;
+ gMain_saveData.unk141 = 0;
+ gMain_saveData.unk142 = 0;
sub_525CC(-1);
sub_F6E0();
sub_8ABC();
- gUnknown_0200B134_.unk143 = 0;
+ gMain_saveData.unk143 = 0;
}
diff --git a/src/titlescreen.c b/src/titlescreen.c
index 22bc699..8e19997 100755
--- a/src/titlescreen.c
+++ b/src/titlescreen.c
@@ -41,7 +41,7 @@ void LoadTitlescreenGraphics(void)
DmaCopy16(3, gTitlescreenBg_Pals, (void *)BG_PLTT, BG_PLTT_SIZE);
DmaCopy16(3, gTitlescreenBgTilemap, (void *)BG_SCREEN_ADDR(0), BG_SCREEN_SIZE);
- sub_52C44();
+ SaveFile_ReadSavedGamePresent();
if (gMain.hasSavedGame == TRUE)
{
DmaCopy16(3, gTitlescreenSprites_Pals, (void *)OBJ_PLTT, 0xA0);
@@ -862,7 +862,7 @@ void sub_11968(void)
void sub_11B74(void)
{
sub_52C64();
- sub_52B30();
+ SaveFile_WriteToSram();
gMain.hasSavedGame = FALSE;
WriteAndVerifySramFast((const u8 *)&gMain.hasSavedGame, (void *)0x0E000544, sizeof(gMain.hasSavedGame));
}
diff --git a/src/util.c b/src/util.c
index d0f3f42..eab2e9e 100755
--- a/src/util.c
+++ b/src/util.c
@@ -96,7 +96,7 @@ void sub_438(void)
{
gMain.unk16 |= DISPCNT_FORCED_BLANK;
REG_DISPCNT |= DISPCNT_FORCED_BLANK;
- sub_490();
+ ClearGraphicsMemory();
sub_518();
sub_578();
gMain.unkF = 0;
@@ -115,7 +115,7 @@ void sub_438(void)
gMain.unk2C = 0;
}
-void sub_490(void)
+void ClearGraphicsMemory(void)
{
DmaFill16(3, 0, (void *)VRAM, VRAM_SIZE);
DmaFill32(3, 0, (void *)OAM, OAM_SIZE);
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 22057c0..7221969 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -96,7 +96,6 @@ gMain: @ 0x200B0C0
.space 0x40
gUnknown_0200B100: @ 0x0200B100
.space 0x34
-gUnknown_0200B134: @ 0x0200B134
.space 0x5A
gUnknown_0200B18E: @ 0x0200B18E
.space 0x76