From b0870ee7fbf34fe4fa8bf6a622a3c46aa326f1fb Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Sun, 11 Aug 2019 13:11:32 -0500 Subject: decompile through sub_51C3C --- src/gbplayer.c | 3 +- src/options.c | 501 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 502 insertions(+), 2 deletions(-) create mode 100644 src/options.c (limited to 'src') diff --git a/src/gbplayer.c b/src/gbplayer.c index c0d9655..e2c1cea 100755 --- a/src/gbplayer.c +++ b/src/gbplayer.c @@ -291,8 +291,7 @@ void sub_1198(void) void sub_11B0(int arg0) { - if (gUnknown_0200B134[0xCD]) - //if (gMain.saveData.unk141) + if (gUnknown_0200B134.unk141) { gUnknown_02019BF8 = arg0; gUnknown_02019BFC = 0; diff --git a/src/options.c b/src/options.c new file mode 100644 index 0000000..ef31b58 --- /dev/null +++ b/src/options.c @@ -0,0 +1,501 @@ +#include "global.h" +#include "m4a.h" +#include "main.h" + +struct OptionsData +{ + s16 unk0; + u16 unk2; + u16 unk4; + u16 unk6; + s16 unk8; + s16 unkA; + u16 unkC; + s16 unkE; + s16 unk10; + u8 unk12; + u8 unk13; + u8 unk14; + u8 unk15; + u8 unk16; + u8 unk17; + s16 unk18; + u8 unk1A[6]; + s16 unk20; + u16 unk22; + s16 unk24[2]; + u16 unk28; + u8 unk2A; + s8 unk2B; + s8 unk2C; + u8 unk2D; + s8 unk2E; + u8 unk2F; + u8 unk30; +}; + +extern struct OptionsData gUnknown_02002920; + +void OptionsMain(void) +{ + gUnknown_08527F08[gMain.subState](); +} + +extern const u16 gUnknown_0852B468[]; +extern const u8 gUnknown_08528828[]; +extern const u8 gUnknown_0852A848[]; +extern const u8 gUnknown_08528028[]; +extern const u8 gUnknown_0852A048[]; + +void sub_51240(void) +{ + sub_438(); + + REG_DISPCNT = 0x1080; + REG_BG0CNT = 4; + REG_DISPCNT |= 0x100; + REG_BG1CNT = 0x109; + REG_DISPCNT |= 0x200; + + gMain.unk16 = REG_DISPCNT; + + DmaCopy16(3, gUnknown_0852B468, (void *)PLTT, 0x200); + DmaCopy16(3, gUnknown_08528828, (void *)(VRAM + 0x4000), 0x1800); + DmaCopy16(3, gUnknown_0852A848, (void *)(VRAM + 0x8000), 0xC00); + DmaCopy16(3, gUnknown_08528028, gUnknown_03005C00, 0x800); + DmaCopy16(3, gUnknown_03005C00, (void *)VRAM, 0x800); + + if (gGameBoyPlayerEnabled != 1) + { + sub_1068C(0x12, 4, 2, 1, 2); + sub_1068C(0x12, 5, 3, 2, 2); + } + + DmaCopy16(3, gUnknown_03005C00, (void *)VRAM, 0x800); + DmaCopy16(3, gUnknown_0852A048, (void *)(VRAM + 0x800), 0x800); + DmaCopy16(3, gGBAButtonIcons_Pals, (void *)(PLTT + 0x200), 0x60); + DmaCopy16(3, gOptionsSprites_Gfx, (void *)(VRAM + 0x10000), 0x2020); + sub_513B8(); + sub_51C9C(); + m4aMPlayAllStop(); + sub_CBC(); + sub_24C(); + sub_10C0(); + + gMain.subState++; +} + +extern u8 gUnknown_02031AF0[][10]; +extern u8 gUnknown_08527ED6[][10]; + +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 = gUnknown_0200B134.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; + for (i = 0; i < 6; i++) + gUnknown_02002920.unk1A[i] = 0; + gUnknown_02002920.unk20 = 0; + gUnknown_02002920.unk22 = 0; + for (i = 0; i < 2; i++) + gUnknown_02002920.unk24[i] = 10; + gUnknown_02002920.unk28 = 0; + for (i = 0; i < 4; i++) + { + for (j = 0; j < 10; j++) + gUnknown_02031AF0[i][j] = gUnknown_08527ED6[i][j]; + } + sub_52528(); + if (gGameBoyPlayerEnabled == 1) + { + gUnknown_02002920.unk2A = gUnknown_0200B134.unk141; + gUnknown_0200B134.unk141 = 1; + } + else + { + gUnknown_02002920.unk2A = 0; + gUnknown_0200B134.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; +} + +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; + + sub_51C9C(); + switch (gUnknown_02002920.unk0) + { + case 0: + if (gMain.newKeys & 0x40) + { + if (gUnknown_02002920.unkA != 0xD) + { + if (gUnknown_02002920.unkA == 0xE) + { + m4aSongNumStart(0x67); + gUnknown_02002920.unkA = 0xD; + } + else if (gUnknown_02002920.unkA > 0) + { + m4aSongNumStart(0x67); + gUnknown_02002920.unkA--; + } + } + } + //_0805152C + else if (gMain.newKeys & 0x80) + { + if (gUnknown_02002920.unkA < 6) + { + m4aSongNumStart(0x67); + gUnknown_02002920.unkA++; + } + else if (gUnknown_02002920.unkA == 0xD) + { + m4aSongNumStart(0x67); + gUnknown_02002920.unkA = 0xE; + } + //_0805155E + else if (gUnknown_02002920.unkA == 0xE) + { + m4aSongNumStart(0x67); + gUnknown_02002920.unkA = 2; + } + // _0805156A + } + //_0805156C + if ((gMain.newKeys & 0x10) && gGameBoyPlayerEnabled == 1 && (u16)gUnknown_02002920.unkA < 2) + { + m4aSongNumStart(0x67); + gUnknown_02002920.unkA += 0xD; + } + if ((gMain.newKeys & 0x20) && gGameBoyPlayerEnabled == 1 && (u16)(gUnknown_02002920.unkA - 13) < 2) + { + m4aSongNumStart(0x67); + gUnknown_02002920.unkA -= 0xD; + } + //_080515C2 + if (gMain.newKeys & 1) + { + switch (gUnknown_02002920.unkA) + { + case 0: + m4aSongNumStart(0x65); + gUnknown_02002920.unk0 = 1; + gUnknown_02002920.unk18 = 0; + gUnknown_02002920.unk30 = 1; + if (gUnknown_02002920.unk2E == 1) + { + gUnknown_02002920.unk2B = 0; + gUnknown_02002920.unk2D = 0; + gUnknown_02002920.unk2C = 0; + gUnknown_02002920.unk2E = 0; + } + break; + case 1: + m4aSongNumStart(0x65); + gUnknown_02002920.unk0 = 2; + gUnknown_02002920.unk18 = 0; + gUnknown_02002920.unk30 = 1; + if (gUnknown_02002920.unk2E == 1) + { + gUnknown_02002920.unk2B = 0; + gUnknown_02002920.unk2D = 0; + gUnknown_02002920.unk2C = 0; + gUnknown_02002920.unk2E = 0; + } + break; + case 2: + case 3: + case 4: + case 5: + m4aSongNumStart(0x65); + gUnknown_02002920.unkC = gUnknown_02002920.unkA - 2; + gUnknown_0200B134.unk143 = gUnknown_02002920.unkC; + break; + case 6: + m4aSongNumStart(0x65); + gUnknown_02002920.unkC = gUnknown_02002920.unkA - 2; + gUnknown_0200B134.unk143 = gUnknown_02002920.unkC; + gUnknown_02002920.unkA = 7; + gUnknown_02002920.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; + } + break; + case 13: + if (gGameBoyPlayerEnabled == 1) + { + m4aSongNumStart(0x65); + sub_11B0(11); + if (gUnknown_02002920.unk2E == 0) + gUnknown_02002920.unk2E = 1; + + gUnknown_02002920.unk2B = 0; + gUnknown_02002920.unk2C = 0; + gUnknown_02002920.unk2A = 1; + } + break; + } + } + //_0805177C + else if (gMain.newKeys & 2) + { + m4aSongNumStart(0x66); + gMain.subState++; + sub_525CC(gMain.saveData.unk143); + + } + if (!(gMain.unk4C & 7)) + gUnknown_02002920.unk2 = 1 - gUnknown_02002920.unk2; + break; + case 1: // _080517A8 + if (gMain.heldKeys & 0x20) + { + if (gUnknown_02002920.unk18 == 0) + { + gUnknown_02002920.unkE--; + gUnknown_02002920.unk18 = 10; + } + } + else if (gMain.heldKeys & 0x10) + { + if (gUnknown_02002920.unk18 == 0) + { + gUnknown_02002920.unkE++; + gUnknown_02002920.unk18 = 10; + } + } + if (gMain.newKeys & 0x40) + gUnknown_02002920.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; + + r4 = gUnknown_02002920.unkE + 1; + gUnknown_02002920.unk12 = r4 / 100; + r4 %= 100; + gUnknown_02002920.unk13 = r4 / 10; + gUnknown_02002920.unk14 = r4 % 10; + if (gMain.newKeys & 1) + { + m4aMPlayAllStop(); + m4aSongNumStart(gUnknown_08527D22[gUnknown_02002920.unkE]); + } + else if (gMain.newKeys & 2) + { + m4aMPlayAllStop(); + m4aSongNumStart(0x66); + gUnknown_02002920.unk4 = 0; + gUnknown_02002920.unk30 = 0; + gUnknown_02002920.unk0 = 0; + } + //_080518AA + if (!(gMain.unk4C & 7)) + gUnknown_02002920.unk4 = 1 - gUnknown_02002920.unk4; + if (gUnknown_02002920.unk18 > 0) + gUnknown_02002920.unk18--; + break; + case 2: + if (gMain.heldKeys & 0x20) + { + if (gUnknown_02002920.unk18 == 0) + { + gUnknown_02002920.unk10--; + gUnknown_02002920.unk18 = 10; + } + } + else if (gMain.heldKeys & 0x10) + { + if (gUnknown_02002920.unk18 == 0) + { + gUnknown_02002920.unk10++; + gUnknown_02002920.unk18 = 10; + } + } + //_08051918 + if (gMain.newKeys & 0x40) + gUnknown_02002920.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; + + r4 = gUnknown_02002920.unk10 + 1; + gUnknown_02002920.unk15 = r4 / 100; + r4 %= 100; + gUnknown_02002920.unk16 = r4 / 10; + gUnknown_02002920.unk17 = r4 % 10; + if (gMain.newKeys & 0x1) + { + m4aMPlayAllStop(); + m4aSongNumStart(gUnknown_08527D66[gUnknown_02002920.unk10]); + } + else if (gMain.newKeys & 0x2) + { + m4aMPlayAllStop(); + m4aSongNumStart(0x66); + gUnknown_02002920.unk4 = 0; + gUnknown_02002920.unk30 = 0; + gUnknown_02002920.unk0 = 0; + } + if (!(gMain.unk4C & 7)) + gUnknown_02002920.unk4 = 1 - gUnknown_02002920.unk4; + if (gUnknown_02002920.unk18 > 0) + gUnknown_02002920.unk18--; + break; + case 3: //_08051A08 + if (gMain.newKeys & 0x40) + { + if (gUnknown_02002920.unkA > 7) + { + m4aSongNumStart(0x67); + gUnknown_02002920.unkA--; + } + } + //_08051A34 + else if (gMain.newKeys & 0x80) + { + if (gUnknown_02002920.unkA <= 10) + { + m4aSongNumStart(0x67); + gUnknown_02002920.unkA++; + } + } + //_08051A52 + if (gMain.newKeys & 1) + { + m4aSongNumStart(0x65); + gUnknown_02002920.unk0 = 4; + gUnknown_02002920.unk1A[gUnknown_02002920.unkA - 7] = 1; + } + //_08051A80 + else if (gMain.newKeys & 2) + { + m4aSongNumStart(0x66); + gUnknown_02002920.unkA = 6; + gUnknown_02002920.unk0 = 0; + } + //_08051A96 + if (!(gMain.unk4C & 7)) + gUnknown_02002920.unk2 = 1 - gUnknown_02002920.unk2; + break; + case 4: + gUnknown_02002920.unk8++; + if (gUnknown_02002920.unk8 > 24) + { + gUnknown_02002920.unk8 = 0; + gUnknown_02002920.unk6 = 1 - gUnknown_02002920.unk6; + } + if (gMain.newKeys & 0x3F7) + { + s16 i; + + m4aSongNumStart(0x65); + gUnknown_02002920.unk20 = 10; + gUnknown_02002920.unk22 = 0; + for (i = 0; i < 2; i++) + gUnknown_02002920.unk24[i] = 10; + gUnknown_02002920.unk28 = 0; + } + //_08051B0E + if (gUnknown_02002920.unk20 > 0) + { + sub_524BC(); + gUnknown_02002920.unk20--; + if (gUnknown_02002920.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]; + 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]; + gUnknown_02002920.unk0 = 3; + gUnknown_02002920.unk1A[gUnknown_02002920.unkA - 7] = 0; + gUnknown_02002920.unk8 = 0; + gUnknown_02002920.unk6 = 1; + } + } + break; + } + //_08051B98 + if (gUnknown_02002920.unk2E == 1) + { + //gUnknown_02002920.unk2B++; + if (++gUnknown_02002920.unk2B > gUnknown_086BB9B4[gUnknown_02002920.unk2C].unk2) + { + gUnknown_02002920.unk2B = 0; + gUnknown_02002920.unk2C++; + if (gUnknown_02002920.unk2C > 12) + { + gUnknown_02002920.unk2C = 0; + gUnknown_02002920.unk2D = 0; + gUnknown_02002920.unk2E = 0; + } + //_08051BE8 + gUnknown_02002920.unk2D = gUnknown_086BB9B4[gUnknown_02002920.unk2C].unk0; + } + // _08051C30 + } + else + //_08051C10 + { + gUnknown_02002920.unk2B++; + if (gUnknown_02002920.unk2B > 18) + { + gUnknown_02002920.unk2B = 0; + gUnknown_02002920.unk2D = 1 - gUnknown_02002920.unk2D; + } + } + sub_11FC(); +} + +void sub_51C3C(void) +{ + sub_111C(); + if (sub_1170() != 0) + { + sub_1198(); + gMain.subState++; + } +} -- cgit v1.2.3 From 68de07eabfe27625e4b5b43502da0efade337456 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Sun, 11 Aug 2019 14:20:54 -0500 Subject: cleanup --- src/gbplayer.c | 2 +- src/options.c | 43 ++++++++++------- src/rom_528AC.c | 135 +++++++++++++++++++++++------------------------------- src/titlescreen.c | 4 +- src/util.c | 4 +- 5 files changed, 90 insertions(+), 98 deletions(-) (limited to 'src') 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); -- cgit v1.2.3 From 0de7fdc6139127391a6afdb810d992b99aedcc39 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Sun, 11 Aug 2019 18:28:44 -0500 Subject: decompile field_select.s --- src/field_select.c | 382 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/options.c | 2 +- 2 files changed, 383 insertions(+), 1 deletion(-) create mode 100644 src/field_select.c (limited to 'src') diff --git a/src/field_select.c b/src/field_select.c new file mode 100644 index 0000000..381e047 --- /dev/null +++ b/src/field_select.c @@ -0,0 +1,382 @@ +#include "global.h" +#include "main.h" +#include "m4a.h" +#include "titlescreen.h" + +extern void (*gUnknown_080792C0[])(void); + +extern u16 gFieldSelectBGPals[]; +extern u8 gFieldSelectWindow_Gfx[]; +extern u8 gFieldSelectMiniFields_Gfx[]; +extern u8 gUnknown_080A2400[]; +extern u8 gFieldSelectFrameShadowTilemap[]; +extern u8 gFieldSelectWindowTilemap[]; +extern u16 gFieldSelectSpritePals[]; +extern u8 gFieldSelectSpriteGfx[]; +extern s8 gUnknown_02002850; + +extern void sub_8F94(void); +extern void sub_8C38(void); + +struct FieldSelectData +{ + u16 unk0; + u16 unk2; + u16 unk4; + u16 unk6; + u16 unk8; + u16 unkA; + s16 unkC; + s16 unkE; + u8 unk10; + s16 unk12; + s8 unk14; + u16 unk16; +}; + +extern struct FieldSelectData gUnknown_02002838; + +void FieldSelectMain(void) +{ + gUnknown_080792C0[gMain.subState](); +} + +void LoadFieldSelectGraphics(void) +{ + sub_438(); + + REG_DISPCNT = 0x1080; + REG_BG0CNT = 4; + REG_DISPCNT |= 0x100; + REG_BG1CNT = 0x105; + REG_DISPCNT |= 0x200; + REG_BG2CNT = 0x20A; + REG_DISPCNT |= 0x400; + + 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, gFieldSelectSpriteGfx, (void *)(VRAM + 0x10000), 0x4020); + + sub_CBC(); + sub_8C38(); + sub_FD5C(sub_8F94); + gMain.subState++; + m4aSongNumStart(3); +} + +void sub_8C38(void) +{ + gUnknown_02002838.unk0 = 2; + gUnknown_02002838.unk2 = 3; + gUnknown_02002838.unk4 = 0; + gUnknown_02002838.unk6 = 1; + gUnknown_02002838.unk8 = 0; + gUnknown_02002838.unkA = 0; + gUnknown_02002838.unkC = 0; + gUnknown_02002838.unkE = 0; + gUnknown_02002838.unk16 = 0; + gUnknown_02002838.unk12 = 0; + gUnknown_02002838.unk14 = 0; + + gUnknown_02002838.unk10 = gMain_saveData.unk142; + gMain.unk4 = 0; + gUnknown_02002850 = 0; +} + +extern struct {u16 unk0[5]; u16 unkA[5];} gUnknown_086A6B14; + +void sub_8C7C(void) +{ + sub_8F94(); + if ((gMain.heldKeys & 0xF) == 0xF) + { + gUnknown_02002850 = 1; + gUnknown_02002838.unk16 = 0; + gMain.subState++; + } + if (gUnknown_02002850 == 0) + { + switch (gUnknown_02002838.unkA) + { + case 0: + if (gMain.newKeys & 0x20) + { + if (gUnknown_02002838.unk8 == 1) + { + m4aSongNumStart(0x6D); + gUnknown_02002838.unk8 = 0; + gUnknown_02002838.unk4 = 0; + gUnknown_02002838.unk6 = 1; + gUnknown_02002838.unkA = 1; + } + } + else if (gMain.newKeys & 0x10) + { + if (gUnknown_02002838.unk8 == 0) + { + m4aSongNumStart(0x6D); + gUnknown_02002838.unk8 = 1; + gUnknown_02002838.unk4 = 1; + gUnknown_02002838.unk6 = 0; + gUnknown_02002838.unkA = 1; + } + } + if (gMain.newKeys & 1) + { + m4aSongNumStart(0x65); + gUnknown_02002838.unkA = 2; + gUnknown_02002838.unk14 = 1; + gUnknown_02002838.unkE = 0; + if (gUnknown_02002838.unk8 == 0) + { + gUnknown_02002838.unk4 = 0; + gUnknown_02002838.unk6 = 1; + gUnknown_02002838.unk0 = 2; + gUnknown_02002838.unk2 = 3; + gUnknown_02002838.unkC = 0; + } + else + { + gUnknown_02002838.unk4 = 1; + gUnknown_02002838.unk6 = 0; + gUnknown_02002838.unk0 = 7; + gUnknown_02002838.unk2 = 11; + gUnknown_02002838.unkC = 0; + } + } + if (gMain.newKeys & 2) + { + m4aSongNumStart(0x66); + gMain.subState++; + gUnknown_02002838.unk16 = 1; + if (gUnknown_02002838.unk8 == 0) + { + gUnknown_02002838.unk4 = 0; + gUnknown_02002838.unk6 = 1; + gUnknown_02002838.unk0 = 2; + gUnknown_02002838.unk2 = 3; + gUnknown_02002838.unkC = 0; + } + else + { + gUnknown_02002838.unk4 = 1; + gUnknown_02002838.unk6 = 0; + gUnknown_02002838.unk0 = 7; + gUnknown_02002838.unk2 = 11; + gUnknown_02002838.unkC = 0; + } + } + if (gMain.unk4 < 2) + gMain.unk6 = 0; + else + gMain.unk6 = 1; + break; + case 2: + if (gMain.newKeys & 0x30) + { + m4aSongNumStart(0x67); + gUnknown_02002838.unk10 = 1 - gUnknown_02002838.unk10; + } + if (gMain.newKeys & 1) + { + m4aSongNumStart(0x65); + gUnknown_02002838.unkE = 0; + gUnknown_02002838.unkC = 0; + gMain_saveData.unk142 = gUnknown_02002838.unk10; + SaveFile_WriteToSram(); + gUnknown_02002838.unkA = 3; + } + if (gMain.newKeys & 2) + { + m4aSongNumStart(0x66); + gUnknown_02002838.unk14 = 0; + gUnknown_02002838.unkA = 0; + } + gUnknown_02002838.unkE++; + if (gUnknown_02002838.unkE > 4) + { + gUnknown_02002838.unkE = 0; + gUnknown_02002838.unk12 = 1 - gUnknown_02002838.unk12; + } + break; + case 1: + if (gUnknown_02002838.unk8 == 0) + { + gUnknown_02002838.unk0 = gUnknown_086A6B14.unk0[4 - gUnknown_02002838.unkC]; + gUnknown_02002838.unk2 = gUnknown_086A6B14.unkA[4 - gUnknown_02002838.unkC]; + } + else + { + gUnknown_02002838.unk0 = gUnknown_086A6B14.unk0[gUnknown_02002838.unkC]; + gUnknown_02002838.unk2 = gUnknown_086A6B14.unkA[gUnknown_02002838.unkC]; + } + if (!(gMain.unk4C & 1)) + { + if (gUnknown_02002838.unkC < 4) + { + gUnknown_02002838.unkC++; + } + else + { + gUnknown_02002838.unkC = 0; + gUnknown_02002838.unkA = 0; + } + } + if (gMain.newKeys & 0x20) + { + if (gUnknown_02002838.unk8 == 1) + { + m4aSongNumStart(0x6D); + gUnknown_02002838.unk8 = 0; + gUnknown_02002838.unk4 = 0; + gUnknown_02002838.unk6 = 1; + gUnknown_02002838.unk0 = 2; + gUnknown_02002838.unk2 = 3; + gUnknown_02002838.unkC = 0; + gUnknown_02002838.unkA = 0; + } + } + else if (gMain.newKeys & 0x10) + { + if (gUnknown_02002838.unk8 == 0) + { + m4aSongNumStart(0x6D); + gUnknown_02002838.unk8 = 1; + gUnknown_02002838.unk4 = 1; + gUnknown_02002838.unk6 = 0; + gUnknown_02002838.unk0 = 7; + gUnknown_02002838.unk2 = 11; + gUnknown_02002838.unkC = 0; + gUnknown_02002838.unkA = 0; + } + } + break; + case 3: + gUnknown_02002838.unkE++; + if (gUnknown_02002838.unkE > 3) + { + gUnknown_02002838.unkE = 0; + if (gUnknown_02002838.unk8 == 0) + gUnknown_02002838.unk4 = 1 - gUnknown_02002838.unk4; + else + gUnknown_02002838.unk6 = 1 - gUnknown_02002838.unk6; + gUnknown_02002838.unkC++; + if (gUnknown_02002838.unkC > 5) + { + gUnknown_02002838.unk16 = 2; + gMain.subState++; + } + } + break; + } + gMain.unk4 = gUnknown_02002838.unk8; + gMain.unk5 = gUnknown_02002838.unk8; + } +} + +void sub_8F64(void) +{ + sub_FE04(sub_8F94); + m4aMPlayAllStop(); + sub_D10(); + gAutoDisplayTitlescreenMenu = 1; + SetMainGameState(gUnknown_02002838.unk16); +} + +extern const struct SpriteSet *const gUnknown_086A6AD4[]; +extern struct Coord16 gUnknown_086A6B28[]; + +void sub_8F94(void) +{ + struct SpriteGroup *r6; + struct SpriteGroup *r9; + struct SpriteGroup *sp0; + struct SpriteGroup *r10; + struct SpriteGroup *r8; + const struct SpriteSet *spriteSet; + int i; + + gMain.blendControl = 0x642; + gMain.blendAlpha = 0x808; + REG_BLDCNT = gMain.blendControl; + REG_BLDALPHA = gMain.blendAlpha; + + r6 = &gMain.spriteGroups[0]; + r9 = &gMain.spriteGroups[1]; + sp0 = &gMain.spriteGroups[gUnknown_02002838.unk0]; + r10 = &gMain.spriteGroups[gUnknown_02002838.unk2]; + r8 = &gMain.spriteGroups[12 + gUnknown_02002838.unk10 * 2 + gUnknown_02002838.unk12]; + + r6->available = gUnknown_02002838.unk4; + r9->available = gUnknown_02002838.unk6; + sp0->available = 1; + r10->available = 1; + r8->available = gUnknown_02002838.unk14; + + LoadSpriteSets(gUnknown_086A6AD4, 16, r6); + + if (gUnknown_02002838.unk4 == 1) + { + r6->baseX = 0x25; + r6->baseY = 0x18; + for (i = 0; i < 2; i++) + { + gOamBuffer[r6->oam[i].oamId].x = r6->oam[i].xOffset + r6->baseX; + gOamBuffer[r6->oam[i].oamId].y = r6->oam[i].yOffset + r6->baseY; + } + } + + if (gUnknown_02002838.unk6 == 1) + { + r9->baseX = 0x8D; + r9->baseY = 0x18; + for (i = 0; i < 2; i++) + { + gOamBuffer[r9->oam[i].oamId].x = r9->oam[i].xOffset + r9->baseX; + gOamBuffer[r9->oam[i].oamId].y = r9->oam[i].yOffset + r9->baseY; + } + } + + sp0->baseX = 32; + sp0->baseY = 32; + spriteSet = gUnknown_086A6AD4[gUnknown_02002838.unk0]; + for (i = 0; i < spriteSet->count; i++) + { + gOamBuffer[sp0->oam[i].oamId].objMode = 1; + gOamBuffer[sp0->oam[i].oamId].x = sp0->oam[i].xOffset + sp0->baseX; + gOamBuffer[sp0->oam[i].oamId].y = sp0->oam[i].yOffset + sp0->baseY; + } + + r10->baseX = 0x88; + r10->baseY = 32; + spriteSet = gUnknown_086A6AD4[gUnknown_02002838.unk2]; + for (i = 0; i < spriteSet->count; i++) + { + gOamBuffer[r10->oam[i].oamId].objMode = 1; + gOamBuffer[r10->oam[i].oamId].x = r10->oam[i].xOffset + r10->baseX; + gOamBuffer[r10->oam[i].oamId].y = r10->oam[i].yOffset + r10->baseY; + } + + if (r8->available == 1) + { + r8->baseX = gUnknown_086A6B28[gUnknown_02002838.unk8].x; + r8->baseY = gUnknown_086A6B28[gUnknown_02002838.unk8].y; + for (i = 0; i < 5; i++) + { + gOamBuffer[r8->oam[i].oamId].objMode = 0; + gOamBuffer[r8->oam[i].oamId].x = r8->oam[i].xOffset + r8->baseX; + gOamBuffer[r8->oam[i].oamId].y = r8->oam[i].yOffset + r8->baseY; + } + } + + sp0->available = 0; + r10->available = 0; + r8->available = 0; +} diff --git a/src/options.c b/src/options.c index e05d727..4e03a7d 100644 --- a/src/options.c +++ b/src/options.c @@ -272,7 +272,7 @@ void sub_514B8(void) { m4aSongNumStart(0x66); gMain.subState++; - sub_525CC(gMain.saveData.unk143); + sub_525CC(gMain_saveData.unk143); } if (!(gMain.unk4C & 7)) -- cgit v1.2.3 From d06a2d63c051f4f5eef247944e006ff93a9f3160 Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Sun, 11 Aug 2019 19:15:53 -0500 Subject: cleanup --- src/field_select.c | 304 ++++++++++++++++++++++++++--------------------------- 1 file changed, 148 insertions(+), 156 deletions(-) (limited to 'src') diff --git a/src/field_select.c b/src/field_select.c index 381e047..40bfb2a 100644 --- a/src/field_select.c +++ b/src/field_select.c @@ -3,20 +3,14 @@ #include "m4a.h" #include "titlescreen.h" -extern void (*gUnknown_080792C0[])(void); - -extern u16 gFieldSelectBGPals[]; -extern u8 gFieldSelectWindow_Gfx[]; -extern u8 gFieldSelectMiniFields_Gfx[]; -extern u8 gUnknown_080A2400[]; -extern u8 gFieldSelectFrameShadowTilemap[]; -extern u8 gFieldSelectWindowTilemap[]; -extern u16 gFieldSelectSpritePals[]; -extern u8 gFieldSelectSpriteGfx[]; -extern s8 gUnknown_02002850; +enum +{ + FIELD_RUBY, + FIELD_SAPPHIRE, +}; -extern void sub_8F94(void); -extern void sub_8C38(void); +static void sub_8F94(void); +static void sub_8C38(void); struct FieldSelectData { @@ -24,34 +18,37 @@ struct FieldSelectData u16 unk2; u16 unk4; u16 unk6; - u16 unk8; - u16 unkA; + u16 selectedField; + u16 state; s16 unkC; s16 unkE; - u8 unk10; + u8 ballSpeed; s16 unk12; s8 unk14; u16 unk16; }; -extern struct FieldSelectData gUnknown_02002838; +extern struct FieldSelectData gFieldSelectData; void FieldSelectMain(void) { - gUnknown_080792C0[gMain.subState](); + gFieldSelectStateFuncs[gMain.subState](); } void LoadFieldSelectGraphics(void) { sub_438(); - REG_DISPCNT = 0x1080; - REG_BG0CNT = 4; - REG_DISPCNT |= 0x100; - REG_BG1CNT = 0x105; - REG_DISPCNT |= 0x200; - REG_BG2CNT = 0x20A; - REG_DISPCNT |= 0x400; + REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_FORCED_BLANK | DISPCNT_OBJ_ON; + + REG_BG0CNT = BGCNT_CHARBASE(1) | BGCNT_SCREENBASE(0) | BGCNT_PRIORITY(0) | BGCNT_TXT256x256; + REG_DISPCNT |= DISPCNT_BG0_ON; + + REG_BG1CNT = BGCNT_CHARBASE(1) | BGCNT_SCREENBASE(1) | BGCNT_PRIORITY(1) | BGCNT_TXT256x256; + REG_DISPCNT |= DISPCNT_BG1_ON; + + REG_BG2CNT = BGCNT_CHARBASE(2) | BGCNT_SCREENBASE(2) | BGCNT_PRIORITY(2) | BGCNT_TXT256x256; + REG_DISPCNT |= DISPCNT_BG2_ON; gMain.unk16 = REG_DISPCNT; @@ -71,106 +68,104 @@ void LoadFieldSelectGraphics(void) m4aSongNumStart(3); } -void sub_8C38(void) +static void sub_8C38(void) { - gUnknown_02002838.unk0 = 2; - gUnknown_02002838.unk2 = 3; - gUnknown_02002838.unk4 = 0; - gUnknown_02002838.unk6 = 1; - gUnknown_02002838.unk8 = 0; - gUnknown_02002838.unkA = 0; - gUnknown_02002838.unkC = 0; - gUnknown_02002838.unkE = 0; - gUnknown_02002838.unk16 = 0; - gUnknown_02002838.unk12 = 0; - gUnknown_02002838.unk14 = 0; + gFieldSelectData.unk0 = 2; + gFieldSelectData.unk2 = 3; + gFieldSelectData.unk4 = 0; + gFieldSelectData.unk6 = 1; + gFieldSelectData.selectedField = FIELD_RUBY; + gFieldSelectData.state = 0; + gFieldSelectData.unkC = 0; + gFieldSelectData.unkE = 0; + gFieldSelectData.unk16 = 0; + gFieldSelectData.unk12 = 0; + gFieldSelectData.unk14 = 0; - gUnknown_02002838.unk10 = gMain_saveData.unk142; + gFieldSelectData.ballSpeed = gMain_saveData.unk142; gMain.unk4 = 0; gUnknown_02002850 = 0; } -extern struct {u16 unk0[5]; u16 unkA[5];} gUnknown_086A6B14; - void sub_8C7C(void) { sub_8F94(); - if ((gMain.heldKeys & 0xF) == 0xF) + if ((gMain.heldKeys & (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) == (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) { gUnknown_02002850 = 1; - gUnknown_02002838.unk16 = 0; + gFieldSelectData.unk16 = 0; gMain.subState++; } if (gUnknown_02002850 == 0) { - switch (gUnknown_02002838.unkA) + switch (gFieldSelectData.state) { case 0: - if (gMain.newKeys & 0x20) + if (gMain.newKeys & DPAD_LEFT) { - if (gUnknown_02002838.unk8 == 1) + if (gFieldSelectData.selectedField == FIELD_SAPPHIRE) { m4aSongNumStart(0x6D); - gUnknown_02002838.unk8 = 0; - gUnknown_02002838.unk4 = 0; - gUnknown_02002838.unk6 = 1; - gUnknown_02002838.unkA = 1; + gFieldSelectData.selectedField = FIELD_RUBY; + gFieldSelectData.unk4 = 0; + gFieldSelectData.unk6 = 1; + gFieldSelectData.state = 1; } } - else if (gMain.newKeys & 0x10) + else if (gMain.newKeys & DPAD_RIGHT) { - if (gUnknown_02002838.unk8 == 0) + if (gFieldSelectData.selectedField == FIELD_RUBY) { m4aSongNumStart(0x6D); - gUnknown_02002838.unk8 = 1; - gUnknown_02002838.unk4 = 1; - gUnknown_02002838.unk6 = 0; - gUnknown_02002838.unkA = 1; + gFieldSelectData.selectedField = FIELD_SAPPHIRE; + gFieldSelectData.unk4 = 1; + gFieldSelectData.unk6 = 0; + gFieldSelectData.state = 1; } } - if (gMain.newKeys & 1) + if (gMain.newKeys & A_BUTTON) { m4aSongNumStart(0x65); - gUnknown_02002838.unkA = 2; - gUnknown_02002838.unk14 = 1; - gUnknown_02002838.unkE = 0; - if (gUnknown_02002838.unk8 == 0) + gFieldSelectData.state = 2; + gFieldSelectData.unk14 = 1; + gFieldSelectData.unkE = 0; + if (gFieldSelectData.selectedField == FIELD_RUBY) { - gUnknown_02002838.unk4 = 0; - gUnknown_02002838.unk6 = 1; - gUnknown_02002838.unk0 = 2; - gUnknown_02002838.unk2 = 3; - gUnknown_02002838.unkC = 0; + gFieldSelectData.unk4 = 0; + gFieldSelectData.unk6 = 1; + gFieldSelectData.unk0 = 2; + gFieldSelectData.unk2 = 3; + gFieldSelectData.unkC = 0; } else { - gUnknown_02002838.unk4 = 1; - gUnknown_02002838.unk6 = 0; - gUnknown_02002838.unk0 = 7; - gUnknown_02002838.unk2 = 11; - gUnknown_02002838.unkC = 0; + gFieldSelectData.unk4 = 1; + gFieldSelectData.unk6 = 0; + gFieldSelectData.unk0 = 7; + gFieldSelectData.unk2 = 11; + gFieldSelectData.unkC = 0; } } - if (gMain.newKeys & 2) + if (gMain.newKeys & B_BUTTON) { m4aSongNumStart(0x66); gMain.subState++; - gUnknown_02002838.unk16 = 1; - if (gUnknown_02002838.unk8 == 0) + gFieldSelectData.unk16 = 1; + if (gFieldSelectData.selectedField == FIELD_RUBY) { - gUnknown_02002838.unk4 = 0; - gUnknown_02002838.unk6 = 1; - gUnknown_02002838.unk0 = 2; - gUnknown_02002838.unk2 = 3; - gUnknown_02002838.unkC = 0; + gFieldSelectData.unk4 = 0; + gFieldSelectData.unk6 = 1; + gFieldSelectData.unk0 = 2; + gFieldSelectData.unk2 = 3; + gFieldSelectData.unkC = 0; } else { - gUnknown_02002838.unk4 = 1; - gUnknown_02002838.unk6 = 0; - gUnknown_02002838.unk0 = 7; - gUnknown_02002838.unk2 = 11; - gUnknown_02002838.unkC = 0; + gFieldSelectData.unk4 = 1; + gFieldSelectData.unk6 = 0; + gFieldSelectData.unk0 = 7; + gFieldSelectData.unk2 = 11; + gFieldSelectData.unkC = 0; } } if (gMain.unk4 < 2) @@ -178,106 +173,106 @@ void sub_8C7C(void) else gMain.unk6 = 1; break; - case 2: - if (gMain.newKeys & 0x30) + case 2: // Choose ball speed + if (gMain.newKeys & (DPAD_LEFT | DPAD_RIGHT)) { m4aSongNumStart(0x67); - gUnknown_02002838.unk10 = 1 - gUnknown_02002838.unk10; + gFieldSelectData.ballSpeed = 1 - gFieldSelectData.ballSpeed; } - if (gMain.newKeys & 1) + if (gMain.newKeys & A_BUTTON) { m4aSongNumStart(0x65); - gUnknown_02002838.unkE = 0; - gUnknown_02002838.unkC = 0; - gMain_saveData.unk142 = gUnknown_02002838.unk10; + gFieldSelectData.unkE = 0; + gFieldSelectData.unkC = 0; + gMain_saveData.unk142 = gFieldSelectData.ballSpeed; SaveFile_WriteToSram(); - gUnknown_02002838.unkA = 3; + gFieldSelectData.state = 3; } - if (gMain.newKeys & 2) + if (gMain.newKeys & B_BUTTON) { m4aSongNumStart(0x66); - gUnknown_02002838.unk14 = 0; - gUnknown_02002838.unkA = 0; + gFieldSelectData.unk14 = 0; + gFieldSelectData.state = 0; } - gUnknown_02002838.unkE++; - if (gUnknown_02002838.unkE > 4) + gFieldSelectData.unkE++; + if (gFieldSelectData.unkE > 4) { - gUnknown_02002838.unkE = 0; - gUnknown_02002838.unk12 = 1 - gUnknown_02002838.unk12; + gFieldSelectData.unkE = 0; + gFieldSelectData.unk12 = 1 - gFieldSelectData.unk12; } break; case 1: - if (gUnknown_02002838.unk8 == 0) + if (gFieldSelectData.selectedField == FIELD_RUBY) { - gUnknown_02002838.unk0 = gUnknown_086A6B14.unk0[4 - gUnknown_02002838.unkC]; - gUnknown_02002838.unk2 = gUnknown_086A6B14.unkA[4 - gUnknown_02002838.unkC]; + gFieldSelectData.unk0 = gUnknown_086A6B14.unk0[4 - gFieldSelectData.unkC]; + gFieldSelectData.unk2 = gUnknown_086A6B14.unkA[4 - gFieldSelectData.unkC]; } else { - gUnknown_02002838.unk0 = gUnknown_086A6B14.unk0[gUnknown_02002838.unkC]; - gUnknown_02002838.unk2 = gUnknown_086A6B14.unkA[gUnknown_02002838.unkC]; + gFieldSelectData.unk0 = gUnknown_086A6B14.unk0[gFieldSelectData.unkC]; + gFieldSelectData.unk2 = gUnknown_086A6B14.unkA[gFieldSelectData.unkC]; } if (!(gMain.unk4C & 1)) { - if (gUnknown_02002838.unkC < 4) + if (gFieldSelectData.unkC < 4) { - gUnknown_02002838.unkC++; + gFieldSelectData.unkC++; } else { - gUnknown_02002838.unkC = 0; - gUnknown_02002838.unkA = 0; + gFieldSelectData.unkC = 0; + gFieldSelectData.state = 0; } } - if (gMain.newKeys & 0x20) + if (gMain.newKeys & DPAD_LEFT) { - if (gUnknown_02002838.unk8 == 1) + if (gFieldSelectData.selectedField == FIELD_SAPPHIRE) { m4aSongNumStart(0x6D); - gUnknown_02002838.unk8 = 0; - gUnknown_02002838.unk4 = 0; - gUnknown_02002838.unk6 = 1; - gUnknown_02002838.unk0 = 2; - gUnknown_02002838.unk2 = 3; - gUnknown_02002838.unkC = 0; - gUnknown_02002838.unkA = 0; + gFieldSelectData.selectedField = FIELD_RUBY; + gFieldSelectData.unk4 = 0; + gFieldSelectData.unk6 = 1; + gFieldSelectData.unk0 = 2; + gFieldSelectData.unk2 = 3; + gFieldSelectData.unkC = 0; + gFieldSelectData.state = 0; } } - else if (gMain.newKeys & 0x10) + else if (gMain.newKeys & DPAD_RIGHT) { - if (gUnknown_02002838.unk8 == 0) + if (gFieldSelectData.selectedField == FIELD_RUBY) { m4aSongNumStart(0x6D); - gUnknown_02002838.unk8 = 1; - gUnknown_02002838.unk4 = 1; - gUnknown_02002838.unk6 = 0; - gUnknown_02002838.unk0 = 7; - gUnknown_02002838.unk2 = 11; - gUnknown_02002838.unkC = 0; - gUnknown_02002838.unkA = 0; + gFieldSelectData.selectedField = FIELD_SAPPHIRE; + gFieldSelectData.unk4 = 1; + gFieldSelectData.unk6 = 0; + gFieldSelectData.unk0 = 7; + gFieldSelectData.unk2 = 11; + gFieldSelectData.unkC = 0; + gFieldSelectData.state = 0; } } break; case 3: - gUnknown_02002838.unkE++; - if (gUnknown_02002838.unkE > 3) + gFieldSelectData.unkE++; + if (gFieldSelectData.unkE > 3) { - gUnknown_02002838.unkE = 0; - if (gUnknown_02002838.unk8 == 0) - gUnknown_02002838.unk4 = 1 - gUnknown_02002838.unk4; + gFieldSelectData.unkE = 0; + if (gFieldSelectData.selectedField == FIELD_RUBY) + gFieldSelectData.unk4 = 1 - gFieldSelectData.unk4; else - gUnknown_02002838.unk6 = 1 - gUnknown_02002838.unk6; - gUnknown_02002838.unkC++; - if (gUnknown_02002838.unkC > 5) + gFieldSelectData.unk6 = 1 - gFieldSelectData.unk6; + gFieldSelectData.unkC++; + if (gFieldSelectData.unkC > 5) { - gUnknown_02002838.unk16 = 2; + gFieldSelectData.unk16 = 2; gMain.subState++; } } break; } - gMain.unk4 = gUnknown_02002838.unk8; - gMain.unk5 = gUnknown_02002838.unk8; + gMain.unk4 = gFieldSelectData.selectedField; + gMain.unk5 = gFieldSelectData.selectedField; } } @@ -286,14 +281,11 @@ void sub_8F64(void) sub_FE04(sub_8F94); m4aMPlayAllStop(); sub_D10(); - gAutoDisplayTitlescreenMenu = 1; - SetMainGameState(gUnknown_02002838.unk16); + gAutoDisplayTitlescreenMenu = TRUE; + SetMainGameState(gFieldSelectData.unk16); } -extern const struct SpriteSet *const gUnknown_086A6AD4[]; -extern struct Coord16 gUnknown_086A6B28[]; - -void sub_8F94(void) +static void sub_8F94(void) { struct SpriteGroup *r6; struct SpriteGroup *r9; @@ -303,26 +295,26 @@ void sub_8F94(void) const struct SpriteSet *spriteSet; int i; - gMain.blendControl = 0x642; - gMain.blendAlpha = 0x808; + gMain.blendControl = BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2; + gMain.blendAlpha = BLDALPHA_BLEND(8, 8); REG_BLDCNT = gMain.blendControl; REG_BLDALPHA = gMain.blendAlpha; r6 = &gMain.spriteGroups[0]; r9 = &gMain.spriteGroups[1]; - sp0 = &gMain.spriteGroups[gUnknown_02002838.unk0]; - r10 = &gMain.spriteGroups[gUnknown_02002838.unk2]; - r8 = &gMain.spriteGroups[12 + gUnknown_02002838.unk10 * 2 + gUnknown_02002838.unk12]; + sp0 = &gMain.spriteGroups[gFieldSelectData.unk0]; + r10 = &gMain.spriteGroups[gFieldSelectData.unk2]; + r8 = &gMain.spriteGroups[12 + gFieldSelectData.ballSpeed * 2 + gFieldSelectData.unk12]; - r6->available = gUnknown_02002838.unk4; - r9->available = gUnknown_02002838.unk6; + r6->available = gFieldSelectData.unk4; + r9->available = gFieldSelectData.unk6; sp0->available = 1; r10->available = 1; - r8->available = gUnknown_02002838.unk14; + r8->available = gFieldSelectData.unk14; LoadSpriteSets(gUnknown_086A6AD4, 16, r6); - if (gUnknown_02002838.unk4 == 1) + if (gFieldSelectData.unk4 == 1) { r6->baseX = 0x25; r6->baseY = 0x18; @@ -333,7 +325,7 @@ void sub_8F94(void) } } - if (gUnknown_02002838.unk6 == 1) + if (gFieldSelectData.unk6 == 1) { r9->baseX = 0x8D; r9->baseY = 0x18; @@ -346,7 +338,7 @@ void sub_8F94(void) sp0->baseX = 32; sp0->baseY = 32; - spriteSet = gUnknown_086A6AD4[gUnknown_02002838.unk0]; + spriteSet = gUnknown_086A6AD4[gFieldSelectData.unk0]; for (i = 0; i < spriteSet->count; i++) { gOamBuffer[sp0->oam[i].oamId].objMode = 1; @@ -356,7 +348,7 @@ void sub_8F94(void) r10->baseX = 0x88; r10->baseY = 32; - spriteSet = gUnknown_086A6AD4[gUnknown_02002838.unk2]; + spriteSet = gUnknown_086A6AD4[gFieldSelectData.unk2]; for (i = 0; i < spriteSet->count; i++) { gOamBuffer[r10->oam[i].oamId].objMode = 1; @@ -366,8 +358,8 @@ void sub_8F94(void) if (r8->available == 1) { - r8->baseX = gUnknown_086A6B28[gUnknown_02002838.unk8].x; - r8->baseY = gUnknown_086A6B28[gUnknown_02002838.unk8].y; + r8->baseX = gUnknown_086A6B28[gFieldSelectData.selectedField].x; + r8->baseY = gUnknown_086A6B28[gFieldSelectData.selectedField].y; for (i = 0; i < 5; i++) { gOamBuffer[r8->oam[i].oamId].objMode = 0; -- cgit v1.2.3 From 93f755636be0dcf395ad86bcedc30cefb1fb369e Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Sun, 11 Aug 2019 20:57:10 -0500 Subject: more labeling --- src/field_select.c | 2 +- src/main.c | 36 ++++++++++++++++++------------------ src/options.c | 2 +- src/rom_1068C.c | 4 ++-- src/rom_528AC.c | 2 +- src/rom_850.c | 52 ++++++++++++++++++++++++---------------------------- src/titlescreen.c | 2 +- src/util.c | 6 +++--- 8 files changed, 51 insertions(+), 55 deletions(-) (limited to 'src') diff --git a/src/field_select.c b/src/field_select.c index 40bfb2a..3aa304b 100644 --- a/src/field_select.c +++ b/src/field_select.c @@ -37,7 +37,7 @@ void FieldSelectMain(void) void LoadFieldSelectGraphics(void) { - sub_438(); + ResetSomeGraphicsRelatedStuff(); REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_FORCED_BLANK | DISPCNT_OBJ_ON; diff --git a/src/main.c b/src/main.c index de8d269..7ee8fdd 100755 --- a/src/main.c +++ b/src/main.c @@ -3,7 +3,7 @@ #include "gbplayer.h" #include "m4a.h" -static void sub_B54(void); +static void InitGame(void); static void sub_B8C(void); static void InitIntrHandlers(void); static void ReadKeys(void); @@ -14,7 +14,7 @@ void AgbMain(void) InitIntrHandlers(); DmaCopy32(3, IntrMain, IntrMain_Buffer, sizeof(IntrMain_Buffer)); INTR_VECTOR = IntrMain_Buffer; - sub_B54(); + InitGame(); InitGameBoyPlayer(); while (1) { @@ -45,7 +45,7 @@ void sub_9BC_Main(void) } } -void HBlankIntr(void) +void VBlankIntr(void) { m4aSoundVSync(); INTR_CHECK |= INTR_FLAG_VBLANK; @@ -122,7 +122,7 @@ void IntrDummy(void) { } -static void sub_B54(void) +static void InitGame(void) { REG_WAITCNT = WAITCNT_AGB | WAITCNT_PREFETCH_ENABLE @@ -139,7 +139,7 @@ static void sub_B54(void) sub_B8C(); m4aSoundInit(); m4aSoundVSyncOff(); - sub_52A18(); + SaveFile_LoadGameData(); } static void sub_B8C(void) @@ -155,8 +155,8 @@ static void sub_B8C(void) gMain.unk30 = 0; gMain.vCount = 144; gMain.unk2C = 0; - sub_1090C(); - sub_438(); + ClearSomeArray(); + ResetSomeGraphicsRelatedStuff(); } static void InitIntrHandlers(void) @@ -166,11 +166,11 @@ static void InitIntrHandlers(void) for (i = 0; i < INTR_COUNT; i++) gIntrTable[i] = gIntrTableTemplate[i]; - gUnknown_0200FB98 = &gIntrTable[2]; - gUnknown_02019BE0 = &gIntrTable[4]; - sub_8BC(); - sub_8FC(); - sub_940(); + gVBlankIntrFuncPtr = &gIntrTable[2]; + gVCountIntrFuncPtr = &gIntrTable[4]; + ResetMainCallback(); + ResetVBlankIntrFunc(); + ResetVCountIntrFunc(); } // The number 1103515245 comes from the example implementation of rand and srand @@ -322,16 +322,16 @@ void sub_D10(void) void sub_D74(void) { - gUnknown_0200FB9C = gUnknown_02017BD4; - *gUnknown_0200FB98 = gUnknown_02017BD0; - *gUnknown_02019BE0 = gUnknown_0200FBA0; - if (gUnknown_0200FB9C) - gUnknown_0200FB9C(); + gMainCallback = gUnknown_02017BD4; + *gVBlankIntrFuncPtr = gUnknown_02017BD0; + *gVCountIntrFuncPtr = gUnknown_0200FBA0; + if (gMainCallback) + gMainCallback(); gMain.unk4C++; } -void sub_DC4(void) +void DefaultMainCallback(void) { if (REG_DISPSTAT & DISPSTAT_VBLANK_INTR) { diff --git a/src/options.c b/src/options.c index 4e03a7d..8e6b821 100644 --- a/src/options.c +++ b/src/options.c @@ -50,7 +50,7 @@ extern const u8 gUnknown_0852A048[]; void sub_51240(void) { - sub_438(); + ResetSomeGraphicsRelatedStuff(); REG_DISPCNT = 0x1080; REG_BG0CNT = 4; diff --git a/src/rom_1068C.c b/src/rom_1068C.c index 4a5e619..35307ec 100644 --- a/src/rom_1068C.c +++ b/src/rom_1068C.c @@ -96,7 +96,7 @@ void sub_10860(void (*func)(void)) #ifdef NONMATCHING // Like sub_C24, it matches except for that damn 'push {lr}/pop {lr}' -void sub_1090C(void) +void ClearSomeArray(void) { int i; @@ -105,7 +105,7 @@ void sub_1090C(void) } #else NAKED -void sub_1090C(void) +void ClearSomeArray(void) { asm_unified("\n\ ldr r1, _08010920 @ =gUnknown_0201A500\n\ diff --git a/src/rom_528AC.c b/src/rom_528AC.c index 6f33318..3b42c4a 100644 --- a/src/rom_528AC.c +++ b/src/rom_528AC.c @@ -96,7 +96,7 @@ static void sub_52940(u16 a, s8 b, s8 c, u8 d, int unused) } } -void sub_52A18(void) +void SaveFile_LoadGameData(void) { SetSramFastFunc(); gMain.unkC = 0; diff --git a/src/rom_850.c b/src/rom_850.c index 56a4914..cd820e9 100755 --- a/src/rom_850.c +++ b/src/rom_850.c @@ -1,57 +1,53 @@ #include "global.h" #include "main.h" -u16 sub_850(void) +u16 IsInVblank(void) { - if (REG_IME & INTR_FLAG_VBLANK - && REG_DISPSTAT & DISPSTAT_VBLANK_INTR - && REG_IE & INTR_FLAG_VBLANK - && !(REG_DISPCNT & DISPCNT_FORCED_BLANK)) - { - return 1; - } + if ((REG_IME & 1) // Interrupts enabled + && (REG_DISPSTAT & DISPSTAT_VBLANK_INTR) // In VBLANK + && (REG_IE & INTR_FLAG_VBLANK) // VBlank interrupt enabled + && !(REG_DISPCNT & DISPCNT_FORCED_BLANK)) // Ignore VBlank interrupts during forced blank + return TRUE; else - { - return 0; - } + return FALSE; } -void sub_898(void (*func)(void)) +void SetMainCallback(void (*func)(void)) { gUnknown_02017BD4 = func; - if (!sub_850()) - gUnknown_0200FB9C = func; + if (!IsInVblank()) + gMainCallback = func; } -void sub_8BC(void) +void ResetMainCallback(void) { - gUnknown_0200FB9C = sub_DC4; - gUnknown_02017BD4 = sub_DC4; + gMainCallback = DefaultMainCallback; + gUnknown_02017BD4 = DefaultMainCallback; } -void sub_8D4(void (*func)(void)) +void SetVBlankIntrFunc(void (*func)(void)) { gUnknown_02017BD0 = func; - if (!sub_850()) - *gUnknown_0200FB98 = func; + if (!IsInVblank()) + *gVBlankIntrFuncPtr = func; } -void sub_8FC(void) +void ResetVBlankIntrFunc(void) { - *gUnknown_0200FB98 = HBlankIntr; - gUnknown_02017BD0 = HBlankIntr; + *gVBlankIntrFuncPtr = VBlankIntr; + gUnknown_02017BD0 = VBlankIntr; } -void sub_918(void (*func)(void)) +void SetVCountIntrFunc(void (*func)(void)) { gUnknown_0200FBA0 = func; - if (!sub_850()) - *gUnknown_02019BE0 = func; + if (!IsInVblank()) + *gVCountIntrFuncPtr = func; } -void sub_940(void) +void ResetVCountIntrFunc(void) { - *gUnknown_02019BE0 = VCountIntr; + *gVCountIntrFuncPtr = VCountIntr; gUnknown_0200FBA0 = VCountIntr; } diff --git a/src/titlescreen.c b/src/titlescreen.c index 8e19997..583ca5f 100755 --- a/src/titlescreen.c +++ b/src/titlescreen.c @@ -31,7 +31,7 @@ void LoadTitlescreenGraphics(void) { int autoDisplayMenu; - sub_438(); + ResetSomeGraphicsRelatedStuff(); REG_DISPCNT = DISPCNT_OBJ_ON| DISPCNT_FORCED_BLANK; REG_BG1CNT = BGCNT_256COLOR | BGCNT_PRIORITY(1) | BGCNT_CHARBASE(1) | BGCNT_SCREENBASE(0); REG_DISPCNT |= DISPCNT_BG1_ON; diff --git a/src/util.c b/src/util.c index eab2e9e..723e925 100755 --- a/src/util.c +++ b/src/util.c @@ -92,13 +92,13 @@ s16 LoadSpriteSets(const struct SpriteSet *const *spriteSets, u16 numSpriteSets, return loadedCount; } -void sub_438(void) +void ResetSomeGraphicsRelatedStuff(void) { gMain.unk16 |= DISPCNT_FORCED_BLANK; REG_DISPCNT |= DISPCNT_FORCED_BLANK; ClearGraphicsMemory(); sub_518(); - sub_578(); + ClearSprites(); gMain.unkF = 0; gMain.unk10 = 0; gMain.unk50 = 0; @@ -146,7 +146,7 @@ void sub_518(void) } } -void sub_578(void) +void ClearSprites(void) { u16 i, j; -- cgit v1.2.3 From 0648ededb9161e9f5fc4e0a38ae91c7bf14e6c0b Mon Sep 17 00:00:00 2001 From: Cameron Hall Date: Mon, 12 Aug 2019 18:47:16 -0500 Subject: more labeling --- src/field_select.c | 32 ++--- src/main.c | 14 +- src/options.c | 366 ++++++++++++++++++++++++++--------------------------- src/rom_1068C.c | 6 +- src/rom_528AC.c | 2 +- src/util.c | 4 +- 6 files changed, 206 insertions(+), 218 deletions(-) (limited to 'src') 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; -- cgit v1.2.3