fox_title (#30)

* func_EBFBE0_801919C4

* fox_title functions

* func_EBFBE0_8019C66C

* broken branch

* fix branch

* more functions

* remove unnecessary file

* sizes

* func_EBFBE0_80188010

* func_EBFBE0_801894E8

* func_EBFBE0_8018A2F8

* func_EBFBE0_8018A338
This commit is contained in:
Alejandro Asenjo Nitti 2023-11-25 17:08:39 -03:00 committed by GitHub
parent d32854ced1
commit d6fc56adc0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 1590 additions and 461 deletions

View File

@ -45,5 +45,7 @@
"typeinfo": "c", "typeinfo": "c",
"sym_addrs_funcs": "c", "sym_addrs_funcs": "c",
"*.txt": "c" "*.txt": "c"
"typeinfo": "c",
"fox_title.h": "c"
}, },
} }

View File

@ -206,7 +206,7 @@ void func_EBFBE0_8018ACEC(void);
void func_EBFBE0_8018B5C4(void); void func_EBFBE0_8018B5C4(void);
void func_EBFBE0_8018C644(void); void func_EBFBE0_8018C644(void);
void func_EBFBE0_80187CA8(void); void func_EBFBE0_80187CA8(void);
void func_EBFBE0_80188010(void); s32 func_EBFBE0_80188010(void);
void func_EBFBE0_80189208(void); void func_EBFBE0_80189208(void);
void func_EBFBE0_8018A2F8(void); void func_EBFBE0_8018A2F8(void);
void func_EBFBE0_8018A990(void); void func_EBFBE0_8018A990(void);

View File

@ -264,6 +264,7 @@ s16 func_8009ACDC(s16 *);
f32 func_8009BC2C(f32*, f32, f32, f32, f32); f32 func_8009BC2C(f32*, f32, f32, f32, f32);
f32 func_8009BD38(f32*, f32, f32, f32, f32); f32 func_8009BD38(f32*, f32, f32, f32, f32);
void func_8009C320(Gfx **, void *, void *, u32, u32, f32, f32, f32, f32); void func_8009C320(Gfx **, void *, void *, u32, u32, f32, f32, f32, f32);
void func_8009D0BC(Gfx**, void*, void*, u32, u32, f32, f32, f32, f32);
void func_8009D418(Gfx**, void*, u32, u32, f32, f32, f32, f32); void func_8009D418(Gfx**, void*, u32, u32, f32, f32, f32, f32);
void func_8009D994(Gfx**, void*, u32, u32, f32, f32, f32, f32); void func_8009D994(Gfx**, void*, u32, u32, f32, f32, f32, f32);
void func_8009E4B0(Gfx**, void*, u32, u32, f32, f32, f32, f32); void func_8009E4B0(Gfx**, void*, u32, u32, f32, f32, f32, f32);

View File

