Bind almost all assets, variables and functions

This commit is contained in:
KiritoDv 2025-03-10 09:25:24 -06:00
parent a1484cb0dd
commit c9d0e388cf
21 changed files with 220 additions and 206 deletions

52
include/assets.h Normal file
View file

@ -0,0 +1,52 @@
#pragma once
#include "assets/ast_7_ti_1.h"
#include "assets/ast_7_ti_2.h"
#include "assets/ast_8_ti.h"
#include "assets/ast_9_ti.h"
#include "assets/ast_A_ti.h"
#include "assets/ast_allies.h"
#include "assets/ast_andross.h"
#include "assets/ast_aquas.h"
#include "assets/ast_area_6.h"
#include "assets/ast_arwing.h"
#include "assets/ast_audio.h"
#include "assets/ast_bg_planet.h"
#include "assets/ast_bg_space.h"
#include "assets/ast_blue_marine.h"
#include "assets/ast_bolse.h"
#include "assets/ast_common.h"
#include "assets/ast_corneria.h"
#include "assets/ast_ending_award_back.h"
#include "assets/ast_ending_award_front.h"
#include "assets/ast_ending_expert.h"
#include "assets/ast_ending.h"
#include "assets/ast_enmy_planet.h"
#include "assets/ast_enmy_space.h"
#include "assets/ast_font_3d.h"
#include "assets/ast_fortuna.h"
#include "assets/ast_great_fox.h"
#include "assets/ast_katina.h"
#include "assets/ast_landmaster.h"
#include "assets/ast_logo.h"
#include "assets/ast_macbeth.h"
#include "assets/ast_map.h"
#include "assets/ast_meteo.h"
#include "assets/ast_option.h"
#include "assets/ast_radio.h"
#include "assets/ast_sector_x.h"
#include "assets/ast_sector_y.h"
#include "assets/ast_sector_z.h"
#include "assets/ast_solar.h"
#include "assets/ast_star_wolf.h"
#include "assets/ast_text.h"
#include "assets/ast_titania.h"
#include "assets/ast_title.h"
#include "assets/ast_training.h"
#include "assets/ast_ve1_boss.h"
#include "assets/ast_venom_1.h"
#include "assets/ast_venom_2.h"
#include "assets/ast_versus.h"
#include "assets/ast_vs_menu.h"
#include "assets/ast_warp_zone.h"
#include "assets/ast_zoness.h"

View file

