summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCameron Hall <cameronghall@cox.net>2019-08-12 18:47:16 -0500
committerCameron Hall <cameronghall@cox.net>2019-08-12 18:47:16 -0500
commit0648ededb9161e9f5fc4e0a38ae91c7bf14e6c0b (patch)
treec1ca88b5138d19eb5106f171c8ae77d4516e8b22
parent93f755636be0dcf395ad86bcedc30cefb1fb369e (diff)
more labeling
-rwxr-xr-xasm/high_scores.s26
-rwxr-xr-xasm/options.s30
-rw-r--r--include/functions.h2
-rwxr-xr-xinclude/global.h16
-rwxr-xr-xinclude/main.h15
-rw-r--r--src/field_select.c32
-rwxr-xr-xsrc/main.c14
-rw-r--r--src/options.c366
-rw-r--r--src/rom_1068C.c6
-rw-r--r--src/rom_528AC.c2
-rwxr-xr-xsrc/util.c4
-rw-r--r--sym_ewram.txt2
12 files changed, 260 insertions, 255 deletions
diff --git a/asm/high_scores.s b/asm/high_scores.s
index b82e058..ce16d73 100755
--- a/asm/high_scores.s
+++ b/asm/high_scores.s
@@ -5917,7 +5917,7 @@ _0800FDAA:
_0800FDB4:
adds r0, r7, #0
bl sub_1001C
- bl sub_D74
+ bl MainLoopIter
cmp r7, #0x1f
bne _0800FDE0
ldr r0, _0800FDCC @ =gUnknown_0201A920
@@ -5995,7 +5995,7 @@ _0800FE4C:
_0800FE54:
adds r0, r7, #0
bl sub_1001C
- bl sub_D74
+ bl MainLoopIter
cmp r7, #0x1f
bne _0800FE84
ldr r0, _0800FE80 @ =gUnknown_0201A920
@@ -6024,7 +6024,7 @@ _0800FE8C:
cmp r7, #0x1f
bls _0800FE4C
bl sub_10528
- bl sub_D74
+ bl MainLoopIter
bl ClearGraphicsMemory
add sp, #4
pop {r3}
@@ -6092,7 +6092,7 @@ _0800FF18:
_0800FF22:
adds r0, r7, #0
bl sub_1001C
- bl sub_D74
+ bl MainLoopIter
cmp r7, #0x1f
bne _0800FF50
ldr r0, _0800FF38 @ =gUnknown_0201A920
@@ -6170,7 +6170,7 @@ _0800FFBA:
_0800FFC2:
adds r0, r7, #0
bl sub_1001C
- bl sub_D74
+ bl MainLoopIter
cmp r7, #0x1f
bne _0800FFF0
ldr r0, _0800FFEC @ =gUnknown_0201A920
@@ -6197,7 +6197,7 @@ _0800FFF8:
lsrs r7, r0, #0x10
cmp r7, #0x1f
bls _0800FFBA
- bl sub_D74
+ bl MainLoopIter
add sp, #4
pop {r3}
mov r8, r3
@@ -6770,12 +6770,12 @@ sub_10424: @ 0x08010424
movs r5, #0
strh r0, [r1, #0x16]
strh r3, [r4]
- bl sub_D74
+ bl MainLoopIter
movs r0, #8
strh r0, [r4]
- bl sub_D74
+ bl MainLoopIter
strh r5, [r4]
- bl sub_D74
+ bl MainLoopIter
strh r5, [r6]
pop {r4, r5, r6}
pop {r0}
@@ -6805,13 +6805,13 @@ sub_10480: @ 0x08010480
orrs r0, r1
strh r0, [r2]
strh r4, [r5]
- bl sub_D74
+ bl MainLoopIter
movs r0, #8
strh r0, [r5]
- bl sub_D74
+ bl MainLoopIter
movs r0, #0x10
strh r0, [r5]
- bl sub_D74
+ bl MainLoopIter
mov r0, sp
strh r4, [r0]
ldr r1, _08010500 @ =0x040000D4
@@ -6838,7 +6838,7 @@ sub_10480: @ 0x08010480
strh r4, [r0]
adds r0, #2
strh r4, [r0]
- bl sub_D74
+ bl MainLoopIter
add sp, #4
pop {r4, r5}
pop {r0}
diff --git a/asm/options.s b/asm/options.s
index 0ddc2e5..c31ae6d 100755
--- a/asm/options.s
+++ b/asm/options.s
@@ -14,7 +14,7 @@ sub_51C9C: @ 0x08051C9C
sub sp, #0x8c
ldr r0, _08051D38 @ =gUnknown_0200B3B8
mov r8, r0
- ldr r2, _08051D3C @ =gUnknown_02002920
+ ldr r2, _08051D3C @ =gOptionsData
movs r3, #4
ldrsh r1, [r2, r3]
movs r0, #0xe6
@@ -78,7 +78,7 @@ _08051D1E:
ldrb r0, [r0]
cmp r0, #1
bne _08051D50
- ldr r6, _08051D3C @ =gUnknown_02002920
+ ldr r6, _08051D3C @ =gOptionsData
movs r7, #6
ldrsh r0, [r6, r7]
cmp r0, #1
@@ -88,7 +88,7 @@ _08051D1E:
b _08051D52
.align 2, 0
_08051D38: .4byte gUnknown_0200B3B8
-_08051D3C: .4byte gUnknown_02002920
+_08051D3C: .4byte gOptionsData
_08051D40: .4byte gUnknown_0200B978
_08051D44: .4byte gUnknown_0200BAE8
_08051D48: .4byte gUnknown_0200293A
@@ -178,7 +178,7 @@ _08051DCE:
strh r0, [r6]
ldr r7, _08051F6C @ =gUnknown_0200C948
strh r0, [r7]
- ldr r5, _08051F70 @ =gUnknown_02002920
+ ldr r5, _08051F70 @ =gOptionsData
adds r0, r5, #0
adds r0, #0x30
ldrb r0, [r0]
@@ -357,7 +357,7 @@ _08051EE2:
movs r0, #0x48
ldr r6, [sp, #0x60]
strh r0, [r6, #2]
- ldr r7, _08051F70 @ =gUnknown_02002920
+ ldr r7, _08051F70 @ =gOptionsData
movs r1, #0xa
ldrsh r0, [r7, r1]
cmp r0, #0
@@ -369,7 +369,7 @@ _08051EE2:
_08051F64: .4byte gUnknown_0200C890
_08051F68: .4byte gUnknown_0200B978
_08051F6C: .4byte gUnknown_0200C948
-_08051F70: .4byte gUnknown_02002920
+_08051F70: .4byte gOptionsData
_08051F74: .4byte gUnknown_0200CA00
_08051F78: .4byte gUnknown_086BB9EC
_08051F7C: .4byte gUnknown_0200B3B8
@@ -429,7 +429,7 @@ _08051FB2:
movs r0, #0x48
ldr r2, _080520DC @ =gUnknown_0200B978
strh r0, [r2, #2]
- ldr r3, _080520E0 @ =gUnknown_02002920
+ ldr r3, _080520E0 @ =gOptionsData
movs r4, #0xc
ldrsh r0, [r3, r4]
lsls r0, r0, #1
@@ -462,7 +462,7 @@ _08051FB2:
strb r0, [r1]
movs r7, #0
mov ip, r7
- ldr r0, _080520E0 @ =gUnknown_02002920
+ ldr r0, _080520E0 @ =gOptionsData
str r0, [sp, #0x68]
movs r1, #0x54
str r1, [sp, #0x80]
@@ -545,7 +545,7 @@ _080520D0: .4byte gOamBuffer
_080520D4: .4byte 0xFFFFFE00
_080520D8: .4byte 0x000001FF
_080520DC: .4byte gUnknown_0200B978
-_080520E0: .4byte gUnknown_02002920
+_080520E0: .4byte gOptionsData
_080520E4: .4byte gUnknown_086BB9A8
_080520E8:
mov r2, r8
@@ -825,7 +825,7 @@ _08052304:
movs r0, #0xaa
ldr r2, [sp, #0x64]
strh r0, [r2, #2]
- ldr r0, _080524AC @ =gUnknown_02002920
+ ldr r0, _080524AC @ =gOptionsData
adds r0, #0x2a
ldrb r0, [r0]
lsls r1, r0, #1
@@ -864,7 +864,7 @@ _08052304:
ldr r3, _080524B0 @ =gUnknown_0200C948
strh r0, [r3, #2]
strh r5, [r3, #4]
- ldr r6, _080524AC @ =gUnknown_02002920
+ ldr r6, _080524AC @ =gOptionsData
adds r6, #0x2d
mov sl, r6
adds r5, r3, #0
@@ -941,7 +941,7 @@ _0805236C:
lsls r2, r2, #3
ldr r3, _08052494 @ =gOamBuffer
adds r2, r2, r3
- ldr r5, _080524AC @ =gUnknown_02002920
+ ldr r5, _080524AC @ =gOptionsData
adds r5, #0x2f
movs r1, #0
ldrsb r1, [r5, r1]
@@ -1030,7 +1030,7 @@ _0805249C: .4byte 0x000003FF
_080524A0: .4byte 0xFFFFFC00
_080524A4: .4byte 0x000001FF
_080524A8: .4byte 0xFFFFFE00
-_080524AC: .4byte gUnknown_02002920
+_080524AC: .4byte gOptionsData
_080524B0: .4byte gUnknown_0200C948
_080524B4: .4byte gUnknown_0200CA00
_080524B8: .4byte gMain
@@ -1038,7 +1038,7 @@ _080524B8: .4byte gMain
thumb_func_start sub_524BC
sub_524BC: @ 0x080524BC
push {r4, r5, lr}
- ldr r1, _0805251C @ =gUnknown_02002920
+ ldr r1, _0805251C @ =gOptionsData
movs r2, #0x28
ldrsh r0, [r1, r2]
adds r2, r1, #0
@@ -1088,7 +1088,7 @@ _08052514:
pop {r0}
bx r0
.align 2, 0
-_0805251C: .4byte gUnknown_02002920
+_0805251C: .4byte gOptionsData
_08052520: .4byte gMain
_08052524: .4byte 0x000003F7
diff --git a/include/functions.h b/include/functions.h
index fb19977..9179ff2 100644
--- a/include/functions.h
+++ b/include/functions.h
@@ -31,7 +31,7 @@ s16 sub_C24(u16 arg0);
s16 sub_C74(u16 arg0);
void sub_CBC(void);
void sub_D10(void);
-void sub_D74(void);
+void MainLoopIter(void);
void DefaultMainCallback(void);
// src/rom_3219C.c
diff --git a/include/global.h b/include/global.h
index 2a9b072..a42f1aa 100755
--- a/include/global.h
+++ b/include/global.h
@@ -63,6 +63,22 @@
#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) >= (b) ? (a) : (b))
+enum
+{
+ STATE_INTRO,
+ STATE_TITLE,
+ STATE_GAME_MAIN,
+ STATE_GAME_IDLE,
+ STATE_OPTIONS,
+ STATE_POKEDEX,
+ STATE_UNKNOWN6,
+ STATE_EREADER,
+ STATE_SCORES_MAIN,
+ STATE_SCORES_IDLE,
+ STATE_FIELD_SELECT,
+ STATE_BONUS_FIELD_SELECT,
+};
+
struct PinballGame
{
/*0x000*/ u8 filler0[0x35];
diff --git a/include/main.h b/include/main.h
index 40446ee..f37dd24 100755
--- a/include/main.h
+++ b/include/main.h
@@ -9,10 +9,9 @@ struct SaveData
/*0x74*/ u8 pokedexFlags[204];
/*0x140*/ u8 filler140[1];
/*0x141*/ u8 unk141;
- /*0x142*/ u8 unk142;
+ /*0x142*/ u8 ballSpeed;
/*0x143*/ u8 unk143;
- /*0x144*/ //u8 filler144[0x2D8-0x144];
- u16 unk144[0x65][2];
+ /*0x144*/ u16 unk144[0x65][2];
/*0x2D8*/ s8 signature[10];
u16 checksum;
u32 unk2E4;
@@ -59,18 +58,20 @@ struct Main
/*0x40*/ int hasSavedGame;
/*0x44*/ u8 filler44[0x4];
/*0x48*/ int rngValue;
- /*0x4C*/ int unk4C;
+ /*0x4C*/ int frameCount;
/*0x50*/ int unk50;
/*0x54*/ u8 filler54[0x20];
+
+ // This field must be accessed using the following macro to produce matching code.
+#define gMain_saveData (*(struct SaveData *)(&gMain.saveData))
/*0x74*/ struct SaveData saveData;
+
/*0x2E8*/ struct MainUnk2E8 unk2E8[4];
/*0x2F8*/ struct SpriteGroup spriteGroups[NUM_SPRITE_GROUPS];
};
extern struct Main gMain;
-//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[];
@@ -110,7 +111,7 @@ void SerialIntr(void);
void Timer3Intr(void);
void sub_CBC(void);
void sub_D10(void);
-void sub_D74(void);
+void MainLoopIter(void);
void DefaultMainCallback(void);
diff --git a/src/field_select.c b/src/field_select.c
index 3aa304b..ea6acba 100644
--- a/src/field_select.c
+++ b/src/field_select.c
@@ -25,7 +25,7 @@ struct FieldSelectData
u8 ballSpeed;
s16 unk12;
s8 unk14;
- u16 unk16;
+ u16 nextMainState;
};
extern struct FieldSelectData gFieldSelectData;
@@ -52,13 +52,13 @@ void LoadFieldSelectGraphics(void)
gMain.unk16 = REG_DISPCNT;
- DmaCopy16(3, gFieldSelectBGPals, (void *)PLTT, 0x200);
- DmaCopy16(3, gFieldSelectWindow_Gfx, (void *)(VRAM + 0x4000), 0x1400);
- DmaCopy16(3, gFieldSelectMiniFields_Gfx, (void *)(VRAM + 0x8000), 0x3800);
- DmaCopy16(3, gUnknown_080A2400, (void *)(VRAM), 0x800);
- DmaCopy16(3, gFieldSelectFrameShadowTilemap, (void *)(VRAM + 0x800), 0x800);
- DmaCopy16(3, gFieldSelectWindowTilemap, (void *)(VRAM + 0x1000), 0x800);
- DmaCopy16(3, gFieldSelectSpritePals, (void *)(PLTT + 0x200), 0x200);
+ DmaCopy16(3, gFieldSelectBGPals, (void *)(PLTT), 0x200);
+ DmaCopy16(3, gFieldSelectWindow_Gfx, (void *)(VRAM + 0x4000), 0x1400);
+ DmaCopy16(3, gFieldSelectMiniFields_Gfx, (void *)(VRAM + 0x8000), 0x3800);
+ DmaCopy16(3, gUnknown_080A2400, (void *)(VRAM), 0x800);
+ DmaCopy16(3, gFieldSelectFrameShadowTilemap, (void *)(VRAM + 0x800), 0x800);
+ DmaCopy16(3, gFieldSelectWindowTilemap, (void *)(VRAM + 0x1000), 0x800);
+ DmaCopy16(3, gFieldSelectSpritePals, (void *)(PLTT + 0x200), 0x200);
DmaCopy16(3, gFieldSelectSpriteGfx, (void *)(VRAM + 0x10000), 0x4020);
sub_CBC();
@@ -78,11 +78,11 @@ static void sub_8C38(void)
gFieldSelectData.state = 0;
gFieldSelectData.unkC = 0;
gFieldSelectData.unkE = 0;
- gFieldSelectData.unk16 = 0;
+ gFieldSelectData.nextMainState = STATE_INTRO;
gFieldSelectData.unk12 = 0;
gFieldSelectData.unk14 = 0;
- gFieldSelectData.ballSpeed = gMain_saveData.unk142;
+ gFieldSelectData.ballSpeed = gMain_saveData.ballSpeed;
gMain.unk4 = 0;
gUnknown_02002850 = 0;
}
@@ -93,7 +93,7 @@ void sub_8C7C(void)
if ((gMain.heldKeys & (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) == (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON))
{
gUnknown_02002850 = 1;
- gFieldSelectData.unk16 = 0;
+ gFieldSelectData.nextMainState = STATE_INTRO;
gMain.subState++;
}
if (gUnknown_02002850 == 0)
@@ -150,7 +150,7 @@ void sub_8C7C(void)
{
m4aSongNumStart(0x66);
gMain.subState++;
- gFieldSelectData.unk16 = 1;
+ gFieldSelectData.nextMainState = STATE_TITLE;
if (gFieldSelectData.selectedField == FIELD_RUBY)
{
gFieldSelectData.unk4 = 0;
@@ -184,7 +184,7 @@ void sub_8C7C(void)
m4aSongNumStart(0x65);
gFieldSelectData.unkE = 0;
gFieldSelectData.unkC = 0;
- gMain_saveData.unk142 = gFieldSelectData.ballSpeed;
+ gMain_saveData.ballSpeed = gFieldSelectData.ballSpeed;
SaveFile_WriteToSram();
gFieldSelectData.state = 3;
}
@@ -212,7 +212,7 @@ void sub_8C7C(void)
gFieldSelectData.unk0 = gUnknown_086A6B14.unk0[gFieldSelectData.unkC];
gFieldSelectData.unk2 = gUnknown_086A6B14.unkA[gFieldSelectData.unkC];
}
- if (!(gMain.unk4C & 1))
+ if (!(gMain.frameCount & 1))
{
if (gFieldSelectData.unkC < 4)
{
@@ -265,7 +265,7 @@ void sub_8C7C(void)
gFieldSelectData.unkC++;
if (gFieldSelectData.unkC > 5)
{
- gFieldSelectData.unk16 = 2;
+ gFieldSelectData.nextMainState = STATE_GAME_MAIN;
gMain.subState++;
}
}
@@ -282,7 +282,7 @@ void sub_8F64(void)
m4aMPlayAllStop();
sub_D10();
gAutoDisplayTitlescreenMenu = TRUE;
- SetMainGameState(gFieldSelectData.unk16);
+ SetMainGameState(gFieldSelectData.nextMainState);
}
static void sub_8F94(void)
diff --git a/src/main.c b/src/main.c
index 7ee8fdd..af1fca1 100755
--- a/src/main.c
+++ b/src/main.c
@@ -20,7 +20,7 @@ void AgbMain(void)
{
ReadKeys();
gMainFuncs[gMain.mainState]();
- sub_D74();
+ MainLoopIter();
}
}
@@ -40,7 +40,7 @@ void sub_9BC_Main(void)
default:
sub_2B4();
sub_D10();
- SetMainGameState(1);
+ SetMainGameState(STATE_TITLE);
break;
}
}
@@ -55,7 +55,7 @@ void VCountIntr(void)
{
INTR_CHECK |= INTR_FLAG_VCOUNT;
while (!(REG_DISPSTAT & DISPSTAT_HBLANK));
- if (gMain.mainState == 2)
+ if (gMain.mainState == STATE_GAME_MAIN)
{
REG_BG0HOFS = 0;
if (gMain.unk28)
@@ -144,14 +144,14 @@ static void InitGame(void)
static void sub_B8C(void)
{
- gMain.mainState = 0;
+ gMain.mainState = STATE_INTRO;
gMain.subState = 0;
gMain.unk16 = 0;
gMain.heldKeys = 0;
gMain.newKeys = 0;
gMain.unk20 = 0;
gMain.rngValue = 0;
- gMain.unk4C = 0;
+ gMain.frameCount = 0;
gMain.unk30 = 0;
gMain.vCount = 144;
gMain.unk2C = 0;
@@ -320,7 +320,7 @@ void sub_D10(void)
m4aSoundVSyncOff();
}
-void sub_D74(void)
+void MainLoopIter(void)
{
gMainCallback = gUnknown_02017BD4;
*gVBlankIntrFuncPtr = gUnknown_02017BD0;
@@ -328,7 +328,7 @@ void sub_D74(void)
if (gMainCallback)
gMainCallback();
- gMain.unk4C++;
+ gMain.frameCount++;
}
void DefaultMainCallback(void)
diff --git a/src/options.c b/src/options.c
index 8e6b821..cd02b94 100644
--- a/src/options.c
+++ b/src/options.c
@@ -35,7 +35,7 @@ struct OptionsData
u8 unk30;
};
-extern struct OptionsData gUnknown_02002920;
+extern struct OptionsData gOptionsData;
void OptionsMain(void)
{
@@ -91,29 +91,29 @@ void sub_513B8(void)
int i;
int j;
- gUnknown_02002920.unk0 = 0;
- gUnknown_02002920.unk2 = 0;
- gUnknown_02002920.unk4 = 0;
- gUnknown_02002920.unk6 = 1;
- gUnknown_02002920.unk8 = 0;
- gUnknown_02002920.unkA = 0;
- gUnknown_02002920.unkC = gMain_saveData.unk143;
- gUnknown_02002920.unkE = 0;
- gUnknown_02002920.unk10 = 0;
- gUnknown_02002920.unk12 = 0;
- gUnknown_02002920.unk13 = 0;
- gUnknown_02002920.unk14 = 1;
- gUnknown_02002920.unk15 = 0;
- gUnknown_02002920.unk16 = 0;
- gUnknown_02002920.unk17 = 1;
- gUnknown_02002920.unk18 = 0;
+ gOptionsData.unk0 = 0;
+ gOptionsData.unk2 = 0;
+ gOptionsData.unk4 = 0;
+ gOptionsData.unk6 = 1;
+ gOptionsData.unk8 = 0;
+ gOptionsData.unkA = 0;
+ gOptionsData.unkC = gMain_saveData.unk143;
+ gOptionsData.unkE = 0;
+ gOptionsData.unk10 = 0;
+ gOptionsData.unk12 = 0;
+ gOptionsData.unk13 = 0;
+ gOptionsData.unk14 = 1;
+ gOptionsData.unk15 = 0;
+ gOptionsData.unk16 = 0;
+ gOptionsData.unk17 = 1;
+ gOptionsData.unk18 = 0;
for (i = 0; i < 6; i++)
- gUnknown_02002920.unk1A[i] = 0;
- gUnknown_02002920.unk20 = 0;
- gUnknown_02002920.unk22 = 0;
+ gOptionsData.unk1A[i] = 0;
+ gOptionsData.unk20 = 0;
+ gOptionsData.unk22 = 0;
for (i = 0; i < 2; i++)
- gUnknown_02002920.unk24[i] = 10;
- gUnknown_02002920.unk28 = 0;
+ gOptionsData.unk24[i] = 10;
+ gOptionsData.unk28 = 0;
for (i = 0; i < 4; i++)
{
for (j = 0; j < 10; j++)
@@ -122,20 +122,20 @@ void sub_513B8(void)
sub_52528();
if (gGameBoyPlayerEnabled == 1)
{
- gUnknown_02002920.unk2A = gMain_saveData.unk141;
+ gOptionsData.unk2A = gMain_saveData.unk141;
gMain_saveData.unk141 = 1;
}
else
{
- gUnknown_02002920.unk2A = 0;
+ gOptionsData.unk2A = 0;
gMain_saveData.unk141 = 0;
}
- gUnknown_02002920.unk2E = 0;
- gUnknown_02002920.unk2B = 0;
- gUnknown_02002920.unk2C = 0;
- gUnknown_02002920.unk2D = 0;
- gUnknown_02002920.unk2F = 0;
- gUnknown_02002920.unk30 = 0;
+ gOptionsData.unk2E = 0;
+ gOptionsData.unk2B = 0;
+ gOptionsData.unk2C = 0;
+ gOptionsData.unk2D = 0;
+ gOptionsData.unk2F = 0;
+ gOptionsData.unk30 = 0;
}
void sub_514B8(void)
@@ -143,86 +143,81 @@ void sub_514B8(void)
s16 r4;
sub_51C9C();
- switch (gUnknown_02002920.unk0)
+ switch (gOptionsData.unk0)
{
case 0:
if (gMain.newKeys & 0x40)
{
- if (gUnknown_02002920.unkA != 0xD)
+ if (gOptionsData.unkA != 0xD)
{
- if (gUnknown_02002920.unkA == 0xE)
+ if (gOptionsData.unkA == 0xE)
{
m4aSongNumStart(0x67);
- gUnknown_02002920.unkA = 0xD;
+ gOptionsData.unkA = 0xD;
}
- else if (gUnknown_02002920.unkA > 0)
+ else if (gOptionsData.unkA > 0)
{
m4aSongNumStart(0x67);
- gUnknown_02002920.unkA--;
+ gOptionsData.unkA--;
}
}
}
- //_0805152C
else if (gMain.newKeys & 0x80)
{
- if (gUnknown_02002920.unkA < 6)
+ if (gOptionsData.unkA < 6)
{
m4aSongNumStart(0x67);
- gUnknown_02002920.unkA++;
+ gOptionsData.unkA++;
}
- else if (gUnknown_02002920.unkA == 0xD)
+ else if (gOptionsData.unkA == 0xD)
{
m4aSongNumStart(0x67);
- gUnknown_02002920.unkA = 0xE;
+ gOptionsData.unkA = 0xE;
}
- //_0805155E
- else if (gUnknown_02002920.unkA == 0xE)
+ else if (gOptionsData.unkA == 0xE)
{
m4aSongNumStart(0x67);
- gUnknown_02002920.unkA = 2;
+ gOptionsData.unkA = 2;
}
- // _0805156A
}
- //_0805156C
- if ((gMain.newKeys & 0x10) && gGameBoyPlayerEnabled == 1 && (u16)gUnknown_02002920.unkA < 2)
+ if ((gMain.newKeys & 0x10) && gGameBoyPlayerEnabled == 1 && (u16)gOptionsData.unkA < 2)
{
m4aSongNumStart(0x67);
- gUnknown_02002920.unkA += 0xD;
+ gOptionsData.unkA += 0xD;
}
- if ((gMain.newKeys & 0x20) && gGameBoyPlayerEnabled == 1 && (u16)(gUnknown_02002920.unkA - 13) < 2)
+ if ((gMain.newKeys & 0x20) && gGameBoyPlayerEnabled == 1 && (u16)(gOptionsData.unkA - 13) < 2)
{
m4aSongNumStart(0x67);
- gUnknown_02002920.unkA -= 0xD;
+ gOptionsData.unkA -= 0xD;
}
- //_080515C2
if (gMain.newKeys & 1)
{
- switch (gUnknown_02002920.unkA)
+ switch (gOptionsData.unkA)
{
case 0:
m4aSongNumStart(0x65);
- gUnknown_02002920.unk0 = 1;
- gUnknown_02002920.unk18 = 0;
- gUnknown_02002920.unk30 = 1;
- if (gUnknown_02002920.unk2E == 1)
+ gOptionsData.unk0 = 1;
+ gOptionsData.unk18 = 0;
+ gOptionsData.unk30 = 1;
+ if (gOptionsData.unk2E == 1)
{
- gUnknown_02002920.unk2B = 0;
- gUnknown_02002920.unk2D = 0;
- gUnknown_02002920.unk2C = 0;
- gUnknown_02002920.unk2E = 0;
+ gOptionsData.unk2B = 0;
+ gOptionsData.unk2D = 0;
+ gOptionsData.unk2C = 0;
+ gOptionsData.unk2E = 0;
}
break;
case 1:
m4aSongNumStart(0x65);
- gUnknown_02002920.unk0 = 2;
- gUnknown_02002920.unk18 = 0;
- gUnknown_02002920.unk30 = 1;
- if (gUnknown_02002920.unk2E == 1)
+ gOptionsData.unk0 = 2;
+ gOptionsData.unk18 = 0;
+ gOptionsData.unk30 = 1;
+ if (gOptionsData.unk2E == 1)
{
- gUnknown_02002920.unk2B = 0;
- gUnknown_02002920.unk2D = 0;
- gUnknown_02002920.unk2C = 0;
- gUnknown_02002920.unk2E = 0;
+ gOptionsData.unk2B = 0;
+ gOptionsData.unk2D = 0;
+ gOptionsData.unk2C = 0;
+ gOptionsData.unk2E = 0;
}
break;
case 2:
@@ -230,26 +225,26 @@ void sub_514B8(void)
case 4:
case 5:
m4aSongNumStart(0x65);
- gUnknown_02002920.unkC = gUnknown_02002920.unkA - 2;
- gMain_saveData.unk143 = gUnknown_02002920.unkC;
+ gOptionsData.unkC = gOptionsData.unkA - 2;
+ gMain_saveData.unk143 = gOptionsData.unkC;
break;
case 6:
m4aSongNumStart(0x65);
- gUnknown_02002920.unkC = gUnknown_02002920.unkA - 2;
- gMain_saveData.unk143 = gUnknown_02002920.unkC;
- gUnknown_02002920.unkA = 7;
- gUnknown_02002920.unk0 = 3;
+ gOptionsData.unkC = gOptionsData.unkA - 2;
+ gMain_saveData.unk143 = gOptionsData.unkC;
+ gOptionsData.unkA = 7;
+ gOptionsData.unk0 = 3;
break;
case 14:
if (gGameBoyPlayerEnabled == 1)
{
m4aSongNumStart(0x65);
- gUnknown_02002920.unk2D = 0;
- if (gUnknown_02002920.unk2E == 1)
- gUnknown_02002920.unk2E = 0;
- gUnknown_02002920.unk2B = 0;
- gUnknown_02002920.unk2C = 0;
- gUnknown_02002920.unk2A = 0;
+ gOptionsData.unk2D = 0;
+ if (gOptionsData.unk2E == 1)
+ gOptionsData.unk2E = 0;
+ gOptionsData.unk2B = 0;
+ gOptionsData.unk2C = 0;
+ gOptionsData.unk2A = 0;
}
break;
case 13:
@@ -257,17 +252,16 @@ void sub_514B8(void)
{
m4aSongNumStart(0x65);
sub_11B0(11);
- if (gUnknown_02002920.unk2E == 0)
- gUnknown_02002920.unk2E = 1;
+ if (gOptionsData.unk2E == 0)
+ gOptionsData.unk2E = 1;
- gUnknown_02002920.unk2B = 0;
- gUnknown_02002920.unk2C = 0;
- gUnknown_02002920.unk2A = 1;
+ gOptionsData.unk2B = 0;
+ gOptionsData.unk2C = 0;
+ gOptionsData.unk2A = 1;
}
break;
}
}
- //_0805177C
else if (gMain.newKeys & 2)
{
m4aSongNumStart(0x66);
@@ -275,209 +269,203 @@ void sub_514B8(void)
sub_525CC(gMain_saveData.unk143);
}
- if (!(gMain.unk4C & 7))
- gUnknown_02002920.unk2 = 1 - gUnknown_02002920.unk2;
+ if (!(gMain.frameCount & 7))
+ gOptionsData.unk2 = 1 - gOptionsData.unk2;
break;
- case 1: // _080517A8
+ case 1:
if (gMain.heldKeys & 0x20)
{
- if (gUnknown_02002920.unk18 == 0)
+ if (gOptionsData.unk18 == 0)
{
- gUnknown_02002920.unkE--;
- gUnknown_02002920.unk18 = 10;
+ gOptionsData.unkE--;
+ gOptionsData.unk18 = 10;
}
}
else if (gMain.heldKeys & 0x10)
{
- if (gUnknown_02002920.unk18 == 0)
+ if (gOptionsData.unk18 == 0)
{
- gUnknown_02002920.unkE++;
- gUnknown_02002920.unk18 = 10;
+ gOptionsData.unkE++;
+ gOptionsData.unk18 = 10;
}
}
if (gMain.newKeys & 0x40)
- gUnknown_02002920.unkE += 10;
+ gOptionsData.unkE += 10;
else if (gMain.newKeys & 0x80)
- gUnknown_02002920.unkE -= 10;
- if (gUnknown_02002920.unkE < 0)
- gUnknown_02002920.unkE = 33;
- if (gUnknown_02002920.unkE > 33)
- gUnknown_02002920.unkE = 0;
+ gOptionsData.unkE -= 10;
+ if (gOptionsData.unkE < 0)
+ gOptionsData.unkE = 33;
+ if (gOptionsData.unkE > 33)
+ gOptionsData.unkE = 0;
- r4 = gUnknown_02002920.unkE + 1;
- gUnknown_02002920.unk12 = r4 / 100;
+ r4 = gOptionsData.unkE + 1;
+ gOptionsData.unk12 = r4 / 100;
r4 %= 100;
- gUnknown_02002920.unk13 = r4 / 10;
- gUnknown_02002920.unk14 = r4 % 10;
+ gOptionsData.unk13 = r4 / 10;
+ gOptionsData.unk14 = r4 % 10;
if (gMain.newKeys & 1)
{
m4aMPlayAllStop();
- m4aSongNumStart(gUnknown_08527D22[gUnknown_02002920.unkE]);
+ m4aSongNumStart(gUnknown_08527D22[gOptionsData.unkE]);
}
else if (gMain.newKeys & 2)
{
m4aMPlayAllStop();
m4aSongNumStart(0x66);
- gUnknown_02002920.unk4 = 0;
- gUnknown_02002920.unk30 = 0;
- gUnknown_02002920.unk0 = 0;
+ gOptionsData.unk4 = 0;
+ gOptionsData.unk30 = 0;
+ gOptionsData.unk0 = 0;
}
- //_080518AA
- if (!(gMain.unk4C & 7))
- gUnknown_02002920.unk4 = 1 - gUnknown_02002920.unk4;
- if (gUnknown_02002920.unk18 > 0)
- gUnknown_02002920.unk18--;
+ if (!(gMain.frameCount & 7))
+ gOptionsData.unk4 = 1 - gOptionsData.unk4;
+ if (gOptionsData.unk18 > 0)
+ gOptionsData.unk18--;
break;
case 2:
if (gMain.heldKeys & 0x20)
{
- if (gUnknown_02002920.unk18 == 0)
+ if (gOptionsData.unk18 == 0)
{
- gUnknown_02002920.unk10--;
- gUnknown_02002920.unk18 = 10;
+ gOptionsData.unk10--;
+ gOptionsData.unk18 = 10;
}
}
else if (gMain.heldKeys & 0x10)
{
- if (gUnknown_02002920.unk18 == 0)
+ if (gOptionsData.unk18 == 0)
{
- gUnknown_02002920.unk10++;
- gUnknown_02002920.unk18 = 10;
+ gOptionsData.unk10++;
+ gOptionsData.unk18 = 10;
}
}
- //_08051918
if (gMain.newKeys & 0x40)
- gUnknown_02002920.unk10 += 10;
+ gOptionsData.unk10 += 10;
else if (gMain.newKeys & 0x80)
- gUnknown_02002920.unk10 -= 10;
- if (gUnknown_02002920.unk10 < 0)
- gUnknown_02002920.unk10 = 0xB7;
- if (gUnknown_02002920.unk10 > 0xB7)
- gUnknown_02002920.unk10 = 0;
+ gOptionsData.unk10 -= 10;
+ if (gOptionsData.unk10 < 0)
+ gOptionsData.unk10 = 0xB7;
+ if (gOptionsData.unk10 > 0xB7)
+ gOptionsData.unk10 = 0;
- r4 = gUnknown_02002920.unk10 + 1;
- gUnknown_02002920.unk15 = r4 / 100;
+ r4 = gOptionsData.unk10 + 1;
+ gOptionsData.unk15 = r4 / 100;
r4 %= 100;
- gUnknown_02002920.unk16 = r4 / 10;
- gUnknown_02002920.unk17 = r4 % 10;
+ gOptionsData.unk16 = r4 / 10;
+ gOptionsData.unk17 = r4 % 10;
if (gMain.newKeys & 0x1)
{
m4aMPlayAllStop();
- m4aSongNumStart(gUnknown_08527D66[gUnknown_02002920.unk10]);
+ m4aSongNumStart(gUnknown_08527D66[gOptionsData.unk10]);
}
else if (gMain.newKeys & 0x2)
{
m4aMPlayAllStop();
m4aSongNumStart(0x66);
- gUnknown_02002920.unk4 = 0;
- gUnknown_02002920.unk30 = 0;
- gUnknown_02002920.unk0 = 0;
+ gOptionsData.unk4 = 0;
+ gOptionsData.unk30 = 0;
+ gOptionsData.unk0 = 0;
}
- if (!(gMain.unk4C & 7))
- gUnknown_02002920.unk4 = 1 - gUnknown_02002920.unk4;
- if (gUnknown_02002920.unk18 > 0)
- gUnknown_02002920.unk18--;
+ if (!(gMain.frameCount & 7))
+ gOptionsData.unk4 = 1 - gOptionsData.unk4;
+ if (gOptionsData.unk18 > 0)
+ gOptionsData.unk18--;
break;
- case 3: //_08051A08
+ case 3:
if (gMain.newKeys & 0x40)
{
- if (gUnknown_02002920.unkA > 7)
+ if (gOptionsData.unkA > 7)
{
m4aSongNumStart(0x67);
- gUnknown_02002920.unkA--;
+ gOptionsData.unkA--;
}
}
- //_08051A34
else if (gMain.newKeys & 0x80)
{
- if (gUnknown_02002920.unkA <= 10)
+ if (gOptionsData.unkA <= 10)
{
m4aSongNumStart(0x67);
- gUnknown_02002920.unkA++;
+ gOptionsData.unkA++;
}
}
- //_08051A52
if (gMain.newKeys & 1)
{
m4aSongNumStart(0x65);
- gUnknown_02002920.unk0 = 4;
- gUnknown_02002920.unk1A[gUnknown_02002920.unkA - 7] = 1;
+ gOptionsData.unk0 = 4;
+ gOptionsData.unk1A[gOptionsData.unkA - 7] = 1;
}
- //_08051A80
else if (gMain.newKeys & 2)
{
m4aSongNumStart(0x66);
- gUnknown_02002920.unkA = 6;
- gUnknown_02002920.unk0 = 0;
+ gOptionsData.unkA = 6;
+ gOptionsData.unk0 = 0;
}
- //_08051A96
- if (!(gMain.unk4C & 7))
- gUnknown_02002920.unk2 = 1 - gUnknown_02002920.unk2;
+ if (!(gMain.frameCount & 7))
+ gOptionsData.unk2 = 1 - gOptionsData.unk2;
break;
case 4:
- gUnknown_02002920.unk8++;
- if (gUnknown_02002920.unk8 > 24)
+ gOptionsData.unk8++;
+ if (gOptionsData.unk8 > 24)
{
- gUnknown_02002920.unk8 = 0;
- gUnknown_02002920.unk6 = 1 - gUnknown_02002920.unk6;
+ gOptionsData.unk8 = 0;
+ gOptionsData.unk6 = 1 - gOptionsData.unk6;
}
if (gMain.newKeys & 0x3F7)
{
s16 i;
m4aSongNumStart(0x65);
- gUnknown_02002920.unk20 = 10;
- gUnknown_02002920.unk22 = 0;
+ gOptionsData.unk20 = 10;
+ gOptionsData.unk22 = 0;
for (i = 0; i < 2; i++)
- gUnknown_02002920.unk24[i] = 10;
- gUnknown_02002920.unk28 = 0;
+ gOptionsData.unk24[i] = 10;
+ gOptionsData.unk28 = 0;
}
//_08051B0E
- if (gUnknown_02002920.unk20 > 0)
+ if (gOptionsData.unk20 > 0)
{
sub_524BC();
- gUnknown_02002920.unk20--;
- if (gUnknown_02002920.unk20 == 0)
+ gOptionsData.unk20--;
+ if (gOptionsData.unk20 == 0)
{
- 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];
- 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;
- gUnknown_02002920.unk6 = 1;
+ gUnknown_02031AF0[4][(gOptionsData.unkA - 7) * 2 + 0] = gOptionsData.unk24[0];
+ gUnknown_02031AF0[4][(gOptionsData.unkA - 7) * 2 + 1] = gOptionsData.unk24[1];
+ gMain_saveData.unk144[(gOptionsData.unkA - 7)][0] = gUnknown_086BB910[gOptionsData.unk24[0]][0];
+ gMain_saveData.unk144[(gOptionsData.unkA - 7)][1] = gUnknown_086BB910[gOptionsData.unk24[1]][0];
+ gOptionsData.unk0 = 3;
+ gOptionsData.unk1A[gOptionsData.unkA - 7] = 0;
+ gOptionsData.unk8 = 0;
+ gOptionsData.unk6 = 1;
}
}
break;
}
//_08051B98
- if (gUnknown_02002920.unk2E == 1)
+ if (gOptionsData.unk2E == 1)
{
- //gUnknown_02002920.unk2B++;
- if (++gUnknown_02002920.unk2B > gUnknown_086BB9B4[gUnknown_02002920.unk2C].unk2)
+ //gOptionsData.unk2B++;
+ if (++gOptionsData.unk2B > gUnknown_086BB9B4[gOptionsData.unk2C].unk2)
{
- gUnknown_02002920.unk2B = 0;
- gUnknown_02002920.unk2C++;
- if (gUnknown_02002920.unk2C > 12)
+ gOptionsData.unk2B = 0;
+ gOptionsData.unk2C++;
+ if (gOptionsData.unk2C > 12)
{
- gUnknown_02002920.unk2C = 0;
- gUnknown_02002920.unk2D = 0;
- gUnknown_02002920.unk2E = 0;
+ gOptionsData.unk2C = 0;
+ gOptionsData.unk2D = 0;
+ gOptionsData.unk2E = 0;
}
//_08051BE8
- gUnknown_02002920.unk2D = gUnknown_086BB9B4[gUnknown_02002920.unk2C].unk0;
+ gOptionsData.unk2D = gUnknown_086BB9B4[gOptionsData.unk2C].unk0;
}
// _08051C30
}
else
//_08051C10
{
- gUnknown_02002920.unk2B++;
- if (gUnknown_02002920.unk2B > 18)
+ gOptionsData.unk2B++;
+ if (gOptionsData.unk2B > 18)
{
- gUnknown_02002920.unk2B = 0;
- gUnknown_02002920.unk2D = 1 - gUnknown_02002920.unk2D;
+ gOptionsData.unk2B = 0;
+ gOptionsData.unk2D = 1 - gOptionsData.unk2D;
}
}
sub_11FC();
@@ -495,13 +483,13 @@ void sub_51C3C(void)
void sub_51C60(void)
{
- gMain_saveData.unk141 = gUnknown_02002920.unk2A;
+ gMain_saveData.unk141 = gOptionsData.unk2A;
SaveFile_WriteToSram();
sub_2B4();
m4aMPlayAllStop();
sub_D10();
gAutoDisplayTitlescreenMenu = 1;
- SetMainGameState(1);
+ SetMainGameState(STATE_TITLE);
}
/*
diff --git a/src/rom_1068C.c b/src/rom_1068C.c
index 35307ec..297f982 100644
--- a/src/rom_1068C.c
+++ b/src/rom_1068C.c
@@ -56,7 +56,7 @@ void sub_10798(void *a, void *b, void (*func)(void))
if (func != NULL)
func();
sub_1001C(i);
- sub_D74();
+ MainLoopIter();
if (i == 32)
{
DmaCopy16(3, gUnknown_0201A920, (void *)PLTT, 0x400);
@@ -81,7 +81,7 @@ void sub_10860(void (*func)(void))
if (func != NULL)
func();
sub_1001C(i);
- sub_D74();
+ MainLoopIter();
if (i == 32)
{
DmaCopy16(3, gUnknown_0201A920, (void *)PLTT, 0x400);
@@ -91,7 +91,7 @@ void sub_10860(void (*func)(void))
DmaCopy16(3, gUnknown_0201AD20, (void *)PLTT, 0x400);
}
}
- sub_D74();
+ MainLoopIter();
}
#ifdef NONMATCHING
diff --git a/src/rom_528AC.c b/src/rom_528AC.c
index 3b42c4a..7abf1d9 100644
--- a/src/rom_528AC.c
+++ b/src/rom_528AC.c
@@ -227,7 +227,7 @@ void sub_52C64(void)
gMain_saveData.unk2E4 = 0;
gMain_saveData.unk141 = 0;
- gMain_saveData.unk142 = 0;
+ gMain_saveData.ballSpeed = 0;
sub_525CC(-1);
sub_F6E0();
sub_8ABC();
diff --git a/src/util.c b/src/util.c
index 723e925..eb2a1ab 100755
--- a/src/util.c
+++ b/src/util.c
@@ -25,7 +25,7 @@ void sub_24C(void)
for (i = 0; i < 32; i++)
{
REG_BLDY = 15 - i / 2;
- sub_D74();
+ MainLoopIter();
}
REG_BLDCNT = 0;
@@ -44,7 +44,7 @@ void sub_2B4(void)
for (i = 0; i < 16; i++)
{
REG_BLDY = i + 1;
- sub_D74();
+ MainLoopIter();
}
gMain.unk16 |= DISPCNT_FORCED_BLANK;
diff --git a/sym_ewram.txt b/sym_ewram.txt
index be12d52..1b20db2 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -74,7 +74,7 @@ gUnknown_020028AA: @ 0x020028AA
.space 0x2E
gUnknown_020028D8: @ 0x020028D8
.space 0x48
-gUnknown_02002920: @ 0x02002920
+gOptionsData: @ 0x02002920
.space 0x12
gUnknown_02002932: @ 0x02002932
.space 0x3