@ -88,7 +88,7 @@ typedef struct {
u8 raw[sizeof(SaveData)]; u8 raw[sizeof(SaveData)];
}; };
/* 0xFE */ u16 checksum; /* 0xFE */ u16 checksum;
} Save; } Save; // size = 0x100
typedef struct { typedef struct {
/* 0x000 */ Save save; /* 0x000 */ Save save;
@ -130,13 +130,6 @@ typedef struct {
/* 0x23550 */ Lightsn lights[0x100]; /* 0x23550 */ Lightsn lights[0x100];
} GfxPool; // size = 0x2AD50, 0x8 aligned } GfxPool; // size = 0x2AD50, 0x8 aligned
typedef struct UnkStruct_D_801B8350 {
/* 0x00 */ Vec3f unk0;
/* 0x0C */ char pad0C[0x4C];
/* 0x54 */ s32 unk_54;
/* 0x58 */ s32 unk_58;
} UnkStruct_D_801B8350; // size = 0x5C
typedef struct { typedef struct {
/* 0x0 */ u16 unk_0; /* 0x0 */ u16 unk_0;
/* 0x2 */ s8 unk_2; /* 0x2 */ s8 unk_2;

View File

@ -36,7 +36,7 @@ extern char D_800C7C80[];
extern OSContPad gCurrentInput[4]; extern OSContPad gCurrentInput[4];
extern OSContPad gChangedInput[4]; extern OSContPad gChangedInput[4];
extern u8 gControllerStatus[4]; extern u8 gControllerStatus[4];
extern s32 gStopInputTimer; extern u32 gStopInputTimer;
extern u8 gRumbleStatus[4]; extern u8 gRumbleStatus[4];
extern u8 D_800DD8BC[4]; // Fake symbol. Only exists as loop terminator for gRumbleStatus extern u8 D_800DD8BC[4]; // Fake symbol. Only exists as loop terminator for gRumbleStatus
// extern OSContPad sNextInput[4]; // extern OSContPad sNextInput[4];
@ -363,7 +363,8 @@ extern s32 D_80177AE0;
extern s32 D_80177AF8; extern s32 D_80177AF8;
extern s32 D_80177B40; extern s32 D_80177B40;
extern s32 D_80177B48; extern s32 D_80177B48;
extern s32 D_80177B8C[]; extern u8 D_80177B8C;
extern s32 D_80177B90[];
extern s32 D_80177BB0[]; extern s32 D_80177BB0[];
extern u16 D_80177C30[]; extern u16 D_80177C30[];
extern s32 D_80177C50; extern s32 D_80177C50;
@ -430,6 +431,8 @@ extern s32 D_80178380[];
extern s32 D_80178390[]; extern s32 D_80178390[];
extern s32 D_801783A0[]; extern s32 D_801783A0[];
extern s32 D_801783B0[]; extern s32 D_801783B0[];
extern f32 D_801783D0;
extern f32 D_801783D4;
extern s32 D_801783D8; extern s32 D_801783D8;
extern s32 D_801783DC; extern s32 D_801783DC;
extern s32 D_80178410; extern s32 D_80178410;
@ -453,6 +456,8 @@ extern s32 D_80178558;
extern s32 D_8017855C; extern s32 D_8017855C;
extern s32 D_80178580; extern s32 D_80178580;
extern s32 *D_80178710; extern s32 *D_80178710;
extern s32 D_80178720;
extern s32 D_80178724;
extern s32 D_80178728; extern s32 D_80178728;
extern s32 D_8017872C; extern s32 D_8017872C;
extern f32 D_80178730; extern f32 D_80178730;
@ -671,6 +676,7 @@ extern u8 D_500A6E0[];
extern u8 D_500A7D0[]; extern u8 D_500A7D0[];
extern Gfx D_500B600[]; extern Gfx D_500B600[];
extern u16 D_6000000[];
extern f32 D_6006940[]; extern f32 D_6006940[];
extern f32 D_600695C[]; extern f32 D_600695C[];
extern f32 D_6006978[]; extern f32 D_6006978[];
@ -680,21 +686,39 @@ extern f32 D_60069CC[];
extern f32 D_60069E8[]; extern f32 D_60069E8[];
extern f32 D_6006A04[]; extern f32 D_6006A04[];
extern f32 D_6006A20[]; extern f32 D_6006A20[];
extern u16 D_6006EA0[];
extern Gfx D_6007650[]; extern Gfx D_6007650[];
extern u16 D_600BEA0[];
extern u8 D_600E360[];
extern u8 D_600E980[];
extern u8 D_6014140[];
extern u16 D_60147C0[];
extern u8 D_60147E0[];
extern Gfx D_60148D0[];
extern Gfx D_60148B0[]; extern Gfx D_60148B0[];
extern Gfx D_601AE40[]; extern Gfx D_601AE40[];
extern Gfx D_6023AC0[]; extern Gfx D_6023AC0[];
extern s16 D_6029528[]; extern s16 D_6029528[];
extern Gfx D_602A720[];
extern Gfx D_602DA20[]; extern Gfx D_602DA20[];
extern Gfx D_602E380[];
extern Gfx D_6032BC0[]; extern Gfx D_6032BC0[];
extern Gfx D_6034B90[]; extern Gfx D_6034B90[];
extern Gfx D_6035DA0[]; extern Gfx D_6035DA0[];
extern Gfx D_60361F0[]; extern Gfx D_60361F0[];
extern Gfx D_6037CF0[];
extern u8 D_6011890[];
extern Gfx D_60119A0[]; extern Gfx D_60119A0[];
extern u8 D_6012310[];
extern u8 D_60123F0[];
extern Gfx D_6012C00[]; extern Gfx D_6012C00[];
extern Gfx D_601C7C0[];
extern Gfx D_6009F90[]; extern Gfx D_6009F90[];
extern u16 D_600D5C0[];
extern Gfx D_600D730[]; extern Gfx D_600D730[];
extern Gfx D_600DBC0[]; extern Gfx D_600DBC0[];
extern u8 D_600DDC0[];
extern u8 D_600F940[];
extern Gfx D_60363B0[]; extern Gfx D_60363B0[];
extern Gfx D_6036840[]; extern Gfx D_6036840[];
extern Gfx D_6036CD0[]; extern Gfx D_6036CD0[];
@ -702,14 +726,21 @@ extern Gfx D_6022920[];
extern Gfx D_6020B40[]; extern Gfx D_6020B40[];
extern UNK_TYPE D_6029674; extern UNK_TYPE D_6029674;
extern ObjectInit* D_6010088[]; extern ObjectInit* D_6010088[];
extern u8 D_6010090[];
extern u8 D_60106B0[];
extern u8 D_6010FA0[];
extern u8 D_6013470[];
extern u16 D_601B4B0[]; extern u16 D_601B4B0[];
extern Gfx D_601D1F0[]; extern Gfx D_601D1F0[];
extern u8 D_601D750[];
extern u16 D_601DB50[];
extern s16 D_6029528[]; extern s16 D_6029528[];
extern ObjectInit* D_602B148[]; extern ObjectInit* D_602B148[];
extern ObjectInit* D_602F18C[]; extern ObjectInit* D_602F18C[];
extern UNK_TYPE D_601E8C4; extern UNK_TYPE D_601E8C4;
extern UNK_TYPE D_601E9D0; extern UNK_TYPE D_601E9D0;
extern Gfx D_6018C00[]; extern Gfx D_6018C00[];
extern Gfx D_6018D40[];
extern Gfx D_6024B60[]; extern Gfx D_6024B60[];
extern Gfx D_6025B50[]; extern Gfx D_6025B50[];
extern Gfx D_6007CF0[]; extern Gfx D_6007CF0[];

View File

@ -46,6 +46,7 @@ D_800D55E4_fake = 0x800D55E4; // force_migration:True
D_800D8570 = 0x800D8570; // force_migration:True D_800D8570 = 0x800D8570; // force_migration:True
D_800D8594 = 0x800D8594; // force_migration:True D_800D8594 = 0x800D8594; // force_migration:True
D_800C93EC = 0x800C93EC; // force_migration:True D_800C93EC = 0x800C93EC; // force_migration:True
D_80177B90 = 0x80177B90; // force_migration:True
D_DF4260_8019B1EC = 0x8019B1EC; // force_migration:True segment:ovl_DF4260 D_DF4260_8019B1EC = 0x8019B1EC; // force_migration:True segment:ovl_DF4260
D_E16C50_801C171C = 0x801C171C; // force_migration:True segment:ovl_E16C50 D_E16C50_801C171C = 0x801C171C; // force_migration:True segment:ovl_E16C50

View File

@ -3,7 +3,7 @@
OSContPad gCurrentInput[4]; OSContPad gCurrentInput[4];
OSContPad gChangedInput[4]; OSContPad gChangedInput[4];
u8 gControllerStatus[4]; u8 gControllerStatus[4];
s32 gStopInputTimer; u32 gStopInputTimer;
u8 gRumbleStatus[4]; u8 gRumbleStatus[4];
OSContPad sNextInput[4]; // OSContPad sNextInput[4]; //
OSContPad sPrevInput[4]; // OSContPad sPrevInput[4]; //

View File

@ -1,444 +0,0 @@
#include "global.h"
void func_EBFBE0_801875E0(void) {
D_80137E78 = 2;
D_80177DB0 = 0;
D_80177AE0 = 2;
D_80161A34 = 0;
D_800D2870 = 0;
D_80177AF8 = func_EBFBE0_80187ABC();
D_80178348 = 0;
D_80178350 = 0;
D_80178354 = 0;
D_80178340 = 0;
D_80178320 = 0;
D_80178328 = 0;
D_80178330 = 0;
D_80161A36 = 0;
D_EBFBE0_801B8284 = 0;
D_EBFBE0_801B82A8 = 0;
D_EBFBE0_801B82AC = 0;
D_EBFBE0_801B833C = 0.0f;
D_EBFBE0_801B82C0 = 0;
D_EBFBE0_801B8280 = 0;
D_EBFBE0_801B7BCC = 255.0f;
D_EBFBE0_801B7BC8 = 255.0f;
Memory_FreeAll();
func_800A5D6C();
D_80178420 = 320.0f;
D_80178424 = 240.0f;
func_EBFBE0_80188010();
if ((D_80177AF8 == -1) || (D_EBFBE0_801B827C != 0)) {
func_8001DC6C(0, 0x17);
D_EBFBE0_801B82C4 = 0;
D_EBFBE0_801B827C = 0;
} else {
func_8001DC6C(0, 0x16);
D_EBFBE0_801B82C4 = 1;
}
gStopInputTimer = 0x1E;
}
void func_EBFBE0_80187754(void) {
switch (D_80177AE0) {
case 0:
if (D_8017783C == 0) {
D_80177898 = 0;
D_80177AE0 = 1;
}
break;
case 1:
D_80177898 = 0;
func_EBFBE0_801875E0();
break;
case 2:
D_80177898 = 1;
func_EBFBE0_801877F0();
break;
}
D_80177DB0++;
}
void func_EBFBE0_801877F0(void) {
if (D_EBFBE0_801B82A8 > 0) {
D_EBFBE0_801B82A8 -= 1;
}
if (D_EBFBE0_801B82AC > 0) {
D_EBFBE0_801B82AC -= 1;
}
switch (D_EBFBE0_801B82C4) {
case 7:
func_EBFBE0_80187B00();
break;
case 0:
func_EBFBE0_801888E8();
func_EBFBE0_8019111C();
break;
case 1:
func_EBFBE0_8018994C();
break;
case 2:
func_EBFBE0_8018A644();
break;
case 3:
func_EBFBE0_8018ACEC();
break;
case 4:
func_EBFBE0_8018B5C4();
break;
case 5:
func_EBFBE0_8018C644();
break;
}
func_EBFBE0_80190E64();
}
void func_EBFBE0_801878D8(void) {
switch (D_EBFBE0_801B82C4) {
case 7:
func_EBFBE0_80187CA8();
break;
case 0:
func_EBFBE0_801918FC();
func_EBFBE0_80189208();
Matrix_Pop(&gGfxMatrix);
func_EBFBE0_8018F680();
func_EBFBE0_8018F85C();
func_EBFBE0_8018FC14();
func_EBFBE0_8018F8E4();
func_EBFBE0_801918FC();
func_EBFBE0_8018F77C();
Matrix_Pop(&gGfxMatrix);
break;
case 1:
if (D_EBFBE0_801B8348 != 0) {
func_EBFBE0_801918FC();
func_EBFBE0_8018A2F8();
Matrix_Pop(&gGfxMatrix);
func_800BB5D0();
func_EBFBE0_80190C9C();
}
func_EBFBE0_8018FF74();
func_EBFBE0_801906A0();
break;
case 2:
func_EBFBE0_801918FC();
func_EBFBE0_8018A990();
Matrix_Pop(&gGfxMatrix);
if (D_EBFBE0_801B8344 != 0) {
func_EBFBE0_8018FD08();
}
break;
case 3:
func_EBFBE0_801918FC();
func_EBFBE0_8018B038();
Matrix_Pop(&gGfxMatrix);
break;
case 4:
func_EBFBE0_801918FC();
func_EBFBE0_8018C114();
Matrix_Pop(&gGfxMatrix);
func_EBFBE0_80190C9C();
break;
case 5:
func_EBFBE0_801918FC();
func_EBFBE0_8018CB90();
Matrix_Pop(&gGfxMatrix);
break;
}
if (D_EBFBE0_801B8284 != 0) {
D_80178340 = 0;
D_80178348 = 0;
D_80178350 = 0;
D_80178354 = 0;
func_80084688(2, D_EBFBE0_801B8284);
}
}
s32 func_EBFBE0_80187ABC(void) {
s32 ret = -1;
s32 i;
for (i = 0; i < 4; i++) {
if (gControllerStatus[i] == 1) {
ret = i;
break;
}
}
return ret;
}
void func_EBFBE0_80187B00(void) {
switch (D_EBFBE0_801B82C0) {
case 0:
D_EBFBE0_801B8288 = 0;
D_80178410 = 800;
D_EBFBE0_801B82BC = 450;
D_EBFBE0_801B82C0++;
D_EBFBE0_801B82A8 = 20;
break;
case 1:
if (D_EBFBE0_801B82BC != 0) {
func_800B6F50(D_80177978, D_80177980, D_80177988, D_801779A0, D_801779B8, D_801779C0);
D_8017842C -= 1.0f;
if (D_EBFBE0_801B82BC == 60) {
func_800182F4(0x103C00FF);
func_800182F4(0x113C00FF);
}
} else {
D_80178410 = 0;
D_8017829C = 0;
D_EBFBE0_801B82C0 = 0;
D_80177898 = 0;
func_8001DC6C(0, 0x16);
D_EBFBE0_801B82C4 = 1;
}
if (D_EBFBE0_801B8288 == 0xA) {
D_EBFBE0_801B82BC -= 1;
}
break;
}
if ((D_EBFBE0_801B82A8 == 0) && ((D_80177DB0 & 7) == 7) && (D_EBFBE0_801B8288 < 10)) {
D_EBFBE0_801B8288++;
}
}
void func_EBFBE0_80187CA8(void) {
s32 temp = 20;
s32 temp2 = 36;
func_800B8DD0(&gMasterDisp, 0x53);
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 0, 255);
func_800A1200(temp2, temp, 1.0f, 1.0f, D_EBFBE0_801ADA44);
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
func_8009D994(&gMasterDisp, D_5000300, 16, 8, 148.0f, temp, 1.0f, 1.0f);
func_8009D994(&gMasterDisp, D_5000200, 16, 8, 164, temp, 1.0f, 1.0f);
func_800B8DD0(&gMasterDisp, 0x53);
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
func_8009D994(&gMasterDisp, D_50077B0, 16, 2, 36, 32, 15.2f, 1.0f);
func_EBFBE0_80187E28();
}
void func_EBFBE0_80187E28(void) {
s32 temp;
s32 i;
func_800B8DD0(&gMasterDisp, 0x53);
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 0, 255);
func_800A1200(94, 38, 1.0f, 1.0f, "RANK");
func_800A1200(146, 38, 1.0f, 1.0f, "NAME");
func_800A1200(192, 38, 1.0f, 1.0f, "HITS");
temp = 55;
for (i = 0; i < D_EBFBE0_801B8288; i++) {
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
func_8009FEA0(105 - ((func_8008BCBC(i + 1) - 1) * 8), temp, i + 1);
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 0, 255);
func_800A1200(150, temp, 1.0f, 1.0f, &D_EBFBE0_801B8248[i][0]);
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
func_8009FEA0(211 - ((func_8008BCBC(D_EBFBE0_801B8220[i]) - 1) * 8), temp, D_EBFBE0_801B8220[i]);
temp += 17;
}
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_80188010.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_801881FC.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_801888E8.s")
extern UnkStruct_D_801B8350 D_EBFBE0_801B8350[];
void func_EBFBE0_80189208(void) {
s32 i;
D_80178548 = D_EBFBE0_801B82F8;
D_8017854C = D_EBFBE0_801B82FC;
D_80178550 = D_EBFBE0_801B8300;
D_80178554 = (s32) D_EBFBE0_801B8304;
D_80178558 = (s32) D_EBFBE0_801B8308;
D_8017855C = (s32) D_EBFBE0_801B830C;
if ((D_EBFBE0_801B86A4 < 2) && (D_EBFBE0_801B9040 != 0)) {
D_EBFBE0_801B86D8 = Math_Atan2F(-D_EBFBE0_801B9060, sqrtf((-D_EBFBE0_801B905C * -D_EBFBE0_801B905C) +
(-D_EBFBE0_801B9064 * -D_EBFBE0_801B9064))) *
180.0f / M_PI;
D_EBFBE0_801B86DC = (Math_Atan2F(D_EBFBE0_801B905C, D_EBFBE0_801B9064) * 180.0f) / M_PI;
func_8009BC2C(&D_EBFBE0_801B86C8, D_EBFBE0_801B86D8, 0.1f, 100.0f, 0.0001f);
func_8009BC2C(&D_EBFBE0_801B86CC, D_EBFBE0_801B86DC, 0.1f, 100.0f, 0.0001f);
}
func_EBFBE0_80191674(D_EBFBE0_801B86C8, D_EBFBE0_801B86CC, 100.0f, &D_EBFBE0_801B82E0, &D_EBFBE0_801B82E4,
&D_EBFBE0_801B82E8);
for (i = 0; i < 4; i++) {
func_EBFBE0_8018EA78(D_EBFBE0_801ADA84[i]);
D_EBFBE0_801B8350[D_EBFBE0_801ADA84[i]].unk_54 += D_EBFBE0_801B8350[D_EBFBE0_801ADA84[i]].unk_58;
}
D_80178548 = D_EBFBE0_801B8310;
D_8017854C = D_EBFBE0_801B8314;
D_80178550 = D_EBFBE0_801B8318;
D_80178554 = D_EBFBE0_801B831C;
D_80178558 = D_EBFBE0_801B8320;
D_8017855C = D_EBFBE0_801B8324;
func_EBFBE0_80191674(D_EBFBE0_801B86D0, D_EBFBE0_801B86D4, 100.0f, &D_EBFBE0_801B82E0, &D_EBFBE0_801B82E4,
&D_EBFBE0_801B82E8);
func_EBFBE0_8018D2B8(0);
}
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_801894E8.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018994C.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018A2F8.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018A338.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018A644.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018A990.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018ABC0.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018ACEC.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018B038.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018B058.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018B5C4.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018C114.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018C1C0.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018C644.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018CB90.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018CC30.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018CD9C.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018D2B8.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018D510.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018D80C.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018DDB8.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018DF0C.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018E058.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018E200.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018E67C.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018EA78.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018EDC8.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018F438.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018F680.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018F77C.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018F85C.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018F8E4.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018FC14.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018FD08.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8018FF74.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_80190144.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_801903B8.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_801906A0.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_80190950.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_80190A98.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_80190B30.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_80190C9C.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_80190E64.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_80190EA4.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_80190FD0.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_8019111C.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_801912A0.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_80191320.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_801914AC.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_80191674.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_80191798.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_80191844.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_801918FC.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/EBFCA0/func_EBFBE0_801919C4.s")

View File

@ -119,7 +119,7 @@ void func_EBFBE0_80191B20(void) {
if ((D_80161A34 == 5) || (D_80161A34 == 8)) { if ((D_80161A34 == 5) || (D_80161A34 == 8)) {
if (D_80161A34 == 8) { if (D_80161A34 == 8) {
D_80177B8C[D_80177B48 + 1] = 13; D_80177B90[D_80177B48] = 13;
if (D_800D3180[9] == 1) { if (D_800D3180[9] == 1) {
gSaveFile.save.data.unk_00[14].unk_5 = 1; gSaveFile.save.data.unk_00[14].unk_5 = 1;
if (var_v0_2 != 0) { if (var_v0_2 != 0) {
@ -1618,7 +1618,76 @@ void func_EBFBE0_8019B8A0(s32 arg0) {
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/fox_option/func_EBFBE0_8019C5A0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/fox_option/func_EBFBE0_8019C5A0.s")
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/fox_option/func_EBFBE0_8019C66C.s") s32 func_EBFBE0_8019C66C(f32* arg0, f32 arg1, f32 arg2, UnkStruct_D_EBFBE0_801B9250* arg3) {
s32 x;
s32 y;
s32 var_a2;
f32 var_fv1;
f32 temp;
f32 temp2;
var_a2 = 0;
temp = *arg0;
x = gChangedInput[D_80177AF8].stick_x;
y = -gChangedInput[D_80177AF8].stick_y;
if ((y > 10) || (y < -10)) {
return 0;
}
if ((x < 10) && (x > -10)) {
x = 0;
} else if (x < 0) {
x += 10;
} else {
x -= 10;
}
if (arg3->unk_4 == 0) {
if (x != 0) {
var_fv1 = (f32) x / 20.0f;
arg3->unk_4 = arg3->unk_0;
if (arg3->unk_0 != 0) {
arg3->unk_0 -= 7;
}
if (arg3->unk_4 != 0) {
if (x > 0) {
var_fv1 = 1.0f;
} else {
var_fv1 = -1.0f;
}
}
*arg0 += var_fv1;
if (arg2 < *arg0) {
*arg0 = arg2;
}
if (*arg0 < arg1) {
*arg0 = arg1;
}
} else {
arg3->unk_4 = 0;
arg3->unk_0 = 7;
}
}
if (arg3->unk_4 > 0) {
arg3->unk_4--;
}
temp2 = *arg0;
if ((s32) temp2 != (s32) temp) {
func_80019218(0x49004007, &D_800C5D28, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C);
var_a2 = 1;
}
return var_a2;
}
void func_EBFBE0_8019C824(f32* arg0) { void func_EBFBE0_8019C824(f32* arg0) {
if ((s32) func_8009BC2C(arg0, D_EBFBE0_801B91E4, 0.5f, 100.0f, 1.0f) == 0.0f) { if ((s32) func_8009BC2C(arg0, D_EBFBE0_801B91E4, 0.5f, 100.0f, 1.0f) == 0.0f) {

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,117 @@
#ifndef FOX_TITLE_H
#define FOX_TITLE_H
#include "global.h"
typedef struct UnkStruct_D_801B8350 {
/* 0x00 */ Vec3f unk_00;
/* 0x0C */ f32 unk_0C;
/* 0x10 */ f32 unk_10;
/* 0x14 */ char pad14[0x44];
/* 0x58 */ s32 unk_58;
/* 0x5C */ s32 unk_5C;
} UnkStruct_D_801B8350; // size = 0x60
typedef struct {
/* 0x00 */ Vec3f unk_00;
/* 0x04 */ char pad04[0x50];
} UnkStruct_D_EBFBE0_801B84E8; // size = 0x5C
typedef struct {
/* 0x00 */ Vec3f pos;
/* 0x0C */ char pad0C[0x4];
/* 0x10 */ f32 angleX;
/* 0x14 */ f32 angleY;
/* 0x18 */ f32 angleZ;
/* 0x1C */ f32 scale;
/* 0x20 */ char pad20[0x4];
/* 0x24 */ Vec3f unk_24;
} UnkStruct_D_EBFBE0_801B8658; // size = 0x30
typedef struct {
/* 0x00 */ Vec3f pos;
/* 0x0C */ s32 unk_0C;
/* 0x10 */ f32 scale;
} UnkStruct_D_EBFBE0_801B8688; // size = 0x14
extern Gfx* D_EBFBE0_801AE48C[];
extern f32 D_EBFBE0_801AE4BC[];
extern f32 D_EBFBE0_801AE4EC[];
extern u8 D_EBFBE0_801AE51C[];
extern s32 D_EBFBE0_801AE528[];
extern f32 D_EBFBE0_801B7BB0;
extern f32 D_EBFBE0_801B7BB4;
extern f32 D_EBFBE0_801B7BB8;
extern f32 D_EBFBE0_801B7BBC;
extern f32 D_EBFBE0_801B7BC0;
extern f32 D_EBFBE0_801B7BC4;
extern s32 D_EBFBE0_801B7BD0;
extern s32 D_EBFBE0_801B7BD4;
extern s32 D_EBFBE0_801B7BD8;
extern f32 D_EBFBE0_801B7BDC;
extern f32 D_EBFBE0_801B7BE0;
extern s32 D_EBFBE0_801B7BE4;
extern s32 D_EBFBE0_801B7BF0;
extern f32 D_EBFBE0_801B7BF8[];
extern f32 D_EBFBE0_801B7C20[];
extern f32 D_EBFBE0_801B7C48[];
extern f32 D_EBFBE0_801B7C70[];
extern s32 D_EBFBE0_801B7C98;
extern s32 D_EBFBE0_801B7CA0[];
extern s32 D_EBFBE0_801B7CC8[];
extern s32 D_EBFBE0_801B7CF0[];
extern s32 D_EBFBE0_801B7D18[];
extern f32 D_EBFBE0_801B829C;
extern f32 D_EBFBE0_801B82A0;
extern f32 D_EBFBE0_801B82A4;
extern s32 D_EBFBE0_801B82B0;
extern f32 D_EBFBE0_801B82C8;
extern f32 D_EBFBE0_801B8328;
extern f32 D_EBFBE0_801B832C;
extern f32 D_EBFBE0_801B8330;
extern s32 D_EBFBE0_801B8334;
extern s32 D_EBFBE0_801B8338;
extern s32 D_EBFBE0_801B8340;
extern UnkStruct_D_801B8350 D_EBFBE0_801B8350[];
extern f32 D_EBFBE0_801B84D0;
extern f32 D_EBFBE0_801B84D4;
extern UnkStruct_D_EBFBE0_801B84E8 D_EBFBE0_801B84E8[];
extern UnkStruct_D_EBFBE0_801B8658 D_EBFBE0_801B8658;
extern UnkStruct_D_EBFBE0_801B8688 D_EBFBE0_801B8688;
extern s32 D_EBFBE0_801B8694;
extern s32 D_EBFBE0_801B869C;
extern f32 D_EBFBE0_801B86A8;
extern f32 D_EBFBE0_801B86AC;
extern f32 D_EBFBE0_801B86B4;
extern f32 D_EBFBE0_801B86B8;
extern f32 D_EBFBE0_801B86BC;
extern f32 D_EBFBE0_801B86C0;
extern f32 D_EBFBE0_801B86C4;
extern f32 D_EBFBE0_801B9044;
extern f32 D_EBFBE0_801B9048;
extern f32 D_EBFBE0_801B904C;
extern f32 D_EBFBE0_801B9054;
extern f32 D_EBFBE0_801B9058;
extern f32 D_EBFBE0_801B9068;
extern f32 D_EBFBE0_801B906C;
extern f32 D_EBFBE0_801B9070;
extern f32 D_EBFBE0_801B9074;
extern f32 D_EBFBE0_801B9078;
extern f32 D_EBFBE0_801B907C;
extern f32 D_EBFBE0_801B9080;
extern f32 D_EBFBE0_801B9084;
void func_EBFBE0_8018DF0C(f32 arg0);
void func_EBFBE0_8018E058(void);
void func_EBFBE0_8018E200(void);
void func_EBFBE0_80190A98(void);
void func_EBFBE0_80190EA4(void);
void func_EBFBE0_80190FD0(void);
void func_EBFBE0_80190144(void);
void func_EBFBE0_801903B8(void);
void func_EBFBE0_801914AC(f32 arg0, f32 arg1, f32 arg2, f32* arg3, f32* arg4, f32* arg5, f32 arg6, f32* arg7, f32* arg8,
f32* arg9, f32 argA, f32 argB, f32 argC);
void func_EBFBE0_80191798(f32* arg0, f32* arg1);
void func_EBFBE0_801918FC(void);
#endif

View File

@ -159,14 +159,14 @@
symbol_name_format: EBFBE0_$VRAM symbol_name_format: EBFBE0_$VRAM
subsegments: subsegments:
- [0xEBFBE0, c, EBFBE0] - [0xEBFBE0, c, EBFBE0]
- [0xEBFCA0, c, EBFCA0] - [0xEBFCA0, c, fox_title]
- [0xECA1E0, c, fox_option] - [0xECA1E0, c, fox_option]
- [0xED6EC0, c, ED6EC0] - [0xED6EC0, c, ED6EC0]
- [0xEE60C0, data, EBFCA0] - [0xEE60C0, data, fox_title]
- [0xEE6C30, data, fox_option] - [0xEE6C30, data, fox_option]
- [0xEE7AE0, data, ED6EC0] - [0xEE7AE0, data, ED6EC0]
- [0xEEF410, .rodata, EBFBE0] - [0xEEF410, .rodata, EBFBE0]
- [0xEEF430, .rodata, EBFCA0] - [0xEEF430, .rodata, fox_title]
- [0xEEF7D0, .rodata, fox_option] - [0xEEF7D0, .rodata, fox_option]
- [0xEEFB80, .rodata, ED6EC0] - [0xEEFB80, .rodata, ED6EC0]
- { start: 0xEF0260, type: bss, vram: 0x801B7BA0, name: ovl_EBFBE0 } - { start: 0xEF0260, type: bss, vram: 0x801B7BA0, name: ovl_EBFBE0 }