@ -1,176 +0,0 @@
#pragma once
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_0[] = "__OTR__rcp_setup/rcp_setup_dls_0";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_1[] = "__OTR__rcp_setup/rcp_setup_dls_1";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_2[] = "__OTR__rcp_setup/rcp_setup_dls_2";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_3[] = "__OTR__rcp_setup/rcp_setup_dls_3";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_4[] = "__OTR__rcp_setup/rcp_setup_dls_4";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_5[] = "__OTR__rcp_setup/rcp_setup_dls_5";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_6[] = "__OTR__rcp_setup/rcp_setup_dls_6";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_7[] = "__OTR__rcp_setup/rcp_setup_dls_7";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_8[] = "__OTR__rcp_setup/rcp_setup_dls_8";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_9[] = "__OTR__rcp_setup/rcp_setup_dls_9";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_10[] = "__OTR__rcp_setup/rcp_setup_dls_10";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_11[] = "__OTR__rcp_setup/rcp_setup_dls_11";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_12[] = "__OTR__rcp_setup/rcp_setup_dls_12";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_13[] = "__OTR__rcp_setup/rcp_setup_dls_13";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_14[] = "__OTR__rcp_setup/rcp_setup_dls_14";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_15[] = "__OTR__rcp_setup/rcp_setup_dls_15";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_16[] = "__OTR__rcp_setup/rcp_setup_dls_16";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_17[] = "__OTR__rcp_setup/rcp_setup_dls_17";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_18[] = "__OTR__rcp_setup/rcp_setup_dls_18";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_19[] = "__OTR__rcp_setup/rcp_setup_dls_19";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_20[] = "__OTR__rcp_setup/rcp_setup_dls_20";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_21[] = "__OTR__rcp_setup/rcp_setup_dls_21";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_22[] = "__OTR__rcp_setup/rcp_setup_dls_22";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_23[] = "__OTR__rcp_setup/rcp_setup_dls_23";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_24[] = "__OTR__rcp_setup/rcp_setup_dls_24";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_25[] = "__OTR__rcp_setup/rcp_setup_dls_25";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_26[] = "__OTR__rcp_setup/rcp_setup_dls_26";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_27[] = "__OTR__rcp_setup/rcp_setup_dls_27";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_28[] = "__OTR__rcp_setup/rcp_setup_dls_28";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_29[] = "__OTR__rcp_setup/rcp_setup_dls_29";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_30[] = "__OTR__rcp_setup/rcp_setup_dls_30";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_31[] = "__OTR__rcp_setup/rcp_setup_dls_31";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_32[] = "__OTR__rcp_setup/rcp_setup_dls_32";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_33[] = "__OTR__rcp_setup/rcp_setup_dls_33";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_34[] = "__OTR__rcp_setup/rcp_setup_dls_34";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_35[] = "__OTR__rcp_setup/rcp_setup_dls_35";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_36[] = "__OTR__rcp_setup/rcp_setup_dls_36";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_37[] = "__OTR__rcp_setup/rcp_setup_dls_37";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_38[] = "__OTR__rcp_setup/rcp_setup_dls_38";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_39[] = "__OTR__rcp_setup/rcp_setup_dls_39";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_40[] = "__OTR__rcp_setup/rcp_setup_dls_40";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_41[] = "__OTR__rcp_setup/rcp_setup_dls_41";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_42[] = "__OTR__rcp_setup/rcp_setup_dls_42";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_43[] = "__OTR__rcp_setup/rcp_setup_dls_43";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_44[] = "__OTR__rcp_setup/rcp_setup_dls_44";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_45[] = "__OTR__rcp_setup/rcp_setup_dls_45";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_46[] = "__OTR__rcp_setup/rcp_setup_dls_46";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_47[] = "__OTR__rcp_setup/rcp_setup_dls_47";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_48[] = "__OTR__rcp_setup/rcp_setup_dls_48";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_49[] = "__OTR__rcp_setup/rcp_setup_dls_49";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_50[] = "__OTR__rcp_setup/rcp_setup_dls_50";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_51[] = "__OTR__rcp_setup/rcp_setup_dls_51";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_52[] = "__OTR__rcp_setup/rcp_setup_dls_52";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_53[] = "__OTR__rcp_setup/rcp_setup_dls_53";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_54[] = "__OTR__rcp_setup/rcp_setup_dls_54";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_55[] = "__OTR__rcp_setup/rcp_setup_dls_55";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_56[] = "__OTR__rcp_setup/rcp_setup_dls_56";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_57[] = "__OTR__rcp_setup/rcp_setup_dls_57";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_58[] = "__OTR__rcp_setup/rcp_setup_dls_58";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_59[] = "__OTR__rcp_setup/rcp_setup_dls_59";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_60[] = "__OTR__rcp_setup/rcp_setup_dls_60";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_61[] = "__OTR__rcp_setup/rcp_setup_dls_61";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_62[] = "__OTR__rcp_setup/rcp_setup_dls_62";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_63[] = "__OTR__rcp_setup/rcp_setup_dls_63";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_64[] = "__OTR__rcp_setup/rcp_setup_dls_64";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_65[] = "__OTR__rcp_setup/rcp_setup_dls_65";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_66[] = "__OTR__rcp_setup/rcp_setup_dls_66";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_67[] = "__OTR__rcp_setup/rcp_setup_dls_67";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_68[] = "__OTR__rcp_setup/rcp_setup_dls_68";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_69[] = "__OTR__rcp_setup/rcp_setup_dls_69";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_70[] = "__OTR__rcp_setup/rcp_setup_dls_70";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_71[] = "__OTR__rcp_setup/rcp_setup_dls_71";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_72[] = "__OTR__rcp_setup/rcp_setup_dls_72";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_73[] = "__OTR__rcp_setup/rcp_setup_dls_73";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_74[] = "__OTR__rcp_setup/rcp_setup_dls_74";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_75[] = "__OTR__rcp_setup/rcp_setup_dls_75";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_76[] = "__OTR__rcp_setup/rcp_setup_dls_76";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_77[] = "__OTR__rcp_setup/rcp_setup_dls_77";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_78[] = "__OTR__rcp_setup/rcp_setup_dls_78";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_79[] = "__OTR__rcp_setup/rcp_setup_dls_79";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_80[] = "__OTR__rcp_setup/rcp_setup_dls_80";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_81[] = "__OTR__rcp_setup/rcp_setup_dls_81";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_82[] = "__OTR__rcp_setup/rcp_setup_dls_82";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_83[] = "__OTR__rcp_setup/rcp_setup_dls_83";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_84[] = "__OTR__rcp_setup/rcp_setup_dls_84";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_85[] = "__OTR__rcp_setup/rcp_setup_dls_85";
static const ALIGN_ASSET(2) char rcp_setup/rcp_setup_dls_86[] = "__OTR__rcp_setup/rcp_setup_dls_86";

View file

@ -3,6 +3,10 @@
#include "sys.h"
#ifdef __cplusplus
extern "C" {
#endif
void Audio_SetBgmParam(s8 bgmParam);
void Audio_PlaySequence(u8 seqPlayId, u16 seqId, u8 fadeinTime, u8 bgmParam);
void Audio_PlayFanfare(u16 seqId, u8 bgmVolume, u8 bgmFadeoutTime, u8 bgmFadeinTime);
@ -12,6 +16,10 @@ void Audio_PlaySequenceDistorted(u8 seqPlayId, u16 seqId, u16 distortion, u8 fad
void Audio_PlaySoundTestTrack(u8 trackNumber);
void Audio_PlayBgm(u16 seqId);
#ifdef __cplusplus
}
#endif
#define AUDIO_PLAY_BGM(seqId) Audio_PlaySequence(SEQ_PLAYER_BGM, (seqId), 0, -1)
typedef enum BgmSeqIds {

View file

@ -79,6 +79,10 @@ typedef enum OptionId {
/* 500 */ OPTION_LANGUAGE = 500,
} OptionId;
#ifdef __cplusplus
extern "C" {
#endif
extern u8* gBSSMapPlanetTextures[9];
extern u8* gAssetMapPlanetTextures[9];
@ -227,4 +231,8 @@ void Map_Texture_Sphere(u8*, u8*, f32*);
void Map_RemainingLives_Draw(s32, s32, s32);
void Map_801A9FD4(bool);
#ifdef __cplusplus
}
#endif
#endif

View file

@ -512,9 +512,7 @@ void Ending_Draw(void);
bool Ground_801B49D0(Actor* actor);
// libultra
void gSPSegmentLoadRes(void* value, int segNum, uintptr_t target);
void gSPDisplayList(Gfx* pkt, Gfx* dl);
void gSPDisplayListOffset(Gfx* pkt, Gfx* dl, int offset);
void gSPVertex(Gfx* pkt, uintptr_t v, int n, int v0);
void gSPInvalidateTexCache(Gfx* pkt, uintptr_t texAddr);

View file

@ -130,6 +130,10 @@ typedef struct Limb {
/* 0x01C */ struct Limb* child;
} Limb; // size = 0x20
#ifdef __cplusplus
extern "C" {
#endif
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);
@ -174,7 +178,6 @@ s32 Graphics_GetLargeTextWidth(char *text);
void Graphics_DisplayLargeNumber(s32 xPos, s32 yPos, s32 number);
void Graphics_DisplaySmallText(s32 xPos, s32 yPos, f32 xScale, f32 yScale, char *text);
s32 Graphics_GetSmallTextWidth(char *text);
void func_800A1540(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
void Texture_BlendRGBA16(f32 weight, u16 size, u16 *src1, u16 *src2, u16 *dst);
void RCP_SetupDL(Gfx** gfxP, s16 i);
@ -232,6 +235,10 @@ void RCP_SetupDL_44(void);
void RCP_SetupDL_50(void);
void RCP_SetupDL_61(s32 r, s32 g, s32 b, s32 a, s32 near, s32 far);
#ifdef __cplusplus
}
#endif
typedef enum SetupDL {
/* 0x00 */ SETUPDL_0,
/* 0x01 */ SETUPDL_1,

View file

@ -1,6 +1,14 @@
#ifndef HIT64_H
#define HIT64_H
#ifdef __cplusplus
extern "C" {
#endif
void Hit64_Main(void);
#ifdef __cplusplus
}
#endif
#endif

View file

@ -7,6 +7,10 @@
#include "sf64player.h"
#include "sf64mesg.h"
#ifdef __cplusplus
extern "C" {
#endif
extern Gfx* D_VE1_8019A008[];
extern f32 aVe1GolemechHitbox[];
@ -70,4 +74,8 @@ void Training_Setup360(void);
void Training_SpawnEnemies(void);
void Venom1_8019864C(PlayerShot*);
#ifdef __cplusplus
}
#endif
#endif

View file

@ -7,6 +7,10 @@
#include "sf64player.h"
#include "sf64mesg.h"
#ifdef __cplusplus
extern "C" {
#endif
void Meteo_LevelStart(Player*);
void Meteo_LevelComplete(Player*);
void Meteo_8018ED9C(Actor*);
@ -45,4 +49,8 @@ void SectorX_SxSpyborgRightArm_Draw(Boss*);
void SectorX_SxSpyborg_Update(Boss*);
void SectorX_SxSpyborg_Draw(Boss*);
#ifdef __cplusplus
}
#endif
#endif

View file

@ -7,6 +7,9 @@
#include "sf64player.h"
#include "sf64mesg.h"
#ifdef __cplusplus
extern "C" {
#endif
extern Gfx* D_TI_801B7584[];
extern Gfx* D_TI_801B7608[];
@ -130,4 +133,8 @@ void Macbeth_MaShockBox_Update(Actor*);
void Macbeth_MaShockBox_Draw(Actor*);
s32 Macbeth_801A55D4(s32 , Vec3f* , Vec3f* , s32 );
#ifdef __cplusplus
}
#endif
#endif

View file

@ -7,6 +7,10 @@
#include "sf64player.h"
#include "sf64mesg.h"
#ifdef __cplusplus
extern "C" {
#endif
extern f32 D_Andross_801A7F58;
extern f32 D_Andross_801A7F60;
extern f32 D_Andross_801A7F68;
@ -69,4 +73,8 @@ void SectorY_SyShogun_Draw(Boss*);
void SectorY_SyShip3Destroyed_Update(Scenery*);
void SectorY_SyShip4Destroyed_Update(Scenery*);
#ifdef __cplusplus
}
#endif
#endif

View file

@ -82,6 +82,10 @@
/* ************************* */
#ifdef __cplusplus
extern "C" {
#endif
void Map_LevelSelect(void);
#if MODS_FPS_COUNTER == 1
@ -96,6 +100,10 @@ void RamMod_Update(void);
void Spawner(void);
#endif
#ifdef __cplusplus
}
#endif
#define DEBUG_BOSS_KILLER 0
#define DEBUG_VERSUS 0

View file

@ -10,15 +10,6 @@ typedef struct {
const char* path;
} MsgLookup;
u16* Message_PtrFromId(u16 msgId);
u16 Message_IdFromPtr(u16*);
s32 Message_GetWidth(u16* msgPtr);
s32 Message_GetCharCount(u16* msgPtr);
void Message_DisplayChar(Gfx** gfxPtr, u16 msgChar, s32 xpos, s32 ypos);
bool Message_DisplayText(Gfx** gfxPtr, u16* msgPtr, s32 xPos, s32 yPos, s32 len);
void Message_DisplayScrollingText(Gfx** gfxPtr, u16* msgPtr, s32 xPos, s32 yPos, s32 yRangeHi, s32 yRangeLo, s32 len);
bool Message_IsPrintingChar(u16* msgPtr, s32 charPos);
// Id + 1 gives the other frame of the animation
typedef enum RadioCharacterId {
RCID_FOX = 0,
@ -63,11 +54,6 @@ typedef enum RadioCharacterId {
RCID_1000 = 1000,
} RadioCharacterId;
void Radio_PlayMessage(u16*, RadioCharacterId);
void Radio_CalculatePositions();
void func_radio_800BB388(void);
void Radio_Draw(void);
typedef enum MsgCharCode {
// Non-printing and whitespace
/* 0 */ MSGCHAR_END, // End message
@ -955,4 +941,25 @@ typedef enum MsgMojiCode {
/* 735 */ MSGMOJI_735,
} MsgMojiCode;
#ifdef __cplusplus
extern "C" {
#endif
u16* Message_PtrFromId(u16 msgId);
u16 Message_IdFromPtr(u16*);
s32 Message_GetWidth(u16* msgPtr);
s32 Message_GetCharCount(u16* msgPtr);
void Message_DisplayChar(Gfx** gfxPtr, u16 msgChar, s32 xpos, s32 ypos);
bool Message_DisplayText(Gfx** gfxPtr, u16* msgPtr, s32 xPos, s32 yPos, s32 len);
void Message_DisplayScrollingText(Gfx** gfxPtr, u16* msgPtr, s32 xPos, s32 yPos, s32 yRangeHi, s32 yRangeLo, s32 len);
bool Message_IsPrintingChar(u16* msgPtr, s32 charPos);
void Radio_PlayMessage(u16*, RadioCharacterId);
void Radio_CalculatePositions();
void func_radio_800BB388(void);
void Radio_Draw(void);
#ifdef __cplusplus
}
#endif
#endif

View file

@ -820,8 +820,16 @@ typedef enum ActorCutsceneModels {
/* 1000 */ ACTOR_CS_JAMES_ARWING = 1000 // James McCloud Arwing seen for the last time in the ending CS.
} ActorCutsceneModels;
#ifdef __cplusplus
extern "C" {
#endif
Actor* Game_SpawnActor(ObjectId);
#ifdef __cplusplus
}
#endif
// template enums for boss work buffers
typedef enum {

View file

@ -65,6 +65,10 @@ typedef struct {
/* 0x100 */ Save backup;
} SaveFile; // size = 0x200
#ifdef __cplusplus
extern "C" {
#endif
s32 Save_Write(void);
s32 Save_Read(void);
@ -79,4 +83,8 @@ extern SaveFile sPrevSaveData;
extern Save gDefaultSave;
extern SaveFile gSaveFile;
#ifdef __cplusplus
}
#endif
#endif

View file

@ -74,6 +74,10 @@ typedef struct {
/* 0x23550 */ Lightsn lights[0x100 * 4];
} GfxPool; // size = 0x2AD50, 0x8 aligned
#ifdef __cplusplus
extern "C" {
#endif
void Controller_Init(void);
void Controller_UpdateInput(void);
void Controller_ReadData(void);
@ -83,11 +87,8 @@ s32 Timer_CreateTask(u64, TimerAction, s32*, s32);
void Timer_Increment(s32* address, s32 value);
void Timer_SetValue(s32* address, s32 value);
void Timer_CompleteTask(TimerTask*);
void Timer_Wait(u64);
void Fault_ThreadEntry(OSMesg);
void Fault_SetFrameBuffer(FrameBuffer*, u16, u16);
void Fault_Init(void);
typedef enum {
/* 10 */ SI_READ_CONTROLLER = 10,
@ -186,6 +187,10 @@ extern OSThread gMainThread; // 8013A040
extern u8 sMainThreadStack[0x1000]; // 8013A1F0
extern OSThread gAudioThread; //8013B1F0
#ifdef __cplusplus
}
#endif
#define MESG_QUEUE_EMPTY -1
#define MQ_GET_MESG(mq, mesg) (osRecvMesg((mq), (OSMesg*) (mesg), OS_MESG_NOBLOCK) != -1)

View file

@ -3,6 +3,10 @@
#include "sys.h"
#ifdef __cplusplus
extern "C" {
#endif
extern f32 gDefaultSfxSource[];
extern f32 gDefaultMod;
extern s8 gDefaultReverb;
@ -35,6 +39,10 @@ void Audio_PlayMapMenuSfx(u8 active);
void Audio_KillAllSfx(void);
void Audio_SetVoiceLanguage(u8 language);
#ifdef __cplusplus
}
#endif
#define AUDIO_PLAY_SFX(sfxId, srcPos, token) (Audio_PlaySfx((sfxId),(srcPos),(token),&gDefaultMod,&gDefaultMod,&gDefaultReverb))
#define SFX_FLAG_18 (1 << 18) // makes distance ignore z position? probably more

View file

@ -20,6 +20,10 @@
#define UNK_TYPE s32
#ifdef __cplusplus
extern "C" {
#endif
typedef s32 (*CompareFunc)(void*, void*);
s32 Lib_vsPrintf(char* dst, const char* fmt, va_list args);
@ -33,10 +37,6 @@ void Lib_FillScreen(u8 setFill);
void Memory_FreeAll(void);
void* Memory_Allocate(s32);
OSPiHandle * osDriveRomInit(void);
void RdRam_CheckIPL3(void);
void Mio0_Decompress(void* header, u8* dst);
void Game_Initialize(void);
void Game_Update(void);
@ -59,6 +59,10 @@ extern f32 gFovY;
extern f32 gProjectNear;
extern f32 gProjectFar;
#ifdef __cplusplus
}
#endif
typedef enum OptionState {
OPTION_WAIT,
OPTION_SETUP,

View file

@ -114,6 +114,10 @@ typedef struct {
/* 0x10 */ f32 scale;
} TitleCorneria; // size = 0x14
#ifdef __cplusplus
extern "C" {
#endif
extern CameraPoint D_menu_801B6B40[];
extern CameraPoint D_menu_801B6C60[];
extern f32 D_menu_801B7BB0;
@ -311,4 +315,8 @@ void Title_SunGlare_Draw(void);
void Title_NextState_Check(void);
void Title_SetLightRot(f32, f32, f32, f32*, f32*, f32*);
#ifdef __cplusplus
}
#endif
#endif

View file

@ -3,6 +3,10 @@
#include "fox_option.h"
#include "fox_map.h"
#include "fox_co.h"
#include "hit64.h"
#include "mods.h"
#include "hud.h"
#include "assets.h"
#define SOL_ALL_SAFETIES_ON 1
#include <sol/sol.hpp>

View file

@ -13,7 +13,9 @@ blacklist = [
'piint',
'siint',
'sf64dma',
'osint'
'osint',
'FrameInterpolation',
'mods.h'
]
def parse_enums(header):
@ -188,11 +190,27 @@ def parse_externs(header):
for line in lines:
line = re.sub(r'\s+', ' ', line.strip())
if line.startswith('extern') and not '"C"' in line and not '(' in line and not 'Matrix' in line and not 'Mtx' in line and not '*' in line and not '[' in line:
var_name = line.split(' ')[2].split(';')[0]
if '[' in var_name:
var_name = var_name.split('[')[0]
print(f'lua["{var_name}"] = &{var_name};')
if line.startswith('extern') and not '"C"' in line or ('(' in line and ';' in line):
if not '(' in line and not '[' in line:
var_name = line.split(' ')[2].split(';')[0]
if '*' in line:
print(f'lua["{var_name}"] = {var_name};')
else:
print(f'lua["{var_name}"] = &{var_name};')
elif '(' in line:
if 'ALIGN_ASSET' in line:
var_name = line.split('[')[0].split(' ')[-1]
print(f'lua["{var_name}"] = {var_name};')
continue
if 'define' in line or '\\' in line or 'typedef' in line or '[' in line or 'OSMesg' in line or 'Framebuffer' in line or 'TimerAction' in line or 'TimerTask' in line:
continue
if '_DEG' in line or 'Fault' in line:
continue
func_name = line.split('(')[0].split(' ')[-1]
# print('Function:', func_name)
if len(func_name) == 0:
continue
print(f'lua.set_function("{func_name}", {func_name});')
def is_blacklisted(file):
for item in blacklist: