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