mirror of
https://github.com/zeldaret/ss
synced 2026-07-07 13:33:21 -04:00
dSys: create() and execute() to 99% each
This commit is contained in:
+14
-14
@@ -2822,10 +2822,10 @@ parseStageBzs__FiPCv = .text:0x80064070; // type:function size:0x7C
|
||||
parseRoomBzs__FiPCv = .text:0x800640F0; // type:function size:0x70
|
||||
parseRoomReactivateBzs__FiPCv = .text:0x80064160; // type:function size:0x70
|
||||
parseRoomActivateBzs__FiPCv = .text:0x800641D0; // type:function size:0x7C
|
||||
dSys_c__initAudioMgr = .text:0x80064250; // type:function size:0xB0
|
||||
dSys_c__beginRender = .text:0x80064300; // type:function size:0x38
|
||||
dSys_c__endRender = .text:0x80064340; // type:function size:0x18
|
||||
dSys_c__beginFrame = .text:0x80064360; // type:function size:0x68
|
||||
initAudioMgr__6dSys_cFPQ23EGG4Heap = .text:0x80064250; // type:function size:0xB0
|
||||
beginRender__6dSys_cFv = .text:0x80064300; // type:function size:0x38
|
||||
endRender__6dSys_cFv = .text:0x80064340; // type:function size:0x18
|
||||
beginFrame__6dSys_cFv = .text:0x80064360; // type:function size:0x68
|
||||
EGG__ConfigurationData__onBeginFrame = .text:0x800643D0; // type:function size:0x4
|
||||
dSys_c__endFrame = .text:0x800643E0; // type:function size:0x48
|
||||
EGG__ConfigurationData__onEndFrame = .text:0x80064430; // type:function size:0x4
|
||||
@@ -2839,15 +2839,15 @@ setPosParam__Q23EGG14CoreControllerFff = .text:0x80064920; // type:function size
|
||||
EGG__TSystem__initialize = .text:0x80064930; // type:function size:0x1F4
|
||||
execute__6dSys_cFv = .text:0x80064B30; // type:function size:0x268
|
||||
fixHeaps__7dSystemFv = .text:0x80064DA0; // type:function size:0xB8
|
||||
dSystem__init = .text:0x80064E60; // type:function size:0x34
|
||||
__sinit_\d_sys_cpp = .text:0x80064E60; // type:function size:0x34
|
||||
EGG__ConfigurationData__initRenderMode = .text:0x80064EA0; // type:function size:0x4
|
||||
getVideo = .text:0x80064EB0; // type:function size:0x8
|
||||
getSystemHeap = .text:0x80064EC0; // type:function size:0x8
|
||||
getDisplay = .text:0x80064ED0; // type:function size:0x8
|
||||
getXfbManager = .text:0x80064EE0; // type:function size:0x8
|
||||
getPerfView = .text:0x80064EF0; // type:function size:0x14
|
||||
getSceneMgr = .text:0x80064F10; // type:function size:0x8
|
||||
getAudioMgr = .text:0x80064F20; // type:function size:0x8
|
||||
getVideo__Q23EGG123TSystem<Q23EGG5Video,Q23EGG7Display,Q23EGG10XfbManager,Q23EGG14SimpleAudioMgr,Q23EGG12SceneManager,Q23EGG15PerformanceView>Fv = .text:0x80064EB0; // type:function size:0x8
|
||||
getSysHeap__Q23EGG123TSystem<Q23EGG5Video,Q23EGG7Display,Q23EGG10XfbManager,Q23EGG14SimpleAudioMgr,Q23EGG12SceneManager,Q23EGG15PerformanceView>Fv = .text:0x80064EC0; // type:function size:0x8
|
||||
getDisplay__Q23EGG123TSystem<Q23EGG5Video,Q23EGG7Display,Q23EGG10XfbManager,Q23EGG14SimpleAudioMgr,Q23EGG12SceneManager,Q23EGG15PerformanceView>Fv = .text:0x80064ED0; // type:function size:0x8
|
||||
getXfbMgr__Q23EGG123TSystem<Q23EGG5Video,Q23EGG7Display,Q23EGG10XfbManager,Q23EGG14SimpleAudioMgr,Q23EGG12SceneManager,Q23EGG15PerformanceView>Fv = .text:0x80064EE0; // type:function size:0x8
|
||||
getPerfView__Q23EGG123TSystem<Q23EGG5Video,Q23EGG7Display,Q23EGG10XfbManager,Q23EGG14SimpleAudioMgr,Q23EGG12SceneManager,Q23EGG15PerformanceView>Fv = .text:0x80064EF0; // type:function size:0x14
|
||||
getSceneMgr__Q23EGG123TSystem<Q23EGG5Video,Q23EGG7Display,Q23EGG10XfbManager,Q23EGG14SimpleAudioMgr,Q23EGG12SceneManager,Q23EGG15PerformanceView>Fv = .text:0x80064F10; // type:function size:0x8
|
||||
getAudioMgr__Q23EGG123TSystem<Q23EGG5Video,Q23EGG7Display,Q23EGG10XfbManager,Q23EGG14SimpleAudioMgr,Q23EGG12SceneManager,Q23EGG15PerformanceView>Fv = .text:0x80064F20; // type:function size:0x8
|
||||
fn_80064F30 = .text:0x80064F30; // type:function size:0x24
|
||||
fn_80064F60 = .text:0x80064F60; // type:function size:0x2C
|
||||
fn_80064F90 = .text:0x80064F90; // type:function size:0x30
|
||||
@@ -17224,7 +17224,7 @@ my_vprintf__4sLibFPCcP16__va_list_struct = .text:0x802DEF90; // type:function si
|
||||
printf__4sLibFPCce = .text:0x802DEFE0; // type:function size:0x80
|
||||
OSReport = .text:0x802DF060; // type:function size:0x80 scope:global
|
||||
OSVReport = .text:0x802DF0E0; // type:function size:0x4 scope:global
|
||||
cCounter_c__clear = .text:0x802DF0F0; // type:function size:0x10
|
||||
clear__10cCounter_cFv = .text:0x802DF0F0; // type:function size:0x10
|
||||
__dt__24DynamicModuleControlBaseFv = .text:0x802DF100; // type:function size:0xA0
|
||||
__ct__24DynamicModuleControlBaseFv = .text:0x802DF1A0; // type:function size:0x48
|
||||
link__24DynamicModuleControlBaseFv = .text:0x802DF1F0; // type:function size:0x94
|
||||
@@ -17283,7 +17283,7 @@ cM__rad2s = .text:0x802E0A50; // type:function size:0x5C
|
||||
cM__U_GetAtanTable = .text:0x802E0AB0; // type:function size:0x34
|
||||
atan2s__2cMFff = .text:0x802E0AF0; // type:function size:0x1BC
|
||||
atan2f__2cMFff = .text:0x802E0CB0; // type:function size:0x48
|
||||
cM__initRnd = .text:0x802E0D00; // type:function size:0x8
|
||||
initRnd__2cMFl = .text:0x802E0D00; // type:function size:0x8
|
||||
rnd__2cMFv = .text:0x802E0D10; // type:function size:0x8
|
||||
rndInt__2cMFi = .text:0x802E0D20; // type:function size:0x58
|
||||
rndF__2cMFf = .text:0x802E0D80; // type:function size:0x38
|
||||
|
||||
@@ -9,8 +9,19 @@ public:
|
||||
return m_gameFrame;
|
||||
}
|
||||
|
||||
static void IncrementGameFrame() {
|
||||
m_gameFrame++;
|
||||
}
|
||||
|
||||
static void IncrementUnkCounter() {
|
||||
m_unkCounter++;
|
||||
}
|
||||
|
||||
static void clear();
|
||||
|
||||
private:
|
||||
static s32 m_gameFrame;
|
||||
static s32 m_unkCounter;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ public:
|
||||
|
||||
typedef void (*MenuInitCallback)();
|
||||
|
||||
static void CreateInstance();
|
||||
static void CreateInstance(EGG::Heap *);
|
||||
static Manage_c *GetInstance();
|
||||
|
||||
Manage_c(EGG::Heap *);
|
||||
|
||||
+10
-10
@@ -3,20 +3,20 @@
|
||||
|
||||
#include "egg/core/eggExpHeap.h"
|
||||
|
||||
class dHeap {
|
||||
class dHeap : public EGG::Heap {
|
||||
public:
|
||||
EGG::ExpHeap *heap;
|
||||
|
||||
public:
|
||||
static dHeap work1Heap;
|
||||
static dHeap work2Heap;
|
||||
static dHeap workExHeap;
|
||||
static dHeap layoutHeap;
|
||||
static dHeap layoutExHeap;
|
||||
static dHeap layoutEx2Heap;
|
||||
static dHeap layoutResHeap;
|
||||
static dHeap fontHeap;
|
||||
static dHeap HBMHeap;
|
||||
static dHeap *work1Heap;
|
||||
static dHeap *work2Heap;
|
||||
static dHeap *workExHeap;
|
||||
static dHeap *layoutHeap;
|
||||
static dHeap *layoutExHeap;
|
||||
static dHeap *layoutEx2Heap;
|
||||
static dHeap *layoutResHeap;
|
||||
static dHeap *fontHeap;
|
||||
static dHeap *HBMHeap;
|
||||
|
||||
public:
|
||||
EGG::ExpHeap *init(const char *name, size_t size, EGG::Heap *parent);
|
||||
|
||||
@@ -19,6 +19,10 @@ public:
|
||||
static dBase_c *staticExecute();
|
||||
static void setRootActor(fProfile::PROFILE_NAME_e rootActor, u32 params, s32 fadeInType, s32 fadeOutType);
|
||||
|
||||
static dFader_c *getFader() {
|
||||
return &sFader;
|
||||
}
|
||||
|
||||
protected:
|
||||
static dFader_c sFader;
|
||||
};
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
#ifndef D_STATE_H
|
||||
#define D_STATE_H
|
||||
|
||||
namespace dState {
|
||||
|
||||
void fn_80062E40();
|
||||
void fn_80062E50();
|
||||
void fn_80062EB0();
|
||||
bool fn_80062EC0();
|
||||
|
||||
}
|
||||
|
||||
#endif // D_STATE_H
|
||||
@@ -3,10 +3,20 @@
|
||||
|
||||
#include "common.h"
|
||||
#include "egg/core/eggHeap.h"
|
||||
#include "egg/core/eggSystem.h"
|
||||
#include "nw4r/ut/ut_Color.h"
|
||||
|
||||
class dSndMgr_c;
|
||||
|
||||
class dSys_c {
|
||||
public:
|
||||
static dSndMgr_c *initAudioMgr(EGG::Heap *heap);
|
||||
|
||||
static void beginRender();
|
||||
static void endRender();
|
||||
static void beginFrame();
|
||||
static void endFrame();
|
||||
|
||||
static void setBlack(bool);
|
||||
/* Frame rate values: 1 - 60fps, 2 - 30fps */
|
||||
static void setFrameRate(u8);
|
||||
@@ -17,12 +27,15 @@ public:
|
||||
static void create();
|
||||
static void execute();
|
||||
|
||||
static EGG::BaseSystem *ms_configuration_p;
|
||||
static EGG::Heap *ms_RootHeapMem1;
|
||||
static EGG::Heap *ms_RootHeapMem2;
|
||||
};
|
||||
|
||||
namespace dSystem {
|
||||
|
||||
void fixHeaps();
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
#ifndef D_SYS_INIT_H
|
||||
#define D_SYS_INIT_H
|
||||
|
||||
#include "s/s_Phase.hpp"
|
||||
|
||||
namespace dSystem {
|
||||
|
||||
extern sPhase_c myDylinkInitPhase;
|
||||
|
||||
}
|
||||
|
||||
#endif // D_SYS_INIT_H
|
||||
@@ -80,6 +80,8 @@ public:
|
||||
|
||||
s32 getField_0xDE0() const;
|
||||
bool getField_0xDFC() const;
|
||||
void fn_80125E20();
|
||||
void fn_80125EF0();
|
||||
void fn_80152F10();
|
||||
bool fn_80152F50() const;
|
||||
bool fn_80152F60() const;
|
||||
|
||||
+115
-33
@@ -2,64 +2,146 @@
|
||||
#define EGG_SYSTEM_H
|
||||
|
||||
#include "common.h"
|
||||
#include "egg/core/eggGraphicsFifo.h"
|
||||
#include "egg/core/eggHeap.h"
|
||||
|
||||
#include "rvl/SC.h"
|
||||
|
||||
// Ported from https://github.com/snailspeed3/mkw/blob/master/lib/egg/core/eggSystem.hpp
|
||||
|
||||
namespace EGG {
|
||||
|
||||
class Display;
|
||||
class XfbManager;
|
||||
class Heap;
|
||||
class PerformanceView;
|
||||
class SceneManager;
|
||||
class SimpleAudioMgr;
|
||||
class Thread;
|
||||
class Video;
|
||||
class XfbManager;
|
||||
|
||||
class ConfigurationData {
|
||||
class BaseSystem {
|
||||
public:
|
||||
// vtable at 0x0
|
||||
static BaseSystem *sSystem;
|
||||
|
||||
public:
|
||||
inline BaseSystem() : mSysHeapSize(0x97000), mGraphicsFifoSize(0x80000), mRenderMode(nullptr) {}
|
||||
|
||||
/* vt 0x08 */ virtual Video *getVideo() = 0;
|
||||
/* vt 0x0C */ virtual Heap *getSystemHeap() = 0;
|
||||
/* vt 0x0C */ virtual Heap *getSysHeap() = 0;
|
||||
/* vt 0x10 */ virtual Display *getDisplay() = 0;
|
||||
/* vt 0x14 */ virtual XfbManager *getXfbMgr() = 0;
|
||||
/* vt 0x18 */ virtual void getPerfView() = 0;
|
||||
/* vt 0x1C */ virtual void getScnMgr() = 0;
|
||||
/* vt 0x20 */ virtual void getAudioMgr() = 0;
|
||||
/* vt 0x18 */ virtual PerformanceView *getPerfView() = 0;
|
||||
/* vt 0x1C */ virtual SceneManager *getSceneMgr() = 0;
|
||||
/* vt 0x20 */ virtual SimpleAudioMgr *getAudioMgr() = 0;
|
||||
/* vt 0x24 */ virtual void onBeginFrame();
|
||||
/* vt 0x28 */ virtual void onEndFrame();
|
||||
/* vt 0x2C */ virtual void initRenderMode();
|
||||
/* vt 0x30 */ virtual void initMemory();
|
||||
/* vt 0x34 */ virtual void run();
|
||||
/* vt 0x38 */ virtual void initialize() = 0;
|
||||
|
||||
public:
|
||||
/* 0x04 */ u32 mRoot1HeapStart;
|
||||
/* 0x08 */ u32 mRoot1HeapEnd;
|
||||
/* 0x0C */ u32 mRoot2HeapStart;
|
||||
/* 0x10 */ u32 mRoot2HeapEnd;
|
||||
/* 0x14 */ u32 mMemSize;
|
||||
/* 0x04 */ void *mMEM1ArenaLo;
|
||||
/* 0x08 */ void *mMEM1ArenaHi;
|
||||
/* 0x0C */ void *mMEM2ArenaLo;
|
||||
/* 0x10 */ void *mMEM2ArenaHi;
|
||||
/* 0x14 */ u32 mMemorySize;
|
||||
/* 0x18 */ Heap *mRootHeapMem1;
|
||||
/* 0x1C */ Heap *mRootHeapMem2;
|
||||
/* 0x20 */ Heap *mRootHeapDebug;
|
||||
/* 0x24 */ Heap *mSystemHeap;
|
||||
/* 0x28 */ Thread *mSystemThread;
|
||||
/* 0x2C */ u32 field_0x2C;
|
||||
/* 0x30 */ u32 mSystemHeapStart;
|
||||
/* 0x34 */ u32 mSystemHeapSize;
|
||||
/* 0x24 */ Heap *mSysHeap;
|
||||
/* 0x28 */ Thread *mThread;
|
||||
/* 0x2C */ void *_2c;
|
||||
/* 0x30 */ void *_30;
|
||||
/* 0x34 */ u32 mSysHeapSize;
|
||||
/* 0x38 */ u32 mGraphicsFifoSize;
|
||||
/* 0x3C */ u32 field_0x3C;
|
||||
};
|
||||
class BaseSystem {
|
||||
public:
|
||||
static ConfigurationData *mConfigData;
|
||||
static XfbManager *getXfbMgr() {
|
||||
return mConfigData->getXfbMgr();
|
||||
}
|
||||
static Display *getDisplay() {
|
||||
return mConfigData->getDisplay();
|
||||
}
|
||||
static Video *getVideo() {
|
||||
return mConfigData->getVideo();
|
||||
}
|
||||
/* 0x3C */ GXRenderModeObj *mRenderMode;
|
||||
};
|
||||
|
||||
template <class TVideo, class TDisplay, class TXfbManager, class TAudioManager, class TSceneManager, class TPerfView>
|
||||
class TSystem : ConfigurationData {};
|
||||
template <class tVideo, class tDisplay, class tXfbMgr, class tAudioMgr, class tSceneMgr, class tPerfView>
|
||||
class TSystem : public BaseSystem {
|
||||
public:
|
||||
inline TSystem() : BaseSystem() {}
|
||||
|
||||
Video *getVideo() override {
|
||||
return static_cast<Video *>(mVideo);
|
||||
}
|
||||
|
||||
Heap *getSysHeap() override {
|
||||
return mSysHeap;
|
||||
}
|
||||
|
||||
Display *getDisplay() override {
|
||||
return static_cast<Display *>(mDisplay);
|
||||
}
|
||||
|
||||
XfbManager *getXfbMgr() override {
|
||||
return static_cast<XfbManager *>(mXfbMgr);
|
||||
}
|
||||
|
||||
PerformanceView *getPerfView() override {
|
||||
return static_cast<PerformanceView *>(mPerfView);
|
||||
}
|
||||
|
||||
SceneManager *getSceneMgr() override {
|
||||
return static_cast<SceneManager *>(mSceneMgr);
|
||||
}
|
||||
|
||||
SimpleAudioMgr *getAudioMgr() override {
|
||||
return static_cast<SimpleAudioMgr *>(mAudioMgr);
|
||||
}
|
||||
|
||||
void onBeginFrame() override {}
|
||||
void onEndFrame() override {}
|
||||
|
||||
void initRenderMode() override {}
|
||||
|
||||
void initialize() override {
|
||||
// DVDInit();
|
||||
// SCInit();
|
||||
|
||||
// initMemory();
|
||||
// initRenderMode();
|
||||
|
||||
// GraphicsFifo::create(mGraphicsFifoSize, nullptr);
|
||||
|
||||
// mVideo = new tVideo(mRenderMode, nullptr);
|
||||
|
||||
// mXfbMgr = new tXfbMgr(nullptr);
|
||||
// for (int i = 0; i < 2; ++i) {
|
||||
// mXfbMgr->attach(new Xfb(mRootHeapMem2));
|
||||
// }
|
||||
|
||||
// mDisplay = new tDisplay(1);
|
||||
|
||||
// Thread::initialize();
|
||||
// mThread = new Thread(OSGetCurrentThread(), 4);
|
||||
|
||||
// mPerfView = new tPerfView(true);
|
||||
|
||||
// DvdFile::initialize();
|
||||
|
||||
// CoreControllerMgr::createStaticInstance();
|
||||
// GCControllerMgr::createStaticInstance();
|
||||
|
||||
// Exception_create(0x40, 0x20, 4, nullptr, 1);
|
||||
|
||||
// mSceneMgr = new tSceneMgr(nullptr);
|
||||
|
||||
// mRootHeapMem1->becomeCurrentHeap();
|
||||
|
||||
// mAudioMgr = new tAudioMgr();
|
||||
}
|
||||
|
||||
public:
|
||||
/* 0x40 */ tAudioMgr *mAudioMgr;
|
||||
/* 0x44 */ tVideo *mVideo;
|
||||
/* 0x48 */ tXfbMgr *mXfbMgr;
|
||||
/* 0x4c */ tDisplay *mDisplay;
|
||||
/* 0x50 */ tPerfView *mPerfView;
|
||||
/* 0x54 */ tSceneMgr *mSceneMgr;
|
||||
};
|
||||
|
||||
} // namespace EGG
|
||||
|
||||
|
||||
+3
-2
@@ -9,10 +9,11 @@
|
||||
|
||||
// Note: names are taken from NSMBW where available but a lot are made up
|
||||
|
||||
void unk_initDecompressors();
|
||||
|
||||
namespace mDvd {
|
||||
|
||||
void unk_initDecompressors();
|
||||
void setAutoStreamDecomp(bool arg);
|
||||
|
||||
extern void *somePtr;
|
||||
|
||||
class UncompressInfo_c {
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
#ifndef ARC_CALLBACK_HANDLER_H
|
||||
#define ARC_CALLBACK_HANDLER_H
|
||||
|
||||
#include "common.h"
|
||||
|
||||
void *ArcCallbackHandlerCreate(u32);
|
||||
|
||||
#endif // ARC_CALLBACK_HANDLER_H
|
||||
@@ -25,6 +25,10 @@ bool isOnScreen(const mVec3_c &worldPos);
|
||||
void screenToWorld(mVec3_c &result, const mVec3_c &screenPos);
|
||||
void createLightTextures();
|
||||
|
||||
void fn_80016860();
|
||||
void clearList();
|
||||
void fn_80017500();
|
||||
|
||||
class AnmMdlWrapper : public m3d::mdlAnmChr {
|
||||
public:
|
||||
AnmMdlWrapper();
|
||||
|
||||
@@ -17,6 +17,8 @@ public:
|
||||
return field_0x30;
|
||||
}
|
||||
|
||||
static void fn_80190780(EGG::Heap *heap);
|
||||
void fn_801907C0();
|
||||
s64 fn_801907D0();
|
||||
void fn_801907F0();
|
||||
void fn_801909A0();
|
||||
|
||||
+1
-1
@@ -40,8 +40,8 @@ void main(int argc, char **argv) {
|
||||
OSPriority curPrio = OSGetThreadPriority(curThread);
|
||||
|
||||
OSCreateThread(&MAIN_THREAD, dMain::main01, nullptr, &pStackBase[STACK_SIZE], STACK_SIZE, curPrio, 0);
|
||||
|
||||
OSResumeThread(&MAIN_THREAD);
|
||||
|
||||
OSSetThreadPriority(curThread, 31);
|
||||
OSSuspendThread(curThread);
|
||||
}
|
||||
|
||||
+294
@@ -0,0 +1,294 @@
|
||||
#include "c/c_counter.h"
|
||||
#include "c/c_math.h"
|
||||
#include "d/d_cursor_hit_check.h"
|
||||
#include "d/d_dvd.h"
|
||||
#include "d/d_dvd_unk.h"
|
||||
#include "d/d_gfx.h"
|
||||
#include "d/d_hbm.h"
|
||||
#include "d/d_heap.h"
|
||||
#include "d/d_heap_alloc.h"
|
||||
#include "d/d_pad.h"
|
||||
#include "d/d_reset.h"
|
||||
#include "d/d_scene.h"
|
||||
#include "d/d_state.h"
|
||||
#include "d/d_sys.h"
|
||||
#include "d/d_sys_init.h"
|
||||
#include "d/flag/flag_managers.h"
|
||||
#include "d/lyt/d_lyt_battery.h"
|
||||
#include "d/lyt/d_lyt_system_window.h"
|
||||
#include "d/snd/d_snd_mgr.h"
|
||||
#include "egg/core/eggExpHeap.h"
|
||||
#include "egg/core/eggAssertHeap.h"
|
||||
#include "egg/core/eggSystem.h"
|
||||
#include "egg/core/eggVideo.h"
|
||||
#include "f/f_manager.h"
|
||||
#include "m/m_dvd.h"
|
||||
#include "m/m_heap.h"
|
||||
#include "m/m_pad.h"
|
||||
#include "m/m_video.h"
|
||||
#include "m/m3d/m3d.h"
|
||||
#include "nw4r/ut/ut_Color.h"
|
||||
#include "toBeSorted/arc_callback_handler.h"
|
||||
#include "toBeSorted/d_d3d.h"
|
||||
#include "toBeSorted/file_manager.h"
|
||||
#include "toBeSorted/nand_request_thread.h"
|
||||
#include "toBeSorted/save_manager.h"
|
||||
#include "toBeSorted/unk_save_time.h"
|
||||
#include "toBeSorted/arc_managers/current_stage_arc_manager.h"
|
||||
#include "toBeSorted/arc_managers/layout_arc_manager.h"
|
||||
#include "toBeSorted/arc_managers/oarc_manager.h"
|
||||
|
||||
#include "rvl/OS.h"
|
||||
|
||||
EGG::TSystem<EGG::Video, EGG::Display, EGG::XfbManager, EGG::SimpleAudioMgr, EGG::SceneManager, EGG::PerformanceView> SysConfig;
|
||||
|
||||
void dSys_c::setBlack(bool on) {
|
||||
|
||||
EGG::Video *video = EGG::BaseSystem::sSystem->getVideo();
|
||||
|
||||
if (video->mFlag.onBit(0) != on) {
|
||||
create();
|
||||
}
|
||||
}
|
||||
|
||||
char *dummy = "オーディオヒープ"; // "Audio heap"
|
||||
extern u32 lbl_80574FA0;
|
||||
extern u32 lbl_80574FA4;
|
||||
|
||||
void dSys_c::create() {
|
||||
EGG::Heap *pRootHeapMem1;
|
||||
EGG::Heap *pRootHeapMem2;
|
||||
EGG::Heap *pCmdHeap;
|
||||
EGG::Heap *pExpHeap;
|
||||
|
||||
dHeapAllocator::initCallbacks();
|
||||
|
||||
ms_configuration_p = &SysConfig;
|
||||
EGG::BaseSystem::sSystem = &SysConfig;
|
||||
|
||||
ms_configuration_p->initialize();
|
||||
|
||||
pRootHeapMem1 = EGG::BaseSystem::sSystem->mRootHeapMem1;
|
||||
ms_RootHeapMem1 = mHeap::createExpHeap(-1, pRootHeapMem1, "dSys_c::RootHeapMEM1", 32, mHeap::OPT_4);
|
||||
pRootHeapMem1->mFlag.setBit(0);
|
||||
|
||||
pRootHeapMem2 = EGG::BaseSystem::sSystem->mRootHeapMem2;
|
||||
ms_RootHeapMem2 = mHeap::createExpHeap(-1, pRootHeapMem2, "dSys_c::RootHeapMEM2", 32, mHeap::OPT_4);
|
||||
pRootHeapMem2->mFlag.setBit(0);
|
||||
|
||||
EGG::Heap *heapMem1 = ms_RootHeapMem1;
|
||||
EGG::Heap *heapMem2 = ms_RootHeapMem2;
|
||||
|
||||
mVideo::create();
|
||||
|
||||
mHeap::createDylinkHeap(0x1c8000, heapMem1);
|
||||
mHeap::createGameHeap1(0x250000, heapMem1);
|
||||
dHeap::createLayoutHeap(0x1e0000, heapMem1);
|
||||
mHeap::createCommandHeap(0x8000, heapMem1);
|
||||
dHeap::createWork1Heap(0x4c8000, heapMem1);
|
||||
dHeap::createWorkExHeap(0x480000, heapMem1);
|
||||
dHeap::createLayoutExHeap(0xc8000, heapMem2);
|
||||
dHeap::createLayoutEx2Heap(0x38000, heapMem1);
|
||||
mHeap::createArchiveHeap(0xb85000, heapMem2);
|
||||
dHeap::createLayoutResHeap(0x4e7000, heapMem2);
|
||||
dHeap::createWork2Heap(0xb08000, heapMem2);
|
||||
|
||||
pExpHeap = EGG::ExpHeap::create(0x40000, mHeap::g_gameHeaps[0], 0);
|
||||
pExpHeap->setName("システムcreateヒープ"); // "system create heap"
|
||||
|
||||
mHeap::setCurrentHeap(mHeap::g_assertHeap);
|
||||
|
||||
{
|
||||
mHeap heap(pExpHeap);
|
||||
dPad::create();
|
||||
}
|
||||
|
||||
dPad::fn_80059620();
|
||||
|
||||
mPad::beginPad();
|
||||
mPad::g_currentCore->setPosParam(0.1f, 1.0f);
|
||||
mPad::endPad();
|
||||
|
||||
{
|
||||
mHeap heap(pExpHeap);
|
||||
for (int i = 0; i < WPAD_MAX_CONTROLLERS; i++) {
|
||||
mPad::g_padMg->getNthController(i)->createRumbleMgr(4);
|
||||
}
|
||||
}
|
||||
|
||||
cM::initRnd(OSGetTick());
|
||||
|
||||
dGfx_c::create(pExpHeap);
|
||||
|
||||
{
|
||||
mHeap heap(pExpHeap);
|
||||
dScene_c::getFader()->create();
|
||||
}
|
||||
|
||||
dDvdUnk::FontUnk::create(pExpHeap);
|
||||
FileManager::create(pExpHeap);
|
||||
SaveMgr::create(pExpHeap);
|
||||
setupFlagManagers(pExpHeap);
|
||||
dCsMgr_c::create(pExpHeap);
|
||||
|
||||
lbl_80574FA0 = 0;
|
||||
lbl_80574FA4 = 0;
|
||||
|
||||
cCounter_c::clear();
|
||||
|
||||
dDvd::create(OSGetThreadPriority(OSGetCurrentThread()) - 1, mHeap::g_commandHeap, mHeap::g_archiveHeap, pExpHeap);
|
||||
mDvd::unk_initDecompressors();
|
||||
mDvd::setAutoStreamDecomp(true);
|
||||
|
||||
void *p_buf = mHeap::g_gameHeaps[0]->alloc(0x4000, 32);
|
||||
pCmdHeap = mHeap::g_commandHeap;
|
||||
NandRequestThread::create(
|
||||
OSGetThreadPriority(OSGetCurrentThread()) - 2,
|
||||
pCmdHeap,
|
||||
p_buf,
|
||||
0x4000,
|
||||
ArcCallbackHandlerCreate(2),
|
||||
pExpHeap);
|
||||
|
||||
dReset::Manage_c::CreateInstance(heapMem2);
|
||||
|
||||
dHeap::createHBMHeap(0x180000, heapMem2);
|
||||
dHbm::Manage_c::CreateInstance(dHeap::HBMHeap);
|
||||
|
||||
initAudioMgr(heapMem1);
|
||||
|
||||
dSndMgr_c::GetInstance()->setup(heapMem2, 0x1000000);
|
||||
|
||||
dHeap::createFontHeap(0xfa000, heapMem2);
|
||||
|
||||
heapMem1->mFlag.setBit(0);
|
||||
heapMem2->mFlag.setBit(0);
|
||||
|
||||
dScene_c::staticCreate();
|
||||
|
||||
CurrentStageArcManager::create(pExpHeap);
|
||||
OarcManager::create(pExpHeap);
|
||||
LayoutArcManager::create(pExpHeap);
|
||||
|
||||
setFrameRate(1);
|
||||
nw4r::ut::Color clearColor(nw4r::ut::Color::BLACK);
|
||||
setClearColor(clearColor);
|
||||
|
||||
SaveTimeRelated::fn_80190780(pExpHeap);
|
||||
|
||||
pExpHeap->mFlag.setBit(0);
|
||||
pExpHeap->adjust();
|
||||
|
||||
mHeap::setCurrentHeap(mHeap::g_gameHeaps[0]);
|
||||
}
|
||||
|
||||
void dSys_c::execute() {
|
||||
beginFrame();
|
||||
|
||||
if (dState::fn_80062EC0()) {
|
||||
dPad::beginPad_BR();
|
||||
dPad::fn_80059630();
|
||||
}
|
||||
|
||||
beginRender();
|
||||
d3d::fn_80016860();
|
||||
|
||||
dDvdUnk::FontUnk::GetInstance()->preExecute();
|
||||
|
||||
bool isAnyError = dDvdUnk::FontUnk::GetInstance()->isAnyError();
|
||||
if (isAnyError) {
|
||||
if (dState::fn_80062EC0()) {
|
||||
dHbm::Manage_c::GetInstance()->Calculate();
|
||||
dReset::Manage_c::GetInstance()->Calculate();
|
||||
dDvdUnk::FontUnk::GetInstance()->execute();
|
||||
}
|
||||
|
||||
dDvdUnk::FontUnk::GetInstance()->drawNonDriveError();
|
||||
|
||||
if (dLytSystemWindow_c::GetInstance()) {
|
||||
dLytSystemWindow_c::GetInstance()->fn_80125EF0();
|
||||
}
|
||||
|
||||
SaveMgr::GetInstance()->draw();
|
||||
dDvdUnk::FontUnk::GetInstance()->drawDriveError();
|
||||
dReset::Manage_c::GetInstance()->Draw();
|
||||
dHbm::Manage_c::GetInstance()->DrawMenu(0);
|
||||
}
|
||||
else {
|
||||
dHbm::Manage_c::GetInstance()->DrawMenu(1);
|
||||
|
||||
if (dHbm::Manage_c::GetInstance()->getState() == dHbm::Manage_c::HBM_MANAGE_ACTIVE) {
|
||||
if (dState::fn_80062EC0()) {
|
||||
dHbm::Manage_c::GetInstance()->Calculate();
|
||||
}
|
||||
}
|
||||
else {
|
||||
dGfx_c::GetInstance()->drawBefore();
|
||||
m3d::drawDone(0);
|
||||
dScene_c::getFader()->draw();
|
||||
dGfx_c::GetInstance()->drawLetterbox();
|
||||
dLytBattery_c::draw();
|
||||
dDvdUnk::FontUnk::GetInstance()->execute();
|
||||
|
||||
if (dLytSystemWindow_c::GetInstance()) {
|
||||
dLytSystemWindow_c::GetInstance()->fn_80125EF0();
|
||||
}
|
||||
|
||||
SaveMgr::GetInstance()->draw();
|
||||
|
||||
if (dState::fn_80062EC0()) {
|
||||
dHbm::Manage_c::GetInstance()->Calculate();
|
||||
}
|
||||
}
|
||||
|
||||
if (dState::fn_80062EC0()) {
|
||||
dReset::Manage_c::GetInstance()->Calculate();
|
||||
}
|
||||
dReset::Manage_c::GetInstance()->Draw();
|
||||
}
|
||||
|
||||
dHbm::Manage_c::GetInstance()->DrawIcon();
|
||||
endRender();
|
||||
dState::fn_80062EB0();
|
||||
dState::fn_80062E40();
|
||||
dState::fn_80062E50();
|
||||
|
||||
if (!isAnyError &&
|
||||
dHbm::Manage_c::GetInstance()->getState() != dHbm::Manage_c::HBM_MANAGE_ACTIVE)
|
||||
{
|
||||
if (dSystem::myDylinkInitPhase.callMethod(nullptr) == 2) {
|
||||
if (dState::fn_80062EC0()) {
|
||||
dScene_c::staticExecute();
|
||||
}
|
||||
fManager_c::mainLoop();
|
||||
}
|
||||
|
||||
if (dState::fn_80062EC0()) {
|
||||
dScene_c::getFader()->calc();
|
||||
}
|
||||
}
|
||||
|
||||
SaveMgr::GetInstance()->execute();
|
||||
|
||||
if (dLytSystemWindow_c::GetInstance()) {
|
||||
dLytSystemWindow_c::GetInstance()->fn_80125E20();
|
||||
}
|
||||
|
||||
dSndMgr_c::GetInstance()->calc();
|
||||
SaveTimeRelated::GetInstance()->fn_801907C0();
|
||||
|
||||
if (dState::fn_80062EC0()) {
|
||||
cCounter_c::IncrementGameFrame();
|
||||
cCounter_c::IncrementUnkCounter();
|
||||
}
|
||||
|
||||
m3d::calcWorld(0);
|
||||
d3d::fn_80017500();
|
||||
d3d::clearList();
|
||||
|
||||
if (dState::fn_80062EC0()) {
|
||||
dPad::endPad_BR();
|
||||
}
|
||||
|
||||
endFrame();
|
||||
}
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
#include "toBeSorted/arc_callback_handler.h"
|
||||
|
||||
#include "d/col/bg/d_bg_s.h"
|
||||
#include "d/col/bg/d_bg_w_kcol.h"
|
||||
#include "d/d_rawarchive.h"
|
||||
@@ -17,8 +19,8 @@ ArcCallbackHandler ArcCallbackHandler::sInstance;
|
||||
#define NAME_OARC 'oarc'
|
||||
#define NAME_RARC 'rarc'
|
||||
|
||||
u32 ArcCallbackHandlerCreate(u32) {
|
||||
return 0;
|
||||
void *ArcCallbackHandlerCreate(u32) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void BindSystemModelsAndLighting(nw4r::g3d::ResFile file) {
|
||||
|
||||
Reference in New Issue
Block a user