diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2022-04-10 15:29:28 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-04-10 18:29:28 -0400 |
| commit | dd8899033b0b70a262f4c89153ede57ceac9878e (patch) | |
| tree | 7561c505910eff998933f1000f6439ca530bae7c /src/d | |
| parent | 02c7a47f133add5e4c1d8d7f88d1a7bddc13d9ad (diff) | |
d_s_logo (#188)
* d_s_logo
* match fpcM_Management
* asm
Diffstat (limited to 'src/d')
| -rw-r--r-- | src/d/d_drawlist.cpp | 15 | ||||
| -rw-r--r-- | src/d/menu/d_menu_dmap.cpp | 6 | ||||
| -rw-r--r-- | src/d/s/d_s_logo.cpp | 1375 |
3 files changed, 621 insertions, 775 deletions
diff --git a/src/d/d_drawlist.cpp b/src/d/d_drawlist.cpp index 200e2f485b..4833a9c046 100644 --- a/src/d/d_drawlist.cpp +++ b/src/d/d_drawlist.cpp @@ -44,11 +44,6 @@ struct dDlst_2Dm_c { /* 8005312C */ void draw(); }; -struct dDlst_2D_c { - /* 80053A00 */ dDlst_2D_c(ResTIMG*, s16, s16, s16, s16, u8); - /* 80053A9C */ void draw(); -}; - struct dDlst_2DTri_c { /* 80051AF0 */ void draw(); }; @@ -102,13 +97,6 @@ struct J3DUClipper { /* 80273A44 */ void clip(f32 const (*)[4], Vec*, Vec*) const; }; -struct J2DPicture { - /* 800539DC */ void getTexture(u8) const; - /* 80053C44 */ void setWhite(JUtility::TColor); - /* 80053C6C */ void setBlack(JUtility::TColor); - /* 802FC050 */ J2DPicture(); -}; - // // Forward References: // @@ -2156,7 +2144,8 @@ asm dDlst_2D_c::dDlst_2D_c(ResTIMG* param_0, s16 param_1, s16 param_2, s16 param #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dDlst_2D_c::draw() { +// asm void dDlst_2D_c::draw() { +extern "C" asm void draw__10dDlst_2D_cFv() { nofralloc #include "asm/d/d_drawlist/draw__10dDlst_2D_cFv.s" } diff --git a/src/d/menu/d_menu_dmap.cpp b/src/d/menu/d_menu_dmap.cpp index f672982e0a..29af0cfc34 100644 --- a/src/d/menu/d_menu_dmap.cpp +++ b/src/d/menu/d_menu_dmap.cpp @@ -72,12 +72,6 @@ struct dMeterHaihai_c { /* 8020BC20 */ void setScale(f32); }; -struct J2DPicture { - /* 801BDD40 */ void append(ResTIMG const*, f32); - /* 801BDD70 */ void insert(ResTIMG const*, u8, f32); - /* 802FC708 */ J2DPicture(ResTIMG const*); -}; - struct JMSMesgEntry_c {}; struct dMeter2Info_c { diff --git a/src/d/s/d_s_logo.cpp b/src/d/s/d_s_logo.cpp index ac37784aa4..7e1081a6d6 100644 --- a/src/d/s/d_s_logo.cpp +++ b/src/d/s/d_s_logo.cpp @@ -4,185 +4,23 @@ // #include "d/s/d_s_logo.h" +#include "JSystem/JKernel/JKRAram.h" +#include "c/c_dylink.h" +#include "d/d_procname.h" #include "dol2asm.h" #include "dolphin/types.h" +#include "m_Do/m_Do_audio.h" +#include "m_Do/m_Do_machine.h" // // Types: // -struct scene_class {}; +class dEnemyItem_c { +public: + static void setItemData(u8* data) { mData = data; } -struct request_of_phase_process_class {}; - -struct mDoRst { - static u8 mResetData[4 + 4 /* padding */]; -}; - -struct mDoMch_render_c { - static void* mRenderModeObj[1 + 1 /* padding */]; -}; - -struct mDoGph_gInf_c { - static u8 mFader[4]; -}; - -struct JKRHeap { - /* 802CE438 */ void becomeCurrentHeap(); - /* 802CE448 */ void destroy(); - /* 802CE4D4 */ void alloc(u32, int); - /* 802CE500 */ void free(void*, JKRHeap*); -}; - -struct mDoDvdThd_toMainRam_c { - /* 80016394 */ void create(char const*, u8, JKRHeap*); -}; - -struct JKRArchive { - struct EMountMode {}; -}; - -struct mDoDvdThd_mountXArchive_c { - /* 800161E0 */ void create(char const*, u8, JKRArchive::EMountMode, JKRHeap*); -}; - -struct mDoCPd_c { - static u8 m_cpadInfo[256]; -}; - -struct dTres_c { - /* 8009BBD8 */ void createWork(); -}; - -struct dScnLogo_c { - /* 802560B4 */ void preLoad_dyl_create(); - /* 802560F8 */ void preLoad_dyl_remove(); - /* 8025611C */ void preLoad_dyl(); - /* 80256198 */ void checkProgSelect(); - /* 80256210 */ void draw(); - /* 80256264 */ void progInDraw(); - /* 8025631C */ void progSelDraw(); - /* 802568E0 */ void progOutDraw(); - /* 80256A3C */ void progSetDraw(); - /* 80256AC0 */ void progSet2Draw(); - /* 80256B3C */ void progChangeDraw(); - /* 80256BF4 */ void warningInDraw(); - /* 80256C68 */ void warningDispDraw(); - /* 80256DC4 */ void warningOutDraw(); - /* 80256E48 */ void nintendoInDraw(); - /* 80256ECC */ void nintendoOutDraw(); - /* 80256F50 */ void dolbyInDraw(); - /* 80256FD4 */ void dolbyOutDraw(); - /* 80257058 */ void dolbyOutDraw2(); - /* 80257070 */ void dvdWaitDraw(); - /* 80257284 */ void nextSceneChange(); - /* 802572B8 */ ~dScnLogo_c(); - /* 80257AE0 */ void create(); - /* 80257C64 */ void logoInitGC(); - /* 80257FEC */ void dvdDataLoad(); - /* 802584D8 */ void setProgressiveMode(u8); - /* 802584FC */ void getProgressiveMode(); - /* 80258520 */ void isProgressiveMode(); - /* 8025854C */ void setRenderMode(); -}; - -struct dRes_info_c {}; - -struct dRes_control_c { - /* 8003C078 */ void setRes(char const*, dRes_info_c*, int, char const*, u8, JKRHeap*); - /* 8003C194 */ void deleteRes(char const*, dRes_info_c*, int); - /* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int); - /* 8003C470 */ void syncAllRes(dRes_info_c*, int); -}; - -struct dPa_control_c { - /* 8004BB78 */ void createCommon(void const*); -}; - -struct dMpath_c { - /* 8003F7E8 */ void createWork(); -}; - -struct dLog_HIO_c { - /* 802560A4 */ dLog_HIO_c(); - /* 8025855C */ ~dLog_HIO_c(); -}; - -struct dEnemyItem_c { - static u8 mData[4 + 4 /* padding */]; -}; - -struct ResTIMG {}; - -struct dDlst_shadowControl_c { - /* 80055FE8 */ void setSimpleTex(ResTIMG const*); -}; - -struct dDlst_base_c {}; - -struct dDlst_list_c { - /* 80056794 */ void set(dDlst_base_c**&, dDlst_base_c**&, dDlst_base_c*); -}; - -struct dDlst_2D_c { - /* 80053A00 */ dDlst_2D_c(ResTIMG*, s16, s16, s16, s16, u8); -}; - -struct dComIfG_play_c { - /* 8002C9D8 */ void createParticle(); -}; - -struct cDylPhs { - /* 8001884C */ void Link(request_of_phase_process_class*, s16); -}; - -struct JAISoundID {}; - -struct Vec {}; - -struct Z2SeMgr { - /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); -}; - -struct Z2SceneMgr { - /* 802BA56C */ void loadStaticWaves(); - /* 802BA5C0 */ bool checkFirstWaves(); -}; - -struct Z2AudioMgr { - /* 802CD974 */ void resetProcess(u32, bool); - - static u8 mAudioMgrPtr[4 + 4 /* padding */]; -}; - -struct JUTGamePad { - struct C3ButtonReset { - static u8 sCallback[4]; - static u8 sCallbackArg[4 + 4 /* padding */]; - }; -}; - -struct JKRExpHeap { - /* 802CEF00 */ void create(void*, u32, JKRHeap*, bool); - /* 802CEE2C */ void create(u32, JKRHeap*, bool); -}; - -struct JKRAramHeap { - /* 802D31AC */ void getTotalFreeSize(); -}; - -struct JKRAram { - static u8 sAramObject[4]; -}; - -struct JFWDisplay { - /* 80272C60 */ void waitBlanking(int); - - static u8 sManager[4]; -}; - -struct J2DPicture { - /* 802FCFF0 */ ~J2DPicture(); + static u8* mData; }; // @@ -229,7 +67,7 @@ extern "C" void getProgressiveMode__10dScnLogo_cFv(); extern "C" void isProgressiveMode__10dScnLogo_cFv(); extern "C" void setRenderMode__10dScnLogo_cFv(); extern "C" void __dt__10dLog_HIO_cFv(); -extern "C" void func_802585A4(void* _this, u16*); +extern "C" void func_802585A4(u16*); extern "C" void __sinit_d_s_logo_cpp(); extern "C" extern char const* const d_s_d_s_logo__stringBase0; @@ -237,7 +75,6 @@ extern "C" extern char const* const d_s_d_s_logo__stringBase0; // External References: // -SECTION_INIT void memset(); extern "C" void mDoExt_getGameHeap__Fv(); extern "C" void mDoExt_getJ2dHeap__Fv(); extern "C" void mDoExt_setCurrentHeap__FP7JKRHeap(); @@ -282,9 +119,9 @@ extern "C" void create__10JKRExpHeapFUlP7JKRHeapb(); extern "C" void create__10JKRExpHeapFPvUlP7JKRHeapb(); extern "C" void getTotalFreeSize__11JKRAramHeapFv(); extern "C" void __dt__10J2DPictureFv(); -extern "C" void OSGetProgressiveMode(); -extern "C" void OSSetProgressiveMode(); -extern "C" void VIGetDTVStatus(); +extern "C" u32 OSGetProgressiveMode(); +extern "C" void OSSetProgressiveMode(u32); +extern "C" u32 VIGetDTVStatus(); extern "C" void __register_global_object(); extern "C" void __ptmf_scall(); extern "C" void _savegpr_26(); @@ -295,17 +132,12 @@ extern "C" void _restgpr_26(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" extern u8 g_ntscZeldaProg[60]; extern "C" extern void* g_fopScn_Method[5 + 1 /* padding */]; extern "C" extern void* g_fpcNd_Method[5 + 1 /* padding */]; extern "C" extern void* __vt__10dDlst_2D_c[3]; extern "C" u8 m_cpadInfo__8mDoCPd_c[256]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; extern "C" void* mRenderModeObj__15mDoMch_render_c[1 + 1 /* padding */]; -extern "C" extern u32 g_blackColor; -extern "C" extern u8 struct_80450BB8[4]; extern "C" u8 mFader__13mDoGph_gInf_c[4]; -extern "C" extern u8 archiveHeap[4]; extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */]; extern "C" u8 mData__12dEnemyItem_c[4 + 4 /* padding */]; extern "C" u8 sManager__10JFWDisplay[4]; @@ -313,7 +145,6 @@ extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; extern "C" u8 sAramObject__7JKRAram[4]; extern "C" u8 sCallback__Q210JUTGamePad13C3ButtonReset[4]; extern "C" u8 sCallbackArg__Q210JUTGamePad13C3ButtonReset[4 + 4 /* padding */]; -extern "C" extern u8 struct_80451500[4]; // // Declarations: @@ -325,601 +156,671 @@ SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; -/* 803C2E44-803C2E50 -00001 000C+00 0/1 0/0 0/0 .data @3737 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3737[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)warningInDraw__10dScnLogo_cFv, -}; -#pragma pop - -/* 803C2E50-803C2E5C -00001 000C+00 0/1 0/0 0/0 .data @3738 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3738[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)warningDispDraw__10dScnLogo_cFv, -}; -#pragma pop - -/* 803C2E5C-803C2E68 -00001 000C+00 0/1 0/0 0/0 .data @3739 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3739[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)warningOutDraw__10dScnLogo_cFv, -}; -#pragma pop - -/* 803C2E68-803C2E74 -00001 000C+00 0/1 0/0 0/0 .data @3740 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3740[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)nintendoInDraw__10dScnLogo_cFv, -}; -#pragma pop - -/* 803C2E74-803C2E80 -00001 000C+00 0/1 0/0 0/0 .data @3741 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3741[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)nintendoOutDraw__10dScnLogo_cFv, -}; -#pragma pop - -/* 803C2E80-803C2E8C -00001 000C+00 0/1 0/0 0/0 .data @3742 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3742[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)dolbyInDraw__10dScnLogo_cFv, -}; -#pragma pop - -/* 803C2E8C-803C2E98 -00001 000C+00 0/1 0/0 0/0 .data @3743 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3743[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)dolbyOutDraw__10dScnLogo_cFv, -}; -#pragma pop - -/* 803C2E98-803C2EA4 -00001 000C+00 0/1 0/0 0/0 .data @3744 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3744[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)dolbyOutDraw2__10dScnLogo_cFv, -}; -#pragma pop - -/* 803C2EA4-803C2EB0 -00001 000C+00 0/1 0/0 0/0 .data @3745 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3745[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)progInDraw__10dScnLogo_cFv, -}; -#pragma pop - -/* 803C2EB0-803C2EBC -00001 000C+00 0/1 0/0 0/0 .data @3746 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3746[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)progSelDraw__10dScnLogo_cFv, -}; -#pragma pop - -/* 803C2EBC-803C2EC8 -00001 000C+00 0/1 0/0 0/0 .data @3747 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3747[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)progOutDraw__10dScnLogo_cFv, -}; -#pragma pop - -/* 803C2EC8-803C2ED4 -00001 000C+00 0/1 0/0 0/0 .data @3748 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3748[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)progSetDraw__10dScnLogo_cFv, -}; -#pragma pop - -/* 803C2ED4-803C2EE0 -00001 000C+00 0/1 0/0 0/0 .data @3749 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3749[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)progSet2Draw__10dScnLogo_cFv, -}; -#pragma pop - -/* 803C2EE0-803C2EEC -00001 000C+00 0/1 0/0 0/0 .data @3750 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3750[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)progChangeDraw__10dScnLogo_cFv, -}; -#pragma pop - -/* 803C2EEC-803C2EF8 -00001 000C+00 0/1 0/0 0/0 .data @3751 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3751[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)dvdWaitDraw__10dScnLogo_cFv, -}; -#pragma pop - -/* 803C2EF8-803C2F04 -00001 000C+00 0/1 0/0 0/0 .data @3752 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3752[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)nextSceneChange__10dScnLogo_cFv, -}; -#pragma pop - -/* 803C2F04-803C2FC4 020024 00C0+00 1/2 0/0 0/0 .data l_execFunc */ -SECTION_DATA static u8 l_execFunc[192] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 803C2FC4-803C2FD0 -00001 000C+00 1/1 0/0 0/0 .data l_method$4611 */ -SECTION_DATA static void* l_method[3] = { - (void*)phase_0__FP10dScnLogo_c, - (void*)phase_1__FP10dScnLogo_c, - (void*)phase_2__FP10dScnLogo_c, -}; - -/* 803C2FD0-803C2FE4 -00001 0014+00 1/0 0/0 0/0 .data l_dScnLogo_Method */ -SECTION_DATA static void* l_dScnLogo_Method[5] = { - (void*)dScnLogo_Create__FP11scene_class, (void*)dScnLogo_Delete__FP10dScnLogo_c, - (void*)dScnLogo_Execute__FP10dScnLogo_c, (void*)dScnLogo_IsDelete__FP10dScnLogo_c, - (void*)dScnLogo_Draw__FP10dScnLogo_c, -}; - -/* 803C2FE4-803C300C -00001 0028+00 0/0 0/0 1/0 .data g_profile_LOGO_SCENE */ -SECTION_DATA extern void* g_profile_LOGO_SCENE[10] = { - (void*)NULL, - (void*)0x0001FFFD, - (void*)0x00090000, - (void*)&g_fpcNd_Method, - (void*)0x000002A8, - (void*)NULL, - (void*)NULL, - (void*)&g_fopScn_Method, - (void*)&l_dScnLogo_Method, - (void*)NULL, -}; +/* 804510E8-804510F0 0005E8 0008+00 1/1 0/0 0/0 .sbss g_LogHIO */ +static dLog_HIO_c g_LogHIO; -/* 803C300C-803C3018 02012C 000C+00 2/2 0/0 0/0 .data __vt__10dLog_HIO_c */ -SECTION_DATA extern void* __vt__10dLog_HIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10dLog_HIO_cFv, +typedef void (dScnLogo_c::*execFunc)(); +SECTION_DATA static execFunc l_execFunc[16] = { + &dScnLogo_c::warningInDraw, &dScnLogo_c::warningDispDraw, &dScnLogo_c::warningOutDraw, + &dScnLogo_c::nintendoInDraw, &dScnLogo_c::nintendoOutDraw, &dScnLogo_c::dolbyInDraw, + &dScnLogo_c::dolbyOutDraw, &dScnLogo_c::dolbyOutDraw2, &dScnLogo_c::progInDraw, + &dScnLogo_c::progSelDraw, &dScnLogo_c::progOutDraw, &dScnLogo_c::progSetDraw, + &dScnLogo_c::progSet2Draw, &dScnLogo_c::progChangeDraw, &dScnLogo_c::dvdWaitDraw, + &dScnLogo_c::nextSceneChange, }; /* 802560A4-802560B4 2509E4 0010+00 1/1 0/0 0/0 .text __ct__10dLog_HIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dLog_HIO_c::dLog_HIO_c() { - nofralloc -#include "asm/d/s/d_s_logo/__ct__10dLog_HIO_cFv.s" -} -#pragma pop +dLog_HIO_c::dLog_HIO_c() {} /* 802560B4-802560F8 2509F4 0044+00 1/1 0/0 0/0 .text preLoad_dyl_create__10dScnLogo_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnLogo_c::preLoad_dyl_create() { - nofralloc -#include "asm/d/s/d_s_logo/preLoad_dyl_create__10dScnLogo_cFv.s" +void dScnLogo_c::preLoad_dyl_create() { + m_preLoad_dylPhase = new request_of_phase_process_class[14]; + memset(m_preLoad_dylPhase, 0, sizeof(request_of_phase_process_class) * 14); } -#pragma pop /* 802560F8-8025611C 250A38 0024+00 1/1 0/0 0/0 .text preLoad_dyl_remove__10dScnLogo_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnLogo_c::preLoad_dyl_remove() { - nofralloc -#include "asm/d/s/d_s_logo/preLoad_dyl_remove__10dScnLogo_cFv.s" +void dScnLogo_c::preLoad_dyl_remove() { + delete[] m_preLoad_dylPhase; } -#pragma pop /* ############################################################################################## */ /* 80399FE0-80399FFC 026640 001C+00 1/1 0/0 0/0 .rodata l_preLoad_dylKeyTbl */ -SECTION_RODATA static u8 const l_preLoad_dylKeyTbl[28] = { - 0x02, 0xDC, 0x02, 0xCE, 0x02, 0x21, 0x00, 0xF2, 0x02, 0x1B, 0x02, 0xF4, 0x01, 0x39, - 0x01, 0x5A, 0x02, 0xE4, 0x00, 0xFE, 0x03, 0x08, 0x03, 0x0F, 0x00, 0xFF, 0x01, 0x3F, +SECTION_RODATA static s16 const l_preLoad_dylKeyTbl[14] = { + 0x02DC, 0x02CE, 0x0221, 0x00F2, 0x021B, 0x02F4, 0x0139, + 0x015A, 0x02E4, 0x00FE, 0x0308, 0x030F, 0x00FF, 0x013F, }; COMPILER_STRIP_GATE(0x80399FE0, &l_preLoad_dylKeyTbl); /* 8025611C-80256198 250A5C 007C+00 2/2 0/0 0/0 .text preLoad_dyl__10dScnLogo_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnLogo_c::preLoad_dyl() { - nofralloc -#include "asm/d/s/d_s_logo/preLoad_dyl__10dScnLogo_cFv.s" +bool dScnLogo_c::preLoad_dyl() { + bool ret = 1; + + for (int i = 0; i < 14; i++) { + int link = cDylPhs::Link(&m_preLoad_dylPhase[i], l_preLoad_dylKeyTbl[i]); + + if (link != 4) { + ret = 0; + } + } + + return ret; } -#pragma pop /* 80256198-80256210 250AD8 0078+00 1/1 0/0 0/0 .text checkProgSelect__10dScnLogo_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnLogo_c::checkProgSelect() { - nofralloc -#include "asm/d/s/d_s_logo/checkProgSelect__10dScnLogo_cFv.s" +void dScnLogo_c::checkProgSelect() { + if (mDoRst::getProgSeqFlag() == 0 && VIGetDTVStatus() != 0) { + if (isProgressiveMode() || mDoCPd_c::getHoldB(0)) { + field_0x20a = 1; + field_0x209 = 0; + } + } } -#pragma pop /* 80256210-80256264 250B50 0054+00 1/1 0/0 0/0 .text draw__10dScnLogo_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnLogo_c::draw() { - nofralloc -#include "asm/d/s/d_s_logo/draw__10dScnLogo_cFv.s" +int dScnLogo_c::draw() { + cLib_calcTimer<u16>(&mTimer); + (this->*l_execFunc[mExecCommand])(); + return 1; } -#pragma pop /* 80256264-8025631C 250BA4 00B8+00 1/0 0/0 0/0 .text progInDraw__10dScnLogo_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnLogo_c::progInDraw() { - nofralloc -#include "asm/d/s/d_s_logo/progInDraw__10dScnLogo_cFv.s" -} -#pragma pop +void dScnLogo_c::progInDraw() { + dComIfGd_set2DOpa(mProgressiveChoice); + dComIfGd_set2DOpa(mProgressiveYes); + dComIfGd_set2DOpa(mProgressiveNo); -/* ############################################################################################## */ -/* 80454ED8-80454EDC 0034D8 0004+00 1/1 0/0 0/0 .sdata2 @3933 */ -SECTION_SDATA2 static f32 lit_3933 = 0.5f; - -/* 80454EDC-80454EE0 0034DC 0004+00 2/2 0/0 0/0 .sdata2 @3934 */ -SECTION_SDATA2 static f32 lit_3934 = 1.0f; - -/* 80454EE0-80454EE4 0034E0 0004+00 1/1 0/0 0/0 .sdata2 @3935 */ -SECTION_SDATA2 static f32 lit_3935 = -1.0f; - -/* 80454EE4-80454EE8 0034E4 0004+00 1/1 0/0 0/0 .sdata2 @3936 */ -SECTION_SDATA2 static f32 lit_3936 = -0.5f; - -/* 80454EE8-80454EEC 0034E8 0004+00 2/2 0/0 0/0 .sdata2 @3937 */ -SECTION_SDATA2 static f32 lit_3937 = 255.0f; - -/* 80454EEC-80454EF0 0034EC 0004+00 1/1 0/0 0/0 .sdata2 @3938 */ -SECTION_SDATA2 static f32 lit_3938 = 200.0f; - -/* 80454EF0-80454EF8 0034F0 0008+00 2/2 0/0 0/0 .sdata2 @3940 */ -SECTION_SDATA2 static f64 lit_3940 = 4503599627370496.0 /* cast u32 to float */; + if (mTimer == 0) { + mExecCommand = EXEC_PROG_SEL; + mTimer = 600; + field_0x20e = 30; + field_0x210 = field_0x20e; + field_0x212 = 0; + field_0x20b = 0; + } +} /* 8025631C-802568E0 250C5C 05C4+00 1/0 0/0 0/0 .text progSelDraw__10dScnLogo_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnLogo_c::progSelDraw() { - nofralloc -#include "asm/d/s/d_s_logo/progSelDraw__10dScnLogo_cFv.s" +void dScnLogo_c::progSelDraw() { + dComIfGd_set2DOpa(mProgressiveChoice); + dComIfGd_set2DOpa(mProgressiveYes); + dComIfGd_set2DOpa(mProgressiveNo); + + if (field_0x20b == 0) { + if (field_0x209 == 0) { + if (mDoCPd_c::getHoldRight(0) || mDoCPd_c::getStickX(0) > 0.5f) { + mDoAud_seStart(Z2SE_SY_MENU_CURSOR_COMMON, NULL, 0, 0); + field_0x209 = 1; + field_0x20e = 30; + field_0x210 = field_0x20e; + field_0x212 = 0; + } + } else { + if (mDoCPd_c::getHoldLeft(0) || mDoCPd_c::getStickX(0) < -0.5f) { + mDoAud_seStart(Z2SE_SY_MENU_CURSOR_COMMON, NULL, 0, 0); + field_0x209 = 0; + field_0x20e = 30; + field_0x210 = field_0x20e; + field_0x212 = 0; + } + } + + if (mDoCPd_c::getTrigA(0) || mTimer == 0) { + if (field_0x209 == 0) { + mProgressiveSel->getPicture()->changeTexture(mProgressivePro, 0); + setProgressiveMode(1); + mDoRst::setProgChgFlag(1); + mDoAud_seStart(Z2SE_SY_CURSOR_OK, NULL, 0, 0); + } else { + mProgressiveSel->getPicture()->changeTexture(mProgressiveInter, 0); + setProgressiveMode(0); + mDoAud_seStart(Z2SE_SY_CURSOR_OK, NULL, 0, 0); + } + + if (mTimer > 540) { + field_0x20b = 1; + field_0x214 = mTimer - 540; + } else { + mExecCommand = EXEC_PROG_OUT; + mTimer = 30; + mDoGph_gInf_c::startFadeOut(mTimer); + field_0x20e = 30; + field_0x210 = field_0x20e; + field_0x212 = 0; + } + mDoRst::setProgSeqFlag(1); + } + } else { + if (field_0x214 == 0) { + mExecCommand = EXEC_PROG_OUT; + mTimer = 30; + mDoGph_gInf_c::startFadeOut(30); + field_0x20e = 30; + field_0x210 = field_0x20e; + field_0x212 = 0; + } else { + field_0x214--; + } + } + + f32 alpha = (f32)field_0x210 / (f32)field_0x20e; + if (field_0x212 != 0) { + alpha = 1.0f - alpha; + } + u8 r = alpha * 255.0f; + u8 g = alpha * 200.0f; + + if (field_0x209 != 0) { + mProgressiveYes->getPicture()->setWhite(JUtility::TColor(160, 160, 160, 255)); + mProgressiveYes->getPicture()->setBlack(JUtility::TColor(0, 0, 0, 0)); + + mProgressiveNo->getPicture()->setWhite(JUtility::TColor(255, 200, 0, 255)); + mProgressiveNo->getPicture()->setBlack(JUtility::TColor(r, g, 0, 0)); + } else { + mProgressiveYes->getPicture()->setWhite(JUtility::TColor(255, 200, 0, 255)); + mProgressiveYes->getPicture()->setBlack(JUtility::TColor(r, g, 0, 0)); + + mProgressiveNo->getPicture()->setWhite(JUtility::TColor(160, 160, 160, 255)); + mProgressiveNo->getPicture()->setBlack(JUtility::TColor(0, 0, 0, 0)); + } + + if (field_0x210 == 0) { + field_0x210 = field_0x20e; + field_0x212 ^= 1; + } else { + field_0x210--; + } } -#pragma pop /* 802568E0-80256A3C 251220 015C+00 1/0 0/0 0/0 .text progOutDraw__10dScnLogo_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnLogo_c::progOutDraw() { - nofralloc -#include "asm/d/s/d_s_logo/progOutDraw__10dScnLogo_cFv.s" +void dScnLogo_c::progOutDraw() { + dComIfGd_set2DOpa(mProgressiveChoice); + dComIfGd_set2DOpa(mProgressiveYes); + dComIfGd_set2DOpa(mProgressiveNo); + + if (mTimer == 0) { + if (field_0x218 != 0 && field_0x209 == 0) { + mExecCommand = EXEC_PROG_CHANGE; + mTimer = 150; + } else if (field_0x218 == 0 && field_0x209 != 0) { + if (mDoRst::getWarningDispFlag() != 0) { + mTimer = 90; + mExecCommand = EXEC_NINTENDO_IN; + } else { + mTimer = 120; + mExecCommand = EXEC_WARNING_IN; + } + + mDoGph_gInf_c::startFadeIn(30); + } else { + mExecCommand = EXEC_PROG_SET; + mTimer = 150; + mDoGph_gInf_c::startFadeIn(30); + } + } } -#pragma pop /* 80256A3C-80256AC0 25137C 0084+00 1/0 0/0 0/0 .text progSetDraw__10dScnLogo_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnLogo_c::progSetDraw() { - nofralloc -#include "asm/d/s/d_s_logo/progSetDraw__10dScnLogo_cFv.s" +void dScnLogo_c::progSetDraw() { + dComIfGd_set2DOpa(mProgressiveSel); + + if (mTimer == 0) { + mExecCommand = EXEC_PROG_SET2; + mTimer = 30; + mDoGph_gInf_c::startFadeOut(30); + } } -#pragma pop /* 80256AC0-80256B3C 251400 007C+00 1/0 0/0 0/0 .text progSet2Draw__10dScnLogo_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnLogo_c::progSet2Draw() { - nofralloc -#include "asm/d/s/d_s_logo/progSet2Draw__10dScnLogo_cFv.s" +void dScnLogo_c::progSet2Draw() { + dComIfGd_set2DOpa(mProgressiveSel); + + if (mTimer == 0) { + if (getProgressiveMode() != 0) { + mTimer = 150; + } else { + mTimer = 30; + } + + mExecCommand = EXEC_PROG_CHANGE; + } } -#pragma pop /* 80256B3C-80256BF4 25147C 00B8+00 1/0 0/0 0/0 .text progChangeDraw__10dScnLogo_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnLogo_c::progChangeDraw() { - nofralloc -#include "asm/d/s/d_s_logo/progChangeDraw__10dScnLogo_cFv.s" +void dScnLogo_c::progChangeDraw() { + if (getProgressiveMode() != 0 && mTimer == 90 && field_0x209 == 0) { + setRenderMode(); + } + + if (mTimer == 0) { + if (mDoRst::getWarningDispFlag() != 0) { + mTimer = 90; + mExecCommand = EXEC_NINTENDO_IN; + } else { + mTimer = 120; + mExecCommand = EXEC_WARNING_IN; + } + + mDoGph_gInf_c::startFadeIn(30); + } } -#pragma pop /* 80256BF4-80256C68 251534 0074+00 1/0 0/0 0/0 .text warningInDraw__10dScnLogo_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnLogo_c::warningInDraw() { - nofralloc -#include "asm/d/s/d_s_logo/warningInDraw__10dScnLogo_cFv.s" +void dScnLogo_c::warningInDraw() { + dComIfGd_set2DOpa(mWarning); + + if (mTimer == 0) { + mExecCommand = EXEC_WARNING_DISP; + mTimer = 3510; + field_0x20e = 30; + field_0x210 = field_0x20e; + field_0x212 = 1; + } } -#pragma pop /* 80256C68-80256DC4 2515A8 015C+00 1/0 0/0 0/0 .text warningDispDraw__10dScnLogo_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnLogo_c::warningDispDraw() { - nofralloc -#include "asm/d/s/d_s_logo/warningDispDraw__10dScnLogo_cFv.s" +void dScnLogo_c::warningDispDraw() { + dComIfGd_set2DOpa(mWarning); + dComIfGd_set2DOpa(mWarningStart); + + f32 alpha = (f32)field_0x210 / (f32)field_0x20e; + if (field_0x212 != 0) { + alpha = 1.0f - alpha; + } + + mWarningStart->setAlpha(255.0f * alpha); + if (field_0x210 == 0) { + field_0x210 = field_0x20e; + field_0x212 ^= 1; + } else { + field_0x210--; + } + + if (mTimer == 0 || + mDoCPd_c::getTrig(0) & (CButton::A | CButton::B | CButton::X | CButton::Y | CButton::START | + CButton::Z | CButton::L | CButton::R | CButton::DPAD_LEFT | + CButton::DPAD_RIGHT | CButton::DPAD_DOWN | CButton::DPAD_UP)) { + mExecCommand = EXEC_WARNING_OUT; + mTimer = 30; + mDoGph_gInf_c::startFadeOut(30); + mDoRst::setWarningDispFlag(1); + } } -#pragma pop /* 80256DC4-80256E48 251704 0084+00 1/0 0/0 0/0 .text warningOutDraw__10dScnLogo_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnLogo_c::warningOutDraw() { - nofralloc -#include "asm/d/s/d_s_logo/warningOutDraw__10dScnLogo_cFv.s" +void dScnLogo_c::warningOutDraw() { + dComIfGd_set2DOpa(mWarning); + + if (mTimer == 0) { + mTimer = 90; + mExecCommand = EXEC_NINTENDO_IN; + mDoGph_gInf_c::startFadeIn(30); + } } -#pragma pop /* 80256E48-80256ECC 251788 0084+00 1/0 0/0 0/0 .text nintendoInDraw__10dScnLogo_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnLogo_c::nintendoInDraw() { - nofralloc -#include "asm/d/s/d_s_logo/nintendoInDraw__10dScnLogo_cFv.s" +void dScnLogo_c::nintendoInDraw() { + dComIfGd_set2DOpa(mNintendoLogo); + + if (mTimer == 0) { + mExecCommand = EXEC_NINTENDO_OUT; + mTimer = 30; + mDoGph_gInf_c::startFadeOut(30); + } } -#pragma pop /* 80256ECC-80256F50 25180C 0084+00 1/0 0/0 0/0 .text nintendoOutDraw__10dScnLogo_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnLogo_c::nintendoOutDraw() { - nofralloc -#include "asm/d/s/d_s_logo/nintendoOutDraw__10dScnLogo_cFv.s" +void dScnLogo_c::nintendoOutDraw() { + dComIfGd_set2DOpa(mNintendoLogo); + + if (mTimer == 0) { + mExecCommand = EXEC_DOLBY_IN; + mTimer = 90; + mDoGph_gInf_c::startFadeIn(30); + } } -#pragma pop /* 80256F50-80256FD4 251890 0084+00 1/0 0/0 0/0 .text dolbyInDraw__10dScnLogo_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnLogo_c::dolbyInDraw() { - nofralloc -#include "asm/d/s/d_s_logo/dolbyInDraw__10dScnLogo_cFv.s" +void dScnLogo_c::dolbyInDraw() { + dComIfGd_set2DOpa(mDolbyLogo); + + if (mTimer == 0) { + mExecCommand = EXEC_DOLBY_OUT; + mTimer = 30; + mDoGph_gInf_c::startFadeOut(30); + } } -#pragma pop /* 80256FD4-80257058 251914 0084+00 1/0 0/0 0/0 .text dolbyOutDraw__10dScnLogo_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnLogo_c::dolbyOutDraw() { - nofralloc -#include "asm/d/s/d_s_logo/dolbyOutDraw__10dScnLogo_cFv.s" +void dScnLogo_c::dolbyOutDraw() { + dComIfGd_set2DOpa(mDolbyLogo); + + if (mTimer == 0) { + mExecCommand = EXEC_DOLBY_OUT2; + mTimer = 30; + mDoGph_gInf_c::startFadeIn(30); + } } -#pragma pop /* 80257058-80257070 251998 0018+00 1/0 0/0 0/0 .text dolbyOutDraw2__10dScnLogo_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnLogo_c::dolbyOutDraw2() { - nofralloc -#include "asm/d/s/d_s_logo/dolbyOutDraw2__10dScnLogo_cFv.s" +void dScnLogo_c::dolbyOutDraw2() { + if (mTimer != 0) { + return; + } + mExecCommand = EXEC_DVD_WAIT; } -#pragma pop /* 80257070-80257284 2519B0 0214+00 1/0 0/0 0/0 .text dvdWaitDraw__10dScnLogo_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnLogo_c::dvdWaitDraw() { - nofralloc -#include "asm/d/s/d_s_logo/dvdWaitDraw__10dScnLogo_cFv.s" +void dScnLogo_c::dvdWaitDraw() { + if (!dComIfG_syncAllObjectRes()) { + if (mpField0Command->sync() && mpAlAnmCommand->sync() && mpFmapResCommand->sync() && + mpDmapResCommand->sync() && mpCollectResCommand->sync() && mpItemIconCommand->sync() && + mpRingResCommand->sync() && mpPlayerNameCommand->sync() && + mpItemInfResCommand->sync() && mpButtonCommand->sync() && mpCardIconCommand->sync() && + mpBmgResCommand->sync() && mpMsgComCommand->sync() && mpMsgResCommand[0]->sync() && + mpMsgResCommand[1]->sync() && mpMsgResCommand[2]->sync() && + mpMsgResCommand[3]->sync() && mpMsgResCommand[4]->sync() && + mpMsgResCommand[5]->sync() && mpMsgResCommand[6]->sync() && mpFontResCommand->sync() && + mpMain2DCommand->sync() && mpRubyResCommand->sync() && mParticleCommand->sync() && + mItemTableCommand->sync() && mEnemyItemCommand->sync() && preLoad_dyl()) { + mDoRst::setLogoScnFlag(0); + mDoRst::setProgChgFlag(0); + mExecCommand = EXEC_SCENE_CHANGE; + } + } } -#pragma pop /* 80257284-802572B8 251BC4 0034+00 1/0 0/0 0/0 .text nextSceneChange__10dScnLogo_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnLogo_c::nextSceneChange() { - nofralloc -#include "asm/d/s/d_s_logo/nextSceneChange__10dScnLogo_cFv.s" +void dScnLogo_c::nextSceneChange() { + if (!mDoRst::isReset()) { + dComIfG_changeOpeningScene(this, PROC_OPENING_SCENE); + } } -#pragma pop - -/* ############################################################################################## */ -/* 80399FFC-80399FFC 02665C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80399FFC = "LogoUs"; -SECTION_DEAD static char const* const stringBase_8039A003 = "Always"; -#pragma pop /* 802572B8-80257910 251BF8 0658+00 1/1 0/0 0/0 .text __dt__10dScnLogo_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dScnLogo_c::~dScnLogo_c() { - nofralloc -#include "asm/d/s/d_s_logo/__dt__10dScnLogo_cFv.s" +dScnLogo_c::~dScnLogo_c() { + if (mDoRst::isReset()) { + if (mDoAud_zelAudio_c::isInitFlag()) { + Z2AudioMgr::getInterface()->resetProcess(5, true); + } + mDoRst_reset(0, 0x80000000, 0); + } + + delete mNintendoLogo; + delete mWarning; + delete mWarningStart; + delete mDolbyLogo; + delete mProgressiveChoice; + delete mProgressiveYes; + delete mProgressiveNo; + delete mProgressiveSel; + + preLoad_dyl_remove(); + dComIfG_deleteObjectResMain("LogoUs"); + + field_0x1d4->destroy(); + field_0x1d0->destroy(); + JKRFree(buffer); + + dComIfGp_particle_createCommon(mParticleCommand->getMemAddress()); + dComIfGp_setFieldMapArchive2(mpField0Command->getArchive()); + dComIfGp_setAnmArchive(mpAlAnmCommand->getArchive()); + dComIfGp_setFmapResArchive(mpFmapResCommand->getArchive()); + dComIfGp_setDmapResArchive(mpDmapResCommand->getArchive()); + dComIfGp_setCollectResArchive(mpCollectResCommand->getArchive()); + dComIfGp_setItemIconArchive(mpItemIconCommand->getArchive()); + dComIfGp_setAllMapArchive(NULL); + dComIfGp_setRingResArchive(mpRingResCommand->getArchive()); + dComIfGp_setNameResArchive(mpPlayerNameCommand->getArchive()); + dComIfGp_setDemoMsgArchive(mpItemInfResCommand->getArchive()); + dComIfGp_setMeterButtonArchive(mpButtonCommand->getArchive()); + dComIfGp_setErrorResArchive(NULL); + dComIfGp_setCardIconResArchive(mpCardIconCommand->getArchive()); + dComIfGp_setMsgDtArchive(0, mpBmgResCommand->getArchive()); + dComIfGp_setMsgCommonArchive(mpMsgComCommand->getArchive()); + for (int i = 0; i < 7; i++) { + dComIfGp_setMsgArchive(i, mpMsgResCommand[i]->getArchive()); + } + dComIfGp_setFontArchive(mpFontResCommand->getArchive()); + dComIfGp_setRubyArchive(mpRubyResCommand->getArchive()); + dComIfGp_setMain2DArchive(mpMain2DCommand->getArchive()); + + mpField0Command->destroy(); + mpAlAnmCommand->destroy(); + mpFmapResCommand->destroy(); + mpDmapResCommand->destroy(); + mpCollectResCommand->destroy(); + mpItemIconCommand->destroy(); + mpRingResCommand->destroy(); + mpPlayerNameCommand->destroy(); + mpItemInfResCommand->destroy(); + mpButtonCommand->destroy(); + mpCardIconCommand->destroy(); + mpBmgResCommand->destroy(); + mpMsgComCommand->destroy(); + for (int i = 0; i < 7; i++) { + mpMsgResCommand[i]->destroy(); + } + mpFontResCommand->destroy(); + mpMain2DCommand->destroy(); + mpRubyResCommand->destroy(); + mParticleCommand->destroy(); + + JKRAramHeap* aram_heap = JKRAram::getAramHeap(); + u32 free_size = aram_heap->getTotalFreeSize(); + mDoExt_getMesgFont(); + mDoExt_getSubFont(); + mDoExt_getRubyFont(); + mDoExt_setAraCacheSize(free_size - aram_heap->getTotalFreeSize()); + + dComIfGp_setItemTable(mItemTableCommand->getMemAddress()); + mItemTableCommand->destroy(); + + dEnemyItem_c::setItemData((u8*)mEnemyItemCommand->getMemAddress()); + mEnemyItemCommand->destroy(); + + dDlst_shadowControl_c::setSimpleTex((ResTIMG*)dComIfG_getObjectRes("Always", 0x4A)); + dTres_c::createWork(); + dMpath_c::createWork(); } -#pragma pop /* 80257910-802579BC 252250 00AC+00 1/0 0/0 0/0 .text phase_0__FP10dScnLogo_c */ +// setFadeColor instruction reordering +#ifdef NONMATCHING +static int phase_0(dScnLogo_c* logo) { + mDoGph_gInf_c::setFadeColor(*(JUtility::TColor*)&g_blackColor); + dComIfGp_particle_create(); + + logo->buffer = mDoExt_getGameHeap()->alloc(0x340000, -0x10); + logo->field_0x1d0 = JKRExpHeap::create(logo->buffer, 0x340000, NULL, false); + logo->field_0x1d4 = JKRExpHeap::create(0x130000, logo->field_0x1d0, false); + + return 2; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void phase_0(dScnLogo_c* param_0) { +static asm int phase_0(dScnLogo_c* param_0) { nofralloc #include "asm/d/s/d_s_logo/phase_0__FP10dScnLogo_c.s" } #pragma pop - -/* ############################################################################################## */ -/* 80399FFC-80399FFC 02665C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039A00A = "/res/Object/"; -#pragma pop +#endif /* 802579BC-80257A70 2522FC 00B4+00 1/0 0/0 0/0 .text phase_1__FP10dScnLogo_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void phase_1(dScnLogo_c* param_0) { - nofralloc -#include "asm/d/s/d_s_logo/phase_1__FP10dScnLogo_c.s" +static int phase_1(dScnLogo_c* logo) { + if (!cDyl_InitAsyncIsDone()) { + return 0; + } + + if (!mDoAud_zelAudio_c::isInitFlag() || + Z2AudioMgr::getInterface()->mSceneMgr.checkFirstWaves()) { + return 0; + } + + dComIfG_setObjectRes("LogoUs", 0, logo->field_0x1d0); + mDoRst::setLogoScnFlag(1); + archiveHeap->dump_sort(); + return 2; } -#pragma pop /* 80257A70-80257AB4 2523B0 0044+00 1/0 0/0 0/0 .text phase_2__FP10dScnLogo_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void phase_2(dScnLogo_c* param_0) { - nofralloc -#include "asm/d/s/d_s_logo/phase_2__FP10dScnLogo_c.s" +static int phase_2(dScnLogo_c* param_0) { + return dComIfG_syncAllObjectRes() ? 0 : 4; } -#pragma pop /* 80257AB4-80257AE0 2523F4 002C+00 1/1 0/0 0/0 .text * resLoad__FP30request_of_phase_process_classP10dScnLogo_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void resLoad(request_of_phase_process_class* param_0, dScnLogo_c* param_1) { - nofralloc -#include "asm/d/s/d_s_logo/resLoad__FP30request_of_phase_process_classP10dScnLogo_c.s" +static int resLoad(request_of_phase_process_class* i_phase, dScnLogo_c* param_1) { + static int (*l_method[3])(void*) = {(int (*)(void*))phase_0, (int (*)(void*))phase_1, + (int (*)(void*))phase_2}; + + return dComLbG_PhaseHandler(i_phase, l_method, param_1); } -#pragma pop /* 80257AE0-80257C64 252420 0184+00 1/1 0/0 0/0 .text create__10dScnLogo_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnLogo_c::create() { - nofralloc -#include "asm/d/s/d_s_logo/create__10dScnLogo_cFv.s" +int dScnLogo_c::create() { + int stat = resLoad(&field_0x1c4, this); + if (stat != 4) { + return stat; + } + + mpHeap = mDoExt_setCurrentHeap(field_0x1d4); + logoInitGC(); + mpHeap->becomeCurrentHeap(); + + dvdDataLoad(); + Z2AudioMgr::getInterface()->mSceneMgr.loadStaticWaves(); + mDoGph_gInf_c::setTickRate((OS_BUS_CLOCK / 4) / 60); + mDoGph_gInf_c::waitBlanking(0); + field_0x20a = 0; + mDoGph_gInf_c::startFadeIn(30); + + checkProgSelect(); + if (field_0x20a != 0) { + mExecCommand = EXEC_PROG_IN; + mTimer = 30; + field_0x218 = getProgressiveMode(); + } else { + if (mDoRst::getWarningDispFlag()) { + mTimer = 90; + mExecCommand = EXEC_NINTENDO_IN; + } else { + mTimer = 120; + mExecCommand = EXEC_WARNING_IN; + } + mDoRst::setProgSeqFlag(1); + } + + JUTGamePad::clearResetOccurred(); + JUTGamePad::setResetCallback(mDoRst_resetCallBack, NULL); + mDoRst::offReset(); + mDoRst::offResetPrepare(); + + return stat; } -#pragma pop /* 80257C64-80257FEC 2525A4 0388+00 1/1 0/0 0/0 .text logoInitGC__10dScnLogo_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnLogo_c::logoInitGC() { - nofralloc -#include "asm/d/s/d_s_logo/logoInitGC__10dScnLogo_cFv.s" -} -#pragma pop +void dScnLogo_c::logoInitGC() { + ResTIMG* nintendoImg = (ResTIMG*)dComIfG_getObjectRes("LogoUs", 4); + mNintendoLogo = new dDlst_2D_c(nintendoImg, 117, 154, 376, 104, 255); + mNintendoLogo->getPicture()->setWhite(JUtility::TColor(220, 0, 0, 255)); -/* ############################################################################################## */ -/* 80399FFC-80399FFC 02665C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039A017 = "Alink"; -SECTION_DEAD static char const* const stringBase_8039A01D = "/res/FieldMap/Field0.arc"; -SECTION_DEAD static char const* const stringBase_8039A036 = "/res/Object/AlAnm.arc"; -SECTION_DEAD static char const* const stringBase_8039A04C = "/res/Layout/fmapres.arc"; -SECTION_DEAD static char const* const stringBase_8039A064 = "/res/Layout/dmapres.arc"; -SECTION_DEAD static char const* const stringBase_8039A07C = "/res/Layout/clctres.arc"; -SECTION_DEAD static char const* const stringBase_8039A094 = "/res/Layout/itemicon.arc"; -SECTION_DEAD static char const* const stringBase_8039A0AD = "/res/Layout/ringres.arc"; -SECTION_DEAD static char const* const stringBase_8039A0C5 = "/res/Layout/playerName.arc"; -SECTION_DEAD static char const* const stringBase_8039A0E0 = "/res/Layout/itmInfRes.arc"; -SECTION_DEAD static char const* const stringBase_8039A0FA = "/res/Layout/button.arc"; -SECTION_DEAD static char const* const stringBase_8039A111 = "/res/CardIcon/cardicon.arc"; -SECTION_DEAD static char const* const stringBase_8039A12C = "/res/Msgus/bmgres.arc"; -SECTION_DEAD static char const* const stringBase_8039A142 = "/res/Layout/msgcom.arc"; -SECTION_DEAD static char const* const stringBase_8039A159 = "/res/Layout/msgres00.arc"; -SECTION_DEAD static char const* const stringBase_8039A172 = "/res/Layout/msgres01.arc"; -SECTION_DEAD static char const* const stringBase_8039A18B = "/res/Layout/msgres02.arc"; -SECTION_DEAD static char const* const stringBase_8039A1A4 = "/res/Layout/msgres03.arc"; -SECTION_DEAD static char const* const stringBase_8039A1BD = "/res/Layout/msgres04F.arc"; -SECTION_DEAD static char const* const stringBase_8039A1D7 = "/res/Layout/msgres05.arc"; -SECTION_DEAD static char const* const stringBase_8039A1F0 = "/res/Layout/msgres06.arc"; -SECTION_DEAD static char const* const stringBase_8039A209 = "/res/Layout/main2D.arc"; -SECTION_DEAD static char const* const stringBase_8039A220 = "/res/Fontus/fontres.arc"; -SECTION_DEAD static char const* const stringBase_8039A238 = "/res/Fontus/rubyres.arc"; -SECTION_DEAD static char const* const stringBase_8039A250 = "/res/Particle/common.jpc"; -SECTION_DEAD static char const* const stringBase_8039A269 = "/res/ItemTable/item_table.bin"; -SECTION_DEAD static char const* const stringBase_8039A287 = "/res/ItemTable/enemy_table.bin"; -/* @stringBase0 padding */ -SECTION_DEAD static char const* const pad_8039A2A6 = "\0"; -#pragma pop + ResTIMG* dolbyImg = (ResTIMG*)dComIfG_getObjectRes("LogoUs", 3); + mDolbyLogo = new dDlst_2D_c(dolbyImg, 189, 150, 232, 112, 255); + + ResTIMG* warningImg = (ResTIMG*)dComIfG_getObjectRes("LogoUs", 10); + mWarning = new dDlst_2D_c(warningImg, 0, 0, 608, 448, 255); + + ResTIMG* warnStartImg = (ResTIMG*)dComIfG_getObjectRes("LogoUs", 11); + mWarningStart = new dDlst_2D_c(warnStartImg, 0, 359, 608, 48, 255); + + ResTIMG* progChoiceImg = (ResTIMG*)dComIfG_getObjectRes("LogoUs", 5); + mProgressiveChoice = new dDlst_2D_c(progChoiceImg, 113, 281, 416, 72, 255); + + ResTIMG* progYesImg = (ResTIMG*)dComIfG_getObjectRes("LogoUs", 9); + mProgressiveYes = new dDlst_2D_c(progYesImg, 211, 372, 80, 32, 255); + mProgressiveYes->getPicture()->setWhite(JUtility::TColor(160, 160, 160, 255)); + + ResTIMG* progNoImg = (ResTIMG*)dComIfG_getObjectRes("LogoUs", 7); + mProgressiveNo = new dDlst_2D_c(progNoImg, 350, 372, 80, 32, 255); + mProgressiveNo->getPicture()->setWhite(JUtility::TColor(160, 160, 160, 255)); + + mProgressivePro = (ResTIMG*)dComIfG_getObjectRes("LogoUs", 8); + mProgressiveInter = (ResTIMG*)dComIfG_getObjectRes("LogoUs", 6); + mProgressiveSel = new dDlst_2D_c(mProgressivePro, 153, 309, 336, 88, 255); +} /* 80257FEC-80258420 25292C 0434+00 1/1 0/0 0/0 .text dvdDataLoad__10dScnLogo_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnLogo_c::dvdDataLoad() { - nofralloc -#include "asm/d/s/d_s_logo/dvdDataLoad__10dScnLogo_cFv.s" +void dScnLogo_c::dvdDataLoad() { + dComIfG_setObjectRes("Always", 0, NULL); + archiveHeap->dump_sort(); + + dComIfG_setObjectRes("Alink", 0, NULL); + + mpField0Command = mDoDvdThd_mountXArchive_c::create( + "/res/FieldMap/Field0.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap()); + mpAlAnmCommand = + mDoDvdThd_mountXArchive_c::create("/res/Object/AlAnm.arc", 0, JKRArchive::MOUNT_ARAM, NULL); + mpFmapResCommand = mDoDvdThd_mountXArchive_c::create( + "/res/Layout/fmapres.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap()); + mpDmapResCommand = mDoDvdThd_mountXArchive_c::create( + "/res/Layout/dmapres.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap()); + mpCollectResCommand = mDoDvdThd_mountXArchive_c::create( + "/res/Layout/clctres.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap()); + mpItemIconCommand = mDoDvdThd_mountXArchive_c::create( + "/res/Layout/itemicon.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap()); + mpRingResCommand = mDoDvdThd_mountXArchive_c::create( + "/res/Layout/ringres.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap()); + mpPlayerNameCommand = mDoDvdThd_mountXArchive_c::create( + "/res/Layout/playerName.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap()); + mpItemInfResCommand = mDoDvdThd_mountXArchive_c::create( + "/res/Layout/itmInfRes.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap()); + mpButtonCommand = mDoDvdThd_mountXArchive_c::create( + "/res/Layout/button.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap()); + mpCardIconCommand = mDoDvdThd_mountXArchive_c::create( + "/res/CardIcon/cardicon.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap()); + mpBmgResCommand = + mDoDvdThd_mountXArchive_c::create("/res/Msgus/bmgres.arc", 0, JKRArchive::MOUNT_MEM, NULL); + mpMsgComCommand = mDoDvdThd_mountXArchive_c::create( + "/res/Layout/msgcom.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap()); + mpMsgResCommand[0] = mDoDvdThd_mountXArchive_c::create( + "/res/Layout/msgres00.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap()); + mpMsgResCommand[1] = mDoDvdThd_mountXArchive_c::create( + "/res/Layout/msgres01.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap()); + mpMsgResCommand[2] = mDoDvdThd_mountXArchive_c::create( + "/res/Layout/msgres02.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap()); + mpMsgResCommand[3] = mDoDvdThd_mountXArchive_c::create( + "/res/Layout/msgres03.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap()); + mpMsgResCommand[4] = mDoDvdThd_mountXArchive_c::create( + "/res/Layout/msgres04F.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap()); + mpMsgResCommand[5] = mDoDvdThd_mountXArchive_c::create( + "/res/Layout/msgres05.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap()); + mpMsgResCommand[6] = mDoDvdThd_mountXArchive_c::create( + "/res/Layout/msgres06.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap()); + mpMain2DCommand = + mDoDvdThd_mountXArchive_c::create("/res/Layout/main2D.arc", 0, JKRArchive::MOUNT_MEM, NULL); + mpFontResCommand = mDoDvdThd_mountXArchive_c::create("/res/Fontus/fontres.arc", 0, + JKRArchive::MOUNT_MEM, NULL); + mpRubyResCommand = mDoDvdThd_mountXArchive_c::create("/res/Fontus/rubyres.arc", 0, + JKRArchive::MOUNT_MEM, NULL); + mParticleCommand = mDoDvdThd_toMainRam_c::create("/res/Particle/common.jpc", 0, + dComIfGp_particle_getResHeap()); + mItemTableCommand = mDoDvdThd_toMainRam_c::create("/res/ItemTable/item_table.bin", 0, NULL); + mEnemyItemCommand = mDoDvdThd_toMainRam_c::create("/res/ItemTable/enemy_table.bin", 0, NULL); + + preLoad_dyl_create(); + preLoad_dyl(); } -#pragma pop /* 80258420-80258444 252D60 0024+00 1/0 0/0 0/0 .text dScnLogo_Create__FP11scene_class */ +#ifdef NONMATCHING +static int dScnLogo_Create(scene_class* scn) { + return static_cast<dScnLogo_c*>(scn)->create(); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -928,126 +829,88 @@ static asm void dScnLogo_Create(scene_class* param_0) { #include "asm/d/s/d_s_logo/dScnLogo_Create__FP11scene_class.s" } #pragma pop +#endif /* 80258444-80258484 252D84 0040+00 1/0 0/0 0/0 .text dScnLogo_Execute__FP10dScnLogo_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dScnLogo_Execute(dScnLogo_c* param_0) { - nofralloc -#include "asm/d/s/d_s_logo/dScnLogo_Execute__FP10dScnLogo_c.s" +static int dScnLogo_Execute(dScnLogo_c* logo) { + if (mDoRst::isReset()) { + fopScnM_ChangeReq(logo, 9, 0, 5); + } + return 1; } -#pragma pop /* 80258484-802584A8 252DC4 0024+00 1/0 0/0 0/0 .text dScnLogo_Draw__FP10dScnLogo_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dScnLogo_Draw(dScnLogo_c* param_0) { - nofralloc -#include "asm/d/s/d_s_logo/dScnLogo_Draw__FP10dScnLogo_c.s" +static int dScnLogo_Draw(dScnLogo_c* logo) { + logo->draw(); + return 1; } -#pragma pop /* 802584A8-802584D0 252DE8 0028+00 1/0 0/0 0/0 .text dScnLogo_Delete__FP10dScnLogo_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dScnLogo_Delete(dScnLogo_c* param_0) { - nofralloc -#include "asm/d/s/d_s_logo/dScnLogo_Delete__FP10dScnLogo_c.s" +static int dScnLogo_Delete(dScnLogo_c* logo) { + logo->~dScnLogo_c(); + return 1; } -#pragma pop /* 802584D0-802584D8 252E10 0008+00 1/0 0/0 0/0 .text dScnLogo_IsDelete__FP10dScnLogo_c */ -static bool dScnLogo_IsDelete(dScnLogo_c* param_0) { - return true; +static int dScnLogo_IsDelete(dScnLogo_c* logo) { + return 1; } /* 802584D8-802584FC 252E18 0024+00 1/1 0/0 0/0 .text setProgressiveMode__10dScnLogo_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnLogo_c::setProgressiveMode(u8 param_0) { - nofralloc -#include "asm/d/s/d_s_logo/setProgressiveMode__10dScnLogo_cFUc.s" +void dScnLogo_c::setProgressiveMode(u8 mode) { + OSSetProgressiveMode(mode); } -#pragma pop /* 802584FC-80258520 252E3C 0024+00 3/3 0/0 0/0 .text getProgressiveMode__10dScnLogo_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnLogo_c::getProgressiveMode() { - nofralloc -#include "asm/d/s/d_s_logo/getProgressiveMode__10dScnLogo_cFv.s" +u8 dScnLogo_c::getProgressiveMode() { + return OSGetProgressiveMode(); } -#pragma pop /* 80258520-8025854C 252E60 002C+00 1/1 0/0 0/0 .text isProgressiveMode__10dScnLogo_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnLogo_c::isProgressiveMode() { - nofralloc -#include "asm/d/s/d_s_logo/isProgressiveMode__10dScnLogo_cFv.s" +bool dScnLogo_c::isProgressiveMode() { + return OSGetProgressiveMode() == 1; } -#pragma pop /* 8025854C-8025855C 252E8C 0010+00 1/1 0/0 0/0 .text setRenderMode__10dScnLogo_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnLogo_c::setRenderMode() { - nofralloc -#include "asm/d/s/d_s_logo/setRenderMode__10dScnLogo_cFv.s" +void dScnLogo_c::setRenderMode() { + mDoMch_render_c::setProgressiveMode(); } -#pragma pop /* 8025855C-802585A4 252E9C 0048+00 2/1 0/0 0/0 .text __dt__10dLog_HIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dLog_HIO_c::~dLog_HIO_c() { - nofralloc -#include "asm/d/s/d_s_logo/__dt__10dLog_HIO_cFv.s" -} -#pragma pop +dLog_HIO_c::~dLog_HIO_c() {} /* 802585A4-802585C0 252EE4 001C+00 1/1 0/0 0/0 .text cLib_calcTimer<Us>__FPUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_802585A4(void* _this, u16* param_0) { - nofralloc -#include "asm/d/s/d_s_logo/func_802585A4.s" +template <typename T> +T cLib_calcTimer(T* value) { + if (*value != 0) { + *value = *value - 1; + } + return *value; } -#pragma pop - -/* ############################################################################################## */ -/* 80430758-80430768 05D478 000C+04 1/1 0/0 0/0 .bss @3702 */ -static u8 lit_3702[12 + 4 /* padding */]; - -/* 804510E8-804510F0 0005E8 0008+00 1/1 0/0 0/0 .sbss g_LogHIO */ -static u8 g_LogHIO[8]; -/* 802585C0-8025878C 252F00 01CC+00 0/0 1/0 0/0 .text __sinit_d_s_logo_cpp */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __sinit_d_s_logo_cpp() { - nofralloc -#include "asm/d/s/d_s_logo/__sinit_d_s_logo_cpp.s" -} -#pragma pop +/* 803C2FD0-803C2FE4 -00001 0014+00 1/0 0/0 0/0 .data l_dScnLogo_Method */ +SECTION_DATA static void* l_dScnLogo_Method[5] = { + (void*)dScnLogo_Create__FP11scene_class, (void*)dScnLogo_Delete__FP10dScnLogo_c, + (void*)dScnLogo_Execute__FP10dScnLogo_c, (void*)dScnLogo_IsDelete__FP10dScnLogo_c, + (void*)dScnLogo_Draw__FP10dScnLogo_c, +}; -#pragma push -#pragma force_active on -REGISTER_CTORS(0x802585C0, __sinit_d_s_logo_cpp); -#pragma pop +/* 803C2FE4-803C300C -00001 0028+00 0/0 0/0 1/0 .data g_profile_LOGO_SCENE */ +SECTION_DATA extern void* g_profile_LOGO_SCENE[10] = { + (void*)NULL, + (void*)0x0001FFFD, + (void*)0x00090000, + (void*)&g_fpcNd_Method, + (void*)0x000002A8, + (void*)NULL, + (void*)NULL, + (void*)&g_fopScn_Method, + (void*)&l_dScnLogo_Method, + (void*)NULL, +}; /* 80399FFC-80399FFC 02665C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ |
