Area 6 decomp, Object_408 -> boss, more overlay symbols in main (#70)

* 408

* more stuff

* brutal matches

* data and such

* gPlayer

* names and boss and such

* cat

* forgot something
This commit is contained in:
petrie911
2024-01-06 19:39:23 -03:00
committed by GitHub
parent c36c713da5
commit a0ec7a5516
35 changed files with 4997 additions and 1818 deletions
+335 -34
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -16,8 +16,8 @@
#define GDL(dl) gSPDisplayList(gMasterDisp++, dl) // 06000000 dl
#define GPC(r, g, b, a) gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, r, g, b, a) // FA000000 RRGGBBAA
#define GEC(r, g, b, a) gDPSetEnvColor(gMasterDisp++, r, g, b, a) // FB000000 RRGGBBAA
#define GSGM_BACK(mode) gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK) // B7000000 00002000, most common geometry mode changed
#define GCGM_BACK(mode) gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK) // B6000000 00002000
#define GSGM_BACK() gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK) // B7000000 00002000, most common geometry mode changed
#define GCGM_BACK() gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK) // B6000000 00002000
#define gSPSetOtherModeHi(pkt, settings) gSPSetOtherMode(pkt, G_SETOTHERMODE_H, G_MDSFT_BLENDMASK, 24, settings)
#define gsSPSetOtherModeHi(settings) gsSPSetOtherMode(G_SETOTHERMODE_H, G_MDSFT_BLENDMASK, 24, settings)
+83
View File
@@ -0,0 +1,83 @@
#ifndef PREVENT_BSS_REORDERING_H
#define PREVENT_BSS_REORDERING_H
/**
* To determine variable order for .bss, the compiler sorts variables by their
* "name index" mod 256, where name index is something that, with -g, gets
* incremented by struct and variable declarations, typedefs, and file markers,
* among else. (Without -g, only variable declarations affects the index.)
* This file contains enough dummy declarations to bump the index by 128.
* Including it, or removing the include, should fix bss reordering problems
* for a file, assuming the name index distance between its first and last bss
* variable is at most 128.
* Note that if a variable is declared "extern" within a header file, the name
* index is taken at that point of the extern declaration. Thus, this include
* must come before any such header.
*/
struct Dummy0 { int x; };
struct Dummy1 { int x; };
struct Dummy2 { int x; };
struct Dummy3 { int x; };
struct Dummy4 { int x; };
struct Dummy5 { int x; };
struct Dummy6 { int x; };
struct Dummy7 { int x; };
struct Dummy8 { int x; };
struct Dummy9 { int x; };
struct Dummy10 { int x; };
struct Dummy11 { int x; };
struct Dummy12 { int x; };
struct Dummy13 { int x; };
struct Dummy14 { int x; };
struct Dummy15 { int x; };
struct Dummy16 { int x; };
struct Dummy17 { int x; };
struct Dummy18 { int x; };
struct Dummy19 { int x; };
struct Dummy20 { int x; };
struct Dummy21 { int x; };
struct Dummy22 { int x; };
struct Dummy23 { int x; };
struct Dummy24 { int x; };
struct Dummy25 { int x; };
struct Dummy26 { int x; };
struct Dummy27 { int x; };
struct Dummy28 { int x; };
struct Dummy29 { int x; };
struct Dummy30 { int x; };
struct Dummy31 { int x; };
struct Dummy32 { int x; };
struct Dummy33 { int x; };
struct Dummy34 { int x; };
struct Dummy35 { int x; };
struct Dummy36 { int x; };
struct Dummy37 { int x; };
struct Dummy38 { int x; };
struct Dummy39 { int x; };
struct Dummy40 { int x; };
struct Dummy41 { int x; };
struct Dummy42 { int x; };
struct Dummy43 { int x; };
struct Dummy44 { int x; };
struct Dummy45 { int x; };
struct Dummy46 { int x; };
struct Dummy47 { int x; };
struct Dummy48 { int x; };
struct Dummy49 { int x; };
struct Dummy50 { int x; };
struct Dummy51 { int x; };
struct Dummy52 { int x; };
struct Dummy53 { int x; };
struct Dummy54 { int x; };
struct Dummy55 { int x; };
struct Dummy56 { int x; };
struct Dummy57 { int x; };
struct Dummy58 { int x; };
struct Dummy59 { int x; };
struct Dummy60 { int x; };
struct Dummy61 { int x; };
struct Dummy62 { int x; };
typedef int Dummy63;
#endif
+43 -76
View File
@@ -47,12 +47,12 @@ typedef enum {
/* 1 */ COL1_1, // OBJ_80_39
/* 2 */ COL1_2,
/* 3 */ COL1_3, // OBJ_UNK_1000
/* 4 */ COL1_4, // OBJ_408_308
/* 4 */ COL1_4, // OBJ_BOSS_308
/* 5 */ COL1_5, // OBJ_80_149
/* 6 */ COL1_6, // OBJ_80_150
/* 7 */ COL1_7, // OBJ_408_309
/* 8 */ COL1_8, // OBJ_408_313
/* 9 */ COL1_9, // OBJ_408_312
/* 7 */ COL1_7, // OBJ_BOSS_309
/* 8 */ COL1_8, // OBJ_BOSS_313
/* 9 */ COL1_9, // OBJ_BOSS_312
} CollisonId_1;
typedef enum {
@@ -217,55 +217,22 @@ typedef struct {
/* 0x05A */ s16 timer_05A;
/* 0x05C */ s16 timer_05C;
/* 0x05E */ u8 unk_05E;
/* 0x05F */ char pad5F[3];
/* 0x060 */ s16 unk_060;
/* 0x062 */ s8 unk_062;
/* 0x063 */ char pad63[1];
/* 0x064 */ s16 unk_064;
/* 0x066 */ s16 unk_066;
/* 0x068 */ f32 unk_068;
/* 0x06C */ Vec3f vel;
/* 0x078 */ char pad78[0xC];
/* 0x06C */ Vec3f vel;
/* 0x078 */ f32 unk_078;
/* 0x07C */ f32 unk_07C;
/* 0x080 */ char pad80[4];
/* 0x084 */ f32 gravity;
/* 0x088 */ s16 unk_088;
/* 0x08A */ s16 unk_08A;
/* 0x08C */ char pad8C[6];
/* 0x092 */ u16 unk_092;
/* 0x094 */ char pad94[0x12];
/* 0x0A6 */ s16 unk_0A6;
/* 0x0A8 */ char padA8[6];
/* 0x0AE */ s16 unk_0AE;
/* 0x0B0 */ char padB0[0x16];
/* 0x0C6 */ u16 unk_0C6;
/* 0x0C8 */ char padC8[1];
/* 0x0C9 */ u8 unk_0C9;
/* 0x0CA */ char padCA[6];
/* 0x0D0 */ s16 unk_0D0;
/* 0x0D2 */ char padD2[4];
/* 0x0D6 */ s16 unk_0D6;
/* 0x0D8 */ char padD8[4];
/* 0x0DC */ f32 unk_0DC;
/* 0x0E0 */ f32 unk_0E0;
/* 0x0E4 */ f32 unk_0E4;
/* 0x0E8 */ f32 unk_0E8;
/* 0x0EC */ f32 unk_0EC;
/* 0x0F0 */ f32 unk_0F0;
/* 0x0F4 */ f32 unk_0F4;
/* 0x0F8 */ f32 unk_0F8;
/* 0x0FC */ f32 unk_0FC;
/* 0x100 */ Vec3f unk_100;
/* 0x10C */ char pad10C[4];
/* 0x110 */ f32 unk_110;
/* 0x114 */ f32 unk_114;
/* 0x118 */ char pad118[0x7C];
/* 0x194 */ f32 unk_194;
/* 0x198 */ f32 unk_198;
/* 0x19C */ f32 unk_19C;
/* 0x1A0 */ char pad1A0[0x168];
/* 0x308 */ Vec3f unk_308;
/* 0x314 */ char pad314[0xE4];
/* 0x088 */ s16 swork[40];
/* 0x0D8 */ f32 fwork[50];
/* 0x1A0 */ Vec3f vwork[50];
/* 0x3F8 */ f32 unk_3F8;
/* 0x3FC */ Vec3f sfxPos;
} Object_408; // size = 0x408
} Boss; // size = 0x408
typedef struct {
/* 0x000 */ Object obj;
@@ -652,36 +619,36 @@ typedef enum{
/* 289 */ OBJ_2F4_289,
/* 290 */ OBJ_2F4_290,
/* 291 */ OBJ_2F4_291,
/* 292 */ OBJ_408_292,
/* 293 */ OBJ_408_293,
/* 294 */ OBJ_408_294,
/* 295 */ OBJ_408_295,
/* 296 */ OBJ_408_296,
/* 297 */ OBJ_408_297,
/* 298 */ OBJ_408_298,
/* 299 */ OBJ_408_299,
/* 300 */ OBJ_408_300,
/* 301 */ OBJ_408_301,
/* 302 */ OBJ_408_302,
/* 303 */ OBJ_408_303,
/* 304 */ OBJ_408_304,
/* 305 */ OBJ_408_305,
/* 306 */ OBJ_408_306,
/* 307 */ OBJ_408_307,
/* 308 */ OBJ_408_308,
/* 309 */ OBJ_408_309,
/* 310 */ OBJ_408_310,
/* 311 */ OBJ_408_311,
/* 312 */ OBJ_408_312,
/* 313 */ OBJ_408_313,
/* 314 */ OBJ_408_314,
/* 315 */ OBJ_408_315,
/* 316 */ OBJ_408_316,
/* 317 */ OBJ_408_317,
/* 318 */ OBJ_408_318,
/* 319 */ OBJ_408_319,
/* 320 */ OBJ_408_320,
/* 321 */ OBJ_408_321,
/* 292 */ OBJ_BOSS_292,
/* 293 */ OBJ_BOSS_293,
/* 294 */ OBJ_BOSS_294,
/* 295 */ OBJ_BOSS_295,
/* 296 */ OBJ_BOSS_296,
/* 297 */ OBJ_BOSS_297,
/* 298 */ OBJ_BOSS_298,
/* 299 */ OBJ_BOSS_299,
/* 300 */ OBJ_BOSS_300,
/* 301 */ OBJ_BOSS_301,
/* 302 */ OBJ_BOSS_A6,
/* 303 */ OBJ_BOSS_303,
/* 304 */ OBJ_BOSS_304,
/* 305 */ OBJ_BOSS_305,
/* 306 */ OBJ_BOSS_306,
/* 307 */ OBJ_BOSS_ZO,
/* 308 */ OBJ_BOSS_308,
/* 309 */ OBJ_BOSS_309,
/* 310 */ OBJ_BOSS_310,
/* 311 */ OBJ_BOSS_311,
/* 312 */ OBJ_BOSS_312,
/* 313 */ OBJ_BOSS_313,
/* 314 */ OBJ_BOSS_314,
/* 315 */ OBJ_BOSS_SO,
/* 316 */ OBJ_BOSS_316,
/* 317 */ OBJ_BOSS_317,
/* 318 */ OBJ_BOSS_AQ,
/* 319 */ OBJ_BOSS_319,
/* 320 */ OBJ_BOSS_320,
/* 321 */ OBJ_BOSS_321,
/* 322 */ OBJ_ITEM_LASERS,
/* 323 */ OBJ_ITEM_CHECKPOINT,
/* 324 */ OBJ_ITEM_SILVER_RING,
+1 -1
View File
@@ -234,7 +234,7 @@ typedef struct Player {
/* 0x224 */ s32 timer_224;
/* 0x228 */ s32 unk_228;
/* 0x22C */ s32 unk_22C;
/* 0x230 */ char pad230[4];
/* 0x230 */ s32 unk_230;
/* 0x234 */ s32 unk_234;
/* 0x238 */ s32 unk_238;
/* 0x23C */ s32 unk_23C;
+9 -2
View File
@@ -401,7 +401,7 @@ extern s32 D_80161AB8;
extern Object_80 gObjects80[50];
extern Object_4C gObjects4C[40];
extern Object_2F4 gObjects2F4[60];
extern Object_408 gObjects408[4];
extern Boss gBosses[4];
extern Object_8C gObjects8C[100];
extern Item gItems[20];
extern PlayerShot gPlayerShots[16];
@@ -820,7 +820,7 @@ extern Gfx* D_DF4260_8019A008[];
extern f32 D_DF4260_8019A9B8[];
// ovl_E16C50
extern f32 D_E16C50_801C4188;
// extern f32 D_E16C50_801C4188; Currently externed in relevant files for bss ordering
// ovl_E51970
extern Matrix D_E51970_8019EE80;
@@ -1707,6 +1707,13 @@ extern u16 D_60447A0[];
extern u16 D_6047550[];
extern Gfx D_604A9F0[];
extern Gfx D_605C230[];
extern f32 D_6028578[];
extern Gfx D_600F1F0[];
extern Gfx D_6015EE0[];
extern Gfx D_6011910[];
extern AnimationHeader D_6018994;
extern Limb* D_6018BA0[];
extern Gfx D_601B2B0[];
// ast_9DD390, ast_A0E340, ast_BFA740, ast_CBFE70, ast_D27600
extern Gfx D_7000000[];