From 410a5b017b5ee70cb9225dc6e3e44c7ba1f57aed Mon Sep 17 00:00:00 2001
From: Alejandro Asenjo Nitti <96613413+sonicdcer@users.noreply.github.com>
Date: Wed, 10 Jan 2024 14:55:08 -0300
Subject: [PATCH] fox_versus decompiled, introduce first_diff.py to the
 project, fixed fox_option NON_MATCHING build (#71)

* fox_versus functions

* more functions

* more input!

* functions so far

* fix bss reordering

* all functions matching

* fix caller addresses

* import data cleanup

* introduce first_diff to the project

* fix wrong type

* second version of bss reordering prevention header

* move versus symbols to variables.h

* BSS importing attempt (failed)
terrain is prepared for another contributor to try

* fix fox_option NON_MATCHING build

* format

* remove static keyword from fox_map data symbols

* IMPORT BSS

* rename fox_versus

* FIX ADDRESSES & SYMBOLS y fox map

* fix more addresses

* more address fixes for fox_map

* all fox_map addresses done

* fix bss build in fox_map, migration pending

* bss reorder failed attempt

* remove unused externs

* remove unnecessary config file

* remove unnecessary entries in settings.json

* comments

* move structs to fox_map header

* put static back in fox_option data

* PR review
---
 .vscode/launch.json                       |   39 -
 .vscode/settings.json                     |    2 -
 first_diff.py                             |   58 +
 include/fox_map.h                         |   64 +
 include/fox_option.h                      |    2 +-
 include/functions.h                       |    2 +
 include/hud.h                             |    2 +-
 include/macros.h                          |    3 +
 include/prevent_bss_reordering2.h         |   44 +
 include/sf64level.h                       |    2 +-
 include/variables.h                       |  152 +-
 linker_scripts/us/symbol_addrs_engine.txt |    5 +
 linker_scripts/us/undefined_syms.ld       |   80 +
 src/main/fox_97F80.c                      |    1 -
 src/main/fox_bg.c                         |    1 +
 src/main/fox_edisplay.c                   |    1 +
 src/main/fox_versus.c                     | 2015 +++++++++++++++++++++
 src/main/sf_versus.c                      |  151 --
 src/main/sys_math.c                       |    1 +
 src/overlays/ovl_menu/fox_map.c           | 1788 +++++++++---------
 src/overlays/ovl_menu/fox_map.h           |   23 -
 src/overlays/ovl_menu/fox_option.c        |   23 +-
 src/overlays/ovl_menu/fox_title.c         |    6 +
 src/overlays/ovl_menu/fox_title.h         |    2 -
 tools/global_bss_check.py                 |    0
 yamls/us/main.yaml                        |    8 +-
 26 files changed, 3284 insertions(+), 1191 deletions(-)
 delete mode 100644 .vscode/launch.json
 create mode 100755 first_diff.py
 create mode 100644 include/fox_map.h
 create mode 100644 include/prevent_bss_reordering2.h
 create mode 100644 src/main/fox_versus.c
 delete mode 100644 src/main/sf_versus.c
 delete mode 100644 src/overlays/ovl_menu/fox_map.h
 mode change 100644 => 100755 tools/global_bss_check.py

diff --git a/.vscode/launch.json b/.vscode/launch.json
deleted file mode 100644
index 4e999844..00000000
--- a/.vscode/launch.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
-    // Use IntelliSense to learn about possible attributes.
-    // Hover to view descriptions of existing attributes.
-    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
-    "version": "0.2.0",
-    "configurations": [
-        {
-            "name": "Debug SOTN (PCSX Redux)",
-            "type": "gdb",
-            "request": "attach",
-            "target": "localhost:3333",
-            "remote": true,
-            "stopAtConnect": true,
-            "executable": "build/sotn-debugmodule.elf",
-            "linux": {
-                "gdbpath": "/usr/bin/gdb-multiarch"
-            },
-            "cwd": "${workspaceRoot}",
-            "autorun": [
-                "set substitute-path /project .",
-                "file build/sotn-debugmodule.elf",
-                "continue",
-            ],
-            "valuesFormatting": "parseText"
-        },
-        {
-            "name": "Debug sotn-disk (extract)",
-            "type": "go",
-            "request": "launch",
-            "mode": "auto",
-            "program": "tools/sotn-disk",
-            "args": [
-                "extract",
-                "../../disks/sotn.us.cue",
-                "../../disks/"
-            ]
-        }
-    ]
-}
\ No newline at end of file
diff --git a/.vscode/settings.json b/.vscode/settings.json
index cab73b49..66387001 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -10,8 +10,6 @@
         "build/**": true,
         "expected/**": true,
         "tools/**": true,
