Import main, context, and option bss. Refactor headers. Some enum cleanup. (#130)

* stuff

* fixes

* addrs

* new header

* its bss time

* format and such

* fake symbols begone

* whoops forgot pragmas
This commit is contained in:
petrie911
2024-02-16 19:04:22 -03:00
committed by GitHub
parent 16cc6a411f
commit 209b929eda
60 changed files with 1756 additions and 1495 deletions
+11 -1
View File
@@ -52,7 +52,17 @@
"prevent_bss_reordering2.h": "c",
"ast_aq.h": "c",
"ast_8e1f80.h": "c",
"fox_end2.inc" : "c"
"fox_end2.inc": "c",
"sf64thread.h": "c",
"gfx.h": "c",
"os.h": "c",
"math.h": "c",
"context.h": "c",
"sf64player.h": "c",
"sys.h": "c",
"fox_option_assets.h": "c",
"mods.h": "c",
"i5.h": "c"
},
"C_Cpp_Runner.msvcBatchPath": ""
}
+1 -5
View File
@@ -2,12 +2,8 @@
#ifndef ASSETS_H
#define ASSETS_H
#include "libc/stdbool.h"
#include "sf64math.h"
#include "structs.h"
#include "gfx.h"
#include "sys.h"
#include "sf64level.h"
#include "sf64thread.h"
#include "sf64object.h"
#include "sf64player.h"
+15
View File
@@ -0,0 +1,15 @@
#ifndef BUFFERS_H
#define BUFFERS_H
#include "gfx.h"
extern u64 gDramStack[];
extern u8 gOSYieldData[];
extern FrameBuffer gZBuffer; // z buffer
extern u8 gTaskOutputBuffer[];
extern u8 gAudioDataBuffer[];
extern u16 gTextureRenderBuffer[];
extern u16 gFillBuffer[];
extern FrameBuffer gFrameBuffers[]; // 8038F800
#endif
+354
View File
@@ -0,0 +1,354 @@
#ifndef CONTEXT_H
#define CONTEXT_H
#include "sys.h"
#include "sf64level.h"
#include "sf64object.h"
#include "sf64player.h"
extern s32 gOverlaySetup;
extern s32 gOverlayStage;
extern s32 D_80177824; // some sort of flag
extern s32 D_8017782C; // some sort of flag. all range related?
extern GameState gGameState;
extern s32 D_Timer_8017783C; // next game state timer?
extern s32 D_80177844; // timer for vs item spawn
extern OptionState gOptionMenuStatus;
extern s32 D_80177854; // pause-related state
extern s32 D_80177868; // some sort of state. pause-related?
extern LevelMode gLevelMode;
extern DrawMode gDrawMode;
extern s32 gPlayerNum;
extern s32 gCamCount;
extern s32 gTeamShields[6];
extern s32 gSavedTeamShields[6];
extern UNK_TYPE D_801778F0[6];
extern s32 gTeamDamage[6];
extern u8 D_80177930; // next planet path
extern f32 gGroundLevel;
extern f32 D_80177950;
extern f32 D_80177968;
extern f32 D_80177970;
extern f32 D_80177978;
extern f32 D_80177980;
extern f32 D_80177988;
extern f32 D_801779A0;
extern f32 D_801779B8;
extern f32 D_801779C0;
extern Vec3f D_801779D8;
extern Vec3f D_801779E8;
extern bool gExpertMode;
extern s32 D_80177A10[10];
extern f32 D_80177A48[10];
extern s32 gCsFrameCount;
extern u8 D_80177A98;
extern u8 D_80177AB0;
extern u8 D_80177AC8;
extern s32 D_80177AE0;
extern s32 gMainController;
extern s32 D_80177B40;
extern PlanetId gCurrentPlanet; // D_80177B48 // Arrow pointer?
extern s32 D_80177B50[7];
extern s32 D_80177B70[7];
extern PlanetId D_80177B90[7];
extern s32 D_80177BB0[7];
extern s32 D_80177BD8[22]; // overruns D_80177C30?
extern s32 D_80177C38[6];
extern s32 D_80177C58[6];
extern u8 gSoundMode;
extern s32 gVolumeSettings[3];
extern u16 D_80177C90;
extern u8 gLevelType;
extern s32 D_80177CA0;
extern UNK_TYPE F_80177CA8;
extern f32 D_80177CB0;
extern UNK_TYPE F_80177CB8;
extern f32 D_80177CC0;
extern f32 D_80177CC8;
extern f32 D_80177CE8;
extern f32 D_80177D08;
extern f32 D_80177D20;
extern f32 D_80177D38;
extern f32 D_80177D50;
extern f32 D_80177D68;
extern UNK_TYPE F_80177D80;
extern UNK_TYPE F_80177DE8;
extern s32 gGameFrameCount;
extern s32 D_80177DC8;
extern s32 D_80177E70;
extern s32 D_80177E78;
extern s32 D_80177E80;
extern Vec3f D_80177E88;
extern Vec3f D_80177F10;
extern UNK_TYPE F_80178020;
extern s32 D_8017812C;
extern LevelId gCurrentLevel;
extern s32 D_8017827C;
extern s32 gBossActive;
extern s32 D_8017828C;
extern s32 D_80178294;
extern s32 gRadioState;
extern s32 D_801782A4;
extern s32 D_Timer_801782AC;
extern s32 D_Timer_801782B4;
// extern s32 D_801782B8;
extern s32 D_801782C0;
extern s32 D_801782C8;
extern s32 D_801782D0;
extern s32 D_801782D8;
extern UNK_TYPE F_801782E0;
extern s32 D_801782E8;
extern UNK_TYPE F_801782F0;
extern s32 D_801782F8;
extern s32 D_80178300;
extern u16* D_80178308;
extern ObjectInit* D_80178310;
extern s32 gFogRed;
extern s32 gFogGreen;
extern s32 gFogBlue;
extern s32 gFogAlpha;
extern s32 D_80178340; // alpha something
extern s32 D_80178348; // red something
extern s32 D_80178350; // green something
extern s32 D_80178354; // blue something
extern s32 D_80178358; // alpha target
extern s32 D_8017835C; // alpha step
extern s32 D_80178360; // 2 lights second color
extern s32 D_80178364;
extern s32 D_80178368;
extern f32 D_8017836C; // 2 lights second color brightness
extern f32 D_80178370; // Vec3f?
extern f32 D_80178374;
extern f32 D_80178378;
extern s32 D_8017837C;
extern u32 D_80178380[4]; // player alphas
extern s32 D_80178390[4]; // player reds
extern s32 D_801783A0[4]; // player greens
extern s32 D_801783B0[4]; // player alphas
extern UNK_TYPE D_801783C0[4];
extern f32 D_801783D0; // something x translate
extern f32 D_801783D4; // something y translate
extern s32 gFogNear; //near
extern s32 gFogFar; //far
extern UNK_TYPE F_801783E0[12];
extern s32 D_80178410;
extern f32 D_80178414;
extern f32 D_80178418;
extern UNK_TYPE F_8017841C;
extern f32 D_80178420;
extern f32 D_80178424;
extern f32 D_80178428;
extern f32 D_8017842C;
extern f32 D_80178430;
extern UNK_TYPE F_80178434;
extern UNK_TYPE F_80178438;
extern UNK_TYPE F_8017843C;
extern f32 D_80178440;
extern f32 D_80178444;
extern f32 D_80178448;
extern f32 D_80178450[3];
extern f32 D_80178460[3];
extern f32 D_80178470[3];
extern f32 D_8017847C;
extern s32 D_80178480;
extern s32 D_80178484;
extern bool D_80178488;
extern UNK_TYPE F_8017848C;
extern UNK_TYPE F_80178490;
extern s32 D_80178494;
extern f32 D_80178498;
extern f32 D_8017849C;
extern f32 D_801784A0;
extern s32 D_801784A4;
extern UNK_TYPE F_801784A8;
extern s32 D_801784AC;
extern UNK_TYPE F_801784B0;
extern UNK_TYPE F_801784B4;
extern f32 D_801784B8; // effective Vec3f
extern f32 D_801784BC;
extern f32 D_801784C0;
extern f32 D_801784C4; // effective Vec3f
extern f32 D_801784C8;
extern f32 D_801784CC;
extern f32 D_801784D0; // effective Vec3f
extern f32 D_801784D4;
extern f32 D_801784D8;
extern s32 gLight1x; // Vec3i light direction
extern s32 gLight1y;
extern s32 gLight1z;
extern f32 D_801784E8;
extern f32 D_801784EC; // effective Vec3f?
extern f32 D_801784F0;
extern f32 D_801784F4;
extern f32 D_801784F8; // effective Vec3f
extern f32 D_801784FC;
extern f32 D_80178500;
extern s32 gLight2x; // Vec3i light direction alternate
extern s32 gLight2y;
extern s32 gLight2z;
extern f32 D_80178510;
extern UNK_TYPE F_801784514;
extern UNK_TYPE F_801784518;
extern UNK_TYPE F_80178451C;
extern f32 D_80178520; // effective Vec3f
extern f32 D_80178524;
extern f32 D_80178528;
extern UNK_TYPE F_80178452C;
extern UNK_TYPE F_801784530;
extern UNK_TYPE F_801784534;
extern f32 D_80178538;
extern f32 D_8017853C;
extern s32 D_80178540;
extern s32 D_80178544;
extern s32 gLight1R; // Color32 light color 1
extern s32 gLight1G;
extern s32 gLight1B;
extern s32 gAmbientR; // Color32 ambient color
extern s32 gAmbientG;
extern s32 gAmbientB;
extern UNK_TYPE F_801784560;
extern s32 gLight2R; // Color32 light color 2
extern s32 gLight2G;
extern s32 gLight2B;
extern s32 D_80178570; // Color32 light color 2 modifier?
extern s32 D_80178574;
extern s32 D_80178578;
extern s32 D_80161A70; // Color32?
extern s32 D_80161A74;
extern s32 D_80161A78;
extern s32 D_80161A7C;
extern s32 D_80161A80;
extern s32 D_80161A84;
extern s32 D_80161A88;
extern s32 D_80161A8C;
extern u8 gGoldRingCount[4];
extern u8 D_80161A94[4];
extern s32 gHitCount;
extern s32 gSavedHitCount;
extern s16 gLifeCount[4];
extern LaserStrength gLaserStrength[4];
extern s32 D_80161AB8;
extern UNK_TYPE F_80161AC0[16];
extern Object_80 gObjects80[50];
extern Object_4C gObjects4C[40];
extern Actor gActors[60];
extern Boss gBosses[4];
extern Effect gEffects[100];
extern Item gItems[20];
extern PlayerShot gPlayerShots[16];
extern UnkEntity30 gUnkEntities30[100];
extern UnkEntity28 gUnkEntities28[65];
extern BonusText gBonusText[10];
extern s32 D_80176550[2];
extern f32 D_80176558[2][100];
extern f32 D_80176878[2][100];
extern f32 D_80176B98[2][100];
extern f32 D_80176EB8[2][100];
extern f32 D_801771D8[2][100];
extern f32 D_80177500[2][100];
extern u16 D_80177828; // enemy shot speed?
extern u8 D_80177830; // show level complete status overlay
extern s32 D_80177838; // level clear related
extern s32 D_80177840; // timer for mission accomplished scrren
extern s32 gBossHealthBar;
extern s32 D_80177850; // bonus text related. set to 15 but never read
extern s32 D_80177858[4];
extern s32 D_80177870[4];
extern s32 gHandicap[4];
extern VsStage gVersusStage;
extern s32 D_801778A4;
extern s32 D_801778AC;
extern s32 D_801778C8;
extern bool gVersusMode;
extern u16 gBoostButton[4];
extern u16 gBrakeButton[4];
extern u16 gShootButton[4];
extern u16 gBombButton[4];
extern f32 D_80177958[4];
extern s32 D_8017796C;
extern OSContPad* gInputHold;
extern OSContPad* gInputPress;
extern u8* D_80177984;
extern s32 D_80177990[4];
extern f32 D_801779A8[4];
extern u8 D_801779BC;
extern s32 gChargeTimers[4];
extern f32 D_801779E4;
extern f32 D_801779F4;
extern s32 D_Timer_80177A00[4];
extern s32 D_Timer_80177A38[4];
extern s32 D_Timer_80177A70[4];
extern s32 D_Timer_80177A88[4];
extern f32 D_80177AA0[4];
extern f32 D_80177AB8[4];
extern s32 D_80177AD0[4];
extern s32 D_80177AE8[4];
extern s32 D_80177B00[4][4];
extern u8 D_Timer_80177B44;
extern u8 D_80177B4C;
extern u8 D_80177B6C;
extern u8 D_80177B8C;
extern u8 D_80177BAC;
extern u16 D_Timer_80177BD0[4];
extern u16 D_80177C30[4];
extern s32 D_80177C50;
extern s32 D_80177C70;
extern s32 D_80177C78;
extern s32 D_80177C8C;
extern s32 D_80177C94;
extern s32 D_80177C9C;
extern s32 D_80177CA4;
extern s32 D_80177CAC;
extern s32 D_80177CB4;
extern s32 D_80177CBC;
extern s32 D_80177CC4;
extern s32 D_80177CD0[6];
extern s32 D_80177CF0[6];
extern s32 gRightWingHealth[4];
extern s32 gLeftWingHealth[4];
extern s32 D_80177D40[4];
extern s32 D_80177D58[4];
extern s32 D_80177D70[4];
extern s32 D_80177D88[4];
extern s32 gBombCount[4];
extern s32 D_80177DB8[4];
extern s32 D_80177DD0[4][10];
extern s32 D_80177E74;
extern s32 D_80177E7C;
extern s32 D_80177E84;
extern Vec3f D_80177E98[10];
extern f32 D_80177F20[65];
extern f32 D_80178028[65];
extern f32 D_80178130[65];
extern u8 D_80178238[65];
extern Player* gPlayer;
extern f32* D_80178288;
extern f32* D_80178290;
extern u32* D_80178298;
extern UNK_TYPE F_801782A0;
extern Object_58* gObjects58;
extern UNK_TYPE F_801782B0;
extern s32 D_801782B8;
extern s32 D_801782BC;
extern PosRot* D_801782C4;
extern f32* D_801782CC;
extern f32* D_801782D4;
extern f32* D_801782DC;
extern f32* D_801782E4;
extern f32* D_801782EC;
extern UNK_TYPE F_801782F4;
extern s32 D_801782FC;
extern UNK_TYPE F_80178304;
extern UNK_TYPE F_8017830C;
extern UNK_TYPE F_80178314;
extern UNK_TYPE F_80178318;
extern UNK_TYPE F_8017831C;
extern UNK_TYPE F_80178324;
extern UNK_TYPE F_8017832C;
extern UNK_TYPE F_80178334;
extern UNK_TYPE F_8017833C;
extern UNK_TYPE F_80178344;
extern UNK_TYPE F_8017834C;
#endif
+7 -6
View File
@@ -2,6 +2,7 @@
#define FOX_MAP_H
#include "PR/ultratypes.h"
#include "sf64level.h"
typedef struct {
/* 0x0 */ f32 angle;
@@ -12,8 +13,8 @@ typedef struct {
typedef struct {
/* 0x00 */ s32 unk_00;
/* 0x04 */ s32 unk_04;
/* 0x08 */ s32 unk_08;
/* 0x04 */ PlanetId unk_04;
/* 0x08 */ PlanetId unk_08;
/* 0x0C */ s32 unk_0C;
/* 0x10 */ char pad10[0x4];
/* 0x14 */ s32 unk_14;
@@ -21,7 +22,7 @@ typedef struct {
} UnkStruct_D_menu_801AFD18; // size = 0x1C
typedef struct {
/* 0x00 */ s32 id;
/* 0x00 */ PlanetId id;
/* 0x04 */ f32 unk_04;
/* 0x08 */ f32 unk_08;
/* 0x0C */ f32 zAngle;
@@ -30,9 +31,9 @@ typedef struct {
/* 0x20 */ f32 scale;
/* 0x24 */ s32 alpha;
/* 0x28 */ s32 unk_28;
/* 0x2C */ s32 unk_2C;
/* 0x30 */ s32 unk_30;
/* 0x34 */ s32 unk_34;
/* 0x2C */ PlanetId unk_2C;
/* 0x30 */ PlanetId unk_30;
/* 0x34 */ PlanetId unk_34;
} Planet; // size = 0x38
typedef struct {
+11 -14
View File
@@ -45,17 +45,17 @@ typedef struct {
/* 0x5C */ s32 unk_5C;
} OptionEntry; // size = 0x60
typedef struct {
/* 0x0 */ PlanetId unk_0;
/* 0x4 */ PlanetId unk_4;
/* 0x8 */ s32 unk_8;
} UnkStruct_D_menu_801AED4C; // size = 0xC
typedef struct {
s32 unk_0;
s32 unk_4;
} UnkStruct_D_menu_801B9250;
typedef struct {
/* 0x0 */ s32 unk_0;
/* 0x4 */ s32 unk_4;
/* 0x8 */ s32 unk_8;
} UnkStruct_D_menu_801AED4C; // size = 0xC
typedef enum OptionId {
OPTION_MAIN = 1000,
OPTION_VERSUS_STAGE = 2000,
@@ -123,13 +123,10 @@ void func_menu_8018FC14(void);
void func_menu_8018FD08(void);
void func_menu_8018FF74(void);
void Option_Setup(void);
void Option_UpdateEntry(void);
void Option_MapUpdate(void);
void Option_MainMenuUpdate(void);
void Option_TrainingUpdate(void);
void func_menu_801929F0(void);
void Option_MainMenuDraw(void);
void Option_VersusUpdate(void);
void Option_VersusDraw(void);
@@ -166,7 +163,7 @@ void func_menu_80198608(s32, s32, f32, f32);
void func_menu_8019882C(s32, s32, f32, f32);
void func_menu_8019896C(s32, f32, s32);
void func_menu_80199198(f32 arg0, f32 arg1, f32 arg2);
s32 func_menu_80199284(s32 arg0, s32 arg1);
s32 func_menu_80199284(PlanetId start, PlanetId end);
void Option_VersusMenuInit(void);
void Option_VersusMenuUpdate(void);
void func_menu_8019949C(void);
@@ -191,20 +188,22 @@ void func_menu_8019AFFC(void);
void func_menu_8019B1F8(void);
void func_menu_8019B3DC(void);
void func_menu_8019B5AC(void);
void func_menu_8019B6D8(f32 xPos, f32 yPos, f32 offset, s32 r, s32 g, s32 b);
void func_menu_8019B7D4(void);
void func_menu_8019B8A0(s32 arg0);
void func_menu_8019B8C8(void);
void Option_DrawMenuLabel(void);
void func_menu_8019BDF0(void);
void Option_DrawMenuCard(MenuContext_38 arg0);
void Option_DrawMenuArwing(ArwingPosition arg0);
void func_menu_8019BC44(f32, f32, f32, f32, f32, f32);
void func_menu_8019BDF0(void);
void func_menu_8019BE7C(f32, f32, f32, f32 *, f32 *, f32 *);
void func_menu_8019BF34(void);
void func_menu_8019B6D8(f32 xPos, f32 yPos, f32 offset, s32 r, s32 g, s32 b);
void func_menu_8019C04C(void);
void Option_DrawCardLabel(OptionTexture arg0);
s32 func_menu_8019C418(s32* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, UnkStruct_D_menu_801B9250* arg8);
s32 func_menu_8019C5A0(s32*);
s32 func_menu_8019C66C(f32* arg0, f32 arg1, f32 arg2, UnkStruct_D_menu_801B9250* arg3);
void func_menu_8019C824(f32* );
s32 func_menu_8019C8C4(void);
void func_menu_8019CAE0(void);
@@ -220,8 +219,6 @@ void func_menu_8019DF64(void);
void Option_InvoiceUpdate(void);
void Option_InvoiceDraw(void);
s32 func_menu_8019C5A0(s32*);
s32 func_menu_8019C66C(f32* arg0, f32 arg1, f32 arg2, UnkStruct_D_menu_801B9250* arg3);
void func_menu_8019E8D0(void);
void func_menu_801A07E8(u8*, u8*, f32*);
void func_menu_801AD7EC(s32, s32, s32);
+2 -64
View File
@@ -1,22 +1,13 @@
#ifndef FUNCTIONS_H
#define FUNCTIONS_H
#include "libc/stdbool.h"
#include "sys.h"
#include "structs.h"
#include "sf64object.h"
#include "sf64thread.h"
#include "sf64player.h"
#include "sf64mesg.h"
s32 Lib_vsPrintf(char* dst, const char* fmt, va_list args);
void Lib_Perspective(Gfx** dList);
void Lib_Ortho(Gfx** dList);
void Lib_DmaRead(void* src, void* dst, s32 size);
void Lib_FillScreen(u8 setFill);
void Memory_FreeAll(void);
void* Memory_Allocate(s32);
// audio
void func_8000FFCC(void);
void func_80016A50(void);
@@ -64,38 +55,6 @@ void func_8001DECC(void);
SPTask* func_8001DF50(void);
void func_8001EE00(void);
f32 func_8001FE60(f32);
f64 func_8001FE6C(f64);
s32 func_8001FE78(f32);
s32 func_8001FE88(f64);
f32 func_8001FE98(f32);
f64 func_8001FEA4(f64);
s32 func_8001FEB0(f32);
s32 func_8001FEC0(f64);
f32 func_8001FED0(f32);
f64 func_8001FEDC(f64);
s32 func_8001FEE8(f32);
s32 func_8001FEF8(f64);
f32 func_8001FF08(f32);
f64 func_8001FF14(f64);
s32 func_8001FF20(f32);
s32 func_8001FF30(f64);
f32 func_8001FF40(f32);
f64 func_8001FF5C(f64);
s32 func_8001FF7C(f32);
s32 func_8001FF9C(f64);
f32 func_8001FAE4(f32);
f32 func_8001FB04(f32);
f64 func_8001FB24(f64);
f32 func_8001FB58(f32);
f32 func_8001FB88(f32);
f32 func_8001FBA8(f32);
f32 func_8001FBC8(f32);
void RdRam_CheckIPL3(void);
void Mio0_Decompress(void* header, u8* dst);
s32 vsprintf(char* dst, const char* fmt, va_list args);
// fox_360
void func_8002ED60(Player*);
void func_8002E3E0(Actor*);
@@ -467,7 +426,6 @@ void func_80084488(s32);
void func_80084688(s32, s32);
// fox_hud
void func_80084B94(s32);
void func_800857DC(f32, f32, f32, f32);
void func_80085890(f32, f32, f32, f32);
@@ -522,19 +480,6 @@ void func_80098860(Plane* plane, Vec3f* point, Vec3f* normal);
s32 func_800988B4(Vec3f* vec, Plane* plane);
s32 func_800998FC(Vec3f*, Vec3f*, Vec3f*, s32, Vec3f*, f32*);
// fox_game
void Game_Initialize(void);
void Game_SetGameState(void);
bool func_800A1B6C(void);
void func_800A1C14(Gfx**);
void func_800A1E68(Gfx**);
void func_800A1F44(void);
void func_800A1FB0(Gfx**, u8 , u8);
void func_800A24DC(s32);
void func_800A26C0(void);
void func_800A25DC(void);
Actor* func_800A3608(ObjectId);
// fox_A4290
bool func_800A3690(Vec3f*, Vec3f*, s32, Vec3f*);
@@ -596,9 +541,6 @@ void Radio_PlayMessage(u16*, RadioCharacterId);
void func_800BB388(void);
void func_800BB5D0(void);
// fox_reset
void Graphics_NMIWipe(void);
// fox_versus
s32 func_800C1E9C(void);
void func_800C1ED4(void);
@@ -606,10 +548,6 @@ void func_800C20B0(void);
void func_800C2190(void);
void func_800C26C8(void);
// fox_save
s32 Save_Write(void);
s32 Save_Read(void);
void func_menu_80187520(u32, void*);
void func_menu_8019E8D0(void);
+4
View File
@@ -62,6 +62,8 @@ typedef struct Limb {
/* 0x01C */ struct Limb* child;
} Limb; // size = 0x20
void Graphics_NMIWipe(void);
void Lights_SetOneLight(Gfx** dList, s32 dirX, s32 dirY, s32 dirZ, s32 colR, s32 colG, s32 colB, s32 ambR, s32 ambG, s32 ambB);
void Lights_SetTwoLights(Gfx** dList, s32 dir1x, s32 dir1y, s32 dir1z, s32 dir2x, s32 dir2y, s32 dir2z, s32 col1r, s32 col1g,
s32 col1b, s32 col2r, s32 col2g, s32 col2b, s32 ambR, s32 ambG, s32 ambB);
@@ -255,5 +257,7 @@ typedef enum SetupDL {
} SetupDL;
extern Gfx gSetupDLs[SETUPDL_MAX][9]; // 0x800D31B0
extern u8 D_80178580[];
extern void* D_80178710;
#endif
+3 -14
View File
@@ -1,27 +1,16 @@
#ifndef GLOBAL_H
#define GLOBAL_H
#include "PR/xstdio.h"
#include "PR/os_internal.h"
#include "PR/controller.h"
#include "libultra/ultra64.h"
#include "libc/math.h"
#include "libc/stdarg.h"
#include "libc/stdbool.h"
#include "libc/stdint.h"
#include "libc/stddef.h"
#include "libc/string.h"
#include "sys.h"
#include "functions.h"
#include "variables.h"
#include "context.h"
#include "structs.h"
#include "macros.h"
#include "sf64math.h"
#include "sf64mesg.h"
#include "sf64object.h"
#include "sf64level.h"
#include "sf64thread.h"
#include "sf64player.h"
#include "gfx.h"
#include "i1.h"
#include "i2.h"
#include "i3.h"
-1
View File
@@ -9,7 +9,6 @@
#include "sf64mesg.h"
extern Matrix D_i4_8019EE80;
extern s32 D_i4_801A03DC;
void func_i4_8018EF6C(Player*);
void func_i4_8018F94C(Player*);
+21 -7
View File
@@ -6,19 +6,12 @@
#define M_PI 3.14159265358979323846f
#define M_DTOR (M_PI / 180.0f)
#define M_RTOD (180.0f / M_PI)
#define M_DTOD 1.0f
#define M_SQRT2 1.41421356237309504880f
#define M_SQRT1_2 0.70710678118654752440f /* 1/sqrt(2) */
#define FLT_MAX 340282346638528859811704183484516925440.0f
#define SHT_MAX 32767.0f
#define SHT_MINV (1.0f / SHT_MAX)
#define RAD_TO_DEG(radians) (((radians) * 180.0f) / M_PI)
#define DEG_TO_RAD(degrees) (((degrees) / 180.0f) * M_PI)
#define SIN_DEG(angle) __sinf((M_DTOR)*(angle))
#define COS_DEG(angle) __cosf((M_DTOR)*(angle))
typedef union {
struct {
u32 hi;
@@ -53,4 +46,25 @@ float sqrtf(float f);
double sqrt(double d);
#pragma intrinsic(sqrt)
f32 __floorf(f32);
f64 __floor(f64);
s32 __lfloorf(f32);
s32 __lfloor(f64);
f32 __ceilf(f32);
f64 __ceil(f64);
s32 __lceilf(f32);
s32 __lceil(f64);
f32 __truncf(f32);
f64 __trunc(f64);
s32 __ltruncf(f32);
s32 __ltrunc(f64);
f32 __roundf(f32);
f64 __round(f64);
s32 __lroundf(f32);
s32 __lround(f64);
f32 __nearbyintf(f32);
f64 __nearbyint(f64);
s32 __lnearbyintf(f32);
s32 __lnearbyint(f64);
#endif
+6
View File
@@ -25,6 +25,12 @@
#define DOT_XYZ(a, b) ((a).x * (b).x + (a).y * (b).y + (a).z * (b).z)
#define ABS(x) ((x) >= 0 ? (x) : -(x))
#define RAD_TO_DEG(radians) (((radians) * 180.0f) / M_PI)
#define DEG_TO_RAD(degrees) (((degrees) / 180.0f) * M_PI)
#define SIN_DEG(angle) __sinf((M_DTOR)*(angle))
#define COS_DEG(angle) __cosf((M_DTOR)*(angle))
#define USEC_TO_CYCLES(n) (((u64)(n)*(osClockRate/15625LL))/(1000000LL/15625LL))
#define MSEC_TO_CYCLES(n) (USEC_TO_CYCLES((n) * 1000LL))
+11 -10
View File
@@ -90,16 +90,17 @@ typedef enum LevelId {
} LevelId;
typedef enum PlanetId {
/* 0 */ PLANET_METEO,
/* 1 */ PLANET_AREA_6,
/* 2 */ PLANET_BOLSE,
/* 3 */ PLANET_SECTOR_Z,
/* 4 */ PLANET_SECTOR_X,
/* 5 */ PLANET_SECTOR_Y,
/* 6 */ PLANET_KATINA,
/* 7 */ PLANET_MACBETH,
/* 8 */ PLANET_ZONESS,
/* 9 */ PLANET_CORNERIA,
/* -1 */ PLANET_NONE=-1,
/* 0 */ PLANET_METEO,
/* 1 */ PLANET_AREA_6,
/* 2 */ PLANET_BOLSE,
/* 3 */ PLANET_SECTOR_Z,
/* 4 */ PLANET_SECTOR_X,
/* 5 */ PLANET_SECTOR_Y,
/* 6 */ PLANET_KATINA,
/* 7 */ PLANET_MACBETH,
/* 8 */ PLANET_ZONESS,
/* 9 */ PLANET_CORNERIA,
/* 10 */ PLANET_TITANIA,
/* 11 */ PLANET_AQUAS,
/* 12 */ PLANET_FORTUNA,
+16
View File
@@ -40,6 +40,14 @@ typedef union {
// u64 force_struct_alignment;
} Matrix; // size = 0x40
extern Mtx gIdentityMtx; // 800C4620
extern Matrix gIdentityMatrix; //800C4660
extern Matrix* gGfxMatrix;
extern Matrix sGfxMatrixStack[0x20];
extern Matrix* gCalcMatrix;
extern Matrix sCalcMatrixStack[0x20];
f32 Math_ModF(f32 value, f32 mod);
void Rand_Init(void);
f32 Rand_ZeroOne(void);
@@ -89,4 +97,12 @@ s64 __ull_div(s64, s64);
s64 __ll_mul(s64, s64);
s64 __ll_rshift(s64, s64);
f32 Math_FloorF(f32);
f32 Math_CeilF(f32);
f64 Math_Fabs(f64);
f32 Math_FabsF(f32);
f32 Math_NearbyIntF(f32);
f32 Math_TruncF(f32);
f32 Math_RoundF(f32);
#endif
+2
View File
@@ -703,6 +703,8 @@ typedef enum ObjectId {
#define OBJ_UNK_1000 1000
Actor* func_800A3608(ObjectId);
// template enums for boss work buffers
typedef enum {
+68
View File
@@ -0,0 +1,68 @@
#ifndef SF64_SAVE
#define SF64_SAVE
#include "PR/ultratypes.h"
typedef struct {
/* bit 0 */ u8 unk_0 : 3;
/* bit 3 */ u8 expertMedal : 1;
/* bit 4 */ u8 expertClear : 1;
/* bit 5 */ u8 played : 1;
/* bit 6 */ u8 normalMedal : 1;
/* bit 7 */ u8 normalClear : 1;
} PlanetData; // size = 0x1
typedef struct {
/* bit 0 */ u16 unk_0 : 8;
/* bit 8 */ u16 unk_8 : 4;
/* bit C */ u16 unk_C : 1;
/* bit D */ u16 unk_D : 1;
/* bit E */ u16 unk_E : 1;
/* bit F */ u16 unk_F : 1;
} Save_SubStruct_5E; // size = 0x10
typedef struct{
/* 0x00 */ PlanetData planet[16];
/* 0x10 */ char pad10[0x4];
/* 0x14 */ u8 soundMode;
/* 0x15 */ u8 musicVolume;
/* 0x16 */ u8 voiceVolume;
/* 0x17 */ u8 sfxVolume;
/* 0x18 */ u8 unk_18[10][3];
/* 0x36 */ u8 unk_36[10];
/* 0x40 */ u8 unk_40[10];
/* 0x4A */ u16 unk_4A[10];
/* 0x5E */ Save_SubStruct_5E unk_5E[10][7];
/* 0xEA */ u8 unk_EA;
/* 0xEB */ char padEB[0x3];
/* 0xEE */ char padEE[0x10];
} SaveData; // size = 0xFE
typedef struct {
/* 0x00 */ union {
u8 raw[sizeof(SaveData)];
SaveData data;
};
/* 0xFE */ u16 checksum;
} Save; // size = 0x100
typedef struct {
/* 0x000 */ Save save;
/* 0x100 */ Save backup;
} SaveFile; // size = 0x200
s32 Save_Write(void);
s32 Save_Read(void);
void Save_ReadData(void);
void Save_WriteData(void);
s32 Save_WriteEeprom(SaveFile*);
s32 Save_ReadEeprom(SaveFile*);
extern SaveFile gSaveIOBuffer;
extern SaveFile sPrevSaveData;
extern Save gDefaultSave;
extern SaveFile gSaveFile;
#endif
+83 -5
View File
@@ -70,8 +70,6 @@ typedef struct {
void Controller_Init(void);
void Controller_UpdateInput(void);
void Controller_ReadData(void);
void Save_ReadData(void);
void Save_WriteData(void);
void Controller_Rumble(void);
s32 Timer_CreateTask(u64, TimerAction, s32*, s32);
@@ -80,9 +78,6 @@ void Timer_SetValue(s32* address, s32 value);
void Timer_CompleteTask(TimerTask*);
void Timer_Wait(u64);
s32 Save_WriteEeprom(SaveFile*);
s32 Save_ReadEeprom(SaveFile*);
void Fault_ThreadEntry(void*);
void func_80007FE4(FrameBuffer*, u16, u16);
void Fault_Init(void);
@@ -97,6 +92,89 @@ typedef enum {
/* 16 */ SI_CONT_READ_DONE,
} SerialMesg;
extern OSContPad gControllerHold[4];
extern OSContPad gControllerPress[4];
extern u8 gControllerPlugged[4];
extern u32 gControllerLock;
extern u8 gControllerRumble[4];
extern OSContPad sNextController[4]; //
extern OSContPad sPrevController[4]; //
extern OSContStatus sControllerStatus[4]; //
extern OSPfs sControllerMotor[4]; //
extern u8 gAudioThreadStack[0x1000]; // 800DDAA0
extern OSThread gGraphicsThread; // 800DEAA0
extern u8 gGraphicsThreadStack[0x1000]; // 800DEC50
extern OSThread gTimerThread; // 800DFC50
extern u8 gTimerThreadStack[0x1000]; // 800DFE00
extern OSThread gSerialThread; // 800E0E00
extern u8 gSerialThreadStack[0x1000]; // 800E0FB0
extern SPTask* gCurrentTask;
extern SPTask* sAudioTasks[1];
extern SPTask* sGfxTasks[2];
extern SPTask* sNewAudioTasks[1];
extern SPTask* sNewGfxTasks[2];
extern u32 gSegments[16]; // 800E1FD0
extern OSMesgQueue gPiMgrCmdQueue; // 800E2010
extern OSMesg sPiMgrCmdBuff[50]; // 800E2028
extern OSMesgQueue gDmaMsgQueue;
extern void* sDmaMsgBuff[1];
extern OSIoMesg gDmaIOMsg;
extern OSMesgQueue gSerialEventQueue;
extern void* sSerialEventBuff[1];
extern OSMesgQueue gMainThreadMsgQueue;
extern void* sMainThreadMsgBuff[32];
extern OSMesgQueue gTaskMsgQueue;
extern void* sTaskMsgBuff[16];
extern OSMesgQueue gAudioVImsgQueue;
extern void* sAudioVImsgBuff[1];
extern OSMesgQueue gAudioTaskMsgQueue;
extern void* sAudioTaskMsgBuff[1];
extern OSMesgQueue gGfxVImsgQueue;
extern void* sGfxVImsgBuff[4];
extern OSMesgQueue gGfxTaskMsgQueue;
extern void* sGfxTaskMsgBuff[2];
extern OSMesgQueue gSerialThreadMsgQueue;
extern void* sSerialThreadMsgBuff[8];
extern OSMesgQueue gControllerMsgQueue;
extern void* sControllerMsgBuff[1];
extern OSMesgQueue gSaveMsgQueue;
extern void* sSaveMsgBuff[1];
extern OSMesgQueue gTimerTaskMsgQueue;
extern void* sTimerTaskMsgBuff[16];
extern OSMesgQueue gTimerWaitMsgQueue;
extern void* sTimerWaitMsgBuff[1];
extern GfxPool gGfxPools[2]; // 800E23B0
extern GfxPool* gGfxPool;
extern SPTask* gGfxTask;
extern Vp* gViewport;
extern Mtx* gGfxMtx;
extern Gfx* gUnkDisp1;
extern Gfx* gMasterDisp;
extern Gfx* gUnkDisp2;
extern Lightsn* gLight;
extern FrameBuffer* gFrameBuffer;
extern u16* gTextureRender;
extern u8 D_80137E78;
extern u32 gSysFrameCount;
extern u8 gStartNMI;
extern u8 gStopTasks;
extern u8 D_80137E84[4];
extern u16 gFillScreenColor;
extern u16 gFillScreen;
extern u8 gUnusedStack[0x1000];
extern OSThread sIdleThread; // 80138E90
extern u8 sIdleThreadStack[0x1000]; // 801390A0
extern OSThread gMainThread; // 8013A040
extern u8 sMainThreadStack[0x1000]; // 8013A1F0
extern OSThread gAudioThread; //8013B1F0
#define MSG_QUEUE_EMPTY -1
#define FAULT_MESG_BREAK 1
-48
View File
@@ -6,54 +6,6 @@
#define UNK_TYPE s32
typedef struct {
/* bit 0 */ u8 unk_0 : 3;
/* bit 3 */ u8 expertMedal : 1;
/* bit 4 */ u8 expertClear : 1;
/* bit 5 */ u8 played : 1;
/* bit 6 */ u8 normalMedal : 1;
/* bit 7 */ u8 normalClear : 1;
} PlanetData; // size = 0x1
typedef struct {
/* bit 0 */ u16 unk_0 : 8;
/* bit 8 */ u16 unk_8 : 4;
/* bit C */ u16 unk_C : 1;
/* bit D */ u16 unk_D : 1;
/* bit E */ u16 unk_E : 1;
/* bit F */ u16 unk_F : 1;
} Save_SubStruct_5E; // size = 0x10
typedef struct{
/* 0x00 */ PlanetData planet[16];
/* 0x10 */ char pad10[0x4];
/* 0x14 */ u8 soundMode;
/* 0x15 */ u8 musicVolume;
/* 0x16 */ u8 voiceVolume;
/* 0x17 */ u8 sfxVolume;
/* 0x18 */ u8 unk_18[10][3];
/* 0x36 */ u8 unk_36[10];
/* 0x40 */ u8 unk_40[10];
/* 0x4A */ u16 unk_4A[10];
/* 0x5E */ Save_SubStruct_5E unk_5E[10][7];
/* 0xEA */ u8 unk_EA;
/* 0xEB */ char padEB[0x3];
/* 0xEE */ char padEE[0x10];
} SaveData; // size = 0xFE
typedef struct {
/* 0x00 */ union {
u8 raw[sizeof(SaveData)];
SaveData data;
};
/* 0xFE */ u16 checksum;
} Save; // size = 0x100
typedef struct {
/* 0x000 */ Save save;
/* 0x100 */ Save backup;
} SaveFile; // size = 0x200
typedef struct {
/* 0x00 */ u8 unk_00;
/* 0x02 */ u16 unk_02;
+60
View File
@@ -0,0 +1,60 @@
#ifndef SYS_H
#define SYS_H
#include "PR/xstdio.h"
#include "PR/controller.h"
#include "libultra/ultra64.h"
#include "libc/math.h"
#include "libc/stdarg.h"
#include "libc/stdbool.h"
#include "libc/stdint.h"
#include "libc/stddef.h"
#include "libc/string.h"
#include "macros.h"
#include "sf64math.h"
#include "gfx.h"
#include "sf64thread.h"
#include "sf64save.h"
#include "buffers.h"
typedef s32 (*CompareFunc)(void*, void*);
s32 Lib_vsPrintf(char* dst, const char* fmt, va_list args);
void Lib_vTable(s32 index, void (**table)(s32, s32), s32 arg0, s32 arg1);
void Lib_QuickSort(u8* first, u32 length, u32 size, CompareFunc cFunc);
void Lib_Perspective(Gfx** dList);
void Lib_Ortho(Gfx** dList);
void Lib_DmaRead(void* src, void* dst, s32 size);
void Lib_FillScreen(u8 setFill);
void Memory_FreeAll(void);
void* Memory_Allocate(s32);
void func_8001EE60(void);
void RdRam_CheckIPL3(void);
void Mio0_Decompress(void* header, u8* dst);
s32 vsprintf(char* dst, const char* fmt, va_list args);
void Game_Initialize(void);
void Game_Update(void);
extern s32 D_800D2860[];
extern s32 D_800D2870;
extern f32 D_80161A10;
extern f32 D_80161A14;
extern s32 gPlayerInactive[4];
extern s32 D_80161A28;
extern u8 D_80161A2C;
extern u16 D_80161A2E;
extern u16 gNextLevel;
extern u16 gNextGameState;
extern u16 D_80161A34;
extern u16 gBgColor;
extern u8 gBlurAlpha;
extern u8 D_80161A39;
extern f32 D_80161A3C;
extern f32 D_80161A40;
extern f32 D_80161A44;
#endif
+2 -545
View File
File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More