a bunch of graphics related functions and data importation (#31)

* graphics?

* more stuff

* missed one

* headers

* data import and such
This commit is contained in:
petrie911 2023-11-26 15:27:05 -06:00 committed by GitHub
parent d6fc56adc0
commit 0205789a28
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
24 changed files with 2901 additions and 184 deletions

View File

@ -40,6 +40,8 @@
"dfee30.h": "c", "dfee30.h": "c",
"df4260.h": "c", "df4260.h": "c",
"symbol_addrs_overlays": "cpp", "symbol_addrs_overlays": "cpp",
"string.h": "c",
"stdarg.h": "c",
"fox_option.h": "c", "fox_option.h": "c",
"cstdlib": "c", "cstdlib": "c",
"typeinfo": "c", "typeinfo": "c",

View File

@ -10,6 +10,8 @@ void Controller_ReadData(void);
void Save_ReadData(void); void Save_ReadData(void);
void Save_WriteData(void); void Save_WriteData(void);
void Controller_Rumble(void); void Controller_Rumble(void);
s32 Lib_vsPrintf(char* dst, const char* fmt, va_list args);
void Lib_Perspective(Gfx** dList); void Lib_Perspective(Gfx** dList);
void Lib_Ortho(Gfx** dList); void Lib_Ortho(Gfx** dList);
void Lib_DmaRead(void* src, void* dst, s32 size); void Lib_DmaRead(void* src, void* dst, s32 size);
@ -117,7 +119,7 @@ f32 func_8001FBC8(f32);
void RdRam_CheckIPL3(void); void RdRam_CheckIPL3(void);
void Mio0_Decompress(void* header, u8* dst); void Mio0_Decompress(void* header, u8* dst);
s32 vsprintf(char* dst, char* fmt, va_list args); s32 vsprintf(char* dst, const char* fmt, va_list args);
f32 Math_FAtanF(f32); f32 Math_FAtanF(f32);
f32 Math_FAtan2F(f32, f32); f32 Math_FAtan2F(f32, f32);
@ -257,25 +259,6 @@ s32 func_8009092C(Object_2F4*);
s32 func_800915FC(Object_2F4*); s32 func_800915FC(Object_2F4*);
void func_80092D48(Object_2F4 *); void func_80092D48(Object_2F4 *);
void func_80094D20(f32, f32); void func_80094D20(f32, f32);
s32 func_800998FC(Vec3f*, Vec3f*, s32, s32, Vec3f*, Vec3f*);
void func_8009A72C(s32, void*, Vec3f*, OverrideLimbDraw, PostLimbDraw, s32*, Matrix*);
void func_8009AA20(void*, s32, Vec3f*);
s16 func_8009ACDC(s16 *);
f32 func_8009BC2C(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_8009D0BC(Gfx**, void*, 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_8009E4B0(Gfx**, void*, u32, u32, f32, f32, f32, f32);
void func_8009F574(Gfx **, s32, s32, s32, s32, u8, u8, u8, u8);
void func_8009F6CC(Vec3f*, f32, f32, f32);
f32 func_8009F768(f32);
void func_8009FC0C(s32, s32, s32);
void func_8009FEA0(s32, s32, s32);
void func_800A0094(s32, s32, f32, f32, u8 *);
void func_800A1200(s32, s32, f32, f32, char*);
s32 func_800A13EC(s8*);
void func_800A18B0(void); void func_800A18B0(void);
void func_800A1980(void); void func_800A1980(void);
s32 func_800A1B6C(void); s32 func_800A1B6C(void);

View File

@ -1,9 +1,25 @@
#ifndef GFX_H #ifndef GFX_H
#define GFX_H #define GFX_H
#include "libultra/ultra64.h"
#include "sf64math.h"
#define SCREEN_WIDTH 320 #define SCREEN_WIDTH 320
#define SCREEN_HEIGHT 240 #define SCREEN_HEIGHT 240
#define RGBA16_RED(color16) (((color16) >> 0xB) & 0x1F)
#define RGBA16_GRN(color16) (((color16) >> 6) & 0x1F)
#define RGBA16_BLU(color16) (((color16) >> 1) & 0x1F)
// unclear what the right macro for this is
// #define RGBA16_PACK(r, g, b, a) (((u16) ((r) * 0x800) & 0xF800) | ((u16) ((g) * 0x40) & 0x7C0) | ((u16) ((b) * 2) & 0x3E) | ((a) & 1))
#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)
#define VTX(x,y,z,s,t,crnx,cgny,cbnz,a) { { { x, y, z }, 0, { s, t }, { crnx, cgny, cbnz, a } } }
#define VTX_T(x,y,z,s,t,cr,cg,cb,a) { { x, y, z }, 0, { s, t }, { cr, cg, cb, a } }
typedef enum SetupDL { typedef enum SetupDL {
/* 0x00 */ SETUPDL_0, /* 0x00 */ SETUPDL_0,
/* 0x01 */ SETUPDL_1, /* 0x01 */ SETUPDL_1,
@ -98,6 +114,80 @@ typedef enum SetupDL {
extern Gfx gSetupDLs[SETUPDL_MAX][9]; // 0x800D31B0 extern Gfx gSetupDLs[SETUPDL_MAX][9]; // 0x800D31B0
typedef s32 (*OverrideLimbDraw)(s32, Gfx**, Vec3f*, Vec3f*, void*);
typedef void (*PostLimbDraw)(s32, Vec3f*, void*);
typedef struct {
/* 0x0 */ u16 xLen;
/* 0x2 */ u16 x;
/* 0x4 */ u16 yLen;
/* 0x6 */ u16 y;
/* 0x8 */ u16 zLen;
/* 0xA */ u16 z;
} JointKey; // size = 0xC
typedef struct {
/* 0x00 */ s16 frameCount;
/* 0x02 */ s16 limbCount;
/* 0x04 */ u16* frameData;
/* 0x08 */ JointKey* jointKey;
} AnimationHeader; // size = 0xC
typedef struct Limb {
/* 0x000 */ Gfx* dList;
/* 0x004 */ Vec3f trans;
/* 0x010 */ Vec3s rot;
/* 0x018 */ struct Limb* sibling;
/* 0x01C */ struct Limb* child;
} Limb; // size = 0x20
char* func_80099980(char *buf, s32 fill, s32 len);
s32 func_800999D8(const char *fmt, ...);
void func_80099A2C(void *texture, s32 width, s32 height, u8 mode);
void func_80099E28(void *dst, void *src, u8 mode);
s32 func_8009A400(Limb* limb, Limb** skeleton);
void func_8009A440(s32 mode, Limb * limb, Limb* *skeleton, Vec3f* jointTable, OverrideLimbDraw overrideLimbDraw, PostLimbDraw postLimbDraw, void* data);
void func_8009A72C(s32 mode, Limb** skeletonSegment, Vec3f* jointTable, OverrideLimbDraw overrideLimbDraw, PostLimbDraw postLimbDraw, void* data, Matrix* transform);
s16 func_8009AA20(AnimationHeader *animationSegmemt, s32 frame, Vec3f *frameTable);
s16 func_8009ACDC(AnimationHeader *animationSegment);
void func_8009AD18(Gfx* dList, s32 len, Vec3f *min, Vec3f *max, s32 *vtxFound, s32 *vtxCount, Vtx* *vtxList);
void func_8009B74C(Gfx *dList, s32 len, Vec3f *min, Vec3f *max);
void func_8009B784(Limb **skeletonSegment, AnimationHeader *animationSegment, s32 frame, Vec3f *min, Vec3f* max);
f32 func_8009BC2C(f32 *value, f32 target, f32 scale, f32 maxStep, f32 minStep);
f32 func_8009BD38(f32 *angle, f32 target, f32 scale, f32 maxStep, f32 minStep);
void func_8009BEEC(Vec3f *src, Vec3f *dst, s32 mode, s32 count, f32 scale, f32 maxStep, f32 minStep);
s32 func_8009C124(Vec3f *pos, Vec3f *target, Vec3f *rot, f32 stepSize, f32 scaleTurn, f32 maxTurn, f32 dist);
void func_8009C320(Gfx **gfxPtr, void* texture, void* palette, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void func_8009C674(Gfx **gfxPtr, void* texture, void* palette, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void func_8009C9C8(Gfx **gfxPtr, void* texture, void* palette, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void func_8009CD3C(Gfx **gfxPtr, void* texture, void* palette, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void func_8009D0BC(Gfx **gfxPtr, void* texture, void* palette, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void func_8009D418(Gfx **gfxPtr, void* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void func_8009D6CC(Gfx **gfxPtr, void* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void func_8009D994(Gfx **gfxPtr, void* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void func_8009DC4C(Gfx **gfxPtr, void* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void func_8009DF14(Gfx **gfxPtr, void* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void func_8009E1E8(Gfx **gfxPtr, void* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void func_8009E4B0(Gfx **gfxPtr, void* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void func_8009E784(Gfx **gfxPtr, void* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void func_8009EA38(Gfx **gfxPtr, void* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void func_8009ED04(Gfx **gfxPtr, void* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void func_8009EFDC(Gfx **gfxPtr, void* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void func_8009F2C0(Gfx **gfxPtr, void* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void func_8009F574(Gfx **gfxPtr, s32 ulx, s32 uly, s32 lrx, s32 lry, u8 r, u8 g, u8 b, u8 a);
void func_8009F6CC(Vec3f *step, f32 xRot, f32 yRot, f32 stepsize);
f32 func_8009F768(f32 rAngle);
s32* func_8009F7B4(Gfx **gfxPtr, u8 width, u8 height);
void func_8009FC0C(s32 xPos, s32 yPos, s32 number);
void func_8009FEA0(s32 xPos, s32 yPos, s32 number);
void func_800A0094(s32 xPos, s32 yPos, f32 xScale, f32 yScale, char *text);
s32 func_800A06F8(char *text);
void func_800A100C(s32 xPos, s32 yPos, s32 number);
void func_800A1200(s32 xPos, s32 yPos, f32 xScale, f32 yScale, char *text);
s32 func_800A13EC(char *text);
void func_800A1540(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
void func_800A1558(f32 weight, u16 size, void *src1, void *src2, void *dst);
void func_800B8DD0(Gfx** gfxP, s16 i); void func_800B8DD0(Gfx** gfxP, s16 i);
void func_800B8E14(Gfx** gfxP, s32 r, s32 g, s32 b, s32 a, s32 near, s32 far); void func_800B8E14(Gfx** gfxP, s32 r, s32 g, s32 b, s32 a, s32 near, s32 far);
void func_800B8F18(void); void func_800B8F18(void);

View File

@ -35,29 +35,27 @@ void func_8008DC34(void);
void func_8008E5E8(void); void func_8008E5E8(void);
s32 func_80090E8C(Object_2F4* arg0); s32 func_80090E8C(Object_2F4* arg0);
s32 func_800910C0(Object_2F4* arg0); s32 func_800910C0(Object_2F4* arg0);
void func_8009D0BC(Gfx**, void*, void*, u32, u32, f32, f32, f32, f32);
void func_8009E1E8(Gfx**, u16*, s32, s32, f32, f32, f32, f32);
// Weird addresses, assets maybe? // Weird addresses, assets maybe?
extern u16 D_1000E80[]; extern u16 D_1000E80[];
extern u16 D_1002280[]; extern u16 D_1002280[];
extern u16 D_10030D0[]; extern u16 D_10030D0[];
extern s32 D_1011280; extern s32 D_1011280[];
extern s32 D_10116A0; extern s32 D_10116A0[];
extern s32 D_10116B0; extern s32 D_10116B0[];
extern s32 D_1011730; extern s32 D_1011730[];
extern s32 D_1011AC0; extern s32 D_1011AC0[];
extern s32 D_1011B90; extern s32 D_1011B90[];
extern s32 D_1011BB0; extern s32 D_1011BB0[];
extern s32 D_1011C80; extern s32 D_1011C80[];
extern s32 D_1011CA0; extern s32 D_1011CA0[];
extern s32 D_1011D70; extern s32 D_1011D70[];
extern s32 D_1011D90; extern s32 D_1011D90[];
extern s32 D_1011E60; extern s32 D_1011E60[];
extern s32 D_1013170[]; extern s32 D_1013170[];
extern s32 D_1013570[]; extern s32 D_1013570[];
extern s32 D_1013580; extern s32 D_1013580[];
extern s32 D_1013700; extern s32 D_1013700[];
extern s32 D_20031B0[]; extern s32 D_20031B0[];
extern s32 D_2010A30[]; extern s32 D_2010A30[];
extern u16 D_3000B20[]; extern u16 D_3000B20[];

View File

@ -9,6 +9,12 @@ typedef struct {
/* 0x8 */ f32 z; /* 0x8 */ f32 z;
} Vec3f; // size = 0xC } Vec3f; // size = 0xC
typedef struct {
/* 0x0 */ s16 x;
/* 0x2 */ s16 y;
/* 0x4 */ s16 z;
} Vec3s; // size = 0x6;
typedef union { typedef union {
float m[4][4]; float m[4][4];
struct { struct {

View File

@ -6,9 +6,6 @@
#define UNK_TYPE s32 #define UNK_TYPE s32
typedef s32 (*OverrideLimbDraw)(s32, Gfx**, Vec3f*, Vec3f*, s32*);
typedef void (*PostLimbDraw)(s32, Vec3f*, s32*);
typedef struct { typedef struct {
s32 unk0; s32 unk0;
u16* unk4; u16* unk4;
@ -43,8 +40,9 @@ typedef struct {
/* 0x30 */ s32 value; /* 0x30 */ s32 value;
} TimerTask; // size = 0x38, 0x8 aligned } TimerTask; // size = 0x38, 0x8 aligned
typedef struct { typedef union {
u16 data[240 * 320]; u16 data[240 * 320];
u16 array[240][320];
} FrameBuffer; // size = 0x25800 } FrameBuffer; // size = 0x25800
typedef struct { typedef struct {
@ -84,8 +82,8 @@ typedef struct{
typedef struct { typedef struct {
/* 0x00 */ union { /* 0x00 */ union {
SaveData data;
u8 raw[sizeof(SaveData)]; u8 raw[sizeof(SaveData)];
SaveData data;
}; };
/* 0xFE */ u16 checksum; /* 0xFE */ u16 checksum;
} Save; // size = 0x100 } Save; // size = 0x100

View File

@ -2,6 +2,7 @@
#define VARIABLES_H #define VARIABLES_H
#include "structs.h" #include "structs.h"
#include "gfx.h"
extern u64 __rspboot_start[]; extern u64 __rspboot_start[];
extern u64 __rspboot_end[]; extern u64 __rspboot_end[];
@ -100,7 +101,7 @@ extern Gfx* gMasterDisp;
extern Gfx* gUnkDisp2; extern Gfx* gUnkDisp2;
extern Lightsn* gLight; extern Lightsn* gLight;
extern FrameBuffer *gFrameBuffer; extern FrameBuffer *gFrameBuffer;
extern s32* D_80137E74; extern u16* D_80137E74;
// some sort of struct? // some sort of struct?
extern u8 D_80137E78; extern u8 D_80137E78;
@ -179,7 +180,7 @@ extern Gfx* D_800CFC40[];
extern Gfx* D_800CFC50[]; extern Gfx* D_800CFC50[];
extern Gfx* D_800CFC64[]; extern Gfx* D_800CFC64[];
extern Gfx* D_800CFC7C[]; extern Gfx* D_800CFC7C[];
extern f32 D_800CFC98[]; extern f32 D_800CFCA0[];
extern Vec3f D_800CFCC0; // initializer in sf_5A240 extern Vec3f D_800CFCC0; // initializer in sf_5A240
extern f32 D_800CFCCC[]; extern f32 D_800CFCCC[];
extern Vec3f D_800CFCEC; extern Vec3f D_800CFCEC;
@ -189,8 +190,8 @@ extern Vec3f D_800CFD10;
extern Vec3f D_800CFD1C; extern Vec3f D_800CFD1C;
extern Vec3f D_800CFD28; extern Vec3f D_800CFD28;
extern Vec3f D_800CFD34; extern Vec3f D_800CFD34;
extern ObjectInit* D_800CFDA0[];
extern Gfx D_800CFD80[]; extern Gfx D_800CFD80[];
extern ObjectInit* D_800CFDA0[];
extern s32 D_800CFDF4[]; extern s32 D_800CFDF4[];
extern f32 D_800CFE5C[]; extern f32 D_800CFE5C[];
extern Vec3f D_800CFEC4[6]; extern Vec3f D_800CFEC4[6];
@ -218,13 +219,9 @@ extern s32 D_800D2884[];
extern s32 D_800D2894[]; extern s32 D_800D2894[];
extern s32 D_800D28A4[]; extern s32 D_800D28A4[];
extern s32 D_800D28B4[]; extern s32 D_800D28B4[];
extern u8 D_800D2908;
extern u8 D_800D290C;
extern u8 D_800D2910;
extern u8 D_800D2914;
extern u8 D_800D3180[0x1E]; extern u8 D_800D3180[0x1E];
extern s32 D_800D4A70; extern s32 D_800D4A70;
extern Save D_800D4D10; extern Save gDefaultSave;
extern s32 D_8015F924; extern s32 D_8015F924;
extern s32 D_8015F928; extern s32 D_8015F928;
@ -266,6 +263,7 @@ extern s32 D_801617B0;
extern s32 D_801617B4; extern s32 D_801617B4;
extern s32 D_801617B8; extern s32 D_801617B8;
extern s32 D_80161810[]; extern s32 D_80161810[];
extern char D_801619A0[100];
extern f32 D_80161A10; extern f32 D_80161A10;
extern f32 D_80161A14; extern f32 D_80161A14;
extern u8 D_80161A2C; extern u8 D_80161A2C;
@ -474,6 +472,7 @@ extern u16 D_Tex_800D99F8[];
extern u16 D_Tex_800DBA20[]; extern u16 D_Tex_800DBA20[];
extern Gfx D_Gfx_800DBAA0[]; extern Gfx D_Gfx_800DBAA0[];
extern Gfx D_Gfx_800DAC20[]; extern Gfx D_Gfx_800DAC20[];
extern Gfx D_Gfx_800D9688[];
extern DmaEntry gDmaTable[]; // 178A70 extern DmaEntry gDmaTable[]; // 178A70
extern u8 D_80179010[][16 * 13 / 2]; extern u8 D_80179010[][16 * 13 / 2];
@ -698,7 +697,6 @@ 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 Gfx D_602A720[]; extern Gfx D_602A720[];
extern Gfx D_602DA20[]; extern Gfx D_602DA20[];
extern Gfx D_602E380[]; extern Gfx D_602E380[];
@ -724,7 +722,7 @@ extern Gfx D_6036840[];
extern Gfx D_6036CD0[]; extern Gfx D_6036CD0[];
extern Gfx D_6022920[]; extern Gfx D_6022920[];
extern Gfx D_6020B40[]; extern Gfx D_6020B40[];
extern UNK_TYPE D_6029674; extern Limb* D_6029674[];
extern ObjectInit* D_6010088[]; extern ObjectInit* D_6010088[];
extern u8 D_6010090[]; extern u8 D_6010090[];
extern u8 D_60106B0[]; extern u8 D_60106B0[];
@ -732,13 +730,13 @@ extern u8 D_6010FA0[];
extern u8 D_6013470[]; extern u8 D_6013470[];
extern u16 D_601B4B0[]; extern u16 D_601B4B0[];
extern Gfx D_601D1F0[]; extern Gfx D_601D1F0[];
extern AnimationHeader D_6029528;
extern u8 D_601D750[]; extern u8 D_601D750[];
extern u16 D_601DB50[]; extern u16 D_601DB50[];
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 AnimationHeader D_601E8C4;
extern UNK_TYPE D_601E9D0; extern Limb* D_601E9D0[];
extern Gfx D_6018C00[]; extern Gfx D_6018C00[];
extern Gfx D_6018D40[]; extern Gfx D_6018D40[];
extern Gfx D_6024B60[]; extern Gfx D_6024B60[];
@ -763,7 +761,6 @@ extern u8 D_8003A70[];
extern u8 D_8003AB8[]; extern u8 D_8003AB8[];
extern u8 D_8003AE0[]; extern u8 D_8003AE0[];
extern u8 D_8003B28[]; extern u8 D_8003B28[];
extern u8 D_800D070[]; extern u8 D_800D070[];
extern u8 D_800D170[]; extern u8 D_800D170[];
@ -772,7 +769,6 @@ extern Gfx D_9010FD0[];
extern Gfx D_9023290[]; extern Gfx D_9023290[];
extern Gfx D_90234D0[]; extern Gfx D_90234D0[];
extern ObjectInit* D_C0356A4[];
extern ObjectInit* D_C0356A4[]; extern ObjectInit* D_C0356A4[];
extern Gfx D_C017440[]; extern Gfx D_C017440[];

View File

@ -17,11 +17,14 @@ gDmaTable = 0x80178A70;
D_800D3180 = 0x800D3180; // size:0x1E D_800D3180 = 0x800D3180; // size:0x1E
gSetupDLs = 0x800D31B0; // size:0x18C0 gSetupDLs = 0x800D31B0; // size:0x18C0
D_800CFCA0 = 0x800CFCA0;
D_800DD900 = 0x800DD900; // size:0x1A0 D_800DD900 = 0x800DD900; // size:0x1A0
D_800CBDD4 = 0x800CBDD4; //size:0x98 D_800CBDD4 = 0x800CBDD4; //size:0x98
D_800D55D0 = 0x800D55D0; //type:f32
Save_Checksum = 0x800C2FB0; Save_Checksum = 0x800C2FB0;
Save_Write = 0x800C3084; Save_Write = 0x800C3084;
Save_Read = 0x800C3194; Save_Read = 0x800C3194;

View File

@ -0,0 +1,48 @@
func_80099980 = 0x80099980;
func_800999D8 = 0x800999D8;
func_80099A2C = 0x80099A2C;
func_80099E28 = 0x80099E28;
func_8009A400 = 0x8009A400;
func_8009A440 = 0x8009A440;
func_8009A72C = 0x8009A72C;
func_8009AA20 = 0x8009AA20;
func_8009ACDC = 0x8009ACDC;
func_8009AD18 = 0x8009AD18;
func_8009B74C = 0x8009B74C;
func_8009B784 = 0x8009B784;
func_8009BC2C = 0x8009BC2C;
func_8009BD38 = 0x8009BD38;
func_8009BEEC = 0x8009BEEC;
func_8009C124 = 0x8009C124;
func_8009C320 = 0x8009C320;
func_8009C674 = 0x8009C674;
func_8009C9C8 = 0x8009C9C8;
func_8009CD3C = 0x8009CD3C;
func_8009D0BC = 0x8009D0BC;
func_8009D418 = 0x8009D418;
func_8009D6CC = 0x8009D6CC;
func_8009D994 = 0x8009D994;
func_8009DC4C = 0x8009DC4C;
func_8009DF14 = 0x8009DF14;
func_8009E1E8 = 0x8009E1E8;
func_8009E4B0 = 0x8009E4B0;
func_8009E784 = 0x8009E784;
func_8009EA38 = 0x8009EA38;
func_8009ED04 = 0x8009ED04;
func_8009EFDC = 0x8009EFDC;
func_8009F2C0 = 0x8009F2C0;
func_8009F574 = 0x8009F574;
func_8009F6CC = 0x8009F6CC;
func_8009F768 = 0x8009F768;
func_8009F7B4 = 0x8009F7B4;
func_8009FC0C = 0x8009FC0C;
func_8009FEA0 = 0x8009FEA0;
func_800A0094 = 0x800A0094;
func_800A06F8 = 0x800A06F8;
func_800A100C = 0x800A100C;
func_800A1200 = 0x800A1200;
func_800A13EC = 0x800A13EC;
func_800A1540 = 0x800A1540;
func_800A1558 = 0x800A1558;
gDefaultSave = 0x800D4D10;

View File

@ -1,5 +1,7 @@
#include "global.h" #include "global.h"
#include "fox_rcp_setup.c"
void func_800B8DD0(Gfx** gfxP, s16 i) { void func_800B8DD0(Gfx** gfxP, s16 i) {
gSPDisplayList((*gfxP)++, &((Gfx*) gSetupDLs)[i * 9]); gSPDisplayList((*gfxP)++, &((Gfx*) gSetupDLs)[i * 9]);
} }

1180
src/main/fox_rcp_setup.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,27 @@
#include "global.h" #include "global.h"
SaveFile gSaveFile; SaveFile gSaveFile;
Save gDefaultSave = {
{
// Replace with SaveData once that struct is complete
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x02, 0x03, 0x04, 0x00, 0x63, 0x63, 0x63, 0x46, 0x4F, 0x58, 0x50, 0x45, 0x50, 0x53, 0x4C, 0x50, 0x46,
0x41, 0x4C, 0x57, 0x4C, 0x46, 0x4C, 0x4F, 0x4E, 0x50, 0x49, 0x47, 0x41, 0x4E, 0x52, 0x42, 0x49, 0x4C,
0x4B, 0x41, 0x54, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x90, 0x09, 0x57, 0x09, 0xB7, 0x09, 0x87,
0x09, 0x37, 0x09, 0x17, 0x09, 0xF7, 0x5A, 0x90, 0x09, 0x54, 0x09, 0x64, 0x09, 0xD4, 0x09, 0x74, 0x09,
0x14, 0x09, 0xF4, 0x50, 0x90, 0x09, 0x02, 0x09, 0xC2, 0x09, 0x42, 0x09, 0xA2, 0x09, 0x22, 0x09, 0xE2,
0x46, 0x90, 0x09, 0x01, 0x09, 0xC1, 0x09, 0x41, 0x09, 0xA1, 0x09, 0x21, 0x09, 0xE1, 0x3C, 0x90, 0x09,
0x05, 0x09, 0xC5, 0x09, 0x45, 0x09, 0xA5, 0x09, 0x25, 0x09, 0xE5, 0x32, 0x90, 0x04, 0x03, 0x09, 0xC3,
0x09, 0x43, 0x09, 0xA3, 0x09, 0x23, 0x09, 0xE3, 0x28, 0x90, 0x01, 0x06, 0x02, 0xC6, 0x09, 0x46, 0x09,
0xA6, 0x09, 0x26, 0x09, 0xE6, 0x1E, 0x90, 0x01, 0x02, 0x01, 0xC4, 0x01, 0x47, 0x08, 0xA5, 0x09, 0x23,
0x09, 0xE6, 0x14, 0x90, 0x01, 0x03, 0x01, 0xC5, 0x01, 0x47, 0x01, 0xA4, 0x06, 0x22, 0x09, 0xE1, 0x0A,
0x90, 0x01, 0x07, 0x01, 0xC4, 0x01, 0x44, 0x01, 0xA2, 0x01, 0x21, 0x04, 0xE5, 0xFF, 0x09, 0x01, 0x02,
0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
},
0,
};
u16 Save_Checksum(Save* arg0) { u16 Save_Checksum(Save* arg0) {
u16 var_v1; u16 var_v1;

View File

@ -1,6 +1,6 @@
#include "global.h" #include "global.h"
s32 Lib_vsPrintf(char* dst, char* fmt, va_list args) { s32 Lib_vsPrintf(char* dst, const char* fmt, va_list args) {
return vsprintf(dst, fmt, args); return vsprintf(dst, fmt, args);
} }

View File

@ -59,7 +59,7 @@ Gfx* gMasterDisp;
Gfx* gUnkDisp2; Gfx* gUnkDisp2;
Lightsn* gLight; Lightsn* gLight;
FrameBuffer* gFrameBuffer; FrameBuffer* gFrameBuffer;
s32* D_80137E74; u16* D_80137E74;
u8 D_80137E78; u8 D_80137E78;
u32 gFrameCounter; u32 gFrameCounter;

View File

@ -1,5 +1,7 @@
#include "global.h" #include "global.h"
char D_800CF970[] = "$Id: fox_edisplay.c,v 1.196 1997/05/08 08:31:50 morita Exp $";
void func_800596C0(void) { void func_800596C0(void) {
Matrix_RotateZ(gGfxMatrix, D_80177DB0 * 13.0f * M_DTOR, 1); Matrix_RotateZ(gGfxMatrix, D_80177DB0 * 13.0f * M_DTOR, 1);
Matrix_Scale(gGfxMatrix, 1.02f, 0.98f, 1.0f, 1); Matrix_Scale(gGfxMatrix, 1.02f, 0.98f, 1.0f, 1);
@ -48,6 +50,17 @@ void func_800599A4(s32 arg0, Vec3f* arg1, s32* arg2) {
} }
} }
f32 D_800CF9B0[] = {
-12.32422638f, -12.00849533f, -11.08310699f, -9.561470032f, -7.440753937f, -4.713317871f, -1.393303037f,
2.485869884f, 6.872662067f, 11.66899109f, 16.7521019f, 21.98126984f, 27.19302368f, 32.21533966f,
36.87569427f, 41.0078125f, 44.46230316f, 47.09422302f, 48.7610054f, 49.34596634f, 47.64530182f,
42.98818588f, 36.06262207f, 27.66272163f, 18.64647293f, 9.883304596f, 2.113918066f, -4.157948017f,
-8.673706055f, -11.39522171f, -12.32422638f,
};
f32 D_800CFA2C[] = {
1.0f, 1.0f, 0.95f, 0.9f, 0.85f, 0.8f, 0.75f, 0.7f, 0.65f, 0.6f,
};
void func_80059A24(Object_2F4* arg0) { void func_80059A24(Object_2F4* arg0) {
Vec3f sp30[30]; Vec3f sp30[30];
f32 temp = D_800CF9B0[arg0->unk_0B6] - 114.0f; f32 temp = D_800CF9B0[arg0->unk_0B6] - 114.0f;
@ -63,7 +76,7 @@ void func_80059AEC(Object_80* arg0) {
} }
void func_80059B20(Object_80* arg0) { void func_80059B20(Object_80* arg0) {
if (arg0->obj.id == 0x1D) { if (arg0->obj.id == 29) {
gSPDisplayList(gMasterDisp++, D_7007350); gSPDisplayList(gMasterDisp++, D_7007350);
} else { } else {
func_8005980C(D_800CF9B0[arg0->obj.id + 2]); func_8005980C(D_800CF9B0[arg0->obj.id + 2]);
@ -153,17 +166,78 @@ void func_8005A07C(void* arg0) {
void func_8005A088(void* arg0) { void func_8005A088(void* arg0) {
} }
Gfx* D_800CFA54[] = {
0x06027960, 0x060273A0, 0x060183B0, 0x060121E0, 0x0602A2E0, 0x0602A720, 0x0602B8F0,
0x0602A8C0, 0x06028E70, 0x0602E0A0, 0x0602DE70, 0x0602DC40, 0x0602D830, 0x0602D340,
0x06031280, 0x06031130, 0x06030850, 0x06030FD0, 0x0602DD40, 0x06033AF0, 0x060186E0,
0x06024160, 0x06033290, 0x06017F10, 0x060074E0, 0x06007590, 0x06007730, 0x06005CC0,
};
Gfx* D_800CFAC4[] = {
0x060176D0, 0x06017810, 0x06017770, 0x06016D90, 0x06016E30, 0x060178B0,
};
Gfx* D_800CFADC[] = {
0x06023690, 0x06021BB0, 0x06021C50, 0x06021CE0, 0x06021D80, 0x06016350,
0x06021E20, 0x060222A0, 0x06022BE0, 0x06022D70, 0x06022F00,
};
Gfx* D_800CFB08[] = {
0x06020F10,
0x06021100,
0x060214B0,
};
Gfx* D_800CFB14[] = {
0x060163E0, 0x060165D0, 0x06016880, 0x06016B50, 0x06000C40,
};
Gfx* D_800CFB28[] = {
0x06018E80, 0x0601F620, 0x0601F420, 0x06018C80, 0x0601F940, 0x0601F260,
};
Gfx* D_800CFB40[] = {
0x06014DB0, 0x060146D0, 0x06014B80, 0x06014470, 0x06014930, 0x060138A0, 0x060151A0, 0x0600F750, 0x06015810,
};
Gfx* D_800CFB64[] = {
0x0600D4A0, 0x0600D720, 0x0600D810, 0x0600CFF0, 0x0600BD20, 0x0600D390, 0x0600E150, 0x06007160, 0x0600D900,
};
Gfx* D_800CFB88[] = {
0x0600A8E0, 0x0600A840, 0x0600A480, 0x0600A720, 0x0600A970, 0x06007D70, 0x0600A520, 0x06009990,
};
Gfx* D_800CFBA8[] = {
0x06026460, 0x060266B0, 0x06026950, 0x060276F0, 0x06027810, 0x06027330, 0x060273C0, 0x06026E30,
0x06026EC0, 0x06026DA0, 0x06026D10, 0x06026C80, 0x06026BF0, 0x06027460, 0x06026F60,
};
Gfx* D_800CFBE4[] = {
0x060040F0, 0x06027C90, 0x06027FA0, 0x06003350, 0x06028240,
0x06028550, 0x06004DB0, 0x06027930, 0x0600F030, 0x060050F0,
};
Gfx* D_800CFC0C[] = {
0x060294A0, 0x060291B0, 0x060287F0, 0x06029330, 0x06029240, 0x06029790, 0x06029900,
0x06028F50, 0x060290C0, 0x06029530, 0x060296A0, 0x06028A80, 0x06028910,
};
Gfx* D_800CFC40[] = {
0x06014FD0,
0x06014FD0,
0x06014FD0,
0x06014FD0,
};
Gfx* D_800CFC50[] = {
0x0601EDE0, 0x0601F2F0, 0x0601F830, 0x0601FD70, 0x0601D110,
};
Gfx* D_800CFC64[] = {
0x06023940, 0x06023D70, 0x060249C0, 0x06023EB0, 0x060249C0, 0x06023B80,
};
Gfx* D_800CFC7C[] = {
0x0601B570, 0x0601B710, 0x060209B0, 0x06020B70, 0x06020D50, 0x0601B8F0, 0x0601B3B0, 0x0601B1C0, 0x06011660,
};
void func_8005A094(Object_2F4* arg0) { void func_8005A094(Object_2F4* arg0) {
switch (arg0->unk_0B8) { switch (arg0->unk_0B8) {
case 0: case 0:
Matrix_Translate(gGfxMatrix, 18.0f, 15.0f, -15.0f, 1); Matrix_Translate(gGfxMatrix, 18.0f, 15.0f, -15.0f, 1);
Matrix_RotateY(gGfxMatrix, M_PI, 1U); Matrix_RotateY(gGfxMatrix, M_PI, 1);
Matrix_SetGfxMtx(&gMasterDisp); Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_3016660); gSPDisplayList(gMasterDisp++, D_3016660);
break; break;
case 1: case 1:
Matrix_Translate(gGfxMatrix, -18.0f, 15.0f, -15.0f, 1); Matrix_Translate(gGfxMatrix, -18.0f, 15.0f, -15.0f, 1);
Matrix_RotateY(gGfxMatrix, M_PI, 1U); Matrix_RotateY(gGfxMatrix, M_PI, 1);
Matrix_SetGfxMtx(&gMasterDisp); Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_3015D80); gSPDisplayList(gMasterDisp++, D_3015D80);
break; break;
@ -396,13 +470,17 @@ void func_8005ADAC(Object_2F4* arg0) {
} }
} }
f32 D_800CFCA0[] = {
1.7f, 1.8f, 2.0f, 3.0f, 3.0f, 3.0f, 3.0f, 3.0f,
};
void func_8005B1E8(Object_2F4* arg0, s32 arg1) { void func_8005B1E8(Object_2F4* arg0, s32 arg1) {
f32 var_fv0; f32 var_fv0;
if ((arg0->unk_07C != 0) && (arg0->obj.status == 2)) { if ((arg0->unk_07C != 0) && (arg0->obj.status == 2)) {
var_fv0 = 0.63f; var_fv0 = 0.63f;
if (arg0->unk_07C >= 2) { if (arg0->unk_07C >= 2) {
var_fv0 = D_800CFC98[arg0->unk_07C] * 0.45f; var_fv0 = D_800CFCA0[arg0->unk_07C - 2] * 0.45f;
} }
if (D_80177DB0 & 1) { if (D_80177DB0 & 1) {
var_fv0 *= 1.2f; var_fv0 *= 1.2f;
@ -421,7 +499,7 @@ void func_8005B1E8(Object_2F4* arg0, s32 arg1) {
#ifdef NON_MATCHING #ifdef NON_MATCHING
void func_8005B388(Object_2F4* arg0) { void func_8005B388(Object_2F4* arg0) {
Vec3f sp3C = D_800CFCC0; Vec3f sp3C = { 0.0f, 0.0f, 0.0f };
Vec3f sp30; Vec3f sp30;
Matrix_MultVec3f(gGfxMatrix, &sp3C, &sp30); Matrix_MultVec3f(gGfxMatrix, &sp3C, &sp30);
@ -465,6 +543,7 @@ void func_8005B388(Object_2F4* arg0) {
func_8005ADAC(arg0); func_8005ADAC(arg0);
} }
#else #else
Vec3f D_800CFCC0 = { 0.0f, 0.0f, 0.0f };
void func_8005B388(Object_2F4*); void func_8005B388(Object_2F4*);
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_5A2C0/func_8005B388.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_5A2C0/func_8005B388.s")
#endif #endif
@ -514,8 +593,8 @@ void func_8005B848(Object_2F4* arg0) {
void func_8005B9A4(Object_2F4* arg0) { void func_8005B9A4(Object_2F4* arg0) {
Matrix_Translate(gGfxMatrix, 0.0f, -124.0f, 0.0f, 1); Matrix_Translate(gGfxMatrix, 0.0f, -124.0f, 0.0f, 1);
func_8009AA20(D_6029528, arg0->unk_0B6, &arg0->unk_18C); func_8009AA20(&D_6029528, arg0->unk_0B6, &arg0->unk_18C);
func_8009A72C(1, &D_6029674, &arg0->unk_18C, NULL, NULL, (s32*) arg0, &gIdentityMatrix); func_8009A72C(1, D_6029674, &arg0->unk_18C, NULL, NULL, (s32*) arg0, &gIdentityMatrix);
} }
void func_8005BA30(Object_2F4* arg0) { void func_8005BA30(Object_2F4* arg0) {
@ -529,6 +608,10 @@ void func_8005BA30(Object_2F4* arg0) {
void func_8005BAAC(void) { void func_8005BAAC(void) {
} }
f32 D_800CFCCC[] = {
0.0f, 0.05f, 0.03f, 0.02f, 0.01f, 0.05f, 0.0f, 0.02f,
};
void func_8005BAB4(s32 arg0, s32 arg1) { void func_8005BAB4(s32 arg0, s32 arg1) {
f32 temp_fv0; f32 temp_fv0;
f32 temp1; f32 temp1;
@ -899,7 +982,7 @@ void func_8005D8B8(Object_4C* arg0, s32 arg1) {
} }
void func_8005D954(Object_2F4* arg0) { void func_8005D954(Object_2F4* arg0) {
Vec3f sp34 = D_800CFCEC; Vec3f sp34 = { 0.0f, 0.0f, 0.0f };
if (arg0->unk_01C.unk_00 != NULL) { if (arg0->unk_01C.unk_00 != NULL) {
switch (arg0->obj.id) { switch (arg0->obj.id) {
@ -947,7 +1030,7 @@ void func_8005D954(Object_2F4* arg0) {
#ifdef NON_MATCHING #ifdef NON_MATCHING
void func_8005DBC0(Object_2F4* arg0) { void func_8005DBC0(Object_2F4* arg0) {
s32 var_v1; s32 var_v1;
Vec3f sp50 = D_800CFCF8; Vec3f sp50 = { 0.0f, 0.0f, 0.0f };
f32 var_fa1; f32 var_fa1;
f32 var_ft5; f32 var_ft5;
f32 var_fv0; f32 var_fv0;
@ -1029,6 +1112,7 @@ void func_8005DBC0(Object_2F4* arg0) {
arg0->unk_0B0 = D_801615EC; arg0->unk_0B0 = D_801615EC;
} }
#else #else
Vec3f D_800CFCF8 = { 0.0f, 0.0f, 0.0f };
void func_8005DBC0(Object_2F4* arg0); void func_8005DBC0(Object_2F4* arg0);
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_5A2C0/func_8005DBC0.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_5A2C0/func_8005DBC0.s")
#endif #endif
@ -1040,7 +1124,7 @@ void func_8005E1B8(Object_408* arg0, s32 arg1) {
f32 var_fv0; f32 var_fv0;
f32 var_fv1; f32 var_fv1;
f32 sp3C; f32 sp3C;
Vec3f sp30 = D_800CFD04; Vec3f sp30 = { 0.0f, 0.0f, 0.0f };
if (arg0->unk_01C.unk_19 != 0) { if (arg0->unk_01C.unk_19 != 0) {
arg0->obj.pos.y += arg0->unk_068 + D_8017847C; arg0->obj.pos.y += arg0->unk_068 + D_8017847C;
@ -1094,6 +1178,7 @@ void func_8005E1B8(Object_408* arg0, s32 arg1) {
} }
} }
#else #else
Vec3f D_800CFD04 = { 0.0f, 0.0f, 0.0f };
void func_8005E1B8(Object_408* arg0, s32 arg1); void func_8005E1B8(Object_408* arg0, s32 arg1);
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_5A2C0/func_8005E1B8.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_5A2C0/func_8005E1B8.s")
#endif #endif
@ -1118,7 +1203,7 @@ void func_8005E454(Object_8C* arg0, s32 arg1) {
#ifdef NON_MATCHING #ifdef NON_MATCHING
void func_8005E538(Object_8C* arg0) { void func_8005E538(Object_8C* arg0) {
Vec3f sp4C = D_800CFD10; Vec3f sp4C = { 0.0f, 0.0f, 0.0f };
Vec3f sp40; Vec3f sp40;
f32 var_fv0; f32 var_fv0;
u8 sp3B = 0; u8 sp3B = 0;
@ -1151,13 +1236,14 @@ void func_8005E538(Object_8C* arg0) {
} }
} }
#else #else
Vec3f D_800CFD10 = { 0.0f, 0.0f, 0.0f };
void func_8005E538(Object_8C* arg0); void func_8005E538(Object_8C* arg0);
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_5A2C0/func_8005E538.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_5A2C0/func_8005E538.s")
#endif #endif
#ifdef NON_MATCHING #ifdef NON_MATCHING
void func_8005E7B8(Object_6C* arg0, s32 arg1) { void func_8005E7B8(Object_6C* arg0, s32 arg1) {
Vec3f sp44 = D_800CFD1C; Vec3f sp44 = { 0.0f, 0.0f, 0.0f };
Vec3f sp38; Vec3f sp38;
u8 var_v0; u8 var_v0;
@ -1185,6 +1271,7 @@ void func_8005E7B8(Object_6C* arg0, s32 arg1) {
} }
} }
#else #else
Vec3f D_800CFD1C = { 0.0f, 0.0f, 0.0f };
void func_8005E7B8(Object_6C* arg0, s32 arg1); void func_8005E7B8(Object_6C* arg0, s32 arg1);
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_5A2C0/func_8005E7B8.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_5A2C0/func_8005E7B8.s")
#endif #endif
@ -1298,7 +1385,7 @@ void func_8005F0E8(Vec3f* arg0, Vec3f* arg1) {
} }
void func_8005F1EC(Vec3f* arg0) { void func_8005F1EC(Vec3f* arg0) {
Vec3f sp2C = D_800CFD28; Vec3f sp2C = { 0.0f, 0.0f, 0.0f };
Vec3f sp20; Vec3f sp20;
s32 pad; s32 pad;
@ -1330,7 +1417,7 @@ void func_8005F290(Vec3f* arg0, Vec3f* arg1) {
#ifdef NON_MATCHING #ifdef NON_MATCHING
void func_8005F2F4(Object_58* arg0) { void func_8005F2F4(Object_58* arg0) {
Vec3f sp54 = D_800CFD34; Vec3f sp54 = { 0.0f, 0.0f, 0.0f };
Vec3f sp48; Vec3f sp48;
f32 sp44 = 1000.0f; f32 sp44 = 1000.0f;
f32 sp40 = -12000.0f; f32 sp40 = -12000.0f;
@ -1375,6 +1462,7 @@ void func_8005F2F4(Object_58* arg0) {
} }
} }
#else #else
Vec3f D_800CFD34 = { 0.0f, 0.0f, 0.0f };
void func_8005F2F4(Object_58*); void func_8005F2F4(Object_58*);
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_5A2C0/func_8005F2F4.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_5A2C0/func_8005F2F4.s")
#endif #endif
@ -1662,6 +1750,18 @@ void func_8006089C(u8 arg0) {
D_80161410 = 1; D_80161410 = 1;
} }
Vtx D_800CFD40[] = {
VTX(1, 0, 0, 0, 0, 255, 255, 255, 255),
VTX(-1, 0, 0, 0, 0, 255, 255, 255, 255),
VTX(-1, 0, -1, 0, 0, 255, 255, 255, 255),
VTX(1, 0, -1, 0, 0, 255, 255, 255, 255),
};
Gfx D_800CFD80[] = {
gsSPVertex(D_800CFD40, 4, 0),
gsSP1Quadrangle(1, 2, 3, 0, 0),
gsSPEndDisplayList(),
};
#ifdef NON_MATCHING #ifdef NON_MATCHING
void func_80060968(void) { void func_80060968(void) {
s32 i; s32 i;

View File

@ -1,5 +1,30 @@
#include "global.h" #include "global.h"
ObjectInit* D_800CFDA0[] = {
0x060371A4, 0x06026CC4, 0x0602A164, 0x06023F64, 0x060287A4, 0x0602E4F4, 0x06007E74,
0x0601F234, 0x06026714, 0x0C035154, 0x06006AA4, 0x06031000, 0x06006C60, 0x0602E5C8,
0x0600EAD4, NULL, 0x06011044, 0x0600FF74, 0x06006EB4, 0x06014D94, 0x0302DE3C,
};
s32 D_800CFDF4[] = {
0, 0x144, 0x144, 0x144, 0x144, 0x147, 0x147, 0x147, 0x147, 0x142, 0x142, 0x142, 0x142,
0x14F, 0x150, 0x150, 0x150, 0x150, 0x150, 0x142, 0x147, 0x144, 0x144, 0x151, 0, 0x145,
};
f32 D_800CFE5C[] = {
0.0f, 1.0f, 0.5f, 0.33f, 0.25f, 1.0f, 0.5f, 0.33f, 0.25f, 1.0f, 0.5f, 0.33f, 0.25f,
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f, -1.0f, -1.0f, -1.0f, 0.1f, 1.0f, 1.0f, 1.0f,
};
Vec3f D_800CFEC4[6] = {
{ 0.0f, 0.0f, 50.0f }, { -50.0f, 0.0f, 0.0f }, { 50.0f, 0.0f, 0.0f },
{ 0.0f, 50.0f, 0.0f }, { 0.0f, 0.0f, -50.0f }, { 0.0f, -50.0f, 0.0f },
};
Vec3f D_800CFF0C[6] = {
{ 0.0f, 0.0f, 0.0f }, { 0.0f, -90.0f, 0.0f }, { 0.0f, 90.0f, 0.0f },
{ -90.0f, 0.0f, 0.0f }, { 0.0f, 180.0f, 0.0f }, { 90.0f, 0.0f, 0.0f },
};
u32 D_800CFF54[9] = {
0x19404038, 0x19404139, 0x1940423A, 0x1940433B, 0x1940443C, 0x1940453D, 0x1940463E, 0x1940463E, 0x1940463E,
};
void func_80060F30(Vec3f* arg0, u32 arg1, s32 arg2) { void func_80060F30(Vec3f* arg0, u32 arg1, s32 arg2) {
if (D_801778E8 == 0) { if (D_801778E8 == 0) {
func_80019218(arg1, &D_800C5D28, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); func_80019218(arg1, &D_800C5D28, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C);
@ -1643,7 +1668,7 @@ void func_8006654C(Object_2F4* arg0) {
arg0->unk_114 = arg0->unk_114 + 0.5f; arg0->unk_114 = arg0->unk_114 + 0.5f;
} }
arg0->unk_0B6++; arg0->unk_0B6++;
if (func_8009ACDC(D_6029528) < arg0->unk_0B6) { if (func_8009ACDC(&D_6029528) < arg0->unk_0B6) {
arg0->unk_0B6 = 0; arg0->unk_0B6 = 0;
} }
if ((arg0->obj.rot.z < 15.0f) && (arg0->unk_0B6 < 0x14)) { if ((arg0->obj.rot.z < 15.0f) && (arg0->unk_0B6 < 0x14)) {

View File

@ -10,7 +10,23 @@ void func_800843FC(s32 arg0) {
func_8009F574(&gMasterDisp, 0, SCREEN_HEIGHT - arg0, SCREEN_WIDTH, SCREEN_HEIGHT, 0, 0, 0, 255); func_8009F574(&gMasterDisp, 0, SCREEN_HEIGHT - arg0, SCREEN_WIDTH, SCREEN_HEIGHT, 0, 0, 0, 255);
} }
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_84F70/func_80084488.s") void func_80084488(s32 arg0) {
s32 var_s1;
func_800B8FA8();
Matrix_Push(&gGfxMatrix);
Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -150.0f, 0);
for (var_s1 = 0; var_s1 < MIN(360, arg0 * 15); var_s1 += 0xF) {
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 0, 0, MIN((arg0 - (var_s1 / 15)) * 15, 255));
Matrix_Push(&gGfxMatrix);
Matrix_RotateZ(gGfxMatrix, var_s1 * M_DTOR, 1);
Matrix_Scale(gGfxMatrix, 0.53f, 1.0f, 1.0f, 1);
Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_Gfx_800D9688);
Matrix_Pop(&gGfxMatrix);
}
Matrix_Pop(&gGfxMatrix);
}
void func_80084688(s32 arg0, s32 arg1) { void func_80084688(s32 arg0, s32 arg1) {
if (arg1 != 0) { if (arg1 != 0) {
@ -18,18 +34,149 @@ void func_80084688(s32 arg0, s32 arg1) {
case 0: case 0:
func_80084488(arg1); func_80084488(arg1);
break; break;
case 1: case 1:
func_80084370(arg1); func_80084370(arg1);
break; break;
case 2: case 2:
func_800843FC(arg1); func_800843FC(arg1);
break; break;
default:
(void) "そのような フェード は ない (%d)\n"; // There is no such fade
break;
} }
} }
} }
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_84F70/func_800846F0.s") #ifdef NON_MATCHING
// pretty sure this is equivalent, but it's almost certainly not implemented this way. Raw m2c included for those who
// want to try.
void func_800846F0(FrameBuffer* arg0) {
s32 sp70;
s32 sp6C;
s32 sp68;
s32 sp64;
s32 sp60;
s32 sp5C;
s32 sp58;
s32 sp54;
s32 sp50;
s32 sp4C;
s32 sp48;
s32 sp44;
s32 sp40;
s32 sp3C;
s32 sp38;
s32 sp30;
s32 sp2C;
s32 sp28;
s32 sp24;
s32 sp20;
s32 temp_t3;
s32 temp_t3_2;
s32 temp_t4;
s32 temp_t4_2;
s32 temp_t5_2;
s32 temp_t6;
s32 temp_t6_2;
s32 temp_t7;
s32 temp_t7_2;
s32 temp_t7_3;
s32 temp_t8;
s32 temp_t9;
s32 temp_t9_2;
s32 var_t2;
u16* var_v0;
u16 temp_t5;
u32 var_a0;
u32 var_t0;
u32 var_t1;
u32 var_v1;
s32 i;
s32 j;
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_84F70/D_800D76F0.s") for (i = 0; i < gFrameCounter % 240U; i++) {
for (j = 0; j < gFrameCounter % 320U; j++) {
sp64 = RGBA16_RED(arg0->array[i][j]);
sp50 = RGBA16_GRN(arg0->array[i][j]);
sp3C = RGBA16_BLU(arg0->array[i][j]);
sp68 = RGBA16_RED(arg0->array[i][j + 1]);
sp54 = RGBA16_GRN(arg0->array[i][j + 1]);
sp40 = RGBA16_BLU(arg0->array[i][j + 1]);
sp6C = RGBA16_RED(arg0->array[i + 1][j]);
sp58 = RGBA16_GRN(arg0->array[i + 1][j]);
sp44 = RGBA16_BLU(arg0->array[i + 1][j]);
sp70 = RGBA16_RED(arg0->array[i + 1][j + 1]);
sp5C = RGBA16_GRN(arg0->array[i + 1][j + 1]);
sp48 = RGBA16_BLU(arg0->array[i + 1][j + 1]);
sp60 = (sp64 + sp68 + sp6C + sp70) / 4;
sp4C = (sp50 + sp54 + sp58 + sp5C) / 4;
sp38 = (sp3C + sp40 + sp44 + sp48) / 4;
arg0->array[i][j] = RGBA16_PACK(sp60, sp4C, sp38, 0);
}
}
// var_t1 = 0;
// var_t0 = (u32) gFrameCounter % 240U;
// if (var_t0 != 0) {
// var_a0 = (u32) gFrameCounter % 320U;
// var_t2 = 0;
// do {
// var_v0 = (var_t2 * 2) + arg0;
// var_v1 = 0;
// if (var_a0 != 0) {
// do {
// temp_t5 = *var_v0;
// var_v1 += 1;
// var_v0 += 2;
// temp_t3 = ((s32) temp_t5 >> 0xB) & 0x1F;
// sp64 = temp_t3;
// temp_t4 = ((s32) var_v0->unk-2 >> 6) & 0x1F;
// sp50 = temp_t4;
// temp_t9 = ((s32) var_v0->unk-2 >> 1) & 0x1F;
// sp3C = temp_t9;
// temp_t7 = ((s32) var_v0->unk0 >> 0xB) & 0x1F;
// sp68 = temp_t7;
// temp_t6 = ((s32) var_v0->unk0 >> 6) & 0x1F;
// sp54 = temp_t6;
// temp_t5_2 = ((s32) var_v0->unk0 >> 1) & 0x1F;
// sp40 = temp_t5_2;
// sp20 = temp_t3;
// temp_t3_2 = ((s32) var_v0->unk27E >> 0xB) & 0x1F;
// sp6C = temp_t3_2;
// sp24 = temp_t4;
// temp_t4_2 = ((s32) var_v0->unk27E >> 6) & 0x1F;
// sp58 = temp_t4_2;
// sp28 = temp_t9;
// temp_t9_2 = ((s32) var_v0->unk27E >> 1) & 0x1F;
// sp44 = temp_t9_2;
// sp2C = temp_t7;
// temp_t7_2 = ((s32) var_v0->unk280 >> 0xB) & 0x1F;
// sp70 = temp_t7_2;
// sp30 = temp_t6;
// temp_t6_2 = ((s32) var_v0->unk280 >> 6) & 0x1F;
// sp5C = temp_t6_2;
// sp48 = ((s32) var_v0->unk280 >> 1) & 0x1F;
// sp60 = (s32) (temp_t7_2 + sp20 + temp_t7 + temp_t3_2) / 4;
// temp_t8 = (s32) (temp_t6_2 + sp24 + sp30 + temp_t4_2) / 4;
// sp4C = temp_t8;
// temp_t7_3 = (s32) (sp48 + sp28 + temp_t5_2 + temp_t9_2) / 4;
// sp38 = temp_t7_3;
// var_v0->unk-2 = (u16) ((temp_t7_3 * 2) | (sp60 << 0xB) | (temp_t8 << 6));
// var_a0 = (u32) gFrameCounter % 320U;
// } while (var_v1 < var_a0);
// var_t0 = (u32) gFrameCounter % 240U;
// }
// var_t1 += 1;
// var_t2 += 0x140;
// } while (var_t1 < var_t0);
// }
osWritebackDCacheAll();
}
#else
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_84F70/func_800846F0.s")
#endif

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,17 @@
#include "global.h" #include "global.h"
extern void func_80187520(s32, void*); extern void func_80187520(s32, void*);
#define RGBA16_RED(color16) ((((color16) >> 0xB) & 0x1F) * 8)
#define RGBA16_GREEN(color16) ((((color16) >> 6) & 0x1F) * 8) s32 D_800D2860[4] = { 1, 1, 1, 1 };
#define RGBA16_BLUE(color16) ((((color16) >> 1) & 0x1F) * 8) s32 D_800D2870 = 0;
s32 D_800D2874[] = { 0, 160, 0, 160 };
s32 D_800D2884[] = { 159, 319, 159, 319 };
s32 D_800D2894[] = { 0, 0, 120, 120 };
s32 D_800D28A4[] = { 119, 119, 239, 239 };
s32 D_800D28B4[] = {
0x05, 0x06, 0x08, 0x0A, 0x0C, 0x0D, 0x12, 0x0E, 0x0F, 0x10, 0x11,
0x15, 0x07, 0x09, 0x0B, 0x00, 0x13, 0x16, 0x17, 0x18, 0x32,
};
void func_800A18B0(void) { void func_800A18B0(void) {
Memory_FreeAll(); Memory_FreeAll();
@ -74,12 +82,11 @@ void func_800A1980(void) {
func_8001D400(0); func_8001D400(0);
} }
#ifdef DATA_IMPORT_PENDING
s32 func_800A1B6C(void) { s32 func_800A1B6C(void) {
static u8 D_800D2908 = 5; static u8 D_800D2908 = 0;
static u8 D_800D290C = 5; static u8 D_800D290C = 99;
static u8 D_800D2910 = 5; static u8 D_800D2910 = 99;
static u8 D_800D2914 = 5; static u8 D_800D2914 = 99;
if (D_801774F8 != D_800D2910) { if (D_801774F8 != D_800D2910) {
D_800D2908 = 2; D_800D2908 = 2;
@ -97,10 +104,6 @@ s32 func_800A1B6C(void) {
} }
return 0; return 0;
} }
#else
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_A24B0/func_800A1B6C.s")
#endif
void func_800A1C14(Gfx** arg0) { void func_800A1C14(Gfx** arg0) {
gSPDisplayList((*arg0)++, D_Gfx_800DBAA0); gSPDisplayList((*arg0)++, D_Gfx_800DBAA0);
@ -116,8 +119,8 @@ void func_800A1C14(Gfx** arg0) {
gDPSetCycleType((*arg0)++, G_CYC_1CYCLE); gDPSetCycleType((*arg0)++, G_CYC_1CYCLE);
gDPSetCombineMode((*arg0)++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); gDPSetCombineMode((*arg0)++, G_CC_PRIMITIVE, G_CC_PRIMITIVE);
gDPSetRenderMode((*arg0)++, G_RM_XLU_SURF, G_RM_XLU_SURF2); gDPSetRenderMode((*arg0)++, G_RM_XLU_SURF, G_RM_XLU_SURF2);
gDPSetPrimColor((*arg0)++, 0x00, 0x00, RGBA16_RED(D_80161A36), RGBA16_GREEN(D_80161A36), gDPSetPrimColor((*arg0)++, 0x00, 0x00, RGBA16_RED(D_80161A36) * 8, RGBA16_GRN(D_80161A36) * 8,
RGBA16_BLUE(D_80161A36), D_80161A38); RGBA16_BLU(D_80161A36) * 8, D_80161A38);
} else { } else {
gDPSetFillColor((*arg0)++, (((D_80161A36 | 1) << 0x10) | (D_80161A36 | 1))); gDPSetFillColor((*arg0)++, (((D_80161A36 | 1) << 0x10) | (D_80161A36 | 1)));
} }
@ -315,7 +318,7 @@ void func_800A26C0(void) {
break; break;
case 0x67: case 0x67:
if (Save_Read() != 0) { if (Save_Read() != 0) {
gSaveFile = *((SaveFile*) &D_800D4D10); gSaveFile = *((SaveFile*) &gDefaultSave);
Save_Write(); Save_Write();
} }
D_80177834++; D_80177834++;

View File

@ -121,27 +121,27 @@ void func_80084E78(Gfx** gfxP, void* arg1, void* arg2, u32 arg3, u32 arg4, f32 a
} }
void func_800853A4(f32 arg0, f32 arg1, f32 arg2, f32 arg3) { void func_800853A4(f32 arg0, f32 arg1, f32 arg2, f32 arg3) {
func_8009D0BC(&gMasterDisp, &D_1013170, &D_1013570, 24, 17, arg0, arg1, arg2, arg3); func_8009D0BC(&gMasterDisp, D_1013170, D_1013570, 24, 17, arg0, arg1, arg2, arg3);
} }
void func_80085404(f32 arg0, f32 arg1, f32 arg2, f32 arg3) { void func_80085404(f32 arg0, f32 arg1, f32 arg2, f32 arg3) {
func_8009C320(&gMasterDisp, &D_1011280, &D_10116A0, 48, 44, arg0, arg1, arg2, arg3); func_8009C320(&gMasterDisp, D_1011280, D_10116A0, 48, 44, arg0, arg1, arg2, arg3);
} }
void func_80085464(f32 arg0, f32 arg1) { void func_80085464(f32 arg0, f32 arg1) {
func_8009C320(&gMasterDisp, &D_1011AC0, &D_1011B90, 16, 26, arg0, arg1, 1.0f, 1.0f); func_8009C320(&gMasterDisp, D_1011AC0, D_1011B90, 16, 26, arg0, arg1, 1.0f, 1.0f);
} }
void func_800854BC(f32 arg0, f32 arg1) { void func_800854BC(f32 arg0, f32 arg1) {
func_8009C320(&gMasterDisp, &D_1011BB0, &D_1011C80, 16, 26, arg0, arg1, 1.0f, 1.0f); func_8009C320(&gMasterDisp, D_1011BB0, D_1011C80, 16, 26, arg0, arg1, 1.0f, 1.0f);
} }
void func_80085514(f32 arg0, f32 arg1) { void func_80085514(f32 arg0, f32 arg1) {
func_8009C320(&gMasterDisp, &D_1011CA0, &D_1011D70, 16, 26, arg0, arg1, 1.0f, 1.0f); func_8009C320(&gMasterDisp, D_1011CA0, D_1011D70, 16, 26, arg0, arg1, 1.0f, 1.0f);
} }
void func_8008556C(f32 arg0, f32 arg1) { void func_8008556C(f32 arg0, f32 arg1) {
func_8009C320(&gMasterDisp, &D_1011D90, &D_1011E60, 16, 26, arg0, arg1, 1.0f, 1.0f); func_8009C320(&gMasterDisp, D_1011D90, D_1011E60, 16, 26, arg0, arg1, 1.0f, 1.0f);
} }
void func_800855C4(f32 arg0, f32 arg1, f32 arg2, f32 arg3) { void func_800855C4(f32 arg0, f32 arg1, f32 arg2, f32 arg3) {
@ -178,9 +178,9 @@ void func_800857DC(f32 arg0, f32 arg1, f32 arg2, f32 arg3) {
void func_80085890(f32 arg0, f32 arg1, f32 arg2, f32 arg3) { void func_80085890(f32 arg0, f32 arg1, f32 arg2, f32 arg3) {
if (D_801778E8 != 0) { if (D_801778E8 != 0) {
func_8009D0BC(&gMasterDisp, &D_300D350, &D_300D398, 24, 3, arg0, arg1, arg2, arg3); func_8009D0BC(&gMasterDisp, D_300D350, D_300D398, 24, 3, arg0, arg1, arg2, arg3);
} else { } else {
func_8009D0BC(&gMasterDisp, &D_10127D0, &D_1012898, 40, 5, arg0, arg1, arg2, arg3); func_8009D0BC(&gMasterDisp, D_10127D0, D_1012898, 40, 5, arg0, arg1, arg2, arg3);
} }
} }
@ -1123,7 +1123,7 @@ void func_8008D0DC(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4) {
} }
void func_8008D1F0(f32 arg0, f32 arg1, f32 arg2, f32 arg3) { void func_8008D1F0(f32 arg0, f32 arg1, f32 arg2, f32 arg3) {
func_8009C320(&gMasterDisp, &D_10116B0, &D_1011730, 16, 16, arg0, arg1, arg2, arg3); func_8009C320(&gMasterDisp, D_10116B0, D_1011730, 16, 16, arg0, arg1, arg2, arg3);
} }
#ifdef IMPORT_DATA_PENDING #ifdef IMPORT_DATA_PENDING
@ -1401,7 +1401,7 @@ void func_8008E2C8(f32 arg0, f32 arg1, s32* arg2, f32 arg3) {
if (i & 1) { if (i & 1) {
func_800BA4F0(); func_800BA4F0();
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255); gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
func_8009C320(&gMasterDisp, &D_1011E80, &D_1011EC0, 0x10, 8, (var_fs0 * arg3) + arg0, arg1, arg3, arg3); func_8009C320(&gMasterDisp, D_1011E80, D_1011EC0, 0x10, 8, (var_fs0 * arg3) + arg0, arg1, arg3, arg3);
} else { } else {
func_800BA490(); func_800BA490();
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 0, 255); gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 0, 255);

View File

@ -1,10 +1,12 @@
#include "global.h" #include "global.h"
char D_800C7C80[] = "$Id: sprintf.c,v 1.5 1997/03/19 02:28:53 hayakawa Exp $";
void* proutSprintf(void* dst, const char* fmt, size_t size) { void* proutSprintf(void* dst, const char* fmt, size_t size) {
return (void*) ((uintptr_t) memcpy(dst, fmt, size) + size); return (void*) ((uintptr_t) memcpy(dst, fmt, size) + size);
} }
s32 vsprintf(char* dst, char* fmt, va_list args) { s32 vsprintf(char* dst, const char* fmt, va_list args) {
s32 ret = _Printf(proutSprintf, dst, fmt, args); s32 ret = _Printf(proutSprintf, dst, fmt, args);
if (ret > -1) { if (ret > -1) {

View File

@ -935,7 +935,7 @@ void func_EBFBE0_801962A4(void) {
if (temp_fv0 == 0.0f) { if (temp_fv0 == 0.0f) {
D_EBFBE0_801B91CC = 3; D_EBFBE0_801B91CC = 3;
gSaveFile = *(SaveFile*) &D_800D4D10; gSaveFile = *(SaveFile*) &gDefaultSave;
Save_Write(); Save_Write();
@ -1165,7 +1165,7 @@ void func_EBFBE0_801973C0(void) {
func_EBFBE0_8019C824(&D_EBFBE0_801B93F0); func_EBFBE0_8019C824(&D_EBFBE0_801B93F0);
temp_t0 = D_EBFBE0_801B93F0; temp_t0 = D_EBFBE0_801B93F0;
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, temp_t0, temp_t0, 255); gDPSetPrimColor(gMasterDisp++, 0, 0, 255, temp_t0, temp_t0, 255);
func_8009D994(&gMasterDisp, &D_7004010, 8, 8, 70.0f, (D_EBFBE0_801B93E4 * 17.0f) + 55.0f, 1.0f, 1.0f); func_8009D994(&gMasterDisp, D_7004010, 8, 8, 70.0f, (D_EBFBE0_801B93E4 * 17.0f) + 55.0f, 1.0f, 1.0f);
} }
func_800B8DD0(&gMasterDisp, 0x53); func_800B8DD0(&gMasterDisp, 0x53);
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 0, 255); gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 0, 255);
@ -1220,7 +1220,7 @@ void func_EBFBE0_8019752C(void) {
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, temp_a0, temp_a0, 255); gDPSetPrimColor(gMasterDisp++, 0, 0, 255, temp_a0, temp_a0, 255);
} }
func_8009D994(&gMasterDisp, &D_800D070, 16, 16, 150.0f, 44.0f, 1.0f, 1.0f); func_8009D994(&gMasterDisp, D_800D070, 16, 16, 150.0f, 44.0f, 1.0f, 1.0f);
if (D_EBFBE0_801B91D4 <= -1055.0f) { if (D_EBFBE0_801B91D4 <= -1055.0f) {
gDPSetPrimColor(gMasterDisp++, 0, 0, 32, 32, 32, 255); gDPSetPrimColor(gMasterDisp++, 0, 0, 32, 32, 32, 255);
@ -1230,7 +1230,7 @@ void func_EBFBE0_8019752C(void) {
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, temp_a0, temp_a0, 255); gDPSetPrimColor(gMasterDisp++, 0, 0, 255, temp_a0, temp_a0, 255);
} }
func_8009E4B0(&gMasterDisp, &D_800D070, 0x10, 0x10, 150.0f, 200.0f, 1.0f, 1.0f); func_8009E4B0(&gMasterDisp, D_800D070, 0x10, 0x10, 150.0f, 200.0f, 1.0f, 1.0f);
} }
#else #else
#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/fox_option/func_EBFBE0_8019752C.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/fox_option/func_EBFBE0_8019752C.s")
@ -1243,7 +1243,7 @@ void func_EBFBE0_80197914(void) {
func_800B8DD0(&gMasterDisp, 0); func_800B8DD0(&gMasterDisp, 0);
for (i = 0, vec1 = &D_EBFBE0_801AF100, vec2 = &D_EBFBE0_801AF118; i < 2; i++, vec1++, vec2++) { for (i = 0, vec1 = D_EBFBE0_801AF100, vec2 = D_EBFBE0_801AF118; i < 2; i++, vec1++, vec2++) {
Matrix_Push(&gGfxMatrix); Matrix_Push(&gGfxMatrix);
Matrix_Translate(gGfxMatrix, vec1->x, vec1->y, -500.0f, 1); Matrix_Translate(gGfxMatrix, vec1->x, vec1->y, -500.0f, 1);
Matrix_Scale(gGfxMatrix, vec2->x, vec2->y, 1.0f, 1); Matrix_Scale(gGfxMatrix, vec2->x, vec2->y, 1.0f, 1);
@ -1289,7 +1289,7 @@ void func_EBFBE0_80197A3C(s32 arg0, s32 arg1, s32 arg2) {
} }
void func_EBFBE0_80197D30(s32 arg0, s32 arg1, s32 arg2) { void func_EBFBE0_80197D30(s32 arg0, s32 arg1, s32 arg2) {
u8 temp[4]; char temp[4];
func_800B8DD0(&gMasterDisp, 0x53); func_800B8DD0(&gMasterDisp, 0x53);
@ -1298,7 +1298,7 @@ void func_EBFBE0_80197D30(s32 arg0, s32 arg1, s32 arg2) {
temp[0] = gSaveFile.save.data.unk_18[arg0][0] & 0xFF; temp[0] = gSaveFile.save.data.unk_18[arg0][0] & 0xFF;
temp[1] = gSaveFile.save.data.unk_18[arg0][1] & 0xFF; temp[1] = gSaveFile.save.data.unk_18[arg0][1] & 0xFF;
temp[2] = gSaveFile.save.data.unk_18[arg0][2] & 0xFF; temp[2] = gSaveFile.save.data.unk_18[arg0][2] & 0xFF;
temp[3] = 0; temp[3] = '\0';
func_800A0094(arg1, arg2, 1.0f, 1.0f, temp); func_800A0094(arg1, arg2, 1.0f, 1.0f, temp);
} }
@ -1306,7 +1306,7 @@ void func_EBFBE0_80197D30(s32 arg0, s32 arg1, s32 arg2) {
void func_EBFBE0_80197DE4(s32 arg0, s32 arg1, s32 arg2) { void func_EBFBE0_80197DE4(s32 arg0, s32 arg1, s32 arg2) {
func_800B8DD0(&gMasterDisp, 0x53); func_800B8DD0(&gMasterDisp, 0x53);
gDPSetPrimColor(gMasterDisp++, 0, 0, 60, 60, 255, 170); gDPSetPrimColor(gMasterDisp++, 0, 0, 60, 60, 255, 170);
func_8009D994(&gMasterDisp, &D_601B4B0, 24, 17, arg1, arg2, 3.17f, 1.05f); func_8009D994(&gMasterDisp, D_601B4B0, 24, 17, arg1, arg2, 3.17f, 1.05f);
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 0, 255); gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 0, 255);
func_800A1200(arg1, arg2, 1.0f, 1.0f, "TOTAL HITS"); func_800A1200(arg1, arg2, 1.0f, 1.0f, "TOTAL HITS");
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255); gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);

View File

@ -18,6 +18,7 @@ options:
symbol_addrs_path: symbol_addrs_path:
- linker_scripts/us/symbol_addrs.txt - linker_scripts/us/symbol_addrs.txt
- linker_scripts/us/symbol_addrs_engine.txt
- linker_scripts/us/symbol_addrs_libultra.txt - linker_scripts/us/symbol_addrs_libultra.txt
- linker_scripts/us/symbol_addrs_nlib_funcs.txt - linker_scripts/us/symbol_addrs_nlib_funcs.txt
- linker_scripts/us/symbol_addrs_nlib_vars.txt - linker_scripts/us/symbol_addrs_nlib_vars.txt

View File

@ -200,7 +200,7 @@
- [0xC5220, .data, matrix] - [0xC5220, .data, matrix]
- [0xC52F0, .data, fault] - [0xC52F0, .data, fault]
- [0xC54D0, data, audio] - [0xC54D0, data, audio]
- [0xC8880, data, sprintf] - [0xC8880, .data, sprintf]
# DATA - Libultra # DATA - Libultra
- [0xC88C0, data, ../libultra/io/controller] - [0xC88C0, data, ../libultra/io/controller]
@ -253,31 +253,28 @@
- [0xCA650, rodata, ../libultra/rmon/rmonrcp] - [0xCA650, rodata, ../libultra/rmon/rmonrcp]
# DATA - game engine # DATA - game engine
- [0xCA690, data, engine]
# - [0xCA690, data, sf_2F300] - [0xCA690, data, sf_2F300]
# - [0xCA7C0, data, sf_36930] - [0xCA7C0, data, sf_36930]
# - [0xCAA90, data, ???] - [0xCAA90, data, sf_43AC0]
# - [0xCAB00, data, sf_43E80] - [0xCAB00, data, sf_43E80]
# - [0xCAB60, data, sf_496C0] - [0xCAB60, data, sf_496C0]
# - [0xCAE20, data, sf_52730] - [0xCAE20, data, sf_52730]
# - [0xCAFB0, data, sf_59780] - [0xCAFB0, data, sf_59780]
# - [0xCCA70, data, ???] - [0xCCA70, data, sf_50AF0]
# - [0xD05B0, data, sf_5A2C0] - [0xD0570, .data, sf_5A2C0]
# - [0xD09A0, data, sf_61B30] - [0xD09A0, .data, sf_61B30]
# - [0xD0B80, data, sf_6B3B0] - [0xD0B80, data, sf_6B3B0]
# - [0xD20E0, data, sf_77E40] - [0xD20E0, data, sf_77E40]
# - [0xD2570, data, sf_hud] - [0xD2570, data, sf_hud]
# # - [0xD31D0, data, sf_97F80] splits from here on are unclear - [0xD31D0, .data, sf_9A580]
# - [0xD31D0, data, sf_9A580] - [0xD3460, .data, sf_A24B0]
# - [0xD3460, data, sf_A24B0] - [0xD3520, data, sf_A48A0]
# - [0xD3520, data, sf_A4290] - [0xD3B50, data, sf_A4B50]
# # - [0x, data, sf_A48A0] - [0xD3DB0, .data, fox_rcp]
# - [0xD3B50, data, sf_A4B50] - [0xD5670, data, sf_BB360]
# - [0xD3D80, data, ???] - [0xD5690, data, sf_versus]
# - [0xD3DB0, data, fox_rcp] - [0xD5910, .data, fox_save]
# - [0xD5670, data, sf_BB360]
# - [0xD5690, data, sf_versus]
# - [0xD5910, data, sf_C3BB0]
# RODATA - game engine # RODATA - game engine
- [0xD5A10, .rodata, sf_2F300] - [0xD5A10, .rodata, sf_2F300]