-        "tools/aspatch/**": false,
-        "tools/gfxsotn/**": false,
     },
     "defines": [
         "_LANGUAGE_C", // For gbi.h
diff --git a/first_diff.py b/first_diff.py
new file mode 100755
index 00000000..a2ff93e4
--- /dev/null
+++ b/first_diff.py
@@ -0,0 +1,58 @@
+#!/usr/bin/env python3
+
+import argparse
+from pathlib import Path
+
+try:
+    import rabbitizer
+except ImportError:
+    print("Missing dependency rabbitizer, install it with `python3 -m pip install 'rabbitizer>=1.0.0,<2.0.0'`")
+    exit(1)
+
+try:
+    import mapfile_parser
+except ImportError:
+    print("Missing dependency mapfile_parser, install it with `python3 -m pip install 'mapfile-parser>=1.2.1,<2.0.0'`")
+    exit(1)
+
+
+def decodeInstruction(bytesDiff: bytes, mapFile: mapfile_parser.MapFile) -> str:
+    word = (bytesDiff[0] << 24) | (bytesDiff[1] << 16) | (bytesDiff[2] << 8) | (bytesDiff[3] << 0)
+    instr = rabbitizer.Instruction(word)
+    immOverride = None
+
+    if instr.isJumpWithAddress():
+        # Instruction is a function call (jal)
+
+        # Get the embedded address of the function call
+        symAddress = instr.getInstrIndexAsVram()
+
+        # Search for the address in the mapfile
+        symInfo = mapFile.findSymbolByVramOrVrom(symAddress)
+        if symInfo is not None:
+            # Use the symbol from the mapfile instead of a raw value
+            immOverride = symInfo.symbol.name
+
+    return instr.disassemble(immOverride=immOverride, extraLJust=-20)
+
+def firstDiffMain():
+    parser = argparse.ArgumentParser(description="Find the first difference(s) between the built ROM and the base ROM.")
+
+    parser.add_argument("-c", "--count", type=int, default=5, help="find up to this many instruction difference(s)")
+    parser.add_argument("-v", "--version", help="Which version should be processed", default="us.rev1")
+    parser.add_argument("-a", "--add-colons", action='store_true', help="Add colon between bytes" )
+
+    args = parser.parse_args()
+
+    buildFolder = Path("build")
+
+    BUILTROM = Path(buildFolder / f"starfox64.us.uncompressed.z64")
+    BUILTMAP = buildFolder / f"starfox64.us.map"
+
+    EXPECTEDROM = Path("baserom.us.uncompressed.z64")
+    EXPECTEDMAP = "expected" / BUILTMAP
+
+    mapfile_parser.frontends.first_diff.doFirstDiff(BUILTMAP, EXPECTEDMAP, BUILTROM, EXPECTEDROM, args.count, mismatchSize=True, addColons=args.add_colons, bytesConverterCallback=decodeInstruction)
+
+if __name__ == "__main__":
+    firstDiffMain()
diff --git a/include/fox_map.h b/include/fox_map.h
new file mode 100644
index 00000000..77f36a40
--- /dev/null
+++ b/include/fox_map.h
@@ -0,0 +1,64 @@
+#ifndef FOX_MAP_H
+#define FOX_MAP_H
+
+typedef enum PlanetId {
+    /* 0 */ PLANET_METEO,
+    /* 1 */ PLANET_AREA_6,
+    /* 2 */ PLANET_BOLSE,
+    /* 3 */ PLANET_SECTOR_Z,
+    /* 4 */ PLANET_SECTOR_X,
+    /* 5 */ PLANET_SECTOR_Y,
+    /* 6 */ PLANET_KATINA,
+    /* 7 */ PLANET_MACBETH,
+    /* 8 */ PLANET_ZONESS,
+    /* 9 */ PLANET_CORNERIA,
+    /* 10 */ PLANET_TITANIA,
+    /* 11 */ PLANET_AQUAS,
+    /* 12 */ PLANET_FORTUNA,
+    /* 13 */ PLANET_VENOM,
+    /* 14 */ PLANET_SOLAR,
+    /* 15 */ PLANET_MAX,
+} PlanetId;
+
+typedef struct {
+    /* 0x0 */ f32 angle;
+    /* 0x4 */ f32 x;
+    /* 0x8 */ f32 y;
+    /* 0xC */ f32 scale;
+} ObjPosition;
+
+typedef struct {
+    /* 0x00 */ s32 unk_00;
+    /* 0x04 */ s32 unk_04;
+    /* 0x08 */ s32 unk_08;
+    /* 0x0C */ s32 unk_0C;
+    /* 0x10 */ char pad10[0x4];
+    /* 0x14 */ s32 unk_14;
+    /* 0x18 */ s32 unk_18;
+} UnkStruct_D_EBFBE0_801AFD18; // size = 0x1C
+
+typedef struct {
+    /* 0x00 */ s32 id;
+    /* 0x04 */ f32 unk_04;
+    /* 0x08 */ f32 unk_08;
+    /* 0x0C */ f32 zAngle;
+    /* 0x10 */ f32 posX;
+    /* 0x14 */ f32 posY;
+    /* 0x18 */ f32 posZ;
+    /* 0x1C */ f32 unk_1C;
+    /* 0x20 */ f32 scale;
+    /* 0x24 */ s32 alpha;
+    /* 0x28 */ s32 unk_28;
+    /* 0x2C */ s32 unk_2C;
+    /* 0x30 */ s32 unk_30;
+    /* 0x34 */ s32 unk_34;
+} Planet; // size = 0x38
+
+typedef struct {
+    /* 0x0 */ u8* addr;
+    /* 0x4 */ s32 width;
+    /* 0x8 */ s32 height;
+    /* 0xC */ f32 posX;
+} Texture; // size = 0x10
+
+#endif
diff --git a/include/fox_option.h b/include/fox_option.h
index c2dc0a1b..ba09875f 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 char* D_EBFBE0_801B68D4[];
+extern u8* D_EBFBE0_801B68D4[];
 
 extern s32 D_EBFBE0_801B81A8[][3];
 
diff --git a/include/functions.h b/include/functions.h
index 026dde0b..30592ec2 100644
--- a/include/functions.h
+++ b/include/functions.h
@@ -110,6 +110,7 @@ void func_8002E700(Player *);
 void func_8002EE64(Object_2F4 * obj2F4);
 void func_8002F180(void);
 void func_8002F5F4(u16* msg, s32 character);
+void func_8003088C(Object_2F4*);
 void func_800319AC(Object_2F4* this);
 void func_80035448(Object_2F4* obj2F4);
 
@@ -522,6 +523,7 @@ void func_800ACDC0(Player *, PlayerShot *, PlayerShotId );
 void func_800B0F50(Player *);
 void func_800B44C4(Player *);
 void func_800AB334(void);
+void func_800ABA08(void);
 void func_800AE278(Player*);
 void func_800B2130(Player*);
 void func_800B2574(Player*);
diff --git a/include/hud.h b/include/hud.h
index 852b39f4..7faa3391 100644
--- a/include/hud.h
+++ b/include/hud.h
@@ -57,7 +57,7 @@ extern s32 D_1013700[];
 extern Gfx D_20031B0[];
 extern Gfx D_2010A30[];
 extern u16 D_3000B20[];
-extern u16 D_30013E0[];
+extern u8 D_30013E0[];
 
 extern s32 D_80161690;
 extern s32 D_80161718;
diff --git a/include/macros.h b/include/macros.h
index 29e91e10..e57b7dc5 100644
--- a/include/macros.h
+++ b/include/macros.h
@@ -16,4 +16,7 @@
 #define USEC_TO_CYCLES(n) (((u64)(n)*(osClockRate/15625LL))/(1000000LL/15625LL))
 #define MSEC_TO_CYCLES(n) (USEC_TO_CYCLES((n) * 1000LL))
 
+#define CYCLES_TO_USEC(c)    (((u64)(c)*(1000000LL/15625LL))/(osClockRate/15625LL))
+#define CYCLES_TO_MSEC(c) ((s32)CYCLES_TO_USEC(c)/1000)
+
 #endif // MACROS_H
diff --git a/include/prevent_bss_reordering2.h b/include/prevent_bss_reordering2.h
new file mode 100644
index 00000000..c0a4820d
--- /dev/null
+++ b/include/prevent_bss_reordering2.h
@@ -0,0 +1,44 @@
+#ifndef PREVENT_BSS_REORDERING2_H
+#define PREVENT_BSS_REORDERING2_H
+
+/**
+ * See the explanation at prevent_bss_reordering.h
+ *
+ * Instead of producing 64 dummy declarations, this header only produces 32
+ * dummy declarations
+ */
+
+struct Dummy100 { int x; };
+struct Dummy101 { int x; };
+struct Dummy102 { int x; };
+struct Dummy103 { int x; };
+struct Dummy104 { int x; };
+struct Dummy105 { int x; };
+struct Dummy106 { int x; };
+struct Dummy107 { int x; };
+struct Dummy108 { int x; };
+struct Dummy109 { int x; };
+struct Dummy110 { int x; };
+struct Dummy111 { int x; };
+struct Dummy112 { int x; };
+struct Dummy113 { int x; };
+struct Dummy114 { int x; };
+struct Dummy115 { int x; };
+struct Dummy116 { int x; };
+struct Dummy117 { int x; };
+struct Dummy118 { int x; };
+struct Dummy119 { int x; };
+struct Dummy120 { int x; };
+struct Dummy121 { int x; };
+struct Dummy122 { int x; };
+struct Dummy123 { int x; };
+struct Dummy124 { int x; };
+struct Dummy125 { int x; };
+struct Dummy126 { int x; };
+struct Dummy127 { int x; };
+struct Dummy128 { int x; };
+struct Dummy129 { int x; };
+struct Dummy130 { int x; };
+struct Dummy131 { int x; };
+
+#endif
diff --git a/include/sf64level.h b/include/sf64level.h
index e7063e6b..186f606c 100644
--- a/include/sf64level.h
+++ b/include/sf64level.h
@@ -88,7 +88,7 @@ typedef enum LevelId {
     /* 77 */ LEVEL_WARP_ZONE = 77,
 } LevelId;
 
-typedef enum {
+typedef enum VsStage {
     /* 0 */ VS_STAGE_CORNERIA,
     /* 1 */ VS_STAGE_KATINA,
     /* 2 */ VS_STAGE_SECTOR_Z,
diff --git a/include/variables.h b/include/variables.h
index 9d705d67..a674a670 100644
--- a/include/variables.h
+++ b/include/variables.h
@@ -778,7 +778,40 @@ extern s32 D_8017874C;
 extern s32 D_80178750;
 extern s32 D_80178754;
 extern s32 D_80178758;
+extern s32 sUnlockLandmaster; // sUnlockLandmaster
+extern s32 sUnlockOnFoot; // sUnlockOnFoot
 extern s32 D_80178768[];
+extern s32 D_80178768[];
+extern s32 D_80178778;
+extern s32 D_80178780[4];
+extern s32 D_80178790;
+extern s32 D_80178794;
+extern s32 D_80178798;
+extern s32 D_8017879C;
+extern s32 D_801787A0;
+extern s32 D_801787A4;
+extern s32 D_801787A8;
+extern f32 D_801787AC;
+extern f32 D_801787B0;
+extern s32 D_801787B4;
+extern s32 D_801787B8;
+extern s32 D_801787BC;
+extern f32 D_801787C0;
+extern f32 D_801787C4;
+extern f32 D_801787C8;
+extern f32 D_801787CC;
+extern f32 D_801787D0;
+extern f32 D_801787D8[4];
+extern f32 D_801787E8[4];
+extern s32 D_801787F8[4];
+extern u16 D_80178808[4];
+extern s32 D_80178810[4];
+extern s32 D_80178820[4];
+extern s32 D_80178830;
+extern s32 D_80178838[5];
+extern s32 D_80178850[4];
+extern OSTime D_80178860;
+extern OSTime D_80178868;
 
 // fox_save
 extern SaveFile gSaveFile;
@@ -810,6 +843,11 @@ extern u16 gHaasEffectDelaySizes[64];
 // extern EnvelopePoint gDefaultEnvelope[];
 // extern NoteUnkStruct gZeroNoteSub;
 // extern NoteUnkStruct gDefaultNoteSub;
+extern s32 D_800D4A90;
+extern s32 D_800D4A94;
+extern s32 D_800D4A98; // versus frame counter?
+extern s32 D_800D4A9C;
+extern s32 D_800D4AA0;
 extern s16 D_800DD200[];
 extern f32 gHeadsetPanVolume[];
 extern f32 gStereoPanVolume[];
@@ -980,8 +1018,28 @@ extern Gfx D_302D120[];
 extern u8 D_3000000[];
 extern u16 D_3000080[];
 extern Gfx D_3000090[];
+extern u8 D_30001E0[];
+extern u16 D_3000380[];
+extern u8 D_30003A0[];
+extern u16 D_30004E0[];
+extern u8 D_3000510[];
 extern Gfx D_3000660[];
+extern u16 D_30006A0[];
+extern u8 D_30006D0[];
+extern u16 D_3000810[];
 extern u16 D_3000BC0[];
+extern u8 D_30013E0[];
+extern u8 D_3001420[];
+extern u16 D_3003E20[];
+extern u8 D_3004010[];
+extern u16 D_3004D58[];
+extern u8 D_3006C60[];
+extern u16 D_3007500[];
+extern u8 D_300A470[];
+extern u16 D_300B218[];
+
+extern u8 D_5007F60[];
+
 extern Gfx D_3001C90[];
 extern u16 D_3002E80[];
 extern Gfx D_3003CE0[];
@@ -1207,6 +1265,7 @@ extern Vtx D_6004500[];
 extern Gfx D_6004570[];
 extern Gfx D_60046F0[];
 extern u16 D_60047E0[];
+extern u8 D_6004AC0[];
 extern Gfx D_6004FE0[];
 extern Gfx D_6005360[];
 extern u16 D_6005700[];
@@ -1265,6 +1324,7 @@ extern Gfx D_6007410[];
 extern Gfx D_60075D0[];
 extern Gfx D_6007650[];
 extern Gfx D_60079B0[];
+extern u8 D_6007B90[];
 extern Gfx D_6007CF0[];
 extern Gfx D_6007D80[];
 extern Gfx D_6007D90[];
@@ -1278,6 +1338,7 @@ extern Gfx D_6009250[];
 extern f32 D_60092E8[];
 extern f32 D_6009388[];
 extern Gfx D_60097E0[];
+extern u8 D_6009AD0[];
 extern u16* D_6009B34[];
 extern u16 D_6009BB8[];
 extern f32 D_6009CC4[];
@@ -1357,6 +1418,7 @@ extern Gfx D_6010E00[];
 extern u8 D_6010FA0[];
 extern f32 D_6011058[];
 extern f32 D_601115C[];
+extern u8 D_6011660[];
 extern u8 D_6011890[];
 extern Gfx D_60119A0[];
 extern f32 D_6011B24[];
@@ -1393,6 +1455,7 @@ extern Gfx D_6014B50[];
 extern Gfx D_60153B0[];
 extern u16 D_6015430[];
 extern Gfx D_6015730[];
+extern u8 D_6015CE0[];
 extern Gfx D_6015F00[];
 extern Gfx D_6016270[];
 extern Gfx D_60164F0[];
@@ -1489,13 +1552,16 @@ extern Gfx D_6024010[];
 extern Gfx D_6024220[];
 extern Gfx D_60244A0[];
 extern u16 D_60245E0[];
+extern u16 D_60247E0[];
 extern Gfx D_6024AC0[];
 extern Gfx D_6024B60[];
 extern u16 D_6025500[];
 extern Gfx D_6025B50[];
 extern u16 D_6026420[];
+extern u16 D_6026C90[];
 extern Gfx D_60270E0[];
 extern Gfx D_6027180[];
+extern u16 D_6022340[];
 extern AnimationHeader D_6027320;
 extern u16 D_6027340[];
 extern Limb* D_602742C[];
@@ -1505,6 +1571,8 @@ extern u16 D_6028260[];
 extern f32 D_6028454[];
 extern u16* D_60289FC[];
 extern u16 D_6028A60[];
+extern u16 D_6029170[];
+extern u8 D_6029220[];
 extern AnimationHeader D_6029528;
 extern Limb* D_6029674[];
 extern Gfx D_6029890[];
@@ -1515,6 +1583,7 @@ extern u16 D_602AC50[];
 extern u16 D_602ACC0[];
 extern ObjectInit* D_602B148[];
 extern Gfx D_602B4C0[];
+extern u16 D_602B620[];
 extern f32 D_602B9EC[];
 extern f32 D_602BA20[];
 extern f32 D_602BAE4[];
@@ -1536,6 +1605,7 @@ extern f32 D_602C2B0[];
 extern u16 D_602C2CC[];
 extern Gfx D_602D5F0[];
 extern Gfx D_602DA20[];
+extern u16 D_602DAD0[];
 extern Gfx D_602DAE0[];
 extern Gfx D_602DB80[];
 extern Gfx D_602DC20[];
@@ -1559,6 +1629,7 @@ extern f32 D_602F740[];
 extern f32 D_602F75C[];
 extern Gfx D_602F7C0[];
 extern f32 D_602FA50[];
+extern u16 D_602FF60[];
 extern Gfx D_6030500[];
 extern Gfx D_6030630[];
 extern Gfx D_60306D0[];
@@ -1594,6 +1665,7 @@ extern u16 D_603158C[];
 extern u16* D_60320D0[];
 extern Gfx D_60320E0[];
 extern f32 D_6032328[];
+extern u16 D_60323D0[];
 extern f32 D_6032408[];
 extern f32 D_6032488[];
 extern f32 D_60324EC[];
@@ -1705,7 +1777,11 @@ extern u16 D_603EB38[];
 extern Gfx D_6041070[];
 extern u16 D_60447A0[];
 extern u16 D_6047550[];
+extern Gfx D_6049F80[];
+extern Gfx D_604A190[];
+extern Gfx D_604A710[];
 extern Gfx D_604A9F0[];
+extern Gfx D_604A400[];
 extern Gfx D_605C230[];
 extern f32 D_6028578[];
 extern Gfx D_600F1F0[];
@@ -1724,7 +1800,19 @@ extern Gfx D_7001540[];
 extern u8 D_7001DF0[];
 extern u8 D_7002110[];
 extern u8 D_7003650[];
+extern Gfx D_7003830[];
+extern u8 D_7003C70[];
+extern u8 D_7003E10[];
+extern u8 D_7003F10[];
 extern u8 D_7004010[];
+extern u8 D_7004050[];
+extern u16 D_7004150[];
+extern u8 D_70041F0[];
+extern u16 D_70042F0[];
+extern u8 D_7004360[];
+extern u16 D_7004460[];
+extern u8 D_70044D0[];
+extern u16 D_7004990[];
 extern Gfx D_7007350[];
 extern Gfx D_700AB70[];
 extern Gfx D_700BB10[];
@@ -1734,6 +1822,7 @@ extern Limb* D_700CB60[];
 extern u16 D_700E9A0[];
 extern u8 D_70118E0[];
 extern u16 D_70123F8[];
+extern u16 D_70123F8[];
 
 // ast_9EB5E0, ast_CA9DE0, ast_D43400, ast_D68480, ast_D91F10
 extern u8 D_8000000[];
@@ -1872,5 +1961,66 @@ extern Gfx D_F0103D0[];
 extern Gfx D_F014180[];
 extern Gfx D_F014310[];
 
-#endif // VARIABLES_H
+// fox_map, to be ordered later
 
+extern u8 D_60030D0[];
+extern u8 D_600B9B0[];
+extern u8 D_6010010[];
+extern u8 D_600E210[];
+extern u8 D_6006320[];
+extern u8 D_60131A0[];
+extern u8 D_6001C80[];
+extern u8 D_6017640[];
+extern u8 D_6014360[];
+extern u8 D_6008990[];
+extern u8 D_600AD30[];
+extern u8 D_6011EA0[];
+extern u8 D_6016760[];
+extern u8 D_6005740[];
+extern u8 D_6003B50[];
+extern u8 D_600CC10[];
+extern u8 D_60105C0[];
+extern u8 D_600F390[];
+extern u8 D_6006E80[];
+extern u8 D_60139E0[];
+extern u8 D_6002160[];
+extern u8 D_6018280[];
+extern u8 D_6014BA0[];
+extern Gfx D_6055F20[];
+extern Gfx D_6051D20[];
+extern u8 D_601FF40[];
+extern u8 D_602B6D0[];
+extern u8 D_6026D70[];
+extern u8 D_602FFD0[];
+extern u8 D_60223E0[];
+extern u8 D_6024890[];
+extern u8 D_60190B0[];
+extern u8 D_602DB60[];
+extern Gfx D_6060610[];
+extern Gfx D_601C0D0[];
+extern Gfx D_601DE80[];
+extern Gfx D_601C960[];
+extern Gfx D_604B750[];
+extern Gfx D_604DB10[];
+extern Gfx D_601F6B0[];
+extern u16 D_6041A80[];
+extern u16 D_603F380[];
+extern u16 D_6035780[];
+extern u16 D_6037E80[];
+extern u16 D_6033080[];
+extern u16 D_603CC80[];
+extern u16 D_603A580[];
+extern u16 D_603A580[];
+extern u16 D_6032A60[];
+extern u16 D_6044180[];
+extern u16 D_6032440[];
+
+extern Gfx D_9006AE0[];
+extern Gfx D_9000570[];
+extern Gfx D_90086F0[];
+extern Gfx D_9002EA0[];
+extern Gfx D_9005380[];
+extern Gfx D_90075A0[];
+extern Gfx D_9004230[];
+
+#endif // VARIABLES_H
diff --git a/linker_scripts/us/symbol_addrs_engine.txt b/linker_scripts/us/symbol_addrs_engine.txt
index 396b94ca..927c784b 100644
--- a/linker_scripts/us/symbol_addrs_engine.txt
+++ b/linker_scripts/us/symbol_addrs_engine.txt
@@ -120,6 +120,11 @@ D_8017873C = 0x8017873C;
 D_80178740 = 0x80178740;
 D_80178744 = 0x80178744;
 D_80178748 = 0x80178748;
+
+// fox_versus
+sUnlockLandmaster = 0x8017875C;
+sUnlockOnFoot = 0x80178760;
+
 gCurrentMsgPri = 0x800D4A70;
 
 func_800BA760 = 0x800BA760;
diff --git a/linker_scripts/us/undefined_syms.ld b/linker_scripts/us/undefined_syms.ld
index 1c205f1e..bf26a8c2 100644
--- a/linker_scripts/us/undefined_syms.ld
+++ b/linker_scripts/us/undefined_syms.ld
@@ -351,6 +351,7 @@ D_60034D0 = 0x060034D0;
 D_6003610 = 0x06003610;
 D_60036A0 = 0x060036A0;
 D_6004170 = 0x06004170;
+D_6004AC0 = 0x06004AC0;
 D_6005360 = 0x06005360;
 D_6005780 = 0x06005780;
 D_6006140 = 0x06006140;
@@ -385,6 +386,7 @@ D_6007410 = 0x06007410;
 D_6007558 = 0x06007558;
 D_60075D0 = 0x060075D0;
 D_60079B0 = 0x060079B0;
+D_6007B90 = 0x06007B90;
 D_6007D80 = 0x06007D80;
 D_6008370 = 0x06008370;
 D_6008E08 = 0x06008E08;
@@ -392,6 +394,7 @@ D_600924C = 0x0600924C;
 D_60092E8 = 0x060092E8;
 D_6009388 = 0x06009388;
 D_60097E0 = 0x060097E0;
+D_6009AD0 = 0x06009AD0;
 D_6009CC4 = 0x06009CC4;
 D_6009CFC = 0x06009CFC;
 D_600A420 = 0x0600A420;
@@ -427,6 +430,7 @@ D_6010E00 = 0x06010E00;
 D_6011058 = 0x06011058;
 D_601115C = 0x0601115C;
 D_601115C = 0x0601115C;
+D_6011660 = 0x06011660;
 D_601170C = 0x0601170C;
 D_6011B24 = 0x06011B24;
 D_6011BF4 = 0x06011BF4;
@@ -447,6 +451,7 @@ D_6014B50 = 0x06014B50;
 D_6014FEC = 0x06014FEC;
 D_60153B0 = 0x060153B0;
 D_6015730 = 0x06015730;
+D_6015CE0 = 0x06015CE0;
 D_6015F00 = 0x06015F00;
 D_6016270 = 0x06016270;
 D_6016374 = 0x06016374;
@@ -488,16 +493,22 @@ D_601F1D0 = 0x0601F1D0;
 D_601F500 = 0x0601F500;
 D_601F5A0 = 0x0601F5A0;
 D_601FCB0 = 0x0601FCB0;
+D_6022340 = 0x06022340;
 D_60231C0 = 0x060231C0;
 D_60238F0 = 0x060238F0;
 D_6024010 = 0x06024010;
 D_60244A0 = 0x060244A0;
+D_60247E0 = 0x060247E0;
 D_6024AC0 = 0x06024AC0;
+D_6026C90 = 0x06026C90;
 D_60270E0 = 0x060270E0;
 D_6027180 = 0x06027180;
 D_6027900 = 0x06027900;
 D_6028454 = 0x06028454;
+D_6029170 = 0x06029170;
+D_6029220 = 0x06029220;
 D_602B4C0 = 0x0602B4C0;
+D_602B620 = 0x0602B620;
 D_602B9EC = 0x0602B9EC;
 D_602BA20 = 0x0602BA20;
 D_602BAE4 = 0x0602BAE4;
@@ -517,6 +528,7 @@ D_602C2B0 = 0x0602C2B0;
 D_602CACC = 0x0602CACC;
 D_602CB80 = 0x0602CB80;
 D_602D5F0 = 0x0602D5F0;
+D_602DAD0 = 0x0602DAD0;
 D_602DAE0 = 0x0602DAE0;
 D_602DB80 = 0x0602DB80;
 D_602DC20 = 0x0602DC20;
@@ -535,6 +547,7 @@ D_602F75C = 0x0602F75C;
 D_602F7C0 = 0x0602F7C0;
 D_602FA50 = 0x0602FA50;
 D_602FA9C = 0x0602FA9C;
+D_602FF60 = 0x0602FF60;
 D_60300C8 = 0x060300C8;
 D_6030208 = 0x06030208;
 D_6030500 = 0x06030500;
@@ -586,6 +599,7 @@ D_603204C = 0x0603204C;
 D_60320B8 = 0x060320B8;
 D_603216C = 0x0603216C;
 D_6032388 = 0x06032388;
+D_60323D0 = 0x060323D0;
 D_6032430 = 0x06032430;
 D_6032488 = 0x06032488;
 D_60324EC = 0x060324EC;
@@ -686,6 +700,10 @@ D_603F338 = 0x0603F338;
 D_603F388 = 0x0603F388;
 D_603F40C = 0x0603F40C;
 D_603F4E4 = 0x0603F4E4;
+D_604A190 = 0x0604A190;
+D_604A400 = 0x0604A400;
+D_604A710 = 0x0604A710;
+D_6049F80 = 0x06049F80;
 
 D_700AB70 = 0x0700AB70;
 D_700BE00 = 0x0700BE00;
@@ -708,3 +726,65 @@ D_C038F24 = 0x0C038F24;
 D_D000000 = 0x0D000000;
 D_D00B5C0 = 0x0D00B5C0;
 D_D00B720 = 0x0D00B720;
+
+// fox_map, to be ordered later
+D_60030D0 = 0x060030D0;
+D_600B9B0 = 0x0600B9B0;
+D_6010010 = 0x06010010;
+D_600E210 = 0x0600E210;
+D_6006320 = 0x06006320;
+D_60131A0 = 0x060131A0;
+D_6001C80 = 0x06001C80;
+D_6017640 = 0x06017640;
+D_6014360 = 0x06014360;
+
+D_6008990 = 0x06008990;
+D_600AD30 = 0x0600AD30;
+D_6011EA0 = 0x06011EA0;
+D_6016760 = 0x06016760;
+D_6005740 = 0x06005740;
+
+D_6003B50 = 0x06003B50;
+D_600CC10 = 0x0600CC10;
+D_60105C0 = 0x060105C0;
+D_600F390 = 0x0600F390;
+D_6006E80 = 0x06006E80;
+D_60139E0 = 0x060139E0;
+D_6002160 = 0x06002160;
+D_6018280 = 0x06018280;
+D_6014BA0 = 0x06014BA0;
+
+D_6055F20 = 0x06055F20;
+D_6051D20 = 0x06051D20;
+D_601FF40 = 0x0601FF40;
+D_602B6D0 = 0x0602B6D0;
+D_6026D70 = 0x06026D70;
+D_602FFD0 = 0x0602FFD0;
+D_60223E0 = 0x060223E0;
+D_6024890 = 0x06024890;
+D_60190B0 = 0x060190B0;
+D_602DB60 = 0x0602DB60;
+D_6060610 = 0x06060610;
+D_601C0D0 = 0x0601C0D0;
+D_601DE80 = 0x0601DE80;
+D_601C960 = 0x0601C960;
+D_604B750 = 0x0604B750;
+D_604DB10 = 0x0604DB10;
+D_601F6B0 = 0x0601F6B0;
+D_6041A80 = 0x06041A80;
+D_603F380 = 0x0603F380;
+D_6035780 = 0x06035780;
+D_6037E80 = 0x06037E80;
+D_6033080 = 0x06033080;
+D_603CC80 = 0x0603CC80;
+D_603A580 = 0x0603A580;
+D_6032A60 = 0x06032A60;
+D_6044180 = 0x06044180;
+D_6032440 = 0x06032440;
+D_9006AE0 = 0x09006AE0;
+D_9000570 = 0x09000570;
+D_90086F0 = 0x090086F0;
+D_9002EA0 = 0x09002EA0;
+D_9005380 = 0x09005380;
+D_90075A0 = 0x090075A0;
+D_9004230 = 0x09004230;
diff --git a/src/main/fox_97F80.c b/src/main/fox_97F80.c
index 1602158e..0fe560b8 100644
--- a/src/main/fox_97F80.c
+++ b/src/main/fox_97F80.c
@@ -1,5 +1,4 @@
 #include "global.h"
-#include "prevent_bss_reordering.h"
 
 f32 __dx1;
 f32 __dx2;
diff --git a/src/main/fox_bg.c b/src/main/fox_bg.c
index 9590a2b4..ee922e9b 100644
--- a/src/main/fox_bg.c
+++ b/src/main/fox_bg.c
@@ -1,4 +1,5 @@
 #include "global.h"
+#include "prevent_bss_reordering.h"
 
 extern f32 D_E16C50_801C4188;
 
diff --git a/src/main/fox_edisplay.c b/src/main/fox_edisplay.c
index 5c9c44a3..683af0ec 100644
--- a/src/main/fox_edisplay.c
+++ b/src/main/fox_edisplay.c
@@ -1,4 +1,5 @@
 #include "global.h"
+#include "prevent_bss_reordering.h"
 
 Vec3f D_801615D0;
 Vec3f D_801615E0;
diff --git a/src/main/fox_versus.c b/src/main/fox_versus.c
new file mode 100644
index 00000000..5b28a0ef
--- /dev/null
+++ b/src/main/fox_versus.c
@@ -0,0 +1,2015 @@
+#include "prevent_bss_reordering.h"
+#include "global.h"
+#include "fox_map.h"
+
+s32 D_80178750;
+s32 D_80178754;
+s32 D_80178758;
+s32 sUnlockLandmaster; // sUnlockLandmaster
+s32 sUnlockOnFoot;     // sUnlockOnFoot
+s32 D_80178768[4];
+s32 D_80178778;
+s32 D_80178780[4];
+s32 D_80178790;
+s32 D_80178794;
+s32 D_80178798;
+s32 D_8017879C;
+s32 D_801787A0;
+s32 D_801787A4;
+s32 D_801787A8;
+f32 D_801787AC;
+f32 D_801787B0;
+s32 D_801787B4;
+s32 D_801787B8;
+s32 D_801787BC;
+f32 D_801787C0;
+f32 D_801787C4;
+f32 D_801787C8;
+f32 D_801787CC;
+f32 D_801787D0;
+f32 D_801787D8[4];
+f32 D_801787E8[4];
+s32 D_801787F8[4];
+u16 D_80178808[4];
+s32 D_80178810[4];
+s32 D_80178820[4];
+s32 D_80178830;
+s32 D_80178838[5];
+s32 D_80178850[4];
+OSTime D_80178860;
+OSTime D_80178868;
+
+s32 D_800D4A90 = 0;
+s32 D_800D4A94 = 0;
+s32 D_800D4A98 = 0;
+s32 D_800D4A9C = 0;
+s32 D_800D4AA0 = 0;
+
+void func_800BC760(void) {
+    s32 i;
+
+    Memory_FreeAll();
+    func_800A6148();
+
+    for (i = 0; i < gCamCount; i++) {
+        Audio_KillSfx(gPlayer[i].unk_460_arr);
+        func_8001CA24(i);
+    }
+
+    gGameState = GSTATE_INIT;
+    D_Timer_8017783C = 2;
+    gCamCount = GSTATE_INIT;
+    D_80177854 = 0;
+    gDrawMode = DRAWMODE_0;
+    D_80177AE0 = 0;
+    D_8017784C = 0;
+    D_80177B40 = 0;
+    gBgColor = 0;
+    D_80178380[0] = 0;
+    D_80178380[1] = 0;
+    D_80178380[2] = 0;
+    D_80178380[3] = 0;
+    gOverlayStage = 0;
+    gRadioState = 0;
+    gVersusMode = 0;
+    D_80178358 = 0;
+    D_80178340 = 0xFF;
+    D_80177824 = GSTATE_INIT;
+}
+
+void func_800BC88C(f32 xPos, f32 yPos, f32 scale) {
+    TextureRect_8bIA(&gMasterDisp, &D_7003830, 64, 17, xPos, yPos, scale, scale);
+}
+
+void func_800BC8D8(f32 xPos, f32 yPos, f32 scale) {
+    s32 i;
+
+    for (i = 0; i < 2; i++) {
+        TextureRect_8bCI(&gMasterDisp, D_300A470 + (i * 152 * 8), D_300B218, 152, 8, xPos, yPos + (8 * i * scale),
+                         scale, scale);
+    }
+
+    TextureRect_8bCI(&gMasterDisp, D_300A470 + (152 * 8 * i), D_300B218, 152, 7, xPos, yPos + (8 * i * scale), scale,
+                     scale);
+}
+
+void func_800BC9DC(f32 xPos, f32 yPos, f32 scale, s32 yScale) {
+    u16* D_800D4AA4[] = { (u16*) 0x03008DE0, (u16*) 0x030098C0, (u16*) 0x0300A390 };
+    u8* D_800D4ABC[] = { (u8*) 0x030087A0, (u8*) 0x03008EC0, (u8*) 0x03009990 };
+    s32 D_800D4AB0[] = { 40, 64, 64 };
+    s32 i;
+
+    for (i = 0; i < 5; i++) {
+        TextureRect_8bCI(&gMasterDisp, D_800D4ABC[yScale] + (D_800D4AB0[yScale] * 8 * i), D_800D4AA4[yScale],
+                         D_800D4AB0[yScale], 8, xPos, yPos + (8 * i * scale), scale, scale);
+    }
+}
+
+void func_800BCB44(f32 xPos, f32 yPos, f32 scale) {
+    s32 i;
+
+    for (i = 0; i < 2; i++) {
+        TextureRect_8bCI(&gMasterDisp, D_3006C60 + (96 * 8 * i), D_3007500, 96, 8, xPos, yPos + (8 * i * scale), scale,
+                         scale);
+    }
+    TextureRect_8bCI(&gMasterDisp, D_3006C60 + (96 * 8 * i), D_3007500, 96, 7, xPos, yPos + (8 * i * scale), scale,
+                     scale);
+}
+
+void func_800BCC48(f32 xPos, f32 yPos, f32 xScale, f32 yScale, s32 arg4) {
+    u16* D_800D4AC8[] = { (u16*) 0x03006A68, (u16*) 0x03008598, (u16*) 0x0300C458, (u16*) 0x03005E38 };
+    u8* D_800D4AD8[] = { (u8*) 0x03006040, (u8*) 0x030076C0, (u8*) 0x0300B3F0, (u8*) 0x03004F60 };
+    s32 D_800D4AE8[] = { 104, 152, 168, 152 };
+    s32 i;
+
+    for (i = 0; i < 3; i++) {
+        TextureRect_8bCI(&gMasterDisp, D_800D4AD8[arg4] + (D_800D4AE8[arg4] * 8 * i), D_800D4AC8[arg4],
+                         D_800D4AE8[arg4], 8, xPos, yPos + (8 * i * yScale), xScale, yScale);
+    }
+    TextureRect_8bCI(&gMasterDisp, D_800D4AD8[arg4] + (D_800D4AE8[arg4] * 8 * i), D_800D4AC8[arg4], D_800D4AE8[arg4], 1,
+                     xPos, yPos + (8 * i * yScale), xScale, yScale);
+}
+
+void func_800BCE24(f32 xPos, f32 yPos, f32 xScale, f32 yScale) {
+    s32 i;
+
+    for (i = 0; i < 6; i++) {
+        TextureRect_8bCI(&gMasterDisp, D_3001420 + (256 * 7 * i), D_3003E20, 256, 7, xPos, yPos + (7 * i * yScale),
+                         xScale, yScale);
+    }
+}
+
+void func_800BCEF8(f32 xPos, f32 yPos, f32 scale) {
+    s32 i;
+
+    for (i = 0; i < 12; i++) {
+        TextureRect_8bCI(&gMasterDisp, D_3004010 + (136 * 2 * i), D_3004D58, 136, 2, xPos, yPos + (2 * i * scale),
+                         scale, scale);
+    }
+    TextureRect_8bCI(&gMasterDisp, D_3004010 + (136 * 2 * i), D_3004D58, 136, 1, xPos, yPos + (2 * i * scale), scale,
+                     scale);
+}
+
+void func_800BCFFC(f32 xPos, f32 yPos, f32 xScale, f32 yScale) {
+    TextureRect_8bCI(&gMasterDisp, D_1013170, D_1013570, 24, 17, xPos, yPos, xScale, yScale);
+}
+
+void func_800BD05C(f32 xPos, f32 yPos, f32 scale) {
+    TextureRect_4bCI(&gMasterDisp, D_30003A0, D_30004E0, 64, 10, xPos, yPos, scale, scale);
+}
+
+void func_800BD0B4(f32 xPos, f32 yPos, f32 scale) {
+    TextureRect_4bCI(&gMasterDisp, D_3000510, D_30006A0, 80, 10, xPos, yPos, scale, scale);
+}
+
+void func_800BD10C(f32 xPos, f32 yPos, f32 scale) {
+    TextureRect_4bCI(&gMasterDisp, D_30006D0, D_3000810, 64, 10, xPos, yPos, scale, scale);
+}
+
+void func_800BD164(f32 xPos, f32 yPos) {
+    TextureRect_8bIA(&gMasterDisp, D_7003C70, 16, 16, xPos, yPos, 1.0f, 1.0f);
+}
+
+void func_800BD1B0(f32 xPos, f32 yPos) {
+    TextureRect_8bIA(&gMasterDisp, D_7003F10, 16, 16, xPos, yPos, 1.0f, 1.0f);
+}
+
+void func_800BD1FC(f32 xPos, f32 yPos) {
+    TextureRect_8bIA(&gMasterDisp, D_7003E10, 16, 16, xPos, yPos, 1.0f, 1.0f);
+}
+
+void func_800BD248(f32 xPos, f32 yPos) {
+    TextureRect_8bCI(&gMasterDisp, D_7004050, D_7004150, 16, 16, xPos, yPos, 1.0f, 1.0f);
+}
+
+void func_800BD2A0(f32 xPos, f32 yPos) {
+    TextureRect_8bCI(&gMasterDisp, D_70041F0, D_70042F0, 16, 16, xPos, yPos, 1.0f, 1.0f);
+}
+
+void func_800BD2F8(f32 xPos, f32 yPos) {
+    TextureRect_8bCI(&gMasterDisp, D_7004360, D_7004460, 16, 16, xPos, yPos, 1.0f, 1.0f);
+}
+
+void func_800BD350(f32 xPos, f32 yPos) {
+    TextureRect_8bCI(&gMasterDisp, D_70044D0, D_7004990, 64, 19, xPos, yPos, 1.0f, 1.0f);
+}
+
+void func_800BD3A8(f32 xPos, f32 yPos) {
+    s32 i;
+
+    for (i = 0; i < 8; i++) {
+        TextureRect_4bCI(&gMasterDisp, D_70118E0 + ((80 * 8 * i) / 2), D_70123F8, 80, 8, xPos, yPos + (i * 8), 1.0f,
+                         1.0f);
+    }
+    TextureRect_4bCI(&gMasterDisp, D_70118E0 + ((80 * 8 * i) / 2), D_70123F8, 80, 7, xPos, yPos + (i * 8), 1.0f, 1.0f);
+}
+
+void func_800BD4D4(f32 xPos, f32 yPos, s32 arg2) {
+    u8* D_800D4AF8[] = {
+        (u8*) 0x05000000, (u8*) 0x05000080, (u8*) 0x05000100, (u8*) 0x05000180, (u8*) D_5000200,
+        (u8*) 0x05000280, (u8*) D_5000300,  (u8*) 0x05000380, (u8*) 0x05000400, (u8*) 0x05000480,
+    };
+    bool var_s2 = false;
+    s32 i = 1000;
+    s32 j;
+
+    arg2 %= i;
+
+    for (i /= 10; i != 1; i /= 10) {
+        j = arg2 / i;
+        if (j || (var_s2 == true)) {
+            TextureRect_8bIA(&gMasterDisp, D_800D4AF8[j / i], 16, 8, xPos, yPos, 1.0f, 1.0f);
+            xPos += 9.0f;
+            arg2 %= i;
+            var_s2 = true;
+        }
+    }
+    TextureRect_8bIA(&gMasterDisp, D_800D4AF8[arg2 / i], 16, 8, xPos, yPos, 1.0f, 1.0f);
+}
+
+void func_800BD720(f32 xPos, f32 yPos) {
+    TextureRect_8bIA(&gMasterDisp, D_30013E0, 8, 8, xPos, yPos, 1.0f, 1.0f);
+}
+
+void func_800BD76C(f32 xPos, f32 yPos) {
+    TextureRect_4bCI(&gMasterDisp, D_30001E0, D_3000380, 64, 13, xPos, yPos, 1.0f, 1.0f);
+}
+
+void func_800BD7C4(f32 xPos, f32 yPos, s32 arg2) {
+    u8* D_800D4B20[] = {
+        (u8*) 0x05000000, (u8*) 0x05000080, (u8*) 0x05000100, (u8*) 0x05000180, (u8*) D_5000200,
+        (u8*) 0x05000280, (u8*) D_5000300,  (u8*) 0x05000380, (u8*) 0x05000400, (u8*) 0x05000480,
+    };
+    s32 i;
+
+    for (i = 10; i != 1; i /= 10) {
+        if (xPos > 0 && (yPos > 0)) {
+            TextureRect_8bIA(&gMasterDisp, D_800D4B20[arg2 / i], 16, 8, xPos, yPos, 1.0f, 1.0f);
+        }
+        xPos += 9.0f;
+        arg2 %= i;
+    }
+
+    if ((xPos > 0) && (yPos > 0)) {
+        TextureRect_8bIA(&gMasterDisp, D_800D4B20[arg2 / i], 16, 8, xPos, yPos, 1.0f, 1.0f);
+    }
+}
+
+void func_800BD9FC(f32 xPos, f32 yPos) {
+    TextureRect_4bCI(&gMasterDisp, D_1011E80, D_1011EC0, 16, 8, xPos, yPos, 1.0f, 1.0f);
+}
+
+void func_800BDA54(f32 xPos, f32 yPos) {
+    TextureRect_8bIA(&gMasterDisp, D_5007F60, 8, 8, xPos, yPos, 1.0f, 1.0f);
+}
+
+void func_800BDAA0(f32 xPos, f32 yPos, s32 arg2, s32 arg3, s32 arg4) {
+    u8* D_800D4B48[] = {
+        (u8*) D_5009F60, (u8*) D_500A050, (u8*) D_500A140,  (u8*) D_500A230,  (u8*) D_500A320,
+        (u8*) D_500A410, (u8*) D_500A500, (u8*) 0x0500A5F0, (u8*) 0x0500A6E0, (u8*) 0x0500A7D0,
+    };
+    s32 i = 1000;
+    s32 temp1;
+    s32 temp2;
+    s32 temp3 = arg2;
+    s32 y3 = arg3;
+
+    arg2 %= i;
+    arg3 %= i;
+
+    for (i /= 10; i >= 1; i /= 10) {
+        temp1 = arg2 / i;
+        temp2 = arg3 / i;
+        if (temp1 == temp2) {
+            TextureRect_8bIA(&gMasterDisp, D_800D4B48[temp1], 16, 15, xPos, yPos, 0.7f, 0.7f);
+        } else {
+            if (temp3 > y3) {
+                TextureRect_8bIA(&gMasterDisp, D_800D4B48[temp2] + (16 * arg4), 16, 15 - arg4, xPos, yPos, 0.7f, 0.7f);
+                TextureRect_8bIA(&gMasterDisp, D_800D4B48[temp1], 16, arg4, xPos, yPos + (15 - arg4) * 0.7f, 0.7f,
+                                 0.7f);
+            }
+            if (temp3 < y3) {
+                TextureRect_8bIA(&gMasterDisp, D_800D4B48[temp2], 16, 15 - arg4, xPos, yPos + (arg4 * 0.7f), 0.7f,
+                                 0.7f);
+                TextureRect_8bIA(&gMasterDisp, D_800D4B48[temp1] + (16 * (15 - arg4)), 16, arg4, xPos, yPos, 0.7f,
+                                 0.7f);
+            }
+        }
+        xPos += 13.0f * 0.7f;
+        arg2 %= i;
+        arg3 %= i;
+    }
+}
+
+void func_800BDE3C(void) {
+}
+
+void func_800BDE44(void) {
+    s32 i;
+    f32 D_800D4B70[] = {
+        82.0f,
+        242.0f,
+        82.0f,
+        242.0f,
+    };
+    f32 D_800D4B80[] = {
+        82.0f,
+        82.0f,
+        202.0f,
+        202.0f,
+    };
+
+    RCP_SetupDL(&gMasterDisp, 0x4C);
+    gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 0, 255);
+
+    for (i = 0; i < 4; i++) {
+        if ((gPlayer[i].state_1C8 == 3) || (gPlayer[i].state_1C8 == 5)) {
+            if ((D_80177C30[i] != D_80178808[i]) || (D_80178810[i])) {
+                D_80178810[i] += 4;
+                if (D_80178810[i] > 15) {
+                    if (D_80177C30[i] > D_80178808[i]) {
+                        D_80178808[i] += 1;
+                    } else {
+                        D_80178808[i] -= 1;
+                    }
+
+                    if (D_80177C30[i] != D_80178808[i]) {
+                        D_80178810[i] -= 15;
+                    } else {
+                        D_80178810[i] = 0;
+                    }
+                    Audio_PlaySfx(0x49004007U, &D_800C5D28, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C);
+                }
+            }
+
+            if (D_80177C30[i] >= D_80178808[i]) {
+                func_800BDAA0(D_800D4B70[i], D_800D4B80[i], D_80178808[i] + 1, D_80178808[i], D_80178810[i]);
+            } else {
+                func_800BDAA0(D_800D4B70[i], D_800D4B80[i], D_80178808[i] - 1, D_80178808[i], D_80178810[i]);
+            }
+        }
+    }
+}
+
+s32 func_800BE078(void) {
+    s32 temp;
+
+    while (true) {
+        temp = (s32) CYCLES_TO_USEC((D_80178860 - D_80178868)) / 10000;
+
+        if ((D_80178768[2] -= temp) >= 0) {
+            break;
+        }
+        D_80178768[2] *= -1;
+        temp = (D_80178768[2] / 100) + 1;
+        D_80178768[2] %= 100;
+        D_80178768[2] = (100 - D_80178768[2]) % 100;
+
+        if ((D_80178768[1] -= temp) >= 0) {
+            if ((D_80178768[0] == 0) && (D_80178768[1] < 15) && (D_80178768[1] >= 0)) {
+                Audio_PlaySfx(0x4900C02AU, &D_800C5D28, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C);
+            }
+            break;
+        }
+        // clang-format off
+	if (D_80178768[0] == 0)	{ Audio_PlaySfx(0x4900D036U, &D_800C5D28, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C); }
+        // clang-format on
+        D_80178768[1] *= -1;
+        temp = (D_80178768[1] / 60) + 1;
+        D_80178768[1] %= 60;
+        D_80178768[1] = (60 - D_80178768[1]) % 60;
+
+        if ((D_80178768[0] -= temp) >= 0) {
+            break;
+        }
+        D_80178768[0] = 0;
+        D_80178768[1] = 0;
+        D_80178768[2] = 0;
+        break;
+    }
+
+    return 0;
+}
+
+s32 func_800BE300(f32 xPos, f32 yPos, s32* arg2) {
+    s32 i;
+    f32 xTemp;
+    f32 x;
+    f32 y;
+    s32 temp;
+
+    RCP_SetupDL(&gMasterDisp, 0x4E);
+
+    gDPSetPrimColor(gMasterDisp++, 0, 0, 0, 0, 0, 255);
+    TextureRect_8bCI(&gMasterDisp, D_1013170, D_1013570, 24, 17, 120.0f, 115.0f, 3.33f, 0.53f);
+
+    xTemp = 0.0f;
+
+    x = xPos;
+    y = yPos;
+
+    for (i = 0; i < 5; i++) {
+        if ((i == 0) || (i == 2)) {
+            temp = arg2[i / 2] % 60;
+        }
+
+        if (i == 4) {
+            temp = arg2[i / 2] % 100;
+        }
+
+        if ((i % 2) == 1) {
+            RCP_SetupDL(&gMasterDisp, 0x4E);
+            func_800BD9FC(x + xTemp, y);
+        } else {
+            RCP_SetupDL(&gMasterDisp, 0x4C);
+            gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 0, 255);
+            func_800BD7C4(x + xTemp, y, temp);
+            xTemp += 9.0f;
+        }
+
+        xTemp += 9.0f;
+    }
+
+    return 0;
+}
+
+s32 func_800BE564(void) {
+    s32 i;
+    s32 ret = 0;
+
+    if ((!sUnlockLandmaster && !sUnlockOnFoot) || (gVersusStage == VS_STAGE_SECTOR_Z)) {
+        for (i = 0; i < 4; i++) {
+            if (gPlayerInactive[i]) {
+                continue;
+            }
+            D_80178780[i] = 1;
+            D_80177870[i] = 0;
+            ret++;
+        }
+        return ret;
+    }
+
+    for (i = 0; i < 4; i++) {
+        if (gPlayerInactive[i]) {
+            continue;
+        }
+
+        if ((D_80178780[i] == 0) && (D_801787F8[i] == 0)) {
+            if (sUnlockLandmaster && sUnlockOnFoot) {
+                D_80178780[i] = (s32) (Rand_ZeroOne() * 3.0f) + 1;
+            }
+            if (sUnlockLandmaster && !sUnlockOnFoot) {
+                D_80178780[i] = (s32) (Rand_ZeroOne() * 2.0f) + 1;
+            }
+        }
+
+        if (D_801787F8[i]) {
+            D_801787F8[i]--;
+        }
+
+        if ((sUnlockLandmaster) && (D_80178780[i] == 0) && (gControllerPress[i].button & B_BUTTON)) {
+            Audio_PlaySfx(0x49000003U, &D_800C5D28, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C);
+            D_80178780[i] = 2;
+        }
+
+        if ((sUnlockOnFoot) && (D_80178780[i] == 0) &&
+            ((gControllerPress[i].button & L_CBUTTONS) || (gControllerPress[i].button & D_CBUTTONS) ||
+             (gControllerPress[i].button & U_CBUTTONS) || (gControllerPress[i].button & R_CBUTTONS))) {
+            Audio_PlaySfx(0x49000003U, &D_800C5D28, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C);
+            D_80178780[i] = 3;
+        }
+
+        if ((D_80178780[i] == 0) && (gControllerPress[i].button & A_BUTTON)) {
+            Audio_PlaySfx(0x49000003U, &D_800C5D28, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C);
+            D_80178780[i] = 1;
+        }
+
+        if (D_80178780[i]) {
+            switch (D_80178780[i]) {
+                case 1:
+                    D_80177870[i] = 0;
+                    break;
+                case 2:
+                    D_80177870[i] = 1;
+                    break;
+                case 3:
+                    D_80177870[i] = 3;
+                    break;
+                default:
+                    D_80177870[i] = 0;
+                    break;
+            }
+            ret++;
+        }
+    }
+
+    return ret;
+}
+
+void func_800BE924(s32 index) {
+    f32 D_800D4B90[] = { 40.0f, 200.0f, 40.0f, 200.0f };
+    f32 D_800D4BA0[] = { 20.0f, 20.0f, 140.0f, 140.0f };
+
+    RCP_SetupDL(&gMasterDisp, 0x4E);
+
+    gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
+    func_800BD3A8(D_800D4B90[index] + 0.0f, D_800D4BA0[index] + 10.0f);
+    func_800BD350(D_800D4B90[index] + 5.0f, D_800D4BA0[index] + 0.0f);
+
+    if (sUnlockLandmaster && sUnlockOnFoot) {
+        RCP_SetupDL(&gMasterDisp, 0x4E);
+        gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
+        func_800BD248(D_800D4B90[index] + 15.0f, D_800D4BA0[index] + 22.0f);
+        func_800BD2A0(D_800D4B90[index] + 15.0f, D_800D4BA0[index] + 40.0f);
+        func_800BD2F8(D_800D4B90[index] + 15.0f, D_800D4BA0[index] + 58.0f);
+
+        RCP_SetupDL(&gMasterDisp, 0x4C);
+        func_800BD164(D_800D4B90[index] + 43.0f, D_800D4BA0[index] + 22.0f);
+        func_800BD1B0(D_800D4B90[index] + 43.0f, D_800D4BA0[index] + 40.0f);
+        func_800BD1FC(D_800D4B90[index] + 43.0f, D_800D4BA0[index] + 58.0f);
+    }
+
+    if (sUnlockLandmaster && !sUnlockOnFoot) {
+        RCP_SetupDL(&gMasterDisp, 0x4E);
+        gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
+        func_800BD248(D_800D4B90[index] + 15.0f, D_800D4BA0[index] + 29.0f);
+        func_800BD2A0(D_800D4B90[index] + 15.0f, D_800D4BA0[index] + 51.0f);
+
+        RCP_SetupDL(&gMasterDisp, 0x4C);
+        func_800BD164(D_800D4B90[index] + 43.0f, D_800D4BA0[index] + 29.0f);
+        func_800BD1B0(D_800D4B90[index] + 43.0f, D_800D4BA0[index] + 51.0f);
+    }
+
+    RCP_SetupDL(&gMasterDisp, 0x4C);
+    gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 0, 255);
+    func_800BD4D4(D_800D4B90[index] + 32.0f, D_800D4BA0[index] + 84.0f, (D_801787F8[index] / 30) + 1);
+}
+void func_800BECA8(s32 index) {
+    f32 D_800D4BB0[] = { 40.0f, 200.0f, 40.0f, 200.0f };
+    f32 D_800D4BC0[] = { 40.0f, 40.0f, 160.0f, 160.0f };
+
+    RCP_SetupDL(&gMasterDisp, 0x4C);
+    gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 30, 0, 255);
+    func_800BC88C(D_800D4BB0[index], D_800D4BC0[index], 1.0f);
+}
+
+void func_800BED78(void) {
+    RCP_SetupDL(&gMasterDisp, 0x4E);
+    gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
+    func_800BC8D8(84.0f, 108.0f, 1.0f);
+}
+
+s32 func_800BEDDC(void) {
+    s32 i;
+    s32 var_s4 = 0;
+
+    if (!sUnlockLandmaster && !sUnlockOnFoot || (gVersusStage == VS_STAGE_SECTOR_Z)) {
+        func_800BED78();
+        return 0;
+    }
+
+    for (i = 0; i < 4; i++) {
+        if (gPlayerInactive[i]) {
+            continue;
+        }
+
+        if (!D_80178780[i]) {
+            func_800BE924(i);
+        } else {
+            func_800BECA8(i);
+        }
+
+        if (D_80178780[i]) {
+            var_s4++;
+            if (var_s4 == D_801787B4) {
+                func_800BED78();
+            }
+        }
+    }
+
+    return 0;
+}
+
+s32 func_800BEF00(void) {
+    s32 ret;
+
+    ret = 0;
+    if (D_80178790 == 0) {
+        return 2;
+    }
+
+    D_80178794--;
+
+    if (D_80178794 == 0) {
+        D_80178790--;
+        if (D_80178790 != 0) {
+            Audio_PlaySfx(0x49000008U, &D_800C5D28, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C);
+            ret = 0;
+        } else {
+            Audio_PlaySfx(0x49000009U, &D_800C5D28, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C);
+            ret = 1;
+        }
+        D_80178794 = 30;
+    }
+
+    return ret;
+}
+
+s32 func_800BEFE4(void) {
+    f32 D_800D4BD0[] = { 46.0f, 206.0f, 46.0f, 206.0f };
+    f32 D_800D4BE0[] = { 40.0f, 40.0f, 160.0f, 160.0f };
+    f32 D_800D4BF0[] = { 12.0f, 0.0f, 0.0f };
+    s32 i;
+
+    RCP_SetupDL(&gMasterDisp, 0x4E);
+    gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
+
+    for (i = 0; i < 4; i++) {
+        if (gPlayerInactive[i]) {
+            continue;
+        }
+
+        if (D_80178790 != 0) {
+            func_800BC9DC(D_800D4BD0[i] + D_800D4BF0[D_80178790 - 1], D_800D4BE0[i], 1.0f, D_80178790 - 1);
+        } else {
+            func_800BCB44(D_800D4BD0[i] - 16.0f, D_800D4BE0[i], 1.0f);
+        }
+    }
+    return 0;
+}
+
+s32 func_800BF17C(void) {
+    s32 i;
+    f32 ret;
+
+    for (i = 0, ret = 0; i < 4; i++) {
+        D_80178850[i] = 1;
+
+        if (gPlayer[i].state_1C8 != 13) {
+            D_80178850[i] = 0;
+            D_801787F8[i] = 150;
+            continue;
+        }
+
+        if ((gPlayerInactive[i]) || (D_801778AC == 1) || ((D_801787B4 == 1) && (D_801778AC != 2)) ||
+            ((D_801778AC == 2) && (D_80178768[0] == 0) && (D_80178768[1] == 0) && (D_80178768[2] == 0))) {
+            ret = Math_SmoothStepToF(&D_801787D8[i], D_801787E8[i], 0.3f, 100.0f, 1.0f);
+            if (ret == 0.0f) {
+                if (D_801787E8[i] == 32.0f) {
+                    D_801787E8[i] = 255.0f;
+                } else {
+                    D_801787E8[i] = 32.0f;
+                }
+            }
+            gPlayer[i].unk_1D0 = 0;
+        } else {
+            D_80178780[i] = 0;
+            gPlayer[i].unk_1D0 = 0;
+            if ((!D_80178780[i]) && (D_801787F8[i] == 0)) {
+                if (sUnlockLandmaster && sUnlockOnFoot) {
+                    D_80178780[i] = (s32) (Rand_ZeroOne() * 3.0f) + 1;
+                }
+                if (sUnlockLandmaster && !sUnlockOnFoot) {
+                    D_80178780[i] = (s32) (Rand_ZeroOne() * 2.0f) + 1;
+                }
+            }
+
+            if (D_801787F8[i]) {
+                D_801787F8[i] -= 1;
+            }
+
+            if (sUnlockLandmaster && (D_80178780[i] == 0) && (gControllerPress[i].button & B_BUTTON)) {
+                D_80178780[i] = 2;
+            }
+
+            if (sUnlockOnFoot && (D_80178780[i] == 0) &&
+                ((gControllerPress[i].button & L_CBUTTONS) || (gControllerPress[i].button & D_CBUTTONS) ||
+                 (gControllerPress[i].button & U_CBUTTONS) || (gControllerPress[i].button & R_CBUTTONS))) {
+                D_80178780[i] = 3;
+            }
+
+            if ((D_80178780[i] == 0) && (gControllerPress[i].button & A_BUTTON)) {
+                D_80178780[i] = 1;
+            }
+
+            if ((!sUnlockLandmaster && !sUnlockOnFoot) || (gVersusStage == VS_STAGE_SECTOR_Z)) {
+                D_80178850[i] = 0;
+                D_80178780[i] = 1;
+            }
+
+            if (D_80178780[i] != 0) {
+                switch (D_80178780[i]) {
+                    case 1:
+                        D_80177870[i] = 0;
+                        break;
+
+                    case 2:
+                        D_80177870[i] = 1;
+                        break;
+
+                    case 3:
+                        D_80177870[i] = 3;
+                        break;
+
+                    default:
+                        D_80177870[i] = 0;
+                        break;
+                }
+
+                D_80178820[i]++;
+
+                if (D_801778AC == 2) {
+                    D_80177C30[i] = D_80178838[i] = D_80178808[i] = D_80178810[i] = 0;
+                }
+                gPlayer[i].unk_1D0 = 1;
+            }
+        }
+    }
+
+    return 0;
+}
+
+s32 func_800BF59C(void) {
+    s32 i;
+    f32 D_800D4BFC[] = { 83.0f, 226.0f, 83.0f, 226.0f };
+    f32 D_800D4C0C[] = { 102.0f, 102.0f, 209.0f, 209.0f };
+    s32 colorGB;
+
+    for (i = 0; i < 4; i++) {
+        RCP_SetupDL(&gMasterDisp, 0x4E);
+
+        if (D_80178850[i] == 0) {
+            continue;
+        }
+
+        if ((gPlayerInactive[i]) || (D_801778AC == 1)) {
+            colorGB = D_801787D8[i];
+            gDPSetPrimColor(gMasterDisp++, 0, 0, 255, colorGB, colorGB, 255);
+            func_800BD76C(D_800D4BFC[i], D_800D4C0C[i]);
+        } else {
+            if (sUnlockLandmaster || sUnlockOnFoot) {
+                func_800BE924(i);
+            }
+        }
+    }
+    return 0;
+}
+
+void func_800BF750(void) {
+    s32 i;
+    s32 j;
+    f32 D_800D4C1C[] = { 112.0f, 272.0f, 112.0f, 272.0f };
+    f32 D_800D4C2C[] = { 75.0f, 75.0f, 195.0f, 195.0f };
+    s32 D_800D4C3C[] = { 177, 255, 0, 30 };
+    s32 D_800D4C4C[] = { 242, 30, 179, 30 };
+    s32 D_800D4C5C[] = { 12, 0, 67, 255 };
+    s32 temp;
+
+    RCP_SetupDL(&gMasterDisp, 0x4C);
+
+    for (i = 0; i < 4; i++) {
+        if (gPlayer[i].state_1C8 != 3) {
+            continue;
+        }
+        for (j = 0, temp = 0; j < 4; j++) {
+            if ((D_80177B00[i][j] != 0) && (gFrameCount & 4)) {
+                gDPSetPrimColor(gMasterDisp++, 0, 0, D_800D4C3C[j], D_800D4C4C[j], D_800D4C5C[j], 255);
+                func_800BDA54(D_800D4C1C[i] + temp * 9.0f, D_800D4C2C[i]);
+                temp++;
+            }
+        }
+    }
+}
+
+s32 func_800BF9AC(void) {
+    s32 i;
+    s32 j;
+    s32 temp;
+    s32 var_a3;
+    s32 temp2[4];
+
+    switch (D_801778AC) {
+        case 0:
+            for (i = 0, var_a3 = 0; i < 4; i++) {
+                if (gPlayer[i].state_1C8 != PLAYERSTATE_1C8_13) {
+                    D_801787A8 = i;
+                }
+                if (gPlayer[i].state_1C8 == PLAYERSTATE_1C8_13) {
+                    var_a3 += 1;
+                }
+            }
+
+            if ((D_801787B4 == 1) && (var_a3 == 4)) {
+                D_80177E74 = 1;
+                D_801787A8 = 99;
+                break;
+            }
+
+            for (i = 0; i < 4; i++) {
+                if (D_80177DB8[i] == D_801778A4) {
+                    break;
+                }
+                if (D_80177DB8[i] == (D_801778A4 - 1)) {
+                    D_800D4A9C = 1;
+                }
+            }
+
+            if (i >= 4) {
+                return 0;
+            }
+
+            if (gPlayer[i].timer_278) {
+                return 0;
+            }
+
+            for (j = 0; j < 4; j++) {
+                if (j == i) {
+                    continue;
+                }
+                if (gPlayer[j].unk_288 >= 0) {
+                    gPlayer[j].unk_288 = i + 1;
+                }
+                gPlayer[j].state_1C8 = PLAYERSTATE_1C8_13;
+            }
+            D_80177E74 = 1;
+            D_801787A8 = i;
+            break;
+
+        case 1:
+
+            for (i = 0, var_a3 = 0; i < 4; i++) {
+                if (gPlayer[i].state_1C8 != PLAYERSTATE_1C8_13) {
+                    D_801787A8 = i;
+                }
+                if (gPlayer[i].state_1C8 == PLAYERSTATE_1C8_13) {
+                    var_a3 += 1;
+                }
+            }
+            if ((D_801787B4 == 1) && (var_a3 == 4)) {
+                D_80177E74 = 1;
+                D_801787A8 = 99;
+                break;
+            }
+
+            if (var_a3 >= 2) {
+                D_800D4A9C = 1;
+            }
+
+            if ((var_a3 < 3) || (D_801787B4 == 1)) {
+                return (0);
+            }
+
+            if (var_a3 >= 4) {
+                D_801787A8 = 99;
+            }
+
+            for (j = 0; j < 4; j++) {
+                if (j == D_801787A8) {
+                    continue;
+                }
+                if (gPlayer[j].unk_288 >= 0) {
+                    gPlayer[j].unk_288 = i + 1;
+                }
+                gPlayer[j].state_1C8 = PLAYERSTATE_1C8_13;
+            }
+            D_80177E74 = 1;
+            break;
+
+        case 2:
+            if ((D_80178768[0] != 0) || (D_80178768[1] != 0) || (D_80178768[2] != 0)) {
+                return (0);
+            }
+
+            if (D_801778AC == 2) {
+                for (i = 0; i < 4; i++) {
+                    if ((gPlayer[i].state_1C8 == PLAYERSTATE_1C8_4) || (gPlayer[i].state_1C8 == PLAYERSTATE_1C8_13)) {
+                        D_80177C30[i] = D_80178838[i] = D_80178808[i] = D_80178810[i] = 0;
+                        D_80178820[i] += 1;
+                    }
+                }
+            }
+
+            for (i = 0; i < 4; i++) {
+                temp2[i] = 0;
+            }
+
+            for (i = 0; i < 4; i++) {
+                if (!gControllerPlugged[i]) {
+                    continue;
+                }
+                for (j = 0, temp = 0; j < 4; j++) {
+                    if (!gControllerPlugged[j]) {
+                        continue;
+                    }
+                    if (temp2[j]) {
+                        continue;
+                    }
+
+                    if (i != j) {
+                        if (D_80177C30[i] < D_80177C30[j]) {
+                            temp2[i] = 1;
+                            break;
+                        }
+                        if (D_80177C30[i] == D_80177C30[j]) {
+                            temp = 1;
+                        }
+                    }
+                }
+
+                if ((j == 4) && (temp == 0)) {
+                    D_801787A8 = i;
+                }
+            }
+
+            if (D_801787A8 == 99) {
+                for (i = 0; i < 4; i++) {
+                    if (!gControllerPlugged[i]) {
+                        continue;
+                    }
+                    if (temp2[i]) {
+                        continue;
+                    }
+
+                    for (j = 0, temp = 0; j < 4; j++) {
+                        if (!gControllerPlugged[j]) {
+                            continue;
+                        }
+                        if (temp2[j]) {
+                            continue;
+                        }
+
+                        if (i != j) {
+                            if (D_80178820[i] > D_80178820[j]) {
+                                temp2[i] = 1;
+                                break;
+                            }
+                            if (D_80178820[i] == D_80178820[j]) {
+                                temp = 1;
+                            }
+                        }
+                    }
+                    if ((j == 4) && (temp == 0)) {
+                        D_801787A8 = i;
+                    }
+                }
+
+                if (D_801787A8 == 99) {
+                    for (i = 0; i < 4; i++) {
+                        if (!gControllerPlugged[i]) {
+                            continue;
+                        }
+                        if (temp2[i]) {
+                            continue;
+                        }
+
+                        for (j = 0, temp = 0; j < 4; j++) {
+                            if (!gControllerPlugged[j]) {
+                                continue;
+                            }
+                            if (temp2[j]) {
+                                continue;
+                            }
+                            if (i != j) {
+                                if (gPlayer[i].shields < gPlayer[j].shields) {
+                                    temp2[i] = 1;
+                                    break;
+                                }
+                                if (gPlayer[i].shields == gPlayer[j].shields) {
+                                    temp = 1;
+                                }
+                            }
+                        }
+                        if ((j == 4) && (temp == 0)) {
+                            D_801787A8 = i;
+                        }
+                    }
+                }
+            }
+
+            for (j = 0; j < 4; j++) {
+                if (j == D_801787A8) {
+                    continue;
+                }
+
+                if (gPlayer[j].unk_288 >= 0) {
+                    gPlayer[j].unk_288 = i + 1;
+                }
+
+                gPlayer[j].state_1C8 = 13;
+            }
+            D_80177E74 = 1;
+            break;
+
+        default:
+            break;
+    }
+
+    return 1;
+}
+
+void func_800C024C(void) {
+    D_801787BC = 1;
+    D_80178798 = 0;
+    D_801787C4 = 0.0f;
+    D_801787C8 = 1.0f;
+    D_801787C0 = 400.0f;
+}
+
+bool func_800C0294(s32 index) {
+    f32 D_800D4C6C[] = { 108.0f, 84.0f, 79.0f, 84.0f, 36.0f };
+    s32 ret = false;
+    s32 temp;
+
+    if (index == 99) {
+        index = 4;
+    }
+
+    switch (D_801787BC) {
+        case 0:
+            break;
+
+        case 1:
+            if ((D_801787C0 -= (D_801787C4 += 10.0f)) <= (D_800D4C6C[index] * 0.8f)) {
+                D_801787BC = 2;
+                D_801787C0 = D_800D4C6C[index] * 0.8f;
+            }
+            break;
+
+        case 2:
+            if (0.0f == Math_SmoothStepToF(&D_801787C8, 0.3f, 0.4f, 100.0f, 0.01f)) {
+                D_801787BC = 3;
+                D_801787C4 = 0.0f;
+            }
+            break;
+
+        case 3:
+            temp = Math_SmoothStepToF(&D_801787C8, 1.0f, 0.6f, 100.0f, 0.1f);
+            if (D_801787C0 < D_800D4C6C[index]) {
+                D_801787C0 += (D_801787C4 += 3.0f);
+            } else {
+                D_801787C0 = D_800D4C6C[index];
+            }
+
+            if ((D_801787C0 == D_800D4C6C[index]) && (temp == 0.0f)) {
+                D_801787BC = 4;
+            }
+            break;
+
+        default:
+            ret = true;
+            break;
+    }
+
+    return ret;
+}
+
+s32 func_800C04DC(f32 xPos, f32 scale, s32 arg2) {
+    f32 x;
+    f32 y;
+
+    if ((D_801778AC == 2) && (D_800D4A98 & 32) && (D_801787A8 != 99)) {
+        x = 118.0f;
+        y = 110.0f;
+
+        RCP_SetupDL(&gMasterDisp, 0x4E);
+        gDPSetPrimColor(gMasterDisp++, 0, 0, 0, 0, 0, 200);
+        func_800BCFFC(98.0f, 100.0f, 5.2f, 2.98f);
+
+        RCP_SetupDL(&gMasterDisp, 0x53);
+        gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 0, 255);
+
+        Graphics_DisplaySmallText(x, y, 1.0f, 1.0f, "TOTAL");
+        Graphics_DisplaySmallText(x + 45.0f, y, 1.0f, 1.0f, "SCORE");
+
+        gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
+        func_800869A0(x + 18.0f, y + 16.0f, D_800D4A94, 1.0f, 0, 9999);
+    } else {
+        if (arg2 < 4) {
+            RCP_SetupDL(&gMasterDisp, 0x4E);
+            gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
+            func_800BCC48(xPos, 100.0f, scale, 1.0f, arg2);
+        } else {
+            RCP_SetupDL(&gMasterDisp, 0x4E);
+            gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
+            func_800BCE24(xPos, 104.0f, scale, 1.0f);
+        }
+    }
+
+    return 0;
+}
+
+s32 func_800C075C(void) {
+    RCP_SetupDL(&gMasterDisp, 0x4E);
+    gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
+    func_800BCEF8(94.0f, 126.0f, 1.0f);
+    return 0;
+}
+
+s32 func_800C07C4(void) {
+    s32 i;
+    s32 stick_y = 0;
+    s32 ret = 0;
+
+    for (i = 0; i < 4; i++) {
+        if ((gControllerPlugged[i] == true) && (stick_y = gControllerPress[i].stick_y)) {
+            break;
+        }
+    }
+
+    if (stick_y) {
+        if (stick_y > 0) {
+            stick_y = -1;
+        } else {
+            stick_y = 1;
+        }
+
+        if (D_8017879C == 0) {
+            ret = stick_y;
+        }
+        D_801787A0++;
+        D_8017879C = stick_y;
+    } else {
+        D_8017879C = 0;
+        D_801787A0 = 0;
+    }
+
+    // clang-format off
+    if (ret != 0) { Audio_PlaySfx(0x49000002U, &D_800C5D28, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C); }
+    // clang-format on
+
+    return ret;
+}
+
+bool func_800C08D0(void) {
+    f32 temp = 0.0f;
+
+    temp += Math_SmoothStepToF(&D_801787CC, 1.55f, 0.6f, 10.0f, 0.04f);
+    temp += Math_SmoothStepToF(&D_801787D0, 0.82f, 0.6f, 10.0f, 0.04f);
+
+    if (temp != 0.0f) {
+        return false;
+    } else {
+        return true;
+    }
+}
+
+void func_800C0970(f32 yScale1, f32 yScale2) {
+    RCP_SetupDL(&gMasterDisp, 0x4E);
+    gDPSetPrimColor(gMasterDisp++, 0, 0, 0, 0, 0, 255);
+    func_800BCFFC(98.0f, 72.0f, 5.19f, yScale1);
+    func_800BCFFC(98.0f, 152.0f, 5.19f, yScale2);
+}
+
+s32 func_800C0A04(void) {
+    s32 ret = func_800C07C4();
+    s32 var_v1;
+
+    if (ret != 0) {
+        D_801787AC = 255.0f;
+        D_801787B0 = 255.0f;
+        D_801787A4 += ret;
+
+        if (D_801787A4 >= 3) {
+            D_801787A4 = 0;
+            D_801787A4 = 0;
+        }
+
+        if (D_801787A4 < 0) {
+            D_801787A4 = 2;
+        }
+    }
+
+    if (Math_SmoothStepToF(&D_801787AC, D_801787B0, 0.5f, 100.0f, 1.0f) == 0.0f) {
+        if (D_801787B0 == 32.0f) {
+            D_801787B0 = 255.0f;
+        } else {
+            D_801787B0 = 32.0f;
+        }
+    }
+
+    return D_801787A4;
+}
+
+s32 func_800C0B0C(void) {
+    s32 i;
+    s32 colorGB[3];
+
+    RCP_SetupDL(&gMasterDisp, 0x4E);
+
+    for (i = 0; i < 3; i++) {
+        if (i == D_801787A4) {
+            colorGB[i] = D_801787AC;
+        } else {
+            colorGB[i] = 255;
+        }
+    }
+
+    gDPSetPrimColor(gMasterDisp++, 0, 0, 255, colorGB[0], colorGB[0], 255);
+    func_800BD05C(140.0f, 74.0f, 1.0f);
+    gDPSetPrimColor(gMasterDisp++, 0, 0, 255, colorGB[1], colorGB[1], 255);
+    func_800BD0B4(124.0f, 86.0f, 1.0f);
+    gDPSetPrimColor(gMasterDisp++, 0, 0, 255, colorGB[2], colorGB[2], 255);
+    func_800BD10C(144.0f, 154.0f, 1.0f);
+
+    return 0;
+}
+
+bool func_800C0C84(void) {
+    s32 i;
+
+    for (i = 0; i < 4; i++) {
+        if (gControllerPlugged[i] == true) {
+            if (gControllerPress[i].button & A_BUTTON) {
+                D_801787AC = 32.0f;
+                return true;
+            }
+        }
+    }
+
+    func_800C0A04();
+
+    return false;
+}
+
+bool func_800C0D10(void) {
+    s32 i;
+    s32 cont;
+    bool ret = false;
+
+    switch (D_800D4A90) {
+        case 0:
+            // clang-format off
+	        for( i=0; i<5; i++ ) { D_80178838[ i]= 0; }
+            // clang-format on
+            D_800D4A90 = 1;
+            D_800D4A94 = 0;
+            break;
+
+        case 1:
+            cont = 0;
+
+            for (i = 0; i < 4; i++) {
+                if (D_80177C30[i] == D_80178838[i]) {
+                    cont++;
+                    continue;
+                }
+                D_80178838[i]++;
+                D_800D4A94++;
+            }
+
+            if (cont == 4) {
+                D_800D4A90 = 2;
+            } else {
+                Audio_PlaySfx(0x49004007U, &D_800C5D28, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C);
+            }
+            break;
+
+        case 2:
+            if (D_80178838[4] != D_800D4A94) {
+                D_80178838[4]++;
+            } else {
+                ret = true;
+            }
+            break;
+
+        default:
+            break;
+    }
+
+    return ret;
+}
+
+s32 func_800C0E78(void) {
+    s32 i;
+    u8* D_800D4C80[] = {
+        "FOX",
+        "PEPPY",
+        "SLIPPY",
+        "FALCO",
+    };
+    f32 D_800D4C90[5] = {
+        32.0f, 168.0f, 32.0f, 168.0f, 0.0f,
+    };
+    f32 D_800D4CA4[5] = {
+        20.0f, 20.0f, 200.0f, 200.0f, 0.0f,
+    };
+
+    for (i = 0; i < 4; i++) {
+        if (gControllerPlugged[i] == true) {
+            RCP_SetupDL(&gMasterDisp, 0x53);
+            gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 0, 255);
+            Graphics_DisplaySmallText(D_800D4C90[i], D_800D4CA4[i], 1.0f, 1.0f, D_800D4C80[i]);
+
+            gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
+            func_800869A0(D_800D4C90[i], D_800D4CA4[i] + 9.0f, D_80178838[i], 1.0f, 0, 999);
+        }
+    }
+
+    return 0;
+}
+
+bool func_800C107C(s32 arg0) {
+    D_80178798++;
+    if (D_80178798 == 10) {
+        Audio_PlaySfx(0x49004007U, &D_800C5D28, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C);
+        D_801787B8++;
+        D_80178798 = 0;
+    }
+
+    if (D_801787B8 < D_80177DB8[arg0]) {
+        return false;
+    } else {
+        return true;
+    }
+}
+
+s32 func_800C1138(s32 max, s32 arg1) {
+    f32 D_800D4CB8[] = { 24.0f, 248.0f, 24.0f, 248.0f };
+    f32 D_800D4CC8[] = { 104.0f, 104.0f, 216.0f, 216.0f };
+    s32 D_800D4CD8[] = { 177, 255, 0, 30 };
+    s32 D_800D4CE8[] = { 242, 30, 179, 30 };
+    s32 D_800D4CF8[] = { 12, 0, 67, 255 };
+    s32 i;
+    s32 j;
+
+    for (i = 0; i < max; i++) {
+        RCP_SetupDL(&gMasterDisp, 0x4D);
+        j = D_80177DD0[arg1][i];
+        gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
+        gDPSetEnvColor(gMasterDisp++, D_800D4CD8[j], D_800D4CE8[j], D_800D4CF8[j], 0);
+        func_800BD720(D_800D4CB8[arg1] + (i * 9.0f), D_800D4CC8[arg1]);
+    }
+
+    return 0;
+}
+
+void func_800C1368(void) {
+    s32 i;
+
+    for (i = 0, D_801787B4 = 0; i < 4; i++) {
+        if (!gPlayerInactive[i]) {
+            D_801787B4++;
+        }
+        D_80178780[i] = 0;
+        D_801787D8[i] = 0.0f;
+        D_801787E8[i] = 0.0f;
+    }
+
+    D_801787CC = 0.0f;
+    D_801787D0 = 0.0f;
+    D_801787AC = 255.0f;
+    D_801787B0 = 0.0f;
+    D_80161A10 = 0.5f;
+    D_80178778 = 0;
+    D_80178790 = 4;
+    D_80178794 = 1;
+    D_8017879C = 0;
+    D_801787A0 = 0;
+    D_801787A4 = 0;
+    D_801787A8 = 99;
+    D_801787B8 = 0;
+    D_80178750 = 0;
+    gBgColor = 0;
+    D_80178830 = 0;
+    D_800D4A90 = 0;
+    D_800D4A98 = 0;
+    D_800D4A9C = D_800D4AA0 = 0;
+    D_80178340 = 0xFF;
+    D_8017835C = 0;
+    D_80178358 = 0;
+
+    for (i = 0; i < 4; i++) {
+        D_80177C30[i] = 0;
+        D_80178808[i] = 0;
+        D_80178810[i] = 0;
+        D_80178820[i] = 0;
+    }
+
+    // clang-format off
+    for (i = 0; i < 4; i++) { D_801787F8[i] = 150; }
+    // clang-format on
+
+    if (gSaveFile.save.data.planet[SAVE_SLOT_VENOM_2].normalClear == 1) {
+        sUnlockLandmaster = true;
+    } else {
+        sUnlockLandmaster = false;
+    }
+
+    if (gSaveFile.save.data.planet[SAVE_SLOT_VENOM_2].expertClear == 1) {
+        sUnlockOnFoot = true;
+    } else {
+        sUnlockOnFoot = false;
+    }
+
+    if (D_801778AC == 2) {
+        D_801778A4 = 10000;
+    }
+    if (!sUnlockLandmaster) {
+        sUnlockOnFoot = false;
+    }
+
+    D_80178768[0] = D_801778C8 + 1;
+    D_80178768[1] = 0;
+    D_80178768[2] = 0;
+}
+
+bool func_800C15D8(void) {
+    bool ret = false;
+
+    if (D_80161A10 >= 1.5f) {
+        D_80161A10 = 1.5f;
+        switch (gVersusStage) {
+            case VS_STAGE_CORNERIA:
+                gBgColor = 0x8FBD;
+                break;
+
+            case VS_STAGE_KATINA:
+                gBgColor = 0xADA7;
+                break;
+
+            case VS_STAGE_SECTOR_Z:
+                gBgColor = 0x0001;
+                break;
+
+            default:
+                gBgColor = 0x8FBD;
+                break;
+        }
+        ret = true;
+    } else {
+        D_80161A10 += 0.05f;
+        gBgColor = 0;
+    }
+
+    return ret;
+}
+
+/* return type needs to be s32 for func_800C176C to match */
+s32 func_800C1690(void) {
+    D_80178798 = 0;
+}
+
+bool func_800C16A0(s32 arg0) {
+    if (arg0 != D_80178798) {
+        D_80178798++;
+    } else {
+        return true;
+    }
+    return false;
+}
+
+void func_800C16D0(void) {
+    func_800ABA08();
+    D_80178754 = 0;
+    D_80178778 = 0;
+}
+
+void func_800C1700(void) {
+    func_800BC760();
+    gGameState = GSTATE_MENU;
+    D_Timer_8017783C = 2;
+    D_8017784C = 0;
+    D_800D2870 = 1;
+    gBgColor = 0;
+}
+
+void dummy(void) {
+}
+
+void func_800C175C(void) {
+}
+
+void func_800C1764(void) {
+}
+
+bool func_800C176C(void) {
+    bool ret = false;
+
+    switch (D_80178754) {
+        case 0:
+            func_800C1368();
+            D_80178754 = 1;
+            func_800C1690();
+            break;
+
+        case 1:
+            if (!func_800C15D8()) {
+                break;
+            }
+            if (func_800C16A0(30)) {
+                func_8001D444(0, D_80177C90, 0, 0xFF);
+                D_80178754 = 2;
+                func_800C1690();
+            }
+            break;
+
+        case 2:
+            D_80178778 = 1;
+            if (D_801787B4 != func_800BE564()) {
+                break;
+            }
+            if (func_800C16A0(30)) {
+                func_800ABA08();
+                D_80178754 = 3;
+                func_800C1690();
+            }
+            break;
+
+        case 3:
+            D_80178778 = 2;
+            ret = func_800BEF00();
+
+            if (ret == false) {
+                break;
+            }
+
+            if (ret == true) {
+                D_80177E7C = 1;
+            }
+
+            if (func_800C16A0(30)) {
+                D_80178754 = 4;
+            }
+            break;
+
+        case 4:
+            if ((D_800D4A9C == 1) && (D_800D4AA0 == 0)) {
+                func_8001D444(0, 0x802F, 0, 0xFF);
+                D_800D4AA0 = 1;
+            }
+
+            if (D_801778AC == 2) {
+                D_80178778 = 10;
+                func_800BE078();
+                func_800BDE3C();
+            } else {
+                D_80178778 = 8;
+            }
+
+            if (func_800BF9AC()) {
+                func_800182F4(0x100100FF);
+                func_800182F4(0x110100FF);
+                if (D_801778AC == 2) {
+                    D_80178778 = 11;
+                } else {
+                    D_80178778 = 0;
+                }
+                D_80178754 = 5;
+                func_800C1690();
+            } else {
+                func_800BF17C();
+            }
+            break;
+
+        case 5:
+            if (func_800C16A0(60)) {
+                switch (D_801787A8) {
+                    case 0:
+
+                    case 1:
+
+                    case 2:
+
+                    case 3:
+                        func_8001D444(0, 0x26, 0, 0xFF);
+                        break;
+
+                    case 99:
+                        func_8001D444(0, 0x31, 0, 0xFF);
+                        break;
+
+                    default:
+                        break;
+                }
+
+                D_80178750 = 1;
+                D_80178754 = 6;
+                func_800C024C();
+            }
+            break;
+
+        case 6:
+            D_80178778 = 3;
+            if (!func_800C0294(D_801787A8)) {
+                break;
+            }
+            if (func_800C16A0(30)) {
+                func_800C1690();
+                D_80178754 = 7;
+            }
+            break;
+
+        case 7:
+            D_80178778 = 4;
+            if (func_800C16A0(15)) {
+                func_800C1690();
+                if (((D_801778AC == 0) && (D_801787B4 > 1)) || (D_801778AC == 2)) {
+                    D_80178754 = 8;
+                } else {
+                    D_80178754 = 9;
+                }
+            }
+            break;
+
+        case 8:
+            D_80178778 = 5;
+            switch (D_801778AC) {
+                case 0:
+                    if (func_800C107C(D_801787A8)) {
+                        D_80178754 = 9;
+                    }
+                    break;
+
+                case 2:
+                    if (func_800C0D10()) {
+                        D_80178754 = 9;
+                    }
+                    break;
+
+                default:
+                    break;
+            }
+
+            break;
+
+        case 9:
+            D_80178778 = 6;
+            if (func_800C08D0()) {
+                func_800C1690();
+                D_801787AC = 0.0f;
+                D_80178830 = 0;
+                D_80178754 = 10;
+            }
+            break;
+
+        case 10:
+            D_80178778 = 7;
+            if (func_800C16A0(60)) {
+                if (func_800C0C84()) {
+                    switch (D_801787A4) {
+                        case 0:
+                            D_80178754 = 11;
+                            break;
+
+                        case 1:
+                            D_80178754 = 12;
+                            break;
+
+                        case 2:
+                            D_80178754 = 13;
+                            break;
+
+                        default:
+                            D_80178754 = 14;
+                            break;
+                    }
+
+                    func_800182F4(0x103200FF);
+                    func_800182F4(0x113200FF);
+                }
+            }
+            break;
+
+        case 11:
+            D_80178830 += 16;
+            if (D_80178830 > 480) {
+                D_80178348 = D_80178350 = D_80178354 = 0;
+                D_80178340 = D_80178358 = 255;
+                gBgColor = 0;
+                func_800C16D0();
+            }
+            break;
+
+        case 12:
+            D_80178830 += 16;
+            if (D_80178830 > 160) {
+                if (D_80178830 > 176) {
+                    gCamCount = 1;
+                }
+                D_80178348 = D_80178350 = D_80178354 = 0;
+                gBgColor = 0;
+                if (D_80178830 > 224) {
+                    func_800C1700();
+                }
+            }
+            break;
+
+        case 13:
+            D_80178830 += 16;
+            if (D_80178830 > 160) {
+                if (D_80178830 > 176) {
+                    gCamCount = 1;
+                }
+
+                D_80178348 = D_80178350 = D_80178354 = 0;
+                gBgColor = 0;
+
+                if (D_80178830 > 224) {
+                    func_800BC760();
+                    D_EBFBE0_801B827C = 1;
+                }
+            }
+            break;
+
+        case 14:
+            break;
+
+        case 20:
+            D_80178778 = 9;
+            if (gInputPress->button & B_BUTTON) {
+                D_80178754 = 13;
+            } else {
+                func_800C175C();
+            }
+            break;
+    }
+
+    if (((D_80178754 == 8) || (D_80178754 == 9)) || (D_80178754 == 10)) {
+        D_800D4A98++;
+    }
+
+    if (D_80178754 >= 5) {
+        D_801779BC = 0;
+    }
+
+    return false;
+}
+
+s32 func_800C1E9C(void) {
+    if (D_80177854 != 100) {
+        func_800C176C();
+    }
+    return 0;
+}
+
+void func_800C1ED4(void) {
+    s32 var_a1;
+
+    D_80178868 = D_80178860;
+    D_80178860 = osGetTime();
+
+    switch (D_80178778) {
+        case 1:
+            func_800BEDDC();
+            break;
+
+        case 2:
+            func_800BEFE4();
+            break;
+
+        case 7:
+        case 6:
+            func_800C0970(D_801787CC, D_801787D0);
+
+        case 5:
+            switch (D_801778AC) {
+                case 0:
+                    func_800C1138(D_801787B8, D_801787A8);
+                    break;
+
+                case 2:
+                    func_800C0E78();
+                    break;
+            }
+        case 4:
+            if ((D_801778AC != 2) || (!(D_800D4A98 & 32))) {
+                if (D_801787A8 < 4) {
+                    func_800C075C();
+                }
+            }
+
+        case 3:
+            func_800C04DC(D_801787C0, D_801787C8, D_801787A8);
+            if (D_80178778 == 7) {
+                func_800C0B0C();
+            }
+            break;
+
+        case 10:
+            func_800BDE44();
+
+        case 8:
+            func_800BF750();
+            func_800BF59C();
+
+        case 11:
+            if (D_801778AC == 2) {
+                func_800BE300(124.0f, 116.0f, D_80178768);
+            }
+            break;
+
+        case 9:
+            func_800C1764();
+            break;
+    }
+
+    var_a1 = D_80178830;
+    if (var_a1 >= 121) {
+        var_a1 = 121;
+    }
+    func_80084688(2, var_a1);
+}
+
+void func_800C20B0(void) {
+    switch (D_8017784C) {
+        case 0:
+            if (D_Timer_8017783C == 0) {
+                D_8017784C = 1;
+                D_80178410 = 0;
+            }
+            break;
+
+        case 1:
+            D_8017784C = 2;
+            break;
+
+        case 2:
+            gDrawMode = DRAWMODE_0;
+            func_800A5844();
+
+            if (gVersusStage == VS_STAGE_SECTOR_Z) {
+                gOverlayStage = 1;
+            }
+
+            gCurrentLevel = LEVEL_VERSUS;
+            gGameState = GSTATE_PLAY;
+            D_Timer_8017783C = 2;
+            D_80177854 = 0;
+            D_80178758 = 0;
+            break;
+    }
+    gFrameCount++;
+}
+
+void func_800C2190(void) {
+}
+
+bool func_800C2198(Object_2F4* obj2F4, f32 arg1, f32 arg2) {
+    if ((fabsf(gBosses[0].obj.pos.x - (obj2F4->obj.pos.x + (arg1 * 650.0f))) < 1500.0f) &&
+        (fabsf(gBosses[0].obj.pos.z - (obj2F4->obj.pos.z + (arg2 * 650.0f))) < 1500.0f) &&
+        (fabsf(gBosses[0].obj.pos.y - obj2F4->obj.pos.y) < 700.0f)) {
+        return true;
+    } else {
+        return false;
+    }
+}
+
+void func_800C2244(Object_2F4* obj2F4) {
+    bool boolTemp2;
+    bool boolTemp;
+    s32 pad2[6];
+    f32 x;
+    f32 y;
+    f32 z;
+    f32 x3;
+    s32 pad4;
+    f32 y3;
+    s32 pad3[3];
+    f32 sinX;
+    f32 sinY;
+    f32 cosX;
+    f32 cosY;
+    Vec3f vec;
+    s32 pad;
+
+    boolTemp = false;
+
+    switch (obj2F4->unk_0B8) {
+        case 0:
+            boolTemp = true;
+
+            if (obj2F4->timer_0BC == 0) {
+                y = Rand_ZeroOne() * 1000.0f;
+                x = (Rand_ZeroOne() - 0.5f) * 10000.0f;
+                z = (Rand_ZeroOne() - 0.5f) * 10000.0f;
+
+                if ((fabsf(obj2F4->obj.pos.x - x) > 2000.0f) || (fabsf(obj2F4->obj.pos.z - z) > 2000.0f)) {
+                    obj2F4->unk_124.x = x;
+                    obj2F4->unk_124.y = y;
+                    obj2F4->unk_124.z = z;
+                    obj2F4->timer_0BC = (s32) (Rand_ZeroOne() * 20.0f) + 10;
+                }
+            }
+            break;
+    }
+
+    sinX = __sinf(M_DTOR * (obj2F4->obj.rot.x));
+    cosX = __cosf(M_DTOR * (obj2F4->obj.rot.x));
+    sinY = __sinf(M_DTOR * (obj2F4->obj.rot.y));
+    cosY = __cosf(M_DTOR * (obj2F4->obj.rot.y));
+
+    if (boolTemp) {
+        x = obj2F4->unk_124.x - obj2F4->obj.pos.x;
+        y = obj2F4->unk_124.y - obj2F4->obj.pos.y;
+        z = obj2F4->unk_124.z - obj2F4->obj.pos.z;
+
+        if (!((gFrameCount + obj2F4->index) & 7)) {
+            obj2F4->unk_160 = Math_RadToDeg((Math_Atan2F(x, z)));
+            z = sqrtf(SQ(x) + SQ(z));
+            obj2F4->unk_164 = Math_RadToDeg((Math_Atan2F(y, z)));
+        }
+
+        x3 = obj2F4->unk_164;
+
+        boolTemp2 = func_800C2198(obj2F4, sinY, cosY);
+
+        if (boolTemp2) {
+            x3 += 40.0f * boolTemp2;
+
+            if (x3 >= 360.0f) {
+                x3 -= 360.0f;
+            }
+            if (x3 < 0.0f) {
+                x3 += 360.0f;
+            }
+
+        } else if (obj2F4->obj.pos.y < D_80177940 + 50.0f) {
+            if (x3 > 180.0f) {
+                x3 = 0.0f;
+                obj2F4->unk_0F4.x = 0.0f;
+            }
+        }
+
+        Math_SmoothStepToAngle(&obj2F4->unk_0F4.x, x3, 0.5f, 1.0f, 0.0001f);
+        y3 = Math_SmoothStepToAngle(&obj2F4->unk_0F4.y, obj2F4->unk_160, 0.5f, 1.0f, 0.0001f) * 30.0f;
+
+        if (y3 < 0.0f) {
+            y3 *= -1.0f;
+        } else {
+            y3 = 360.0f - y3;
+        }
+
+        Math_SmoothStepToAngle(&obj2F4->obj.rot.z, y3, 0.1f, 3.0f, 0.01f);
+    }
+
+    obj2F4->obj.rot.x = -obj2F4->unk_0F4.x;
+    obj2F4->obj.rot.y = obj2F4->unk_0F4.y;
+
+    vec.z = +cosX * 38.0f;
+    vec.y = -sinX * 38.0f;
+
+    vec.x = sinY * vec.z;
+    vec.z = cosY * vec.z;
+
+    obj2F4->vel.x = vec.x + obj2F4->unk_148;
+    obj2F4->vel.y = vec.y + obj2F4->unk_14C;
+    obj2F4->vel.z = vec.z + obj2F4->unk_144;
+
+    obj2F4->unk_148 -= obj2F4->unk_148 * 0.1f;
+    obj2F4->unk_14C -= obj2F4->unk_14C * 0.1f;
+    obj2F4->unk_144 -= obj2F4->unk_144 * 0.1f;
+
+    if ((obj2F4->obj.pos.y < D_80177940 + 40.0f) && (obj2F4->vel.y < 0.0f)) {
+        obj2F4->obj.pos.y = D_80177940 + 40.0f;
+        obj2F4->vel.y = 0.0f;
+    }
+
+    func_8003088C(obj2F4);
+
+    if (obj2F4->unk_070) {
+        obj2F4->unk_070--;
+    }
+}
+
+void func_800C26C8(void) {
+    s32 i;
+    Vec3f src;
+    Vec3f dest;
+    Object_2F4* obj2F4;
+
+    if ((D_801778AC != 2) || (D_80177E7C == 0)) {
+        return;
+    }
+
+    if (D_80178758 != 0) {
+        D_80178758--;
+    }
+
+    if (D_80178758 == 0) {
+        D_80178758 = 2;
+
+        src.x = 0.0f;
+        src.y = 500.0f;
+        src.z = -10000.0f;
+
+        for (i = 0, obj2F4 = &gObjects2F4[10]; i < 5; i++, obj2F4++) {
+            if (obj2F4->obj.status == 0) {
+                Object_2F4_Initialize(obj2F4);
+                obj2F4->obj.status = 2;
+                obj2F4->obj.id = 197;
+                Matrix_RotateY(gCalcMatrix, M_DTOR * (Rand_ZeroOne() * 360.0f), 0);
+                Matrix_MultVec3fNoTranslate(gCalcMatrix, &src, &dest);
+                obj2F4->obj.pos.x = dest.x;
+                obj2F4->obj.pos.y = dest.y;
+                obj2F4->obj.pos.z = dest.z;
+                obj2F4->unk_0E4 = i + 10;
+                obj2F4->unk_0CE = 24;
+                obj2F4->timer_0C2 = 30;
+
+                Object_SetInfo(&obj2F4->info, obj2F4->obj.id);
+                obj2F4->info.action = (ObjectFunc) func_800C2244;
+                break;
+            }
+        }
+    }
+}
diff --git a/src/main/sf_versus.c b/src/main/sf_versus.c
deleted file mode 100644
index 4b272ed9..00000000
--- a/src/main/sf_versus.c
+++ /dev/null
@@ -1,151 +0,0 @@
-#include "common.h"
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BC760.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BC88C.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BC8D8.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BC9DC.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BCB44.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BCC48.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BCE24.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BCEF8.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BCFFC.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BD05C.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BD0B4.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BD10C.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BD164.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BD1B0.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BD1FC.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BD248.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BD2A0.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BD2F8.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BD350.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BD3A8.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BD4D4.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BD720.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BD76C.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BD7C4.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BD9FC.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BDA54.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BDAA0.s")
-
-void func_800BDE3C(void) {
-}
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BDE44.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BE078.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BE300.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BE564.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BE924.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BECA8.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BED78.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BEDDC.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BEF00.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BEFE4.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BF17C.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BF59C.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BF750.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800BF9AC.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800C024C.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800C0294.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800C04DC.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800C075C.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800C07C4.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800C08D0.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800C0970.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800C0A04.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800C0B0C.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800C0C84.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800C0D10.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800C0E78.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800C107C.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800C1138.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800C1368.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800C15D8.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800C1690.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800C16A0.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800C16D0.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800C1700.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800C176C.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800C1E9C.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800C1ED4.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800C20B0.s")
-
-void func_800C2190(void) {
-}
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800C2198.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800C2244.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/func_800C26C8.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/D_800D9260.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/D_800D9264.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/D_800D926C.s")
-
-#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_versus/D_800D9274.s")
diff --git a/src/main/sys_math.c b/src/main/sys_math.c
index 58f50661..eb8ef6a5 100644
--- a/src/main/sys_math.c
+++ b/src/main/sys_math.c
@@ -1,4 +1,5 @@
 #include "global.h"
