From c5d9eb962ba8e2e32e50b27b0655e792ad687f7c Mon Sep 17 00:00:00 2001 From: Alejandro Asenjo Nitti <96613413+sonicdcer@users.noreply.github.com> Date: Thu, 4 Jan 2024 12:53:38 -0300 Subject: [PATCH] fox_map decompiled (#68) * func_EBFBE0_801A116C * func_EBFBE0_801A0D14 * put some order * func_EBFBE0_801A1528 * func_EBFBE0_801A53C8 * func_EBFBE0_801A4FC4 * func_EBFBE0_801A9448 * func_EBFBE0_801A4394 * func_EBFBE0_801A3A00 * func_EBFBE0_801A5834 * func_EBFBE0_801A89BC * void * dec * cleanup * func_EBFBE0_801A2EB8 * func_EBFBE0_801A1C14 * func_EBFBE0_801AA778 * begin importing data * func_EBFBE0_801A2B8C * fix * fox_map DATA IMPORTED * ovl_menu rename * fix * fix warnings * fix build * move symbol addresses --- include/fox_option.h | 2 +- include/sf64dma.h | 2 +- include/structs.h | 9 + include/variables.h | 4 +- linker_scripts/us/symbol_addrs.txt | 3 - linker_scripts/us/symbol_addrs_EBFBE0.txt | 12 +- linker_scripts/us/symbol_addrs_engine.txt | 4 + linker_scripts/us/symbol_addrs_overlays.txt | 28 +- src/main/dmatable.c | 2 +- src/main/fox_load_inits.c | 8 +- src/main/fox_play.c | 2 +- .../{ovl_EBFBE0 => ovl_menu}/EBFBE0.c | 0 .../ED6EC0.c => ovl_menu/fox_map.c} | 2900 +++++++++++++++-- .../{ovl_EBFBE0 => ovl_menu}/fox_map.h | 1 + .../{ovl_EBFBE0 => ovl_menu}/fox_option.c | 45 +- .../{ovl_EBFBE0 => ovl_menu}/fox_title.c | 0 .../{ovl_EBFBE0 => ovl_menu}/fox_title.h | 9 - yamls/us/overlays.yaml | 14 +- 18 files changed, 2744 insertions(+), 301 deletions(-) rename src/overlays/{ovl_EBFBE0 => ovl_menu}/EBFBE0.c (100%) rename src/overlays/{ovl_EBFBE0/ED6EC0.c => ovl_menu/fox_map.c} (52%) rename src/overlays/{ovl_EBFBE0 => ovl_menu}/fox_map.h (95%) rename src/overlays/{ovl_EBFBE0 => ovl_menu}/fox_option.c (99%) rename src/overlays/{ovl_EBFBE0 => ovl_menu}/fox_title.c (100%) rename src/overlays/{ovl_EBFBE0 => ovl_menu}/fox_title.h (97%) diff --git a/include/fox_option.h b/include/fox_option.h index 436f61a8..c2dc0a1b 100644 --- a/include/fox_option.h +++ b/include/fox_option.h @@ -172,7 +172,7 @@ extern UnkStruct_D_EBFBE0_801B9250 D_EBFBE0_801B9400; extern UnkStruct_D_EBFBE0_801B9250 D_EBFBE0_801B9408; extern void* D_EBFBE0_801B68B0[]; -extern void* D_EBFBE0_801B68D4[]; +extern char* D_EBFBE0_801B68D4[]; extern s32 D_EBFBE0_801B81A8[][3]; diff --git a/include/sf64dma.h b/include/sf64dma.h index 249bc487..2655d9f6 100644 --- a/include/sf64dma.h +++ b/include/sf64dma.h @@ -182,7 +182,7 @@ DECLARE_SEGMENT(ovl_E16C50); DECLARE_SEGMENT(ovl_E51970); DECLARE_SEGMENT(ovl_E6A810); DECLARE_SEGMENT(ovl_E9F1D0); -DECLARE_SEGMENT(ovl_EBFBE0); +DECLARE_SEGMENT(ovl_menu); DECLARE_SEGMENT(ovl_EF0260); DECLARE_SEGMENT(ovl_EFFA40); diff --git a/include/structs.h b/include/structs.h index 95fd48fb..97a41742 100644 --- a/include/structs.h +++ b/include/structs.h @@ -86,4 +86,13 @@ typedef struct { /* 0x18 */ u16 timer; } UnkEntity1C; // size = 0x1C +typedef struct { + /* 0x00 */ f32 unk_00; + /* 0x04 */ f32 unk_04; + /* 0x08 */ f32 unk_08; + /* 0x0C */ f32 unk_0C; + /* 0x10 */ f32 unk_10; + /* 0x14 */ f32 unk_14; +} UnkStruct_D_EBFBE0_801B8294; // size = 0x18 + #endif diff --git a/include/variables.h b/include/variables.h index 59355888..795b8302 100644 --- a/include/variables.h +++ b/include/variables.h @@ -325,7 +325,7 @@ extern f32 D_801616C8; extern s32 D_80161704; extern s32 D_80161708; extern s32 D_8016170C; -extern s32 D_80161714; +extern s32 gTotalHits; // gTotalGameScore extern f32 D_80161720; extern f32 D_80161724; extern f32 D_80161728; @@ -835,7 +835,7 @@ extern f32 D_E9F1D0_801A7F68; extern f32 D_E9F1D0_801A7F70; extern f32 D_E9F1D0_801A7F78; -// ovl_EBFBE0 +// ovl_menu extern s32 D_EBFBE0_801B8220[]; // total hits ranking? see func_EBFBE0_80197DE4 extern s32 D_EBFBE0_801B8280; extern s32 D_EBFBE0_801B8284; diff --git a/linker_scripts/us/symbol_addrs.txt b/linker_scripts/us/symbol_addrs.txt index 1f05da8a..cf7e2386 100644 --- a/linker_scripts/us/symbol_addrs.txt +++ b/linker_scripts/us/symbol_addrs.txt @@ -86,9 +86,6 @@ D_800D8570 = 0x800D8570; // force_migration:True D_800D8594 = 0x800D8594; // force_migration:True D_800C93EC = 0x800C93EC; // force_migration:True -D_80177BD8 = 0x80177BD8; -D_80177C58 = 0x80177C58; - D_DF4260_8019B1EC = 0x8019B1EC; // force_migration:True segment:ovl_DF4260 D_E16C50_801C171C = 0x801C171C; // force_migration:True segment:ovl_E16C50 D_E16C50_801C1728 = 0x801C1728; // force_migration:True segment:ovl_E16C50 diff --git a/linker_scripts/us/symbol_addrs_EBFBE0.txt b/linker_scripts/us/symbol_addrs_EBFBE0.txt index 1c57ff32..1730b32c 100644 --- a/linker_scripts/us/symbol_addrs_EBFBE0.txt +++ b/linker_scripts/us/symbol_addrs_EBFBE0.txt @@ -1,9 +1,10 @@ -planet = 0x801AF4A0; // type:Planet segment:ovl_EBFBE0 size:0x38 -GetPlanetId = 0x801A6480; // force_migration:True segment:ovl_EBFBE0 -D_EBFBE0_801AE638 = 0x801AE638; // type:MenuContext segment:ovl_EBFBE0 size:0x240 -D_EBFBE0_801AE99C = 0x801AE99C; // force_migration:True segment:ovl_EBFBE0 +planet = 0x801AF4A0; // type:Planet segment:ovl_menu size:0x38 +sPlanetNames = 0x801AF9F4; // type:s32 segment:ovl_menu size:0xF +GetPlanetId = 0x801A6480; // force_migration:True segment:ovl_menu +D_EBFBE0_801AE638 = 0x801AE638; // type:MenuContext segment:ovl_menu size:0x240 +D_EBFBE0_801AE99C = 0x801AE99C; // force_migration:True segment:ovl_menu spectrumAnalizerMode = 0x801B9318; -D_EBFBE0_801B6E50 = 0x801B6E50; // force_migration:True segment:ovl_EBFBE0 +D_EBFBE0_801B6E50 = 0x801B6E50; // force_migration:True segment:ovl_menu D_EBFBE0_801B7BA0 = 0x801B7BA0; D_EBFBE0_801B827C = 0x801B827C; D_EBFBE0_801B9710 = 0x801B9710; @@ -105,3 +106,4 @@ D_EBFBE0_801CCC10 = 0x801CCC10; D_EBFBE0_801CCF10 = 0x801CCF10; D_EBFBE0_801CD210 = 0x801CD210; D_EBFBE0_801CD510 = 0x801CD510; +// sPlanetsPositions = 0x801CE960; // force_migration:True segment:ovl_menu \ No newline at end of file diff --git a/linker_scripts/us/symbol_addrs_engine.txt b/linker_scripts/us/symbol_addrs_engine.txt index 6e10615c..7ef01546 100644 --- a/linker_scripts/us/symbol_addrs_engine.txt +++ b/linker_scripts/us/symbol_addrs_engine.txt @@ -350,6 +350,8 @@ func_800A25DC = 0x800A25DC; func_800A26C0 = 0x800A26C0; func_800A3608 = 0x800A3608; +gTotalHits = 0x80161714; + // sf_hud gMedalFlashTimer = 0x801617B8; gMedalStatus = 0x801617B4; @@ -473,8 +475,10 @@ D_80177B8C = 0x80177B8C; D_80177B90 = 0x80177B90; D_80177BB0 = 0x80177BB0; D_Timer_80177BD0 = 0x80177BD0; +D_80177BD8 = 0x80177BD8; D_80177C30 = 0x80177C30; D_80177C50 = 0x80177C50; +D_80177C58 = 0x80177C58; gSoundMode = 0x80177C74; gVolumeSettings = 0x80177C80; D_80177C90 = 0x80177C90; diff --git a/linker_scripts/us/symbol_addrs_overlays.txt b/linker_scripts/us/symbol_addrs_overlays.txt index c84d45cf..81c75042 100644 --- a/linker_scripts/us/symbol_addrs_overlays.txt +++ b/linker_scripts/us/symbol_addrs_overlays.txt @@ -14,21 +14,21 @@ D_DF4260_8019A008 = 0x8019A008; func_E08400_80187B08 = 0x80187B08; func_E08400_80188A40 = 0x80188A40; D_E08400_80195D70 = 0x80195D70; -D_EBFBE0_801AE570 = 0x801AE570; // type:f32 size:0x18 force_migration:True segment:ovl_EBFBE0 -D_EBFBE0_801AE588 = 0x801AE588; // type:f32 size:0x18 force_migration:True segment:ovl_EBFBE0 -D_EBFBE0_801AE5A0 = 0x801AE5A0; // type:f32 size:0x18 force_migration:True segment:ovl_EBFBE0 -D_EBFBE0_801AE5B8 = 0x801AE5B8; // type:f32 size:0x18 force_migration:True segment:ovl_EBFBE0 -D_EBFBE0_801AE5D0 = 0x801AE5D0; // type:f32 size:0x18 force_migration:True segment:ovl_EBFBE0 +D_EBFBE0_801AE570 = 0x801AE570; // type:f32 size:0x18 force_migration:True segment:ovl_menu +D_EBFBE0_801AE588 = 0x801AE588; // type:f32 size:0x18 force_migration:True segment:ovl_menu +D_EBFBE0_801AE5A0 = 0x801AE5A0; // type:f32 size:0x18 force_migration:True segment:ovl_menu +D_EBFBE0_801AE5B8 = 0x801AE5B8; // type:f32 size:0x18 force_migration:True segment:ovl_menu +D_EBFBE0_801AE5D0 = 0x801AE5D0; // type:f32 size:0x18 force_migration:True segment:ovl_menu -D_EBFBE0_801AE9A0 = 0x801AE9A0; // type:f32 size:0x10 force_migration:True segment:ovl_EBFBE0 -D_EBFBE0_801AE9B0 = 0x801AE9B0; // type:f32 size:0x10 force_migration:True segment:ovl_EBFBE0 -D_EBFBE0_801AE9C0 = 0x801AE9C0; // type:s32 size:0xE0 force_migration:True segment:ovl_EBFBE0 -D_EBFBE0_801AEAA0 = 0x801AEAA0; // type:s32 size:0xA8 force_migration:True segment:ovl_EBFBE0 -D_EBFBE0_801AEB48 = 0x801AEB48; // type:s32 size:0xA8 force_migration:True segment:ovl_EBFBE0 -D_EBFBE0_801AED20 = 0x801AED20; // type:f32 size:0x8 force_migration:True segment:ovl_EBFBE0 -D_EBFBE0_801AEE6C = 0x801AEE6C; // type:s32 size:0x58 force_migration:True segment:ovl_EBFBE0 -D_EBFBE0_801AF25C = 0x801AF25C; // type:f32 size:0x18 force_migration:True segment:ovl_EBFBE0 -D_EBFBE0_801AF274 = 0x801AF274; // type:f32 size:0x18 force_migration:True segment:ovl_EBFBE0 +D_EBFBE0_801AE9A0 = 0x801AE9A0; // type:f32 size:0x10 force_migration:True segment:ovl_menu +D_EBFBE0_801AE9B0 = 0x801AE9B0; // type:f32 size:0x10 force_migration:True segment:ovl_menu +D_EBFBE0_801AE9C0 = 0x801AE9C0; // type:s32 size:0xE0 force_migration:True segment:ovl_menu +D_EBFBE0_801AEAA0 = 0x801AEAA0; // type:s32 size:0xA8 force_migration:True segment:ovl_menu +D_EBFBE0_801AEB48 = 0x801AEB48; // type:s32 size:0xA8 force_migration:True segment:ovl_menu +D_EBFBE0_801AED20 = 0x801AED20; // type:f32 size:0x8 force_migration:True segment:ovl_menu +D_EBFBE0_801AEE6C = 0x801AEE6C; // type:s32 size:0x58 force_migration:True segment:ovl_menu +D_EBFBE0_801AF25C = 0x801AF25C; // type:f32 size:0x18 force_migration:True segment:ovl_menu +D_EBFBE0_801AF274 = 0x801AF274; // type:f32 size:0x18 force_migration:True segment:ovl_menu func_E16C50_80187754 = 0x80187754; func_E16C50_801932AC = 0x801932AC; diff --git a/src/main/dmatable.c b/src/main/dmatable.c index a3efae89..3f260c4d 100644 --- a/src/main/dmatable.c +++ b/src/main/dmatable.c @@ -67,7 +67,7 @@ DmaEntry gDmaTable[90] = { { SEGMENT_ROM_START(ovl_E51970), { SEGMENT_ROM_START(ovl_E51970), SEGMENT_ROM_END(ovl_E51970) }, false }, { SEGMENT_ROM_START(ovl_E6A810), { SEGMENT_ROM_START(ovl_E6A810), SEGMENT_ROM_END(ovl_E6A810) }, false }, { SEGMENT_ROM_START(ovl_E9F1D0), { SEGMENT_ROM_START(ovl_E9F1D0), SEGMENT_ROM_END(ovl_E9F1D0) }, false }, - { SEGMENT_ROM_START(ovl_EBFBE0), { SEGMENT_ROM_START(ovl_EBFBE0), SEGMENT_ROM_END(ovl_EBFBE0) }, false }, + { SEGMENT_ROM_START(ovl_menu), { SEGMENT_ROM_START(ovl_menu), SEGMENT_ROM_END(ovl_menu) }, false }, { SEGMENT_ROM_START(ovl_EF0260), { SEGMENT_ROM_START(ovl_EF0260), SEGMENT_ROM_END(ovl_EF0260) }, false }, { SEGMENT_ROM_START(ovl_EFFA40), { SEGMENT_ROM_START(ovl_EFFA40), SEGMENT_ROM_END(ovl_EFFA40) }, false }, }; diff --git a/src/main/fox_load_inits.c b/src/main/fox_load_inits.c index 5b15e136..d83a8324 100644 --- a/src/main/fox_load_inits.c +++ b/src/main/fox_load_inits.c @@ -140,7 +140,7 @@ OverlayInit sOvlEF0260_Credits[6] = { }; OverlayInit sOvlEBFBE0_Title[1] = { - { OVERLAY_OFFSETS(ovl_EBFBE0), + { OVERLAY_OFFSETS(ovl_menu), { /* 0x1 */ NO_SEGMENT, /* 0x2 */ NO_SEGMENT, /* 0x3 */ ROM_SEGMENT(ast_8BFC00), @@ -159,7 +159,7 @@ OverlayInit sOvlEBFBE0_Title[1] = { }; OverlayInit sOvlEBFBE0_Menu[1] = { - { OVERLAY_OFFSETS(ovl_EBFBE0), + { OVERLAY_OFFSETS(ovl_menu), { /* 0x1 */ NO_SEGMENT, /* 0x2 */ NO_SEGMENT, /* 0x3 */ NO_SEGMENT, @@ -178,7 +178,7 @@ OverlayInit sOvlEBFBE0_Menu[1] = { }; OverlayInit sOvlEBFBE0_Map[1] = { - { OVERLAY_OFFSETS(ovl_EBFBE0), + { OVERLAY_OFFSETS(ovl_menu), { /* 0x1 */ NO_SEGMENT, /* 0x2 */ NO_SEGMENT, /* 0x3 */ ROM_SEGMENT(ast_8BFC00), @@ -197,7 +197,7 @@ OverlayInit sOvlEBFBE0_Map[1] = { }; OverlayInit sOvlEBFBE0_State5[1] = { - { OVERLAY_OFFSETS(ovl_EBFBE0), + { OVERLAY_OFFSETS(ovl_menu), { /* 0x1 */ NO_SEGMENT, /* 0x2 */ NO_SEGMENT, /* 0x3 */ NO_SEGMENT, diff --git a/src/main/fox_play.c b/src/main/fox_play.c index 2002b7af..17961c2e 100644 --- a/src/main/fox_play.c +++ b/src/main/fox_play.c @@ -4283,7 +4283,7 @@ void func_800B0F50(Player* playerx) { D_80177CD0[j] = D_80177CF0[j] = 1; } gLaserStrength[gPlayerNum] = LASERS_SINGLE; - gGoldRingCount[0] = D_80161A94[0] = D_80161714 = 0; + gGoldRingCount[0] = D_80161A94[0] = gTotalHits = 0; gLifeCount[gPlayerNum] = 2; gBombCount[gPlayerNum] = 3; D_80177B8C = 1; diff --git a/src/overlays/ovl_EBFBE0/EBFBE0.c b/src/overlays/ovl_menu/EBFBE0.c similarity index 100% rename from src/overlays/ovl_EBFBE0/EBFBE0.c rename to src/overlays/ovl_menu/EBFBE0.c diff --git a/src/overlays/ovl_EBFBE0/ED6EC0.c b/src/overlays/ovl_menu/fox_map.c similarity index 52% rename from src/overlays/ovl_EBFBE0/ED6EC0.c rename to src/overlays/ovl_menu/fox_map.c index a3629e27..906d301b 100644 --- a/src/overlays/ovl_EBFBE0/ED6EC0.c +++ b/src/overlays/ovl_menu/fox_map.c @@ -2,6 +2,8 @@ #include "fox_map.h" #include "sf64level.h" +//! TODO: IMPORT BSS + typedef struct { /* 0x0 */ f32 angle; /* 0x4 */ f32 x; @@ -43,58 +45,1099 @@ typedef struct { /* 0xC */ f32 posX; } Texture; // size = 0x10 -extern Planet planet[15]; -extern s32 D_EBFBE0_801AF420[2]; -extern Gfx* D_EBFBE0_801AF824[4]; -extern Texture D_EBFBE0_801AF834[14]; -extern Texture D_EBFBE0_801AF914[14]; -extern u16* D_EBFBE0_801AF428[15][2]; -extern Gfx* D_EBFBE0_801AFA30[2]; -extern ObjPosition D_EBFBE0_801AFA38[]; -extern UnkStruct_D_EBFBE0_801AFD18 D_EBFBE0_801AFD18[24]; -extern f32 D_EBFBE0_801AFFB8[]; -extern f32 D_EBFBE0_801AFFF4; // yRot of something -extern f32 D_EBFBE0_801AFFF8; // xRot of something -extern f32 D_EBFBE0_801AFFFC; // yRot of something -extern f32 D_EBFBE0_801B0000; // xRot of something -extern s32 D_EBFBE0_801B0004[47]; -extern s32 D_EBFBE0_801B00C0[47][96]; -extern Gfx D_EBFBE0_801B4A40[]; -extern void* D_EBFBE0_801B68D4[]; -extern Gfx* D_EBFBE0_801B68F8[]; -extern f32 D_EBFBE0_801B69D4[8]; -extern f32 D_EBFBE0_801B69F4[8]; -extern f32 D_EBFBE0_801B6A14[8]; -extern f32* D_EBFBE0_801B6A34[2]; -extern f32* D_EBFBE0_801B6A3C[2]; -extern f32* D_EBFBE0_801B6A44[2]; -extern f32 D_EBFBE0_801B6A78; // in-func static -extern f32 D_EBFBE0_801B6A7C; -extern s32 D_EBFBE0_801B6A84[]; -extern s32 D_EBFBE0_801B6B24[]; // data -extern f32 D_EBFBE0_801B6B30; +static s32 D_EBFBE0_801AF420[2] = { 0x0000000A, 0x00000014 }; + +static u16* D_EBFBE0_801AF428[15][2] = { + gMsg_ID_1220, gMsg_ID_1230, gMsg_ID_1320, gMsg_ID_1330, gMsg_ID_1300, gMsg_ID_1310, gMsg_ID_1420, gMsg_ID_1430, + gMsg_ID_1260, gMsg_ID_1270, gMsg_ID_1440, gMsg_ID_1450, gMsg_ID_1360, gMsg_ID_1370, gMsg_ID_1340, gMsg_ID_1350, + gMsg_ID_1400, gMsg_ID_1410, gMsg_ID_1200, gMsg_ID_1210, gMsg_ID_1240, gMsg_ID_1250, gMsg_ID_1380, gMsg_ID_1390, + gMsg_ID_1280, gMsg_ID_1290, NULL, NULL, gMsg_ID_1460, gMsg_ID_1470, +}; + +static Planet planet[PLANET_MAX] = { + /* PLANET_METEO */ + { 0, 1150.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, -130.0f, 1.0f, 0, 0, PLANET_FORTUNA, -1, PLANET_KATINA }, + /* PLANET_AREA_6 */ + { 1, 1400.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, -315.0f, 0.15f, 0, 2, -1, -1, -1 }, + /* PLANET_BOLSE */ + { 2, 1400.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, -345.0f, 0.15f, 0, 2, -1, -1, -1 }, + /* PLANET_SECTOR_Z */ + { 3, 1125.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, -285.0f, 2.5f * 2.0f, 0, 1, PLANET_BOLSE, PLANET_AREA_6, -1 }, + /* PLANET_SECTOR_X */ + { 4, 750.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, -60.0f, 2.5f * 2.0f, 0, 1, PLANET_TITANIA, PLANET_MACBETH, + PLANET_SECTOR_Z }, + /* PLANET_SECTOR_Y */ + { 5, 1125.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, -190.0f, 2.5f * 2.0f, 0, 1, PLANET_KATINA, PLANET_AQUAS, -1 }, + /* PLANET_KATINA */ + { 6, 750.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, -150.0f, 2.5f, 0, 4, PLANET_SECTOR_X, PLANET_SOLAR, -1 }, + /* PLANET_MACBETH */ + { 7, 825.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, -330.0f, 2.5f, 0, 4, PLANET_BOLSE, PLANET_AREA_6, -1 }, + /* PLANET_ZONESS */ + { 8, 900.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, -260.0f, 2.5f, 0, 4, PLANET_MACBETH, PLANET_SECTOR_Z, -1 }, + /* PLANET_CORNERIA */ + { 9, 1500.0f, 0.0f, 10.0f, 0.0f, 0.0f, 0.0f, -150.0f, 5.0f, 0, 4, PLANET_METEO, PLANET_SECTOR_Y, -1 }, + /* PLANET_TITANIA */ + { 10, 975.0f, 0.0f, -10.0f, 0.0f, 0.0f, 0.0f, -375.0f, 2.5f, 0, 4, PLANET_BOLSE, -1, -1 }, + /* PLANET_AQUAS */ + { 11, 900.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, -220.0f, 2.5f, 0, 4, PLANET_ZONESS, -1, -1 }, + /* PLANET_FORTUNA */ + { 12, 975.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, -105.0f, 2.5f, 0, 4, PLANET_SECTOR_X, PLANET_SOLAR, -1 }, + /* PLANET_VENOM */ + { 13, 1800.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, -330.0f, 9.0f, 0, 4, -1, -1, -1 }, + /* PLANET_SOLAR */ + { 14, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 10.0f, 0, 3, PLANET_MACBETH, -1, -1 }, +}; + +// unused +static PlanetId D_EBFBE0_801AF7E8[] = { + PLANET_CORNERIA, PLANET_METEO, PLANET_TITANIA, PLANET_SECTOR_X, PLANET_AQUAS, + PLANET_BOLSE, PLANET_VENOM, PLANET_FORTUNA, PLANET_AREA_6, PLANET_MACBETH, + PLANET_SECTOR_Z, PLANET_ZONESS, PLANET_KATINA, PLANET_SECTOR_Y, PLANET_SOLAR, +}; + +static Gfx* D_EBFBE0_801AF824[4] = { + (Gfx*) 0x0604A710, + (Gfx*) 0x0604A400, + (Gfx*) 0x0604A190, + (Gfx*) 0x06049F80, +}; + +static Texture D_EBFBE0_801AF834[14] = { + { (u8*) 0x06007B90, 128, 28, 95.0f }, { (u8*) 0x060030D0, 96, 28, 110.0f }, { (u8*) 0x060131A0, 176, 12, 73.0f }, + { (u8*) 0x06009AD0, 168, 28, 77.0f }, { (u8*) 0x0600B9B0, 168, 28, 74.0f }, { (u8*) 0x06001C80, 96, 13, 106.0f }, + { (u8*) 0x06011660, 176, 12, 75.0f }, { (u8*) 0x06010010, 112, 13, 109.0f }, { (u8*) 0x06017640, 112, 28, 101.0f }, + { (u8*) 0x06015CE0, 96, 28, 108.0f }, { (u8*) 0x0600E210, 160, 28, 78.0f }, { (u8*) 0x06014360, 176, 12, 73.0f }, + { (u8*) 0x06004AC0, 168, 19, 72.0f }, { (u8*) 0x06006320, 104, 28, 105.0f }, +}; + +static Texture D_EBFBE0_801AF914[] = { + { (u8*) 0x06008990, 232, 19, 46.0f }, { (u8*) 0x06003B50, 208, 19, 56.0f }, { (u8*) 0x060139E0, 128, 19, 98.0f }, + { (u8*) 0x0600AD30, 168, 19, 77.0f }, { (u8*) 0x0600CC10, 128, 19, 95.0f }, { (u8*) 0x06002160, 208, 19, 57.0f }, + { (u8*) 0x06011EA0, 256, 19, 40.0f }, { (u8*) 0x060105C0, 224, 19, 49.0f }, { (u8*) 0x06018280, 184, 19, 70.0f }, + { (u8*) 0x06016760, 200, 18, 61.0f }, { (u8*) 0x0600F390, 168, 19, 75.0f }, { (u8*) 0x06014BA0, 232, 19, 43.0f }, + { (u8*) 0x06005740, 160, 19, 81.0f }, { (u8*) 0x06006E80, 176, 19, 70.0f }, +}; + +static char* sPlanetNames[] = { + "ME", "A6", "BO", "SZ", "SX", "SY", "KA", "MA", "ZO", "CO", "TI", "AQ", "FO", "VE", "SO", +}; + +static Gfx* D_EBFBE0_801AFA30[2] = { + (Gfx*) 0x06055F20, + (Gfx*) 0x06051D20, +}; + +static ObjPosition D_EBFBE0_801AFA38[] = { + { -491.0f, 1170.0f, 20.0f, 0.71f }, { -488.0f, 1135.0f, 15.0f, 0.6f }, { -496.0f, 1090.0f, 0.0f, 0.50f }, + { -489.0f, 1200.0f, 0.0f, 0.6f }, { -489.0f, 1150.0f, -15.0f, 0.80f }, { -487.0f, 1143.0f, -15.0f, 0.8f }, + { -493.0f, 1182.0f, -20.0f, 0.90f }, { -491.0f, 1080.0f, -25.0f, 0.8f }, { -497.0f, 1114.0f, -25.0f, 0.70f }, + { -497.0f, 1164.0f, -20.0f, 0.9f }, { -485.0f, 1206.0f, 15.0f, 1.10f }, { -488.0f, 1213.0f, -20.0f, 1.1f }, + { -485.0f, 1257.0f, 0.0f, 1.10f }, { -491.0f, 1213.0f, -20.0f, 0.9f }, { -484.0f, 1295.0f, 0.0f, 0.80f }, + { -487.0f, 1277.0f, 20.0f, 0.8f }, { -485.0f, 1310.0f, 25.0f, 0.70f }, { -485.0f, 1331.0f, 0.0f, 0.8f }, + { -493.0f, 1118.0f, 15.0f, 0.80f }, { -494.0f, 1068.0f, 30.0f, 0.6f }, { -504.0f, 1018.0f, -30.0f, 0.50f }, + { -492.0f, 1071.0f, -10.0f, 0.6f }, { -494.0f, 1164.0f, -10.0f, 0.50f }, { -498.0f, 1091.0f, 0.0f, 0.5f }, + { -493.0f, 1082.0f, 0.0f, 0.60f }, { -498.0f, 1141.0f, 15.0f, 0.7f }, { -498.0f, 1034.0f, 15.0f, 0.70f }, + { -504.0f, 1041.0f, 20.0f, 0.8f }, { -507.0f, 1076.0f, 25.0f, 0.70f }, { -504.0f, 1092.0f, 0.0f, 0.8f }, + { -499.0f, 1076.0f, 20.0f, 1.00f }, { -519.0f, 1084.0f, -15.0f, 1.0f }, { -506.0f, 1133.0f, 20.0f, 1.10f }, + { -502.0f, 1144.0f, 0.0f, 1.0f }, { -514.0f, 1109.0f, -10.0f, 0.90f }, { -521.0f, 1136.0f, -20.0f, 0.8f }, + { -511.0f, 1052.0f, 20.0f, 0.80f }, { -515.0f, 1142.0f, -25.0f, 0.6f }, { -518.0f, 1138.0f, -20.0f, 0.80f }, + { -512.0f, 1099.0f, -15.0f, 0.5f }, { -523.0f, 1179.0f, -30.0f, 0.70f }, { -519.0f, 1176.0f, -30.0f, 0.5f }, +}; + +static ObjPosition D_EBFBE0_801AFCD8[4] = { + { 50.0f, 1410.0f, 40.0f, 0.10f }, + { 35.0f, 1235.0f, 40.0f, 0.03f }, + { 42.0f, 1270.0f, 60.0f, 0.05f }, + { 35.0f, 1280.0f, 20.0f, 0.05f }, +}; + +static UnkStruct_D_EBFBE0_801AFD18 D_EBFBE0_801AFD18[24] = { + { 0, PLANET_CORNERIA, PLANET_METEO, 5, 0, 0, 0 }, { 0, PLANET_METEO, PLANET_FORTUNA, 5, 0, 0, 0 }, + { 0, PLANET_FORTUNA, PLANET_SECTOR_X, 5, 0, 0, 0 }, { 0, PLANET_SECTOR_X, PLANET_TITANIA, 5, 0, 0, 0 }, + { 0, PLANET_TITANIA, PLANET_BOLSE, 5, 0, 0, 0 }, { 0, PLANET_KATINA, PLANET_SECTOR_X, 5, 0, 0, 0 }, + { 0, PLANET_MACBETH, PLANET_BOLSE, 5, 0, 0, 0 }, { 0, PLANET_SECTOR_Z, PLANET_BOLSE, 5, 0, 0, 0 }, + { 0, PLANET_BOLSE, PLANET_VENOM, 5, 0, 0, 0 }, { 1, PLANET_SECTOR_Y, PLANET_KATINA, 5, 0, 0, 0 }, + { 1, PLANET_KATINA, PLANET_SOLAR, 5, 0, 0, 0 }, { 1, PLANET_SOLAR, PLANET_MACBETH, 5, 0, 0, 0 }, + { 1, PLANET_SECTOR_X, PLANET_MACBETH, 5, 0, 0, 0 }, { 1, PLANET_FORTUNA, PLANET_SOLAR, 5, 0, 0, 0 }, + { 1, PLANET_ZONESS, PLANET_MACBETH, 5, 0, 0, 0 }, { 2, PLANET_CORNERIA, PLANET_SECTOR_Y, 5, 0, 0, 0 }, + { 2, PLANET_SECTOR_Y, PLANET_AQUAS, 5, 0, 0, 0 }, { 2, PLANET_AQUAS, PLANET_ZONESS, 5, 0, 0, 0 }, + { 2, PLANET_ZONESS, PLANET_SECTOR_Z, 5, 0, 0, 0 }, { 2, PLANET_SECTOR_Z, PLANET_AREA_6, 5, 0, 0, 0 }, + { 2, PLANET_MACBETH, PLANET_AREA_6, 5, 0, 0, 0 }, { 2, PLANET_AREA_6, PLANET_VENOM, 5, 0, 0, 0 }, + { 3, PLANET_METEO, PLANET_KATINA, 5, 0, 0, 0 }, { 4, PLANET_SECTOR_X, PLANET_SECTOR_Z, 10, 0, 0, 0 }, +}; + +static f32 D_EBFBE0_801AFFB8[] = { + 90.0f, 170.0f, 130.0f, 100.0f, 100.0f, 100.0f, 80.0f, 80.0f, 80.0f, 150.0f, 80.0f, 80.0f, 80.0f, 270.0f, 250.0f, +}; + +static f32 D_EBFBE0_801AFFF4 = 0.0f; // yRot of something +static f32 D_EBFBE0_801AFFF8 = 0.0f; // xRot of something +static f32 D_EBFBE0_801AFFFC = 0.0f; // yRot of something +static f32 D_EBFBE0_801B0000 = 0.0f; // xRot of something + +static s32 D_EBFBE0_801B0004[47] = { + 39, 35, 32, 30, 27, 26, 24, 22, 21, 20, 18, 17, 16, 15, 14, 13, 12, 12, 11, 10, 9, 9, 8, 8, + 7, 6, 6, 6, 5, 5, 4, 4, 4, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, +}; + +// Looks like a quarter of a circle +static s32 D_EBFBE0_801B00C0[47][96] = { + { + 0, + 2, + 2, + 3, + 4, + 4, + 5, + 5, + 6, + 6, + 7, + 7, + 8, + 8, + 9, + 9, + 10, + 11, + }, + { + 0, 2, 3, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 15, 16, 17, + }, + { + 0, 2, 3, 4, 5, 6, 6, 7, 8, 8, 9, 9, 10, 10, 11, 11, + 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 19, 20, 21, + }, + { + 0, 2, 4, 5, 5, 6, 7, 7, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, + 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 21, 22, 23, 24, + }, + { + 0, 3, 4, 5, 6, 7, 7, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, + 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 23, 23, 24, 25, 26, 27, 28, + }, + { + 0, 3, 4, 5, 6, 7, 7, 8, 9, 9, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, + 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 25, 25, 26, 27, 28, 29, + }, + { + 0, 3, 4, 5, 6, 7, 8, 9, 9, 10, 10, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, + 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 27, 27, 28, 29, 30, 31, 32, + }, + { + 0, 3, 4, 6, 7, 7, 8, 9, 10, 10, 11, 11, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, + 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 29, 29, 30, 31, 32, 33, 34, 35, + }, + { + 0, 3, 5, 6, 7, 8, 8, 9, 10, 10, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, + 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 29, 29, 30, 31, 31, 32, 33, 34, 35, 37, + }, + { + 0, 3, 5, 6, 7, 8, 8, 9, 10, 11, 11, 12, 12, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, + 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 31, 31, 32, 33, 34, 34, 35, 37, 38, + }, + { + 0, 3, 5, 6, 7, 8, 9, 10, 10, 11, 12, 12, 13, 13, 14, 15, 15, 16, 16, 17, + 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, + 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 33, 33, 34, 35, 35, 36, 37, 38, 39, 41, + }, + { + 0, 3, 5, 6, 7, 8, 9, 10, 10, 11, 12, 12, 13, 14, 14, 15, 15, 16, 16, 17, 17, + 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, + 28, 29, 29, 30, 30, 31, 32, 32, 33, 33, 34, 35, 35, 36, 37, 38, 39, 40, 41, 42, + }, + { + 0, 3, 5, 6, 7, 8, 9, 10, 11, 11, 12, 13, 13, 14, 14, 15, 16, 16, 17, 17, 18, 18, + 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, + 30, 30, 31, 31, 32, 32, 33, 33, 34, 35, 35, 36, 37, 37, 38, 39, 40, 41, 42, 44, + }, + { + 0, 3, 5, 6, 7, 8, 9, 10, 11, 11, 12, 13, 13, 14, 15, 15, 16, 16, 17, 17, 18, 18, + 19, 20, 20, 21, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, + 30, 30, 31, 31, 32, 32, 33, 34, 34, 35, 35, 36, 37, 37, 38, 39, 40, 40, 41, 42, 44, 45, + }, + { + 0, 3, 5, 6, 7, 8, 9, 10, 11, 12, 12, 13, 14, 14, 15, 15, 16, 17, 17, 18, 18, 19, 19, + 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, + 31, 32, 32, 33, 33, 34, 34, 35, 35, 36, 37, 37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 47, + }, + { + 0, 4, 5, 7, 8, 9, 9, 10, 11, 12, 13, 13, 14, 14, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, + 21, 21, 22, 22, 23, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, + 32, 33, 33, 34, 34, 35, 36, 36, 37, 37, 38, 39, 39, 40, 41, 41, 42, 43, 44, 45, 47, 48, + }, + { + 0, 4, 5, 7, 8, 9, 10, 10, 11, 12, 13, 13, 14, 15, 15, 16, 16, 17, 18, 18, 19, 19, 20, 20, + 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, + 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 38, 39, 39, 40, 41, 41, 42, 43, 44, 45, 46, 47, 48, 50, + }, + { + 0, 4, 5, 7, 8, 9, 10, 10, 11, 12, 13, 13, 14, 15, 15, 16, 16, 17, 18, 18, 19, 19, 20, 20, + 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, + 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 38, 39, 39, 40, 41, 41, 42, 43, 44, 45, 46, 47, 48, 50, + }, + { + 0, 4, 5, 7, 8, 9, 10, 11, 11, 12, 13, 14, 14, 15, 15, 16, 17, 17, 18, 18, 19, 19, 20, 21, 21, + 22, 22, 23, 23, 24, 24, 25, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, + 34, 34, 35, 35, 36, 36, 37, 38, 38, 39, 39, 40, 41, 41, 42, 43, 43, 44, 45, 46, 47, 48, 49, 51, + }, + { + 0, 4, 5, 7, 8, 9, 10, 11, 12, 12, 13, 14, 14, 15, 16, 16, 17, 17, 18, 19, 19, 20, 20, 21, 21, 22, + 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 34, 35, + 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 41, 41, 42, 43, 43, 44, 45, 46, 46, 47, 48, 50, 51, 53, + }, + { + 0, 4, 6, 7, 8, 9, 10, 11, 12, 12, 13, 14, 15, 15, 16, 16, 17, 18, 18, 19, 19, 20, 20, 21, 22, 22, + 23, 23, 24, 24, 25, 25, 26, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 34, 35, + 35, 36, 36, 37, 37, 38, 38, 39, 40, 40, 41, 41, 42, 43, 43, 44, 45, 45, 46, 47, 48, 49, 50, 51, 52, 54, + }, + { + 0, 4, 6, 7, 8, 9, 10, 11, 12, 12, 13, 14, 15, 15, 16, 16, 17, 18, 18, 19, 19, 20, 20, 21, 22, 22, + 23, 23, 24, 24, 25, 25, 26, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 34, 35, + 35, 36, 36, 37, 37, 38, 38, 39, 40, 40, 41, 41, 42, 43, 43, 44, 45, 45, 46, 47, 48, 49, 50, 51, 52, 54, + }, + { + 0, 4, 6, 7, 8, 9, 10, 11, 12, 13, 13, 14, 15, 15, 16, 17, 17, 18, 18, 19, 20, 20, 21, 21, 22, 22, 23, + 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, + 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 43, 43, 44, 45, 45, 46, 47, 47, 48, 49, 50, 51, 52, 54, 56, + }, + { + 0, 4, 6, 7, 8, 9, 10, 11, 12, 13, 13, 14, 15, 15, 16, 17, 17, 18, 18, 19, 20, 20, 21, 21, 22, 22, 23, + 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, + 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 43, 43, 44, 45, 45, 46, 47, 47, 48, 49, 50, 51, 52, 54, 56, + }, + { + 0, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 14, 15, 16, 16, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 23, 23, 24, + 24, 25, 25, 26, 26, 27, 27, 28, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, + 38, 38, 39, 39, 40, 40, 41, 42, 42, 43, 43, 44, 45, 45, 46, 47, 47, 48, 49, 50, 51, 52, 53, 54, 55, 57, + }, + { + 0, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 14, 15, 16, 16, 17, 18, 18, 19, 19, 20, 21, 21, 22, 22, 23, 23, 24, + 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 38, + 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 45, 45, 46, 47, 47, 48, 49, 49, 50, 51, 52, 53, 54, 55, 57, 58, + }, + { + 0, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 14, 15, 16, 16, 17, 18, 18, 19, 19, 20, 21, 21, 22, 22, 23, 23, 24, + 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 38, + 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 45, 45, 46, 47, 47, 48, 49, 49, 50, 51, 52, 53, 54, 55, 57, 58, + }, + { + 0, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 14, 15, 16, 16, 17, 18, 18, 19, 19, 20, 21, 21, 22, 22, 23, 23, 24, + 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 38, + 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 45, 45, 46, 47, 47, 48, 49, 49, 50, 51, 52, 53, 54, 55, 57, 58, + }, + { + 0, 4, 6, 7, 8, 10, 11, 11, 12, 13, 14, 15, 15, 16, 17, 17, 18, 19, 19, 20, 20, 21, + 21, 22, 22, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 30, 31, 31, 32, + 32, 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, + 44, 44, 45, 45, 46, 47, 47, 48, 49, 49, 50, 51, 52, 52, 53, 54, 55, 57, 58, 60, + }, + { + 0, 4, 6, 7, 8, 10, 11, 11, 12, 13, 14, 15, 15, 16, 17, 17, 18, 19, 19, 20, 20, 21, + 21, 22, 22, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 30, 31, 31, 32, + 32, 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, + 44, 44, 45, 45, 46, 47, 47, 48, 49, 49, 50, 51, 52, 52, 53, 54, 55, 57, 58, 60, + }, + { + 0, 4, 6, 7, 9, 10, 11, 12, 12, 13, 14, 15, 15, 16, 17, 17, 18, 19, 19, 20, 20, 21, + 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, + 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, + 44, 44, 45, 45, 46, 47, 47, 48, 49, 49, 50, 51, 51, 52, 53, 54, 55, 56, 57, 58, 59, 61, + }, + { + 0, 4, 6, 7, 9, 10, 11, 12, 12, 13, 14, 15, 15, 16, 17, 17, 18, 19, 19, 20, 20, 21, + 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, + 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, + 44, 44, 45, 45, 46, 47, 47, 48, 49, 49, 50, 51, 51, 52, 53, 54, 55, 56, 57, 58, 59, 61, + }, + { + 0, 4, 6, 7, 9, 10, 11, 12, 12, 13, 14, 15, 15, 16, 17, 17, 18, 19, 19, 20, 20, 21, + 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, + 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, + 44, 44, 45, 45, 46, 47, 47, 48, 49, 49, 50, 51, 51, 52, 53, 54, 55, 56, 57, 58, 59, 61, + }, + { + 0, 4, 6, 7, 9, 10, 11, 12, 13, 13, 14, 15, 16, 16, 17, 18, 18, 19, 20, 20, 21, 21, 22, + 22, 23, 23, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 32, 33, 33, + 34, 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, + 46, 46, 47, 47, 48, 49, 49, 50, 51, 51, 52, 53, 53, 54, 55, 56, 57, 58, 59, 61, 63, + }, + { + 0, 4, 6, 7, 9, 10, 11, 12, 13, 13, 14, 15, 16, 16, 17, 18, 18, 19, 20, 20, 21, 21, 22, + 22, 23, 23, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 32, 33, 33, + 34, 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, + 46, 46, 47, 47, 48, 49, 49, 50, 51, 51, 52, 53, 53, 54, 55, 56, 57, 58, 59, 61, 63, + }, + { + 0, 4, 6, 7, 9, 10, 11, 12, 13, 13, 14, 15, 16, 16, 17, 18, 18, 19, 20, 20, 21, 21, 22, + 22, 23, 23, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 32, 33, 33, + 34, 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, + 46, 46, 47, 47, 48, 49, 49, 50, 51, 51, 52, 53, 53, 54, 55, 56, 57, 58, 59, 61, 63, + }, + { + 0, 4, 6, 7, 9, 10, 11, 12, 13, 13, 14, 15, 16, 16, 17, 18, 18, 19, 20, 20, 21, 21, 22, + 22, 23, 23, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 32, 33, 33, + 34, 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, + 46, 46, 47, 47, 48, 49, 49, 50, 51, 51, 52, 53, 53, 54, 55, 56, 57, 58, 59, 61, 63, + }, + { + 0, 4, 6, 8, 9, 10, 11, 12, 13, 14, 14, 15, 16, 17, 17, 18, 18, 19, 20, 20, 21, 21, 22, + 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, + 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, 45, + 46, 46, 47, 47, 48, 49, 49, 50, 51, 51, 52, 53, 53, 54, 55, 56, 57, 57, 58, 60, 61, 62, 64, + }, + { + 0, 4, 6, 8, 9, 10, 11, 12, 13, 14, 14, 15, 16, 17, 17, 18, 18, 19, 20, 20, 21, 21, 22, + 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, + 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, 45, + 46, 46, 47, 47, 48, 49, 49, 50, 51, 51, 52, 53, 53, 54, 55, 56, 57, 57, 58, 60, 61, 62, 64, + }, + { + 0, 4, 6, 8, 9, 10, 11, 12, 13, 14, 14, 15, 16, 17, 17, 18, 18, 19, 20, 20, 21, 21, 22, + 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, + 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, 45, + 46, 46, 47, 47, 48, 49, 49, 50, 51, 51, 52, 53, 53, 54, 55, 56, 57, 57, 58, 60, 61, 62, 64, + }, + { + 0, 4, 6, 8, 9, 10, 11, 12, 13, 14, 14, 15, 16, 17, 17, 18, 18, 19, 20, 20, 21, 21, 22, + 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, + 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, 45, + 46, 46, 47, 47, 48, 49, 49, 50, 51, 51, 52, 53, 53, 54, 55, 56, 57, 57, 58, 60, 61, 62, 64, + }, + { + 0, 4, 6, 8, 9, 10, 11, 12, 13, 14, 14, 15, 16, 17, 17, 18, 18, 19, 20, 20, 21, 21, 22, + 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, + 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, 45, + 46, 46, 47, 47, 48, 49, 49, 50, 51, 51, 52, 53, 53, 54, 55, 56, 57, 57, 58, 60, 61, 62, 64, + }, + { + 0, 4, 6, 8, 9, 10, 11, 12, 13, 14, 14, 15, 16, 17, 17, 18, 18, 19, 20, 20, 21, 21, 22, + 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, + 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, 45, + 46, 46, 47, 47, 48, 49, 49, 50, 51, 51, 52, 53, 53, 54, 55, 56, 57, 57, 58, 60, 61, 62, 64, + }, + { + 0, 4, 6, 8, 9, 10, 11, 12, 13, 14, 14, 15, 16, 17, 17, 18, 18, 19, 20, 20, 21, 21, 22, + 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, + 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, 45, + 46, 46, 47, 47, 48, 49, 49, 50, 51, 51, 52, 53, 53, 54, 55, 56, 57, 57, 58, 60, 61, 62, 64, + }, + { + 0, 4, 6, 8, 9, 10, 11, 12, 13, 14, 14, 15, 16, 17, 17, 18, 18, 19, 20, 20, 21, 21, 22, + 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, + 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, 45, + 46, 46, 47, 47, 48, 49, 49, 50, 51, 51, 52, 53, 53, 54, 55, 56, 57, 57, 58, 60, 61, 62, 64, + }, + { + 0, 4, 6, 8, 9, 10, 11, 12, 13, 14, 14, 15, 16, 17, 17, 18, 18, 19, 20, 20, 21, 21, 22, + 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, + 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, 45, + 46, 46, 47, 47, 48, 49, 49, 50, 51, 51, 52, 53, 53, 54, 55, 56, 57, 57, 58, 60, 61, 62, 64, + }, + { + 0, 4, 6, 8, 9, 10, 11, 12, 13, 14, 14, 15, 16, 17, 17, 18, 19, 19, 20, 21, 21, 22, 22, 23, + 23, 24, 24, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 33, 34, 34, 35, + 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, 45, 46, 46, 47, + 48, 48, 49, 49, 50, 51, 51, 52, 52, 53, 54, 55, 55, 56, 57, 58, 59, 60, 61, 62, 64, 66, + }, +}; + +static Vtx D_EBFBE0_801B4740[] = { + { 0x001E, 0x001E, 0x0000, 0x0000, 0x0C00, 0x0000, 255, 255, 255, 255 }, + { 0xFFE2, 0x001E, 0x0000, 0x0000, 0x0000, 0x0000, 255, 255, 255, 255 }, + { 0xFFE2, 0x0019, 0x0000, 0x0000, 0x0000, 0x0100, 255, 255, 255, 255 }, + { 0x001E, 0x0019, 0x0000, 0x0000, 0x0C00, 0x0100, 255, 255, 255, 255 }, + { 0x001E, 0x0019, 0x0000, 0x0000, 0x0C00, 0x0000, 255, 255, 255, 255 }, + { 0xFFE2, 0x0019, 0x0000, 0x0000, 0x0000, 0x0000, 255, 255, 255, 255 }, + { 0xFFE2, 0x0014, 0x0000, 0x0000, 0x0000, 0x0100, 255, 255, 255, 255 }, + { 0x001E, 0x0014, 0x0000, 0x0000, 0x0C00, 0x0100, 255, 255, 255, 255 }, + { 0x001E, 0x0014, 0x0000, 0x0000, 0x0C00, 0x0000, 255, 255, 255, 255 }, + { 0xFFE2, 0x0014, 0x0000, 0x0000, 0x0000, 0x0000, 255, 255, 255, 255 }, + { 0xFFE2, 0x000F, 0x0000, 0x0000, 0x0000, 0x0100, 255, 255, 255, 255 }, + { 0x001E, 0x000F, 0x0000, 0x0000, 0x0C00, 0x0100, 255, 255, 255, 255 }, + { 0x001E, 0x000F, 0x0000, 0x0000, 0x0C00, 0x0000, 255, 255, 255, 255 }, + { 0xFFE2, 0x000F, 0x0000, 0x0000, 0x0000, 0x0000, 255, 255, 255, 255 }, + { 0xFFE2, 0x000A, 0x0000, 0x0000, 0x0000, 0x0100, 255, 255, 255, 255 }, + { 0x001E, 0x000A, 0x0000, 0x0000, 0x0C00, 0x0100, 255, 255, 255, 255 }, + { 0x001E, 0x000A, 0x0000, 0x0000, 0x0C00, 0x0000, 255, 255, 255, 255 }, + { 0xFFE2, 0x000A, 0x0000, 0x0000, 0x0000, 0x0000, 255, 255, 255, 255 }, + { 0xFFE2, 0x0005, 0x0000, 0x0000, 0x0000, 0x0100, 255, 255, 255, 255 }, + { 0x001E, 0x0005, 0x0000, 0x0000, 0x0C00, 0x0100, 255, 255, 255, 255 }, + { 0x001E, 0x0005, 0x0000, 0x0000, 0x0C00, 0x0000, 255, 255, 255, 255 }, + { 0xFFE2, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 255, 255, 255, 255 }, + { 0xFFE2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0100, 255, 255, 255, 255 }, + { 0x001E, 0x0000, 0x0000, 0x0000, 0x0C00, 0x0100, 255, 255, 255, 255 }, + { 0x001E, 0x0000, 0x0000, 0x0000, 0x0C00, 0x0000, 255, 255, 255, 255 }, + { 0xFFE2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 255, 255, 255, 255 }, + { 0xFFE2, 0xFFFB, 0x0000, 0x0000, 0x0000, 0x0100, 255, 255, 255, 255 }, + { 0x001E, 0xFFFB, 0x0000, 0x0000, 0x0C00, 0x0100, 255, 255, 255, 255 }, + { 0x001E, 0xFFFB, 0x0000, 0x0000, 0x0C00, 0x0000, 255, 255, 255, 255 }, + { 0xFFE2, 0xFFFB, 0x0000, 0x0000, 0x0000, 0x0000, 255, 255, 255, 255 }, + { 0xFFE2, 0xFFF6, 0x0000, 0x0000, 0x0000, 0x0100, 255, 255, 255, 255 }, + { 0x001E, 0xFFF6, 0x0000, 0x0000, 0x0C00, 0x0100, 255, 255, 255, 255 }, + { 0x001E, 0xFFF6, 0x0000, 0x0000, 0x0C00, 0x0000, 255, 255, 255, 255 }, + { 0xFFE2, 0xFFF6, 0x0000, 0x0000, 0x0000, 0x0000, 255, 255, 255, 255 }, + { 0xFFE2, 0xFFF1, 0x0000, 0x0000, 0x0000, 0x0100, 255, 255, 255, 255 }, + { 0x001E, 0xFFF1, 0x0000, 0x0000, 0x0C00, 0x0100, 255, 255, 255, 255 }, + { 0x001E, 0xFFF1, 0x0000, 0x0000, 0x0C00, 0x0000, 255, 255, 255, 255 }, + { 0xFFE2, 0xFFF1, 0x0000, 0x0000, 0x0000, 0x0000, 255, 255, 255, 255 }, + { 0xFFE2, 0xFFEC, 0x0000, 0x0000, 0x0000, 0x0100, 255, 255, 255, 255 }, + { 0x001E, 0xFFEC, 0x0000, 0x0000, 0x0C00, 0x0100, 255, 255, 255, 255 }, + { 0x001E, 0xFFEC, 0x0000, 0x0000, 0x0C00, 0x0000, 255, 255, 255, 255 }, + { 0xFFE2, 0xFFEC, 0x0000, 0x0000, 0x0000, 0x0000, 255, 255, 255, 255 }, + { 0xFFE2, 0xFFE7, 0x0000, 0x0000, 0x0000, 0x0100, 255, 255, 255, 255 }, + { 0x001E, 0xFFE7, 0x0000, 0x0000, 0x0C00, 0x0100, 255, 255, 255, 255 }, + { 0x001E, 0xFFE7, 0x0000, 0x0000, 0x0C00, 0x0000, 255, 255, 255, 255 }, + { 0xFFE2, 0xFFE7, 0x0000, 0x0000, 0x0000, 0x0000, 255, 255, 255, 255 }, + { 0xFFE2, 0xFFE2, 0x0000, 0x0000, 0x0000, 0x0100, 255, 255, 255, 255 }, + { 0x001E, 0xFFE2, 0x0000, 0x0000, 0x0C00, 0x0100, 255, 255, 255, 255 }, +}; + +Gfx D_EBFBE0_801B4A40[] = { + gsSPVertex(D_EBFBE0_801B4740, 16, 0), + gsDPLoadTextureBlock(D_EBFBE0_801B9410, G_IM_FMT_IA, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(1, 2, 3, 0, 0), + gsDPLoadTextureBlock(0x801B9710, G_IM_FMT_IA, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(5, 6, 7, 4, 0), + gsDPLoadTextureBlock(0x801B9A10, G_IM_FMT_IA, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(9, 10, 11, 8, 0), + gsDPLoadTextureBlock(0x801B9D10, G_IM_FMT_IA, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(13, 14, 15, 12, 0), + gsSPVertex(0x801B4840, 16, 0), + gsDPLoadTextureBlock(0x801BA010, G_IM_FMT_IA, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(1, 2, 3, 0, 0), + gsDPLoadTextureBlock(0x801BA310, G_IM_FMT_IA, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(5, 6, 7, 4, 0), + gsDPLoadTextureBlock(0x801BA610, G_IM_FMT_IA, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(9, 10, 11, 8, 0), + gsDPLoadTextureBlock(0x801BA910, G_IM_FMT_IA, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(13, 14, 15, 12, 0), + gsSPVertex(0x801B4940, 16, 0), + gsDPLoadTextureBlock(0x801BAC10, G_IM_FMT_IA, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(1, 2, 3, 0, 0), + gsDPLoadTextureBlock(0x801BAF10, G_IM_FMT_IA, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(5, 6, 7, 4, 0), + gsDPLoadTextureBlock(0x801BB210, G_IM_FMT_IA, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(9, 10, 11, 8, 0), + gsDPLoadTextureBlock(0x801BB510, G_IM_FMT_IA, G_IM_SIZ_8b, 96, 8, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(13, 14, 15, 12, 0), + gsDPPipeSync(), + gsDPSetTextureLUT(G_TT_NONE), + gsSPEndDisplayList(), +}; + +Gfx D_EBFBE0_801B4D70[] = { + gsDPLoadTLUT_pal256(0x06026C90), + gsSPVertex(D_EBFBE0_801B4740, 16, 0), + gsDPLoadTextureBlock(0x801BB810, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsDPSetTextureLUT(G_TT_RGBA16), + gsSP1Quadrangle(1, 2, 3, 0, 0), + gsDPLoadTextureBlock(0x801BBB10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(5, 6, 7, 4, 0), + gsDPLoadTextureBlock(0x801BBE10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(9, 10, 11, 8, 0), + gsDPLoadTextureBlock(0x801BC110, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(13, 14, 15, 12, 0), + gsSPVertex(0x801B4840, 16, 0), + gsDPLoadTextureBlock(0x801BC410, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(1, 2, 3, 0, 0), + gsDPLoadTextureBlock(0x801BC710, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(5, 6, 7, 4, 0), + gsDPLoadTextureBlock(0x801BCA10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(9, 10, 11, 8, 0), + gsDPLoadTextureBlock(0x801BCD10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(13, 14, 15, 12, 0), + gsSPVertex(0x801B4940, 16, 0), + gsDPLoadTextureBlock(0x801BD010, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(1, 2, 3, 0, 0), + gsDPLoadTextureBlock(0x801BD310, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(5, 6, 7, 4, 0), + gsDPLoadTextureBlock(0x801BD610, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(9, 10, 11, 8, 0), + gsDPLoadTextureBlock(0x801BD910, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 8, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(13, 14, 15, 12, 0), + gsDPPipeSync(), + gsDPSetTextureLUT(G_TT_NONE), + gsSPEndDisplayList(), +}; + +Gfx D_EBFBE0_801B50D8[] = { + gsDPLoadTLUT_pal256(0x06029170), + gsSPVertex(D_EBFBE0_801B4740, 16, 0), + gsDPLoadTextureBlock(0x801BDC10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsDPSetTextureLUT(G_TT_RGBA16), + gsSP1Quadrangle(1, 2, 3, 0, 0), + gsDPLoadTextureBlock(0x801BDF10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(5, 6, 7, 4, 0), + gsDPLoadTextureBlock(0x801BE210, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(9, 10, 11, 8, 0), + gsDPLoadTextureBlock(0x801BE510, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(13, 14, 15, 12, 0), + gsSPVertex(0x801B4840, 16, 0), + gsDPLoadTextureBlock(0x801BE810, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(1, 2, 3, 0, 0), + gsDPLoadTextureBlock(0x801BEB10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(5, 6, 7, 4, 0), + gsDPLoadTextureBlock(0x801BEE10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(9, 10, 11, 8, 0), + gsDPLoadTextureBlock(0x801BF110, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(13, 14, 15, 12, 0), + gsSPVertex(0x801B4940, 16, 0), + gsDPLoadTextureBlock(0x801BF410, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(1, 2, 3, 0, 0), + gsDPLoadTextureBlock(0x801BF710, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(5, 6, 7, 4, 0), + gsDPLoadTextureBlock(0x801BFA10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(9, 10, 11, 8, 0), + gsDPLoadTextureBlock(0x801BFD10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 8, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(13, 14, 15, 12, 0), + gsDPPipeSync(), + gsDPSetTextureLUT(G_TT_NONE), + gsSPEndDisplayList(), +}; + +Gfx D_EBFBE0_801B5440[] = { + gsDPLoadTLUT_pal256(0x06022340), + gsSPVertex(D_EBFBE0_801B4740, 16, 0), + gsDPLoadTextureBlock(0x801C0010, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsDPSetTextureLUT(G_TT_RGBA16), + gsSP1Quadrangle(1, 2, 3, 0, 0), + gsDPLoadTextureBlock(0x801C0310, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(5, 6, 7, 4, 0), + gsDPLoadTextureBlock(0x801C0610, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(9, 10, 11, 8, 0), + gsDPLoadTextureBlock(0x801C0910, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(13, 14, 15, 12, 0), + gsSPVertex(0x801B4840, 16, 0), + gsDPLoadTextureBlock(0x801C0C10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(1, 2, 3, 0, 0), + gsDPLoadTextureBlock(0x801C0F10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(5, 6, 7, 4, 0), + gsDPLoadTextureBlock(0x801C1210, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(9, 10, 11, 8, 0), + gsDPLoadTextureBlock(0x801C1510, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(13, 14, 15, 12, 0), + gsSPVertex(0x801B4940, 16, 0), + gsDPLoadTextureBlock(0x801C1810, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(1, 2, 3, 0, 0), + gsDPLoadTextureBlock(0x801C1B10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(5, 6, 7, 4, 0), + gsDPLoadTextureBlock(0x801C1E10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(9, 10, 11, 8, 0), + gsDPLoadTextureBlock(0x801C2110, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 8, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(13, 14, 15, 12, 0), + gsDPPipeSync(), + gsDPSetTextureLUT(G_TT_NONE), + gsSPEndDisplayList(), +}; + +Gfx D_EBFBE0_801B57A8[] = { + gsDPLoadTLUT_pal256(0x060247E0), + gsSPVertex(D_EBFBE0_801B4740, 16, 0), + gsDPLoadTextureBlock(0x801C2410, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsDPSetTextureLUT(G_TT_RGBA16), + gsSP1Quadrangle(1, 2, 3, 0, 0), + gsDPLoadTextureBlock(0x801C2710, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(5, 6, 7, 4, 0), + gsDPLoadTextureBlock(0x801C2A10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(9, 10, 11, 8, 0), + gsDPLoadTextureBlock(0x801C2D10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(13, 14, 15, 12, 0), + gsSPVertex(0x801B4840, 16, 0), + gsDPLoadTextureBlock(0x801C3010, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(1, 2, 3, 0, 0), + gsDPLoadTextureBlock(0x801C3310, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(5, 6, 7, 4, 0), + gsDPLoadTextureBlock(0x801C3610, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(9, 10, 11, 8, 0), + gsDPLoadTextureBlock(0x801C3910, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(13, 14, 15, 12, 0), + gsSPVertex(0x801B4940, 16, 0), + gsDPLoadTextureBlock(0x801C3C10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(1, 2, 3, 0, 0), + gsDPLoadTextureBlock(0x801C3F10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(5, 6, 7, 4, 0), + gsDPLoadTextureBlock(0x801C4210, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(9, 10, 11, 8, 0), + gsDPLoadTextureBlock(0x801C4510, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 8, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(13, 14, 15, 12, 0), + gsDPPipeSync(), + gsDPSetTextureLUT(G_TT_NONE), + gsSPEndDisplayList(), +}; + +Gfx D_EBFBE0_801B5B10[] = { + gsDPLoadTLUT_pal256(0x0602FF60), + gsSPVertex(D_EBFBE0_801B4740, 16, 0), + gsDPLoadTextureBlock(0x801C4810, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsDPSetTextureLUT(G_TT_RGBA16), + gsSP1Quadrangle(1, 2, 3, 0, 0), + gsDPLoadTextureBlock(0x801C4B10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(5, 6, 7, 4, 0), + gsDPLoadTextureBlock(0x801C4E10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(9, 10, 11, 8, 0), + gsDPLoadTextureBlock(0x801C5110, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(13, 14, 15, 12, 0), + gsSPVertex(0x801B4840, 16, 0), + gsDPLoadTextureBlock(0x801C5410, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(1, 2, 3, 0, 0), + gsDPLoadTextureBlock(0x801C5710, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(5, 6, 7, 4, 0), + gsDPLoadTextureBlock(0x801C5A10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(9, 10, 11, 8, 0), + gsDPLoadTextureBlock(0x801C5D10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(13, 14, 15, 12, 0), + gsSPVertex(0x801B4940, 16, 0), + gsDPLoadTextureBlock(0x801C6010, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(1, 2, 3, 0, 0), + gsDPLoadTextureBlock(0x801C6310, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(5, 6, 7, 4, 0), + gsDPLoadTextureBlock(0x801C6610, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(9, 10, 11, 8, 0), + gsDPLoadTextureBlock(0x801C6910, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 8, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(13, 14, 15, 12, 0), + gsDPPipeSync(), + gsDPSetTextureLUT(G_TT_NONE), + gsSPEndDisplayList(), +}; + +Gfx D_EBFBE0_801B5E78[] = { + gsDPLoadTLUT_pal256(0x0602B620), + gsSPVertex(D_EBFBE0_801B4740, 16, 0), + gsDPLoadTextureBlock(0x801C6C10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsDPSetTextureLUT(G_TT_RGBA16), + gsSP1Quadrangle(1, 2, 3, 0, 0), + gsDPLoadTextureBlock(0x801C6F10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(5, 6, 7, 4, 0), + gsDPLoadTextureBlock(0x801C7210, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(9, 10, 11, 8, 0), + gsDPLoadTextureBlock(0x801C7510, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(13, 14, 15, 12, 0), + gsSPVertex(0x801B4840, 16, 0), + gsDPLoadTextureBlock(0x801C7810, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(1, 2, 3, 0, 0), + gsDPLoadTextureBlock(0x801C7B10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(5, 6, 7, 4, 0), + gsDPLoadTextureBlock(0x801C7E10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(9, 10, 11, 8, 0), + gsDPLoadTextureBlock(0x801C8110, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(13, 14, 15, 12, 0), + gsSPVertex(0x801B4940, 16, 0), + gsDPLoadTextureBlock(0x801C8410, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(1, 2, 3, 0, 0), + gsDPLoadTextureBlock(0x801C8710, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(5, 6, 7, 4, 0), + gsDPLoadTextureBlock(0x801C8A10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(9, 10, 11, 8, 0), + gsDPLoadTextureBlock(0x801C8D10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 8, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(13, 14, 15, 12, 0), + gsDPPipeSync(), + gsDPSetTextureLUT(G_TT_NONE), + gsSPEndDisplayList(), +}; + +Gfx D_EBFBE0_801B61E0[] = { + gsDPLoadTLUT_pal256(0x0602DAD0), + gsSPVertex(D_EBFBE0_801B4740, 16, 0), + gsDPLoadTextureBlock(0x801C9010, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsDPSetTextureLUT(G_TT_RGBA16), + gsSP1Quadrangle(1, 2, 3, 0, 0), + gsDPLoadTextureBlock(0x801C9310, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(5, 6, 7, 4, 0), + gsDPLoadTextureBlock(0x801C9610, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(9, 10, 11, 8, 0), + gsDPLoadTextureBlock(0x801C9910, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(13, 14, 15, 12, 0), + gsSPVertex(0x801B4840, 16, 0), + gsDPLoadTextureBlock(0x801C9C10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(1, 2, 3, 0, 0), + gsDPLoadTextureBlock(0x801C9F10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(5, 6, 7, 4, 0), + gsDPLoadTextureBlock(0x801CA210, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(9, 10, 11, 8, 0), + gsDPLoadTextureBlock(0x801CA510, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(13, 14, 15, 12, 0), + gsSPVertex(0x801B4940, 16, 0), + gsDPLoadTextureBlock(0x801CA810, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(1, 2, 3, 0, 0), + gsDPLoadTextureBlock(0x801CAB10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(5, 6, 7, 4, 0), + gsDPLoadTextureBlock(0x801CAE10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(9, 10, 11, 8, 0), + gsDPLoadTextureBlock(0x801CB110, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 8, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(13, 14, 15, 12, 0), + gsDPPipeSync(), + gsDPSetTextureLUT(G_TT_NONE), + gsSPEndDisplayList(), +}; + +Gfx D_EBFBE0_801B6548[] = { + gsDPLoadTLUT_pal256(0x060323D0), + gsSPVertex(D_EBFBE0_801B4740, 16, 0), + gsDPLoadTextureBlock(0x801CB410, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsDPSetTextureLUT(G_TT_RGBA16), + gsSP1Quadrangle(1, 2, 3, 0, 0), + gsDPLoadTextureBlock(0x801CB710, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(5, 6, 7, 4, 0), + gsDPLoadTextureBlock(0x801CBA10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(9, 10, 11, 8, 0), + gsDPLoadTextureBlock(0x801CBD10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(13, 14, 15, 12, 0), + gsSPVertex(0x801B4840, 16, 0), + gsDPLoadTextureBlock(0x801CC010, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(1, 2, 3, 0, 0), + gsDPLoadTextureBlock(0x801CC310, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(5, 6, 7, 4, 0), + gsDPLoadTextureBlock(0x801CC610, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(9, 10, 11, 8, 0), + gsDPLoadTextureBlock(0x801CC910, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(13, 14, 15, 12, 0), + gsSPVertex(0x801B4940, 16, 0), + gsDPLoadTextureBlock(0x801CCC10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(1, 2, 3, 0, 0), + gsDPLoadTextureBlock(0x801CCF10, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(5, 6, 7, 4, 0), + gsDPLoadTextureBlock(0x801CD210, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 9, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(9, 10, 11, 8, 0), + gsDPLoadTextureBlock(0x801CD510, G_IM_FMT_CI, G_IM_SIZ_8b, 96, 8, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsSP1Quadrangle(13, 14, 15, 12, 0), + gsDPPipeSync(), + gsDPSetTextureLUT(G_TT_NONE), + gsSPEndDisplayList(), +}; + +void* D_EBFBE0_801B68B0[] = { + D_EBFBE0_801C6C10, D_EBFBE0_801C9010, D_EBFBE0_801CB410, D_EBFBE0_801BB810, D_EBFBE0_801C4810, + D_EBFBE0_801C0010, D_EBFBE0_801BDC10, D_EBFBE0_801C2410, D_EBFBE0_801B9410, +}; + +char* D_EBFBE0_801B68D4[] = { + (char*) 0x06029220, (char*) 0x0602B6D0, (char*) 0x0602FFD0, (char*) 0x06024890, (char*) 0x0602DB60, + (char*) 0x0601FF40, (char*) 0x06026D70, (char*) 0x060223E0, (char*) 0x060190B0, +}; + +static Gfx* D_EBFBE0_801B68F8[] = { + (Gfx*) 0x06060610, (Gfx*) 0x0601DE80, (Gfx*) 0x0604B750, (Gfx*) 0x0601F6B0, + (Gfx*) 0x0601C0D0, (Gfx*) 0x0601C960, (Gfx*) D_EBFBE0_801B5E78, (Gfx*) D_EBFBE0_801B61E0, + (Gfx*) D_EBFBE0_801B6548, (Gfx*) D_EBFBE0_801B4D70, (Gfx*) D_EBFBE0_801B5B10, (Gfx*) D_EBFBE0_801B5440, + (Gfx*) D_EBFBE0_801B50D8, (Gfx*) D_EBFBE0_801B57A8, (Gfx*) 0x0604DB10, +}; + +// BSS STARTS HERE + +// #define IMPORT_BSS + +/** + * Problem: fox_option uses bss symbols from this file? i can't even compile this... + */ + +#ifdef IMPORT_BSS +s32 D_EBFBE0_801CD810; +f32 D_EBFBE0_801CD818[]; +s32 D_EBFBE0_801CD83C; +s32 D_EBFBE0_801CD840[24]; +s32 D_EBFBE0_801CD8A0[15]; +s32 D_EBFBE0_801CD8E0[7]; +f32 D_EBFBE0_801CD9F4; // x +f32 D_EBFBE0_801CD9F8; // y +f32 D_EBFBE0_801CD9FC; // z +s32 D_EBFBE0_801CD900[15]; +s32 D_EBFBE0_801CD93C; +s32 D_EBFBE0_801CD940; +s32 D_EBFBE0_801CD944; // mapState +s32 D_EBFBE0_801CD948; +s32 D_EBFBE0_801CD94C; +s32 D_EBFBE0_801CD950; +s32 D_EBFBE0_801CD954; // sCurrentPlanetId +s32 D_EBFBE0_801CD958; +s32 D_EBFBE0_801CD95C; +s32 D_EBFBE0_801CD960; +s32 D_EBFBE0_801CD964; +s32 D_EBFBE0_801CD968; +s32 D_EBFBE0_801CD96C; +s32 D_EBFBE0_801CD970; +s32 D_EBFBE0_801CD974; +s32 D_EBFBE0_801CD978; +s32 D_EBFBE0_801CD97C; +s32 D_EBFBE0_801CD980; +s32 D_EBFBE0_801CD984; +s32 D_EBFBE0_801CD988; +s32 D_EBFBE0_801CD98C; +s32 D_EBFBE0_801CD990; +s32 D_EBFBE0_801CD994; +s32 D_EBFBE0_801CD998; +f32 D_EBFBE0_801CD99C; +s32 D_EBFBE0_801CD9A0; +s32 D_EBFBE0_801CD9A4; +s32 D_EBFBE0_801CD9A8; +s32 D_EBFBE0_801CD9AC; +f32 D_EBFBE0_801CD9B0; +f32 D_EBFBE0_801CD9B4; +s32 D_EBFBE0_801CD9B8; +s32 D_EBFBE0_801CD9BC; +s32 D_EBFBE0_801CD9C0; +s32 D_EBFBE0_801CD9C4; +s32 D_EBFBE0_801CD9C8; +s32 D_EBFBE0_801CD9CC; +s32 D_EBFBE0_801CD9D0; +s32 D_EBFBE0_801CD9D4; +s32 D_EBFBE0_801CD9D8; +f32 D_EBFBE0_801CD9DC; +f32 D_EBFBE0_801CD9E0; +f32 D_EBFBE0_801CD9E4; +f32 D_EBFBE0_801CD9E8; +f32 D_EBFBE0_801CD9EC; +s32 D_EBFBE0_801CD9F0; +f32 D_EBFBE0_801CDA00; // x +f32 D_EBFBE0_801CDA04; // y +f32 D_EBFBE0_801CDA08; // z +f32 D_EBFBE0_801CDA0C; // camera x +f32 D_EBFBE0_801CDA10; // camera y +f32 D_EBFBE0_801CDA14; +f32 D_EBFBE0_801CDA18; +f32 D_EBFBE0_801CDA1C; +f32 D_EBFBE0_801CDA20; +f32 D_EBFBE0_801CDA24; +f32 D_EBFBE0_801CDA28; +f32 D_EBFBE0_801CDA2C; +f32 D_EBFBE0_801CDA30; +f32 D_EBFBE0_801CDA34; +f32 D_EBFBE0_801CDA38; +Vec3f D_EBFBE0_801CDA40; +Vec3f D_EBFBE0_801CDA50; +Matrix D_EBFBE0_801CDA60[]; +Matrix D_EBFBE0_801CDE20[15]; // planet related +Matrix D_EBFBE0_801CE060; +Matrix D_EBFBE0_801CE1E0[15]; +Matrix D_EBFBE0_801CE5A0[]; +Vec3f D_EBFBE0_801CE960[]; // sPlanetsPositions +f32 D_EBFBE0_801CEA54; +f32 D_EBFBE0_801CEA64; +f32 D_EBFBE0_801CEA68; +f32 D_EBFBE0_801CEAA0; +f32 D_EBFBE0_801CEAA4; +f32 D_EBFBE0_801CEAA8; +f32 D_EBFBE0_801CEAAC; +f32 D_EBFBE0_801CEAB0; +s32 D_EBFBE0_801CEAB4; +f32 D_EBFBE0_801CEA18[]; +f32 D_EBFBE0_801CEA58; +f32 D_EBFBE0_801CEA5C; +f32 D_EBFBE0_801CEA60; +f32 D_EBFBE0_801CEA6C; +f32 D_EBFBE0_801CEA70; +s32 D_EBFBE0_801CEA74; +f32 D_EBFBE0_801CEA78; +f32 D_EBFBE0_801CEA7C; +f32 D_EBFBE0_801CEA80; +f32 D_EBFBE0_801CEA84; +f32 D_EBFBE0_801CEA88; +f32 D_EBFBE0_801CEA8C; +f32 D_EBFBE0_801CEA90; +f32 D_EBFBE0_801CEA94; +s32 D_EBFBE0_801CEA98; +f32 D_EBFBE0_801CEA9C; +f32 D_EBFBE0_801CEAB8[]; +f32 D_EBFBE0_801CEAF8[]; +s32 D_EBFBE0_801CEB34; +s32 D_EBFBE0_801CEB38; +f32 D_EBFBE0_801CEB3C; +f32 D_EBFBE0_801CEB40; +s32 D_EBFBE0_801CEB48[3]; +s32 D_EBFBE0_801CEB58[3][10]; +s32 D_EBFBE0_801CEBD0[3][10]; +f32 D_EBFBE0_801CEC48[3][10]; +f32 D_EBFBE0_801CECC0[3][10]; +f32 D_EBFBE0_801CED38[3][10]; +f32 D_EBFBE0_801CEDB0[3][10]; +f32 D_EBFBE0_801CEE28[3][10]; +s32 D_EBFBE0_801CEEA0; +s32 D_EBFBE0_801CEEA4; +s32 D_EBFBE0_801CEEA8; +s32 D_EBFBE0_801CEEAC; +Vec3f D_EBFBE0_801CEEB0; +f32 D_EBFBE0_801CEEBC; +f32 D_EBFBE0_801CEEC0; +s32 D_EBFBE0_801CEEC4; +s32 D_EBFBE0_801CEEC8; +s32 D_EBFBE0_801CEECC; +s32 D_EBFBE0_801CEED0; +s32 D_EBFBE0_801CEED4; +s32 D_EBFBE0_801CEED8; +f32 D_EBFBE0_801CEEDC; +f32 D_EBFBE0_801CEEE0; +Vec3f D_EBFBE0_801CEEE8[9]; +f32 D_EBFBE0_801CEF00; +f32 D_EBFBE0_801CEF04; +f32 D_EBFBE0_801CEF08; +f32 D_EBFBE0_801CEF30; +f32 D_EBFBE0_801CEF34; +f32 D_EBFBE0_801CEF38; +Vec3f D_EBFBE0_801CEF58[9]; +s32 D_EBFBE0_801CEFC4; +s32 D_EBFBE0_801CEFC8; +s32 D_EBFBE0_801CEFCC; +s32 D_EBFBE0_801CEFD0; +s32 D_EBFBE0_801CEFD4; +bool D_EBFBE0_801CEFD8; +s32 D_EBFBE0_801CEFDC; +f32 D_EBFBE0_801CEFE0; +f32 D_EBFBE0_801CEFE8[3]; +f32 D_EBFBE0_801CEFF4; +f32 D_EBFBE0_801CEFF8; +s32 D_EBFBE0_801CF000[]; +s32 D_EBFBE0_801CF00C; +s32 D_EBFBE0_801CF010; +s32 D_EBFBE0_801CF014; +s32 D_EBFBE0_801CF018; +f32 D_EBFBE0_801CF020[8]; +f32 D_EBFBE0_801CF040[8]; +f32 D_EBFBE0_801CF060[8]; +f32 D_EBFBE0_801CF080; +f32 D_EBFBE0_801CF088[8]; +f32 D_EBFBE0_801CF0A8[8]; +f32* D_EBFBE0_801CF0C8; +f32* D_EBFBE0_801CF0CC; +f32* D_EBFBE0_801CF0D0; +s32 D_EBFBE0_801CF0D8[8]; +s32 D_EBFBE0_801CF0F8[8]; +s32 D_EBFBE0_801CF118; +s32 D_EBFBE0_801CF11C; +s32 D_EBFBE0_801CF120; +f32 D_EBFBE0_801CF124; +#else +extern s32 D_EBFBE0_801CD810; extern f32 D_EBFBE0_801CD818[]; extern s32 D_EBFBE0_801CD83C; extern s32 D_EBFBE0_801CD840[24]; -extern s32 D_EBFBE0_801CD8A0[15]; // bss +extern s32 D_EBFBE0_801CD8A0[15]; extern s32 D_EBFBE0_801CD8E0[7]; extern f32 D_EBFBE0_801CD9F4; // x extern f32 D_EBFBE0_801CD9F8; // y extern f32 D_EBFBE0_801CD9FC; // z extern s32 D_EBFBE0_801CD900[15]; extern s32 D_EBFBE0_801CD93C; -extern s32 D_EBFBE0_801CD940; // bss -extern s32 D_EBFBE0_801CD944; // mapState // bss +extern s32 D_EBFBE0_801CD940; +extern s32 D_EBFBE0_801CD944; // mapState extern s32 D_EBFBE0_801CD948; extern s32 D_EBFBE0_801CD94C; extern s32 D_EBFBE0_801CD950; -extern s32 D_EBFBE0_801CD954; +extern s32 D_EBFBE0_801CD954; // sCurrentPlanetId extern s32 D_EBFBE0_801CD958; extern s32 D_EBFBE0_801CD95C; extern s32 D_EBFBE0_801CD960; -extern s32 D_EBFBE0_801CD964; // bss -extern s32 D_EBFBE0_801CD968; // bss -extern s32 D_EBFBE0_801CD96C; // bss +extern s32 D_EBFBE0_801CD964; +extern s32 D_EBFBE0_801CD968; +extern s32 D_EBFBE0_801CD96C; extern s32 D_EBFBE0_801CD970; extern s32 D_EBFBE0_801CD974; extern s32 D_EBFBE0_801CD978; @@ -121,6 +1164,7 @@ extern s32 D_EBFBE0_801CD9C8; extern s32 D_EBFBE0_801CD9CC; extern s32 D_EBFBE0_801CD9D0; extern s32 D_EBFBE0_801CD9D4; +extern s32 D_EBFBE0_801CD9D8; extern f32 D_EBFBE0_801CD9DC; extern f32 D_EBFBE0_801CD9E0; extern f32 D_EBFBE0_801CD9E4; @@ -130,8 +1174,8 @@ extern s32 D_EBFBE0_801CD9F0; extern f32 D_EBFBE0_801CDA00; // x extern f32 D_EBFBE0_801CDA04; // y extern f32 D_EBFBE0_801CDA08; // z -extern f32 D_EBFBE0_801CDA0C; -extern f32 D_EBFBE0_801CDA10; +extern f32 D_EBFBE0_801CDA0C; // camera x +extern f32 D_EBFBE0_801CDA10; // camera y extern f32 D_EBFBE0_801CDA14; extern f32 D_EBFBE0_801CDA18; extern f32 D_EBFBE0_801CDA1C; @@ -145,14 +1189,16 @@ extern f32 D_EBFBE0_801CDA38; extern Vec3f D_EBFBE0_801CDA40; extern Vec3f D_EBFBE0_801CDA50; extern Matrix D_EBFBE0_801CDA60[]; -extern Matrix D_EBFBE0_801CDE20[15]; // bss // planet related +extern Matrix D_EBFBE0_801CDE20[15]; // planet related extern Matrix D_EBFBE0_801CE060; extern Matrix D_EBFBE0_801CE1E0[15]; extern Matrix D_EBFBE0_801CE5A0[]; -extern Vec3f D_EBFBE0_801CE960[]; // pos of something +extern Vec3f D_EBFBE0_801CE960[]; // sPlanetsPositions extern f32 D_EBFBE0_801CEA54; extern f32 D_EBFBE0_801CEA64; extern f32 D_EBFBE0_801CEA68; +extern f32 D_EBFBE0_801CEAA0; +extern f32 D_EBFBE0_801CEAA4; extern f32 D_EBFBE0_801CEAA8; extern f32 D_EBFBE0_801CEAAC; extern f32 D_EBFBE0_801CEAB0; @@ -164,6 +1210,16 @@ extern f32 D_EBFBE0_801CEA60; extern f32 D_EBFBE0_801CEA6C; extern f32 D_EBFBE0_801CEA70; extern s32 D_EBFBE0_801CEA74; +extern f32 D_EBFBE0_801CEA78; +extern f32 D_EBFBE0_801CEA7C; +extern f32 D_EBFBE0_801CEA80; +extern f32 D_EBFBE0_801CEA84; +extern f32 D_EBFBE0_801CEA88; +extern f32 D_EBFBE0_801CEA8C; +extern f32 D_EBFBE0_801CEA90; +extern f32 D_EBFBE0_801CEA94; +extern s32 D_EBFBE0_801CEA98; +extern f32 D_EBFBE0_801CEA9C; extern f32 D_EBFBE0_801CEAB8[]; extern f32 D_EBFBE0_801CEAF8[]; extern s32 D_EBFBE0_801CEB34; @@ -182,12 +1238,14 @@ extern s32 D_EBFBE0_801CEEA0; extern s32 D_EBFBE0_801CEEA4; extern s32 D_EBFBE0_801CEEA8; extern s32 D_EBFBE0_801CEEAC; -extern Vec3f D_EBFBE0_801CEEB0; // bss +extern Vec3f D_EBFBE0_801CEEB0; extern f32 D_EBFBE0_801CEEBC; extern f32 D_EBFBE0_801CEEC0; extern s32 D_EBFBE0_801CEEC4; extern s32 D_EBFBE0_801CEEC8; extern s32 D_EBFBE0_801CEECC; +extern s32 D_EBFBE0_801CEED0; +extern s32 D_EBFBE0_801CEED4; extern s32 D_EBFBE0_801CEED8; extern f32 D_EBFBE0_801CEEDC; extern f32 D_EBFBE0_801CEEE0; @@ -199,11 +1257,12 @@ extern f32 D_EBFBE0_801CEF30; extern f32 D_EBFBE0_801CEF34; extern f32 D_EBFBE0_801CEF38; extern Vec3f D_EBFBE0_801CEF58[9]; -extern s32 D_EBFBE0_801CEFC4; // bss +extern s32 D_EBFBE0_801CEFC4; extern s32 D_EBFBE0_801CEFC8; +extern s32 D_EBFBE0_801CEFCC; extern s32 D_EBFBE0_801CEFD0; extern s32 D_EBFBE0_801CEFD4; -extern s32 D_EBFBE0_801CEFD8; +extern bool D_EBFBE0_801CEFD8; extern s32 D_EBFBE0_801CEFDC; extern f32 D_EBFBE0_801CEFE0; extern f32 D_EBFBE0_801CEFE8[3]; @@ -213,7 +1272,7 @@ extern s32 D_EBFBE0_801CF000[]; extern s32 D_EBFBE0_801CF00C; extern s32 D_EBFBE0_801CF010; extern s32 D_EBFBE0_801CF014; -extern s32 D_EBFBE0_801CF018; // bss +extern s32 D_EBFBE0_801CF018; extern f32 D_EBFBE0_801CF020[8]; extern f32 D_EBFBE0_801CF040[8]; extern f32 D_EBFBE0_801CF060[8]; @@ -223,19 +1282,29 @@ extern f32 D_EBFBE0_801CF0A8[8]; extern f32* D_EBFBE0_801CF0C8; extern f32* D_EBFBE0_801CF0CC; extern f32* D_EBFBE0_801CF0D0; +extern s32 D_EBFBE0_801CF0D8[8]; +extern s32 D_EBFBE0_801CF0F8[8]; +extern s32 D_EBFBE0_801CF118; extern s32 D_EBFBE0_801CF11C; extern s32 D_EBFBE0_801CF120; extern f32 D_EBFBE0_801CF124; +#endif + extern u8 D_5000500[]; +extern u8 D_6000840[]; +extern u8 D_6001080[]; +extern u8 D_60018C0[]; extern u8 D_600D590[]; +extern u8 D_6019030[]; extern Gfx D_601D1F0[]; extern u8 D_601DC10[]; extern u16 D_601DC90[]; extern Gfx D_601DCF0[]; extern u8 D_601DCA0[]; extern u16 D_601DCD8[]; +extern Gfx D_601E9A0[]; extern u16 D_6044820[]; extern u16 D_6046AA0[]; extern u16 D_6046CD0[]; @@ -249,18 +1318,6 @@ extern Gfx D_604CDE0[]; extern Gfx D_604D680[]; extern Gfx D_605A120[]; -extern s32 D_EBFBE0_801CD810; -extern f32 D_EBFBE0_801CEA78; -extern f32 D_EBFBE0_801CEA7C; -extern f32 D_EBFBE0_801CEA80; -extern f32 D_EBFBE0_801CEA84; -extern f32 D_EBFBE0_801CEA88; -extern f32 D_EBFBE0_801CEA8C; -extern f32 D_EBFBE0_801CEA90; -extern f32 D_EBFBE0_801CEA94; -extern s32 D_EBFBE0_801CEA98; -extern f32 D_EBFBE0_801CEA9C; - void func_EBFBE0_8019E800(void); void func_EBFBE0_8019E99C(void); void func_EBFBE0_8019F164(void); @@ -278,14 +1335,20 @@ void func_EBFBE0_801A0788(void); void func_EBFBE0_801A0954(void); void func_EBFBE0_801A0D14(void); void func_EBFBE0_801A1528(void); +void func_EBFBE0_801A116C(void); void func_EBFBE0_801A19A8(void); void func_EBFBE0_801A1C14(void); +bool func_EBFBE0_801A2304(void); f32 func_EBFBE0_801A25C8(PlanetId); -void func_EBFBE0_801A281C(); +void func_EBFBE0_801A2674(void); +void func_EBFBE0_801A281C(void); void func_EBFBE0_801A2B8C(void); -void func_EBFBE0_801A2EB8(); +void func_EBFBE0_801A2EB8(void); +void func_EBFBE0_801A3440(f32); void func_EBFBE0_801A3550(Vec3f*, Vec3f*, Vec3f*, f32); void func_EBFBE0_801A36A8(void); +void func_EBFBE0_801A3A00(void); +void func_EBFBE0_801A4394(void); void func_EBFBE0_801A4650(void); void func_EBFBE0_801A48C0(f32 speed); void func_EBFBE0_801A4A38(f32 arg0); @@ -336,7 +1399,8 @@ void func_EBFBE0_801A9A8C(void); void func_EBFBE0_801A9DE8(void); void func_EBFBE0_801AA1CC(s32); void func_EBFBE0_801AA434(s32, f32, f32, s32); -void func_EBFBE0_801AA778(s32, f32, f32, s32); +void func_EBFBE0_801AA778(s32, f32, f32, PlanetId); +void func_EBFBE0_801AB17C(f32 x, f32 y, f32 z); void func_EBFBE0_801AB284(void); void func_EBFBE0_801AB300(void); void func_EBFBE0_801AB978(s32); @@ -344,7 +1408,7 @@ void func_EBFBE0_801ABCDC(s32 arg0, s32 alpha); void func_EBFBE0_801ABF1C(void); void func_EBFBE0_801AC200(s32); void func_EBFBE0_801AC530(s32 index); -s32 func_EBFBE0_801AC80C(s32); +void func_EBFBE0_801AC80C(s32); void func_EBFBE0_801AC9A0(s32); void func_EBFBE0_801ACD90(s32 index, Vec3f* src, Vec3f* dest); void func_EBFBE0_801AD048(void); @@ -662,7 +1726,7 @@ void func_EBFBE0_8019F164(void) { void func_EBFBE0_8019F42C(void) { s32 i; - D_80161714 += gHitCount; + gTotalHits += gHitCount; gLifeCount[gPlayerNum] = 0; D_EBFBE0_801CD974 = 1; @@ -709,7 +1773,7 @@ void func_EBFBE0_8019F600(void) { s32 sp18; s32 temp_t4; - D_80161714 = 0; + gTotalHits = 0; gHitCount = 0; gTeamShields[1] = 255; @@ -812,17 +1876,17 @@ void func_EBFBE0_8019F97C(void) { } void func_EBFBE0_8019FA1C(void) { - s32 i; + PlanetId planetId; - for (i = 0; i < 15; i++) { - if (i == D_EBFBE0_801CD954) { - if ((i == 3) || (i == 4) || (i == 5)) { - planet[i].alpha = 144; + for (planetId = 0; planetId < PLANET_MAX; planetId++) { + if (planetId == D_EBFBE0_801CD954) { + if ((planetId == PLANET_SECTOR_Z) || (planetId == PLANET_SECTOR_X) || (planetId == PLANET_SECTOR_Y)) { + planet[planetId].alpha = 144; } else { - planet[i].alpha = 255; + planet[planetId].alpha = 255; } } else { - planet[i].alpha = 0; + planet[planetId].alpha = 0; } } } @@ -1199,17 +2263,11 @@ void func_EBFBE0_801A07E8(u8* arg0, u8* arg1, f32* arg2) { } } -#ifndef IMPORT_DATA -extern f32 D_EBFBE0_801B6934[]; -#endif - void func_EBFBE0_801A0954(void) { PlanetId planetId; -#ifdef IMPORT_DATA static f32 D_EBFBE0_801B6934[] = { 99.0f, 24, -90.0f, -150.0f, -208.0f, -276.0f, }; -#endif switch (D_EBFBE0_801CD948) { case 100: @@ -1286,7 +2344,7 @@ void func_EBFBE0_801A0954(void) { Audio_PlaySfx(0x4900001FU, &D_800C5D28, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C); - for (planetId = 0; planetId < 15; planetId++) { + for (planetId = 0; planetId < PLANET_MAX; planetId++) { if ((planetId == PLANET_SECTOR_Z) || (planetId == PLANET_SECTOR_X) || (planetId == PLANET_SECTOR_Y)) { planet[planetId].alpha = 144; } else { @@ -1306,11 +2364,221 @@ void func_EBFBE0_801A0954(void) { } } -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/func_EBFBE0_801A0D14.s") +void func_EBFBE0_801A0D14(void) { + s32 i; + static f32 D_EBFBE0_801B694C = 71.0f; + static f32 D_EBFBE0_801B6950 = 205.0f; + static u16* D_EBFBE0_801B6954[] = { + (u16*) 0x06041A80, (u16*) 0x06035780, (u16*) 0x06033080, (u16*) 0x0603A580, + (u16*) 0x0603F380, (u16*) 0x06037E80, (u16*) 0x0603CC80, + }; -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/func_EBFBE0_801A116C.s") + func_EBFBE0_801A116C(); -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/func_EBFBE0_801A1528.s") + RCP_SetupDL(&gMasterDisp, 0x51); + + gDPSetPrimColor(gMasterDisp++, 0, 0, 180, 180, 180, 255); + + Message_DisplayScrollingText(&gMasterDisp, gMsg_ID_1, D_EBFBE0_801CD9DC, D_EBFBE0_801CD9E0, 218, 70, + Message_GetCharCount(gMsg_ID_1)); + + RCP_SetupDL(&gMasterDisp, 0x4C); + + gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255); + + TextureRect_8bIA(&gMasterDisp, D_6019030, 8, 16, 0.0f, D_EBFBE0_801B694C, 40.0f, 1.66f); + TextureRect_8bIA_MirY(&gMasterDisp, D_6019030, 8, 16, 0.0f, D_EBFBE0_801B6950, 40.0f, 1.68f); + + func_8003DE68(0x47, 0x76); + func_8003DE68(0xCD, 0xEF); + + RCP_SetupDL(&gMasterDisp, 0x4C); + + gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, D_EBFBE0_801CD9E8); + + for (i = 0; i < 13; i++) { + TextureRect_16bRGBA(&gMasterDisp, D_EBFBE0_801B6954[D_EBFBE0_801CD9F0] + (96 * 4 * i), 96, 4, 109.0f, + 24.0f + (4.0f * i), 1.0f, 1.0f); + } + + if ((D_EBFBE0_801CD9E4 != 0) && (D_EBFBE0_801CD9F0 + 1 < 7)) { + gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, D_EBFBE0_801CD9E4); + + for (i = 0; i < 13; i++) { + TextureRect_16bRGBA(&gMasterDisp, D_EBFBE0_801B6954[D_EBFBE0_801CD9F0 + 1] + (i * 96 * 4), 96, 4, 109.0f, + 24.0f + (i * 4.0f), 1.0f, 1.0f); + } + + if (D_EBFBE0_801CD9E4 == 255) { + D_EBFBE0_801CD9E4 = 0; + D_EBFBE0_801CD9F0++; + } + } +} + +void func_EBFBE0_801A116C(void) { + static f32 D_EBFBE0_801B6970 = 35.0f; + WingInfo wings; + Vec3f dest; + Vec3f src; + s32 colR = 30, colG = 9, colB = 5; + s32 pad[5]; + + src.x = 0.0f; + src.y = 0.0f; + src.z = 100.0f; + + Matrix_RotateY(gCalcMatrix, M_DTOR * 22.0f, 0); + Matrix_RotateX(gCalcMatrix, M_DTOR * -70.0f, 1); + Matrix_MultVec3f(gCalcMatrix, &src, &dest); + + if (D_EBFBE0_801CD948 >= 2) { + colR -= 10; + if (colR < 0) { + colR = 0; + } + + colG -= 3; + if (colG < 0) { + colG = 0; + } + + colB -= 2; + if (colB < 0) { + colB = 0; + } + + RCP_SetupDL(&gMasterDisp, 0x2E); + gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, D_EBFBE0_801CD9E8); + } else { + RCP_SetupDL(&gMasterDisp, 0x17); + } + + if ((D_EBFBE0_801CD948 < 2) || (D_EBFBE0_801CD9E8 != 0)) { + Matrix_Push(&gGfxMatrix); + Matrix_LookAt(gGfxMatrix, 0.0f, 0.0f, 430.0f, 0.0f, 180.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + + Lights_SetOneLight(&gMasterDisp, dest.x, dest.y, dest.z, colR, colG, colB, 0, 0, 0); + + Matrix_Push(&gGfxMatrix); + + Matrix_Translate(gGfxMatrix, -60.0f, 293.0f, -360.0f, 1); + Matrix_Scale(gGfxMatrix, 3.0f, 3.0f, 3.0f, 1); + + Matrix_RotateZ(gGfxMatrix, M_DTOR * -15.0f, 1); + Matrix_RotateX(gGfxMatrix, M_DTOR * D_EBFBE0_801B6970, 1); + Matrix_RotateY(gGfxMatrix, M_DTOR * -90.0f, 1); + + Matrix_SetGfxMtx(&gMasterDisp); + + wings.rightState = wings.leftState = 2; + // clang-format off + wings.unk_18 = wings.unk_1C = wings.unk_20 = wings.unk_24 = wings.unk_04 = + wings.unk_08 = wings.unk_0C = wings.unk_10 = wings.unk_28 = 0.0f; + // clang-format on + + wings.unk_14 = 0.0f; + wings.unk_2C = 1; + wings.unk_30 = 0.0f; + wings.unk_34 = 0.0f; + wings.unk_38 = 0.0f; + + func_80053658(&wings); + + Matrix_Pop(&gGfxMatrix); + Matrix_Pop(&gGfxMatrix); + } + D_EBFBE0_801B6970 += 0.6f; +} + +static f32 D_EBFBE0_801B6974[8] = { -248.0f, -76.0f, 84.0f, 248.0f, -242.0f, -79.0f, 82.0f, 245.0f }; +static f32 D_EBFBE0_801B6994[8] = { 80.0f, 80.0f, 80.0f, 80.0f, -30.0f, -30.0f, -30.0f, -30.0f }; +static f32 D_EBFBE0_801B69B4[8] = { -455.0f, -455.0f, -455.0f, -455.0f, -455.0f, -455.0f, -455.0f, -455.0f }; + +static f32 D_EBFBE0_801B69D4[8] = { -248.0f, -76.0f, 84.0f, 248.0f, -242.0f, -79.0f, 82.0f, 245.0f }; +static f32 D_EBFBE0_801B69F4[8] = { 80.0f, 80.0f, 80.0f, 80.0f, -30.0f, -30.0f, -30.0f, -30.0f }; +static f32 D_EBFBE0_801B6A14[8] = { 1000.0f, 1000.0f, 1000.0f, 1000.0f, 1000.0f, 1000.0f, 1000.0f, 1000.0f }; + +static f32* D_EBFBE0_801B6A34[2] = { D_EBFBE0_801B69D4, D_EBFBE0_801B6974 }; +static f32* D_EBFBE0_801B6A3C[2] = { D_EBFBE0_801B69F4, D_EBFBE0_801B6994 }; +static f32* D_EBFBE0_801B6A44[2] = { D_EBFBE0_801B6A14, D_EBFBE0_801B69B4 }; + +void func_EBFBE0_801A1528(void) { + PlanetId planetId; + f32 temp; + + switch (D_EBFBE0_801CD948) { + case 0: + temp = Math_SmoothStepToF(&D_EBFBE0_801CEA9C, 255.0f, D_EBFBE0_801CD9B0, 10.0f, 1.0f); + + D_EBFBE0_801CD9B0 *= 1.06f; + + if (temp == 0.0f) { + D_EBFBE0_801CEAA0 = 0.0f; + D_EBFBE0_801CEAA4 = 0.0f; + D_EBFBE0_801CD9B0 = 0.002f; + D_EBFBE0_801CD9B8 = 10; + D_EBFBE0_801CD9BC = 45; + D_EBFBE0_801CD948++; + } + break; + + case 1: + if (D_EBFBE0_801CD9B8 != 0) { + break; + } + + Math_SmoothStepToF(&D_EBFBE0_801CEA9C, 0.0f, D_EBFBE0_801CD9B4, 50.0f, 0.1f); + D_EBFBE0_801CD9B4 *= 1.06f; + + if (D_EBFBE0_801CD9BC != 0) { + break; + } + + Math_SmoothStepToF(&D_EBFBE0_801CEAA0, 144.0f, D_EBFBE0_801CD9B0, 50.0f, 0.1f); + temp = Math_SmoothStepToF(&D_EBFBE0_801CEAA4, 255.0f, D_EBFBE0_801CD9B0, 50.0f, 0.1f); + D_EBFBE0_801CD9B0 *= 1.09f; + + for (planetId = 0; planetId < PLANET_MAX; planetId++) { + if ((planetId == PLANET_SECTOR_Z) || (planetId == PLANET_SECTOR_X) || (planetId == PLANET_SECTOR_Y)) { + planet[planetId].alpha = D_EBFBE0_801CEAA0; + } else { + planet[planetId].alpha = D_EBFBE0_801CEAA4; + D_EBFBE0_801CD970 = D_EBFBE0_801CEAA4; + } + D_EBFBE0_801CD900[planetId] = D_EBFBE0_801CEAA4; + } + + if (D_EBFBE0_801CEAA0 > 32) { + D_EBFBE0_801CD974 = 1; + } + + if (temp == 0.0f) { + Audio_PlaySfx(0x4900001FU, &D_800C5D28, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + D_EBFBE0_801CD948 = 0; + D_EBFBE0_801CD97C = 1; + D_EBFBE0_801CD944 = 3; + } + break; + } + + if (gControllerPress[gMainController].button & START_BUTTON) { + Audio_PlaySfx(0x4900001FU, &D_800C5D28, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + + for (planetId = 0; planetId < PLANET_MAX; planetId++) { + if ((planetId == PLANET_SECTOR_Z) || (planetId == PLANET_SECTOR_X) || (planetId == PLANET_SECTOR_Y)) { + planet[planetId].alpha = 144; + } else { + planet[planetId].alpha = 255; + } + D_EBFBE0_801CD900[planetId] = 255; + } + D_EBFBE0_801CD970 = 255; + D_EBFBE0_801CD944 = 3; + D_EBFBE0_801CD97C = 1; + } +} void func_EBFBE0_801A19A8(void) { s32 i; @@ -1355,7 +2623,155 @@ void func_EBFBE0_801A1AE8(void) { D_EBFBE0_801CEA68 = sqrtf(SQ(x) + SQ(y) + SQ(z)); } -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/func_EBFBE0_801A1C14.s") +// needs D_EBFBE0_801CD900 to be static +#if defined(IMPORT_BSS) || defined(NON_MATCHING) +void func_EBFBE0_801A1C14(void) { + s32 i; + + switch (D_EBFBE0_801CD948) { + case 0: + func_EBFBE0_801A1AE8(); + + D_EBFBE0_801CD94C = 0; + D_EBFBE0_801CD9C4 = 0; + D_EBFBE0_801CEA88 = 0.0f; + D_EBFBE0_801CEA8C = 0.0f; + D_EBFBE0_801CEA90 = -400.0f; + + D_EBFBE0_801CEA78 = 0.05f; + D_EBFBE0_801CEA7C = 0.05f; + D_EBFBE0_801CEA80 = 0.05f; + D_EBFBE0_801CEA84 = 0.05f; + D_EBFBE0_801CEA94 = 0.0f; + D_EBFBE0_801CEA98 = 0; + D_EBFBE0_801CD95C = 10; + D_EBFBE0_801CD97C = 0; + + if (D_EBFBE0_801CD954 == PLANET_CORNERIA) { + D_EBFBE0_801CD95C = 5; + } + + D_EBFBE0_801CD9D8 = 0; + + for (i = 0; i < 24; i++) { + D_EBFBE0_801AFD18[i].unk_18 = 0; + } + D_80178410 = 0; + + D_80178348 = 255; + D_80178350 = 255; + D_80178354 = 255; + D_80178340 = 0; + + D_EBFBE0_801CEB3C = 0.0f; + D_EBFBE0_801CEB38 = 255; + + D_EBFBE0_801CD948++; + break; + + case 1: + if (D_EBFBE0_801CD95C == 0) { + if (D_EBFBE0_801CD954 == PLANET_CORNERIA) { + D_80178340 = 0; + D_EBFBE0_801CD948 = 10; + Audio_PlaySfx(0x0940A00BU, &D_800C5D28, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } else { + Audio_PlaySfx(0x19003012U, &D_800C5D28, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + D_EBFBE0_801CD948++; + } + } else { + if (D_EBFBE0_801CD954 == PLANET_CORNERIA) { + D_80178340 ^= 0xFF; + if (D_EBFBE0_801CD95C == 2) { + D_EBFBE0_801CEB34 = 0; + } + } + D_EBFBE0_801CD95C--; + } + break; + + case 10: + if (D_EBFBE0_801CEB34 == 4) { + Audio_PlaySfx(0x19003012U, &D_800C5D28, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + D_EBFBE0_801CD948 = 2; + } + break; + + case 2: + func_EBFBE0_801A2674(); + if ((D_EBFBE0_801CD9FC == D_EBFBE0_801CDA50.z) && (D_EBFBE0_801CD9D8 == 0)) { + Audio_PlaySfx(0x19004013U, &D_800C5D28, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + D_EBFBE0_801CD9D8 = 1; + if (D_EBFBE0_801CD954 == PLANET_CORNERIA) { + D_EBFBE0_801CEB48[0] = 1; + for (i = 0; i < 10; i++) { + D_EBFBE0_801CEB58[0][i] = Rand_ZeroOne() * 3.0f; + D_EBFBE0_801CEBD0[0][i] = 255; + D_EBFBE0_801CEC48[0][i] = 0.0f; + D_EBFBE0_801CECC0[0][i] = 0.5f + (Rand_ZeroOne() * 0.3f); + D_EBFBE0_801CEE28[0][i] = 1 + (s32) (Rand_ZeroOne() * 4.0f); + D_EBFBE0_801CED38[0][i] = 110.0f + (s32) (Rand_ZeroOne() * 30.0f); + D_EBFBE0_801CEDB0[0][i] = -10.0f + (Rand_ZeroOne() * -60.0f); + } + } + } + if ((D_EBFBE0_801CDA34 == D_EBFBE0_801CDA50.x) && (D_EBFBE0_801CDA38 == D_EBFBE0_801CDA50.y) && + (D_EBFBE0_801CD9FC == D_EBFBE0_801CDA50.z) && (D_EBFBE0_801CDA08 == D_EBFBE0_801CDA40.z)) { + + D_EBFBE0_801CD964 = 1; + D_EBFBE0_801CD96C = 1; + + for (i = 0; i < 15; i++) { + D_EBFBE0_801CD900[i] = 0; + } + D_EBFBE0_801CD970 = 0; + + if (func_EBFBE0_801A2304()) { + D_EBFBE0_801CD948 = 3; + } + } + break; + + case 20: + if (gControllerPress[gMainController].button & START_BUTTON) { + D_EBFBE0_801CD948 = 21; + } + + if (gControllerHold[gMainController].button & R_TRIG) { + D_EBFBE0_801CD9FC += 10.0f; + } + + if (gControllerHold[gMainController].button & Z_TRIG) { + if (D_EBFBE0_801CD9FC - 10.0f > D_EBFBE0_801CDA08) { + D_EBFBE0_801CD9FC -= 10.0f; + } + } + break; + + case 21: + D_EBFBE0_801CD964 = 1; + D_EBFBE0_801CD96C = 1; + + for (i = 0; i < 15; i++) { + D_EBFBE0_801CD900[i] = 0; + } + D_EBFBE0_801CD970 = 0; + + if (func_EBFBE0_801A2304()) { + D_EBFBE0_801CD948 = 3; + } + break; + + case 3: + D_EBFBE0_801CD948 = 0; + D_EBFBE0_801CD944 = 4; + break; + } + D_EBFBE0_801CD9C4++; +} +#else +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_menu/fox_map/func_EBFBE0_801A1C14.s") +#endif bool func_EBFBE0_801A2304(void) { s32 ret = false; @@ -1592,8 +3008,8 @@ void func_EBFBE0_801A281C(void) { } } -// needs D_EBFBE0_801CD900 to be static -#ifdef IMPORT_DATA +// needs D_EBFBE0_801CD900 to be static bss +#if defined(IMPORT_BSS) || defined(NON_MATCHING) void func_EBFBE0_801A2B8C(void) { s32 i; @@ -1706,10 +3122,120 @@ void func_EBFBE0_801A2B8C(void) { D_EBFBE0_801CD9C4++; } #else -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/func_EBFBE0_801A2B8C.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_menu/fox_map/func_EBFBE0_801A2B8C.s") #endif -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/func_EBFBE0_801A2EB8.s") +void func_EBFBE0_801A2EB8(void) { + s32 i; + s32 temp1; + s32 temp2; + + if (D_EBFBE0_801CD9C4 == 30) { + if (D_EBFBE0_801CD93C == 2) { + Audio_PlaySfx(0x0900802AU, &D_800C5D28, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } else { + Audio_PlaySfx(0x09000032U, &D_800C5D28, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + } + + func_EBFBE0_801A3440(D_EBFBE0_801CEEE0); + + if (D_EBFBE0_801CD9C4 == 80) { + D_EBFBE0_801CD954 = D_EBFBE0_801CD958; + D_80177B90[D_80177B48] = D_EBFBE0_801CD954; + func_EBFBE0_801A6368(); + } + + if (D_EBFBE0_801CD9C4 < 80) { + D_EBFBE0_801AFD18[D_EBFBE0_801CEECC].unk_18 += 16; + if (D_EBFBE0_801AFD18[D_EBFBE0_801CEECC].unk_18 > 255) { + D_EBFBE0_801AFD18[D_EBFBE0_801CEECC].unk_18 = 255; + } + + planet[D_EBFBE0_801CD958].alpha += 16; + if ((D_EBFBE0_801CD958 == PLANET_SECTOR_Z) || (D_EBFBE0_801CD958 == PLANET_SECTOR_X) || + (D_EBFBE0_801CD958 == PLANET_SECTOR_Y)) { + if (planet[D_EBFBE0_801CD958].alpha > 144) { + planet[D_EBFBE0_801CD958].alpha = 144; + } + } else if (planet[D_EBFBE0_801CD958].alpha > 255) { + planet[D_EBFBE0_801CD958].alpha = 255; + } + + } else { + D_EBFBE0_801CD970 += 16; + if (D_EBFBE0_801CD970 > 255) { + D_EBFBE0_801CD970 = 255; + } + + for (i = 0; i < 24; i++) { + if (D_80177BD8[i] == 0) { + continue; + } + D_EBFBE0_801AFD18[i].unk_18 += 16; + if (D_EBFBE0_801AFD18[i].unk_18 > 255) { + D_EBFBE0_801AFD18[i].unk_18 = 255; + } + } + +#define PLANET_ID i + + for (PLANET_ID = 0; PLANET_ID < PLANET_MAX; PLANET_ID++) { + if ((PLANET_ID == D_EBFBE0_801CD954) || (PLANET_ID == D_EBFBE0_801CD958)) { + continue; + } + + planet[PLANET_ID].alpha += 16; + + if ((PLANET_ID == PLANET_SECTOR_Z) || (PLANET_ID == PLANET_SECTOR_X) || (PLANET_ID == PLANET_SECTOR_Y)) { + if (planet[PLANET_ID].alpha > 144) { + planet[PLANET_ID].alpha = 144; + } + } else { + if (planet[PLANET_ID].alpha > 255) { + planet[PLANET_ID].alpha = 255; + } + } + } + +#undef PLANET_ID + } + + if ((D_EBFBE0_801CEED8 == 4) && (D_EBFBE0_801CEEDC == 0.0f)) { + Audio_PlaySfx(0x19000026U, &D_800C5D28, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + + if ((D_EBFBE0_801CEED8 == 5) && (D_EBFBE0_801CEEDC == 0.0f)) { + if (D_EBFBE0_801CD93C != 2) { + D_EBFBE0_801AFD18[D_EBFBE0_801CEECC].unk_14 = 2; + D_EBFBE0_801CEEA0 = 0; + D_EBFBE0_801CEEA4 = 100; + D_EBFBE0_801CEEA8 = 255; + D_EBFBE0_801CEEAC = 255; + } + } + + if (D_EBFBE0_801CEED8 == -1) { + + D_EBFBE0_801CEED4 = -1; + if (planet[D_EBFBE0_801CD958].unk_2C != -1) { + temp1 = func_EBFBE0_801A655C(D_EBFBE0_801CD958, planet[D_EBFBE0_801CD958].unk_2C); + D_80177BD8[temp1] = 1; + D_EBFBE0_801AFD18[temp1].unk_18 = 255; + D_EBFBE0_801CEED4 = temp1; + } + + D_EBFBE0_801CEED0 = -1; + if (planet[D_EBFBE0_801CD958].unk_30 != -1) { + temp2 = func_EBFBE0_801A655C(D_EBFBE0_801CD958, planet[D_EBFBE0_801CD958].unk_30); + D_80177BD8[temp2] = 1; + D_EBFBE0_801AFD18[temp2].unk_18 = 255; + D_EBFBE0_801CEED0 = temp2; + } + D_EBFBE0_801CD9C0 = 50; + D_EBFBE0_801CD94C++; + } +} void func_EBFBE0_801A3440(f32 arg0) { Vec3f vec[2]; @@ -1753,9 +3279,281 @@ void func_EBFBE0_801A3550(Vec3f* arg0, Vec3f* arg1, Vec3f* arg2, f32 arg3) { (arg0 + 1)->z = (temp_fa1 * arg2->z) + (temp_fs0 * (arg2 + 1)->z) + (temp_ft5 * (arg2 + 2)->z); } -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/func_EBFBE0_801A36A8.s") +void func_EBFBE0_801A36A8(void) { + s32 i; + f32 temp; -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/func_EBFBE0_801A3A00.s") + switch (D_EBFBE0_801CD948) { + case 0: + D_80178348 = 0; + D_80178350 = 0; + D_80178354 = 0; + D_80178340 = 0xFF; + + for (i = 0; i < 8; i++) { + D_EBFBE0_801CF020[i] = D_EBFBE0_801B69D4[i]; + D_EBFBE0_801CF040[i] = D_EBFBE0_801B69F4[i]; + D_EBFBE0_801CF060[i] = D_EBFBE0_801B6A14[i]; + } + + D_EBFBE0_801CF0C8 = D_EBFBE0_801B6A34[1]; + D_EBFBE0_801CF0CC = D_EBFBE0_801B6A3C[1]; + D_EBFBE0_801CF0D0 = D_EBFBE0_801B6A44[1]; + + D_EBFBE0_801CF120 = 0; + D_EBFBE0_801CEA9C = 255.0f; + D_EBFBE0_801CF080 = 1.0f; + D_EBFBE0_801CD948 = 10; + + func_8001D444(0, 0x28, 0, 0xFF); + break; + + case 10: + temp = Math_SmoothStepToF(&D_EBFBE0_801CEA9C, 0.0f, 1.0f, 100.0f, 1.0f); + + D_80178340 = D_EBFBE0_801CEA9C; + + if (temp == 0.0f) { + D_80178340 = 0; + D_EBFBE0_801CD9C0 = 0; + D_EBFBE0_801CD948 = 20; + } + break; + + case 20: + if (D_EBFBE0_801CD9C0 != 0) { + break; + } + D_EBFBE0_801CD94C = 0; + D_EBFBE0_801CD9C0 = 0; + D_EBFBE0_801CD948 = 1; + break; + + case 1: + if (D_EBFBE0_801CF120) { + D_EBFBE0_801CDA1C += 0.03f; + } + if (D_EBFBE0_801CD9C0) { + break; + } + func_EBFBE0_801A3A00(); + break; + + case 2: + func_EBFBE0_801A4394(); + break; + + case 3: + D_80178340 += 32; + if (D_80178340 > 255) { + D_80178340 = 255; + D_EBFBE0_801CD948++; + } + break; + + case 4: + gGameState = 3; + D_Timer_8017783C = 2; + D_8017784C = 0; + gDrawMode = 0; + D_80178410 = 0; + break; + } + + if (gControllerPress[gMainController].button & (A_BUTTON | START_BUTTON)) { + Audio_PlaySfx(0x49000003U, &D_800C5D28, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + D_EBFBE0_801CD948 = 3; + } +} + +void func_EBFBE0_801A3A00(void) { + s32 i; + bool boolTemp; + f32 temp1[8]; + f32 temp2[8]; + f32 temp3[8]; + + switch (D_EBFBE0_801CD94C) { + case 0: + for (i = 0; i < 8; i++) { + if (!D_EBFBE0_801CF120) { + D_EBFBE0_801CF0D8[i] = i * 4; + } else { + D_EBFBE0_801CF0D8[i] = i * 3; + } + D_EBFBE0_801CF088[i] = 0.0f; + D_EBFBE0_801CF0A8[i] = 0.0f; + D_EBFBE0_801CF0F8[i] = 0; + } + D_EBFBE0_801CD94C++; + break; + + case 1: + for (i = 0; i < 8; i++) { + if (D_EBFBE0_801CF0D8[i] != 0) { + D_EBFBE0_801CF0D8[i]--; + continue; + } + + temp1[i] = Math_SmoothStepToF(&D_EBFBE0_801CF020[i], *(D_EBFBE0_801CF0C8 + i), 0.05f, 100.0f, 10.0f); + temp2[i] = Math_SmoothStepToF(&D_EBFBE0_801CF040[i], *(D_EBFBE0_801CF0CC + i), 0.05f, 100.0f, 10.0f); + temp3[i] = Math_SmoothStepToF(&D_EBFBE0_801CF060[i], *(D_EBFBE0_801CF0D0 + i), 0.1f, 100.0f, 0.1f); + + if (temp1[i] == 0.0f && temp2[i] == 0.0f && temp3[i] == 0.0f) { + D_EBFBE0_801CF088[i] = 0.0f; + if (temp3[i] == 0.0f) { + D_EBFBE0_801CF0F8[i] = 1; + } + } else { + D_EBFBE0_801CF088[i] += 10.0f; + } + } + + boolTemp = true; + for (i = 0; i < 8; i++) { + if (D_EBFBE0_801CF0F8[i] == 0) { + boolTemp = false; + break; + } + } + + if (boolTemp == true) { + D_EBFBE0_801CF118 = 0; + for (i = 0; i < 8; i++) { + D_EBFBE0_801CF088[i] = 0.0f; + D_EBFBE0_801CF0D8[i] = i * 10; + D_EBFBE0_801CF0F8[i] = 0; + } + D_EBFBE0_801CD9C0 = 60; + D_EBFBE0_801CD9BC = 85; + D_EBFBE0_801CD94C = 11; + } + break; + + case 11: + if (D_EBFBE0_801CD9C0) { + break; + } + + if (D_EBFBE0_801CD9BC) { + for (i = 0; i < 8; i++) { + Math_SmoothStepToF(&D_EBFBE0_801CF088[i], 360.0f, 0.3f, 100.0f, 1.0f); + Math_SmoothStepToF(&D_EBFBE0_801CF0A8[i], 360.0f, 0.3f, 100.0f, 1.0f); + } + } else { + D_EBFBE0_801CD94C = 10; + } + break; + + case 10: + if (!D_EBFBE0_801CD9B8) { + if (!D_EBFBE0_801CF120) { + D_EBFBE0_801CEAA0 = 0.0f; + D_EBFBE0_801CD9B8 = 25; + D_EBFBE0_801CD94C = 3; + } else { + for (i = 0; i < 8; i++) { + D_EBFBE0_801CF088[i] = 0.0f; + D_EBFBE0_801CF0A8[i] = 0.0f; + D_EBFBE0_801CF0F8[i] = 0; + } + D_EBFBE0_801CEFCC = 0; + D_EBFBE0_801CF0D8[0] = 4; + D_EBFBE0_801CD94C = 2; + } + } + break; + + case 2: + if (D_EBFBE0_801CF0D8[0]) { + D_EBFBE0_801CF0D8[0]--; + } else { + D_EBFBE0_801CEFCC++; + if (D_EBFBE0_801CEFCC > 8) { + D_EBFBE0_801CEFCC = 8; + boolTemp = true; + + for (i = 0; i < 8; i++) { + if (D_EBFBE0_801CF0F8[i] == 0) { + boolTemp = false; + break; + } + } + + if (boolTemp) { + D_EBFBE0_801CEFCC = 0; + D_EBFBE0_801CF11C ^= 1; + D_EBFBE0_801CF0C8 = D_EBFBE0_801B6A34[D_EBFBE0_801CF11C]; + D_EBFBE0_801CF0CC = D_EBFBE0_801B6A3C[D_EBFBE0_801CF11C]; + D_EBFBE0_801CF0D0 = D_EBFBE0_801B6A44[D_EBFBE0_801CF11C]; + + D_EBFBE0_801CD9C0 = 15; + if (D_EBFBE0_801CF11C) { + D_EBFBE0_801CD9C0 = 240; + } + D_EBFBE0_801CD94C = 0; + } + } else { + D_EBFBE0_801CF0D8[0] = 4; + } + } + + for (i = 0; i < D_EBFBE0_801CEFCC; i++) { + if (D_EBFBE0_801CF0F8[i] == 1) { + continue; + } + + if (D_EBFBE0_801CF0A8[i] > 360.0f) { + D_EBFBE0_801CF0A8[i] = 0.0f; + D_EBFBE0_801CF0F8[i] = 1; + } else { + D_EBFBE0_801CF0A8[i] += 10.0f; + } + } + break; + + case 3: + if (D_EBFBE0_801CD9B8 != 0) { + break; + } + + for (i = 0; i < 8; i++) { + D_EBFBE0_801CF088[i] += 30.0f; + D_EBFBE0_801CF060[i] += -300.0f; + if (D_EBFBE0_801CF060[i] <= -120000.0f) { + D_EBFBE0_801CF060[i] = -12000.0f; + } + } + + if (D_EBFBE0_801CF060[0] <= -11000.0f) { + D_EBFBE0_801CEAA0 += 32.0f; + + if (D_EBFBE0_801CEAA0 > 255.0f) { + D_EBFBE0_801CEAA0 = 255.0f; + } + +#define PLANET_ID i + for (PLANET_ID = 0; PLANET_ID < PLANET_MAX; PLANET_ID++) { + planet[PLANET_ID].alpha = D_EBFBE0_801CEAA0; + D_EBFBE0_801CD970 = D_EBFBE0_801CEAA0; + if ((PLANET_ID == PLANET_SECTOR_Z) || (PLANET_ID == PLANET_SECTOR_X) || + (PLANET_ID == PLANET_SECTOR_Y)) { + if (planet[PLANET_ID].alpha > 144) { + planet[PLANET_ID].alpha = 144; + } + } + } +#undef PLANET_ID + } + + if (D_EBFBE0_801CEAA0 == 255.0f) { + D_EBFBE0_801CF080 = 0.0f; + D_EBFBE0_801CD948 = 2; + D_EBFBE0_801CD94C = 0; + } + break; + } +} void func_EBFBE0_801A4394(void) { s32 i; @@ -1801,7 +3599,7 @@ void func_EBFBE0_801A4394(void) { break; case 3: - if (D_EBFBE0_801CD9C0) { + if (D_EBFBE0_801CD9C0 != 0) { break; } @@ -1827,18 +3625,12 @@ void func_EBFBE0_801A4394(void) { } } -#ifndef IMPORT_DATA -extern Gfx* D_EBFBE0_801B6A4C[]; // likely in-function static -#endif - void func_EBFBE0_801A4650(void) { s32 i; -#ifdef IMPORT_DATA static Gfx* D_EBFBE0_801B6A4C[] = { (Gfx*) 0x09006AE0, (Gfx*) 0x090086F0, (Gfx*) 0x09005380, (Gfx*) 0x090075A0, (Gfx*) 0x09000570, (Gfx*) 0x09002EA0, (Gfx*) 0x090075A0, (Gfx*) 0x09004230, }; -#endif Lights_SetOneLight(&gMasterDisp, 0, 0, 127, 28, 58, 105, 65, 70, 48); @@ -2044,11 +3836,161 @@ void func_EBFBE0_801A4F8C(void) { gDrawMode = DRAWMODE_0; } -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/func_EBFBE0_801A4FC4.s") +void func_EBFBE0_801A4FC4(void) { + s32 i; + s32 temp; + s32 temp2; -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/func_EBFBE0_801A53C8.s") + gPlayerNum = 0; -s32 func_EBFBE0_801A5770(void) { + for (i = 0; i < 6; i++) { + gSavedTeamShields[i] = D_80177C58[i]; + gTeamShields[i] = D_80177C58[i]; + D_80177C38[i] = D_80177C58[i]; + } + + for (i = 1; i < 4; i++) { + if (D_80177C38[i] == 0) { + D_80177C38[i] = 255; + } + } + + gLaserStrength[gPlayerNum] = 0; + gBombCount[gPlayerNum] = 3; + + if (planet[D_EBFBE0_801CD954].unk_2C != -1) { + temp2 = func_EBFBE0_801A655C(D_EBFBE0_801CD954, planet[D_EBFBE0_801CD954].unk_2C); + D_80177BD8[temp2] = 0; + D_EBFBE0_801AFD18[temp2].unk_18 = 0; + } + + if (planet[D_EBFBE0_801CD954].unk_30 != -1) { + temp = func_EBFBE0_801A655C(D_EBFBE0_801CD954, planet[D_EBFBE0_801CD954].unk_30); + D_80177BD8[temp] = 0; + D_EBFBE0_801AFD18[temp].unk_18 = 0; + } + + if (planet[D_EBFBE0_801CD954].unk_34 != -1) { + temp = func_EBFBE0_801A655C(D_EBFBE0_801CD954, planet[D_EBFBE0_801CD954].unk_34); + D_80177BD8[temp] = 0; + D_EBFBE0_801AFD18[temp].unk_18 = 0; + } + + D_EBFBE0_801AFD18[D_EBFBE0_801CEECC].unk_14 = 0; + D_EBFBE0_801CEEA0 = 0; + D_EBFBE0_801CEEA4 = 0; + D_EBFBE0_801CEEA8 = 255; + D_EBFBE0_801CEEAC = 255; + + gTotalHits -= D_80177B70[D_80177B48 - 1]; + D_80177B90[D_80177B48] = -1; + D_80177B70[D_80177B48 - 1] = 0; + D_80177BB0[D_80177B48 - 1] = 0; + D_80177B50[D_80177B48 - 1] = 0x00FFFFFF; + gHitCount = 0; + D_80177B48--; + + D_EBFBE0_801CD83C = func_EBFBE0_801A05B4(); + + D_EBFBE0_801CD954 = D_EBFBE0_801CD950; + + if (planet[D_EBFBE0_801CD954].unk_2C != -1) { + temp2 = func_EBFBE0_801A655C(D_EBFBE0_801CD954, planet[D_EBFBE0_801CD954].unk_2C); + D_80177BD8[temp2] = 1; + D_EBFBE0_801AFD18[temp2].unk_18 = 255; + } + + if (planet[D_EBFBE0_801CD954].unk_30 != -1) { + temp = func_EBFBE0_801A655C(D_EBFBE0_801CD954, planet[D_EBFBE0_801CD954].unk_30); + D_80177BD8[temp] = 1; + D_EBFBE0_801AFD18[temp].unk_18 = 255; + } + + if (planet[D_EBFBE0_801CD954].unk_34 != -1) { + temp = func_EBFBE0_801A655C(D_EBFBE0_801CD954, planet[D_EBFBE0_801CD954].unk_34); + D_80177BD8[temp] = 0; + D_EBFBE0_801AFD18[temp].unk_18 = 0; + } + + func_EBFBE0_801A6368(); +} + +void func_EBFBE0_801A53C8(void) { + s32 temp; + s32 temp2; + + D_EBFBE0_801CEFD8 ^= 1; + + if (planet[D_EBFBE0_801CD954].unk_2C != -1) { + temp2 = func_EBFBE0_801A655C(D_EBFBE0_801CD954, planet[D_EBFBE0_801CD954].unk_2C); + D_80177BD8[temp2] = 0; + D_EBFBE0_801AFD18[temp2].unk_18 = 0; + } + + if (planet[D_EBFBE0_801CD954].unk_30 != -1) { + temp = func_EBFBE0_801A655C(D_EBFBE0_801CD954, planet[D_EBFBE0_801CD954].unk_30); + D_80177BD8[temp] = 0; + D_EBFBE0_801AFD18[temp].unk_18 = 0; + } + + D_80177BD8[D_EBFBE0_801CEECC] = 0; + + D_EBFBE0_801AFD18[D_EBFBE0_801CEECC].unk_18 = 0; + D_EBFBE0_801AFD18[D_EBFBE0_801CEECC].unk_14 = 0; + + D_EBFBE0_801CD954 = D_EBFBE0_801CD950; + + if (!D_EBFBE0_801CEFD8) { + D_EBFBE0_801CD958 = planet[D_EBFBE0_801CD954].unk_2C; + } else if (D_EBFBE0_801CD93C != 2) { + if (planet[D_EBFBE0_801CD954].unk_30 != -1) { + D_EBFBE0_801CD958 = planet[D_EBFBE0_801CD954].unk_30; + } else { + D_EBFBE0_801CD958 = planet[D_EBFBE0_801CD954].unk_2C; + } + } else if (planet[D_EBFBE0_801CD954].unk_34 != -1) { + D_EBFBE0_801CD958 = planet[D_EBFBE0_801CD954].unk_34; + } else { + D_EBFBE0_801CD958 = planet[D_EBFBE0_801CD954].unk_2C; + } + + D_EBFBE0_801CEECC = func_EBFBE0_801A655C(D_EBFBE0_801CD954, D_EBFBE0_801CD958); + + D_EBFBE0_801AFD18[D_EBFBE0_801CEECC].unk_18 = 255; + + D_80177BD8[D_EBFBE0_801CEECC] = 3; + + D_EBFBE0_801AFD18[D_EBFBE0_801CEECC].unk_14 = 2; + + if ((D_EBFBE0_801AFD18[D_EBFBE0_801CEECC].unk_00 == 3) || (D_EBFBE0_801AFD18[D_EBFBE0_801CEECC].unk_00 == 4)) { + D_80177BD8[D_EBFBE0_801CEECC] = 5; + D_EBFBE0_801AFD18[D_EBFBE0_801CEECC].unk_14 = 5; + } + + D_EBFBE0_801CEEA0 = 0; + D_EBFBE0_801CEEA4 = 100; + D_EBFBE0_801CEEA8 = 255; + D_EBFBE0_801CEEAC = 255; + + D_EBFBE0_801CD954 = D_EBFBE0_801CD958; + D_80177B90[D_80177B48] = D_EBFBE0_801CD954; + + func_EBFBE0_801A6368(); + + if (planet[D_EBFBE0_801CD958].unk_2C != -1) { + temp2 = func_EBFBE0_801A655C(D_EBFBE0_801CD958, planet[D_EBFBE0_801CD958].unk_2C); + D_80177BD8[temp2] = 1; + D_EBFBE0_801AFD18[temp2].unk_18 = 255; + } + + if (planet[D_EBFBE0_801CD958].unk_30 != -1) { + temp = func_EBFBE0_801A655C(D_EBFBE0_801CD958, planet[D_EBFBE0_801CD958].unk_30); + D_80177BD8[temp] = 1; + D_EBFBE0_801AFD18[temp].unk_18 = 255; + } +} + +bool func_EBFBE0_801A5770(void) { bool ret = false; s8 y = gControllerPress[gMainController].stick_y; @@ -2072,7 +4014,94 @@ s32 func_EBFBE0_801A5770(void) { return ret; } -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/func_EBFBE0_801A5834.s") +void func_EBFBE0_801A5834(void) { + s32 i; + f32 x; + f32 y; + f32 z; + u8* texture; + s32 colorIndex; + s32 var_t0; + s32 mask; + s32 r[3]; + s32 g[3]; + s32 b[3]; + static f32 D_EBFBE0_801B6A6C[] = { 3.05f, 4.15f }; + + x = 101.0f; + y = 92.0f; + z = 0.0f; + + colorIndex = 0; + + for (i = 0; i < 3; i++) { + r[i] = 64; + g[i] = 64; + b[i] = 64; + if (i == D_EBFBE0_801CEFDC) { + r[i] = 255; + g[i] = D_EBFBE0_801CEFE8[i]; + b[i] = D_EBFBE0_801CEFE8[i]; + } + } + + var_t0 = 1; + if (!D_EBFBE0_801CD93C) { + var_t0 = 0; + } + + if (gLifeCount[gPlayerNum]) { + texture = D_6001080; + } else { + texture = (u8*) D_6000000; + } + + RCP_SetupDL(&gMasterDisp, 0x4C); + + gDPSetPrimColor(gMasterDisp++, 0, 0, 60, 60, 255, 170); + + TextureRect_8bIA(&gMasterDisp, D_601B4B0, 24, 17, x, y, 4.6f, D_EBFBE0_801B6A6C[var_t0]); + + mask = 0xFFFFFFFF; + if (D_EBFBE0_801CF000[colorIndex] != 0) { + mask = 0x00000001; + D_EBFBE0_801CF000[colorIndex]--; + } + + if (gFrameCount & mask) { + RCP_SetupDL(&gMasterDisp, 0x53); + gDPSetPrimColor(gMasterDisp++, 0, 0, r[colorIndex], g[colorIndex], b[colorIndex], 255); + TextureRect_8bIA(&gMasterDisp, D_6000840, 96, 22, x + 11.0f, y + 3.0f, 1.0f, 1.0f); + } + z = 24.0f; + colorIndex++; + + if (D_EBFBE0_801CD93C != 0) { + mask = 0xFFFFFFFF; + if (D_EBFBE0_801CF000[colorIndex] != 0) { + mask = 0x00000001; + D_EBFBE0_801CF000[colorIndex]--; + } + + if (gFrameCount & mask) { + gDPSetPrimColor(gMasterDisp++, 0, 0, r[colorIndex], g[colorIndex], b[colorIndex], 255); + TextureRect_8bIA(&gMasterDisp, D_60018C0, 96, 10, x + 10.0f, y + z + 8.0f, 1.0f, 1.0f); + } + z += 18.0f; + colorIndex++; + } + + mask = 0xFFFFFFFF; + if (D_EBFBE0_801CF000[colorIndex] != 0) { + mask = 0x00000001; + D_EBFBE0_801CF000[colorIndex]--; + } + + if (gFrameCount & mask) { + gDPSetPrimColor(gMasterDisp++, 0, 0, r[colorIndex], g[colorIndex], b[colorIndex], 255); + TextureRect_8bIA(&gMasterDisp, texture, 96, 22, x + 9.0f, y + z + 5.0f, 1.0f, 1.0f); + } +} void func_EBFBE0_801A5C90(void) { s32 pad[3]; @@ -2177,16 +4206,15 @@ void func_EBFBE0_801A5E80(void) { } else { D_EBFBE0_801CD9B8 = 5; D_EBFBE0_801CF018 = 0; - D_EBFBE0_801B8280 += 1; + D_EBFBE0_801B8280++; } - break; case 3: if (D_EBFBE0_801CD9B8 == 0) { D_EBFBE0_801CD9B8 = 5; D_EBFBE0_801CD968 = 1; - D_EBFBE0_801B8280 += 1; + D_EBFBE0_801B8280++; } break; @@ -2479,7 +4507,7 @@ void func_EBFBE0_801A6628(void) { } void func_EBFBE0_801A6694(void) { - s32 i; + PlanetId planetId; Vec3f dest; Vec3f src; @@ -2487,25 +4515,25 @@ void func_EBFBE0_801A6694(void) { src.y = 0.0f; src.z = 0.0f; - for (i = 0; i < 15; i++) { + for (planetId = 0; planetId < PLANET_MAX; planetId++) { Matrix_Push(&gGfxMatrix); - Matrix_RotateY(gGfxMatrix, M_DTOR * planet[i].unk_1C, 1); - Matrix_Translate(gGfxMatrix, planet[i].unk_04, planet[i].unk_08, 0.0f, 1); + Matrix_RotateY(gGfxMatrix, M_DTOR * planet[planetId].unk_1C, 1); + Matrix_Translate(gGfxMatrix, planet[planetId].unk_04, planet[planetId].unk_08, 0.0f, 1); - Matrix_RotateY(gGfxMatrix, M_DTOR * -planet[i].unk_1C, 1); + Matrix_RotateY(gGfxMatrix, M_DTOR * -planet[planetId].unk_1C, 1); func_EBFBE0_801AD048(); Matrix_SetGfxMtx(&gMasterDisp); - Matrix_Copy(&D_EBFBE0_801CDA60[i], gGfxMatrix); + Matrix_Copy(&D_EBFBE0_801CDA60[planetId], gGfxMatrix); Matrix_MultVec3f(gGfxMatrix, &src, &dest); - planet[i].posX = dest.x; - planet[i].posY = dest.y; - planet[i].posZ = dest.z; + planet[planetId].posX = dest.x; + planet[planetId].posY = dest.y; + planet[planetId].posZ = dest.z; Matrix_Pop(&gGfxMatrix); @@ -2514,11 +4542,11 @@ void func_EBFBE0_801A6694(void) { Matrix_LookAt(gGfxMatrix, D_EBFBE0_801CD9F4, D_EBFBE0_801CD9F8, D_EBFBE0_801CD9FC, D_EBFBE0_801CDA00, D_EBFBE0_801CDA04, D_EBFBE0_801CDA08, D_EBFBE0_801CDA20, D_EBFBE0_801CDA24, D_EBFBE0_801CDA28, 1); Matrix_Translate(gGfxMatrix, D_EBFBE0_801CEA58, D_EBFBE0_801CEA5C, D_EBFBE0_801CEA60, 1); - Matrix_Mult(gGfxMatrix, &D_EBFBE0_801CDA60[i], 1); + Matrix_Mult(gGfxMatrix, &D_EBFBE0_801CDA60[planetId], 1); Matrix_SetGfxMtx(&gMasterDisp); - Matrix_MultVec3f(gGfxMatrix, &src, &D_EBFBE0_801CE960[i]); + Matrix_MultVec3f(gGfxMatrix, &src, &D_EBFBE0_801CE960[planetId]); Matrix_Pop(&gGfxMatrix); } @@ -2616,15 +4644,15 @@ void func_EBFBE0_801A6A98(PlanetId planetId) { func_EBFBE0_801A7A84(planetId); } - if (planetId == PLANET_CORNERIA && D_EBFBE0_801CEB48[0]) { + if ((planetId == PLANET_CORNERIA) && D_EBFBE0_801CEB48[0]) { func_EBFBE0_801A89BC(PLANET_CORNERIA, 0); } - if (planetId == PLANET_KATINA && D_EBFBE0_801CEB48[1]) { + if ((planetId == PLANET_KATINA) && D_EBFBE0_801CEB48[1]) { func_EBFBE0_801A89BC(PLANET_KATINA, 1); } - if (planetId == PLANET_SECTOR_Y && D_EBFBE0_801CEB48[2]) { + if ((planetId == PLANET_SECTOR_Y) && D_EBFBE0_801CEB48[2]) { func_EBFBE0_801A89BC(PLANET_SECTOR_Y, 2); } @@ -2805,13 +4833,13 @@ void func_EBFBE0_801A7230(PlanetId planetId) { Matrix_Pop(&gGfxMatrix); } -#ifdef IMPORT_DATA -void func_EBFBE0_801A74F4(s32 planetId) { +void func_EBFBE0_801A74F4(PlanetId planetId) { static f32 D_EBFBE0_801B6A74 = 0.0f; s32 alpha = planet[13].alpha; - if (planet[planetId].alpha > 128) + if (planet[planetId].alpha > 128) { alpha = 128; + } RCP_SetupDL(&gMasterDisp, 0x43); @@ -2832,9 +4860,6 @@ void func_EBFBE0_801A74F4(s32 planetId) { D_EBFBE0_801B6A74 -= 0.2f; } -#else -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/func_EBFBE0_801A74F4.s") -#endif void func_EBFBE0_801A7684(PlanetId planetId) { s32 r; @@ -2909,7 +4934,7 @@ void func_EBFBE0_801A7A84(PlanetId planetId) { RCP_SetupDL(&gMasterDisp, 0x43); gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 175, 175, planet[planetId].alpha); - gDPSetEnvColor(gMasterDisp++, 0x49, 0x1f, 0x0f, 0); + gDPSetEnvColor(gMasterDisp++, 73, 31, 15, 0); Matrix_Push(&gGfxMatrix); @@ -3019,9 +5044,7 @@ void func_EBFBE0_801A7F1C(PlanetId planetId) { } void func_EBFBE0_801A809C(PlanetId planetId) { -#ifdef IMPORT_DATA static f32 D_EBFBE0_801B6A78 = 0.0f; -#endif s32 i; s32 alpha; f32 scale; @@ -3214,10 +5237,91 @@ void func_EBFBE0_801A8738(void) { } } -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/func_EBFBE0_801A89BC.s") +void func_EBFBE0_801A89BC(PlanetId planetId, s32 arg1) { + s32 i; + s32 temp2; + f32 temp; + + if (planet[planetId].alpha == 0) { + return; + } + + if (D_EBFBE0_801CEB48[arg1] == 0) { + return; + } + + temp2 = 10; + if (planetId != PLANET_CORNERIA) { + temp2 = 5; + } + + RCP_SetupDL(&gMasterDisp, 0x43); + + gDPSetEnvColor(gMasterDisp++, 255, 0, 0, 0); + + for (i = 0; i < temp2; i++) { + switch (D_EBFBE0_801CEB58[arg1][i]) { + case 0: + D_EBFBE0_801CEC48[arg1][i] += 0.1f; + if (D_EBFBE0_801CEC48[arg1][i] >= D_EBFBE0_801CECC0[arg1][i]) { + D_EBFBE0_801CEC48[arg1][i] = D_EBFBE0_801CECC0[arg1][i]; + D_EBFBE0_801CEB58[arg1][i] = 1; + } + break; + + case 1: + D_EBFBE0_801CEE28[arg1][i]--; + if (D_EBFBE0_801CEE28[arg1][i] <= 0) { + D_EBFBE0_801CEB58[arg1][i] = 2; + } + break; + + case 2: + D_EBFBE0_801CEBD0[arg1][i] -= 48; + if (D_EBFBE0_801CEBD0[arg1][i] < 0) { + D_EBFBE0_801CEBD0[arg1][i] = 0; + D_EBFBE0_801CEB58[arg1][i] = 3; + } + break; + + case 3: + D_EBFBE0_801CEB58[arg1][i] = Rand_ZeroOne() * 3.0f; + D_EBFBE0_801CEBD0[arg1][i] = 255; + D_EBFBE0_801CEC48[arg1][i] = 0.0f; + D_EBFBE0_801CECC0[arg1][i] = 0.5f + (Rand_ZeroOne() * 0.3f); + D_EBFBE0_801CEE28[arg1][i] = 1 + (s32) (Rand_ZeroOne() * 4.0f); + + temp = 110.0f; + if (arg1 == 1) { + temp = 50.0f; + } + + D_EBFBE0_801CED38[arg1][i] = temp + (s32) (Rand_ZeroOne() * 30.0f); + D_EBFBE0_801CEDB0[arg1][i] = -10.0f + (Rand_ZeroOne() * -60.0f); + break; + } + + if ((D_EBFBE0_801CECC0[arg1][i] == 0.0f) || (D_EBFBE0_801CEBD0[arg1][i] == 0)) { + continue; + } + + gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 200, 200, D_EBFBE0_801CEBD0[arg1][i]); + + Matrix_Push(&gGfxMatrix); + + Matrix_Mult(gGfxMatrix, &D_EBFBE0_801CDA60[planetId], 1); + Matrix_RotateZ(gGfxMatrix, M_DTOR * D_EBFBE0_801CEDB0[arg1][i], 1); + Matrix_Translate(gGfxMatrix, 0.0f, D_EBFBE0_801CED38[arg1][i], 0.0f, 1); + Matrix_Scale(gGfxMatrix, D_EBFBE0_801CEC48[arg1][i], D_EBFBE0_801CEC48[arg1][i], D_EBFBE0_801CEC48[arg1][i], 1); + + Matrix_SetGfxMtx(&gMasterDisp); + + gSPDisplayList(gMasterDisp++, D_60479D0); + + Matrix_Pop(&gGfxMatrix); + } +} -// needs in-function static -#ifdef IMPORT_DATA void func_EBFBE0_801A8F40(void) { static f32 D_EBFBE0_801B6A7C = 0.0f; s32 temp; @@ -3251,9 +5355,6 @@ void func_EBFBE0_801A8F40(void) { D_EBFBE0_801B6A7C += 6.0f; } } -#else -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/func_EBFBE0_801A8F40.s") -#endif void func_EBFBE0_801A914C(void) { D_EBFBE0_801CEAA8 = 140.0f; @@ -3331,7 +5432,80 @@ void func_EBFBE0_801A9224(void) { } } -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/func_EBFBE0_801A9448.s") +void func_EBFBE0_801A9448(void) { + Vec3f src; + Vec3f dest; + f32 x1; + f32 y1; + f32 x; + f32 y; + f32 z; + s32 i; + s32 mask; + static f32 D_EBFBE0_801B6A80 = -22.0f; + + if ((planet[PLANET_AREA_6].alpha == 0) && (D_EBFBE0_801CD954 != PLANET_AREA_6)) { + return; + } + + if ((D_EBFBE0_801CD954 == PLANET_AREA_6) && (D_EBFBE0_801CD944 == 2) && (D_EBFBE0_801CD95C != 0)) { + mask = 0x00000001; + } else { + mask = 0xFFFFFFFF; + } + + if ((D_EBFBE0_801CD944 == 3) || (D_EBFBE0_801CD954 == PLANET_AREA_6)) { + RCP_SetupDL(&gMasterDisp, 0x17); + } else { + RCP_SetupDL(&gMasterDisp, 0x2E); + gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, planet[PLANET_AREA_6].alpha); + } + + dest.x = 0.0f; + dest.y = 0.0f; + dest.z = 0.0f; + + if (gFrameCount & mask) { + for (i = 0; i < 4; i++) { + Matrix_Push(&gGfxMatrix); + + Matrix_RotateY(gGfxMatrix, M_DTOR * D_EBFBE0_801AFCD8[i].angle, 1); + Matrix_Translate(gGfxMatrix, D_EBFBE0_801AFCD8[i].x, D_EBFBE0_801AFCD8[i].y, 0.0f, 1); + Matrix_RotateY(gGfxMatrix, M_DTOR * -(D_EBFBE0_801AFCD8[i].angle), 1); + + func_EBFBE0_801AD048(); + + Matrix_RotateY(gGfxMatrix, M_DTOR * D_EBFBE0_801B6A80, 1); + Matrix_Scale(gGfxMatrix, D_EBFBE0_801AFCD8[i].scale, D_EBFBE0_801AFCD8[i].scale, D_EBFBE0_801AFCD8[i].scale, + 1); + + Matrix_SetGfxMtx(&gMasterDisp); + + Matrix_MultVec3f(gGfxMatrix, &dest, &src); + + x = D_EBFBE0_801CE960[PLANET_SOLAR].x - src.x; + y = D_EBFBE0_801CE960[PLANET_SOLAR].y - src.y; + z = D_EBFBE0_801CE960[PLANET_SOLAR].z - src.z; + + x1 = Math_Atan2F(y, sqrtf(SQ(x) + SQ(z))); + y1 = -Math_Atan2F(x, z); + + dest.x = 0.0f; + dest.y = 0.0f; + dest.z = 100.0f; + + Matrix_RotateY(gCalcMatrix, M_DTOR * (-D_EBFBE0_801CDA10 - y1), 0); + Matrix_RotateX(gCalcMatrix, M_DTOR * (-D_EBFBE0_801CDA0C - x1), 1); + + Matrix_MultVec3f(gCalcMatrix, &dest, &src); + Lights_SetOneLight(&gMasterDisp, src.x, src.y, src.z, 80, 80, 60, 0, 0, 0); + + gSPDisplayList(gMasterDisp++, D_601E9A0); + + Matrix_Pop(&gGfxMatrix); + } + } +} void func_EBFBE0_801A9814(void) { if (D_EBFBE0_801B8280 != 0) { @@ -3346,12 +5520,9 @@ void func_EBFBE0_801A9814(void) { } void func_EBFBE0_801A9910(void) { - s32 i; - s32 var_s0; -#ifdef IMPORT_DATA static s32 D_EBFBE0_801B6A84[] = { 1, 13, 12, 11, 6, 2, 4, 10, 8, 0, 9, 5, 3, 7, 7 }; -#endif - var_s0 = D_EBFBE0_801B6A84[D_EBFBE0_801CD954]; + s32 i; + s32 var_s0 = D_EBFBE0_801B6A84[D_EBFBE0_801CD954]; RCP_SetupDL(&gMasterDisp, 0x53); @@ -3368,19 +5539,12 @@ void func_EBFBE0_801A9910(void) { D_EBFBE0_801CEA70 *= 1.08; } -#ifndef IMPORT_DATA -extern f32 D_EBFBE0_801B6AC0[2]; -extern f32 D_EBFBE0_801B6AC8[2]; -#endif - void func_EBFBE0_801A9A8C(void) { s32 i; s32 sp58; u8* sp54; -#ifdef IMPORT_DATA static f32 D_EBFBE0_801B6AC0[2] = { 91.0f, 207.0f }; static f32 D_EBFBE0_801B6AC8[2] = { 61.0f, 61.0f }; -#endif switch (gCurrentLevel) { case LEVEL_CORNERIA: @@ -3492,55 +5656,21 @@ void func_EBFBE0_801A9DE8(void) { } if ((D_80161A34 == 7) || (D_80161A34 == 5)) { - if (D_EBFBE0_801CD83C < D_80161714) { - D_EBFBE0_801CD83C = D_80161714; + if (D_EBFBE0_801CD83C < gTotalHits) { + D_EBFBE0_801CD83C = gTotalHits; } func_EBFBE0_801A9EE4(); func_EBFBE0_801A9FD4(0); } } -#ifndef IMPORT_DATA - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/D_EBFBE0_801B74C0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/D_EBFBE0_801B74C4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/D_EBFBE0_801B74C8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/D_EBFBE0_801B74CC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/D_EBFBE0_801B74D0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/D_EBFBE0_801B74D4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/D_EBFBE0_801B74D8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/D_EBFBE0_801B74DC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/D_EBFBE0_801B74E0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/D_EBFBE0_801B74E4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/D_EBFBE0_801B74E8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/D_EBFBE0_801B74EC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/D_EBFBE0_801B74F0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/D_EBFBE0_801B74F4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/D_EBFBE0_801B74F8.s") - -#endif - void func_EBFBE0_801A9EE4(void) { RCP_SetupDL(&gMasterDisp, 0x53); gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 0, 255); Graphics_DisplaySmallText(24, 14, 1.0f, 1.0f, "TOTAL HITS"); - Graphics_DisplaySmallNumber(71 - (func_8008BCBC(D_80161714) * 8), 24, D_80161714); + Graphics_DisplaySmallNumber(71 - (func_8008BCBC(gTotalHits) * 8), 24, gTotalHits); Graphics_DisplaySmallText(143, 14, 1.0f, 1.0f, "TOP"); Graphics_DisplaySmallNumber(167 - (func_8008BCBC(D_EBFBE0_801CD83C) * 8), 24, D_EBFBE0_801CD83C); } @@ -3637,32 +5767,22 @@ void func_EBFBE0_801AA1CC(s32 arg0) { } } -#ifndef IMPORT_DATA -extern char* D_EBFBE0_801AF9F4[15]; -extern char* D_EBFBE0_801B6AD0[]; -extern s32 D_EBFBE0_801B6ADC[]; -extern s32 D_EBFBE0_801B6AE8[]; -extern s32 D_EBFBE0_801B6AF4[]; -#endif - -void func_EBFBE0_801AA434(s32 arg0, f32 x, f32 y, s32 pp) { +void func_EBFBE0_801AA434(s32 arg0, f32 x, f32 y, s32 idx) { s32 i; f32 x2; s32 pad; s32 mask; s32 temp; -#ifdef IMPORT_DATA static char* D_EBFBE0_801B6AD0[] = { "P", "S", "F" }; static s32 D_EBFBE0_801B6ADC[] = { 255, 0, 30 }; static s32 D_EBFBE0_801B6AE8[] = { 30, 179, 30 }; static s32 D_EBFBE0_801B6AF4[] = { 0, 67, 255 }; -#endif RCP_SetupDL(&gMasterDisp, 0x53); gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 0, 255); - Graphics_DisplaySmallText(x + 12.0f - Graphics_GetSmallTextWidth(D_EBFBE0_801AF9F4[pp]) * 0.5f, y - 8.0f, 1.0f, - 1.0f, D_EBFBE0_801AF9F4[pp]); + Graphics_DisplaySmallText(x + 12.0f - Graphics_GetSmallTextWidth(sPlanetNames[idx]) * 0.5f, y - 8.0f, 1.0f, 1.0f, + sPlanetNames[idx]); Graphics_DisplaySmallNumber(x + 15.0f - ((func_8008BCBC(D_80177B70[arg0]) - 1) * 8), y + 24.0f + 1.0f, D_80177B70[arg0]); @@ -3690,28 +5810,186 @@ void func_EBFBE0_801AA434(s32 arg0, f32 x, f32 y, s32 pp) { } } -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/func_EBFBE0_801AA778.s") +void func_EBFBE0_801AA778(s32 arg0, f32 x, f32 y, PlanetId planetId) { + s32 mask = 0xFFFFFFFF; -#ifndef IMPORT_DATA -extern f32 D_EBFBE0_801B6B00; // likely in-function static -extern f32 D_EBFBE0_801B6B04; // likely in-function static -extern f32 D_EBFBE0_801B6B08; // likely in-function static -#endif + if (gGameState == GSTATE_MAP) { + if (planetId == D_EBFBE0_801CD954) { + mask = 0x00000010; + } + } + + switch (planetId) { + case PLANET_SOLAR: + if (gFrameCount & mask) { + RCP_SetupDL(&gMasterDisp, 0x43); + + gDPSetPrimColor(gMasterDisp++, 0, 0, 240, 0, 0, 255); + gDPSetEnvColor(gMasterDisp++, 31, 0, 0, 0); + + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, x, y, 0.0f, 1); + Matrix_RotateZ(gGfxMatrix, M_DTOR * (planet[planetId].zAngle), 1); + Matrix_Scale(gGfxMatrix, 0.11f, 0.11f, 0.11f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + + gSPDisplayList(gMasterDisp++, D_EBFBE0_801B68F8[planet[planetId].id]); + + gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 128); + gDPSetEnvColor(gMasterDisp++, 31, 0, 0, 0); + + Matrix_Scale(gGfxMatrix, 0.8f, 0.8f, 0.8f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + + gSPDisplayList(gMasterDisp++, D_EBFBE0_801B68F8[planet[planetId].id]); + + Matrix_Pop(&gGfxMatrix); + } + break; + + case PLANET_METEO: + if (gFrameCount & mask) { + RCP_SetupDL(&gMasterDisp, 0x3E); + + gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255); + + Matrix_Push(&gGfxMatrix); + + Matrix_Translate(gGfxMatrix, x - 0.4f, y + 0.9f, 0.0f, 1); + Matrix_RotateZ(gGfxMatrix, M_DTOR * planet[planetId].zAngle, 1); + Matrix_Scale(gGfxMatrix, 0.1f, 0.1f, 0.1f, 1); + + Matrix_SetGfxMtx(&gMasterDisp); + + gSPDisplayList(gMasterDisp++, D_EBFBE0_801B68F8[planet[planetId].id]); + + Matrix_Translate(gGfxMatrix, 18.0f, -20.0f, 0.0f, 1); + + Matrix_SetGfxMtx(&gMasterDisp); + + gSPDisplayList(gMasterDisp++, D_EBFBE0_801B68F8[planet[planetId].id]); + Matrix_Pop(&gGfxMatrix); + } + break; + + case PLANET_SECTOR_X: + case PLANET_SECTOR_Y: + case PLANET_SECTOR_Z: + if (gFrameCount & mask) { + RCP_SetupDL(&gMasterDisp, 0x3E); + + gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 144); + + Matrix_Push(&gGfxMatrix); + + Matrix_Translate(gGfxMatrix, x, y, 0.0f, 1); + Matrix_RotateZ(gGfxMatrix, M_DTOR * planet[planetId].zAngle, 1); + Matrix_Scale(gGfxMatrix, 0.09f, 0.09f, 0.09f, 1); + + Matrix_SetGfxMtx(&gMasterDisp); + + gSPDisplayList(gMasterDisp++, D_EBFBE0_801B68F8[planet[planetId].id]); + + Matrix_Pop(&gGfxMatrix); + } + break; + + case PLANET_BOLSE: + if (gFrameCount & mask) { + RCP_SetupDL(&gMasterDisp, 0x17); + + Lights_SetOneLight(&gMasterDisp, 0, 0, 100, 50, 50, 40, 100, 100, 100); + + Matrix_Push(&gGfxMatrix); + + Matrix_Translate(gGfxMatrix, x, y, 0.0f, 1); + Matrix_RotateX(gGfxMatrix, M_DTOR * 20.0f, 1); + Matrix_RotateY(gGfxMatrix, M_DTOR * D_EBFBE0_801AFFF4, 1); + Matrix_RotateZ(gGfxMatrix, M_DTOR * planet[planetId].zAngle, 1); + Matrix_Scale(gGfxMatrix, 0.004f, 0.004f, 0.004f, 1); + + Matrix_SetGfxMtx(&gMasterDisp); + + gSPDisplayList(gMasterDisp++, D_EBFBE0_801B68F8[planet[planetId].id]); + + Matrix_Pop(&gGfxMatrix); + } + break; + + case PLANET_AREA_6: + if (gFrameCount & mask) { + RCP_SetupDL(&gMasterDisp, 0x17); + + Lights_SetOneLight(&gMasterDisp, 0, 0, 100, 50, 50, 40, 100, 100, 100); + + Matrix_Push(&gGfxMatrix); + + Matrix_Translate(gGfxMatrix, x, y, 0.0f, 1); + Matrix_RotateX(gGfxMatrix, M_DTOR * 20.0f, 1); + Matrix_RotateY(gGfxMatrix, M_DTOR * D_EBFBE0_801AFFFC, 1); + Matrix_RotateZ(gGfxMatrix, M_DTOR * planet[planetId].zAngle, 1); + Matrix_Scale(gGfxMatrix, 0.003f, 0.003f, 0.003f, 1); + + Matrix_SetGfxMtx(&gMasterDisp); + + gSPDisplayList(gMasterDisp++, D_EBFBE0_801B68F8[planet[planetId].id]); + + Matrix_Pop(&gGfxMatrix); + } + break; + + default: + if (gFrameCount & mask) { + RCP_SetupDL(&gMasterDisp, 0x3E); + + gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255); + + Matrix_Push(&gGfxMatrix); + + Matrix_Translate(gGfxMatrix, x, y, 0.0f, 1); + Matrix_RotateZ(gGfxMatrix, M_DTOR * planet[planetId].zAngle, 1); + Matrix_Scale(gGfxMatrix, 0.1f, 0.1f, 0.1f, 1); + + Matrix_SetGfxMtx(&gMasterDisp); + + gSPDisplayList(gMasterDisp++, D_EBFBE0_801B68F8[planet[planetId].id]); + + if (planet[planetId].unk_28 == 4) { + if (planetId != PLANET_VENOM && planetId != PLANET_AQUAS) { + Matrix_SetGfxMtx(&gMasterDisp); + if (planetId == PLANET_MACBETH) { + gDPSetPrimColor(gMasterDisp++, 0, 0, 64, 64, 64, 255); + } else { + gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255); + } + gSPDisplayList(gMasterDisp++, D_EBFBE0_801B4A40); + } + Matrix_Scale(gGfxMatrix, 1.6f, 1.6f, 1.6f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_605C230); + } + Matrix_Pop(&gGfxMatrix); + } + break; + } + + if (D_80177BB0[arg0] != 0) { + func_EBFBE0_801AB17C(x, y, 0.0f); + } +} void func_EBFBE0_801AB17C(f32 x, f32 y, f32 z) { -#ifdef IMPORT_DATA - static f32 D_EBFBE0_801B6B00 = 0.23f; // scale - static f32 D_EBFBE0_801B6B04 = 4.4f; // posX - static f32 D_EBFBE0_801B6B08 = 1.0f; // posY -#endif + static f32 scale = 0.23f; + static f32 posX = 4.4f; + static f32 posY = 1.0f; RCP_SetupDL(&gMasterDisp, 0x35); gDPSetTextureFilter(gMasterDisp++, G_TF_POINT); Matrix_Push(&gGfxMatrix); - Matrix_Translate(gGfxMatrix, x - D_EBFBE0_801B6B04, y + D_EBFBE0_801B6B08, z, 1); - Matrix_Scale(gGfxMatrix, D_EBFBE0_801B6B00, D_EBFBE0_801B6B00, D_EBFBE0_801B6B00, 1); + Matrix_Translate(gGfxMatrix, x - posX, y + posY, z, 1); + Matrix_Scale(gGfxMatrix, scale, scale, scale, 1); Matrix_SetGfxMtx(&gMasterDisp); gSPDisplayList(gMasterDisp++, D_601D1F0); @@ -3878,41 +6156,24 @@ void func_EBFBE0_801AB300(void) { break; } - if (D_EBFBE0_801CF018 > 0 && D_EBFBE0_801CF018 != 100) { + if ((D_EBFBE0_801CF018 > 0) && (D_EBFBE0_801CF018 != 100)) { func_EBFBE0_801AB978(D_801782A4); func_EBFBE0_801AB978(D_EBFBE0_801AF420[!D_EBFBE0_801CD940]); func_800BB388(); } } -#ifndef IMPORT_DATA - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/D_EBFBE0_801B750C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/D_EBFBE0_801B7510.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/D_EBFBE0_801B7514.s") - -#endif - -#ifndef IMPORT_DATA -extern f32 D_EBFBE0_801B6B0C[]; -extern u16* D_EBFBE0_801B6B18[]; -#endif - void func_EBFBE0_801AB978(s32 arg0) { s32 i; f32 xPos; f32 yPos; s32 sp90[3]; -#ifdef IMPORT_DATA static f32 D_EBFBE0_801B6B0C[3] = { 205.0f, 237.0f, 269.0f }; static u16* D_EBFBE0_801B6B18[3] = { (u16*) 0x06032A60, (u16*) 0x06044180, (u16*) 0x06032440, }; -#endif switch (arg0) { case 10: @@ -3977,9 +6238,7 @@ void func_EBFBE0_801AB978(s32 arg0) { } void func_EBFBE0_801ABCDC(s32 arg0, s32 alpha) { -#ifdef IMPORT_DATA static s32 D_EBFBE0_801B6B24[] = { 81.0f, 125.0f, 170.0f }; -#endif Matrix_Push(&gGfxMatrix); @@ -4223,8 +6482,6 @@ void func_EBFBE0_801AC530(s32 index) { Matrix_Pop(&gGfxMatrix); } -// needs in-function static -#ifdef IMPORT_DATA void func_EBFBE0_801AC80C(s32 arg0) { static f32 D_EBFBE0_801B6B30 = 0.0f; s32 r; @@ -4263,9 +6520,190 @@ void func_EBFBE0_801AC80C(s32 arg0) { D_EBFBE0_801B6B30 -= 45.0f; } -#else -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/ED6EC0/func_EBFBE0_801AC80C.s") -#endif + +static u32 padding_801B6B34[3] = { 0, 0, 0 }; + +UnkStruct_D_EBFBE0_801B8294 D_EBFBE0_801B6B40[] = { + { + 0.0, + 260.4722595214844, + 1477.2115478515625, + 0.0, + -17.364818572998047, + -98.48077392578125, + }, + { + 0.0, + 20.159666061401367, + 759.7326049804688, + 0.0, + -2.652587890625, + -99.96481323242188, + }, + { + -45.79036331176758, + 0.7120879888534546, + 336.9016418457031, + 13.467754364013672, + -0.2094379961490631, + -99.0887222290039, + }, + { + -59.033607482910156, + -7.9528679847717285, + 104.17190551757812, + 49.194671630859375, + 6.627389907836914, + -86.80992126464844, + }, + { + -39.37468719482422, + 50.698238372802734, + 40.26434326171875, + 65.62447357177734, + -4.497063159942627, + -67.10723876953125, + }, + { + -57.282569885253906, + 48.52915573120117, + -34.80637741088867, + 95.47095489501953, + 7.118072986602783, + -11.322705268859863, + }, + { + -64.80924987792969, + 53.131526947021484, + -77.35162353515625, + 81.01156616210938, + 3.335592031478882, + 15.689521789550781, + }, + { + -32.061317443847656, + 30.244365692138672, + -127.72071075439453, + 32.061317443847656, + 29.755634307861328, + 61.72071075439453, + }, + { + -62.320308685302734, + 25.741756439208984, + -222.99485778808594, + 31.160154342651367, + 32.129119873046875, + 61.99742889404297, + }, + { + -105.85608673095703, + 14.339532852172852, + -355.72161865234375, + 31.134143829345703, + 34.60601806640625, + 61.918128967285156, + }, + { + -136.990234375, + 9.733512878417969, + -450.6397399902344, + 31.134143829345703, + 34.60601806640625, + 61.918128967285156, + }, + { + -189.91827392578125, + 1.9032800197601318, + -612.0005493164062, + 31.134143829345703, + 34.60601806640625, + 61.918128967285156, + }, +}; + +UnkStruct_D_EBFBE0_801B8294 D_EBFBE0_801B6C60[] = { + { + 230.0, + -20.0, + -3.999999989900971e-06, + 90.0, + -20.0, + 1.9999999949504854e-06, + }, + { + 217.92657470703125, + 45.027198791503906, + -0.0069610001519322395, + 96.70745849609375, + -25.01511001586914, + 0.0038670001085847616, + }, + { + 161.75991821289062, + 66.46260070800781, + 50.40374755859375, + 73.11239624023438, + -6.1025848388671875, + -28.31671142578125, + }, + { + 117.36236572265625, + 2.6198840141296387, + 27.208602905273438, + 84.39605712890625, + -4.366471767425537, + -45.34767150878906, + }, + { + 19.168537139892578, + 2.4452030658721924, + 27.57978057861328, + 7.556180953979492, + -4.366434097290039, + -49.24960708618164, + }, + { + -116.45977783203125, + 1.2701389789581299, + 27.862812042236328, + -109.60753631591797, + -2.268105983734131, + -49.75502014160156, + }, + { + -117.43788146972656, + 1.2725709676742554, + 27.8646240234375, + -110.64664459228516, + -2.272449016571045, + -49.75825500488281, + }, + { + -118.43771362304688, + 1.3140660524368286, + 27.862712860107422, + -111.64693450927734, + -2.346545934677124, + -49.754844665527344, + }, + { + -118.44500732421875, + 1.3140660524368286, + 27.86207389831543, + -111.6339111328125, + -2.346545934677124, + -49.75370407104492, + }, + { + -118.46446228027344, + 1.3140660524368286, + 27.860361099243164, + -111.59918212890625, + -2.346545934677124, + -49.75064468383789, + }, +}; void func_EBFBE0_801AC9A0(s32 index) { Vec3f srcPos; diff --git a/src/overlays/ovl_EBFBE0/fox_map.h b/src/overlays/ovl_menu/fox_map.h similarity index 95% rename from src/overlays/ovl_EBFBE0/fox_map.h rename to src/overlays/ovl_menu/fox_map.h index d6d4ce6f..0ba217d8 100644 --- a/src/overlays/ovl_EBFBE0/fox_map.h +++ b/src/overlays/ovl_menu/fox_map.h @@ -17,6 +17,7 @@ typedef enum PlanetId { /* 12 */ PLANET_FORTUNA, /* 13 */ PLANET_VENOM, /* 14 */ PLANET_SOLAR, + /* 15 */ PLANET_MAX, } PlanetId; #endif diff --git a/src/overlays/ovl_EBFBE0/fox_option.c b/src/overlays/ovl_menu/fox_option.c similarity index 99% rename from src/overlays/ovl_EBFBE0/fox_option.c rename to src/overlays/ovl_menu/fox_option.c index dffb38e4..bef0b6b2 100644 --- a/src/overlays/ovl_EBFBE0/fox_option.c +++ b/src/overlays/ovl_menu/fox_option.c @@ -2845,7 +2845,7 @@ void func_EBFBE0_80199EA8(void) { } // D_EBFBE0_801B9358 needs to be static but belongs to bss section? -#ifdef IMPORT_BSS +#if defined(IMPORT_BSS) || defined(NON_MATCHING) void func_EBFBE0_80199FA8(void) { s32 i; @@ -2872,11 +2872,11 @@ void func_EBFBE0_80199FA8(void) { func_EBFBE0_8019A080(); } #else -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/fox_option/func_EBFBE0_80199FA8.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_menu/fox_option/func_EBFBE0_80199FA8.s") #endif // D_EBFBE0_801B9380 needs to be static but belongs to bss section? -#ifdef IMPORT_BSS +#if defined(IMPORT_BSS) || defined(NON_MATCHING) void func_EBFBE0_8019A080(void) { s32 i; @@ -2886,7 +2886,7 @@ void func_EBFBE0_8019A080(void) { } } #else -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/fox_option/func_EBFBE0_8019A080.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_menu/fox_option/func_EBFBE0_8019A080.s") #endif void func_EBFBE0_8019A0B8(void) { @@ -3209,7 +3209,7 @@ void func_EBFBE0_8019AB30(void) { // extern f32 D_EBFBE0_801B9338; // in-function // needs in function static -#ifdef IMPORT_BSS +#if defined(IMPORT_BSS) || defined(NON_MATCHING) void func_EBFBE0_8019AD84(void) { static f32 D_EBFBE0_801B9324; static f32 D_EBFBE0_801B9328; @@ -3272,11 +3272,11 @@ static f32 D_EBFBE0_801AF274[6] = { 46.0f, 43.0f, 43.0f, 43.0f, 43.0f, 43.0f }; static u8* D_EBFBE0_801AF28C[] = { (u8*) 0x070024D0, (u8*) 0x07002730, (u8*) 0x07002990, (u8*) 0x07002BF0, (u8*) 0x07002E50, }; -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/fox_option/func_EBFBE0_8019AD84.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_menu/fox_option/func_EBFBE0_8019AD84.s") #endif // needs in-function static data & bss -#ifdef IMPORT_BSS +#if defined(IMPORT_BSS) || defined(NON_MATCHING) void func_EBFBE0_8019AFFC(void) { static f32 D_EBFBE0_801AF2A0 = 101.0f; static f32 D_EBFBE0_801AF2A4 = 86.0f; @@ -3306,8 +3306,9 @@ void func_EBFBE0_8019AFFC(void) { var_v0 = 1; colorGB = 255; D_EBFBE0_801B9374--; - if (!D_EBFBE0_801B9374) + if (!D_EBFBE0_801B9374) { D_EBFBE0_801B91F0 = 1; + } } if (gFrameCount & var_v0) { @@ -3327,7 +3328,7 @@ void func_EBFBE0_8019AFFC(void) { #else static f32 D_EBFBE0_801AF2A0 = 101.0f; static f32 D_EBFBE0_801AF2A4 = 86.0f; -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/fox_option/func_EBFBE0_8019AFFC.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_menu/fox_option/func_EBFBE0_8019AFFC.s") #endif void func_EBFBE0_8019B1F8(void) { @@ -3846,10 +3847,10 @@ s32 func_EBFBE0_8019C8C4(void) { ret = -1; for (i = 0; i < 10; i++) { - if (D_EBFBE0_801B8220[i] <= D_80161714) { - if (D_EBFBE0_801B8220[i] == D_80161714) { + if (D_EBFBE0_801B8220[i] <= gTotalHits) { + if (D_EBFBE0_801B8220[i] == gTotalHits) { for (j = i; j < 10; j++) { - if (D_EBFBE0_801B8220[j] != D_80161714) { + if (D_EBFBE0_801B8220[j] != gTotalHits) { ret = j; break; } @@ -3857,7 +3858,7 @@ s32 func_EBFBE0_8019C8C4(void) { if (temp[j] <= gLifeCount[gPlayerNum]) { if (temp[j] == gLifeCount[gPlayerNum]) { for (k = j; k < 10; k++) { - if ((temp[k] != gLifeCount[gPlayerNum]) || (D_EBFBE0_801B8220[k] != D_80161714)) { + if ((temp[k] != gLifeCount[gPlayerNum]) || (D_EBFBE0_801B8220[k] != gTotalHits)) { ret = k; break; } @@ -4087,8 +4088,8 @@ void func_EBFBE0_8019D118(void) { gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255); - Graphics_DisplayLargeNumber(D_EBFBE0_801AF30C[3] - ((func_8008BCBC(D_80161714) - 1) * 13), D_EBFBE0_801AF324[3], - D_80161714); + Graphics_DisplayLargeNumber(D_EBFBE0_801AF30C[3] - ((func_8008BCBC(gTotalHits) - 1) * 13), D_EBFBE0_801AF324[3], + gTotalHits); func_EBFBE0_801A9FD4(1); @@ -4347,7 +4348,7 @@ void func_EBFBE0_8019DE74(void) { D_80178410 = 0; gGameState = GSTATE_INIT; gLifeCount[0] = 2; - D_80161714 = 0; + gTotalHits = 0; } else if (D_80161A34 == 8) { func_800182F4(0x100100FF); func_800182F4(0x110100FF); @@ -4380,10 +4381,10 @@ void func_EBFBE0_8019E030(void) { case 1: if (D_EBFBE0_801B9178 == 0) { - if (((D_80161714 * 64) >= 50000) && ((D_80161714 * 64) < 70000)) { + if (((gTotalHits * 64) >= 50000) && ((gTotalHits * 64) < 70000)) { Audio_PlaySfx(0x49000032, &D_800C5D28, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } - if ((D_80161714 * 64) >= 70000) { + if ((gTotalHits * 64) >= 70000) { Audio_PlaySfx(0x49000033, &D_800C5D28, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } D_EBFBE0_801B9178 = 20; @@ -4406,7 +4407,7 @@ void func_EBFBE0_8019E030(void) { gGameState = GSTATE_INIT; gDrawMode = DRAWMODE_0; *gLifeCount = 2; - D_80161714 = 0; + gTotalHits = 0; } break; } @@ -4458,10 +4459,10 @@ void func_EBFBE0_8019E284(void) { gDPSetPrimColor(gMasterDisp++, 0, 0, 0, 0, 0, 255); - Graphics_DisplayLargeNumber(D_EBFBE0_801AF3D0[6] - ((func_8008BCBC(D_80161714) - 1) * 13), D_EBFBE0_801AF3F0[6], - D_80161714); + Graphics_DisplayLargeNumber(D_EBFBE0_801AF3D0[6] - ((func_8008BCBC(gTotalHits) - 1) * 13), D_EBFBE0_801AF3F0[6], + gTotalHits); - temp_a0 = D_80161714 * 64; + temp_a0 = gTotalHits * 64; Graphics_DisplayLargeNumber(D_EBFBE0_801AF3D0[7] - ((func_8008BCBC(temp_a0) - 1) * 13), D_EBFBE0_801AF3F0[7], temp_a0); diff --git a/src/overlays/ovl_EBFBE0/fox_title.c b/src/overlays/ovl_menu/fox_title.c similarity index 100% rename from src/overlays/ovl_EBFBE0/fox_title.c rename to src/overlays/ovl_menu/fox_title.c diff --git a/src/overlays/ovl_EBFBE0/fox_title.h b/src/overlays/ovl_menu/fox_title.h similarity index 97% rename from src/overlays/ovl_EBFBE0/fox_title.h rename to src/overlays/ovl_menu/fox_title.h index c271d9a3..a612271a 100644 --- a/src/overlays/ovl_EBFBE0/fox_title.h +++ b/src/overlays/ovl_menu/fox_title.h @@ -9,15 +9,6 @@ typedef struct { /* 0x08 */ f32 unk_8; } UnkStruct_D_EBFBE0_801ADF54; // size = 0xC -typedef struct { - /* 0x00 */ f32 unk_00; - /* 0x04 */ f32 unk_04; - /* 0x08 */ f32 unk_08; - /* 0x0C */ f32 unk_0C; - /* 0x10 */ f32 unk_10; - /* 0x14 */ f32 unk_14; -} UnkStruct_D_EBFBE0_801B8294; // size = 0x18 - typedef struct UnkStruct_D_801B8350 { /* 0x00 */ Vec3f unk_00; /* 0x0C */ f32 unk_0C; diff --git a/yamls/us/overlays.yaml b/yamls/us/overlays.yaml index 0e3c25fa..754ff141 100644 --- a/yamls/us/overlays.yaml +++ b/yamls/us/overlays.yaml @@ -128,9 +128,9 @@ - [0xEBFB80, .rodata, EBD210] - { start: 0xEBFBE0, type: bss, vram: 0x801A7F30, name: ovl_E9F1D0 } - - name: ovl_EBFBE0 + - name: ovl_menu type: code - dir: overlays/ovl_EBFBE0 + dir: overlays/ovl_menu start: 0xEBFBE0 vram: 0x80187520 bss_size: 0x17590 @@ -140,18 +140,18 @@ - [0xEBFBE0, c, EBFBE0] - [0xEBFCA0, c, fox_title] - [0xECA1E0, c, fox_option] - - [0xED6EC0, c, ED6EC0] + - [0xED6EC0, c, fox_map] - [0xEE60B0, .data, fox_title] - [0xEE6C30, .data, fox_option] - - [0xEE7AE0, data, ED6EC0] + - [0xEE7AE0, .data, fox_map] - [0xEEF410, .rodata, EBFBE0] - [0xEEF430, .rodata, fox_title] - [0xEEF7D0, .rodata, fox_option] - - [0xEEFB80, .rodata, ED6EC0] - # - { start: 0xEF0260, type: bss, vram: 0x801B7BA0, name: ovl_EBFBE0 } + - [0xEEFB80, .rodata, fox_map] + # - { start: 0xEF0260, type: bss, vram: 0x801B7BA0, name: ovl_menu } - { start: 0xEF0260, type: bss, vram: 0x801B7BA0, name: fox_title } - { start: 0xEF0260, type: bss, vram: 0x801B9090, name: fox_option } - - { start: 0xEF0260, type: bss, vram: 0x801B9410, name: ED6EC0 } + - { start: 0xEF0260, type: bss, vram: 0x801B9410, name: fox_map } - name: ovl_EF0260 type: code