Fix MSVC compiler and linker errors

- Fix struct/class forward declaration mismatches (JAIAudience, JASTrack) causing different MSVC mangled names and unresolved symbols
- Add jsystem_stubs.cpp with stubs for JASHeap, JASVoiceBank, J3DShapeTable, JAUSection, JHICommBuf, HIO/HIO2, JOR
This commit is contained in:
Lurs
2026-02-13 23:28:47 +01:00
parent 143c973b49
commit d069062c5c
60 changed files with 2780 additions and 815 deletions
@@ -178,7 +178,11 @@ J2DMaterial* J2DMaterialFactory::create(J2DMaterial* param_0, int index, u32 par
}
JUtility::TColor J2DMaterialFactory::newMatColor(int param_0, int param_1) const {
#ifdef __MWERKS__
JUtility::TColor local_20 = (GXColor){0xff,0xff,0xff,0xff};
#else
JUtility::TColor local_20 = GXColor{0xff,0xff,0xff,0xff};
#endif
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
if (iVar2->field_0x8[param_1] != 0xffff) {
return field_0x10[iVar2->field_0x8[param_1]];
@@ -552,6 +552,32 @@ inline f32 J3DHermiteInterpolation(__REGISTER f32 pp1, __REGISTER s16 const* pp2
fsubs fout, fout, ff0
}
// clang-format on
return fout;
#else
f32 time1 = (f32)*pp2;
f32 value1 = (f32)*pp3;
f32 tangent1 = (f32)*pp4;
f32 time2 = (f32)*pp5;
f32 value2 = (f32)*pp6;
f32 tangent2 = (f32)*pp7;
f32 duration = time2 - time1;
f32 t = (pp1 - time1) / duration;
f32 t2 = t * t;
f32 dv = value2 - value1;
f32 ff4 = dv - duration * tangent1;
f32 ff0 = tangent2 * duration + value1;
ff0 = ff0 - value2;
ff0 = ff0 - ff4;
ff0 = t2 * ff0;
f32 fout = duration * tangent1 + ff0;
fout = fout * t + value1;
fout = ff4 * t2 + fout;
fout = fout - ff0;
return fout;
#endif
}
@@ -15,11 +15,11 @@ Mtx* J3DMtxBuffer::sNoUseDrawMtxPtr = &J3DMtxBuffer::sNoUseDrawMtx;
Mtx33* J3DMtxBuffer::sNoUseNrmMtxPtr = &J3DMtxBuffer::sNoUseNrmMtx;
// force .sdata2 order
f32 dummy1() {
static f32 dummy1() {
return 1.0f;
}
f32 dummy0() {
static f32 dummy0() {
return 0.0f;
}
@@ -464,7 +464,11 @@ u32 J3DMaterialFactory::calcSizeLockedMaterial(J3DMaterial* i_material, int i_id
}
J3DGXColor J3DMaterialFactory::newMatColor(int i_idx, int i_no) const {
#ifdef __MWERKS__
J3DGXColor dflt = (GXColor){0xff, 0xff, 0xff, 0xff};
#else
J3DGXColor dflt = GXColor{0xff, 0xff, 0xff, 0xff};
#endif
J3DMaterialInitData* mtl_init_data = &mpMaterialInitData[mpMaterialID[i_idx]];
if (mtl_init_data->mMatColorIdx[i_no] != 0xffff) {
return mpMatColor[mtl_init_data->mMatColorIdx[i_no]];
@@ -493,7 +497,11 @@ J3DColorChan J3DMaterialFactory::newColorChan(int i_idx, int i_no) const {
}
J3DGXColor J3DMaterialFactory::newAmbColor(int i_idx, int i_no) const {
#ifdef __MWERKS__
J3DGXColor dflt = (GXColor){0x32, 0x32, 0x32, 0x32};
#else
J3DGXColor dflt = GXColor{0x32, 0x32, 0x32, 0x32};
#endif
J3DMaterialInitData* mtl_init_data = &mpMaterialInitData[mpMaterialID[i_idx]];
if (mtl_init_data->mAmbColorIdx[i_no] != 0xffff) {
return mpAmbColor[mtl_init_data->mAmbColorIdx[i_no]];
@@ -570,7 +578,11 @@ J3DGXColorS10 J3DMaterialFactory::newTevColor(int i_idx, int i_no) const {
}
J3DGXColor J3DMaterialFactory::newTevKColor(int i_idx, int i_no) const {
#ifdef __MWERKS__
J3DGXColor dflt = (GXColor){0xff, 0xff, 0xff, 0xff};
#else
J3DGXColor dflt = GXColor{0xff, 0xff, 0xff, 0xff};
#endif
J3DMaterialInitData* mtl_init_data = &mpMaterialInitData[mpMaterialID[i_idx]];
if (mtl_init_data->mTevKColorIdx[i_no] != 0xffff) {
return mpTevKColor[mtl_init_data->mTevKColorIdx[i_no]];
@@ -167,7 +167,11 @@ J3DMaterial* J3DMaterialFactory_v21::create(J3DMaterial* i_material, int i_idx,
}
J3DGXColor J3DMaterialFactory_v21::newMatColor(int i_idx, int i_no) const {
#ifdef __MWERKS__
J3DGXColor defaultColor = (GXColor){0xff, 0xff, 0xff, 0xff};
#else
J3DGXColor defaultColor = GXColor{0xff, 0xff, 0xff, 0xff};
#endif
J3DMaterialInitData_v21* mtl_init_data = &mpMaterialInitData[mpMaterialID[i_idx]];
if (mtl_init_data->mMatColorIdx[i_no] != 0xffff) {
return J3DGXColor(mpMatColor[mtl_init_data->mMatColorIdx[i_no]]);
@@ -262,7 +266,11 @@ J3DGXColorS10 J3DMaterialFactory_v21::newTevColor(int i_idx, int i_no) const {
}
J3DGXColor J3DMaterialFactory_v21::newTevKColor(int i_idx, int param_1) const {
#ifdef __MWERKS__
J3DGXColor defaultColor = (GXColor){0xff, 0xff, 0xff, 0xff};
#else
J3DGXColor defaultColor = GXColor{0xff, 0xff, 0xff, 0xff};
#endif
J3DMaterialInitData_v21* mtl_init_data = &mpMaterialInitData[mpMaterialID[i_idx]];
if (mtl_init_data->mTevKColorIdx[param_1] != 0xffff) {
return J3DGXColor(mpTevKColor[mtl_init_data->mTevKColorIdx[param_1]]);
+10 -6
View File
@@ -7,12 +7,16 @@
extern void mDoGph_BlankingON();
extern void mDoGph_BlankingOFF();
extern void mDoGph_BeforeOfDraw();
extern void mDoGph_AfterOfDraw();
extern void mDoGph_Painter();
extern void mDoGph_Create();
extern int mDoGph_BeforeOfDraw();
extern int mDoGph_AfterOfDraw();
extern int mDoGph_Painter();
extern int mDoGph_Create();
cAPI_Interface g_cAPI_Interface = {
mDoGph_Create, mDoGph_BeforeOfDraw, mDoGph_AfterOfDraw,
mDoGph_Painter, mDoGph_BlankingON, mDoGph_BlankingOFF,
(cAPIGph_Mthd)mDoGph_Create,
(cAPIGph_Mthd)mDoGph_BeforeOfDraw,
(cAPIGph_Mthd)mDoGph_AfterOfDraw,
(cAPIGph_Mthd)mDoGph_Painter,
mDoGph_BlankingON,
mDoGph_BlankingOFF,
};
+2 -2
View File
@@ -1246,7 +1246,7 @@ void daAlink_c::setWolfDigEffect() {
} else if (field_0x3198 == 7) {
var_r29 = 0;
var_r28 = ID_ZI_J_DASHWTRA_C;
setEmitterPolyColor(&field_0x32cc, ID_ZI_J_DASHWTRA_A, mPolyInfo2, &field_0x37d4, &sp18);
setEmitterPolyColor((u32*)&field_0x32cc, ID_ZI_J_DASHWTRA_A, mPolyInfo2, &field_0x37d4, &sp18);
setEmitterPolyColor(&field_0x31bc, ID_ZI_J_DASHWTRA_B, mPolyInfo2, &field_0x37d4, &sp18);
} else {
var_r29 = 0;
@@ -1281,7 +1281,7 @@ void daAlink_c::setWolfSwimEndEffect(JPABaseEmitter** param_0, JPABaseEmitter**
var_r30 = 1;
}
*param_0 = setEmitterColor(&field_0x32cc, name0[var_r30], &field_0x37c8, &shape_angle);
*param_0 = setEmitterColor((u32*)&field_0x32cc, name0[var_r30], &field_0x37c8, &shape_angle);
if (var_r30 != 0) {
*param_1 = setEmitterColor(&field_0x31bc, name1[var_r30], &field_0x37c8, &shape_angle);
+3
View File
@@ -5703,4 +5703,7 @@ actor_process_profile_definition g_profile_B_DS = {
fopAc_CULLBOX_CUSTOM_e,
};
cXyz daB_DS_c::getHandPosR() { return mHandPos[1]; }
cXyz daB_DS_c::getHandPosL() { return mHandPos[0]; }
AUDIO_INSTANCES;
+1 -1
View File
@@ -336,7 +336,7 @@ static BOOL way_bg_check(e_dd_class* i_this, f32 param_2) {
return FALSE;
}
u8 hio_set;
static u8 hio_set;
static daE_DD_HIO_c l_HIO;
+7 -7
View File
@@ -354,13 +354,13 @@ static BOOL other_bg_check2(e_dn_class* i_this, cXyz* i_pos) {
return FALSE;
}
u8 hio_set;
static u8 hio_set;
daE_DN_HIO_c l_HIO;
static daE_DN_HIO_c l_HIO;
fopAc_ac_c* target_info[10];
static fopAc_ac_c* target_info[10];
int target_info_count;
static int target_info_count;
static void* s_b_sub(void* i_actor, void* i_data) {
if (fopAcM_IsActor(i_actor) && dBomb_c::checkBombActor((fopAc_ac_c*)i_actor) && !((dBomb_c*)i_actor)->checkStateExplode() && target_info_count < 10) {
@@ -2978,7 +2978,7 @@ static void anm_se_set(e_dn_class* i_this) {
}
}
int c_start;
static int c_start;
static int daE_DN_Execute(e_dn_class* i_this) {
if (i_this->status != 0) {
@@ -3298,9 +3298,9 @@ static int daE_DN_Delete(e_dn_class* i_this) {
return 1;
}
Vec jv_offset = { 0.0f, 0.0f, 0.0f };
static Vec jv_offset = { 0.0f, 0.0f, 0.0f };
dJntColData_c jc_data[12] = {
static dJntColData_c jc_data[12] = {
{0, 1, 2, 40.0f, &jv_offset}, {0, 1, 3, 30.0f, &jv_offset},
{0, 1, 22, 40.0f, &jv_offset}, {0, 1, 11, 15.0f, &jv_offset},
{0, 1, 12, 10.0f, &jv_offset}, {0, 1, 17, 15.0f, &jv_offset},
+1 -1
View File
@@ -127,7 +127,7 @@ static f32 dummy_117095() {
}
#endif
bool hio_set;
static bool hio_set;
static daE_FB_HIO_c l_HIO;
+7 -7
View File
@@ -289,13 +289,13 @@ static BOOL other_bg_check2(e_mf_class* i_this, cXyz* param_2) {
return FALSE;
}
u8 hio_set;
static u8 hio_set;
daE_MF_HIO_c l_HIO;
static daE_MF_HIO_c l_HIO;
fopAc_ac_c* target_info[10];
static fopAc_ac_c* target_info[10];
int target_info_count;
static int target_info_count;
static void* s_b_sub(void* i_actor, void* i_data) {
if (fopAcM_IsActor(i_actor) && dBomb_c::checkBombActor((fopAc_ac_c*)i_actor) && !((dBomb_c*)i_actor)->checkStateExplode() && target_info_count < 10) {
@@ -2773,7 +2773,7 @@ static void anm_se_set(e_mf_class* i_this) {
}
}
int c_start;
static int c_start;
static int daE_MF_Execute(e_mf_class* i_this) {
fopEn_enemy_c* a_this = (fopEn_enemy_c*)&i_this->actor;
@@ -3085,9 +3085,9 @@ static int daE_MF_Delete(e_mf_class* i_this) {
return 1;
}
Vec jv_offset = { 0.0f, 0.0f, 0.0f };
static Vec jv_offset = { 0.0f, 0.0f, 0.0f };
dJntColData_c jc_data[12] = {
static dJntColData_c jc_data[12] = {
{0, 1, 2, 40.0f, &jv_offset}, {0, 1, 3, 30.0f, &jv_offset},
{0, 1, 22, 40.0f, &jv_offset}, {0, 1, 11, 15.0f, &jv_offset},
{0, 1, 12, 10.0f, &jv_offset}, {0, 1, 17, 15.0f, &jv_offset},
+1 -1
View File
@@ -137,7 +137,7 @@ static cXyz STAGE_CENTER_POS;
static s16 STAGE_ANGLE_Y;
u8 hio_set;
static u8 hio_set;
static daE_MK_HIO_c l_HIO;
+1 -1
View File
@@ -129,7 +129,7 @@ static int daE_NZ_Draw(e_nz_class* i_this) {
return 1;
}
bool hio_set;
static bool hio_set;
static daE_NZ_HIO_c l_HIO;
+1 -1
View File
@@ -873,7 +873,7 @@ void daE_VA_c::setFireEffect(int param_0) {
dComIfGp_particle_set(field_0x10f80[idx + 2], 0x3AE, &field_0x1140[param_0], NULL, &scale);
}
f32 dummy() {
static f32 dummy() {
return 3.2f;
}
+1 -1
View File
@@ -1716,7 +1716,7 @@ static void e_yr_su_wait_move(e_yr_class* i_this) {
}
}
f32 dummy() {
static f32 dummy() {
return -50.0f;
}
+1 -1
View File
@@ -16,7 +16,7 @@ static int l_bmdData[1][2] = {
{11, 1},
};
daNpcT_evtData_c l_evtList[11] = {
static daNpcT_evtData_c l_evtList[11] = {
{"", 0},
{"NO_RESPONSE", 0},
{"WILDGOAT", 2},
+1 -1
View File
@@ -192,7 +192,7 @@ enum Mode {
static NPC_GRO_HIO_CLASS l_HIO;
daNpc_Maro_c::actionFunc dummy_lit_3931() {
static daNpc_Maro_c::actionFunc dummy_lit_3931() {
return &daNpc_Maro_c::choccai;
}
+1 -1
View File
@@ -941,7 +941,7 @@ int daNpcKasiMich_c::getWolfPathNearIdx() {
return rv;
}
void dummy() {
static void dummy() {
daNpcKasiMich_c::actionFunc temp;
temp = &daNpcKasiMich_c::wait;
temp = &daNpcKasiMich_c::wait;
+1 -1
View File
@@ -116,7 +116,7 @@ static int l_bmdData[2][2] = {
{11, 1}, {5, 2},
};
daNpcT_evtData_c l_evtList[15] = {
static daNpcT_evtData_c l_evtList[15] = {
{"", 0},
{"DEFAULT_GETITEM", 0},
{"NO_RESPONSE", 0},
+1 -1
View File
@@ -20,7 +20,7 @@
#include "f_op/f_op_camera_mng.h"
#include <dolphin/types.h>
daNpc_Maro_c::actionFunc dummy_lit_3931() {
static daNpc_Maro_c::actionFunc dummy_lit_3931() {
return &daNpc_Maro_c::choccai;
}
+1 -1
View File
@@ -141,7 +141,7 @@ u32 bef_brk[2] = {
10,
};
int useHeapInit(fopAc_ac_c* i_this) {
static int useHeapInit(fopAc_ac_c* i_this) {
obj_brakeeff_class* a_this = static_cast<obj_brakeeff_class*>(i_this);
J3DModelData* modelData =
+1 -1
View File
@@ -14,7 +14,7 @@
#include "d/d_s_play.h"
#include <cmath>
f32 dummyLiteral() {
static f32 dummyLiteral() {
return 0.0f;
}
+2 -2
View File
@@ -149,11 +149,11 @@ static int daObjKAT_Delete(daObjKAT_c* i_this) {
return 1;
}
f32 dummy0() {
static f32 dummy0() {
return 0.0f;
}
f32 dummy1() {
static f32 dummy1() {
return 0.4f;
}
+1 -1
View File
@@ -109,7 +109,7 @@ static const int l_dzbidx[] = {9};
#endif
// force dCcD_Sph::~dCcD_Sph to be emitted earlier than it otherwise would
void dummy() {
static void dummy() {
delete (dCcD_Sph*)NULL;
delete (dCcD_Cyl*)NULL;
}
+1 -1
View File
@@ -146,7 +146,7 @@ int daObj_Maki_Delete(obj_maki_class* i_this) {
return 1;
}
int useHeapInit(fopAc_ac_c* i_this) {
static int useHeapInit(fopAc_ac_c* i_this) {
obj_maki_class* a_this = (obj_maki_class*)i_this;
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("Obj_maki", 4);
+1 -1
View File
@@ -89,7 +89,7 @@ void daObjSakuita_c::setBaseMtx() {
cMtx_copy(mDoMtx_stack_c::get(), mMtx);
}
f32 dummyLiteral() { return 0.5f; }
static f32 dummyLiteral() { return 0.5f; }
void daObjSakuita_c::setPlatePos() {
cXyz cStack_24;
+1 -1
View File
@@ -216,7 +216,7 @@ static int daObjTrnd_Create(daObjTrnd_c* i_this) {
return i_this->create();
}
void dummyString() {
static void dummyString() {
DEAD_STRING("");
}
+1 -1
View File
@@ -435,7 +435,7 @@ void daWdStick_c::mode_proc_roll() {
bgCheck();
}
f32 dummyLiteral() { return 100.0f; }
static f32 dummyLiteral() { return 100.0f; }
BOOL daWdStick_c::chkWaterLineIn() {
return mAcch.m_wtr.GetHeight() > current.pos.y + 40.0f;
+5
View File
@@ -58,8 +58,13 @@ int daPPolamp_c::draw() {
g_env_light.setLightTevColorType_MAJI(mModel1, &tevStr);
mDoExt_modelUpdateDL(mModel1);
g_env_light.setLightTevColorType_MAJI(mModel2, &tevStr);
#ifdef __MWERKS__
static J3DGXColorS10 TEV_COLOR_1 = (GXColorS10){0x48, 0x85, 0xff, 0xff};
static J3DGXColorS10 TEV_COLOR_2 = (GXColorS10){0, 0, 0xff, 0xff};
#else
static J3DGXColorS10 TEV_COLOR_1 = GXColorS10 {0x48, 0x85, 0xff, 0xff};
static J3DGXColorS10 TEV_COLOR_2 = GXColorS10 {0, 0, 0xff, 0xff};
#endif
J3DModelData* modelData = mModel2->getModelData();
for (u16 i = 0; i < modelData->getMaterialNum(); i++)
{
+1 -1
View File
@@ -264,7 +264,7 @@ void daTag_Msg_HIO_c::genMessage(JORMContext* ctx) {
}
#endif
void dummyString() {
static void dummyString() {
DEAD_STRING("Timer");
}
+2
View File
@@ -246,9 +246,11 @@ static int daTag_SSDrink_IsDelete(void* i_this) {
daTag_SSDrink_c::~daTag_SSDrink_c() {}
#ifdef __MWERKS__
void daObj_SSBase_c::setSoldOut() {
/* empty function */
}
#endif
static actor_method_class daTag_SSDrink_MethodTable = {
(process_method_func)daTag_SSDrink_Create, (process_method_func)daTag_SSDrink_Delete,
+4 -2
View File
@@ -694,14 +694,16 @@ GXColor* renderingAmap_c::getLineColor(int param_0, int param_1) {
if (param_1 == 4) {
switch (field_0x3c) {
case 0:
case 0: {
static const GXColor borderColor0 = {0xB4, 0x00, 0x00, 0x00};
*color = borderColor0;
break;
case 1:
}
case 1: {
static const GXColor borderColor1 = {0xB8, 0x00, 0x00, 0x00};
*color = borderColor1;
break;
}
default:
JUT_ASSERT(1636, FALSE);
break;
+2 -1
View File
@@ -1,9 +1,9 @@
#include "dusk/extras.h"
#include <ctype.h>
#include <string.h>
#include <strings.h>
#include <stdint.h>
#ifndef _MSC_VER
int stricmp(const char* str1, const char* str2) {
char a_var;
char b_var;
@@ -46,6 +46,7 @@ int strnicmp(const char* str1, const char* str2, int n) {
return 0;
}
#endif
void *_memcpy(void* dest, void const* src, int n) {
+9
View File
@@ -1,6 +1,9 @@
// C++ Mangled version of extras.c
#include <cstring>
#include <cstdint>
#ifdef _MSC_VER
#include <intrin.h>
#endif
void *__memcpy(void* dest, void const* src, int n) {
return memcpy(dest, src, n);
@@ -14,5 +17,11 @@ void __dcbz(void* addr, int offset) {
int __cntlzw(unsigned int val) {
if (val == 0) return 32; // PowerPC returns 32 if the input is 0
#ifdef _MSC_VER
unsigned long idx;
_BitScanReverse(&idx, val);
return 31 - (int)idx;
#else
return __builtin_clz(val);
#endif
}
+5
View File
@@ -12,5 +12,10 @@ u32 __OSFpscrEnableBits;
GDLObj* __GDCurrentDL;
// DSP
#include <dolphin/dsp.h>
DSPTaskInfo* __DSP_first_task;
DSPTaskInfo* __DSP_curr_task;
// mDo_dvd
#include <m_Do/m_Do_dvd_thread.h>
u8 mDoDvdThd::DVDLogoMode;
+144
View File
@@ -0,0 +1,144 @@
#include <cstdio>
#include <cstring>
#pragma mark J3DShapeTable
#include "JSystem/J3DGraphAnimator/J3DShapeTable.h"
void J3DShapeTable::initShapeNodes(J3DDrawMtxData* mtxData, J3DVertexData* vtxData) {
puts("J3DShapeTable::initShapeNodes is a stub");
}
// JAISe::JAISeMgr_startID_, JAISeq::JAISeqMgr_startID_, JAIStream::JAIStreamMgr_startID_
// are compiled from their real source files (JAISe.obj, JAISeq.obj, JAIStream.obj)
#pragma mark JAUSection
#include "JSystem/JAudio2/JAUSectionHeap.h"
JAUSoundTable* JAUSection::newSoundTable(void const* data, u32 size, bool flag) {
puts("JAUSection::newSoundTable is a stub");
return nullptr;
}
JAUSoundNameTable* JAUSection::newSoundNameTable(void const* data, u32 size, bool flag) {
puts("JAUSection::newSoundNameTable is a stub");
return nullptr;
}
JAIStreamDataMgr* JAUSection::newStreamFileTable(void const* data, bool flag) {
puts("JAUSection::newStreamFileTable is a stub");
return nullptr;
}
#pragma mark JASHeap
#include "JSystem/JAudio2/JASHeapCtrl.h"
JASHeap::JASHeap(JASDisposer* disposer)
: mTree(this), mDisposer(disposer), mBase(nullptr), mSize(0), field_0x40(nullptr) {
OSInitMutex(&mMutex);
}
#pragma mark JASVoiceBank
#include "JSystem/JAudio2/JASVoiceBank.h"
bool JASVoiceBank::getInstParam(int a, int b, int c, JASInstParam* param) const {
puts("JASVoiceBank::getInstParam is a stub");
return false;
}
// JASSeqParser::sCallBackFunc is compiled from JASSeqParser.obj
#pragma mark JHICommBuf
#include "JSystem/JHostIO/JHIComm.h"
void JHICommBufHeader::init() {
puts("JHICommBufHeader::init is a stub");
}
int JHICommBufHeader::load() {
puts("JHICommBufHeader::load is a stub");
return -1;
}
int JHICommBufReader::readBegin() {
puts("JHICommBufReader::readBegin is a stub");
return -1;
}
void JHICommBufReader::readEnd() {
puts("JHICommBufReader::readEnd is a stub");
}
int JHICommBufReader::read(void* buf, int size) {
puts("JHICommBufReader::read is a stub");
return 0;
}
u32 JHICommBufReader::Header::getReadableSize() const {
puts("JHICommBufReader::Header::getReadableSize is a stub");
return 0;
}
int JHICommBufWriter::writeBegin() {
puts("JHICommBufWriter::writeBegin is a stub");
return -1;
}
void JHICommBufWriter::writeEnd() {
puts("JHICommBufWriter::writeEnd is a stub");
}
int JHICommBufWriter::write(void* buf, int size) {
puts("JHICommBufWriter::write is a stub");
return 0;
}
#pragma mark HIO / HIO2
#include <dolphin/hio.h>
#include <revolution/hio2.h>
extern "C" {
BOOL HIORead(u32 addr, void* buffer, s32 size) {
puts("HIORead is a stub");
return FALSE;
}
BOOL HIOWrite(u32 addr, void* buffer, s32 size) {
puts("HIOWrite is a stub");
return FALSE;
}
BOOL HIO2Init(void) {
puts("HIO2Init is a stub");
return FALSE;
}
BOOL HIO2EnumDevices(HIO2EnumCallback callback) {
puts("HIO2EnumDevices is a stub");
return FALSE;
}
s32 HIO2Open(HIO2DeviceType type, HIO2UnkCallback exiCb, HIO2DisconnectCallback disconnectCb) {
puts("HIO2Open is a stub");
return -1;
}
BOOL HIO2Close(s32 handle) {
puts("HIO2Close is a stub");
return FALSE;
}
} // extern "C"
#pragma mark JOR
#include "JSystem/JHostIO/JORServer.h"
int JOREventCallbackListNode::JORAct(u32 eventID, const char* eventName) {
puts("JOREventCallbackListNode::JORAct is a stub");
return 0;
}
#pragma mark J3DPSMtxArrayConcat
void J3DPSMtxArrayConcat(float (*a)[4], float (*b)[4], float (*out)[4], unsigned long count) {
puts("J3DPSMtxArrayConcat is a stub");
}
+670 -696
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -248,7 +248,7 @@ u8 fopMsgM_itemNumIdx(u8 i_no) {
return itemicon[i_no] & 0xFF;
}
f32 dummy() {
static f32 dummy() {
J2DPane* dummyPlane = NULL;
dummyPlane->getAlpha();
dummyPlane->getHeight();
+9
View File
@@ -5,7 +5,16 @@
#include "f_pc/f_pc_profile.h"
#ifndef __MWERKS__
// Forward declare the static list from f_pc_profile_lst.cpp
extern process_profile_definition* g_fpcPfLst_ProfileList[];
// On PC: Direct pointer to static array
process_profile_definition** g_fpcPf_ProfileList_p = g_fpcPfLst_ProfileList;
#else
// On Console: Pointer initialized by REL module prolog
process_profile_definition** g_fpcPf_ProfileList_p;
#endif
process_profile_definition* fpcPf_Get(s16 i_profname) {
int index = i_profname;
+800 -1
View File
@@ -5,6 +5,8 @@
#include "f_pc/f_pc_profile_lst.h"
#ifdef __MWERKS__
process_profile_definition* g_fpcPfLst_ProfileList[] = {
&g_profile_OVERLAP0,
&g_profile_OVERLAP1,
@@ -800,7 +802,6 @@ process_profile_definition* g_fpcPfLst_ProfileList[] = {
&g_profile_GAMEOVER,
NULL,
};
extern "C" void ModuleProlog() {
g_fpcPf_ProfileList_p = g_fpcPfLst_ProfileList;
}
@@ -808,3 +809,801 @@ extern "C" void ModuleProlog() {
extern "C" void ModuleEpilog() {
g_fpcPf_ProfileList_p = NULL;
}
#else
process_profile_definition* g_fpcPfLst_ProfileList[] = {
&g_profile_OVERLAP0.base.base,
&g_profile_OVERLAP1.base.base,
&g_profile_OVERLAP3.base.base,
&g_profile_OVERLAP6.base.base,
&g_profile_OVERLAP7.base.base,
&g_profile_OVERLAP8.base.base,
&g_profile_OVERLAP9.base.base,
&g_profile_OVERLAP10.base.base,
&g_profile_OVERLAP11.base.base,
&g_profile_LOGO_SCENE.base.base,
&g_profile_MENU_SCENE.base.base,
&g_profile_PLAY_SCENE.base.base,
&g_profile_OPENING_SCENE.base.base,
&g_profile_NAME_SCENE.base.base,
&g_profile_NAMEEX_SCENE.base.base,
&g_profile_WARNING_SCENE.base.base,
&g_profile_WARNING2_SCENE.base.base,
&g_profile_OVERLAP2.base.base,
&g_profile_ROOM_SCENE.base.base,
&g_profile_KANKYO.base.base,
&g_profile_ALLDIE.base.base,
&g_profile_ENVSE.base.base,
&g_profile_Obj_Swpush.base.base,
&g_profile_Obj_Swpush2.base.base,
&g_profile_Obj_Swpush5.base.base,
&g_profile_Tag_Gstart.base.base,
&g_profile_NO_CHG_ROOM.base.base,
&g_profile_Obj_Lv6ElevtA.base.base,
&g_profile_OBJ_SO.base.base,
&g_profile_Obj_Movebox.base.base,
&g_profile_Obj_SwTurn.base.base,
&g_profile_Obj_Lv6SwTurn.base.base,
&g_profile_OBJ_SEKIZOA.base.base,
&g_profile_OBJ_GRA.base.base,
&g_profile_TAG_GRA.base.base,
&g_profile_TAG_YAMI.base.base,
&g_profile_Obj_Ladder.base.base,
&g_profile_OBJ_BEF.base.base,
&g_profile_OBJ_FMOBJ.base.base,
&g_profile_OBJ_LBOX.base.base,
&g_profile_OBJ_WEB0.base.base,
&g_profile_OBJ_WEB1.base.base,
&g_profile_OBJ_CB.base.base,
&g_profile_OBJ_MAKI.base.base,
&g_profile_OBJ_BRG.base.base,
&g_profile_OBJ_GB.base.base,
&g_profile_OBJ_GM.base.base,
&g_profile_OBJ_TOBY.base.base,
&g_profile_OBJ_TP.base.base,
&g_profile_TREESH.base.base,
&g_profile_Obj_ZDoor.base.base,
&g_profile_Obj_Pillar.base.base,
&g_profile_Obj_Cdoor.base.base,
&g_profile_GRDWATER.base.base,
&g_profile_Obj_RotBridge.base.base,
&g_profile_Obj_MagLift.base.base,
&g_profile_Obj_MagLiftRot.base.base,
&g_profile_Obj_Lv1Cdl00.base.base,
&g_profile_Obj_Lv1Cdl01.base.base,
&g_profile_Obj_TvCdlst.base.base,
&g_profile_Obj_HsTarget.base.base,
&g_profile_Obj_HeavySw.base.base,
&g_profile_Obj_GoGate.base.base,
&g_profile_Obj_TaFence.base.base,
&g_profile_Obj_Saidan.base.base,
&g_profile_Obj_SpinLift.base.base,
&g_profile_Obj_BmWindow.base.base,
&g_profile_Obj_RfHole.base.base,
&g_profile_Obj_WaterPillar.base.base,
&g_profile_Obj_SyRock.base.base,
&g_profile_Obj_BsGate.base.base,
&g_profile_Obj_AmiShutter.base.base,
&g_profile_Obj_WtGate.base.base,
&g_profile_Obj_Lv2Candle.base.base,
&g_profile_Obj_TogeTrap.base.base,
&g_profile_Obj_RotTrap.base.base,
&g_profile_Obj_SwallShutter.base.base,
&g_profile_Obj_IceWall.base.base,
&g_profile_Obj_Lv5SwIce.base.base,
&g_profile_Obj_Lv5FBoard.base.base,
&g_profile_Obj_Turara.base.base,
&g_profile_Obj_TwGate.base.base,
&g_profile_Obj_Digholl.base.base,
&g_profile_Obj_Digpl.base.base,
&g_profile_Obj_TestCube.base.base,
&g_profile_Obj_Kshutter.base.base,
&g_profile_NPC_COACH.base.base,
&g_profile_NPC_THEB.base.base,
&g_profile_COACH_FIRE.base.base,
&g_profile_COACH2D.base.base,
&g_profile_BALLOON2D.base.base,
&g_profile_SKIP2D.base.base,
&g_profile_Obj_MvStair.base.base,
&g_profile_Obj_Cowdoor.base.base,
&g_profile_Obj_Swpropeller.base.base,
&g_profile_Obj_BoomShutter.base.base,
&g_profile_NPC_KS.base.base,
&g_profile_Obj_Hfuta.base.base,
&g_profile_Obj_BkDoor.base.base,
&g_profile_Obj_Cboard.base.base,
&g_profile_Obj_MGate.base.base,
&g_profile_Obj_Ikada.base.base,
&g_profile_Obj_Ice_l.base.base,
&g_profile_Obj_Ice_s.base.base,
&g_profile_Obj_E_CREATE.base.base,
&g_profile_Obj_Bhbridge.base.base,
&g_profile_Obj_Kaisou.base.base,
&g_profile_Obj_HHASHI.base.base,
&g_profile_Obj_BHASHI.base.base,
&g_profile_OCTHASHI.base.base,
&g_profile_Obj_THASHI.base.base,
&g_profile_Obj_CRVGATE.base.base,
&g_profile_Obj_CRVFENCE.base.base,
&g_profile_Obj_CRVHAHEN.base.base,
&g_profile_Obj_CRVSTEEL.base.base,
&g_profile_Obj_CRVLH_UP.base.base,
&g_profile_Obj_CRVLH_DW.base.base,
&g_profile_Obj_RIVERROCK.base.base,
&g_profile_Obj_DUST.base.base,
&g_profile_Obj_ITA.base.base,
&g_profile_Obj_Window.base.base,
&g_profile_Obj_MetalBox.base.base,
&g_profile_Obj_BBox.base.base,
&g_profile_OBJ_MSIMA.base.base,
&g_profile_OBJ_MYOGAN.base.base,
&g_profile_B_ZANTS.base.base,
&g_profile_Obj_ChainBlock.base.base,
&g_profile_Obj_ChainWall.base.base,
&g_profile_Obj_KkrGate.base.base,
&g_profile_Obj_RiderGate.base.base,
&g_profile_Obj_Onsen.base.base,
&g_profile_Obj_Chest.base.base,
&g_profile_Obj_Bemos.base.base,
&g_profile_Obj_RopeBridge.base.base,
&g_profile_Obj_WellCover.base.base,
&g_profile_Obj_GraveStone.base.base,
&g_profile_Obj_ZraRock.base.base,
&g_profile_Obj_GraRock.base.base,
&g_profile_Obj_GrzRock.base.base,
&g_profile_GRA_WALL.base.base,
&g_profile_OBJ_ONSEN_FIRE.base.base,
&g_profile_Obj_Lv6bemos.base.base,
&g_profile_Obj_Lv6bemos2.base.base,
&g_profile_Obj_BarDesk.base.base,
&g_profile_Obj_DigSnow.base.base,
&g_profile_Obj_Ytaihou.base.base,
&g_profile_Obj_Elevator.base.base,
&g_profile_Obj_Lv6TogeRoll.base.base,
&g_profile_Obj_Lv6TogeTrap.base.base,
&g_profile_Obj_Lv6Tenbin.base.base,
&g_profile_Obj_Lv6SwGate.base.base,
&g_profile_Obj_Lv6Lblock.base.base,
&g_profile_Obj_Lv6ChgGate.base.base,
&g_profile_Obj_Lv6FuriTrap.base.base,
&g_profile_Obj_Lv6SzGate.base.base,
&g_profile_Obj_Lv4EdShutter.base.base,
&g_profile_Obj_Lv4Gate.base.base,
&g_profile_Obj_Lv4PoGate.base.base,
&g_profile_Obj_Lv4SlideWall.base.base,
&g_profile_Obj_Lv4HsTarget.base.base,
&g_profile_Obj_Lv7PropY.base.base,
&g_profile_Obj_Lv7BsGate.base.base,
&g_profile_Obj_Lv8OptiLift.base.base,
&g_profile_Obj_Lv8KekkaiTrap.base.base,
&g_profile_Obj_Lv8Lift.base.base,
&g_profile_Obj_Lv8UdFloor.base.base,
&g_profile_Obj_Lv9SwShutter.base.base,
&g_profile_Obj_TobyHouse.base.base,
&g_profile_Obj_poCandle.base.base,
&g_profile_Obj_Lv4DigSand.base.base,
&g_profile_Obj_FallObj.base.base,
&g_profile_Obj_SmgDoor.base.base,
&g_profile_Obj_SwLight.base.base,
&g_profile_Obj_Avalanche.base.base,
&g_profile_Obj_MirrorScrew.base.base,
&g_profile_Obj_MirrorSand.base.base,
&g_profile_Obj_MirrorTable.base.base,
&g_profile_Obj_MirrorChain.base.base,
&g_profile_Obj_Mirror6Pole.base.base,
&g_profile_Obj_SwSpinner.base.base,
&g_profile_Obj_TDoor.base.base,
&g_profile_Obj_Lv7Bridge.base.base,
&g_profile_Obj_zrTurara.base.base,
&g_profile_Obj_TakaraDai.base.base,
&g_profile_Obj_Table.base.base,
&g_profile_Obj_CatDoor.base.base,
&g_profile_Obj_Gake.base.base,
&g_profile_CSTAF.base.base,
&g_profile_Obj_Lv4RailWall.base.base,
&g_profile_Obj_Lv4Sand.base.base,
&g_profile_Obj_PushDoor.base.base,
&g_profile_PushDoor.base.base,
&g_profile_Obj_GanonWall2.base.base,
&g_profile_Obj_Lv4Bridge.base.base,
&g_profile_Obj_Lv4Floor.base.base,
&g_profile_Tag_Spinner.base.base,
&g_profile_Obj_SwHang.base.base,
&g_profile_Obj_RotStair.base.base,
&g_profile_Obj_MagneArm.base.base,
&g_profile_Obj_KWheel00.base.base,
&g_profile_Obj_KWheel01.base.base,
&g_profile_Obj_Ychndlr.base.base,
&g_profile_Obj_PRElvtr.base.base,
&g_profile_Obj_MHasu.base.base,
&g_profile_Obj_YIblltray.base.base,
&g_profile_Obj_Lv6EGate.base.base,
&g_profile_Obj_PDtile.base.base,
&g_profile_Obj_PDwall.base.base,
&g_profile_Obj_Lv4PRwall.base.base,
&g_profile_Obj_KLift00.base.base,
&g_profile_B_OH.base.base,
&g_profile_Obj_Lv4Chan.base.base,
&g_profile_Obj_Lv3R10Saka.base.base,
&g_profile_Obj_Lv3Water.base.base,
&g_profile_Obj_Lv3Water2.base.base,
&g_profile_OBJ_LV3WATERB.base.base,
&g_profile_Obj_HBombkoya.base.base,
&g_profile_Obj_SZbridge.base.base,
&g_profile_Obj_KakarikoBrg.base.base,
&g_profile_Obj_OrdinBrg.base.base,
&g_profile_Obj_BurnBox.base.base,
&g_profile_Obj_KJgjs.base.base,
&g_profile_OBJ_IHASI.base.base,
&g_profile_Obj_IceBlock.base.base,
&g_profile_Obj_VolcanicBall.base.base,
&g_profile_Obj_VolcanicBomb.base.base,
&g_profile_Obj_VolcGnd.base.base,
&g_profile_Obj_KKanban.base.base,
&g_profile_E_PH.base.base,
&g_profile_NPC_ZRA.base.base,
&g_profile_Obj_Chandelier.base.base,
&g_profile_Obj_Stopper2.base.base,
&g_profile_DOOR20.base.base,
&g_profile_Tag_Hinit.base.base,
&g_profile_Tag_Hjump.base.base,
&g_profile_Tag_AJnot.base.base,
&g_profile_Tag_Hstop.base.base,
&g_profile_CANOE.base.base,
&g_profile_HORSE.base.base,
&g_profile_E_WB.base.base,
&g_profile_OBJ_ITO.base.base,
&g_profile_OBJ_SW.base.base,
&g_profile_SPINNER.base.base,
&g_profile_B_OB.base.base,
&g_profile_KAGO.base.base,
&g_profile_E_YC.base.base,
&g_profile_B_DS.base.base,
&g_profile_B_DR.base.base,
&g_profile_B_ZANTZ.base.base,
&g_profile_B_ZANT.base.base,
&g_profile_B_ZANTM.base.base,
&g_profile_TBOX.base.base,
&g_profile_TBOX2.base.base,
&g_profile_ALINK.base.base,
&g_profile_BOOMERANG.base.base,
&g_profile_MIDNA.base.base,
&g_profile_NPC_TK.base.base,
&g_profile_NPC_WORM.base.base,
&g_profile_PPolamp.base.base,
&g_profile_BkyRock.base.base,
&g_profile_HITOBJ.base.base,
&g_profile_EP.base.base,
&g_profile_COW.base.base,
&g_profile_PERU.base.base,
&g_profile_NI.base.base,
&g_profile_NPC_TKJ2.base.base,
&g_profile_SQ.base.base,
&g_profile_NPC_SQ.base.base,
&g_profile_DO.base.base,
&g_profile_NPC_NE.base.base,
&g_profile_NPC_TR.base.base,
&g_profile_NPC_LF.base.base,
&g_profile_OBJ_FOOD.base.base,
&g_profile_OBJ_KI.base.base,
&g_profile_OBJ_KITA.base.base,
&g_profile_OBJ_KEY.base.base,
&g_profile_OBJ_KEYHOLE.base.base,
&g_profile_Obj_Lv5Key.base.base,
&g_profile_OBJ_LP.base.base,
&g_profile_OBJ_TATIGI.base.base,
&g_profile_OBJ_ROCK.base.base,
&g_profile_OBJ_WFLAG.base.base,
&g_profile_OBJ_KAGE.base.base,
&g_profile_OBJ_KANBAN2.base.base,
&g_profile_OBJ_BALLOON.base.base,
&g_profile_OBJ_SUISYA.base.base,
&g_profile_OBJ_OILTUBO.base.base,
&g_profile_OBJ_ROTEN.base.base,
&g_profile_OBJ_SSDRINK.base.base,
&g_profile_OBJ_SSITEM.base.base,
&g_profile_TAG_SSDRINK.base.base,
&g_profile_TAG_BTLITM.base.base,
&g_profile_TAG_LV5SOUP.base.base,
&g_profile_TAG_MNLIGHT.base.base,
&g_profile_TAG_SHOPCAM.base.base,
&g_profile_TAG_SHOPITM.base.base,
&g_profile_OBJ_NDOOR.base.base,
&g_profile_OBJ_UDOOR.base.base,
&g_profile_OBJ_USAKU.base.base,
&g_profile_Obj_SM_DOOR.base.base,
&g_profile_OBJ_BED.base.base,
&g_profile_OBJ_BOUMATO.base.base,
&g_profile_OBJ_ITAMATO.base.base,
&g_profile_OBJ_NOUGU.base.base,
&g_profile_OBJ_STICK.base.base,
&g_profile_OBJ_MIE.base.base,
&g_profile_OBJ_SEKIDOOR.base.base,
&g_profile_OBJ_SEKIZO.base.base,
&g_profile_OBJ_SMTILE.base.base,
&g_profile_NPC_FISH.base.base,
&g_profile_MG_FISH.base.base,
&g_profile_FSHOP.base.base,
&g_profile_NPC_DU.base.base,
&g_profile_DISAPPEAR.base.base,
&g_profile_Obj_Mato.base.base,
&g_profile_Obj_Flag.base.base,
&g_profile_Obj_Flag2.base.base,
&g_profile_Obj_Flag3.base.base,
&g_profile_Obj_GOMIKABE.base.base,
&g_profile_Obj_Yousei.base.base,
&g_profile_Obj_Kabuto.base.base,
&g_profile_Obj_Cho.base.base,
&g_profile_Obj_Kuw.base.base,
&g_profile_Obj_Nan.base.base,
&g_profile_Obj_Dan.base.base,
&g_profile_Obj_Kam.base.base,
&g_profile_Obj_Ten.base.base,
&g_profile_Obj_Ari.base.base,
&g_profile_Obj_Kag.base.base,
&g_profile_Obj_Batta.base.base,
&g_profile_Obj_Tombo.base.base,
&g_profile_Obj_Kat.base.base,
&g_profile_Obj_H_Saku.base.base,
&g_profile_Obj_Yobikusa.base.base,
&g_profile_Obj_KazeNeko.base.base,
&g_profile_Obj_KznkArm.base.base,
&g_profile_Obj_NamePlate.base.base,
&g_profile_Obj_OnCloth.base.base,
&g_profile_Obj_LndRope.base.base,
&g_profile_Obj_ItaRope.base.base,
&g_profile_Obj_Sakuita.base.base,
&g_profile_Obj_Laundry.base.base,
&g_profile_WarpBug.base.base,
&g_profile_Izumi_Gate.base.base,
&g_profile_Obj_Fchain.base.base,
&g_profile_Obj_Wchain.base.base,
&g_profile_Tag_Attp.base.base,
&g_profile_Obj_Tornado.base.base,
&g_profile_Obj_Tornado2.base.base,
&g_profile_Obj_FirePillar.base.base,
&g_profile_Obj_FirePillar2.base.base,
&g_profile_Obj_InoBone.base.base,
&g_profile_Obj_Stopper.base.base,
&g_profile_Obj_MHole.base.base,
&g_profile_Tag_Magne.base.base,
&g_profile_Obj_BossWarp.base.base,
&g_profile_Obj_WoodPendulum.base.base,
&g_profile_Obj_WdStick.base.base,
&g_profile_Obj_StairBlock.base.base,
&g_profile_Obj_Geyser.base.base,
&g_profile_Tag_KtOnFire.base.base,
&g_profile_Obj_FireWood.base.base,
&g_profile_Obj_FireWood2.base.base,
&g_profile_Obj_GpTaru.base.base,
&g_profile_Obj_OnsenTaru.base.base,
&g_profile_Obj_KiPot.base.base,
&g_profile_TBOX_SW.base.base,
&g_profile_Obj_SwChain.base.base,
&g_profile_Obj_WoodenSword.base.base,
&g_profile_Obj_StoneMark.base.base,
&g_profile_Obj_Lv3Candle.base.base,
&g_profile_Tag_Lv4Candle.base.base,
&g_profile_Tag_Lv4CandleDm.base.base,
&g_profile_Obj_DamCps.base.base,
&g_profile_Obj_Smoke.base.base,
&g_profile_Obj_WaterFall.base.base,
&g_profile_Obj_ZoraCloth.base.base,
&g_profile_Obj_poFire.base.base,
&g_profile_Tag_poFire.base.base,
&g_profile_Obj_glowSphere.base.base,
&g_profile_Tag_LightBall.base.base,
&g_profile_SwLBall.base.base,
&g_profile_SwBall.base.base,
&g_profile_Obj_WaterEff.base.base,
&g_profile_Tag_RiverBack.base.base,
&g_profile_Tag_KagoFall.base.base,
&g_profile_Tag_Lv2PrChk.base.base,
&g_profile_Obj_Lv4Gear.base.base,
&g_profile_Obj_MasterSword.base.base,
&g_profile_Obj_WoodStatue.base.base,
&g_profile_Obj_Fan.base.base,
&g_profile_Obj_IceLeaf.base.base,
&g_profile_Obj_zrTuraraRc.base.base,
&g_profile_Tag_RetRoom.base.base,
&g_profile_Obj_WindStone.base.base,
&g_profile_Tag_WaraHowl.base.base,
&g_profile_Obj_SCannon.base.base,
&g_profile_Obj_SmWStone.base.base,
&g_profile_Obj_SCannonCrs.base.base,
&g_profile_Tag_SnowEff.base.base,
&g_profile_Tag_CstaSw.base.base,
&g_profile_Tag_Lv6CstaSw.base.base,
&g_profile_Obj_awaPlar.base.base,
&g_profile_Obj_poTbox.base.base,
&g_profile_Obj_TimeFire.base.base,
&g_profile_Obj_TMoon.base.base,
&g_profile_Obj_GanonWall.base.base,
&g_profile_Obj_Prop.base.base,
&g_profile_CSTATUE.base.base,
&g_profile_Obj_SwBallA.base.base,
&g_profile_Obj_SwBallB.base.base,
&g_profile_Obj_SnowSoup.base.base,
&g_profile_Obj_Nagaisu.base.base,
&g_profile_Obj_RCircle.base.base,
&g_profile_Obj_Picture.base.base,
&g_profile_Tag_SetBall.base.base,
&g_profile_Tag_SmkEmt.base.base,
&g_profile_SwTime.base.base,
&g_profile_Obj_HFtr.base.base,
&g_profile_Obj_HBarrel.base.base,
&g_profile_Obj_Crystal.base.base,
&g_profile_Obj_SCannonTen.base.base,
&g_profile_Obj_SwBallC.base.base,
&g_profile_SCENE_EXIT2.base.base,
&g_profile_Obj_Hata.base.base,
&g_profile_Obj_ToaruMaki.base.base,
&g_profile_Tag_AttackItem.base.base,
&g_profile_Tag_RmbitSw.base.base,
&g_profile_Obj_Sword.base.base,
&g_profile_Tag_Spring.base.base,
&g_profile_Tag_Statue.base.base,
&g_profile_E_AI.base.base,
&g_profile_E_GS.base.base,
&g_profile_E_GOB.base.base,
&g_profile_E_DD.base.base,
&g_profile_E_DN.base.base,
&g_profile_E_S1.base.base,
&g_profile_E_MF.base.base,
&g_profile_E_SG.base.base,
&g_profile_E_BS.base.base,
&g_profile_E_SF.base.base,
&g_profile_E_SH.base.base,
&g_profile_E_DF.base.base,
&g_profile_E_GM.base.base,
&g_profile_E_MD.base.base,
&g_profile_E_SM.base.base,
&g_profile_E_SM2.base.base,
&g_profile_E_ST.base.base,
&g_profile_E_ST_LINE.base.base,
&g_profile_E_SB.base.base,
&g_profile_E_TH.base.base,
&g_profile_E_CR.base.base,
&g_profile_E_CR_EGG.base.base,
&g_profile_E_DB.base.base,
&g_profile_E_DB_LEAF.base.base,
&g_profile_E_GA.base.base,
&g_profile_E_GB.base.base,
&g_profile_E_HB.base.base,
&g_profile_E_HB_LEAF.base.base,
&g_profile_E_HZELDA.base.base,
&g_profile_E_YD.base.base,
&g_profile_E_YH.base.base,
&g_profile_E_YD_LEAF.base.base,
&g_profile_E_HM.base.base,
&g_profile_E_TK.base.base,
&g_profile_E_TK2.base.base,
&g_profile_E_TK_BALL.base.base,
&g_profile_E_RB.base.base,
&g_profile_E_RD.base.base,
&g_profile_E_RDB.base.base,
&g_profile_E_RDY.base.base,
&g_profile_E_FM.base.base,
&g_profile_E_FS.base.base,
&g_profile_E_PM.base.base,
&g_profile_E_PO.base.base,
&g_profile_E_MB.base.base,
&g_profile_E_MK.base.base,
&g_profile_E_MM.base.base,
&g_profile_E_FZ.base.base,
&g_profile_E_ZS.base.base,
&g_profile_E_KK.base.base,
&g_profile_E_HP.base.base,
&g_profile_E_ZH.base.base,
&g_profile_E_ZM.base.base,
&g_profile_E_PZ.base.base,
&g_profile_E_FB.base.base,
&g_profile_E_FK.base.base,
&g_profile_E_MS.base.base,
&g_profile_E_NEST.base.base,
&g_profile_E_NZ.base.base,
&g_profile_E_BA.base.base,
&g_profile_E_BU.base.base,
&g_profile_E_BUG.base.base,
&g_profile_E_BEE.base.base,
&g_profile_E_IS.base.base,
&g_profile_E_KG.base.base,
&g_profile_E_KR.base.base,
&g_profile_E_SW.base.base,
&g_profile_E_GE.base.base,
&g_profile_Tag_WatchGe.base.base,
&g_profile_E_YM.base.base,
&g_profile_E_YM_TAG.base.base,
&g_profile_E_YMB.base.base,
&g_profile_Tag_FWall.base.base,
&g_profile_Tag_WaterFall.base.base,
&g_profile_E_YK.base.base,
&g_profile_E_YR.base.base,
&g_profile_E_YG.base.base,
&g_profile_E_HZ.base.base,
&g_profile_E_WS.base.base,
&g_profile_E_OC.base.base,
&g_profile_E_OT.base.base,
&g_profile_E_DT.base.base,
&g_profile_E_BG.base.base,
&g_profile_E_OctBg.base.base,
&g_profile_DR.base.base,
&g_profile_L7lowDr.base.base,
&g_profile_L7ODR.base.base,
&g_profile_E_TT.base.base,
&g_profile_E_DK.base.base,
&g_profile_E_VT.base.base,
&g_profile_E_WW.base.base,
&g_profile_E_GI.base.base,
&g_profile_B_BH.base.base,
&g_profile_B_BQ.base.base,
&g_profile_B_GM.base.base,
&g_profile_B_GND.base.base,
&g_profile_B_GO.base.base,
&g_profile_B_OH2.base.base,
&g_profile_B_YO.base.base,
&g_profile_B_YOI.base.base,
&g_profile_B_TN.base.base,
&g_profile_B_GG.base.base,
&g_profile_B_DRE.base.base,
&g_profile_B_MGN.base.base,
&g_profile_E_WAP.base.base,
&g_profile_ITEM.base.base,
&g_profile_Obj_SmallKey.base.base,
&g_profile_Obj_Kantera.base.base,
&g_profile_Obj_LifeContainer.base.base,
&g_profile_Obj_Shield.base.base,
&g_profile_Demo_Item.base.base,
&g_profile_ShopItem.base.base,
&g_profile_Obj_Drop.base.base,
&g_profile_OBJ_RW.base.base,
&g_profile_NBOMB.base.base,
&g_profile_TAG_CSW.base.base,
&g_profile_TAG_QS.base.base,
&g_profile_HOZELDA.base.base,
&g_profile_SWC00.base.base,
&g_profile_KNOB20.base.base,
&g_profile_DBDOOR.base.base,
&g_profile_BOSS_DOOR.base.base,
&g_profile_L1BOSS_DOOR.base.base,
&g_profile_L1MBOSS_DOOR.base.base,
&g_profile_L5BOSS_DOOR.base.base,
&g_profile_DSHUTTER.base.base.base,
&g_profile_SPIRAL_DOOR.base.base,
&g_profile_Tag_ChgRestart.base.base,
&g_profile_Tag_Restart.base.base,
&g_profile_ANDSW.base.base,
&g_profile_ANDSW2.base.base,
&g_profile_MYNA.base.base,
&g_profile_NPC_GND.base.base,
&g_profile_NPC_GRA.base.base,
&g_profile_NPC_GRC.base.base,
&g_profile_NPC_GRD.base.base,
&g_profile_NPC_GRM.base.base,
&g_profile_NPC_GRMC.base.base,
&g_profile_NPC_GRO.base.base,
&g_profile_NPC_GRR.base.base,
&g_profile_NPC_GRS.base.base,
&g_profile_NPC_GRZ.base.base,
&g_profile_NPC_YAMID.base.base,
&g_profile_NPC_YAMIT.base.base,
&g_profile_NPC_YAMIS.base.base,
&g_profile_NPC_BLUENS.base.base,
&g_profile_NPC_KAKASHI.base.base,
&g_profile_NPC_KDK.base.base,
&g_profile_NPC_ARU.base.base,
&g_profile_NPC_BANS.base.base,
&g_profile_NPC_BESU.base.base,
&g_profile_NPC_BOU.base.base,
&g_profile_NPC_BOU_S.base.base,
&g_profile_NPC_CLERKA.base.base,
&g_profile_NPC_CLERKB.base.base,
&g_profile_NPC_CLERKT.base.base,
&g_profile_NPC_WRESTLER.base.base,
&g_profile_Tag_Arena.base.base,
&g_profile_Tag_Instruction.base.base,
&g_profile_NPC_DOC.base.base,
&g_profile_NPC_GWOLF.base.base,
&g_profile_NPC_LEN.base.base,
&g_profile_NPC_LUD.base.base,
&g_profile_NPC_FAIRY_SEIREI.base.base,
&g_profile_NPC_FAIRY.base.base,
&g_profile_NPC_HANJO.base.base,
&g_profile_NPC_HENNA.base.base,
&g_profile_NPC_HENNA0.base.base,
&g_profile_NPC_HOZ.base.base,
&g_profile_NPC_JAGAR.base.base,
&g_profile_NPC_KKRI.base.base,
&g_profile_NPC_KN.base.base,
&g_profile_KN_BULLET.base.base,
&g_profile_NPC_KNJ.base.base,
&g_profile_NPC_KOLIN.base.base,
&g_profile_NPC_KOLINB.base.base,
&g_profile_NPC_KYURY.base.base,
&g_profile_NPC_MARO.base.base,
&g_profile_NPC_MIDP.base.base,
&g_profile_NPC_MOI.base.base,
&g_profile_NPC_RACA.base.base,
&g_profile_NPC_SARU.base.base,
&g_profile_NPC_SEIB.base.base,
&g_profile_NPC_SEIC.base.base,
&g_profile_NPC_SEID.base.base,
&g_profile_NPC_SEIRA.base.base,
&g_profile_NPC_SERA2.base.base,
&g_profile_NPC_SEIREI.base.base,
&g_profile_NPC_SHAMAN.base.base,
&g_profile_NPC_SMARO.base.base,
&g_profile_NPC_SOLA.base.base,
&g_profile_NPC_TARO.base.base,
&g_profile_NPC_PACHI_BESU.base.base,
&g_profile_NPC_PACHI_TARO.base.base,
&g_profile_NPC_PACHI_MARO.base.base,
&g_profile_TAG_PATI.base.base,
&g_profile_NPC_THE.base.base,
&g_profile_NPC_TKJ.base.base,
&g_profile_NPC_TKS.base.base,
&g_profile_NPC_TKC.base.base,
&g_profile_OBJ_TKS.base.base,
&g_profile_NPC_TOBY.base.base,
&g_profile_NPC_URI.base.base,
&g_profile_NPC_YELIA.base.base,
&g_profile_NPC_YKM.base.base,
&g_profile_NPC_YKW.base.base,
&g_profile_NPC_ZANB.base.base,
&g_profile_NPC_ZANT.base.base,
&g_profile_NPC_ZELDA.base.base,
&g_profile_NPC_ZELR.base.base,
&g_profile_NPC_ZELRO.base.base,
&g_profile_OBJ_ZRAFREEZE.base.base,
&g_profile_NPC_ZRC.base.base,
&g_profile_NPC_ZRZ.base.base,
&g_profile_ZRA_MARK.base.base,
&g_profile_MYNA2.base.base,
&g_profile_TAG_MYNA2.base.base,
&g_profile_NPC_CD3.base.base,
&g_profile_Tag_Schedule.base.base,
&g_profile_Tag_Escape.base.base,
&g_profile_NPC_CHAT.base.base,
&g_profile_NPC_SOLDIERa.base.base,
&g_profile_NPC_SOLDIERb.base.base,
&g_profile_PASSER_MNG.base.base,
&g_profile_NPC_PASSER.base.base,
&g_profile_NPC_PASSER2.base.base,
&g_profile_NPC_POST.base.base,
&g_profile_NPC_POUYA.base.base,
&g_profile_FORMATION_MNG.base.base,
&g_profile_NPC_FGUARD.base.base,
&g_profile_GUARD_MNG.base.base,
&g_profile_TAG_GUARD.base.base,
&g_profile_NPC_GUARD.base.base,
&g_profile_NPC_ASH.base.base,
&g_profile_NPC_ASHB.base.base,
&g_profile_NPC_SHAD.base.base,
&g_profile_NPC_RAFREL.base.base,
&g_profile_NPC_MOIR.base.base,
&g_profile_NPC_IMPAL.base.base,
&g_profile_NPC_SHOE.base.base,
&g_profile_NPC_DOORBOY.base.base,
&g_profile_NPC_PRAYER.base.base,
&g_profile_NPC_KASIHANA.base.base,
&g_profile_NPC_KASIKYU.base.base,
&g_profile_NPC_KASIMICH.base.base,
&g_profile_NPC_DRSOL.base.base,
&g_profile_NPC_CHIN.base.base,
&g_profile_NPC_INS.base.base,
&g_profile_NPC_SHOP0.base.base,
&g_profile_NPC_MK.base.base,
&g_profile_NPC_P2.base.base,
&g_profile_KYTAG00.base.base,
&g_profile_KYTAG01.base.base,
&g_profile_KYTAG02.base.base,
&g_profile_KYTAG03.base.base,
&g_profile_KYTAG04.base.base,
&g_profile_KYTAG05.base.base,
&g_profile_KYTAG06.base.base,
&g_profile_KYTAG07.base.base,
&g_profile_KYTAG08.base.base,
&g_profile_KYTAG09.base.base,
&g_profile_KYTAG10.base.base,
&g_profile_KYTAG11.base.base,
&g_profile_KYTAG12.base.base,
&g_profile_KYTAG13.base.base,
&g_profile_KYTAG14.base.base,
&g_profile_KYTAG15.base.base,
&g_profile_KYTAG16.base.base,
&g_profile_KYTAG17.base.base,
&g_profile_Ykgr.base.base,
&g_profile_TALK.base.base,
&g_profile_Obj_Crope.base.base,
&g_profile_Obj_Bombf.base.base,
&g_profile_Obj_BkLeaf.base.base,
&g_profile_Tag_Mhint.base.base,
&g_profile_Tag_Mmsg.base.base,
&g_profile_Tag_Mwait.base.base,
&g_profile_Tag_Mstop.base.base,
&g_profile_Tag_Stream.base.base,
&g_profile_Tag_Sppath.base.base,
&g_profile_Tag_Wljump.base.base,
&g_profile_Tag_TWGate.base.base,
&g_profile_Tag_Lv6Gate.base.base,
&g_profile_Tag_Lv7Gate.base.base,
&g_profile_Tag_Lv8Gate.base.base,
&g_profile_Tag_TheBHint.base.base,
&g_profile_Tag_Assist.base.base,
&g_profile_DEMO00.base.base,
&g_profile_TAG_CAMERA.base.base,
&g_profile_TAG_CHKPOINT.base.base,
&g_profile_TAG_EVENT.base.base,
&g_profile_TAG_EVT.base.base,
&g_profile_TAG_TELOP.base.base,
&g_profile_TAG_HOWL.base.base,
&g_profile_TAG_MSG.base.base,
&g_profile_TAG_LANTERN.base.base,
&g_profile_Tag_Mist.base.base,
&g_profile_DMIDNA.base.base,
&g_profile_KY_THUNDER.base.base,
&g_profile_VRBOX.base.base,
&g_profile_VRBOX2.base.base,
&g_profile_BG.base.base.base,
&g_profile_SET_BG_OBJ.base.base,
&g_profile_BG_OBJ.base.base,
&g_profile_MIRROR.base.base,
&g_profile_MOVIE_PLAYER.base.base,
&g_profile_TITLE.base.base,
&g_profile_FR.base.base,
&g_profile_ECONT.base.base,
&g_profile_MG_ROD.base.base,
&g_profile_E_ARROW.base.base,
&g_profile_BULLET.base.base,
&g_profile_SWHIT0.base.base,
&g_profile_E_TH_BALL.base.base,
&g_profile_TAG_EVTAREA.base.base,
&g_profile_TAG_EVTMSG.base.base,
&g_profile_TAG_KMSG.base.base,
&g_profile_TAG_PUSH.base.base,
&g_profile_E_MK_BO.base.base,
&g_profile_E_MM_MT.base.base,
&g_profile_OBJ_KBOX.base.base,
&g_profile_OBJ_FW.base.base,
&g_profile_B_GOS.base.base,
&g_profile_OBJ_YSTONE.base.base,
&g_profile_MANT.base.base,
&g_profile_CROD.base.base,
&g_profile_OBJ_PLEAF.base.base,
&g_profile_OBJ_KBACKET.base.base,
&g_profile_OBJ_YBAG.base.base,
&g_profile_OBJ_PUMPKIN.base.base,
&g_profile_OBJ_AUTOMATA.base.base,
&g_profile_OBJ_GADGET.base.base,
&g_profile_OBJ_KAGO.base.base,
&g_profile_Obj_Carry.base.base,
&g_profile_Obj_Stone.base.base,
&g_profile_OBJ_HB.base.base,
&g_profile_NPC_INKO.base.base,
&g_profile_BD.base.base,
&g_profile_Obj_Eff.base.base,
&g_profile_WPILLAR.base.base,
&g_profile_WMARK.base.base,
&g_profile_E_BI.base.base,
&g_profile_E_BI_LEAF.base.base,
&g_profile_START_AND_GOAL.base.base,
&g_profile_NPC_DF.base.base,
&g_profile_ARROW.base.base,
&g_profile_PATH_LINE.base.base.base,
&g_profile_TAG_ALLMATO.base.base,
&g_profile_Obj_Timer.base.base,
&g_profile_SCENE_EXIT.base.base.base,
&g_profile_CAMERA.base.base.base,
&g_profile_CAMERA2.base.base.base,
&g_profile_SUSPEND.base.base,
&g_profile_GRASS.base.base,
&g_profile_KYEFF.base.base,
&g_profile_KYEFF2.base.base,
&g_profile_MSG_OBJECT.base.base,
&g_profile_MENUWINDOW.base.base,
&g_profile_TIMER.base.base,
&g_profile_METER2.base.base,
&g_profile_GAMEOVER.base.base,
NULL,
};
#endif