+#include "prevent_bss_reordering.h"
 
 s32 sSeededRandSeed3;
 s32 sRandSeed1;
diff --git a/src/overlays/ovl_menu/fox_map.c b/src/overlays/ovl_menu/fox_map.c
index 906d301b..a4e8cc0b 100644
--- a/src/overlays/ovl_menu/fox_map.c
+++ b/src/overlays/ovl_menu/fox_map.c
@@ -1,948 +1,32 @@
+/*
+ * File: fox_map.c
+ * System: Map
+ * Description: Starfox Map Handler
+ */
+
+//#include "prevent_bss_reordering2.h"
 #include "global.h"
 #include "fox_map.h"
 #include "sf64level.h"
 
 //! TODO: IMPORT BSS
 
-typedef struct {
-    /* 0x0 */ f32 angle;
-    /* 0x4 */ f32 x;
-    /* 0x8 */ f32 y;
-    /* 0xC */ f32 scale;
-} ObjPosition;
-
-typedef struct {
-    /* 0x00 */ s32 unk_00;
-    /* 0x04 */ s32 unk_04;
-    /* 0x08 */ s32 unk_08;
-    /* 0x0C */ s32 unk_0C;
-    /* 0x10 */ char pad10[0x4];
-    /* 0x14 */ s32 unk_14;
-    /* 0x18 */ s32 unk_18;
-} UnkStruct_D_EBFBE0_801AFD18; // size = 0x1C
-
-typedef struct {
-    /* 0x00 */ s32 id;
-    /* 0x04 */ f32 unk_04;
-    /* 0x08 */ f32 unk_08;
-    /* 0x0C */ f32 zAngle;
-    /* 0x10 */ f32 posX;
-    /* 0x14 */ f32 posY;
-    /* 0x18 */ f32 posZ;
-    /* 0x1C */ f32 unk_1C;
-    /* 0x20 */ f32 scale;
-    /* 0x24 */ s32 alpha;
-    /* 0x28 */ s32 unk_28;
-    /* 0x2C */ s32 unk_2C;
-    /* 0x30 */ s32 unk_30;
-    /* 0x34 */ s32 unk_34;
-} Planet; // size = 0x38
-
-typedef struct {
-    /* 0x0 */ u8* addr;
-    /* 0x4 */ s32 width;
-    /* 0x8 */ s32 height;
-    /* 0xC */ f32 posX;
-} Texture; // size = 0x10
-
-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[];
+s8 D_EBFBE0_801B9410[96 * 96];
+s8 D_EBFBE0_801BB810[96 * 96];
+s8 D_EBFBE0_801BDC10[96 * 96];
+s8 D_EBFBE0_801C0010[96 * 96];
+s8 D_EBFBE0_801C2410[96 * 96];
+s8 D_EBFBE0_801C4810[96 * 96];
+s8 D_EBFBE0_801C6C10[96 * 96];
+s8 D_EBFBE0_801C9010[96 * 96];
+s8 D_EBFBE0_801CB410[96 * 96];
+s32 D_EBFBE0_801CD810; // PAD
+f32 D_EBFBE0_801CD818[9];
 s32 D_EBFBE0_801CD83C;
 s32 D_EBFBE0_801CD840[24];
 s32 D_EBFBE0_801CD8A0[15];
@@ -1014,12 +98,12 @@ f32 D_EBFBE0_801CDA34;
 f32 D_EBFBE0_801CDA38;
 Vec3f D_EBFBE0_801CDA40;
 Vec3f D_EBFBE0_801CDA50;
-Matrix D_EBFBE0_801CDA60[];
+Matrix D_EBFBE0_801CDA60[15];
 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
+Matrix D_EBFBE0_801CE5A0[15];
+Vec3f D_EBFBE0_801CE960[15]; // sPlanetsPositions
 f32 D_EBFBE0_801CEA54;
 f32 D_EBFBE0_801CEA64;
 f32 D_EBFBE0_801CEA68;
@@ -1029,7 +113,7 @@ f32 D_EBFBE0_801CEAA8;
 f32 D_EBFBE0_801CEAAC;
 f32 D_EBFBE0_801CEAB0;
 s32 D_EBFBE0_801CEAB4;
-f32 D_EBFBE0_801CEA18[];
+f32 D_EBFBE0_801CEA18[15];
 f32 D_EBFBE0_801CEA58;
 f32 D_EBFBE0_801CEA5C;
 f32 D_EBFBE0_801CEA60;
@@ -1046,8 +130,8 @@ f32 D_EBFBE0_801CEA90;
 f32 D_EBFBE0_801CEA94;
 s32 D_EBFBE0_801CEA98;
 f32 D_EBFBE0_801CEA9C;
