diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2026-03-01 13:19:48 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-01 13:19:48 -0800 |
| commit | 6e149819e13b1f70ecbf8a4c66b030c17ffed2bb (patch) | |
| tree | c0891f81261457accd576ac633c1ceeff4206c67 /src/d/d_s_logo.cpp | |
| parent | 6a48380461bc9baabe1706ba57ca0cedfa2d0c51 (diff) | |
d_s_logo / d_s_play debug work, d_a_kago cleanup, misc cleanup (#3116)
* d_a_kago cleanup
* d_s_logo wii/shield work
* d_s_logo / d_s_play debug work
* fix missing profile class sizeof's
* fix phase->id values
* build fixes
* fix dCamera_c and camera profile
Diffstat (limited to 'src/d/d_s_logo.cpp')
| -rw-r--r-- | src/d/d_s_logo.cpp | 894 |
1 files changed, 777 insertions, 117 deletions
diff --git a/src/d/d_s_logo.cpp b/src/d/d_s_logo.cpp index 7a2e5303f7..663d98e425 100644 --- a/src/d/d_s_logo.cpp +++ b/src/d/d_s_logo.cpp @@ -18,12 +18,32 @@ #include "m_Do/m_Do_graphic.h" #include "m_Do/m_Do_machine.h" #include <cstring> +#include "m_Do/m_Do_main.h" +#include "JSystem/JUtility/JUTConsole.h" -#if PLATFORM_WII +#if !PLATFORM_GCN +#include <revolution/os.h> +#include <revolution/sc.h> +#include "m_Do/m_Do_Reset.h" + +#include "res/Object/LogoUsWii.h" +#endif + +#if PLATFORM_WII || VERSION == VERSION_SHIELD +#include "m_Re/m_Re_controller_pad.h" #include "d/d_cursor_mng.h" +#include "d/d_home_button.h" + +struct homeBtnData { + /* 0x0 */ int region; + /* 0x4 */ const char* path; +}; #endif -#if VERSION == VERSION_GCN_JPN +#if VERSION == VERSION_SHIELD +#define LOGO_ARC "LogoUs" +#define MSG_PATH "/res/Msgcn/bmgres.arc" +#elif VERSION == VERSION_GCN_JPN #define LOGO_ARC "Logo" #define MSG_PATH "/res/Msgjp/bmgres.arc" #elif VERSION == VERSION_GCN_PAL @@ -42,22 +62,70 @@ #define PROGRESSIVE_MODE_ON OS_PROGRESSIVE_MODE_ON #endif -static dLog_HIO_c g_LogHIO; +#if PLATFORM_WII || VERSION == VERSION_SHIELD_DEBUG +#define FMAP_RES_PATH "/res/LayoutRevo/fmapresR.arc" +#define DMAP_RES_PATH "/res/LayoutRevo/dmapresR.arc" +#define COLLECT_RES_PATH "/res/LayoutRevo/clctresR.arc" -typedef void (dScnLogo_c::*execFunc)(); -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, -}; +#define MSG_COM_PATH "/res/LayoutRevo/msgcomR.arc" +#define MSG_RES0_PATH "/res/LayoutRevo/msgres00R.arc" +#define MSG_RES1_PATH "/res/LayoutRevo/msgres01R.arc" +#define MSG_RES2_PATH "/res/LayoutRevo/msgres02R.arc" +#define MSG_RES3_PATH "/res/LayoutRevo/msgres03R.arc" +#else +#define FMAP_RES_PATH "/res/Layout/fmapres.arc" +#define DMAP_RES_PATH "/res/Layout/dmapres.arc" +#define COLLECT_RES_PATH "/res/Layout/clctres.arc" + +#define MSG_COM_PATH "/res/Layout/msgcom.arc" +#define MSG_RES0_PATH "/res/Layout/msgres00.arc" +#define MSG_RES1_PATH "/res/Layout/msgres01.arc" +#define MSG_RES2_PATH "/res/Layout/msgres02.arc" +#define MSG_RES3_PATH "/res/Layout/msgres03.arc" +#endif + +#if PLATFORM_WII || PLATFORM_SHIELD +#define ICON_RES_PATH "/res/WiiBannerIcon/bannerIcon.arc" +#define PARTICLE_COM_PATH "/res/Particle/common-r.jpc" +#else +#define ICON_RES_PATH "/res/CardIcon/cardicon.arc" +#define PARTICLE_COM_PATH "/res/Particle/common.jpc" +#endif + +#if PLATFORM_WII +#define RING_RES_PATH "/res/LayoutRevo/ringresR.arc" +#define ITEM_INF_RES_PATH "/res/LayoutRevo/itmInfResR.arc" +#define BUTTON_RES_PATH "/res/LayoutRevo/buttonR.arc" +#define MAIN2D_PATH "/res/LayoutRevo/main2DR.arc" +#else +#define RING_RES_PATH "/res/Layout/ringres.arc" +#define ITEM_INF_RES_PATH "/res/Layout/itmInfRes.arc" +#define BUTTON_RES_PATH "/res/Layout/button.arc" +#define MAIN2D_PATH "/res/Layout/main2D.arc" +#endif + +class dLog_HIO_c : public JORReflexible { +public: + dLog_HIO_c(); + virtual ~dLog_HIO_c() {} + + void genMessage(JORMContext*); + + u8 field_0x4[0x8 - 0x4]; +}; // Size: 0x8 + +static dLog_HIO_c g_LogHIO; dLog_HIO_c::dLog_HIO_c() {} +#if DEBUG +void dLog_HIO_c::genMessage(JORMContext*) {} +#endif + void dScnLogo_c::preLoad_dyl_create() { m_preLoad_dylPhase = new request_of_phase_process_class[14]; + JUT_ASSERT(194, m_preLoad_dylPhase != NULL); + memset(m_preLoad_dylPhase, 0, sizeof(request_of_phase_process_class) * 14); } @@ -65,15 +133,54 @@ void dScnLogo_c::preLoad_dyl_remove() { delete[] m_preLoad_dylPhase; } +typedef void (dScnLogo_c::*execFunc)(); +static execFunc l_execFunc[] = { + &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, + + #if PLATFORM_WII || PLATFORM_SHIELD + &dScnLogo_c::strapInDraw, + &dScnLogo_c::strapDispDraw, + &dScnLogo_c::strapOutDraw, + &dScnLogo_c::strapOut2Draw, + #endif + + #if VERSION == VERSION_SHIELD + &dScnLogo_c::mocInDraw, + &dScnLogo_c::mocDispDraw, + &dScnLogo_c::mocOutDraw, + &dScnLogo_c::nvLogoInDraw, + &dScnLogo_c::nvLogoDispDraw, + &dScnLogo_c::nvLogoOutDraw, + #endif +}; + static s16 const l_preLoad_dylKeyTbl[14] = { - 0x02DC, 0x02CE, 0x0221, 0x00F2, 0x021B, 0x02F4, 0x0139, - 0x015A, 0x02E4, 0x00FE, 0x0308, 0x030F, 0x00FF, 0x013F, + PROC_BG, + PROC_DEMO00, + PROC_NBOMB, + PROC_SPINNER, + PROC_Obj_LifeContainer, + PROC_CROD, + PROC_DISAPPEAR, + PROC_Tag_Attp, + PROC_MG_ROD, + PROC_BOOMERANG, + PROC_ARROW, + PROC_SUSPEND, + PROC_MIDNA, + PROC_Obj_Yousei, }; bool dScnLogo_c::preLoad_dyl() { bool ret = true; + int var_r28 = 14; - for (int i = 0; i < 14; i++) { + for (int i = 0; i < var_r28; i++) { int phase_state = cDylPhs::Link(&m_preLoad_dylPhase[i], l_preLoad_dylKeyTbl[i]); if (phase_state != cPhs_COMPLEATE_e) { @@ -84,6 +191,10 @@ bool dScnLogo_c::preLoad_dyl() { return ret; } +#if DEBUG +u8 dScnLogo_c::mOpeningCut; +#endif + void dScnLogo_c::checkProgSelect() { #if VERSION == VERSION_GCN_PAL if (mDoRst::getProgSeqFlag() == 0) { @@ -133,16 +244,34 @@ void dScnLogo_c::progSelDraw() { if (field_0x20b == 0) { if (field_0x209 == 0) { - if (mDoCPd_c::getHoldRight(PAD_1) || mDoCPd_c::getStickX(PAD_1) > 0.5f) { + #if PLATFORM_WII + if (mReCPd::getTrigRight(PAD_1) || mReCPd::getStickX(PAD_1) > 0.5f) + #else + if (mDoCPd_c::getHoldRight(PAD_1) || mDoCPd_c::getStickX(PAD_1) > 0.5f) + #endif + { + #if PLATFORM_WII || PLATFORM_SHIELD + mDoAud_seStart(Z2SE_SY_CURSOR_OPTION, NULL, 0, 0); + #else mDoAud_seStart(Z2SE_SY_MENU_CURSOR_COMMON, NULL, 0, 0); + #endif field_0x209 = 1; field_0x20e = 30; field_0x210 = field_0x20e; field_0x212 = 0; } } else { - if (mDoCPd_c::getHoldLeft(PAD_1) || mDoCPd_c::getStickX(PAD_1) < -0.5f) { + #if PLATFORM_WII + if (mReCPd::getTrigLeft(PAD_1) || mReCPd::getStickX(PAD_1) < -0.5f) + #else + if (mDoCPd_c::getHoldLeft(PAD_1) || mDoCPd_c::getStickX(PAD_1) < -0.5f) + #endif + { + #if PLATFORM_WII || PLATFORM_SHIELD + mDoAud_seStart(Z2SE_SY_CURSOR_OPTION, NULL, 0, 0); + #else mDoAud_seStart(Z2SE_SY_MENU_CURSOR_COMMON, NULL, 0, 0); + #endif field_0x209 = 0; field_0x20e = 30; field_0x210 = field_0x20e; @@ -150,16 +279,40 @@ void dScnLogo_c::progSelDraw() { } } - if (mDoCPd_c::getTrigA(PAD_1) || mTimer == 0) { + #if PLATFORM_WII + if (cAPICPad_A_TRIGGER(PAD_1) || mTimer == 0) + #else + if (mDoCPd_c::getTrigA(PAD_1) || mTimer == 0) + #endif + { if (field_0x209 == 0) { - mProgressiveSel->getPicture()->changeTexture(mProgressivePro, 0); + J2DPicture* pic = mProgressiveSel->getPicture(); + pic->changeTexture(mProgressivePro, 0); + + #if VERSION != VERSION_SHIELD setProgressiveMode(PROGRESSIVE_MODE_ON); + #endif + mDoRst::setProgChgFlag(1); + + #if PLATFORM_WII || PLATFORM_SHIELD + mDoAud_seStart(Z2SE_SY_TALK_WIN_CLOSE, NULL, 0, 0); + #else mDoAud_seStart(Z2SE_SY_CURSOR_OK, NULL, 0, 0); + #endif } else { - mProgressiveSel->getPicture()->changeTexture(mProgressiveInter, 0); + J2DPicture* pic = mProgressiveSel->getPicture(); + pic->changeTexture(mProgressiveInter, 0); + + #if VERSION != VERSION_SHIELD setProgressiveMode(PROGRESSIVE_MODE_OFF); + #endif + + #if PLATFORM_WII || PLATFORM_SHIELD + mDoAud_seStart(Z2SE_SY_CURSOR_CANCEL, NULL, 0, 0); + #else mDoAud_seStart(Z2SE_SY_CURSOR_OK, NULL, 0, 0); + #endif } if (mTimer > 540) { @@ -173,7 +326,12 @@ void dScnLogo_c::progSelDraw() { field_0x210 = field_0x20e; field_0x212 = 0; } + + #if PLATFORM_WII || PLATFORM_SHIELD + mDoRst::setProgSeqFlag(0); + #else mDoRst::setProgSeqFlag(1); + #endif } } else { if (field_0x214 == 0) { @@ -224,13 +382,18 @@ void dScnLogo_c::progOutDraw() { if (mTimer == 0) { #if VERSION == VERSION_GCN_PAL - if (field_0x218 == 1 && field_0x209 == 0) { + if (field_0x218 == 1 && field_0x209 == 0) #else - if (field_0x218 != 0 && field_0x209 == 0) { + if (field_0x218 != 0 && field_0x209 == 0) #endif + { mExecCommand = EXEC_PROG_CHANGE; mTimer = 150; } else if (field_0x218 == 0 && field_0x209 != 0) { + #if PLATFORM_WII || PLATFORM_SHIELD + mTimer = 90; + mExecCommand = EXEC_NINTENDO_IN; + #else if (mDoRst::getWarningDispFlag() != 0) { mTimer = 90; mExecCommand = EXEC_NINTENDO_IN; @@ -238,6 +401,7 @@ void dScnLogo_c::progOutDraw() { mTimer = 120; mExecCommand = EXEC_WARNING_IN; } + #endif mDoGph_gInf_c::startFadeIn(30); } else { @@ -273,11 +437,22 @@ void dScnLogo_c::progSet2Draw() { } void dScnLogo_c::progChangeDraw() { + #if PLATFORM_SHIELD + OSReport("progChangeDraw"); + #endif + if (getProgressiveMode() != 0 && mTimer == 90 && field_0x209 == 0) { setRenderMode(); } if (mTimer == 0) { + #if VERSION == VERSION_SHIELD_DEBUG + mExecCommand = EXEC_STRAP_IN; + mTimer = 0; + #elif PLATFORM_WII || PLATFORM_SHIELD + mExecCommand = EXEC_STRAP_IN; + mTimer = 90; + #else if (mDoRst::getWarningDispFlag() != 0) { mTimer = 90; mExecCommand = EXEC_NINTENDO_IN; @@ -285,6 +460,7 @@ void dScnLogo_c::progChangeDraw() { mTimer = 120; mExecCommand = EXEC_WARNING_IN; } + #endif mDoGph_gInf_c::startFadeIn(30); } @@ -306,12 +482,14 @@ void dScnLogo_c::warningDispDraw() { dComIfGd_set2DOpa(mWarning); dComIfGd_set2DOpa(mWarningStart); - f32 alpha = (f32)field_0x210 / (f32)field_0x20e; + f32 alphaf = (f32)field_0x210 / (f32)field_0x20e; if (field_0x212 != 0) { - alpha = 1.0f - alpha; + alphaf = 1.0f - alphaf; } - mWarningStart->setAlpha(255.0f * alpha); + u8 alpha = 255.0f * alphaf; + mWarningStart->setAlpha(alpha); + if (field_0x210 == 0) { field_0x210 = field_0x20e; field_0x212 ^= 1; @@ -319,10 +497,14 @@ void dScnLogo_c::warningDispDraw() { field_0x210--; } + #if PLATFORM_WII + if (mTimer == 0 || cAPICPad_A_TRIGGER(PAD_1) || cAPICPad_B_TRIGGER(PAD_1) || cAPICPad_START_TRIGGER(PAD_1)) + #else if (mTimer == 0 || mDoCPd_c::getTrig(PAD_1) & (PAD_BUTTON_A | PAD_BUTTON_B | PAD_BUTTON_X | PAD_BUTTON_Y | PAD_BUTTON_START | PAD_TRIGGER_Z | PAD_TRIGGER_L | PAD_TRIGGER_R | PAD_BUTTON_LEFT | PAD_BUTTON_RIGHT | PAD_BUTTON_DOWN | PAD_BUTTON_UP)) + #endif { mExecCommand = EXEC_WARNING_OUT; mTimer = 30; @@ -387,40 +569,208 @@ void dScnLogo_c::dolbyOutDraw2() { } } +#if PLATFORM_WII || PLATFORM_SHIELD +void dScnLogo_c::strapInDraw() { + dComIfGd_set2DOpa(mStrapImg); + if (mTimer == 0) { + mExecCommand = EXEC_STRAP_DISP; + + #if VERSION == VERSION_SHIELD_DEBUG + mTimer = 0; + #elif VERSION == VERSION_SHIELD + mTimer = 60; + #else + mTimer = 840; + #endif + } +} + +void dScnLogo_c::strapDispDraw() { + dComIfGd_set2DOpa(mStrapImg); + + #if VERSION == VERSION_SHIELD_DEBUG + if (mTimer == 0) + #elif VERSION == VERSION_SHIELD + if (mTimer == 0 || cAPICPad_ANY_BUTTON(PAD_1)) + #else + if (mTimer == 0 || mReCPd::getTrig(PAD_1) & ~WPAD_BUTTON_HOME) + #endif + { + mExecCommand = EXEC_DVD_WAIT; + } +} + +void dScnLogo_c::strapOutDraw() { + dComIfGd_set2DOpa(mStrapImg); + if (mTimer == 0) { + #if VERSION == VERSION_SHIELD + mExecCommand = EXEC_NVLOGO_IN; + #else + mExecCommand = EXEC_STRAP_OUT2; + #endif + + mTimer = 30; + mDoGph_gInf_c::startFadeIn(30); + } +} + +void dScnLogo_c::strapOut2Draw() { + if (mTimer == 0) { + mExecCommand = EXEC_SCENE_CHANGE; + } +} +#endif + +#if VERSION == VERSION_SHIELD +void dScnLogo_c::mocInDraw() { + dComIfGd_set2DOpa(mMocImg); + + if (mTimer == 0) { + mExecCommand = EXEC_MOC_DISP; + mTimer = 120; + } +} + +void dScnLogo_c::mocDispDraw() { + dComIfGd_set2DOpa(mMocImg); + + if (mTimer == 0 || cAPICPad_ANY_BUTTON(PAD_1)) { + mExecCommand = EXEC_MOC_OUT; + mTimer = 30; + mDoGph_gInf_c::startFadeOut(30); + } +} + +void dScnLogo_c::mocOutDraw() { + dComIfGd_set2DOpa(mMocImg); + + if (mTimer == 0) { + mExecCommand = EXEC_STRAP_IN; + mTimer = 90; + mDoGph_gInf_c::startFadeIn(30); + } +} + +void dScnLogo_c::nvLogoInDraw() { + dComIfGd_set2DOpa(mNvLogo); + + if (mTimer == 0) { + mExecCommand = EXEC_NVLOGO_DISP; + mTimer = 120; + } +} + +void dScnLogo_c::nvLogoDispDraw() { + dComIfGd_set2DOpa(mNvLogo); + + if (mTimer == 0 || cAPICPad_ANY_BUTTON(PAD_1)) { + mExecCommand = EXEC_NVLOGO_OUT; + mTimer = 30; + mDoGph_gInf_c::startFadeOut(30); + } +} + +void dScnLogo_c::nvLogoOutDraw() { + dComIfGd_set2DOpa(mNvLogo); + + if (mTimer == 0) { + mExecCommand = EXEC_STRAP_OUT2; + mTimer = 30; + mDoGph_gInf_c::startFadeIn(30); + } +} +#endif + void dScnLogo_c::dvdWaitDraw() { + #if PLATFORM_WII || PLATFORM_SHIELD + dComIfGd_set2DOpa(mStrapImg); + #endif + 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()) + if ( + #if PLATFORM_WII || VERSION == VERSION_SHIELD + mpHomeBtnCommand->sync() && + #endif + 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); + + #if PLATFORM_WII || PLATFORM_SHIELD + mDoRst::setProgSeqFlag(0); + #endif + mDoRst::setProgChgFlag(0); + + #if PLATFORM_WII || PLATFORM_SHIELD + mExecCommand = EXEC_STRAP_OUT; + mTimer = 30; + mDoGph_gInf_c::startFadeOut(30); + #else mExecCommand = EXEC_SCENE_CHANGE; + #endif } } } void dScnLogo_c::nextSceneChange() { if (!mDoRst::isReset()) { - dComIfG_changeOpeningScene(this, PROC_OPENING_SCENE); + if (!isOpeningCut()) + { + dComIfG_changeOpeningScene(this, PROC_OPENING_SCENE); + } else { + #if DEBUG + fopScnM_ChangeReq(this, PROC_MENU_SCENE, 0, 30); + dComIfGs_init(); + dComIfG_playerStatusD(); + return; + #endif + } } } dScnLogo_c::~dScnLogo_c() { if (mDoRst::isReset()) { - if (mDoAud_zelAudio_c::isInitFlag()) { + #if !(PLATFORM_WII || PLATFORM_SHIELD) + if (mDoAud_zelAudio_c::isInitFlag()) + #endif + { Z2AudioMgr::getInterface()->resetProcess(5, true); } + mDoRst_reset(0, 0x80000000, 0); } + #if PLATFORM_WII || PLATFORM_SHIELD + delete mStrapImg; + #endif + + #if !(PLATFORM_WII || PLATFORM_SHIELD) delete mNintendoLogo; delete mWarning; delete mWarningStart; @@ -435,14 +785,41 @@ dScnLogo_c::~dScnLogo_c() { mpPalLogoResCommand->getArchive()->unmount(); mpPalLogoResCommand->destroy(); #endif + #endif + + #if VERSION == VERSION_SHIELD + delete mNvLogo; + delete mMocImg; + #endif preLoad_dyl_remove(); + + #if PLATFORM_WII || PLATFORM_SHIELD + switch (getPalLanguage()) { + case 2: + dComIfG_deleteObjectResMain("LogoFrWii"); + break; + case 3: + dComIfG_deleteObjectResMain("LogoSpWii"); + break; + case 0: + default: + dComIfG_deleteObjectResMain("LogoUsWii"); + break; + } + #else dComIfG_deleteObjectResMain(LOGO_ARC); + #endif - field_0x1d4->destroy(); - field_0x1d0->destroy(); + mLogo01Heap->destroy(); + mLogoHeap->destroy(); JKRFree(dummyGameAlloc); + #if PLATFORM_WII || VERSION == VERSION_SHIELD + dHomeButton_c::create(mHomeBtnRegion, mpHomeBtnCommand->getMemAddress()); + mpHomeBtnCommand->destroy(); + #endif + dComIfGp_particle_createCommon(mParticleCommand->getMemAddress()); dComIfGp_setFieldMapArchive2(mpField0Command->getArchive()); dComIfGp_setAnmArchive(mpAlAnmCommand->getArchive()); @@ -454,7 +831,17 @@ dScnLogo_c::~dScnLogo_c() { dComIfGp_setRingResArchive(mpRingResCommand->getArchive()); dComIfGp_setNameResArchive(mpPlayerNameCommand->getArchive()); dComIfGp_setDemoMsgArchive(mpItemInfResCommand->getArchive()); + dComIfGp_setMeterButtonArchive(mpButtonCommand->getArchive()); + #if DEBUG + JKRArchive* button = mpButtonCommand->getArchive(); + if (button != NULL) { + OS_REPORT("button not nullptr\n"); + } else { + OS_REPORT("button nullptr\n"); + } + #endif + dComIfGp_setErrorResArchive(NULL); dComIfGp_setCardIconResArchive(mpCardIconCommand->getArchive()); dComIfGp_setMsgDtArchive(0, mpBmgResCommand->getArchive()); @@ -485,7 +872,12 @@ dScnLogo_c::~dScnLogo_c() { mpFontResCommand->destroy(); mpMain2DCommand->destroy(); mpRubyResCommand->destroy(); + + #if !PLATFORM_SHIELD mParticleCommand->destroy(); + #else + delete mParticleCommand; + #endif JKRAramHeap* aram_heap = JKRAram::getAramHeap(); u32 free_size = aram_heap->getTotalFreeSize(); @@ -502,15 +894,30 @@ dScnLogo_c::~dScnLogo_c() { #endif dComIfGp_setItemTable(mItemTableCommand->getMemAddress()); + #if !PLATFORM_SHIELD mItemTableCommand->destroy(); + #else + delete mItemTableCommand; + #endif dEnemyItem_c::setItemData((u8*)mEnemyItemCommand->getMemAddress()); + #if !PLATFORM_SHIELD mEnemyItemCommand->destroy(); + #else + delete mEnemyItemCommand; + #endif dDlst_shadowControl_c::setSimpleTex((ResTIMG*)dComIfG_getObjectRes("Always", 0x4A)); + + #if PLATFORM_WII || PLATFORM_SHIELD + dComIfG_inf_c::createBaseCsr(); + #endif + dTres_c::createWork(); dMpath_c::createWork(); + OS_REPORT("\x1b[31m%d gameHeap->getFreeSize %08x(%d)\n\x1b[m", 1479, mDoExt_getGameHeap()->getFreeSize(), mDoExt_getGameHeap()->getFreeSize()); + #if PLATFORM_WII data_8053a730 = 0; #endif @@ -520,10 +927,18 @@ static int phase_0(dScnLogo_c* i_this) { mDoGph_gInf_c::setFadeColor(*(JUtility::TColor*)&g_blackColor); dComIfGp_particle_create(); - i_this->dummyGameAlloc = mDoExt_getGameHeap()->alloc(0x340000, -0x10); + OS_REPORT("\x1b[31m%d gameHeap->getFreeSize %08x(%d)\n\x1b[m", 1497, mDoExt_getGameHeap()->getFreeSize(), mDoExt_getGameHeap()->getFreeSize()); + u32 var_r29 = 0x340000; + u32 var_r28 = 0x130000; + + i_this->dummyGameAlloc = mDoExt_getGameHeap()->alloc(var_r29, -0x10); JUT_ASSERT(1523, i_this->dummyGameAlloc != NULL); - i_this->field_0x1d0 = JKRExpHeap::create(i_this->dummyGameAlloc, 0x340000, NULL, false); - i_this->field_0x1d4 = JKRExpHeap::create(0x130000, i_this->field_0x1d0, false); + + i_this->mLogoHeap = JKRExpHeap::create(i_this->dummyGameAlloc, var_r29, NULL, false); + JUT_ASSERT(1525, i_this->mLogoHeap != NULL); + + i_this->mLogo01Heap = JKRCreateExpHeap(var_r28, i_this->mLogoHeap, false); + JUT_ASSERT(1528, i_this->mLogo01Heap != NULL); #if VERSION == VERSION_GCN_PAL switch (i_this->getPalLanguage()) { @@ -546,6 +961,10 @@ static int phase_0(dScnLogo_c* i_this) { } #endif + #if PLATFORM_WII || PLATFORM_SHIELD + OSSetPowerCallback(mDoRst_shutdownCallBack); + #endif + return cPhs_NEXT_e; } @@ -554,9 +973,11 @@ static int phase_1(dScnLogo_c* i_this) { return cPhs_INIT_e; } + #if !(PLATFORM_WII || PLATFORM_SHIELD) if (!mDoAud_zelAudio_c::isInitFlag() || Z2AudioMgr::getInterface()->checkFirstWaves()) { return cPhs_INIT_e; } + #endif #if VERSION == VERSION_GCN_PAL if (!mDoDvdThd::SyncWidthSound) { @@ -568,8 +989,29 @@ static int phase_1(dScnLogo_c* i_this) { } #endif - dComIfG_setObjectRes(LOGO_ARC, (u8)0, i_this->field_0x1d0); + int rt; + #if PLATFORM_WII || PLATFORM_SHIELD + switch (i_this->getPalLanguage()) { + case 0: + default: + rt = dComIfG_setObjectRes("LogoUsWii", (u8)0, i_this->mLogoHeap); + break; + case 2: + rt = dComIfG_setObjectRes("LogoFrWii", (u8)0, i_this->mLogoHeap); + break; + case 3: + rt = dComIfG_setObjectRes("LogoSpWii", (u8)0, i_this->mLogoHeap); + break; + } + #else + rt = dComIfG_setObjectRes(LOGO_ARC, (u8)0, i_this->mLogoHeap); + #endif + + JUT_ASSERT(1652, rt == 1); + mDoRst::setLogoScnFlag(1); + + OS_REPORT("\x1b[32m%d archiveHeap->getTotalFreeSize %08x\n\x1b[m", 1667, archiveHeap->getTotalFreeSize()); archiveHeap->dump_sort(); return cPhs_NEXT_e; } @@ -599,17 +1041,45 @@ int dScnLogo_c::create() { data_8053a730 = 1; #endif - mpHeap = mDoExt_setCurrentHeap(field_0x1d4); + mpHeap = mDoExt_setCurrentHeap(mLogo01Heap); + + #if PLATFORM_WII || PLATFORM_SHIELD + logoInitWii(); + #else logoInitGC(); - mpHeap->becomeCurrentHeap(); + #endif + + JKRSetCurrentHeap(mpHeap); + + OS_REPORT("\x1b[31m%d gameHeap->getFreeSize %08x(%d)\n\x1b[m", 1732, mDoExt_getGameHeap()->getFreeSize(), mDoExt_getGameHeap()->getFreeSize()); dvdDataLoad(); + + OS_REPORT("\x1b[31m%d gameHeap->getFreeSize %08x(%d)\n\x1b[m", 1738, mDoExt_getGameHeap()->getFreeSize(), mDoExt_getGameHeap()->getFreeSize()); + + #if !(PLATFORM_WII || PLATFORM_SHIELD) Z2AudioMgr::getInterface()->loadStaticWaves(); - mDoGph_gInf_c::setTickRate((OS_BUS_CLOCK / 4) / 60); + #endif + + mDoGph_gInf_c::setTickRate(OS_TIMER_CLOCK / 60); mDoGph_gInf_c::waitBlanking(0); + field_0x20a = 0; + + #if VERSION == VERSION_SHIELD_DEBUG + mExecCommand = EXEC_STRAP_IN; + mTimer = 0; + #elif VERSION == VERSION_SHIELD + mExecCommand = EXEC_MOC_IN; + mTimer = 30; + #elif PLATFORM_WII + mExecCommand = EXEC_STRAP_IN; + mTimer = 90; + #endif + mDoGph_gInf_c::startFadeIn(30); + #if !(PLATFORM_WII || PLATFORM_SHIELD) checkProgSelect(); if (field_0x20a != 0) { mExecCommand = EXEC_PROG_IN; @@ -628,12 +1098,92 @@ int dScnLogo_c::create() { JUTGamePad::clearResetOccurred(); JUTGamePad::setResetCallback(mDoRst_resetCallBack, NULL); + #endif + mDoRst::offReset(); mDoRst::offResetPrepare(); + #if PLATFORM_WII || VERSION == VERSION_SHIELD + dHomeButton_c::lbl_8053A724 = 0; + #endif + return phase_state; } +#if PLATFORM_WII || PLATFORM_SHIELD +void dScnLogo_c::logoInitWii() { + u8 language = getPalLanguage(); + if (language > 5) { + language = 0; + } + + ResTIMG* timg; + s16 width; + s16 height; + if (mDoGph_gInf_c::isWide()) { + switch (language) { + case 0: + default: + timg = (ResTIMG*)dComIfG_getObjectRes("LogoUsWii", dRes_ID_LOGOUSWII_BTI_STRAP_16_9_832X456_US_e); + break; + case 2: + timg = (ResTIMG*)dComIfG_getObjectRes("LogoFrWii", 3); + break; + case 3: + timg = (ResTIMG*)dComIfG_getObjectRes("LogoSpWii", 3); + break; + } + + width = 832; + height = 456; + } else { + switch (language) { + case 0: + default: + timg = (ResTIMG*)dComIfG_getObjectRes("LogoUsWii", dRes_ID_LOGOUSWII_BTI_STRAP_608X456_US_e); + break; + case 2: + timg = (ResTIMG*)dComIfG_getObjectRes("LogoFrWii", 4); + break; + case 3: + timg = (ResTIMG*)dComIfG_getObjectRes("LogoSpWii", 4); + break; + } + + width = 608; + height = 456; + } + + JUT_ASSERT(2309, timg != NULL); + mStrapImg = new dDlst_2D_c(timg, 304 - (width / 2), 224 - (height / 2), width, height, 255); + + #if VERSION == VERSION_SHIELD + timg = (ResTIMG*)dComIfG_getObjectRes("LogoUsWii", 5); + mNvLogo = new dDlst_2D_c(timg, 304 - (width / 2), 224 - (height / 2), width, height, 255); + + timg = (ResTIMG*)dComIfG_getObjectRes("LogoUsWii", 4); + mMocImg = new dDlst_2D_c(timg, 304 - (width / 2), 224 - (height / 2), width, height, 255); + #endif + + OS_REPORT("\x1b[32m%d archiveHeap->getTotalFreeSize %08x\n\x1b[m", 2316, archiveHeap->getTotalFreeSize()); + + JUT_ASSERT(2319, mStrapImg != NULL); + + mNintendoLogo = NULL; + mDolbyLogo = NULL; + mWarning = NULL; + mWarningStart = NULL; + mProgressiveChoice = NULL; + mProgressiveYes = NULL; + mProgressiveNo = NULL; + mProgressivePro = NULL; + mProgressiveInter = NULL; + mProgressiveSel = NULL; + + OS_REPORT("\x1b[32m%d archiveHeap->getTotalFreeSize %08x\n\x1b[m", 2341, archiveHeap->getTotalFreeSize()); + OS_REPORT("%d mLogo01Heap->getTotalFreeSize %08x\n\x1b[m", 2344, mLogo01Heap->getTotalFreeSize()); +} +#else void dScnLogo_c::logoInitGC() { ResTIMG* nintendoImg = (ResTIMG*)dComIfG_getObjectRes(LOGO_ARC, 4); mNintendoLogo = new dDlst_2D_c(nintendoImg, 117, 154, 376, 104, 255); @@ -751,103 +1301,133 @@ void dScnLogo_c::logoInitGC() { mProgressiveSel = new dDlst_2D_c(mProgressivePro, 153, 309, 336, 88, 255); #endif } +#endif void dScnLogo_c::dvdDataLoad() { - dComIfG_setObjectRes("Always", (u8)0, NULL); + int rt; + + #if PLATFORM_WII || VERSION == VERSION_SHIELD + rt = dComIfG_setObjectRes("HomeBtn", (u8)0, NULL); + JUT_ASSERT(__LINE__, rt == 1); + + static const homeBtnData l_homeBtnData[] = { + {SC_LANG_ENGLISH, "/res/HomeBtn/homeBtn_ENG.arc"}, + {SC_LANG_ENGLISH, "/res/HomeBtn/homeBtn_ENG.arc"}, + {SC_LANG_FRENCH, "/res/HomeBtn/homeBtn_FRA.arc"}, + {SC_LANG_SPANISH, "/res/HomeBtn/homeBtn_SPA.arc"}, + {SC_LANG_ENGLISH, "/res/HomeBtn/homeBtn_ENG.arc"}, + {SC_LANG_ENGLISH, "/res/HomeBtn/homeBtn_ENG.arc"}, + {SC_LANG_ENGLISH, "/res/HomeBtn/homeBtn_ENG.arc"}, + }; + + u8 language = getPalLanguage(); + const homeBtnData* data = &l_homeBtnData[language]; + mpHomeBtnCommand = mDoDvdThd_toMainRam_c::create(data->path, 0, NULL); + mHomeBtnRegion = data->region; + #endif + + rt = dComIfG_setObjectRes("Always", (u8)0, NULL); + JUT_ASSERT(2420, rt == 1); + + OS_REPORT("\x1b[32m%d archiveHeap->getTotalFreeSize %08x\n\x1b[m", 2421, archiveHeap->getTotalFreeSize()); archiveHeap->dump_sort(); - dComIfG_setObjectRes("Alink", (u8)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()); + rt = dComIfG_setObjectRes("Alink", (u8)0, NULL); + JUT_ASSERT(2429, rt == 1); + + #if PLATFORM_WII || PLATFORM_SHIELD + rt = dComIfG_setObjectRes("NNGC", (u8)0, NULL); + JUT_ASSERT(2433, rt == 1); + #endif + + OS_REPORT("\x1b[32m%d archiveHeap->getTotalFreeSize %08x\n\x1b[m", 2436, archiveHeap->getTotalFreeSize()); + + mpField0Command = aramMount("/res/FieldMap/Field0.arc", mDoExt_getJ2dHeap()); + mpAlAnmCommand = aramMount("/res/Object/AlAnm.arc", NULL); + mpFmapResCommand = aramMount(FMAP_RES_PATH, mDoExt_getJ2dHeap()); + mpDmapResCommand = aramMount(DMAP_RES_PATH, mDoExt_getJ2dHeap()); + mpCollectResCommand = aramMount(COLLECT_RES_PATH, mDoExt_getJ2dHeap()); + mpItemIconCommand = aramMount("/res/Layout/itemicon.arc", mDoExt_getJ2dHeap()); + mpRingResCommand = aramMount(RING_RES_PATH, mDoExt_getJ2dHeap()); + mpPlayerNameCommand = aramMount("/res/Layout/playerName.arc", mDoExt_getJ2dHeap()); + mpItemInfResCommand = aramMount(ITEM_INF_RES_PATH, mDoExt_getJ2dHeap()); + mpButtonCommand = aramMount(BUTTON_RES_PATH, mDoExt_getJ2dHeap()); + mpCardIconCommand = aramMount(ICON_RES_PATH, mDoExt_getJ2dHeap()); #if VERSION == VERSION_GCN_PAL switch (getPalLanguage()) { case 1: - mpBmgResCommand = mDoDvdThd_mountXArchive_c::create("/res/Msgde/bmgres.arc", 0, JKRArchive::MOUNT_MEM, NULL); + mpBmgResCommand = onMemMount("/res/Msgde/bmgres.arc"); break; case 2: - mpBmgResCommand = mDoDvdThd_mountXArchive_c::create("/res/Msgfr/bmgres.arc", 0, JKRArchive::MOUNT_MEM, NULL); + mpBmgResCommand = onMemMount("/res/Msgfr/bmgres.arc"); break; case 3: - mpBmgResCommand = mDoDvdThd_mountXArchive_c::create("/res/Msgsp/bmgres.arc", 0, JKRArchive::MOUNT_MEM, NULL); + mpBmgResCommand = onMemMount("/res/Msgsp/bmgres.arc"); break; case 4: - mpBmgResCommand = mDoDvdThd_mountXArchive_c::create("/res/Msgit/bmgres.arc", 0, JKRArchive::MOUNT_MEM, NULL); + mpBmgResCommand = onMemMount("/res/Msgit/bmgres.arc"); break; case 0: default: - mpBmgResCommand = mDoDvdThd_mountXArchive_c::create("/res/Msguk/bmgres.arc", 0, JKRArchive::MOUNT_MEM, NULL); + mpBmgResCommand = onMemMount("/res/Msguk/bmgres.arc"); + break; + } + #elif VERSION == VERSION_SHIELD_DEBUG + switch (getPalLanguage()) { + case 2: + mpBmgResCommand = onMemMount("/res/Msgfr/bmgres.arc"); + break; + case 3: + mpBmgResCommand = onMemMount("/res/Msgsp/bmgres.arc"); + break; + default: + mpBmgResCommand = onMemMount("/res/Msgus/bmgres.arc"); break; } #else - mpBmgResCommand = mDoDvdThd_mountXArchive_c::create(MSG_PATH, 0, JKRArchive::MOUNT_MEM, NULL); - #endif - - 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()); + mpBmgResCommand = onMemMount(MSG_PATH); + #endif + + mpMsgComCommand = aramMount(MSG_COM_PATH, mDoExt_getJ2dHeap()); + mpMsgResCommand[0] = aramMount(MSG_RES0_PATH, mDoExt_getJ2dHeap()); + mpMsgResCommand[1] = aramMount(MSG_RES1_PATH, mDoExt_getJ2dHeap()); + mpMsgResCommand[2] = aramMount(MSG_RES2_PATH, mDoExt_getJ2dHeap()); + mpMsgResCommand[3] = aramMount(MSG_RES3_PATH, mDoExt_getJ2dHeap()); #if VERSION == VERSION_GCN_JPN - mpMsgResCommand[4] = mDoDvdThd_mountXArchive_c::create( - "/res/Layout/msgres04.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap()); + mpMsgResCommand[4] = aramMount("/res/Layout/msgres04.arc", mDoExt_getJ2dHeap()); #else - mpMsgResCommand[4] = mDoDvdThd_mountXArchive_c::create( - "/res/Layout/msgres04F.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap()); + mpMsgResCommand[4] = aramMount("/res/Layout/msgres04F.arc", mDoExt_getJ2dHeap()); #endif - 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); + mpMsgResCommand[5] = aramMount("/res/Layout/msgres05.arc", mDoExt_getJ2dHeap()); + mpMsgResCommand[6] = aramMount("/res/Layout/msgres06.arc", mDoExt_getJ2dHeap()); + + mpMain2DCommand = onMemMount(MAIN2D_PATH); #if VERSION == VERSION_GCN_JPN - mpFontResCommand = mDoDvdThd_mountXArchive_c::create("/res/Fontjp/fontres.arc", 1, - JKRArchive::MOUNT_MEM, NULL); - mpRubyResCommand = mDoDvdThd_mountXArchive_c::create("/res/Fontjp/rubyres.arc", 0, - JKRArchive::MOUNT_MEM, NULL); + mpFontResCommand = mDoDvdThd_mountXArchive_c::create("/res/Fontjp/fontres.arc", 1, JKRArchive::MOUNT_MEM, NULL); + mpRubyResCommand = onMemMount("/res/Fontjp/rubyres.arc"); #elif VERSION == VERSION_GCN_PAL - mpFontResCommand = mDoDvdThd_mountXArchive_c::create("/res/Fonteu/fontres.arc", 0, - JKRArchive::MOUNT_MEM, NULL); - mpRubyResCommand = mDoDvdThd_mountXArchive_c::create("/res/Fonteu/rubyres.arc", 0, - JKRArchive::MOUNT_MEM, NULL); + mpFontResCommand = onMemMount("/res/Fonteu/fontres.arc"); + mpRubyResCommand = onMemMount("/res/Fonteu/rubyres.arc"); +#elif VERSION == VERSION_SHIELD_DEBUG + mpFontResCommand = onMemMount("/res/Fonteu/fontres.arc"); + mpRubyResCommand = onMemMount("/res/Fontus/rubyres.arc"); +#elif VERSION == VERSION_SHIELD + mpFontResCommand = onMemMount("/res/Fontcn/fontres.arc"); + mpRubyResCommand = onMemMount("/res/Fontcn/rubyres.arc"); #else - 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); + mpFontResCommand = onMemMount("/res/Fontus/fontres.arc"); + mpRubyResCommand = onMemMount("/res/Fontus/rubyres.arc"); #endif - mParticleCommand = mDoDvdThd_toMainRam_c::create("/res/Particle/common.jpc", 0, - dComIfGp_particle_getResHeap()); + + mParticleCommand = mDoDvdThd_toMainRam_c::create(PARTICLE_COM_PATH, 0, dComIfGp_particle_getResHeap()); + mItemTableCommand = mDoDvdThd_toMainRam_c::create("/res/ItemTable/item_table.bin", 0, NULL); + JUT_ASSERT(2620, mItemTableCommand != NULL); + mEnemyItemCommand = mDoDvdThd_toMainRam_c::create("/res/ItemTable/enemy_table.bin", 0, NULL); + JUT_ASSERT(2624, mEnemyItemCommand != NULL); preLoad_dyl_create(); preLoad_dyl(); @@ -858,13 +1438,58 @@ static int dScnLogo_Create(scene_class* i_this) { } static int dScnLogo_Execute(dScnLogo_c* i_this) { + fpc_ProcID id = fpcM_GetID(i_this); + if (mDoRst::isReset()) { fopScnM_ChangeReq(i_this, PROC_LOGO_SCENE, 0, 5); } + return 1; } +#if DEBUG +static u8 lbl_8074CA49; +#endif + static int dScnLogo_Draw(dScnLogo_c* i_this) { + #if DEBUG + int x = 36; + int y = 40; + + y += 12; + JUTReport(x, y, "COPYDATE %s", mDoMain::COPYDATE_STRING); + + y += 12; + JUTReport(x, y, "Build by %s", "Authorized User"); + + y += 12; + JUTReport(x, y, "_DEBUG/Debug version"); + + if (!lbl_8074CA49) { + lbl_8074CA49 = 1; + JUTReportConsole_f("COPYDATE %s\n", mDoMain::COPYDATE_STRING); + JUTReportConsole_f("Build by %s\n", "Authorized User"); + JUTReportConsole_f("_DEBUG/Debug version\n"); + JUTReportConsole_f("SDKVersion %s\n", "11Dec2009Patch02"); + + #if PLATFORM_WII || PLATFORM_SHIELD + JUTReportConsole_f("ConsoleSimMem %08x\n", OSGetConsoleSimulatedMem1Size()); + JUTReportConsole_f("PhysicalMemory %08x\n", OSGetPhysicalMem1Size()); + JUTReportConsole_f("ConsoleType %08x\n", OSGetConsoleType()); + JUTReportConsole_f("Language(PAL) %1x\n", SCGetLanguage()); + JUTReportConsole_f("Progressive %1x\n", SCGetProgressiveMode()); + JUTReportConsole_f("SoundMode %1x\n", SCGetSoundMode()); + #else + JUTReportConsole_f("ConsoleSimMem %08x\n", OSGetConsoleSimulatedMemSize()); + JUTReportConsole_f("PhysicalMemory %08x\n", OSGetPhysicalMemSize()); + JUTReportConsole_f("ConsoleType %08x\n", OSGetConsoleType()); + JUTReportConsole_f("Language(PAL) %1x\n", OSGetLanguage()); + JUTReportConsole_f("Progressive %1x\n", OSGetProgressiveMode()); + JUTReportConsole_f("SoundMode %1x\n", OSGetSoundMode()); + #endif + } + #endif + i_this->draw(); return 1; } @@ -878,9 +1503,35 @@ static int dScnLogo_IsDelete(dScnLogo_c* i_this) { return 1; } -#if VERSION == VERSION_GCN_PAL +#if VERSION == VERSION_GCN_PAL || PLATFORM_WII || PLATFORM_SHIELD u8 dScnLogo_c::getPalLanguage() { u8 language; + + #if PLATFORM_WII || PLATFORM_SHIELD + switch (SCGetLanguage()) { + case SC_LANG_JAPANESE: + language = 6; + break; + case SC_LANG_ENGLISH: + language = 0; + break; + case SC_LANG_GERMAN: + language = 1; + break; + case SC_LANG_FRENCH: + language = 2; + break; + case SC_LANG_SPANISH: + language = 3; + break; + case SC_LANG_ITALIAN: + language = 4; + break; + case SC_LANG_DUTCH: + language = 5; + break; + } + #else switch (OSGetLanguage()) { case OS_LANGUAGE_ENGLISH: language = 0; @@ -901,13 +1552,20 @@ u8 dScnLogo_c::getPalLanguage() { language = 5; break; } + #endif return language; } #endif void dScnLogo_c::setProgressiveMode(u8 mode) { - #if VERSION == VERSION_GCN_PAL + #if VERSION == VERSION_SHIELD_DEBUG + return; + #endif + + #if PLATFORM_WII + SCSetProgressiveMode(mode); + #elif VERSION == VERSION_GCN_PAL OSSetEuRgb60Mode(mode); #else OSSetProgressiveMode(mode); @@ -915,6 +1573,10 @@ void dScnLogo_c::setProgressiveMode(u8 mode) { } u8 dScnLogo_c::getProgressiveMode() { + #if PLATFORM_WII || PLATFORM_SHIELD + return SCGetProgressiveMode(); + #endif + #if VERSION == VERSION_GCN_PAL return OSGetEuRgb60Mode(); #else @@ -934,8 +1596,6 @@ void dScnLogo_c::setRenderMode() { mDoMch_render_c::setProgressiveMode(); } -dLog_HIO_c::~dLog_HIO_c() {} - static scene_method_class l_dScnLogo_Method = { (process_method_func)dScnLogo_Create, (process_method_func)dScnLogo_Delete, |
