Merge zeldex stuff

This commit is contained in:
lepelog
2023-08-10 10:45:57 +02:00
12 changed files with 3050 additions and 2421 deletions
+2
View File
@@ -9,3 +9,5 @@ tools/mwcc_compiler/*
.ninja_log
objdiff.json
/tools/objdiff.exe
.vscode/c_cpp_properties.json
tools/dtk
+20
View File
@@ -1,3 +1,23 @@
toBeSorted/save_file.cpp:
.text start:0x800099B0 end:0x80009D30
toBeSorted/file_manager.cpp:
.text start:0x80009D30 end:0x80011730
.ctors start:0x804DB648 end:0x804DB64C
toBeSorted/save_manager.cpp:
.text start:0x80011730 end:0x80015310
d/a/d_a_base.cpp:
.text start:0x8002C3A0 end:0x8002DE40
.data start:0x80501544 end:0x805015B8
.sdata start:0x80571920 end:0x80571930
.sbss start:0x80575080 end:0x80575098
d/d_base.cpp:
.text start:0x80050800 end:0x80050A14
.data start:0x80503380 end:0x805033CC
unk_flag_stuff.cpp:
.text start:0x800BEF90 end:0x800BF200
+2408 -2405
View File
File diff suppressed because it is too large Load Diff
+6 -1
View File
@@ -7,7 +7,12 @@ LIBS = [
"host": False,
"objects": [
["Runtime/__init_cpp_exceptions.cpp", False],
["unk_flag_stuff.cpp", True]
["unk_flag_stuff.cpp", True],
["d/d_base.cpp", True],
["d/a/d_a_base.cpp", True],
["toBeSorted/save_file.cpp", True],
["toBeSorted/file_manager.cpp", False],
["toBeSorted/save_manager.cpp", False],
],
},
]
+3 -13
View File
@@ -18,23 +18,13 @@ public:
protected:
/* 80501544 */ // vtable
/* 0x08 */ virtual int create();
/* 0x0C */ // virtual int preCreate(); // uses fBase_c::preCreate()
/* 0x10 */ virtual void postCreate(MAIN_STATE_e state);
/* 0x14 */ // virtual int doDelete(); / uses fBase_c::doDelete
/* 0x18 */ virtual int preDelete();
/* 0x1C */ // virtual void postDelete(MAIN_STATE_e state); // uses fBase_c::postDelete
/* 0x20 */ virtual int execute(); // calls either actorExecute/executeInEvent
/* 0x24 */ virtual int preExecute(); // looks at some actor properties
/* 0x28 */ virtual void postExecute(MAIN_STATE_e state); // not fully understood
/* 0x2C */ // virtual int draw(); // uses fBase_c::draw
/* 0x30 */ // virtual int preDraw(); // uses dBase_c::preDraw
/* 0x34 */ // virtual void postDraw(MAIN_STATE_e state); // uses dBase_c::postDraw
/* 0x38 */ // virtual void deleteReady(); // uses fBase_c::deleteReady
/* 0x3C */ // virtual bool entryFrmHeap(unsigned long size, EGG::Heap *parentHeap); // uses fBase_c::entryFrmHeap
/* 0x40 */ // virtual bool entryFrmHeapNonAdjust(unsigned long size, EGG::Heap *parentHeap); // uses fBase_c::entryFrmHeapNonAdjust
/* 0x44 */ virtual bool createHeap();
/* 0x48 */ virtual ~dAcBase_c();
// Start of dAcBase_c vtable additions (after dBase_c)
/* 0x48 */ virtual ~dAcBase_c();
/* 0x4C */ virtual int actorCreate(); // name is assumed
/* 0x50 */ virtual int actorReCreate(); // name is assumed
/* 0x54 */ virtual int actorExecute(); // name is assumed
@@ -58,8 +48,8 @@ public:
ObjInfoPtr* objInfo );
void* FUN_8002c690();
int initAllocatorWork1Heap(int size, char* name);
int initAllocator(int size, char* name, EGG::Heap* heap);
int initAllocatorWork1Heap(int size, char* name, int align);
int initAllocator(int size, char* name, EGG::Heap* heap, int align);
bool addActorToRoom(s32 roomId);
void setBit_field_0xE8(s32);
u32 itemDroppingAndGivingRelated(Vec3f* spawnPos, int subtype);
+2 -2
View File
@@ -120,11 +120,11 @@ public:
// 0x80009AB0
s16* getPlayerName(); // using Shift JIS i assume
// 0x80009AC0
void setAreaT1();
void setAreaT1(char* name);
// 0x80009BE0
s8* getAreaT1();
// 0x80009BF0
void setAreaT2();
void setAreaT2(char* name);
// lbl_80009D10
s8* getAreaT2();
// lbl_80009D20
+293
View File
@@ -0,0 +1,293 @@
#include <d/a/d_a_base.h>
// .sdata
/* 0x80571920 */ u32 dAcBase_c::s_Create_RoomId = -1;
/* 0x80571924 */ u32 dAcBase_c::s_Create_Params2 = -1;
/* 0x80571928 */ u16 dAcBase_c::s_Create_UnkFlags = -1;
/* 0x8057192A */ u8 dAcBase_c::s_Create_ViewClipIdx = -1;
// .sbss
/* 0x80575080 */ Vec3f* dAcBase_c::s_Create_Position;
/* 0x80575084 */ Vec3s* dAcBase_c::s_Create_Rotation;
/* 0x80575088 */ Vec3f* dAcBase_c::s_Create_Scale;
/* 0x8057508C */ dAcBase_c* dAcBase_c::s_Create_Parent;
/* 0x80575090 */ ObjInfoPtr* dAcBase_c::s_Create_ObjInfo;
/* 0x80575094 */ u8 dAcBase_c::s_Create_Subtype;
/* 8002c3a0 */
bool dAcBase_c::createHeap() {
return true;
}
/* 8002c3b0 */
dAcBase_c::dAcBase_c() {}
/* 8002c530 */ // dont know how this got here
dBase_c::~dBase_c() {}
/* 8002c590 */
dAcBase_c::~dAcBase_c() {}
/* 8002c650 */
void dAcBase_c::setTempCreateParams( \
Vec3f* pos, Vec3s* rot, Vec3f* scale, \
s32 roomId, u32 params2, dAcBase_c* parent, \
u8 subtype, s16 unkFlag, u8 viewClipIdx,\
ObjInfoPtr* objInfo )
{
s_Create_Position = pos;
s_Create_Rotation = rot;
s_Create_Scale = scale;
s_Create_RoomId = roomId;
s_Create_Params2 = params2;
s_Create_Parent = parent;
s_Create_Subtype = subtype;
s_Create_UnkFlags = unkFlag;
s_Create_ViewClipIdx = viewClipIdx;
s_Create_ObjInfo = objInfo;
}
/* 8002c690 */
void* dAcBase_c::FUN_8002c690() {}
/* 8002c710 */
int dAcBase_c::initAllocatorWork1Heap(int size, char* name, int align) {
initAllocator(size, name, dHeap::work1Heap, align);
}
extern "C" int fn_802EE510(mAllocator*, int size, EGG::Heap* heap, char* name, int align, int unk);
/* 8002c720 */
int dAcBase_c::initAllocator(int size, char* name, EGG::Heap* heap, int align) {
if (fn_802EE510(&mHeapAllocator, size, heap, name, 0x20, 0) == 0){
return 0;
}
soundRelated = FUN_8002c690();
int success = createHeap();
mHeapAllocator.adjustFrmHeapRestoreCurrent();
return success;
}
/* 8002c7b0 */
bool dAcBase_c::addActorToRoom(s32 roomId) {}
/* 8002c840 */
void dAcBase_c::setBit_field_0xE8(s32) {}
/* 8002c860 */ // virt func, initiates the allocator
int dAcBase_c::actorCreate() {}
/* 8002c870 */ // virt func
int dAcBase_c::actorReCreate() {}
/* 8002c880 */
int dAcBase_c::create() {}
/* 8002c8f0 */
void dAcBase_c::postCreate(fBase_c::MAIN_STATE_e state) {}
/* 8002c940 */
int dAcBase_c::preDelete() {}
/* 8002cb10 */
int dAcBase_c::preExecute() {}
/* 8002cc10 */
int dAcBase_c::execute() {}
/* 8002cca0 */
int dAcBase_c::actorExecute() {}
/* 8002ccb0 */
int dAcBase_c::actorExecuteInEvent() {}
/* 8002ccc0 */
void dAcBase_c::postExecute(fBase_c::MAIN_STATE_e state) {}
/* 8002ce90 */
void dAcBase_c::unkVirtFunc_0x5C() { return; }
/* 8002cea0 */
void dAcBase_c::unkVirtFunc_0x60() { return; }
/* 8002ceb0 */
bool dAcBase_c::restorePosRotFromCopy() {}
/* 8002cf10 */
u32 dAcBase_c::itemDroppingAndGivingRelated(Vec3f* spawnPos, int subtype) {}
/* 8002cf90 */
void dAcBase_c::fillUpperParams2Byte() {}
/* 8002cfa0 */
u32 dAcBase_c::getParams2_ignoreLower() {}
/* 8002cfb0 */
void dAcBase_c::setParams2Upper_ignoreLower(u32 val) {}
/* 8002cfc0 */
u8 dAcBase_c::getParams2UpperByte() {}
/* 8002cfd0 */
void dAcBase_c::setParams2UpperByte(u32 val) {}
/* 8002cff0 */
u32 dAcBase_c::buildParams2(u32 lower, u8 upper) {}
/* 8002d010 */
u32 dAcBase_c::getParams2Lower() {}
/* 8002d020 */
dAcBase_c* dAcBase_c::findActor(char* objName, dAcBase_c* parent) {}
/* 8002d0a0 */ // searches for actor based on groupType
dAcBase_c* dAcBase_c::searchActor(dAcBase_c& optionalParent) {}
/* 8002d130 */
void dAcBase_c::forEachActor(void*, dAcBase_c&) {}
/* 8002d190 */
void dAcBase_c::getXZAngleToPlayer(s16&, dAcBase_c&) {}
/* 8002d1d0 */
bool dAcBase_c::getDistanceToActor(dAcBase_c& actor, f32 distThresh, f32* outDist) {}
/* 8002d290 */
bool dAcBase_c::getDistanceAndAngleToActor( \
dAcBase_c& actor, f32 distThresh, s16 yAngle, s16 xAngle, \
f32* outDist, s16* outDiffAngleY, s16* outDiffAngleX)
{
}
/* 8002d3e0 */
bool dAcBase_c::isWithinPlayerRadius(f32 radius) {}
/* 8002d440 */
bool dAcBase_c::getDistanceAndAngleToPlayer( \
f32 distThresh, s16 yAngle, s16 xAngle, \
f32* outDist, s16* outDiffAngleY, s16* outDiffAngleX)
{
// return getDistanceAndAngleToActor(PLAYER, distThresh, yAngle, xAngle, outDist, outDiffAngleY, outDiffAngleX);
}
/* 8002d470 */
f32 dAcBase_c::getDistToPlayer() {}
/* 8002d4a0 */
f32 dAcBase_c::getSquareDistToPlayer() {}
/* 8002d4b0 */
void dAcBase_c::updateRoomId(f32 yOffs) {}
/* 8002d540 */ // currently named Global__isRoomFlags_6not0
bool dAcBase_c::isRoomFlags_0x6_Set() {}
/* 8002d590 */
void dAcBase_c::FUN_8002d590() {}
/* 8002d5b0 */
void dAcBase_c::FUN_8002d5b0() {}
/* 8002d5d0*/
void dAcBase_c::playSound() {}
/* 8002d600 */
void dAcBase_c::FUN_8002d600() {}
/* 8002d630 */
void dAcBase_c::FUN_8002d630() {}
/* 8002d6d0 */
void dAcBase_c::FUN_8002d6d0() {}
/* 8002d710 */ // currently named ActorBase__playSoundEffect1
void dAcBase_c::playSoundEffect1() {}
/* 8002d740 */
void dAcBase_c::FUN_8002d740() {}
/* 8002d770 */
void dAcBase_c::FUN_8002d770() {}
/* 8002d7a0 */
void dAcBase_c::FUN_8002d7a0() {}
/* 8002d7d0 */
void dAcBase_c::FUN_8002d7d0() {}
/* 8002d7f0 */
void dAcBase_c::FUN_8002d7f0() {}
/* 8002d810 */
void dAcBase_c::FUN_8002d810() {}
/* 8002d830 */
void dAcBase_c::FUN_8002d830() {}
/* 8002d860 */
void dAcBase_c::FUN_8002d860() {}
/* 8002d880 */
void dAcBase_c::FUN_8002d880() {}
/* 8002d890 */ // first param is not dAcBase_c
void dAcBase_c::FUN_8002d890() {}
/* 8002d920 */ // current name is Global__setActorRef
void dAcBase_c::setActorRef(dBase_c&) {}
/* 8002d930 */ // May not be only purpose
void dAcBase_c::setUnkFlag() {}
/* 8002d940 */
void dAcBase_c::FUN_8002d940() {}
/* 8002d960 */
void dAcBase_c::FUN_8002d960() {}
/* 8002d980 */ // spawns GroupType2 (ACTOR)
dAcBase_c dAcBase_c::createActor( \
ProfileName actorId, u32 params1, \
Vec3f* pos, Vec3s* rot, Vec3f* scale, \
u32 params2, s32 roomId, dBase_c* ref) {}
/* 8002da80 */ // spawns GroupType3 (TG_FORCE_LINE ? )
dAcBase_c dAcBase_c::createActorUnkGroup3( \
ProfileName actorId, u32 params1, \
Vec3f* pos, Vec3s* rot, Vec3f* scale, \
u32 params2, s32 roomId, dBase_c* ref) {}
/* 8002db80 */
void* dAcBase_c::getCurrentEventActor() {}
/* 8002db90 */
void dAcBase_c::unkVirtFunc_0x6C() {}
/* 8002dba0 */
void dAcBase_c::doInteraction(s32) {}
/* 8002dc20 */
void dAcBase_c::FUN_8002dc20(s16*, s16*) {}
/* 8002dc50 */
void dAcBase_c::incrementKillCounter() {}
/* 8002dcd0 */
void dAcBase_c::FUN_8002dcd0() {}
/* 8002dd10 */
void dAcBase_c::FUN_8002dd10() {}
/* 8002dd50 */
void dAcBase_c::FUN_8002dd50() {}
/* 8002dd90 */
void dAcBase_c::FUN_8002dd90() {}
/* 8002ddd0 */
void dAcBase_c::FUN_8002ddd0() {}
/* 8002de30 */
void dAcBase_c::FUN_8002de30() {}
+81
View File
@@ -0,0 +1,81 @@
#include <d/d_base.h>
extern "C" fProfile::fBaseProfile_c** DAT_ACTOR_ALLOCATION_FUNCTIONS;
extern "C" /* 805750c0 */ u32 ACTOR_SHOULD_UPDATE_FLAGS;
extern "C" /* 805750c4 */ u32 ACTOR_SHOULD_DRAW_FLAGS;
extern "C" /* 805750c0 */ u32 ACTOR_SHOULD_UNK_FLAGS;
dBase_c::dBase_c() : fBase_c() {
baseProperties = DAT_ACTOR_ALLOCATION_FUNCTIONS[mProfName]->mBaseProperties;
}
void dBase_c::postDraw(fBase_c::MAIN_STATE_e status) {
if (status != CANCELED) {
baseProperties |= 0x100;
} else {
baseProperties &= ~0x100;
}
fBase_c::postDraw(status);
}
int dBase_c::preExecute() {
if (fBase_c::preExecute() == 0) {
return NOT_READY;
}
if (ACTOR_SHOULD_UPDATE_FLAGS && !isProcControlFlag(ACTOR_SHOULD_UPDATE_FLAGS)) {
return NOT_READY;
}
return SUCCEEDED;
}
void dBase_c::postExecute(fBase_c::MAIN_STATE_e status) {
if (status != CANCELED) {
baseProperties |= 0x4;
} else {
baseProperties &= ~0x4;
}
fBase_c::postExecute(status);
}
int dBase_c::preDraw() {
if (fBase_c::preDraw() == NOT_READY) {
return NOT_READY;
}
if (ACTOR_SHOULD_DRAW_FLAGS && !isProcControlFlag(ACTOR_SHOULD_DRAW_FLAGS)) {
return NOT_READY;
}
return SUCCEEDED;
}
void dBase_c::resetFlags() {
ACTOR_SHOULD_UPDATE_FLAGS = 0;
ACTOR_SHOULD_DRAW_FLAGS = 0;
ACTOR_SHOULD_UNK_FLAGS = 0;
}
bool dBase_c::isActorPlayer(dBase_c& base) {
return base.mProfName == fProfile::PLAYER;
}
int dBase_c::loadAsyncCallback() {
return 2;
}
void dBase_c::unloadCallback() {
return;
}
void dBase_c::initLoader() {
fBase_c::sLoadAsyncCallback = loadAsyncCallback;
fBase_c::sUnloadCallback = unloadCallback;
}
dBase_c* dBase_c::createBase(ProfileName profName, dBase_c* parent, unsigned long param, u8 grouptype) {
return static_cast<dBase_c*>(fBase_c::createChild(profName, parent, param, grouptype));
}
dBase_c* dBase_c::createRoot(ProfileName profName, unsigned long param, u8 groupType) {
return static_cast<dBase_c*>(fBase_c::createRoot(profName, param, groupType));
}
// dBase_c::~dBase_c() {}
+145
View File
@@ -0,0 +1,145 @@
#include <f/f_base.h>
/*
.text File Range:
[802e12f0 - 802e2680]
*/
// This file will be ported from https://github.com/NSMBW-Community/NSMBW-Decomp/blob/master/source/dol/framework/f_base.cpp
fBaseID_e fBase_c::m_rootUniqueID = FIRST_ID;
ProfileName fBase_c::m_tmpCtProfName;
u32 fBase_c::m_tmpCtParam;
u8 fBase_c::m_tmpCtGroupType;
fTrNdBa_c *fBase_c::m_tmpCtConnectParent;
// 0x80575bb0: sLoadAsyncCallback__7fBase_c
// 0x80575bb4: sUnloadCallback__7fBase_c
int (*fBase_c::sLoadAsyncCallback)();
void (*fBase_c::sUnloadCallback)();
/* 802e12f0 */
fBase_c::fBase_c() : mMng(this) {}
/* 802e1480 */
fBase_c::~fBase_c() {}
/* 802e1500 */
int fBase_c::commonPack(int (fBase_c::*doFunc)(), int (fBase_c::*preFunc)(), void (fBase_c::*postFunc)(MAIN_STATE_e)) {}
/* 802e15c0 */
int fBase_c::create() {}
/* 802e15d0 */
int fBase_c::preCreate() {}
/* 802e15e0 */
void fBase_c::postCreate(MAIN_STATE_e state) {}
/* 802e1670 */
int fBase_c::doDelete() {}
/* 802e1680 */
int fBase_c::createPack() {}
/* 802e1730 */
int fBase_c::preDelete() {}
/* 802e17a0 */
void fBase_c::postDelete(MAIN_STATE_e state) {}
/* 802e15d0 */
int fBase_c::deletePack() {}
/* 802e1910 */
int fBase_c::execute() {}
/* 802e1920 */
int fBase_c::preExecute() {}
/* 802e1950 */
void fBase_c::postExecute(MAIN_STATE_e state) {}
/* 802e1960 */
int fBase_c::executePack() {}
/* 802e1a90 */
int fBase_c::draw() {}
/* 802e1aa0 */
int fBase_c::preDraw() {}
/* 802e1ad0 */
void fBase_c::postDraw(MAIN_STATE_e state) {}
/* 802e1ae0 */
int fBase_c::drawPack() {}
/* 802e1b90 */
void fBase_c::deleteReady() {}
/* 802e1ba0 */
int fBase_c::connectProc() {}
/* 802e1e00 */
void fBase_c::deleteRequest() {}
/* 802e1e80 */
// addNewActorToDrawList
/* 802e1f10 */
// getFirstActor
/* 802e1f30 */
// getNextActor
/* 802e1f90 */
fBase_c* fBase_c::getConnectParent() const {}
/* 802e1fb0 */
fBase_c* fBase_c::getConnectChild() const {}
/* 802e1fd0 */
fBase_c* fBase_c::getConnectBrNext() const {}
/* 802e1ff0 */
// FUN_802e1ff0
/* 802e2090 */
// addActorToRoom
/* 802e20e0 */
bool fBase_c::entryFrmHeap(unsigned long size, EGG::Heap *parentHeap) {}
/* 802e22e0 */
bool fBase_c::entryFrmHeapNonAdjust(unsigned long size, EGG::Heap *parentHeap) {}
/* 802e23a0 */
bool fBase_c::createHeap() {}
/* 802e23b0 */
void* fBase_c::operator new(size_t) {}
/* 802e2410 */
void fBase_c::operator delete(void*) {}
/* 802e2420 */
void fBase_c::runCreate() {}
/* 802e24a0 */
fBase_c* fBase_c::getChildProcessCreateState() const {}
/* 802e2510 */
bool fBase_c::checkChildProcessCreateState() const {}
/* 802e2540 */
void fBase_c::setTmpCtData(ProfileName profName, fTrNdBa_c *connectParent, unsigned long param, u8 groupType) {}
/* 802e2560 */
fBase_c* fBase_c::fBase_make(ProfileName profName, fTrNdBa_c *connectParent, unsigned long param, u8 groupType) {}
/* 802e2600 */
fBase_c* fBase_c::createChild(ProfileName profName, fBase_c *parent, unsigned long param, u8 groupType) {}
/* 802e2640 */
fBase_c* fBase_c::createRoot(ProfileName profName, unsigned long param, u8 groupType) {}
View File
+90
View File
@@ -0,0 +1,90 @@
#include <toBeSorted/save_file.h>
// 0x800099b0 getStoryFlags0__8SaveFileFv
u16* SaveFile::getStoryFlags0() {
return story_flags;
}
// 0x800099c0 getStoryFlags1__8SaveFileFv
u16* SaveFile::getStoryFlags1() {
return story_flags;
}
// 0x800099d0 getItemFlags0__8SaveFileFv
u16* SaveFile::getItemFlags0() {
return item_flags;
}
// 0x800099e0 getItemFlags1__8SaveFileFv
u16* SaveFile::getItemFlags1() {
return item_flags;
}
// 0x800099F0 getDungeonFlags0__8SaveFileFv
u16* SaveFile::getDungeonFlags0() {
return dungeon_flags[0];
}
// 0x80009A00 getDungeonFlags1__8SaveFileFv
u16* SaveFile::getDungeonFlags1() {
return dungeon_flags[0];
}
// 0x80009A10 getSceneFlags0__8SaveFileFv
u16* SaveFile::getSceneFlags0() {
return scene_flags;
}
// 0x80009A20 getSceneFlags1__8SaveFileFv
u16* SaveFile::getSceneFlags1() {
return scene_flags;
}
// 0x80009A30 getTboxFlags0__8SaveFileFv
u16* SaveFile::getTboxFlags0() {
return tbox_flags;
}
// 0x80009A40 getTboxFlags1__8SaveFileFv
u16* SaveFile::getTboxFlags1() {
return tbox_flags;
}
// 0x80009A50 getTempFlags0__8SaveFileFv
u16* SaveFile::getTempFlags0() {
return temp_flags;
}
// 0x80009A60 getTempFlags1__8SaveFileFv
u16* SaveFile::getTempFlags1() {
return temp_flags;
}
// 0x80009A70 getZoneFlags0__8SaveFileFv
u16* SaveFile::getZoneFlags0() {
return zone_flags;
}
// 0x80009A80 getZoneFlags1__8SaveFileFv
u16* SaveFile::getZoneFlags1() {
return zone_flags;
}
// 0x80009A90 getUnkFlags0__8SaveFileFv
u16* SaveFile::getUnkFlags0() {
return unk_flags;
}
// 0x80009AA0 getUnkFlags1__8SaveFileFv
u16* SaveFile::getUnkFlags1() {
return unk_flags;
}
// 0x80009AB0 getPlayerName__8SaveFileFv
s16* SaveFile::getPlayerName() {
return player_name;
}
// 0x80009AC0 setAreaT1__8SaveFileFPc
void SaveFile::setAreaT1(char* name) {
}
// 0x80009BE0 getAreaT1__8SaveFileFv
s8* SaveFile::getAreaT1() {
return area_t1;
}
// 0x80009BF0 setAreaT2__8SaveFileFPc
void SaveFile::setAreaT2(char* name) {
}
// 0x80009D10 getAreaT2__8SaveFileFv
s8* SaveFile::getAreaT2() {
return area_t2;
}
// 0x80009D20 getAreaT3__8SaveFileFv
s8* SaveFile::getAreaT3() {
return area_t3;
}
View File