mirror of
https://github.com/pret/pokestadium.git
synced 2026-09-12 13:25:55 -05:00
@@ -44,16 +44,20 @@ typedef struct unk_D_86002F58_004_000_004 {
|
||||
/* 0x08 */ unk_D_86002F58_004_000_010* unk_08;
|
||||
} unk_D_86002F58_004_000_004; // size >= 0x0C
|
||||
|
||||
typedef struct unk_D_86002F58_004_000_000 {
|
||||
/* 0x00 */ u8 unk_00;
|
||||
/* 0x01 */ u8 unk_01;
|
||||
/* 0x02 */ u8 unk_02;
|
||||
/* 0x03 */ u8 unk_03;
|
||||
/* 0x04 */ struct unk_D_86002F58_004_000_000* unk_04;
|
||||
/* 0x08 */ struct unk_D_86002F58_004_000_000* unk_08;
|
||||
/* 0x0C */ unk_D_86002F58_004_000_00C* unk_0C;
|
||||
/* 0x10 */ s32 unk_10;
|
||||
/* 0x14 */ s32 unk_14;
|
||||
} unk_D_86002F58_004_000_000; // size = 0x18
|
||||
|
||||
typedef struct unk_D_86002F58_004_000 {
|
||||
/* 0x000 */ u8 unk_000;
|
||||
/* 0x001 */ u8 unk_001;
|
||||
/* 0x002 */ u8 unk_002;
|
||||
/* 0x003 */ u8 unk_003;
|
||||
/* 0x004 */ struct unk_D_86002F58_004_000* unk_004;
|
||||
/* 0x008 */ struct unk_D_86002F58_004_000* unk_008;
|
||||
/* 0x00C */ unk_D_86002F58_004_000_00C* unk_00C;
|
||||
/* 0x010 */ s32 unk_010;
|
||||
/* 0x014 */ s32 unk_014;
|
||||
/* 0x000 */ unk_D_86002F58_004_000_000 unk_000;
|
||||
/* 0x018 */ s16 unk_018;
|
||||
/* 0x01A */ s16 unk_01A;
|
||||
/* 0x01C */ u8 unk_01C;
|
||||
@@ -83,7 +87,6 @@ typedef struct unk_D_86002F58_004_000 {
|
||||
/* 0x0B4 */ char padB4[0xB4];
|
||||
} unk_D_86002F58_004_000; // size = 0x168
|
||||
|
||||
// possibly unk_D_86002F58_004_000
|
||||
typedef struct unk_D_86002F34_00C {
|
||||
/* 0x00 */ char pad0[0x24];
|
||||
/* 0x24 */ MtxF* unk_024;
|
||||
@@ -115,12 +118,6 @@ typedef struct unk_D_86002F30 {
|
||||
/* 0x08 */ unk_D_86002F58_004_000_004* unk_08[4];
|
||||
} unk_D_86002F30; // size = 0x18 ??
|
||||
|
||||
typedef struct unk_D_800AC840 {
|
||||
/* 0x00 */ char pad0[0xC];
|
||||
/* 0x0C */ unk_D_86002F58_004_000* unk_0C;
|
||||
/* 0x10 */ char pad10[8];
|
||||
} unk_D_800AC840; // size = 0x18
|
||||
|
||||
struct UnkInputStruct8000D738 {
|
||||
s32 unk0;
|
||||
s32 unk4;
|
||||
|
||||
@@ -37,4 +37,16 @@
|
||||
#define ALIGN16(val) (((val) + 0xF) & ~0xF)
|
||||
#define ALIGN64(val) (((val) + 0x3F) & ~0x3F)
|
||||
|
||||
#define DECR(x) ((x) == 0 ? 0 : --(x))
|
||||
|
||||
//! checks min first
|
||||
#define CLAMP(x, min, max) ((x) < (min) ? (min) : (x) > (max) ? (max) : (x))
|
||||
//! checks max first
|
||||
#define CLAMP_ALT(x, min, max) ((x) > (max) ? (max) : (x) < (min) ? (min) : (x))
|
||||
#define CLAMP_MAX(x, max) ((x) > (max) ? (max) : (x))
|
||||
#define CLAMP_MIN(x, min) ((x) < (min) ? (min) : (x))
|
||||
|
||||
#define ABS(x) ((x) >= 0 ? (x) : -(x))
|
||||
#define ABS_ALT(x) ((x) < 0 ? -(x) : (x))
|
||||
|
||||
#endif
|
||||
|
||||
@@ -29,13 +29,13 @@ typedef union {
|
||||
};
|
||||
} MtxF;
|
||||
|
||||
typedef struct {
|
||||
typedef struct Vec3f {
|
||||
/* 0x0 */ f32 x;
|
||||
/* 0x4 */ f32 y;
|
||||
/* 0x8 */ f32 z;
|
||||
} Vec3f; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
typedef struct Vec3s {
|
||||
/* 0x0 */ s16 x;
|
||||
/* 0x2 */ s16 y;
|
||||
/* 0x4 */ s16 z;
|
||||
|
||||
@@ -36,9 +36,11 @@ extern u32 D_81000000;
|
||||
extern u32 D_8D000000;
|
||||
|
||||
typedef struct unk_D_80068BA0 {
|
||||
/* 0x00 */ char pad00[6];
|
||||
/* 0x00 */ char pad00[0x4];
|
||||
/* 0x04 */ s16 unk_04;
|
||||
/* 0x06 */ u16 unk_06;
|
||||
/* 0x08 */ u16 unk_08;
|
||||
/* 0x0A */ char pad0A[0x2];
|
||||
} unk_D_80068BA0; // size >= 0xC
|
||||
|
||||
extern unk_D_80068BA0* D_80068BA0;
|
||||
@@ -95,13 +97,13 @@ typedef struct unk_D_800A7440 {
|
||||
} unk_D_800A7440; // size >= 0x8
|
||||
extern unk_D_800A7440 D_800A7440;
|
||||
|
||||
extern struct unk_D_800AC840 D_800AC840;
|
||||
extern struct unk_D_800AC840 D_800AC858;
|
||||
extern struct unk_D_86002F58_004_000_000 D_800AC840;
|
||||
extern struct unk_D_86002F58_004_000_000 D_800AC858;
|
||||
extern struct unk_D_86002F58_004_000* D_8006F09C;
|
||||
|
||||
extern s32 D_8006F050[];
|
||||
extern s16 D_8006F05C[];
|
||||
extern f32 D_8006F064[];
|
||||
extern struct Vec3f D_8006F050;
|
||||
extern struct Vec3s D_8006F05C;
|
||||
extern struct Vec3f D_8006F064;
|
||||
|
||||
typedef struct unk_D_8006FF00 {
|
||||
/* 0x00 */ char unk_00[0x10];
|
||||
@@ -111,11 +113,6 @@ typedef struct unk_D_8006FF00 {
|
||||
} unk_D_8006FF00; // size = 0x1C
|
||||
extern unk_D_8006FF00 D_8006FF00[];
|
||||
|
||||
extern s16 D_8780FA2C;
|
||||
extern s16 D_8780FA32;
|
||||
extern s16 D_8780FA34;
|
||||
extern s16 D_8780FA36;
|
||||
|
||||
typedef struct unk_D_800AC870_sub {
|
||||
/* 0x00 */ s16 unk_00;
|
||||
/* 0x02 */ s16 unk_02;
|
||||
@@ -199,4 +196,20 @@ typedef struct unk_D_800FC798 {
|
||||
} unk_D_800FC798; // size >= 0xC
|
||||
extern unk_D_800FC798* D_800FC798;
|
||||
|
||||
typedef struct unk_D_800A6CF4 {
|
||||
/* 0x00 */ char unk00[0x20];
|
||||
/* 0x20 */ s32 unk_20;
|
||||
} unk_D_800A6CF4; // size = 0x24
|
||||
extern unk_D_800A6CF4 D_800A6CF4;
|
||||
|
||||
extern Mtx D_8006F010;
|
||||
extern u32 D_3010000;
|
||||
extern u32 D_3016E80;
|
||||
extern u32 D_30200C0;
|
||||
extern u32 D_3004000;
|
||||
extern u32 D_3008000;
|
||||
extern u32 D_300C000;
|
||||
extern u32 D_1003E78[];
|
||||
extern u32 D_304F120[];
|
||||
|
||||
#endif
|
||||
|
||||
@@ -71,8 +71,7 @@ gSIEventMesgBuf = 0x800A73F8;
|
||||
gEepromMesgQueue = 0x800A7400;
|
||||
gEepromMesgBuf = 0x800A73FC;
|
||||
.L8120A860 = 0x8120A860;
|
||||
D_8780FA30 = 0x8780FA30;
|
||||
D_8780FA34 = 0x8780FA34;
|
||||
D_8780FA30 = 0x8780FA30; // size:0x8
|
||||
D_87906044 = 0x87906044;
|
||||
D_87906048 = 0x87906048;
|
||||
D_87906060 = 0x87906060;
|
||||
@@ -241,3 +240,6 @@ D_87A01190 = 0x87A01190;
|
||||
D_87A011A4 = 0x87A011A4;
|
||||
D_800A7428 = 0x800A7428;
|
||||
D_80079014 = 0x80079014;
|
||||
D_3004000 = 0x3004000;
|
||||
D_8780FCB8 = 0x8780FCB8; // size:0x20
|
||||
D_8780FA68 = 0x8780FA68; // size:0x8
|
||||
|
||||
52
src/11BA0.c
52
src/11BA0.c
@@ -1,25 +1,25 @@
|
||||
#include "global.h"
|
||||
#include "11BA0.h"
|
||||
|
||||
void func_80010FA0(unk_D_86002F58_004_000* arg0, u8 arg1) {
|
||||
void func_80010FA0(unk_D_86002F58_004_000_000* arg0, u8 arg1) {
|
||||
if (arg0 != NULL) {
|
||||
arg0->unk_000 = arg1;
|
||||
arg0->unk_001 = 0x11;
|
||||
arg0->unk_002 = 0;
|
||||
arg0->unk_003 = 0;
|
||||
arg0->unk_004 = arg0;
|
||||
arg0->unk_008 = arg0;
|
||||
arg0->unk_00C = NULL;
|
||||
arg0->unk_010 = 0;
|
||||
arg0->unk_014 = 0;
|
||||
arg0->unk_00 = arg1;
|
||||
arg0->unk_01 = 0x11;
|
||||
arg0->unk_02 = 0;
|
||||
arg0->unk_03 = 0;
|
||||
arg0->unk_04 = arg0;
|
||||
arg0->unk_08 = arg0;
|
||||
arg0->unk_0C = NULL;
|
||||
arg0->unk_10 = 0;
|
||||
arg0->unk_14 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/11BA0/func_80010FDC.s")
|
||||
|
||||
unk_D_86002F58_004_000* func_8001103C(MainPoolState* arg0, void* arg1) {
|
||||
unk_D_86002F58_004_000_000* func_8001103C(MainPoolState* arg0, void* arg1) {
|
||||
if (arg0 != 0) {
|
||||
arg1 = func_80002DCC(arg0, 0x18, 4);
|
||||
arg1 = func_80002DCC(arg0, sizeof(unk_D_86002F58_004_000_000), 4);
|
||||
}
|
||||
|
||||
if (arg1 != NULL) {
|
||||
@@ -67,10 +67,10 @@ unk_D_86002F58_004_000* func_8001103C(MainPoolState* arg0, void* arg1) {
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/11BA0/func_800118D0.s")
|
||||
|
||||
unk_D_86002F58_004_000* func_80011938(s32 arg0, unk_D_86002F58_004_000* arg1, s16 arg2, Vec3f* arg3, Vec3s* arg4,
|
||||
Vec3f* arg5) {
|
||||
unk_D_86002F58_004_000* func_80011938(MainPoolState* arg0, unk_D_86002F58_004_000* arg1, s16 arg2, Vec3f* arg3,
|
||||
Vec3s* arg4, Vec3f* arg5) {
|
||||
if (arg0 != 0) {
|
||||
arg1 = func_80002DCC(arg0, 0x168, 4);
|
||||
arg1 = func_80002DCC(arg0, sizeof(unk_D_86002F58_004_000), 4);
|
||||
}
|
||||
|
||||
if (arg1 != NULL) {
|
||||
@@ -93,8 +93,8 @@ unk_D_86002F58_004_000* func_80011938(s32 arg0, unk_D_86002F58_004_000* arg1, s1
|
||||
arg1->unk_058 = 0;
|
||||
arg1->unk_05C = 0;
|
||||
arg1->unk_05E = 0;
|
||||
func_80010FA0(arg1, 0x16);
|
||||
arg1->unk_002 |= 0x60;
|
||||
func_80010FA0(&arg1->unk_000, 0x16);
|
||||
arg1->unk_000.unk_02 |= 0x60;
|
||||
}
|
||||
|
||||
return arg1;
|
||||
@@ -124,21 +124,21 @@ unk_D_86002F58_004_000* func_80011938(s32 arg0, unk_D_86002F58_004_000* arg1, s1
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/11BA0/func_80012044.s")
|
||||
|
||||
void func_80012094(unk_D_800AC840* arg0, unk_D_86002F58_004_000* arg1) {
|
||||
unk_D_86002F58_004_000* temp_v0;
|
||||
unk_D_86002F58_004_000_004* temp_v1;
|
||||
void func_80012094(unk_D_86002F58_004_000_000* arg0, unk_D_86002F58_004_000_000* arg1) {
|
||||
unk_D_86002F58_004_000_000* temp_v0;
|
||||
unk_D_86002F58_004_000_000* temp_v1;
|
||||
|
||||
if ((arg0 != NULL) && (arg1 != NULL)) {
|
||||
temp_v0 = arg0->unk_0C;
|
||||
if (temp_v0 == NULL) {
|
||||
arg0->unk_0C = arg1;
|
||||
arg1->unk_004 = arg1;
|
||||
arg1->unk_008 = arg1;
|
||||
arg1->unk_04 = arg1;
|
||||
arg1->unk_08 = arg1;
|
||||
} else {
|
||||
temp_v1 = temp_v0->unk_004;
|
||||
arg1->unk_008 = temp_v0;
|
||||
arg1->unk_004 = temp_v1;
|
||||
temp_v0->unk_004 = arg1;
|
||||
temp_v1 = temp_v0->unk_04;
|
||||
arg1->unk_08 = temp_v0;
|
||||
arg1->unk_04 = temp_v1;
|
||||
temp_v0->unk_04 = arg1;
|
||||
temp_v1->unk_08 = arg1;
|
||||
}
|
||||
}
|
||||
|
||||
12
src/11BA0.h
12
src/11BA0.h
@@ -4,9 +4,15 @@
|
||||
#include "global.h"
|
||||
#include "src/memory.h"
|
||||
|
||||
unk_D_86002F58_004_000* func_8001103C(MainPoolState*, void*);
|
||||
unk_D_86002F58_004_000* func_80011938(s32 arg0, unk_D_86002F58_004_000* arg1, s16 arg2, Vec3f* arg3, Vec3s* arg4, Vec3f* arg5);
|
||||
void func_80012094(unk_D_800AC840*, unk_D_86002F58_004_000*);
|
||||
typedef struct unk_func_80011B94 {
|
||||
/* 0x00 */ unk_D_86002F58_004_000_000 unk_00;
|
||||
/* 0x18 */ Gfx* unk_18;
|
||||
} unk_func_80011B94; // size = 0x1C
|
||||
|
||||
unk_D_86002F58_004_000_000* func_8001103C(MainPoolState*, void*);
|
||||
unk_D_86002F58_004_000* func_80011938(MainPoolState* arg0, unk_D_86002F58_004_000* arg1, s16 arg2, Vec3f* arg3, Vec3s* arg4, Vec3f* arg5);
|
||||
unk_func_80011B94* func_80011B94(MainPoolState*, void*, s32, Gfx*);
|
||||
void func_80012094(unk_D_86002F58_004_000_000*, unk_D_86002F58_004_000_000*);
|
||||
|
||||
|
||||
#endif // _11BA0_H_
|
||||
|
||||
36
src/1C720.c
36
src/1C720.c
@@ -15,20 +15,20 @@ void func_8001BB20(void) {
|
||||
}
|
||||
|
||||
void func_8001BB58(unk_D_86002F58_004_000* arg0) {
|
||||
func_80011938(0, arg0, 0, D_8006F050, D_8006F05C, D_8006F064);
|
||||
func_80012094(&D_800AC840, arg0);
|
||||
func_80011938(NULL, arg0, 0, &D_8006F050, &D_8006F05C, &D_8006F064);
|
||||
func_80012094(&D_800AC840, &arg0->unk_000);
|
||||
arg0->unk_0A6 = 0;
|
||||
arg0->unk_001 &= ~1;
|
||||
arg0->unk_000.unk_01 &= ~1;
|
||||
}
|
||||
|
||||
void func_8001BBC8(unk_D_86002F58_004_000* arg0) {
|
||||
func_80011938(0, arg0, 0, D_8006F050, D_8006F05C, D_8006F064);
|
||||
func_80012094(&D_800AC858, arg0);
|
||||
arg0->unk_001 &= ~1;
|
||||
func_80011938(NULL, arg0, 0, &D_8006F050, &D_8006F05C, &D_8006F064);
|
||||
func_80012094(&D_800AC858, &arg0->unk_000);
|
||||
arg0->unk_000.unk_01 &= ~1;
|
||||
}
|
||||
|
||||
void func_8001BC34(unk_D_86002F58_004_000* arg0, s16 arg1, s16 arg2, unk_D_86002F58_004_000_004* arg3) {
|
||||
func_80012094(arg0, arg3);
|
||||
func_80012094(&arg0->unk_000, arg3);
|
||||
func_8000ED98(&arg0->unk_060);
|
||||
arg0->unk_018 = arg1;
|
||||
arg0->unk_01A = arg2;
|
||||
@@ -36,12 +36,12 @@ void func_8001BC34(unk_D_86002F58_004_000* arg0, s16 arg1, s16 arg2, unk_D_86002
|
||||
arg0->unk_01D = 0xFF;
|
||||
arg0->unk_01C = 0;
|
||||
|
||||
arg0->unk_001 |= 0x1;
|
||||
arg0->unk_000.unk_01 |= 0x1;
|
||||
|
||||
arg0->unk_002 &= ~0x4;
|
||||
arg0->unk_002 |= 0x20;
|
||||
arg0->unk_002 |= 0x40;
|
||||
arg0->unk_002 &= ~0x2;
|
||||
arg0->unk_000.unk_02 &= ~0x4;
|
||||
arg0->unk_000.unk_02 |= 0x20;
|
||||
arg0->unk_000.unk_02 |= 0x40;
|
||||
arg0->unk_000.unk_02 &= ~0x2;
|
||||
|
||||
arg0->unk_0A0 = -0x100;
|
||||
arg0->unk_03C = -0x100;
|
||||
@@ -50,7 +50,7 @@ void func_8001BC34(unk_D_86002F58_004_000* arg0, s16 arg1, s16 arg2, unk_D_86002
|
||||
arg0->unk_054 = -1;
|
||||
arg0->unk_058 = 0;
|
||||
|
||||
arg0->unk_002 &= ~0x8;
|
||||
arg0->unk_000.unk_02 &= ~0x8;
|
||||
|
||||
if (arg2 > 0) {
|
||||
func_8003260C(arg0);
|
||||
@@ -58,12 +58,12 @@ void func_8001BC34(unk_D_86002F58_004_000* arg0, s16 arg1, s16 arg2, unk_D_86002
|
||||
}
|
||||
|
||||
void func_8001BCF0(unk_D_86002F58_004_000* arg0) {
|
||||
arg0->unk_00C = NULL;
|
||||
arg0->unk_001 &= ~1;
|
||||
arg0->unk_000.unk_0C = NULL;
|
||||
arg0->unk_000.unk_01 &= ~1;
|
||||
}
|
||||
|
||||
s32 func_8001BD04(unk_D_86002F58_004_000* arg0, s32 arg1) {
|
||||
unk_D_86002F58_004_000_00C* tmp = arg0->unk_00C;
|
||||
unk_D_86002F58_004_000_00C* tmp = arg0->unk_000.unk_0C;
|
||||
unk_D_86002F58_004_000_00C_028* temp_v0 = tmp->unk_28(0, 0);
|
||||
|
||||
if (arg1 == -1) {
|
||||
@@ -77,7 +77,7 @@ s32 func_8001BD04(unk_D_86002F58_004_000* arg0, s32 arg1) {
|
||||
}
|
||||
|
||||
s32 func_8001BD9C(unk_D_86002F58_004_000* arg0, s32 arg1) {
|
||||
unk_D_86002F58_004_000_00C* temp_v0 = arg0->unk_00C;
|
||||
unk_D_86002F58_004_000_00C* temp_v0 = arg0->unk_000.unk_0C;
|
||||
unk_D_86002F58_004_000_00C_028* temp_v1 = temp_v0->unk_28(0, 0);
|
||||
|
||||
if (arg1 == -1) {
|
||||
@@ -110,7 +110,7 @@ unk_D_86002F58_004_000_00C_028* func_8001BE90(unk_D_86002F58_004_000* arg0, s32
|
||||
}
|
||||
|
||||
if (arg0 != NULL) {
|
||||
unk_D_86002F58_004_000_00C* tmp = arg0->unk_00C;
|
||||
unk_D_86002F58_004_000_00C* tmp = arg0->unk_000.unk_0C;
|
||||
|
||||
var_v1 = tmp->unk_28(arg1, 0);
|
||||
}
|
||||
|
||||
47
src/1CF30.c
47
src/1CF30.c
@@ -58,7 +58,7 @@ void func_8001C604(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u8 arg4, u8 arg5, u8
|
||||
func_8001C330(arg0, arg1, arg2, arg3, 0, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
void func_8001C6AC(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32 arg4, s16 arg5, s32 arg6) {
|
||||
void func_8001C6AC(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32* arg4, s16 arg5, s32 arg6) {
|
||||
gDPLoadTextureBlock(gDisplayListHead++, arg4, G_IM_FMT_RGBA, G_IM_SIZ_16b, arg5, arg3, 0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
|
||||
G_TX_NOLOD);
|
||||
@@ -66,7 +66,7 @@ void func_8001C6AC(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32 arg4, s16 arg5, s
|
||||
func_8001C330(arg0, arg1, arg2, arg3, 0, 0, 0x400, 0x400, arg6);
|
||||
}
|
||||
|
||||
void func_8001C8C4(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32 arg4, s16 arg5, s32 arg6) {
|
||||
void func_8001C8C4(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32* arg4, s16 arg5, s32 arg6) {
|
||||
gDPLoadTextureBlock(gDisplayListHead++, arg4, G_IM_FMT_RGBA, G_IM_SIZ_32b, arg5, arg3, 0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
|
||||
G_TX_NOLOD);
|
||||
@@ -74,40 +74,40 @@ void func_8001C8C4(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32 arg4, s16 arg5, s
|
||||
func_8001C330(arg0, arg1, arg2, arg3, 0, 0, 0x400, 0x400, arg6);
|
||||
}
|
||||
|
||||
void func_8001CADC(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32 arg4, s16 arg5, s32 arg6) {
|
||||
void func_8001CADC(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32* arg4, s16 arg5, s32 arg6) {
|
||||
gDPLoadTextureBlock(gDisplayListHead++, arg4, G_IM_FMT_IA, G_IM_SIZ_8b, arg5, arg3, 0, G_TX_NOMIRROR | G_TX_CLAMP,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
func_8001C330(arg0, arg1, arg2, arg3, 0, 0, 0x400, 0x400, arg6);
|
||||
}
|
||||
|
||||
void func_8001CCF8(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32 arg4, s16 arg5, s32 arg6) {
|
||||
void func_8001CCF8(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32* arg4, s16 arg5, s32 arg6) {
|
||||
gDPLoadTextureBlock(gDisplayListHead++, arg4, G_IM_FMT_IA, G_IM_SIZ_16b, arg5, arg3, 0, G_TX_NOMIRROR | G_TX_CLAMP,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
func_8001C330(arg0, arg1, arg2, arg3, 0, 0, 0x400, 0x400, arg6);
|
||||
}
|
||||
|
||||
void func_8001CF10(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32 arg4, s16 arg5, s32 arg6) {
|
||||
void func_8001CF10(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32* arg4, s16 arg5, s32 arg6) {
|
||||
gDPLoadTextureBlock_4b(gDisplayListHead++, arg4, G_IM_FMT_I, arg5, arg3, 0, G_TX_NOMIRROR | G_TX_CLAMP,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
|
||||
func_8001C330(arg0, arg1, arg2, arg3, 0, 0, 0x400, 0x400, arg6);
|
||||
}
|
||||
|
||||
void func_8001D12C(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32 arg4, s16 arg5, s32 arg6) {
|
||||
void func_8001D12C(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32* arg4, s16 arg5, s32 arg6) {
|
||||
gDPLoadTextureBlock(gDisplayListHead++, arg4, G_IM_FMT_I, G_IM_SIZ_8b, arg5, arg3, 0, G_TX_NOMIRROR | G_TX_CLAMP,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
|
||||
func_8001C330(arg0, arg1, arg2, arg3, 0, 0, 0x400, 0x400, arg6);
|
||||
}
|
||||
|
||||
void func_8001D348(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32 arg4, s16 arg5, s32 arg6) {
|
||||
void func_8001D348(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32* arg4, s16 arg5, s32 arg6) {
|
||||
gDPLoadTextureBlock(gDisplayListHead++, arg4, G_IM_FMT_I, G_IM_SIZ_16b, arg5, arg3, 0, G_TX_NOMIRROR | G_TX_CLAMP,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
|
||||
func_8001C330(arg0, arg1, arg2, arg3, 0, 0, 0x400, 0x400, arg6);
|
||||
}
|
||||
|
||||
void func_8001D560(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32 arg4, u32 arg5, s16 arg6, s32 arg7) {
|
||||
void func_8001D560(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32* arg4, u32* arg5, s16 arg6, s32 arg7) {
|
||||
gDPLoadTextureBlock(gDisplayListHead++, arg4, G_IM_FMT_RGBA, G_IM_SIZ_16b, arg6, arg3, 0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
|
||||
G_TX_NOLOD);
|
||||
@@ -260,11 +260,11 @@ void func_8001E000(s16 arg0, s16 arg1, s16 arg2, f32 arg3, Vtx* arg4, u32 arg5)
|
||||
}
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
unk_func_8001E680* func_8001E490(void) {
|
||||
Vtx* func_8001E490(void) {
|
||||
s16 i;
|
||||
s16 j;
|
||||
unk_func_8001E680* sp54;
|
||||
unk_func_8001E680* var_s0;
|
||||
Vtx* sp54;
|
||||
Vtx* var_s0;
|
||||
|
||||
sp54 = main_pool_alloc(0x4B00, 0);
|
||||
if (sp54 != NULL) {
|
||||
@@ -283,22 +283,21 @@ unk_func_8001E680* func_8001E490(void) {
|
||||
return sp54;
|
||||
}
|
||||
#else
|
||||
unk_func_8001E680* func_8001E490(void);
|
||||
Vtx* func_8001E490(void);
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/1CF30/func_8001E490.s")
|
||||
#endif
|
||||
|
||||
void func_8001E680(unk_func_8001E680* arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5, u8 arg6, u8 arg7, u8 arg8,
|
||||
u8 arg9) {
|
||||
arg0->unk_00 = arg1;
|
||||
arg0->unk_02 = arg2;
|
||||
arg0->unk_04 = arg3;
|
||||
arg0->unk_06 = 0;
|
||||
arg0->unk_08 = arg4;
|
||||
arg0->unk_0A = arg5;
|
||||
arg0->unk_0C = arg6;
|
||||
arg0->unk_0D = arg7;
|
||||
arg0->unk_0E = arg8;
|
||||
arg0->unk_0F = arg9;
|
||||
void func_8001E680(Vtx* arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5, u8 arg6, u8 arg7, u8 arg8, u8 arg9) {
|
||||
arg0->v.ob[0] = arg1;
|
||||
arg0->v.ob[1] = arg2;
|
||||
arg0->v.ob[2] = arg3;
|
||||
arg0->v.flag = 0;
|
||||
arg0->v.tc[0] = arg4;
|
||||
arg0->v.tc[1] = arg5;
|
||||
arg0->v.cn[0] = arg6;
|
||||
arg0->v.cn[1] = arg7;
|
||||
arg0->v.cn[2] = arg8;
|
||||
arg0->v.cn[3] = arg9;
|
||||
}
|
||||
|
||||
void func_8001E6E8(Vp* arg0, s16 arg1, s16 arg2) {
|
||||
|
||||
35
src/1CF30.h
35
src/1CF30.h
@@ -3,35 +3,23 @@
|
||||
|
||||
#include "global.h"
|
||||
|
||||
typedef struct unk_func_8001E680 {
|
||||
/* 0x00 */ s16 unk_00;
|
||||
/* 0x02 */ s16 unk_02;
|
||||
/* 0x04 */ s16 unk_04;
|
||||
/* 0x06 */ s16 unk_06;
|
||||
/* 0x08 */ s16 unk_08;
|
||||
/* 0x0A */ s16 unk_0A;
|
||||
/* 0x0C */ u8 unk_0C;
|
||||
/* 0x0D */ u8 unk_0D;
|
||||
/* 0x0E */ u8 unk_0E;
|
||||
/* 0x0F */ u8 unk_0F;
|
||||
} unk_func_8001E680; // size = 0x10
|
||||
|
||||
void func_8001C330(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5, s16 arg6, s16 arg7, s32 arg8);
|
||||
void func_8001C4E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6);
|
||||
void func_8001C560(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u8 arg4, u8 arg5, u8 arg6);
|
||||
void func_8001C604(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u8 arg4, u8 arg5, u8 arg6, u8 arg7);
|
||||
void func_8001C6AC(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32 arg4, s16 arg5, s32 arg6);
|
||||
void func_8001C8C4(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32 arg4, s16 arg5, s32 arg6);
|
||||
void func_8001CADC(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32 arg4, s16 arg5, s32 arg6);
|
||||
void func_8001CCF8(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32 arg4, s16 arg5, s32 arg6);
|
||||
void func_8001CF10(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32 arg4, s16 arg5, s32 arg6);
|
||||
void func_8001D12C(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32 arg4, s16 arg5, s32 arg6);
|
||||
void func_8001D348(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32 arg4, s16 arg5, s32 arg6);
|
||||
void func_8001D560(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32 arg4, u32 arg5, s16 arg6, s32 arg7);
|
||||
void func_8001C6AC(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32* arg4, s16 arg5, s32 arg6);
|
||||
void func_8001C8C4(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32* arg4, s16 arg5, s32 arg6);
|
||||
void func_8001CADC(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32* arg4, s16 arg5, s32 arg6);
|
||||
void func_8001CCF8(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32* arg4, s16 arg5, s32 arg6);
|
||||
void func_8001CF10(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32* arg4, s16 arg5, s32 arg6);
|
||||
void func_8001D12C(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32* arg4, s16 arg5, s32 arg6);
|
||||
void func_8001D348(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32* arg4, s16 arg5, s32 arg6);
|
||||
void func_8001D560(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u32* arg4, u32* arg5, s16 arg6, s32 arg7);
|
||||
void func_8001D924(u32 arg0);
|
||||
void func_8001DBDC(u32 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4);
|
||||
void func_8001E000(s16 arg0, s16 arg1, s16 arg2, f32 arg3, Vtx* arg4, u32 arg5);
|
||||
unk_func_8001E680* func_8001E490(void);
|
||||
void func_8001E680(unk_func_8001E680* arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5, u8 arg6, u8 arg7, u8 arg8, u8 arg9);
|
||||
Vtx* func_8001E490(void);
|
||||
void func_8001E680(Vtx* arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5, u8 arg6, u8 arg7, u8 arg8, u8 arg9);
|
||||
void func_8001E6E8(Vp* arg0, s16 arg1, s16 arg2);
|
||||
u8 func_8001E730(u16 arg0);
|
||||
u8 func_8001E78C(unk_D_800AC870_sub* arg0, u16 arg1);
|
||||
@@ -62,5 +50,4 @@ void func_8001F504(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s
|
||||
s32 func_8001F5B0(s32 x, s32 y, const char* fmt, ...);
|
||||
void func_8001F6E8(s32 arg0, s32 arg1);
|
||||
|
||||
|
||||
#endif // _1CF30_H_
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "global.h"
|
||||
|
||||
void func_80020460(s32, s32, s32, s32, s32);
|
||||
void func_8002053C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, u8*, u8*);
|
||||
|
||||
|
||||
#endif // _20470_H_
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#include "global.h"
|
||||
#include "26820.h"
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/26820/func_80025C20.s")
|
||||
|
||||
|
||||
11
src/26820.h
Normal file
11
src/26820.h
Normal file
@@ -0,0 +1,11 @@
|
||||
#ifndef _26820_H_
|
||||
#define _26820_H_
|
||||
|
||||
#include "global.h"
|
||||
|
||||
void func_80026684(s32, s32);
|
||||
void func_800280D4(s32);
|
||||
void func_800284B4(s32);
|
||||
void func_80028AFC(s32);
|
||||
|
||||
#endif // _26820_H_
|
||||
@@ -3,7 +3,11 @@
|
||||
|
||||
#include "global.h"
|
||||
|
||||
void func_8002D510(void);
|
||||
s32 func_8002D5AC(s32);
|
||||
void func_8002D600(s32, s16);
|
||||
char* func_8002D7C0(char* arg0, s32 arg1, s32 arg2, s32 arg3);
|
||||
s32 func_8002D80C(char*);
|
||||
|
||||
|
||||
#endif // _2E110_H_
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "global.h"
|
||||
|
||||
s32 func_800484C0(s32);
|
||||
s32 func_800484E0(void);
|
||||
|
||||
#endif // _490A0_H_
|
||||
|
||||
@@ -3,7 +3,10 @@
|
||||
|
||||
#include "global.h"
|
||||
|
||||
void func_8004B094(u32);
|
||||
void func_8004AE90(s32 arg0, u32 arg1);
|
||||
void func_8004AF24(s32 arg0);
|
||||
void func_8004AF44(u32 arg0);
|
||||
void func_8004B094(u32 arg0);
|
||||
void func_8004B154(void);
|
||||
|
||||
#endif // _4BA90_H_
|
||||
|
||||
@@ -952,7 +952,7 @@ s32 func_8004D3B0(s32 arg0, s32 arg1, s32 arg2) {
|
||||
void func_8004D848(UNUSED s32 arg0, UNUSED s32 arg1, UNUSED s32 arg2) {
|
||||
}
|
||||
|
||||
s32 func_8004D858(s32 arg0, s32 arg1) {
|
||||
s32 func_8004D858(s32 arg0, u32 arg1) {
|
||||
static s32 D_80079008 = 0x00000000;
|
||||
static s32 D_8007900C = 0x00000000;
|
||||
static s32 D_80079010 = 0x00000000;
|
||||
|
||||
29
src/4CBC0.h
29
src/4CBC0.h
@@ -6,8 +6,33 @@
|
||||
extern s32 D_80078FA8;
|
||||
extern u32 D_80079014;
|
||||
|
||||
s32 func_8004BFC0(s32 arg0, s32 arg1, s32 arg2);
|
||||
void func_8004C16C(UNUSED s32 arg0, UNUSED s32 arg1, UNUSED s32 arg2);
|
||||
s32 func_8004C17C(s32 arg0, s32 arg1, s32 arg2);
|
||||
void func_8004C444(UNUSED s32 arg0, UNUSED s32 arg1, UNUSED s32 arg2);
|
||||
s32 func_8004C454(u32 arg0, u32 arg1);
|
||||
s32 func_8004C4FC(s32 arg0, s32 arg1, s32 arg2);
|
||||
void func_8004C6CC(UNUSED s32 arg0, UNUSED s32 arg1, UNUSED s32 arg2);
|
||||
s32 func_8004C6DC(s32 arg0, s32 arg1, s32 arg2);
|
||||
void func_8004C8A4(UNUSED s32 arg0, UNUSED s32 arg1, UNUSED s32 arg2);
|
||||
s32 func_8004C8B4(s32 arg0, s32 arg1, UNUSED s32 arg2);
|
||||
void func_8004CA6C(UNUSED s32 arg0, UNUSED s32 arg1, UNUSED s32 arg2);
|
||||
s32 func_8004CA7C(s32 arg0, s32 arg1, UNUSED s32 arg2);
|
||||
void func_8004CC10(UNUSED s32 arg0, UNUSED s32 arg1, UNUSED s32 arg2);
|
||||
void func_8004CC20(s32 arg0, u32 arg1);
|
||||
u32 func_8004CC34(void);
|
||||
f32 func_8004CC94(void);
|
||||
s32 func_8004CCD8(s32 arg0, s32 arg1, s32 arg2);
|
||||
void func_8004D16C(s32 arg0, s32 arg1, UNUSED s32 arg2);
|
||||
s32 func_8004D1B0(s32 arg0, UNUSED s32 arg1, UNUSED s32 arg2);
|
||||
void func_8004D3A0(UNUSED s32 arg0, UNUSED s32 arg1, UNUSED s32 arg2);
|
||||
s32 func_8004D3B0(s32 arg0, s32 arg1, s32 arg2);
|
||||
void func_8004D848(UNUSED s32 arg0, UNUSED s32 arg1, UNUSED s32 arg2);
|
||||
s32 func_8004D858(s32 arg0, u32 arg1);
|
||||
s32 func_8004D9B0(s32 arg0, s32 arg1, s32 arg2);
|
||||
s32 func_8004DDA4(s32, s32, s32);
|
||||
s32 func_8004DF94(s32, s32, s32);
|
||||
void func_8004DC8C(s32 arg0, s32 arg1, s32 arg2);
|
||||
s32 func_8004DDA4(s32 arg0, UNUSED s32 arg1, UNUSED s32 arg2);
|
||||
s32 func_8004DF94(s32 arg0, s32 arg1, s32 arg2);
|
||||
s32 func_8004E304(s32 arg0, UNUSED s32 arg1, UNUSED s32 arg2);
|
||||
|
||||
#endif // _4CBC0_H_
|
||||
|
||||
@@ -1,88 +1,598 @@
|
||||
#include "global.h"
|
||||
#include "fragment2.h"
|
||||
#include "src/1CF30.h"
|
||||
#include "src/2E110.h"
|
||||
#include "src/controller.h"
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_87800020.s")
|
||||
extern u32 D_878067F0[];
|
||||
extern u32 D_87807690[];
|
||||
extern u32 D_87808530[];
|
||||
extern u32 D_878093D0[];
|
||||
extern u32 D_8780B110[];
|
||||
extern u32 D_8780BFB0[];
|
||||
extern u32 D_8780CE50[];
|
||||
extern u32 D_8780DCF0[];
|
||||
extern u32 D_8780A270[];
|
||||
extern u32 D_878064F0[];
|
||||
extern u32 D_87806670[];
|
||||
extern u32 D_878065B0[];
|
||||
extern u32 D_87806730[];
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_8780005C.s")
|
||||
s32 D_87806330 = 0;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_878001D0.s")
|
||||
static s32 D_8780FA20;
|
||||
static s32 D_8780FA24;
|
||||
u16 D_8780FA28;
|
||||
s16 D_8780FA2A;
|
||||
s16 D_8780FA2C;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_878001E8.s")
|
||||
s16 D_8780FA30[4];
|
||||
s16 D_8780FA38;
|
||||
s16 D_8780FA3A;
|
||||
s16 D_8780FA40[4];
|
||||
s16 D_8780FA48;
|
||||
|
||||
static s32 pad_D_8780FA4C;
|
||||
|
||||
s16 D_8780FA50;
|
||||
s16 D_8780FA52[2][4];
|
||||
s16 D_8780FA68[4];
|
||||
u32* D_8780FA70;
|
||||
|
||||
void func_87800020(void) {
|
||||
func_8002D510();
|
||||
D_87806330 = func_8002D5AC(0x1D);
|
||||
D_8780FA24 = func_8002D5AC(0x14);
|
||||
}
|
||||
|
||||
void func_8780005C(void) {
|
||||
static s32 D_87806334 = 0;
|
||||
|
||||
s32 sp24;
|
||||
s16 temp_s0;
|
||||
|
||||
if (!(Cont_GetControllerBits() & 1)) {
|
||||
sp24 = func_8001F5B0(4, 0, func_8002D7C0(NULL, 0, D_8780FA24, 0));
|
||||
temp_s0 = 0x50 - D_87806334;
|
||||
|
||||
gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 16, 0, 304, 240);
|
||||
|
||||
func_8001F3F4();
|
||||
func_8001EBE0(4, 0);
|
||||
func_8001F1E8(temp_s0, 0xB3, func_8002D7C0(NULL, 0, D_8780FA24, 0));
|
||||
|
||||
temp_s0 += sp24 + 0x1E;
|
||||
if (temp_s0 < 0x140) {
|
||||
func_8001F1E8(temp_s0, 0xB3, func_8002D7C0(NULL, 0, D_8780FA24, 0));
|
||||
}
|
||||
|
||||
func_8001F444();
|
||||
|
||||
gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, 0, 320, 240);
|
||||
|
||||
D_87806334++;
|
||||
if (D_87806334 >= (sp24 + 0x50)) {
|
||||
D_87806334 = 0x32;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_878001D0(void) {
|
||||
D_8780FA20++;
|
||||
}
|
||||
|
||||
u32 func_878001E8(s32 arg0) {
|
||||
u32 temp_a0 = guRandom() + D_8780FA20;
|
||||
u32 var_v1;
|
||||
|
||||
if (arg0 == 0) {
|
||||
var_v1 = 0;
|
||||
} else {
|
||||
var_v1 = (temp_a0 / 10) % arg0;
|
||||
}
|
||||
|
||||
return var_v1;
|
||||
}
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
void func_8780024C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) {
|
||||
s32 temp_lo;
|
||||
s32 spF0;
|
||||
|
||||
spF0 = arg2 - 2;
|
||||
temp_lo = ((arg4 - arg3) * spF0) / arg4;
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F518);
|
||||
|
||||
gDPPipeSync(gDisplayListHead++);
|
||||
gDPSetPrimColor(gDisplayListHead++, 0, 0, 0, 0, 0, 0);
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_PRIMITIVE, G_CC_PRIMITIVE);
|
||||
gDPSetRenderMode(gDisplayListHead++, G_RM_XLU_SURF, G_RM_XLU_SURF2);
|
||||
|
||||
gSPTextureRectangle(gDisplayListHead++, (arg0 - 2) << 2, (arg1 - 2) << 2, (arg0 + arg2 + 8) << 2, (arg1 + 16) << 2,
|
||||
G_TX_RENDERTILE, 0, 0, 0, 0);
|
||||
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_DECALRGBA, G_CC_DECALRGBA);
|
||||
gDPLoadTextureBlock(gDisplayListHead++, D_878064F0, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 12, 0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
|
||||
G_TX_NOLOD);
|
||||
|
||||
gSPTextureRectangle(gDisplayListHead++, arg0 << 2, arg1 << 2, (arg0 + 2) << 2, (arg1 + 0xC) << 2, G_TX_RENDERTILE,
|
||||
0, 0, 0x0400, 0x0400);
|
||||
|
||||
gDPLoadTextureBlock(gDisplayListHead++, D_87806670, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 12, 0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
|
||||
G_TX_NOLOD);
|
||||
|
||||
gSPTextureRectangle(gDisplayListHead++, ((arg0 + spF0) + 2) << 2, arg1 << 2, ((arg0 + spF0) + 4) << 2,
|
||||
(arg1 + 0xC) << 2, G_TX_RENDERTILE, 0x00C0, 0, 0x0400, 0x0400);
|
||||
|
||||
spF0 = (arg2 - temp_lo) - 2;
|
||||
|
||||
if (spF0 > 0) {
|
||||
gDPLoadTextureBlock(gDisplayListHead++, D_87806730, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 12, 0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK,
|
||||
G_TX_NOLOD, G_TX_NOLOD);
|
||||
gSPTextureRectangle(gDisplayListHead++, (arg0 + 2) << 2, arg1 << 2, ((arg0 + 2) + spF0) << 2, (arg1 + 0xC) << 2,
|
||||
G_TX_RENDERTILE, 0, 0, 0, 0x0400);
|
||||
}
|
||||
|
||||
if (temp_lo > 0) {
|
||||
gDPLoadTextureBlock(gDisplayListHead++, D_878065B0, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 12, 0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK,
|
||||
G_TX_NOLOD, G_TX_NOLOD);
|
||||
gSPTextureRectangle(gDisplayListHead++, ((arg0 + 2) + spF0) << 2, arg1 << 2,
|
||||
(((arg0 + 2) + spF0) + temp_lo) << 2, (arg1 + 0xC) << 2, G_TX_RENDERTILE, 0, 0, 0, 0x0400);
|
||||
}
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F630);
|
||||
}
|
||||
#else
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_8780024C.s")
|
||||
#endif
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
void func_878009BC(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
|
||||
u32* spCC;
|
||||
s32 sp14;
|
||||
s32 temp_lo;
|
||||
|
||||
if (arg2 < ((arg3 * 0xA) / 48)) {
|
||||
spCC = D_87806730;
|
||||
} else if (arg2 < ((arg3 * 0x1B) / 48)) {
|
||||
spCC = D_87806730;
|
||||
} else {
|
||||
spCC = D_878065B0;
|
||||
}
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F518);
|
||||
|
||||
gDPLoadTextureBlock(gDisplayListHead++, D_878064F0, G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 5, 0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
|
||||
G_TX_NOLOD);
|
||||
gSPTextureRectangle(gDisplayListHead++, arg0 << 2, arg1 << 2, (arg0 + 0x10) << 2, (arg1 + 5) << 2, G_TX_RENDERTILE,
|
||||
0, 0, 0x0400, 0x0400);
|
||||
|
||||
gDPLoadTextureBlock(gDisplayListHead++, D_87806670, G_IM_FMT_RGBA, G_IM_SIZ_16b, 4, 5, 0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
|
||||
G_TX_NOLOD);
|
||||
gSPTextureRectangle(gDisplayListHead++, (arg0 + 0x40) << 2, arg1 << 2, (arg0 + 0x41) << 2, (arg1 + 5) << 2,
|
||||
G_TX_RENDERTILE, 0, 0, 0x0400, 0x0400);
|
||||
|
||||
temp_lo = ((arg3 - arg2) * 0x30) / arg3;
|
||||
sp14 = 0x30 - temp_lo;
|
||||
|
||||
if (sp14 > 0) {
|
||||
gDPLoadTextureBlock(gDisplayListHead++, spCC, G_IM_FMT_RGBA, G_IM_SIZ_16b, 4, 5, 0, G_TX_NOMIRROR | G_TX_CLAMP,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
gSPTextureRectangle(gDisplayListHead++, (arg0 + 0x10) << 2, arg1 << 2, (arg0 + sp14 + 0x10) << 2,
|
||||
(arg1 + 5) << 2, G_TX_RENDERTILE, 0, 0, 0, 0x0400);
|
||||
}
|
||||
|
||||
if (temp_lo > 0) {
|
||||
gDPLoadTextureBlock(gDisplayListHead++, D_1003E78, G_IM_FMT_RGBA, G_IM_SIZ_16b, 4, 5, 0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK,
|
||||
G_TX_NOLOD, G_TX_NOLOD);
|
||||
gSPTextureRectangle(gDisplayListHead++, ((arg0 + sp14) + 0x10) << 2, arg1 << 2,
|
||||
((arg0 + sp14) + temp_lo + 0x10) << 2, (arg1 + 5) << 2, G_TX_RENDERTILE, 0, 0, 0, 0x0400);
|
||||
}
|
||||
|
||||
gSPDisplayList(gDisplayListHead++, D_8006F630);
|
||||
}
|
||||
#else
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_878009BC.s")
|
||||
#endif
|
||||
|
||||
s16 D_87806338 = -1;
|
||||
u32* D_8780633C[] = { D_878067F0, D_87807690, D_87808530, D_878093D0 };
|
||||
u32* D_8780634C[] = { D_8780B110, D_8780BFB0, D_8780CE50, D_8780DCF0, D_8780A270 };
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
void func_878010C8(s16 arg0) {
|
||||
s32 i;
|
||||
|
||||
D_8780FA28 = 0;
|
||||
D_87806338 = arg0;
|
||||
D_8780FA2A = 0;
|
||||
D_8780FA2C = 0;
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
D_8780FA30[i] = 1;
|
||||
}
|
||||
|
||||
if (arg0 == 3) {
|
||||
D_8780FA38 = 1;
|
||||
} else {
|
||||
D_8780FA38 = 3;
|
||||
}
|
||||
|
||||
D_8780FA3A = 3;
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
D_8780FA40[i] = 0;
|
||||
}
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
D_8780FA68[i] = 0;
|
||||
}
|
||||
|
||||
func_87800020();
|
||||
}
|
||||
#else
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_878010C8.s")
|
||||
#endif
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_8780118C.s")
|
||||
void func_8780118C(s16 arg0, s16 arg1, s16 arg2, s16 arg3) {
|
||||
gDPPipeSync(gDisplayListHead++);
|
||||
gDPSetRenderMode(gDisplayListHead++,
|
||||
IM_RD | CVG_DST_FULL | ZMODE_OPA | CVG_X_ALPHA | FORCE_BL |
|
||||
GBL_c1(G_BL_CLR_MEM, G_BL_0, G_BL_CLR_MEM, G_BL_1MA),
|
||||
IM_RD | CVG_DST_FULL | ZMODE_OPA | CVG_X_ALPHA | FORCE_BL |
|
||||
GBL_c2(G_BL_CLR_MEM, G_BL_0, G_BL_CLR_MEM, G_BL_1MA));
|
||||
gDPSetCombineMode(gDisplayListHead++, G_CC_SHADE, G_CC_SHADE);
|
||||
gDPSetCycleType(gDisplayListHead++, G_CYC_1CYCLE);
|
||||
gDPFillRectangle(gDisplayListHead++, arg0, arg1, arg0 + arg2, arg1 + arg3);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_87801290.s")
|
||||
void func_87801290(s32* arg0, s32* arg1, s8* arg2, s8* arg3, s32 arg4) {
|
||||
s32 var_a1;
|
||||
s32 var_t2;
|
||||
s8 sp38[0x100];
|
||||
s8* var_a2;
|
||||
s32 sp30;
|
||||
s8* var_t0;
|
||||
s8* var_t1;
|
||||
s8* var_v0;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_878013D4.s")
|
||||
*arg0 = -1;
|
||||
var_t1 = arg2;
|
||||
*arg1 = -1;
|
||||
var_t0 = sp38;
|
||||
var_t2 = 0;
|
||||
|
||||
while (*var_t1 != 0) {
|
||||
var_a2 = arg3;
|
||||
var_v0 = var_t1;
|
||||
|
||||
if (*var_t1 != *var_a2) {
|
||||
*var_t0++ = *var_t1;
|
||||
} else {
|
||||
var_a1 = 1;
|
||||
|
||||
while (*var_a2 != 0) {
|
||||
if (*var_v0 != *var_a2) {
|
||||
var_a1 = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
var_v0++;
|
||||
var_a2++;
|
||||
}
|
||||
|
||||
if (var_a1 != 0) {
|
||||
var_t2 = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
*var_t0++ = *var_t1;
|
||||
}
|
||||
var_t1++;
|
||||
}
|
||||
|
||||
*var_t0 = 0;
|
||||
var_t0 = sp38;
|
||||
var_a2 = var_t0;
|
||||
sp30 = 0;
|
||||
|
||||
while (*var_t0 != 0) {
|
||||
if (*var_t0 == 0xA) {
|
||||
sp30 += 1;
|
||||
var_a2 = var_t0;
|
||||
}
|
||||
var_t0++;
|
||||
}
|
||||
|
||||
if (var_t2 != 0) {
|
||||
*arg0 = func_8001F5B0(0, 0, (char*)var_a2);
|
||||
*arg1 = arg4 * sp30;
|
||||
}
|
||||
}
|
||||
|
||||
s32 func_878013D4(UNUSED unk_D_800AC870* arg0, char* arg1) {
|
||||
return func_8001F5B0(0, 0, arg1);
|
||||
}
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
void func_87801400(s32 arg0, s16 arg1, s16 arg2, f32 arg3, f32 arg4) {
|
||||
f32 temp_fa0;
|
||||
f32 temp_fv1;
|
||||
s16 a;
|
||||
s16 b;
|
||||
u32* var_t3;
|
||||
|
||||
if ((arg3 != 0.0f) && (arg4 != 0.0f)) {
|
||||
if (arg0 < 0) {
|
||||
arg0 = -1 - arg0;
|
||||
var_t3 = D_8780634C[arg0];
|
||||
} else {
|
||||
var_t3 = D_8780633C[arg0 % 4];
|
||||
}
|
||||
|
||||
gDPLoadTextureBlock(gDisplayListHead++, var_t3, G_IM_FMT_RGBA, G_IM_SIZ_32b, 36, 26, 0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK,
|
||||
G_TX_NOLOD, G_TX_NOLOD);
|
||||
D_8780FA70 = var_t3;
|
||||
|
||||
temp_fa0 = 36.0f * arg3;
|
||||
if (temp_fa0 > 0.0f) {
|
||||
temp_fv1 = 0.5f;
|
||||
} else {
|
||||
temp_fv1 = -0.5f;
|
||||
}
|
||||
a = temp_fv1 + temp_fa0;
|
||||
|
||||
temp_fa0 = 26.0f * arg4;
|
||||
if (temp_fa0 > 0.0f) {
|
||||
temp_fv1 = 0.5f;
|
||||
} else {
|
||||
temp_fv1 = -0.5f;
|
||||
}
|
||||
b = temp_fv1 + temp_fa0;
|
||||
|
||||
func_8001C330(arg1, arg2, a, b, 0, 0, 1024.0f / arg3, 1024.0f / arg4, 0);
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_87801400.s")
|
||||
#endif
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_87801644.s")
|
||||
void func_87801644(s32 arg0, s16 arg1, s16 arg2, f32 arg3) {
|
||||
func_87801400(arg0, arg1, arg2, arg3, arg3);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_87801684.s")
|
||||
void func_87801684(s16 arg0, s16 arg1, unk_func_87801684* arg2) {
|
||||
static unk_func_87801684* D_87806360 = NULL;
|
||||
static unk_func_87801684* D_8780FA74;
|
||||
static s16 D_8780FA78;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_87801754.s")
|
||||
if ((D_87806360 != arg2) || (arg2 == NULL)) {
|
||||
D_87806360 = arg2;
|
||||
if (arg2 == NULL) {
|
||||
return;
|
||||
}
|
||||
D_8780FA74 = arg2;
|
||||
D_8780FA78 = arg2->unk_04;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_87801824.s")
|
||||
D_8780FA78--;
|
||||
if (D_8780FA78 <= 0) {
|
||||
D_8780FA74++;
|
||||
if (D_8780FA74->unk_00 == NULL) {
|
||||
D_8780FA74 = arg2;
|
||||
}
|
||||
D_8780FA78 = D_8780FA74->unk_04;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_878018F4.s")
|
||||
func_8001C8C4(arg0, arg1, 0x10, 0x10, D_8780FA74->unk_00, 0x10, 0);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_87801AC0.s")
|
||||
void func_87801754(s16 arg0, s16 arg1, unk_func_87801684* arg2) {
|
||||
static unk_func_87801684* D_87806364 = NULL;
|
||||
static unk_func_87801684* D_8780FA7C;
|
||||
static s16 D_8780FA80;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_87801C8C.s")
|
||||
if ((D_87806364 != arg2) || (arg2 == NULL)) {
|
||||
D_87806364 = arg2;
|
||||
if (arg2 == NULL) {
|
||||
return;
|
||||
}
|
||||
D_8780FA7C = arg2;
|
||||
D_8780FA80 = arg2->unk_04;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_87801D5C.s")
|
||||
D_8780FA80--;
|
||||
if (D_8780FA80 <= 0) {
|
||||
D_8780FA7C++;
|
||||
if (D_8780FA7C->unk_00 == NULL) {
|
||||
D_8780FA7C = arg2;
|
||||
}
|
||||
D_8780FA80 = D_8780FA7C->unk_04;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_87801F48.s")
|
||||
func_8001C8C4(arg0, arg1, 0x10, 0x10, D_8780FA7C->unk_00, 0x10, 0);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_878021B4.s")
|
||||
void func_87801824(s16 arg0, s16 arg1, unk_func_87801684* arg2) {
|
||||
static unk_func_87801684* D_87806368 = NULL;
|
||||
static unk_func_87801684* D_8780FA84;
|
||||
static s16 D_8780FA88;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_87802360.s")
|
||||
if ((D_87806368 != arg2) || (arg2 == NULL)) {
|
||||
D_87806368 = arg2;
|
||||
if (arg2 == NULL) {
|
||||
return;
|
||||
}
|
||||
D_8780FA84 = arg2;
|
||||
D_8780FA88 = arg2->unk_04;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_87802528.s")
|
||||
D_8780FA88--;
|
||||
if (D_8780FA88 <= 0) {
|
||||
D_8780FA84++;
|
||||
if (D_8780FA84->unk_00 == NULL) {
|
||||
D_8780FA84 = arg2;
|
||||
}
|
||||
D_8780FA88 = D_8780FA84->unk_04;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_878025D0.s")
|
||||
func_8001C8C4(arg0, arg1, 0x10, 0x10, D_8780FA84->unk_00, 0x10, 0);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_8780295C.s")
|
||||
void func_878018F4(s16 arg0, s16 arg1, unk_func_87801684* arg2) {
|
||||
static unk_func_87801684* D_8780636C = NULL;
|
||||
static unk_func_87801684* D_8780FA8C;
|
||||
static s16 D_8780FA90;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_87802974.s")
|
||||
if ((D_8780636C != arg2) || (arg2 == NULL)) {
|
||||
D_8780636C = arg2;
|
||||
if (arg2 == NULL) {
|
||||
return;
|
||||
}
|
||||
D_8780FA8C = arg2;
|
||||
D_8780FA90 = arg2->unk_04;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_878029C0.s")
|
||||
D_8780FA90--;
|
||||
if (D_8780FA90 <= 0) {
|
||||
D_8780FA8C++;
|
||||
if (D_8780FA8C->unk_00 == NULL) {
|
||||
D_8780FA8C = arg2;
|
||||
}
|
||||
D_8780FA90 = D_8780FA8C->unk_04;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_87802E1C.s")
|
||||
gDPLoadTextureTile(gDisplayListHead++, D_8780FA8C->unk_00, G_IM_FMT_RGBA, G_IM_SIZ_32b, 40, 0, 0, 0, 39, 19, 0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
|
||||
G_TX_NOLOD);
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_87802E58.s")
|
||||
func_8001C330(arg0, arg1, 0x28, 0x14, 0, 0, 0x400, 0x400, 0);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_87802EB8.s")
|
||||
void func_87801AC0(s16 arg0, s16 arg1, unk_func_87801684* arg2) {
|
||||
static unk_func_87801684* D_87806370 = NULL;
|
||||
static unk_func_87801684* D_8780FA94;
|
||||
static s16 D_8780FA98;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_87802F00.s")
|
||||
if ((D_87806370 != arg2) || (arg2 == NULL)) {
|
||||
D_87806370 = arg2;
|
||||
if (arg2 == NULL) {
|
||||
return;
|
||||
}
|
||||
D_8780FA94 = arg2;
|
||||
D_8780FA98 = arg2->unk_04;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_87802F4C.s")
|
||||
D_8780FA98--;
|
||||
if (D_8780FA98 <= 0) {
|
||||
D_8780FA94++;
|
||||
if (D_8780FA94->unk_00 == NULL) {
|
||||
D_8780FA94 = arg2;
|
||||
}
|
||||
D_8780FA98 = D_8780FA94->unk_04;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_87802FA0.s")
|
||||
gDPLoadTextureTile(gDisplayListHead++, D_8780FA94->unk_00, G_IM_FMT_RGBA, G_IM_SIZ_32b, 40, 0, 0, 0, 39, 19, 0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
|
||||
G_TX_NOLOD);
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_8780304C.s")
|
||||
func_8001C330(arg0, arg1, 0x28, 0x14, 0, 0, 0x400, 0x400, 0);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_87803118.s")
|
||||
void func_87801C8C(s16 arg0, s16 arg1, unk_func_87801684* arg2) {
|
||||
static unk_func_87801684* D_87806374 = NULL;
|
||||
static unk_func_87801684* D_8780FA9C;
|
||||
static s16 D_8780FAA0;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_87803200.s")
|
||||
if ((D_87806374 != arg2) || (arg2 == NULL)) {
|
||||
D_87806374 = arg2;
|
||||
if (arg2 == NULL) {
|
||||
return;
|
||||
}
|
||||
D_8780FA9C = arg2;
|
||||
D_8780FAA0 = arg2->unk_04;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_87803280.s")
|
||||
D_8780FAA0--;
|
||||
if (D_8780FAA0 <= 0) {
|
||||
D_8780FA9C++;
|
||||
if (D_8780FA9C->unk_00 == NULL) {
|
||||
D_8780FA9C = arg2;
|
||||
}
|
||||
D_8780FAA0 = D_8780FA9C->unk_04;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_87803368.s")
|
||||
func_8001C8C4(arg0, arg1, 0x18, 0x13, D_8780FA9C->unk_00, 0x18, 0);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_878038B8.s")
|
||||
void func_87801D5C(s16 arg0, s16 arg1, s16 arg2, unk_func_87801684* arg3) {
|
||||
static unk_func_87801684* D_87806378[] = {
|
||||
NULL,
|
||||
NULL,
|
||||
};
|
||||
static unk_func_87801684* D_8780FAA8[2];
|
||||
static s16 D_8780FAB0[2];
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_87803EAC.s")
|
||||
if ((arg3 != D_87806378[arg0]) || (arg3 == NULL)) {
|
||||
D_87806378[arg0] = arg3;
|
||||
if (arg3 == NULL) {
|
||||
return;
|
||||
}
|
||||
D_8780FAA8[arg0] = arg3;
|
||||
D_8780FAB0[arg0] = arg3->unk_04;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_87804320.s")
|
||||
D_8780FAB0[arg0]--;
|
||||
if (D_8780FAB0[arg0] <= 0) {
|
||||
D_8780FAA8[arg0]++;
|
||||
if (D_8780FAA8[arg0]->unk_00 == NULL) {
|
||||
D_8780FAA8[arg0] = arg3;
|
||||
}
|
||||
D_8780FAB0[arg0] = D_8780FAA8[arg0]->unk_04;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_87804AD0.s")
|
||||
gDPLoadTextureTile(gDisplayListHead++, D_8780FAA8[arg0]->unk_00, G_IM_FMT_RGBA, G_IM_SIZ_32b, 28, 0, 0, 0, 27, 27,
|
||||
0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
|
||||
G_TX_NOLOD);
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/2/fragment2/func_87804FD4.s")
|
||||
func_8001C330(arg1, arg2, 0x1C, 0x1C, 0, 0, 0x400, 0x400, 0);
|
||||
}
|
||||
|
||||
void func_87801F48(s16 arg0, s16 arg1, s16 arg2) {
|
||||
static u32 D_87806380[] = { 0x03049CA0, 0x0304B1C0, 0x0304C6E0, 0x0304DC00 };
|
||||
|
||||
u32 sp34 = D_87806380[arg0];
|
||||
|
||||
gDPLoadTextureTile(gDisplayListHead++, sp34, G_IM_FMT_RGBA, G_IM_SIZ_16b, 52, 0, 0, 0, 51, 25, 0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
|
||||
G_TX_NOLOD);
|
||||
|
||||
func_8001C330(arg1, arg2, 0x34, 0x1A, 0, 0, 0x400, 0x400, 0);
|
||||
|
||||
gDPLoadTextureTile(gDisplayListHead++, sp34 + 0xA90, G_IM_FMT_RGBA, G_IM_SIZ_16b, 52, 0, 0, 0, 51, 25, 0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
|
||||
G_TX_NOLOD);
|
||||
|
||||
func_8001C330(arg1, arg2 + 0x1A, 0x34, 0x1A, 0, 0, 0x400, 0x400, 0);
|
||||
}
|
||||
|
||||
void func_878021B4(s16 arg0, s16 arg1) {
|
||||
u32* ptr = D_304F120;
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < 7; i++, ptr += 800) {
|
||||
gDPLoadTextureTile(gDisplayListHead++, ptr, G_IM_FMT_RGBA, G_IM_SIZ_32b, 100, 0, 0, 0, 99, 7, 0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
|
||||
G_TX_NOLOD);
|
||||
|
||||
func_8001C330(arg0, arg1 + (i * 8), 0x64, 8, 0, 0, 0x400, 0x400, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,36 +3,74 @@
|
||||
|
||||
#include "global.h"
|
||||
|
||||
typedef struct unk_func_87801684 {
|
||||
/* 0x00 */ u32* unk_00;
|
||||
/* 0x04 */ s16 unk_04;
|
||||
} unk_func_87801684; // size = 0x8
|
||||
|
||||
extern s32 D_87806330;
|
||||
extern s16 D_87806338;
|
||||
extern u32* D_8780633C[];
|
||||
extern u32* D_8780634C[];
|
||||
|
||||
extern u16 D_8780FA28;
|
||||
extern s16 D_8780FA2A;
|
||||
extern s16 D_8780FA2C;
|
||||
extern s16 D_8780FA30[4];
|
||||
extern s16 D_8780FA38;
|
||||
extern s16 D_8780FA3A;
|
||||
extern s16 D_8780FA40[4];
|
||||
extern s16 D_8780FA48;
|
||||
extern u16 D_8780FC92;
|
||||
extern u16 D_8780FC94;
|
||||
extern u16 D_8780FC96;
|
||||
extern u16 D_8780FC98;
|
||||
|
||||
|
||||
void func_87800020(void);
|
||||
void func_8780005C(void);
|
||||
u32 func_878001E8(s32);
|
||||
void func_8780024C(s32, s32, s32, s32, s32);
|
||||
void func_878010C8(s32);
|
||||
void func_87801290(s32*, s32*, char*, char*, s32);
|
||||
s32 func_878013D4(unk_D_800AC870*, char*);
|
||||
void func_87801644(s32, s16, s16, f32);
|
||||
void func_87801684(s32, s32, u8*);
|
||||
void func_87801824(s32, s32, u8*);
|
||||
void func_87801C8C(s32, s32, s32*);
|
||||
void func_87801F48(s32, s32, s32);
|
||||
void func_878021B4(s32, s32);
|
||||
void func_878001D0(void);
|
||||
u32 func_878001E8(s32 arg0);
|
||||
void func_8780024C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4);
|
||||
void func_878009BC(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
|
||||
void func_878010C8(s16 arg0);
|
||||
void func_8780118C(s16 arg0, s16 arg1, s16 arg2, s16 arg3);
|
||||
void func_87801290(s32* arg0, s32* arg1, s8* arg2, s8* arg3, s32 arg4);
|
||||
s32 func_878013D4(UNUSED unk_D_800AC870* arg0, char* arg1);
|
||||
void func_87801400(s32 arg0, s16 arg1, s16 arg2, f32 arg3, f32 arg4);
|
||||
void func_87801644(s32 arg0, s16 arg1, s16 arg2, f32 arg3);
|
||||
void func_87801684(s16 arg0, s16 arg1, unk_func_87801684* arg2);
|
||||
void func_87801754(s16 arg0, s16 arg1, unk_func_87801684* arg2);
|
||||
void func_87801824(s16 arg0, s16 arg1, unk_func_87801684* arg2);
|
||||
void func_878018F4(s16 arg0, s16 arg1, unk_func_87801684* arg2);
|
||||
void func_87801AC0(s16 arg0, s16 arg1, unk_func_87801684* arg2);
|
||||
void func_87801C8C(s16 arg0, s16 arg1, unk_func_87801684* arg2);
|
||||
void func_87801D5C(s16 arg0, s16 arg1, s16 arg2, unk_func_87801684* arg3);
|
||||
void func_87801F48(s16 arg0, s16 arg1, s16 arg2);
|
||||
void func_878021B4(s16 arg0, s16 arg1);
|
||||
|
||||
void func_87802360(s16 arg0, s16 arg1, f32* arg2, f32* arg3);
|
||||
void func_87802528(void);
|
||||
void func_878025D0(void);
|
||||
void func_8780295C(s16);
|
||||
void func_8780295C(s16 arg0);
|
||||
s32 func_87802974(void);
|
||||
void func_878029C0(void);
|
||||
void func_87802EB8(s16);
|
||||
void func_87802F00(s32);
|
||||
void func_87803118(void);
|
||||
void func_87804FD4(void);
|
||||
|
||||
void func_878029C0(void);
|
||||
void func_87802E1C(void);
|
||||
void func_87802E58(void);
|
||||
void func_87802EB8(s16 arg0);
|
||||
void func_87802F00(s32 arg0);
|
||||
void func_87802F4C(void);
|
||||
s32 func_87802FA0(void);
|
||||
void func_8780304C(void);
|
||||
s32 func_87803118(void);
|
||||
void func_87803200(s32 arg0, s32 arg1, s32 arg2, s32 arg3, u8* arg4, u8* arg5);
|
||||
void func_87803280(Mtx* arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8, f32 arg9, f32 argA);
|
||||
void func_87803368(s16 arg0);
|
||||
void func_878038B8(s32 arg0, u32* arg1, u8 arg2, u8 arg3, s16 arg4, s16 arg5, s16 arg6, s16 arg7, f32 arg8, f32 arg9, f32 argA, f32 argB, f32 argC, f32 argD, f32 argE);
|
||||
void func_87803EAC(u32* arg0, u16 arg1, UNUSED u16 arg2, u16 arg3, u16 arg4, u8 arg5, u8 arg6);
|
||||
void func_87804320(u8 arg0, s8 arg1, s8 arg2, s8 arg3, s8 arg4);
|
||||
void func_87804AD0(s16 arg0);
|
||||
s32 func_87804FD4(void);
|
||||
|
||||
#endif // _FRAGMENT2_H_
|
||||
|
||||
196
src/fragments/2/fragment2_1.c
Normal file
196
src/fragments/2/fragment2_1.c
Normal file
@@ -0,0 +1,196 @@
|
||||
#include "global.h"
|
||||
#include "fragment2.h"
|
||||
#include "src/6A40.h"
|
||||
#include "src/11BA0.h"
|
||||
#include "src/1C720.h"
|
||||
#include "src/math_util.h"
|
||||
|
||||
static Gfx D_87806390[] = {
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
u32 D_87806398[] = {
|
||||
0x0B00001E, 0x00000000, 0x014000F0, 0x00000000, 0x000016A8, 0x00000190, 0x05000000, 0x0D000000, 0x05000000,
|
||||
0x0F000002, 0x05000000, 0x0A000000, 0x800AC858, 0x06000000, 0x06000000, 0x06000000, 0x04000000, 0x00000000,
|
||||
};
|
||||
|
||||
static Vtx D_878063E0[] = {
|
||||
VTX(-32, 32, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(-32, 16, 0, 0, 512, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(32, 16, 0, 2048, 512, 0xFF, 0xFF, 0xFF, 0xFF), VTX(32, 32, 0, 2048, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(-32, 16, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(-32, 0, 0, 0, 512, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(32, 0, 0, 2048, 512, 0xFF, 0xFF, 0xFF, 0xFF), VTX(32, 16, 0, 2048, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(-32, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(-32, -16, 0, 0, 512, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(32, -16, 0, 2048, 512, 0xFF, 0xFF, 0xFF, 0xFF), VTX(32, 0, 0, 2048, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(-32, -16, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(-32, -32, 0, 0, 512, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
VTX(32, -32, 0, 2048, 512, 0xFF, 0xFF, 0xFF, 0xFF), VTX(32, -16, 0, 2048, 0, 0xFF, 0xFF, 0xFF, 0xFF),
|
||||
};
|
||||
|
||||
static u32* D_878064E0[] = { &D_300C000, &D_3000000, 0x3004000, &D_3008000 };
|
||||
|
||||
static s16 D_8780FAC0;
|
||||
static s16 D_8780FAC2;
|
||||
static s16 D_8780FAC4;
|
||||
static s16 D_8780FAC6;
|
||||
static unk_D_86002F58_004_000 D_8780FAC8;
|
||||
static unk_func_80011B94* D_8780FC30;
|
||||
|
||||
void func_87802360(s16 arg0, s16 arg1, f32* arg2, f32* arg3) {
|
||||
f32 var_fv0;
|
||||
s32 temp_ft1;
|
||||
s32 var_v0;
|
||||
|
||||
if (arg1 >= 0x12) {
|
||||
var_v0 = 0;
|
||||
} else if (arg1 >= 8) {
|
||||
var_v0 = 1;
|
||||
} else if (arg1 > 0) {
|
||||
var_v0 = 2;
|
||||
} else {
|
||||
var_v0 = 3;
|
||||
}
|
||||
|
||||
*arg3 = 0.0f;
|
||||
*arg2 = 0.0f;
|
||||
|
||||
switch (var_v0) {
|
||||
case 0:
|
||||
var_fv0 = 0.5f;
|
||||
temp_ft1 = (1.0f - ((0x1B - arg1) / 10.0f)) * (0, 81920.0f);
|
||||
if (temp_ft1 <= 0x10000) {
|
||||
if (temp_ft1 > 0x10000) {
|
||||
var_fv0 *= .5f;
|
||||
} else {
|
||||
var_fv0 *= 0.25f;
|
||||
}
|
||||
}
|
||||
|
||||
var_fv0 *= ABS_ALT(gSineTable[((u16)temp_ft1 & 0xFFFF) >> 4]);
|
||||
|
||||
*arg3 = 1.0f - var_fv0;
|
||||
*arg2 = 1.0f - var_fv0;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
*arg3 = 1.0f;
|
||||
*arg2 = 1.0f;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if (arg0 == 0) {
|
||||
*arg2 = arg1 / 7.0f;
|
||||
if (0.001f < *arg2) {
|
||||
*arg3 = 1.0f / *arg2;
|
||||
} else {
|
||||
*arg2 = 0.0f;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void func_87802528(void) {
|
||||
MainPoolState* sp1C;
|
||||
|
||||
D_8780FAC4 = 0;
|
||||
D_8780FAC0 = 4;
|
||||
D_8780FAC2 = 0;
|
||||
D_8780FAC6 = 0;
|
||||
|
||||
func_8001BBC8(&D_8780FAC8);
|
||||
sp1C = func_80002D10(main_pool_get_available(), 0);
|
||||
D_8780FC30 = func_80011B94(sp1C, NULL, 4, D_87806390);
|
||||
D_8780FAC8.unk_000.unk_02 |= 8;
|
||||
|
||||
func_80012094(&D_8780FAC8.unk_000, &D_8780FC30->unk_00);
|
||||
func_80002D60(sp1C);
|
||||
}
|
||||
|
||||
void func_878025D0(void) {
|
||||
s32 i;
|
||||
Gfx* temp_v0;
|
||||
s32 var_s2;
|
||||
u32* temp_s1;
|
||||
u32* img;
|
||||
|
||||
var_s2 = 0;
|
||||
switch (D_8780FAC4) {
|
||||
case 0:
|
||||
if (D_8780FAC6 != 0) {
|
||||
D_8780FAC6 = 0;
|
||||
D_8780FAC4 = 1;
|
||||
var_s2 = 1;
|
||||
D_8780FAC8.unk_000.unk_01 |= 1;
|
||||
D_8780FAC8.unk_030.x = 0.5f;
|
||||
D_8780FAC8.unk_030.y = 0.5f;
|
||||
}
|
||||
break;
|
||||
|
||||
case 1:
|
||||
D_8780FAC2 -= 1;
|
||||
if (D_8780FAC2 <= 0) {
|
||||
D_8780FAC2 = 0x1B;
|
||||
D_8780FAC0 -= 1;
|
||||
}
|
||||
|
||||
if ((D_8780FAC0 >= 0) && (D_8780FAC0 < 4)) {
|
||||
var_s2 = 1;
|
||||
func_87802360(D_8780FAC0, D_8780FAC2, &D_8780FAC8.unk_030.x, &D_8780FAC8.unk_030.y);
|
||||
} else {
|
||||
D_8780FC30->unk_18 = D_87806390;
|
||||
}
|
||||
|
||||
if (D_8780FAC0 < 0) {
|
||||
D_8780FAC4 = 2;
|
||||
D_8780FAC2 = 0x1B;
|
||||
D_8780FAC8.unk_000.unk_01 &= ~1;
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if (D_8780FAC2 == 0x1B) {
|
||||
D_8780FAC2 = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if ((var_s2 != 0) && (D_8780FAC0 < 4)) {
|
||||
temp_s1 = D_878064E0[D_8780FAC0];
|
||||
temp_v0 = func_80005F5C(sizeof(Gfx) * 48);
|
||||
D_8780FC30->unk_18 = temp_v0;
|
||||
|
||||
gSPSetGeometryMode(&temp_v0[0], G_CULL_BACK);
|
||||
gSPTexture(&temp_v0[1], 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
|
||||
gDPPipeSync(&temp_v0[2]);
|
||||
gDPSetCombineMode(&temp_v0[3], G_CC_DECALRGBA, G_CC_PASS2);
|
||||
gSPVertex(&temp_v0[4], D_878063E0, 16, 0);
|
||||
|
||||
temp_v0 += 5;
|
||||
img = temp_s1;
|
||||
|
||||
for (i = 0; i < 4; i++, img += 0x400) {
|
||||
gDPLoadTextureTile(temp_v0++, img, G_IM_FMT_RGBA, G_IM_SIZ_32b, 64, 0, 0, 0, 63, 15, 0,
|
||||
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK,
|
||||
G_TX_NOLOD, G_TX_NOLOD);
|
||||
gSP2Triangles(temp_v0++, (i * 4) + 0, (i * 4) + 1, (i * 4) + 2, 0, (i * 4) + 0, (i * 4) + 2, (i * 4) + 3,
|
||||
0);
|
||||
}
|
||||
|
||||
gSPEndDisplayList(temp_v0++);
|
||||
}
|
||||
}
|
||||
|
||||
void func_8780295C(s16 arg0) {
|
||||
D_8780FAC6 = arg0;
|
||||
}
|
||||
|
||||
s32 func_87802974(void) {
|
||||
s16 var_v1 = -1;
|
||||
|
||||
if (D_8780FAC4 == 2) {
|
||||
var_v1 = -2;
|
||||
} else if ((D_8780FAC2 == 0x1B) && (D_8780FAC4 == 1)) {
|
||||
var_v1 = D_8780FAC0;
|
||||
}
|
||||
|
||||
return var_v1;
|
||||
}
|
||||
2305
src/fragments/2/fragment2_2.c
Normal file
2305
src/fragments/2/fragment2_2.c
Normal file
File diff suppressed because it is too large
Load Diff
@@ -534,10 +534,17 @@
|
||||
subsegments:
|
||||
- [0x107FA0, textbin, fragments/2/fragment2_header]
|
||||
- [0x107FC0, c, fragments/2/fragment2]
|
||||
- [0x10E2D0, data, fragments/2/fragment2_data]
|
||||
- [0x117850, rodata, fragments/2/fragment2_rodata]
|
||||
- [0x10A300, c, fragments/2/fragment2_1]
|
||||
- [0x10A960, c, fragments/2/fragment2_2]
|
||||
- [0x10E2D0, .data, fragments/2/fragment2]
|
||||
- [0x10E330, .data, fragments/2/fragment2_1]
|
||||
- [0x10E490, .data, fragments/2/fragment2_2]
|
||||
- [0x117970, .rodata, fragments/2/fragment2_1]
|
||||
- [0x117980, .rodata, fragments/2/fragment2_2]
|
||||
|
||||
- {vram: 0x8780FA20, type: bss, name: unk_frag2_bss}
|
||||
- {vram: 0x8780FA20, type: .bss, name: fragments/2/fragment2}
|
||||
- {vram: 0x8780FAC0, type: .bss, name: fragments/2/fragment2_1}
|
||||
- {vram: 0x8780FC40, type: .bss, name: fragments/2/fragment2_2}
|
||||
|
||||
- name: fragment2_relocs
|
||||
type: code
|
||||
|
||||
Reference in New Issue
Block a user