From 7db82fe44ae50e7f3d5612f952612ea4e52a36cd Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sun, 22 Sep 2019 22:29:45 +1000 Subject: [PATCH] Discover more stage related tables --- src/globals.c | 203 ++++++++++++++-------------------------- src/include/constants.h | 2 +- src/include/types.h | 20 ++++ 3 files changed, 93 insertions(+), 132 deletions(-) diff --git a/src/globals.c b/src/globals.c index 2b75937db..4ca3a5d0d 100644 --- a/src/globals.c +++ b/src/globals.c @@ -26032,89 +26032,48 @@ u32 var00017e7c = (u32) &var00017dfc; u32 var00017e80 = 0x00000000; u32 var00017e84 = 0x00000004; u32 var00017e88 = 0x00000000; -u32 var00017e8c = 0x00000030; -u32 var00017e90 = 0x0c005685; -u32 var00017e94 = 0x5686547c; -u32 var00017e98 = 0x00000033; -u32 var00017e9c = 0x0d005687; -u32 var00017ea0 = 0x568854ac; -u32 var00017ea4 = 0x00000022; -u32 var00017ea8 = 0x0e005689; -u32 var00017eac = 0x568a547d; -u32 var00017eb0 = 0x0000002c; -u32 var00017eb4 = 0x0f00568b; -u32 var00017eb8 = 0x568c568b; -u32 var00017ebc = 0x0000001d; -u32 var00017ec0 = 0x1000568d; -u32 var00017ec4 = 0x568e568d; -u32 var00017ec8 = 0x0000001e; -u32 var00017ecc = 0x1100568f; -u32 var00017ed0 = 0x5690568f; -u32 var00017ed4 = 0x0000002f; -u32 var00017ed8 = 0x12005691; -u32 var00017edc = 0x5692547e; -u32 var00017ee0 = 0x00000035; -u32 var00017ee4 = 0x13005693; -u32 var00017ee8 = 0x5694547f; -u32 var00017eec = 0x00000019; -u32 var00017ef0 = 0x14005695; -u32 var00017ef4 = 0x56965480; -u32 var00017ef8 = 0x00000027; -u32 var00017efc = 0x15005697; -u32 var00017f00 = 0x56985697; -u32 var00017f04 = 0x00000031; -u32 var00017f08 = 0x16005699; -u32 var00017f0c = 0x569a5699; -u32 var00017f10 = 0x0000001c; -u32 var00017f14 = 0x1700569b; -u32 var00017f18 = 0x569c569b; -u32 var00017f1c = 0x00000021; -u32 var00017f20 = 0x1800569d; -u32 var00017f24 = 0x569e569d; -u32 var00017f28 = 0x00000038; -u32 var00017f2c = 0x1900569f; -u32 var00017f30 = 0x56a0569f; -u32 var00017f34 = 0x0000002d; -u32 var00017f38 = 0x1a0056a1; -u32 var00017f3c = 0x56a256a1; -u32 var00017f40 = 0x00000034; -u32 var00017f44 = 0x1b0056a3; -u32 var00017f48 = 0x56a456a3; -u32 var00017f4c = 0x0000002a; -u32 var00017f50 = 0x1c0056a5; -u32 var00017f54 = 0x56a656a5; -u32 var00017f58 = 0x00000037; -u32 var00017f5c = 0x1c0056a7; -u32 var00017f60 = 0x560356a7; -u32 var00017f64 = 0x00000009; -u32 var00017f68 = 0x1c0056a8; -u32 var00017f6c = 0x560356a8; -u32 var00017f70 = 0x00000016; -u32 var00017f74 = 0x1c0056aa; -u32 var00017f78 = 0x560356aa; -u32 var00017f7c = 0x0000004f; -u32 var00017f80 = 0x1c0056ab; -u32 var00017f84 = 0x560356ab; -u32 var00017f88 = 0x00000000; -u32 var00017f8c = 0x567b0000; -u32 var00017f90 = 0x00000003; -u32 var00017f94 = 0x567c0000; -u32 var00017f98 = 0x00000004; -u32 var00017f9c = 0x567d0000; -u32 var00017fa0 = 0x00000006; -u32 var00017fa4 = 0x567e0000; -u32 var00017fa8 = 0x00000009; -u32 var00017fac = 0x567f0000; -u32 var00017fb0 = 0x0000000c; -u32 var00017fb4 = 0x56800000; -u32 var00017fb8 = 0x0000000e; -u32 var00017fbc = 0x56810000; -u32 var00017fc0 = 0x0000000f; -u32 var00017fc4 = 0x56820000; -u32 var00017fc8 = 0x00000010; -u32 var00017fcc = 0x56830000; -u32 var00017fd0 = 0x00000063; -u32 var00017fd4 = 0x56840000; + +// 00017e8c +struct stageoverviewentry stageoverview[] = { + // stage, unk04, name1, name2, name3 + { STAGE_DEFECTION, 0x0c, 0x5685, 0x5686, 0x547c }, + { STAGE_INVESTIGATION, 0x0d, 0x5687, 0x5688, 0x54ac }, + { STAGE_EXTRACTION, 0x0e, 0x5689, 0x568a, 0x547d }, + { STAGE_VILLA, 0x0f, 0x568b, 0x568c, 0x568b }, + { STAGE_CHICAGO, 0x10, 0x568d, 0x568e, 0x568d }, + { STAGE_G5BUILDING, 0x11, 0x568f, 0x5690, 0x568f }, + { STAGE_INFILTRATION, 0x12, 0x5691, 0x5692, 0x547e }, + { STAGE_RESCUE, 0x13, 0x5693, 0x5694, 0x547f }, + { STAGE_ESCAPE, 0x14, 0x5695, 0x5696, 0x5480 }, + { STAGE_AIRBASE, 0x15, 0x5697, 0x5698, 0x5697 }, + { STAGE_AIRFORCEONE, 0x16, 0x5699, 0x569a, 0x5699 }, + { STAGE_CRASHSITE, 0x17, 0x569b, 0x569c, 0x569b }, + { STAGE_PELAGIC, 0x18, 0x569d, 0x569e, 0x569d }, + { STAGE_DEEPSEA, 0x19, 0x569f, 0x56a0, 0x569f }, + { STAGE_DEFENSE, 0x1a, 0x56a1, 0x56a2, 0x56a1 }, + { STAGE_ATTACKSHIP, 0x1b, 0x56a3, 0x56a4, 0x56a3 }, + { STAGE_SKEDARRUINS, 0x1c, 0x56a5, 0x56a6, 0x56a5 }, + { STAGE_MBR, 0x1c, 0x56a7, 0x5603, 0x56a7 }, + { STAGE_MAIANSOS, 0x1c, 0x56a8, 0x5603, 0x56a8 }, + { STAGE_WAR, 0x1c, 0x56aa, 0x5603, 0x56aa }, + { STAGE_DUEL, 0x1c, 0x56ab, 0x5603, 0x56ab }, +}; + +// 00017f88 +struct mission missions[] = { + // first stage index, name + { 0, 0x567b }, // "Mission 1" + { 3, 0x567c }, // "Mission 2" + { 4, 0x567d }, // "Mission 3" + { 6, 0x567e }, // "Mission 4" + { 9, 0x567f }, // "Mission 5" + { 12, 0x5680 }, // "Mission 6" + { 14, 0x5681 }, // "Mission 7" + { 15, 0x5682 }, // "Mission 8" + { 16, 0x5683 }, // "Mission 9" + { 99, 0x5684 }, // "Special Assignments" +}; + u32 var00017fd8 = 0x05000000; u32 var00017fdc = 0x00000000; u32 var00017fe0 = 0x00000000; @@ -41107,54 +41066,36 @@ u32 var0002a510 = 0x00000000; u32 var0002a514 = 0x00000000; u32 var0002a518 = 0x00000000; u32 var0002a51c = 0x00000000; -u32 var0002a520 = 0x0026000d; -u32 var0002a524 = 0xffff0024; -u32 var0002a528 = 0x00300009; -u32 var0002a52c = 0x00080010; -u32 var0002a530 = 0x00330012; -u32 var0002a534 = 0x00050013; -u32 var0002a538 = 0x00220002; -u32 var0002a53c = 0x00080011; -u32 var0002a540 = 0x002c000c; -u32 var0002a544 = 0x00680027; -u32 var0002a548 = 0x001d000e; -u32 var0002a54c = 0x006a0028; -u32 var0002a550 = 0x001e000f; -u32 var0002a554 = 0x006a0029; -u32 var0002a558 = 0x002f0014; -u32 var0002a55c = 0x006d002a; -u32 var0002a560 = 0x00350016; -u32 var0002a564 = 0x00730032; -u32 var0002a568 = 0x00190006; -u32 var0002a56c = 0x00740033; -u32 var0002a570 = 0x00270017; -u32 var0002a574 = 0x00690034; -u32 var0002a578 = 0x00310018; -u32 var0002a57c = 0x006f0035; -u32 var0002a580 = 0x001c001d; -u32 var0002a584 = 0x0066001e; -u32 var0002a588 = 0x0021001c; -u32 var0002a58c = 0x00680036; -u32 var0002a590 = 0x00380007; -u32 var0002a594 = 0x006e0037; -u32 var0002a598 = 0x002d0004; -u32 var0002a59c = 0xffff0024; -u32 var0002a5a0 = 0x0034001f; -u32 var0002a5a4 = 0x00700020; -u32 var0002a5a8 = 0x002a0021; -u32 var0002a5ac = 0x00710038; -u32 var0002a5b0 = 0x0037003a; -u32 var0002a5b4 = 0x0008003a; -u32 var0002a5b8 = 0x0009003f; -u32 var0002a5bc = 0x0074003f; -u32 var0002a5c0 = 0x001b003d; -u32 var0002a5c4 = 0xffff003d; -u32 var0002a5c8 = 0x00160040; -u32 var0002a5cc = 0x00710040; -u32 var0002a5d0 = 0x004f0058; -u32 var0002a5d4 = 0xffff0058; -u32 var0002a5d8 = 0x005c0040; -u32 var0002a5dc = 0xffff0040; + +// 2a520 +struct stagemusic stagemusictable[] = { + // stage, main theme, background sfx, X theme + { STAGE_CITRAINING, MUSIC_CI, -1, MUSIC_DEFENSE_X }, + { STAGE_DEFECTION, MUSIC_DEFECTION, MUSIC_DDTOWER_SFX, MUSIC_DEFECTION_X }, + { STAGE_INVESTIGATION, MUSIC_INVESTIGATION, MUSIC_INVESTIGATION_SFX, MUSIC_INVESTIGATION_X }, + { STAGE_EXTRACTION, MUSIC_EXTRACTION, MUSIC_DDTOWER_SFX, MUSIC_EXTRACTION_X }, + { STAGE_VILLA, MUSIC_VILLA, MUSIC_OCEAN, MUSIC_VILLA_X }, + { STAGE_CHICAGO, MUSIC_CHICAGO, MUSIC_TRAFFIC, MUSIC_CHICAGO_X }, + { STAGE_G5BUILDING, MUSIC_G5, MUSIC_TRAFFIC, MUSIC_G5_X }, + { STAGE_INFILTRATION, MUSIC_INFILTRATION, MUSIC_INFILTRATION_SFX, MUSIC_INFILTRATION_X }, + { STAGE_RESCUE, MUSIC_RESCUE, MUSIC_A51_LOUDSPEAKER1, MUSIC_RESCUE_X }, + { STAGE_ESCAPE, MUSIC_ESCAPE, MUSIC_A51_LOUDSPEAKER2, MUSIC_ESCAPE_X }, + { STAGE_AIRBASE, MUSIC_AIRBASE, MUSIC_WIND, MUSIC_AIRBASE_X }, + { STAGE_AIRFORCEONE, MUSIC_AIRFORCEONE, MUSIC_AIRFORCEONE_SFX, MUSIC_AIRFORCEONE_X }, + { STAGE_CRASHSITE, MUSIC_CRASHSITE, MUSIC_CRASHSITE_WIND, MUSIC_CRASHSITE_X }, + { STAGE_PELAGIC, MUSIC_PELAGIC, MUSIC_OCEAN, MUSIC_PELAGIC_X }, + { STAGE_DEEPSEA, MUSIC_DEEPSEA, MUSIC_DEEPSEA_SFX, MUSIC_DEEPSEA_X }, + { STAGE_DEFENSE, MUSIC_DEFENSE, -1, MUSIC_DEFENSE_X }, + { STAGE_ATTACKSHIP, MUSIC_ATTACKSHIP, MUSIC_ATTACKSHIP_SFX, MUSIC_ATTACKSHIP_X }, + { STAGE_SKEDARRUINS, MUSIC_SKEDARRUINS, MUSIC_SKEDAR_WIND, MUSIC_SKEDARRUINS_X }, + { STAGE_MBR, MUSIC_DARK_COMBAT, MUSIC_DDTOWER_SFX, MUSIC_DARK_COMBAT }, + { STAGE_MAIANSOS, MUSIC_MAIAN_TEARS, MUSIC_A51_LOUDSPEAKER2, MUSIC_MAIAN_TEARS }, + { STAGE_RETAKING, MUSIC_CI_OPERATIVE, -1, MUSIC_CI_OPERATIVE }, + { STAGE_WAR, MUSIC_ALIEN_CONFLICT, MUSIC_SKEDAR_WIND, MUSIC_ALIEN_CONFLICT }, + { STAGE_DUEL, MUSIC_CREDITS, -1, MUSIC_CREDITS }, + { 0x5c, MUSIC_ALIEN_CONFLICT, -1, MUSIC_ALIEN_CONFLICT }, +}; + u32 var0002a5e0 = 0x00000000; u32 var0002a5e4 = 0x00000000; u32 var0002a5e8 = 0x00000000; diff --git a/src/include/constants.h b/src/include/constants.h index de58cecbe..7fe782541 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -1221,7 +1221,7 @@ #define MUSIC_DEFECTION_X 0x10 #define MUSIC_EXTRACTION_X 0x11 #define MUSIC_INVESTIGATION 0x12 -#define MUSIC_INVESTIGATION_x 0x13 +#define MUSIC_INVESTIGATION_X 0x13 #define MUSIC_INFILTRATION 0x14 #define MUSIC_DEATH_BETA 0x15 #define MUSIC_RESCUE 0x16 diff --git a/src/include/types.h b/src/include/types.h index 0191ba39e..0a2d322a5 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -202,6 +202,26 @@ struct mpmusictrack { s16 unlockcategory; }; +struct stageoverviewentry { + u32 stage_id; + u8 unk04; + u16 name1; // "dataDyne Central" + u16 name2; // " - Defection" + u16 name3; // "dataDyne Defection" +}; + +struct stagemusic { + u16 stage_id; + u16 main_music; + s16 sfx_music; + u16 x_music; +}; + +struct mission { + u32 first_stage_index; + u16 name; +}; + struct suntableentry { u32 unk00; u32 unk04;