-f32 D_EBFBE0_801CEAB8[];
-f32 D_EBFBE0_801CEAF8[];
+f32 D_EBFBE0_801CEAB8[15];
+f32 D_EBFBE0_801CEAF8[15];
 s32 D_EBFBE0_801CEB34;
 s32 D_EBFBE0_801CEB38;
 f32 D_EBFBE0_801CEB3C;
@@ -1094,7 +178,7 @@ f32 D_EBFBE0_801CEFE0;
 f32 D_EBFBE0_801CEFE8[3];
 f32 D_EBFBE0_801CEFF4;
 f32 D_EBFBE0_801CEFF8;
-s32 D_EBFBE0_801CF000[];
+s32 D_EBFBE0_801CF000[3];
 s32 D_EBFBE0_801CF00C;
 s32 D_EBFBE0_801CF010;
 s32 D_EBFBE0_801CF014;
@@ -1220,8 +304,8 @@ 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 f32 D_EBFBE0_801CEAB8[15];
+extern f32 D_EBFBE0_801CEAF8[15];
 extern s32 D_EBFBE0_801CEB34;
 extern s32 D_EBFBE0_801CEB38;
 extern f32 D_EBFBE0_801CEB3C;
@@ -1291,6 +375,792 @@ extern f32 D_EBFBE0_801CF124;
 
 #endif
 
+s32 D_EBFBE0_801AF420[2] = { 10, 20 };
+
+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,
+};
+
+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
+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,
+};
+
+Gfx* D_EBFBE0_801AF824[4] = { D_604A710, D_604A400, D_604A190, D_6049F80 };
+
+Texture D_EBFBE0_801AF834[14] = {
+    { D_6007B90, 128, 28, 95.0f }, { D_60030D0, 96, 28, 110.0f },  { D_60131A0, 176, 12, 73.0f },
+    { D_6009AD0, 168, 28, 77.0f }, { D_600B9B0, 168, 28, 74.0f },  { D_6001C80, 96, 13, 106.0f },
+    { D_6011660, 176, 12, 75.0f }, { D_6010010, 112, 13, 109.0f }, { D_6017640, 112, 28, 101.0f },
+    { D_6015CE0, 96, 28, 108.0f }, { D_600E210, 160, 28, 78.0f },  { D_6014360, 176, 12, 73.0f },
+    { D_6004AC0, 168, 19, 72.0f }, { D_6006320, 104, 28, 105.0f },
+};
+
+Texture D_EBFBE0_801AF914[] = {
+    { D_6008990, 232, 19, 46.0f }, { D_6003B50, 208, 19, 56.0f }, { D_60139E0, 128, 19, 98.0f },
+    { D_600AD30, 168, 19, 77.0f }, { D_600CC10, 128, 19, 95.0f }, { D_6002160, 208, 19, 57.0f },
+    { D_6011EA0, 256, 19, 40.0f }, { D_60105C0, 224, 19, 49.0f }, { D_6018280, 184, 19, 70.0f },
+    { D_6016760, 200, 18, 61.0f }, { D_600F390, 168, 19, 75.0f }, { D_6014BA0, 232, 19, 43.0f },
+    { D_6005740, 160, 19, 81.0f }, { D_6006E80, 176, 19, 70.0f },
+};
+
+char* sPlanetNames[] = {
+    "ME", "A6", "BO", "SZ", "SX", "SY", "KA", "MA", "ZO", "CO", "TI", "AQ", "FO", "VE", "SO",
+};
+
+Gfx* D_EBFBE0_801AFA30[2] = {
+    D_6055F20,
+    D_6051D20,
+};
+
+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 },
+};
+
+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 },
+};
+
+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 },
+};
+
+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,
+};
+
+f32 D_EBFBE0_801AFFF4 = 0.0f; // yRot of something
+f32 D_EBFBE0_801AFFF8 = 0.0f; // xRot of something
+f32 D_EBFBE0_801AFFFC = 0.0f; // yRot of something
+f32 D_EBFBE0_801B0000 = 0.0f; // xRot of something
+
+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
+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 },
+    };
+
+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(&D_EBFBE0_801B9410[96 * 8 * 1], 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(&D_EBFBE0_801B9410[96 * 8 * 2], 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(&D_EBFBE0_801B9410[96 * 8 * 3], 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(&D_EBFBE0_801B4740[16], 16, 0),
+    gsDPLoadTextureBlock(&D_EBFBE0_801B9410[96 * 8 * 4], 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(&D_EBFBE0_801B9410[96 * 8 * 5], 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(&D_EBFBE0_801B9410[96 * 8 * 6], 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(&D_EBFBE0_801B9410[96 * 8 * 7], 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(&D_EBFBE0_801B4740[32], 16, 0),
+    gsDPLoadTextureBlock(&D_EBFBE0_801B9410[96 * 8 * 8], 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(&D_EBFBE0_801B9410[96 * 8 * 9], 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(&D_EBFBE0_801B9410[96 * 8 * 10], 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(&D_EBFBE0_801B9410[96 * 8 * 11], 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(D_6026C90),
+    gsSPVertex(D_EBFBE0_801B4740, 16, 0),
+    gsDPLoadTextureBlock(D_EBFBE0_801BB810, 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(&D_EBFBE0_801BB810[96 * 8 * 1], 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(&D_EBFBE0_801BB810[96 * 8 * 2], 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(&D_EBFBE0_801BB810[96 * 8 * 3], 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(&D_EBFBE0_801B4740[16], 16, 0),
+    gsDPLoadTextureBlock(&D_EBFBE0_801BB810[96 * 8 * 4], 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(&D_EBFBE0_801BB810[96 * 8 * 5], 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(&D_EBFBE0_801BB810[96 * 8 * 6], 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(&D_EBFBE0_801BB810[96 * 8 * 7], 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(&D_EBFBE0_801B4740[32], 16, 0),
+    gsDPLoadTextureBlock(&D_EBFBE0_801BB810[96 * 8 * 8], 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(&D_EBFBE0_801BB810[96 * 8 * 9], 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(&D_EBFBE0_801BB810[96 * 8 * 10], 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(&D_EBFBE0_801BB810[96 * 8 * 11], 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(D_6029170),
+    gsSPVertex(D_EBFBE0_801B4740, 16, 0),
+    gsDPLoadTextureBlock(&D_EBFBE0_801BDC10, 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(&D_EBFBE0_801BDC10[96 * 8 * 1], 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(&D_EBFBE0_801BDC10[96 * 8 * 2], 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(&D_EBFBE0_801BDC10[96 * 8 * 3], 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(&D_EBFBE0_801B4740[16], 16, 0),
+    gsDPLoadTextureBlock(&D_EBFBE0_801BDC10[96 * 8 * 4], 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(&D_EBFBE0_801BDC10[96 * 8 * 5], 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(&D_EBFBE0_801BDC10[96 * 8 * 6], 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(&D_EBFBE0_801BDC10[96 * 8 * 7], 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(&D_EBFBE0_801B4740[32], 16, 0),
+    gsDPLoadTextureBlock(&D_EBFBE0_801BDC10[96 * 8 * 8], 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(&D_EBFBE0_801BDC10[96 * 8 * 9], 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(&D_EBFBE0_801BDC10[96 * 8 * 10], 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(&D_EBFBE0_801BDC10[96 * 8 * 11], 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(D_6022340),
+    gsSPVertex(D_EBFBE0_801B4740, 16, 0),
+    gsDPLoadTextureBlock(D_EBFBE0_801C0010, 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(&D_EBFBE0_801C0010[96 * 8 * 1], 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(&D_EBFBE0_801C0010[96 * 8 * 2], 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(&D_EBFBE0_801C0010[96 * 8 * 3], 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(&D_EBFBE0_801B4740[16], 16, 0),
+    gsDPLoadTextureBlock(&D_EBFBE0_801C0010[96 * 8 * 4], 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(&D_EBFBE0_801C0010[96 * 8 * 5], 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(&D_EBFBE0_801C0010[96 * 8 * 6], 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(&D_EBFBE0_801C0010[96 * 8 * 7], 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(&D_EBFBE0_801B4740[32], 16, 0),
+    gsDPLoadTextureBlock(&D_EBFBE0_801C0010[96 * 8 * 8], 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(&D_EBFBE0_801C0010[96 * 8 * 9], 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(&D_EBFBE0_801C0010[96 * 8 * 10], 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(&D_EBFBE0_801C0010[96 * 8 * 11], 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(D_60247E0),
+    gsSPVertex(D_EBFBE0_801B4740, 16, 0),
+    gsDPLoadTextureBlock(D_EBFBE0_801C2410, 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(&D_EBFBE0_801C2410[96 * 8 * 1], 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(&D_EBFBE0_801C2410[96 * 8 * 2], 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(&D_EBFBE0_801C2410[96 * 8 * 3], 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(&D_EBFBE0_801B4740[16], 16, 0),
+    gsDPLoadTextureBlock(&D_EBFBE0_801C2410[96 * 8 * 4], 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(&D_EBFBE0_801C2410[96 * 8 * 5], 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(&D_EBFBE0_801C2410[96 * 8 * 6], 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(&D_EBFBE0_801C2410[96 * 8 * 7], 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(&D_EBFBE0_801B4740[32], 16, 0),
+    gsDPLoadTextureBlock(&D_EBFBE0_801C2410[96 * 8 * 8], 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(&D_EBFBE0_801C2410[96 * 8 * 9], 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(&D_EBFBE0_801C2410[96 * 8 * 10], 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(&D_EBFBE0_801C2410[96 * 8 * 11], 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(D_602FF60),
+    gsSPVertex(D_EBFBE0_801B4740, 16, 0),
+    gsDPLoadTextureBlock(D_EBFBE0_801C4810, 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(&D_EBFBE0_801C4810[96 * 8 * 1], 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(&D_EBFBE0_801C4810[96 * 8 * 2], 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(&D_EBFBE0_801C4810[96 * 8 * 3], 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(&D_EBFBE0_801B4740[16], 16, 0),
+    gsDPLoadTextureBlock(&D_EBFBE0_801C4810[96 * 8 * 4], 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(&D_EBFBE0_801C4810[96 * 8 * 5], 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(&D_EBFBE0_801C4810[96 * 8 * 6], 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(&D_EBFBE0_801C4810[96 * 8 * 7], 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(&D_EBFBE0_801B4740[32], 16, 0),
+    gsDPLoadTextureBlock(&D_EBFBE0_801C4810[96 * 8 * 8], 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(&D_EBFBE0_801C4810[96 * 8 * 9], 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(&D_EBFBE0_801C4810[96 * 8 * 10], 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(&D_EBFBE0_801C4810[96 * 8 * 11], 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(D_602B620),
+    gsSPVertex(D_EBFBE0_801B4740, 16, 0),
+    gsDPLoadTextureBlock(D_EBFBE0_801C6C10, 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(&D_EBFBE0_801C6C10[96 * 8 * 1], 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(&D_EBFBE0_801C6C10[96 * 8 * 2], 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(&D_EBFBE0_801C6C10[96 * 8 * 3], 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(&D_EBFBE0_801B4740[16], 16, 0),
+    gsDPLoadTextureBlock(&D_EBFBE0_801C6C10[96 * 8 * 4], 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(&D_EBFBE0_801C6C10[96 * 8 * 5], 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(&D_EBFBE0_801C6C10[96 * 8 * 6], 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(&D_EBFBE0_801C6C10[96 * 8 * 7], 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(&D_EBFBE0_801B4740[32], 16, 0),
+    gsDPLoadTextureBlock(&D_EBFBE0_801C6C10[96 * 8 * 8], 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(&D_EBFBE0_801C6C10[96 * 8 * 9], 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(&D_EBFBE0_801C6C10[96 * 8 * 10], 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(&D_EBFBE0_801C6C10[96 * 8 * 11], 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(D_602DAD0),
+    gsSPVertex(D_EBFBE0_801B4740, 16, 0),
+    gsDPLoadTextureBlock(D_EBFBE0_801C9010, 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(&D_EBFBE0_801C9010[96 * 8 * 1], 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(&D_EBFBE0_801C9010[96 * 8 * 2], 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(&D_EBFBE0_801C9010[96 * 8 * 3], 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(&D_EBFBE0_801B4740[16], 16, 0),
+    gsDPLoadTextureBlock(&D_EBFBE0_801C9010[96 * 8 * 4], 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(&D_EBFBE0_801C9010[96 * 8 * 5], 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(&D_EBFBE0_801C9010[96 * 8 * 6], 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(&D_EBFBE0_801C9010[96 * 8 * 7], 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(&D_EBFBE0_801B4740[32], 16, 0),
+    gsDPLoadTextureBlock(&D_EBFBE0_801C9010[96 * 8 * 8], 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(&D_EBFBE0_801C9010[96 * 8 * 9], 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(&D_EBFBE0_801C9010[96 * 8 * 10], 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(&D_EBFBE0_801C9010[96 * 8 * 11], 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(D_60323D0),
+    gsSPVertex(D_EBFBE0_801B4740, 16, 0),
+    gsDPLoadTextureBlock(D_EBFBE0_801CB410, 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(D_EBFBE0_801CB410 + (96 * 8 * 1), 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(D_EBFBE0_801CB410 + (96 * 8 * 2), 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(D_EBFBE0_801CB410 + (96 * 8 * 3), 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(&D_EBFBE0_801B4740[16], 16, 0),
+    gsDPLoadTextureBlock(D_EBFBE0_801CB410 + (96 * 8 * 4), 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(D_EBFBE0_801CB410 + (96 * 8 * 5), 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(D_EBFBE0_801CB410 + (96 * 8 * 6), 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(D_EBFBE0_801CB410 + (96 * 8 * 7), 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(&D_EBFBE0_801B4740[32], 16, 0),
+    gsDPLoadTextureBlock(D_EBFBE0_801CB410 + (96 * 8 * 8), 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(D_EBFBE0_801CB410 + (96 * 8 * 9), 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(D_EBFBE0_801CB410 + (96 * 8 * 10), 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(D_EBFBE0_801CB410 + (96 * 8 * 11), 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,
+};
+
+u8* D_EBFBE0_801B68D4[] = {
+    D_6029220, D_602B6D0, D_602FFD0, D_6024890, D_602DB60, D_601FF40, D_6026D70, D_60223E0, D_60190B0,
+};
+
+Gfx* D_EBFBE0_801B68F8[] = {
+    D_6060610,         D_601DE80,         D_604B750,         D_601F6B0,         D_601C0D0,
+    D_601C960,         D_EBFBE0_801B5E78, D_EBFBE0_801B61E0, D_EBFBE0_801B6548, D_EBFBE0_801B4D70,
+    D_EBFBE0_801B5B10, D_EBFBE0_801B5440, D_EBFBE0_801B50D8, D_EBFBE0_801B57A8, D_604DB10,
+};
+
 extern u8 D_5000500[];
 
 extern u8 D_6000840[];
@@ -2369,8 +2239,7 @@ void func_EBFBE0_801A0D14(void) {
     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,
+        D_6041A80, D_6035780, D_6033080, D_603A580, D_603F380, D_6037E80, D_603CC80,
     };
 
     func_EBFBE0_801A116C();
@@ -2492,17 +2361,17 @@ void func_EBFBE0_801A116C(void) {
     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 };
+f32 D_EBFBE0_801B6974[8] = { -248.0f, -76.0f, 84.0f, 248.0f, -242.0f, -79.0f, 82.0f, 245.0f };
+f32 D_EBFBE0_801B6994[8] = { 80.0f, 80.0f, 80.0f, 80.0f, -30.0f, -30.0f, -30.0f, -30.0f };
+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 };
+f32 D_EBFBE0_801B69D4[8] = { -248.0f, -76.0f, 84.0f, 248.0f, -242.0f, -79.0f, 82.0f, 245.0f };
+f32 D_EBFBE0_801B69F4[8] = { 80.0f, 80.0f, 80.0f, 80.0f, -30.0f, -30.0f, -30.0f, -30.0f };
+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 };
+f32* D_EBFBE0_801B6A34[2] = { D_EBFBE0_801B69D4, D_EBFBE0_801B6974 };
+f32* D_EBFBE0_801B6A3C[2] = { D_EBFBE0_801B69F4, D_EBFBE0_801B6994 };
+f32* D_EBFBE0_801B6A44[2] = { D_EBFBE0_801B6A14, D_EBFBE0_801B69B4 };
 
 void func_EBFBE0_801A1528(void) {
     PlanetId planetId;
@@ -3628,8 +3497,7 @@ void func_EBFBE0_801A4394(void) {
 void func_EBFBE0_801A4650(void) {
     s32 i;
     static Gfx* D_EBFBE0_801B6A4C[] = {
-        (Gfx*) 0x09006AE0, (Gfx*) 0x090086F0, (Gfx*) 0x09005380, (Gfx*) 0x090075A0,
-        (Gfx*) 0x09000570, (Gfx*) 0x09002EA0, (Gfx*) 0x090075A0, (Gfx*) 0x09004230,
+        D_9006AE0, D_90086F0, D_9005380, D_90075A0, D_9000570, D_9002EA0, D_90075A0, D_9004230,
     };
 
     Lights_SetOneLight(&gMasterDisp, 0, 0, 127, 28, 58, 105, 65, 70, 48);
@@ -6169,11 +6037,7 @@ void func_EBFBE0_801AB978(s32 arg0) {
     f32 yPos;
     s32 sp90[3];
     static f32 D_EBFBE0_801B6B0C[3] = { 205.0f, 237.0f, 269.0f };
-    static u16* D_EBFBE0_801B6B18[3] = {
-        (u16*) 0x06032A60,
-        (u16*) 0x06044180,
-        (u16*) 0x06032440,
-    };
+    static u16* D_EBFBE0_801B6B18[3] = { D_6032A60, D_6044180, D_6032440 };
 
     switch (arg0) {
         case 10:
@@ -6521,7 +6385,7 @@ void func_EBFBE0_801AC80C(s32 arg0) {
     D_EBFBE0_801B6B30 -= 45.0f;
 }
 
-static u32 padding_801B6B34[3] = { 0, 0, 0 };
+u32 padding_801B6B34[3] = { 0, 0, 0 };
 
 UnkStruct_D_EBFBE0_801B8294 D_EBFBE0_801B6B40[] = {
     {
diff --git a/src/overlays/ovl_menu/fox_map.h b/src/overlays/ovl_menu/fox_map.h
deleted file mode 100644
index 0ba217d8..00000000
--- a/src/overlays/ovl_menu/fox_map.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef FOX_MAP_H
-#define FOX_MAP_H
-
-typedef enum PlanetId {
-    /* 0 */ PLANET_METEO,
-    /* 1 */ PLANET_AREA_6,
-    /* 2 */ PLANET_BOLSE,
-    /* 3 */ PLANET_SECTOR_Z,
-    /* 4 */ PLANET_SECTOR_X,
-    /* 5 */ PLANET_SECTOR_Y,
-    /* 6 */ PLANET_KATINA,
-    /* 7 */ PLANET_MACBETH,
-    /* 8 */ PLANET_ZONESS,
-    /* 9 */ PLANET_CORNERIA,
-    /* 10 */ PLANET_TITANIA,
-    /* 11 */ PLANET_AQUAS,
-    /* 12 */ PLANET_FORTUNA,
-    /* 13 */ PLANET_VENOM,
-    /* 14 */ PLANET_SOLAR,
-    /* 15 */ PLANET_MAX,
-} PlanetId;
-
-#endif
diff --git a/src/overlays/ovl_menu/fox_option.c b/src/overlays/ovl_menu/fox_option.c
index bef0b6b2..49efe699 100644
--- a/src/overlays/ovl_menu/fox_option.c
+++ b/src/overlays/ovl_menu/fox_option.c
@@ -1,3 +1,9 @@
+/*
+ * File: fox_option.c
+ * System: Option
+ * Description: Starfox Option Menu Handler
+ */
+
 #include "global.h"
 #include "fox_option.h"
 
@@ -21,14 +27,11 @@ static f32 D_EBFBE0_801AE588[] = { 124.0f, 118.0f, 145.0f, 125.0f, 133.0f, 118.0
 static f32 D_EBFBE0_801AE5A0[] = { 54.0f, 78.0f, 103.0f, 126.0f, 151.0f, 175.0f };
 static f32 D_EBFBE0_801AE5B8[] = { 124.0f, 118.0f, 145.0f, 125.0f, 133.0f, 118.0f };
 static f32 D_EBFBE0_801AE5D0[] = { 54.0f, 78.0f, 103.0f, 126.0f, 151.0f, 175.0f };
-
 static f32 D_EBFBE0_801AE5E8[] = { 124.0f, 125.0f };
 static f32 D_EBFBE0_801AE5F0[] = { 54.0f, 55.0f };
 static f32 D_EBFBE0_801AE5F8[] = { 133.0f, 125.0f };
 static f32 D_EBFBE0_801AE600[] = { 151.0f, 151.0f };
-
 static f32 D_EBFBE0_801AE608[] = { 8.0f, 8.0f, 8.0f, 8.0f, 8.0f, 8.0f };
-
 static f32 D_EBFBE0_801AE620[] = { 1.9f, 2.4f, 0.9f, 1.9f, 1.8f, 2.4f };
 
 static MenuContext D_EBFBE0_801AE638[6] = {
@@ -3210,10 +3213,17 @@ void func_EBFBE0_8019AB30(void) {
 // extern f32 D_EBFBE0_801B9338; // in-function
 // needs in function static
 #if defined(IMPORT_BSS) || defined(NON_MATCHING)
+#ifndef IMPORT_BSS
+extern f32 D_EBFBE0_801B9324;
+extern f32 D_EBFBE0_801B9328;
+extern f32 D_EBFBE0_801B9338;
+#endif
 void func_EBFBE0_8019AD84(void) {
+#ifdef IMPORT_BSS
     static f32 D_EBFBE0_801B9324;
     static f32 D_EBFBE0_801B9328;
     static f32 D_EBFBE0_801B9338;
+#endif
     s32 pad[2];
     s32 colorGB;
     s32 var_v0;
@@ -3277,12 +3287,19 @@ static u8* D_EBFBE0_801AF28C[] = {
 
 // needs in-function static data & bss
 #if defined(IMPORT_BSS) || defined(NON_MATCHING)
+#ifndef IMPORT_BSS
+extern f32 D_EBFBE0_801B93C0;
+extern f32 D_EBFBE0_801B93C8;
+extern f32 D_EBFBE0_801B93CC;
+#endif
 void func_EBFBE0_8019AFFC(void) {
     static f32 D_EBFBE0_801AF2A0 = 101.0f;
     static f32 D_EBFBE0_801AF2A4 = 86.0f;
+#ifdef IMPORT_BSS
     static f32 D_EBFBE0_801B93C0;
     static f32 D_EBFBE0_801B93C8;
     static f32 D_EBFBE0_801B93CC;
+#endif
     s32 var_v0;
     s32 colorGB;
 
diff --git a/src/overlays/ovl_menu/fox_title.c b/src/overlays/ovl_menu/fox_title.c
index 2774e95e..86b608a6 100644
--- a/src/overlays/ovl_menu/fox_title.c
+++ b/src/overlays/ovl_menu/fox_title.c
@@ -1,3 +1,9 @@
+/*
+ * File: fox_title.c
+ * System: Title
+ * Description: Starfox Title Handler
+ */
+
 #include "global.h"
 #include "fox_title.h"
 
diff --git a/src/overlays/ovl_menu/fox_title.h b/src/overlays/ovl_menu/fox_title.h
index a612271a..7163dbda 100644
--- a/src/overlays/ovl_menu/fox_title.h
+++ b/src/overlays/ovl_menu/fox_title.h
@@ -73,8 +73,6 @@ typedef struct {
     /* 0x10 */ f32 scale;
 } UnkStruct_D_EBFBE0_801B8688; // size = 0x14
 
-extern char D_EBFBE0_801ADA44[];
-extern s32 D_EBFBE0_801ADA84[];
 extern UnkStruct_D_EBFBE0_801B8294 D_EBFBE0_801B6B40[];
 extern UnkStruct_D_EBFBE0_801B8294 D_EBFBE0_801B6C60[];
 extern f32 D_EBFBE0_801B7BB0;
diff --git a/tools/global_bss_check.py b/tools/global_bss_check.py
old mode 100644
new mode 100755
diff --git a/yamls/us/main.yaml b/yamls/us/main.yaml
index 9f065b97..c7559272 100644
--- a/yamls/us/main.yaml
+++ b/yamls/us/main.yaml
@@ -195,7 +195,7 @@
       - [0xB99D0, c, fox_rcp]
       - [0xBB360, c, fox_radio]
       - [0xBD0B0, c, fox_reset]
-      - [0xBD360, c, sf_versus]
+      - [0xBD360, c, fox_versus]
       - [0xC3430, c, fox_message]
       - [0xC3BB0, c, fox_save]
 
@@ -284,7 +284,7 @@
       - [0xD3DB0, .data, fox_rcp]
       - [0xD5670, .data, fox_radio]
       - [0xD5680, .data, fox_reset]
-      - [0xD5690, data, sf_versus]
+      - [0xD5690, .data, fox_versus]
       - [0xD5910, .data, fox_save]
 
       # RODATA - game engine
@@ -309,7 +309,7 @@
       - [0xD8EE0, .rodata, fox_A48A0]
       - [0xD8EF0, .rodata, fox_play]
       - [0xD97F0, .rodata, fox_radio]
-      - [0xD9E50, .rodata, sf_versus]
+      - [0xD9E50, .rodata, fox_versus]
       - [0xD9F60, .rodata, fox_message]
       - [0xDA030, .rodata, fox_save]
 
@@ -371,7 +371,7 @@
       - { start: 0xDE480, type: bss, vram: 0x80161A50, name: fox_play }
       - { start: 0xDE480, type: .bss, vram: 0x80178580, name: fox_rcp }
       - { start: 0xDE480, type: .bss, vram: 0x80178720, name: fox_radio }
-      - { start: 0xDE480, type: bss, vram: 0x80178750, name: sf_versus }
+      - { start: 0xDE480, type: .bss, vram: 0x80178750, name: fox_versus }
       - { start: 0xDE480, type: .bss, vram: 0x80178870, name: fox_save }
 
   - name: dma_table