diff --git a/config/RZDP01/splits.txt b/config/RZDP01/splits.txt index 91d2b2074a..b0eefce7fb 100644 --- a/config/RZDP01/splits.txt +++ b/config/RZDP01/splits.txt @@ -1354,7 +1354,7 @@ d/d_pane_class.cpp: d/d_pane_class_alpha.cpp: .text start:0x802410A0 end:0x80241CA8 .data start:0x80406F90 end:0x80406FD0 - .sdata start:0x805200E0 end:0x80520104 + .sdata start:0x805200E0 end:0x805200E8 .sdata2 start:0x805255B0 end:0x805255D0 d/d_pane_class_ex.cpp: @@ -1363,10 +1363,10 @@ d/d_pane_class_ex.cpp: d/d_s_logo.cpp: .text start:0x80241CE0 end:0x80243FE4 .ctors start:0x803B919C end:0x803B91A0 - .rodata start:0x803D9C10 end:0x803D9C80 + .rodata start:0x803D9C10 end:0x803D9C68 .data start:0x80406FD0 end:0x80407578 .bss start:0x804A5778 end:0x804A5788 - .sdata start:0x80520104 end:0x80520110 + .sdata start:0x805200E8 end:0x80520110 .sbss start:0x805215B0 end:0x805215B8 .sdata2 start:0x805255D0 end:0x80525600 @@ -1376,6 +1376,7 @@ d/d_s_menu.cpp: d/d_s_name.cpp: .text start:0x80243FE4 end:0x80244BE8 .ctors start:0x803B91A0 end:0x803B91A4 + .rodata start:0x803D9C68 end:0x803D9C80 .data start:0x804075A0 end:0x804076B0 .bss start:0x804A5788 end:0x804A5798 .sdata start:0x80520110 end:0x80520148 diff --git a/config/RZDP01/symbols.txt b/config/RZDP01/symbols.txt index 027738678d..866b952f37 100644 --- a/config/RZDP01/symbols.txt +++ b/config/RZDP01/symbols.txt @@ -20523,7 +20523,7 @@ lbl_803EA3BC = .data:0x803EA3BC; // type:object size:0x13 data:string @111989 = .data:0x803EA3D0; // type:object size:0xC scope:local align:4 lbl_803EA3DC = .data:0x803EA3DC; // type:object size:0x13 data:string lbl_803EA3EF = .data:0x803EA3EF; // type:object size:0x15 data:string -lbl_803EA404 = .data:0x803EA404; // type:object size:0xD data:string +@STRING@setObjectRes__14dRes_control_cFPCcUcP7JKRHeap = .data:0x803EA404; // type:object size:0xD data:string ZeroQuat = .data:0x803EA418; // type:object size:0x10 scope:global align:4 __vt__10CSTControl = .data:0x803EA428; // type:object size:0x10 scope:global align:4 lbl_803EA438 = .data:0x803EA438; // type:object size:0xB data:string @@ -22408,14 +22408,49 @@ lbl_80406FA0 = .data:0x80406FA0; // type:object size:0x12 data:string __vt__13CPaneMgrAlpha = .data:0x80406FC0; // type:object size:0x10 scope:global align:4 ...data.0 = .data:0x80406FD0; // type:label scope:local align:4 l_execFunc = .data:0x80406FD0; // type:object size:0xF0 scope:global align:4 -lbl_804070C0 = .data:0x804070C0; // type:object size:0x3C +@s_LogoGmWii = .data:0x804070C0; // type:object size:0xA scope:local data:string +@s_LogoFrWii = .data:0x804070CA; // type:object size:0xA scope:local data:string +@s_LogoSpWii = .data:0x804070D4; // type:object size:0xA scope:local data:string +@s_LogoItWii = .data:0x804070DE; // type:object size:0xA scope:local data:string +@s_LogoDuWii = .data:0x804070E8; // type:object size:0xA scope:local data:string +@s_LogoUkWii = .data:0x804070F2; // type:object size:0xA scope:local data:string l_method$96196 = .data:0x804070FC; // type:object size:0xC scope:local align:4 lbl_80407108 = .data:0x80407108; // type:object size:0x1D data:string lbl_80407125 = .data:0x80407125; // type:object size:0x1D data:string lbl_80407142 = .data:0x80407142; // type:object size:0x1D data:string lbl_8040715F = .data:0x8040715F; // type:object size:0x1D data:string lbl_8040717C = .data:0x8040717C; // type:object size:0x1D data:string -lbl_80407199 = .data:0x80407199; // type:object size:0x343 +lbl_80407199 = .data:0x80407199; // type:object size:0x1D data:string +@s__res_FieldMap_Field0_arc = .data:0x804071B6; // type:object size:0x19 scope:local data:string +@s__res_Object_AlAnm_arc = .data:0x804071CF; // type:object size:0x16 scope:local data:string +@s__res_LayoutRevo_fmapresR_arc = .data:0x804071E5; // type:object size:0x1D scope:local data:string +@s__res_LayoutRevo_dmapresR_arc = .data:0x80407202; // type:object size:0x1D scope:local data:string +@s__res_LayoutRevo_clctresR_arc = .data:0x8040721F; // type:object size:0x1D scope:local data:string +@s__res_Layout_itemicon_arc = .data:0x8040723C; // type:object size:0x19 scope:local data:string +@s__res_LayoutRevo_ringresR_arc = .data:0x80407255; // type:object size:0x1D scope:local data:string +@s__res_Layout_playerName_arc = .data:0x80407272; // type:object size:0x1B scope:local data:string +@s__res_LayoutRevo_itmInfResR_arc = .data:0x8040728D; // type:object size:0x1F scope:local data:string +@s__res_LayoutRevo_buttonR_arc = .data:0x804072AC; // type:object size:0x1C scope:local data:string +@s__res_WiiBannerIcon_bannerIcon_ = .data:0x804072C8; // type:object size:0x22 scope:local data:string +@s__res_Msgde_bmgres_arc = .data:0x804072EA; // type:object size:0x16 scope:local data:string +@s__res_Msgfr_bmgres_arc = .data:0x80407300; // type:object size:0x16 scope:local data:string +@s__res_Msgsp_bmgres_arc = .data:0x80407316; // type:object size:0x16 scope:local data:string +@s__res_Msgit_bmgres_arc = .data:0x8040732C; // type:object size:0x16 scope:local data:string +@s__res_Msguk_bmgres_arc = .data:0x80407342; // type:object size:0x16 scope:local data:string +@s__res_LayoutRevo_msgcomR_arc = .data:0x80407358; // type:object size:0x1C scope:local data:string +@s__res_LayoutRevo_msgres00R_arc = .data:0x80407374; // type:object size:0x1E scope:local data:string +@s__res_LayoutRevo_msgres01R_arc = .data:0x80407392; // type:object size:0x1E scope:local data:string +@s__res_LayoutRevo_msgres02R_arc = .data:0x804073B0; // type:object size:0x1E scope:local data:string +@s__res_LayoutRevo_msgres03R_arc = .data:0x804073CE; // type:object size:0x1E scope:local data:string +@s__res_Layout_msgres04F_arc = .data:0x804073EC; // type:object size:0x1A scope:local data:string +@s__res_Layout_msgres05_arc = .data:0x80407406; // type:object size:0x19 scope:local data:string +@s__res_Layout_msgres06_arc = .data:0x8040741F; // type:object size:0x19 scope:local data:string +@s__res_LayoutRevo_main2DR_arc = .data:0x80407438; // type:object size:0x1C scope:local data:string +@s__res_Fonteu_fontres_arc = .data:0x80407454; // type:object size:0x18 scope:local data:string +@s__res_Fonteu_rubyres_arc = .data:0x8040746C; // type:object size:0x18 scope:local data:string +@s__res_Particle_common_r_jpc = .data:0x80407484; // type:object size:0x1B scope:local data:string +@s__res_ItemTable_item_table_bin = .data:0x8040749F; // type:object size:0x1E scope:local data:string +@s__res_ItemTable_enemy_table_bin = .data:0x804074BD; // type:object size:0x1F scope:local data:string l_dScnLogo_Method = .data:0x804074DC; // type:object size:0x14 scope:global align:4 g_profile_LOGO_SCENE = .data:0x804074F0; // type:object size:0x28 scope:global align:4 @99263 = .data:0x80407518; // type:object size:0x1C scope:local align:4 @@ -25757,10 +25792,7 @@ lbl_8051E433 = .sdata:0x8051E433; // type:object size:0x8 data:string lbl_8051E43B = .sdata:0x8051E43B; // type:object size:0x7 data:string lbl_8051E442 = .sdata:0x8051E442; // type:object size:0x5 data:string lbl_8051E447 = .sdata:0x8051E447; // type:object size:0x8 data:string -g_blackColor = .sdata:0x8051E44F; // type:object size:0x1 data:byte -lbl_8051E450 = .sdata:0x8051E450; // type:object size:0x1 data:byte -lbl_8051E451 = .sdata:0x8051E451; // type:object size:0x1 data:byte -lbl_8051E452 = .sdata:0x8051E452; // type:object size:0x1 data:byte +g_blackColor = .sdata:0x8051E44F; // type:object size:0x4 data:4byte lbl_8051E453 = .sdata:0x8051E453; // type:object size:0x1 data:byte lbl_8051E454 = .sdata:0x8051E454; // type:object size:0x1 data:byte lbl_8051E455 = .sdata:0x8051E455; // type:object size:0x1 data:byte @@ -27450,10 +27482,10 @@ __float_nan = .sdata:0x80520EB8; // type:object size:0x4 scope:global align:4 da __float_huge = .sdata:0x80520EBC; // type:object size:0x4 scope:global align:4 data:float SendCount = .sdata:0x80520EC0; // type:object size:0x1 data:byte m_myObj__13dHomeButton_c = .sbss:0x80520EE0; // type:object size:0x4 scope:global align:4 data:4byte -lbl_80520EE4 = .sbss:0x80520EE4; // type:object size:0x1 data:byte -lbl_80520EE5 = .sbss:0x80520EE5; // type:object size:0x1 data:byte +lbl_8053A724__13dHomeButton_c = .sbss:0x80520EE4; // type:object size:0x1 data:byte +lbl_8053A725__13dHomeButton_c = .sbss:0x80520EE5; // type:object size:0x1 data:byte m_myObj__10dCsr_mng_c = .sbss:0x80520EE8; // type:object size:0x4 scope:global align:4 data:4byte -lbl_80520EF0 = .sbss:0x80520EF0; // type:object size:0x8 data:byte +data_8053a730 = .sbss:0x80520EF0; // type:object size:0x1 data:byte lbl_80520EF8 = .sbss:0x80520EF8; // type:object size:0x1 data:byte sPowerOnTime__7mDoMain = .sbss:0x80520F00; // type:object size:0x8 scope:global align:4 data:4byte sHungUpTime__7mDoMain = .sbss:0x80520F08; // type:object size:0x8 scope:global align:4 data:4byte @@ -27883,7 +27915,7 @@ resPreLoadTime0 = .sbss:0x805215E0; // type:object size:0x8 scope:global align:4 resPreLoadTime1 = .sbss:0x805215E8; // type:object size:0x8 scope:global align:4 data:4byte g_preLoadHIO = .sbss:0x805215F0; // type:object size:0x4 scope:global align:4 pauseTimer__9dScnPly_c = .sbss:0x805215F4; // type:object size:0x1 data:byte -lbl_805215F5 = .sbss:0x805215F5; // type:object size:0x1 data:byte +nextPauseTimer__9dScnPly_c = .sbss:0x805215F5; // type:object size:0x1 data:byte g_regHIO = .sbss:0x805215F8; // type:object size:0x4 scope:global align:4 m_nowID__9dkWmark_c = .sbss:0x80521600; // type:object size:0x4 scope:global align:4 data:4byte lbl_80521604 = .sbss:0x80521604; // type:object size:0x1 data:byte diff --git a/include/d/d_s_logo.h b/include/d/d_s_logo.h index 56d10eef82..33501cca04 100644 --- a/include/d/d_s_logo.h +++ b/include/d/d_s_logo.h @@ -149,7 +149,7 @@ public: /* 0x200 */ dDlst_2D_c* mNvLogo; /* 0x204 */ dDlst_2D_c* mMocImg; #endif -#if VERSION == VERSION_GCN_PAL +#if REGION_PAL /* 0x1FC */ mDoDvdThd_mountArchive_c* mpPalLogoResCommand; #endif /* 0x1FC */ request_of_phase_process_class* m_preLoad_dylPhase; diff --git a/include/m_Do/m_Do_graphic.h b/include/m_Do/m_Do_graphic.h index 123326c207..ac1931ef1b 100644 --- a/include/m_Do/m_Do_graphic.h +++ b/include/m_Do/m_Do_graphic.h @@ -255,7 +255,9 @@ public: static void onWide(); static void offWide(); - static u8 isWide(); + inline static u8 isWide() { + return mWide == TRUE; + } static void onWideZoom(); static void offWideZoom(); diff --git a/include/m_Do/m_Do_machine.h b/include/m_Do/m_Do_machine.h index 53c47c07a7..5eec79033b 100644 --- a/include/m_Do/m_Do_machine.h +++ b/include/m_Do/m_Do_machine.h @@ -17,6 +17,9 @@ void mDoMch_HeapFreeFillAll(); int mDoMch_Create(); extern GXRenderModeObj g_ntscZeldaProg; +#if VERSION == VERSION_WII_PAL +extern GXRenderModeObj g_palZeldaProg60; +#endif class mDoMch_render_c { public: diff --git a/libs/revolution/include/revolution/sc.h b/libs/revolution/include/revolution/sc.h index 262b165607..4e3071c3e5 100644 --- a/libs/revolution/include/revolution/sc.h +++ b/libs/revolution/include/revolution/sc.h @@ -185,6 +185,7 @@ BOOL SCGetIdleMode(SCIdleModeInfo* data); u8 SCGetLanguage(void); u8 SCGetProgressiveMode(void); void SCSetProgressiveMode(u8 mode); +void SCSetEuRgb60Mode(u8 mode); u8 SCGetScreenSaverMode(void); u8 SCGetSoundMode(void); u32 SCGetCounterBias(void); diff --git a/src/d/d_s_logo.cpp b/src/d/d_s_logo.cpp index 1b8e71d3e8..dc89b3c40f 100644 --- a/src/d/d_s_logo.cpp +++ b/src/d/d_s_logo.cpp @@ -381,7 +381,7 @@ void dScnLogo_c::progOutDraw() { dComIfGd_set2DOpa(mProgressiveNo); if (mTimer == 0) { - #if VERSION == VERSION_GCN_PAL + #if REGION_PAL if (field_0x218 == 1 && field_0x209 == 0) #else if (field_0x218 != 0 && field_0x209 == 0) @@ -497,7 +497,7 @@ void dScnLogo_c::warningDispDraw() { field_0x210--; } - #if PLATFORM_WII + #if PLATFORM_WII && VERSION != VERSION_WII_PAL 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) & @@ -796,15 +796,32 @@ dScnLogo_c::~dScnLogo_c() { #if PLATFORM_WII || PLATFORM_SHIELD switch (getPalLanguage()) { +#if REGION_PAL + case 1: + dComIfG_deleteObjectResMain("LogoGmWii"); + break; +#endif case 2: dComIfG_deleteObjectResMain("LogoFrWii"); break; case 3: dComIfG_deleteObjectResMain("LogoSpWii"); break; +#if REGION_PAL + case 4: + dComIfG_deleteObjectResMain("LogoItWii"); + break; + case 5: + dComIfG_deleteObjectResMain("LogoDuWii"); + break; +#endif case 0: default: +#if REGION_PAL + dComIfG_deleteObjectResMain("LogoUkWii"); +#else dComIfG_deleteObjectResMain("LogoUsWii"); +#endif break; } #else @@ -992,6 +1009,27 @@ static int phase_1(dScnLogo_c* i_this) { int rt; #if PLATFORM_WII || PLATFORM_SHIELD switch (i_this->getPalLanguage()) { +#if REGION_PAL + case 1: + rt = dComIfG_setObjectRes("LogoGmWii", (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; + case 4: + rt = dComIfG_setObjectRes("LogoItWii", (u8)0, i_this->mLogoHeap); + break; + case 5: + rt = dComIfG_setObjectRes("LogoDuWii", (u8)0, i_this->mLogoHeap); + break; + case 0: + default: + rt = dComIfG_setObjectRes("LogoUkWii", (u8)0, i_this->mLogoHeap); + break; +#else case 0: default: rt = dComIfG_setObjectRes("LogoUsWii", (u8)0, i_this->mLogoHeap); @@ -1002,6 +1040,7 @@ static int phase_1(dScnLogo_c* i_this) { case 3: rt = dComIfG_setObjectRes("LogoSpWii", (u8)0, i_this->mLogoHeap); break; +#endif } #else rt = dComIfG_setObjectRes(LOGO_ARC, (u8)0, i_this->mLogoHeap); @@ -1111,6 +1150,12 @@ int dScnLogo_c::create() { } #if PLATFORM_WII || PLATFORM_SHIELD + +#if REGION_PAL +static const u8 logoIndexes[6] = {4, 4, 4, 4, 4, 4}; +static const u8 widescreenLogoIndexes[6] = {3, 3, 3, 3, 3, 3}; +#endif + void dScnLogo_c::logoInitWii() { u8 language = getPalLanguage(); if (language > 5) { @@ -1120,11 +1165,48 @@ void dScnLogo_c::logoInitWii() { ResTIMG* timg; s16 width; s16 height; +#if REGION_PAL + int index; + if (mDoGph_gInf_c::isWide()) { + width = 832; + index = widescreenLogoIndexes[language]; + height = FB_HEIGHT; + } else { + width = FB_WIDTH_BASE; + index = logoIndexes[language]; + height = FB_HEIGHT; + } + + switch (language) { + case 1: + timg = (ResTIMG*)dComIfG_getObjectRes("LogoGmWii", index); + break; + case 2: + timg = (ResTIMG*)dComIfG_getObjectRes("LogoFrWii", index); + break; + case 3: + timg = (ResTIMG*)dComIfG_getObjectRes("LogoSpWii", index); + break; + case 4: + timg = (ResTIMG*)dComIfG_getObjectRes("LogoItWii", index); + break; + case 0: + timg = (ResTIMG*)dComIfG_getObjectRes("LogoUkWii", index); + break; + case 5: + timg = (ResTIMG*)dComIfG_getObjectRes("LogoDuWii", index); + break; + } +#else if (mDoGph_gInf_c::isWide()) { switch (language) { case 0: default: +#if PLATFORM_SHIELD + timg = (ResTIMG*)dComIfG_getObjectRes("LogoUsWii", 3); +#else timg = (ResTIMG*)dComIfG_getObjectRes("LogoUsWii", dRes_ID_LOGOUSWII_BTI_STRAP_16_9_832X456_US_e); +#endif break; case 2: timg = (ResTIMG*)dComIfG_getObjectRes("LogoFrWii", 3); @@ -1140,7 +1222,11 @@ void dScnLogo_c::logoInitWii() { switch (language) { case 0: default: +#if PLATFORM_SHIELD + timg = (ResTIMG*)dComIfG_getObjectRes("LogoUsWii", 4); +#else timg = (ResTIMG*)dComIfG_getObjectRes("LogoUsWii", dRes_ID_LOGOUSWII_BTI_STRAP_608X456_US_e); +#endif break; case 2: timg = (ResTIMG*)dComIfG_getObjectRes("LogoFrWii", 4); @@ -1154,6 +1240,7 @@ void dScnLogo_c::logoInitWii() { width = FB_WIDTH_BASE; height = FB_HEIGHT; } +#endif JUT_ASSERT(2309, timg != NULL); mStrapImg = new dDlst_2D_c(timg, (FB_WIDTH_BASE / 2) - (width / 2), (FB_HEIGHT_BASE / 2) - (height / 2), width, height, 255); @@ -1313,11 +1400,20 @@ void dScnLogo_c::dvdDataLoad() { static const homeBtnData l_homeBtnData[] = { {SC_LANG_ENGLISH, "/res/HomeBtn/homeBtn_ENG.arc"}, +#if REGION_PAL + {SC_LANG_GERMAN, "/res/HomeBtn/homeBtn_GER.arc"}, +#else {SC_LANG_ENGLISH, "/res/HomeBtn/homeBtn_ENG.arc"}, +#endif {SC_LANG_FRENCH, "/res/HomeBtn/homeBtn_FRA.arc"}, {SC_LANG_SPANISH, "/res/HomeBtn/homeBtn_SPA.arc"}, +#if REGION_PAL + {SC_LANG_ITALIAN, "/res/HomeBtn/homeBtn_ITA.arc"}, + {SC_LANG_DUTCH, "/res/HomeBtn/homeBtn_NED.arc"}, +#else {SC_LANG_ENGLISH, "/res/HomeBtn/homeBtn_ENG.arc"}, {SC_LANG_ENGLISH, "/res/HomeBtn/homeBtn_ENG.arc"}, +#endif {SC_LANG_ENGLISH, "/res/HomeBtn/homeBtn_ENG.arc"}, }; @@ -1355,7 +1451,7 @@ void dScnLogo_c::dvdDataLoad() { mpButtonCommand = aramMount(BUTTON_RES_PATH, mDoExt_getJ2dHeap()); mpCardIconCommand = aramMount(ICON_RES_PATH, mDoExt_getJ2dHeap()); - #if VERSION == VERSION_GCN_PAL + #if REGION_PAL switch (getPalLanguage()) { case 1: mpBmgResCommand = onMemMount("/res/Msgde/bmgres.arc"); @@ -1408,7 +1504,7 @@ void dScnLogo_c::dvdDataLoad() { #if VERSION == VERSION_GCN_JPN 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 +#elif REGION_PAL mpFontResCommand = onMemMount("/res/Fonteu/fontres.arc"); mpRubyResCommand = onMemMount("/res/Fonteu/rubyres.arc"); #elif VERSION == VERSION_SHIELD_DEBUG @@ -1564,7 +1660,9 @@ void dScnLogo_c::setProgressiveMode(u8 mode) { return; #endif - #if PLATFORM_WII + #if VERSION == VERSION_WII_PAL + SCSetEuRgb60Mode(mode); + #elif PLATFORM_WII SCSetProgressiveMode(mode); #elif VERSION == VERSION_GCN_PAL OSSetEuRgb60Mode(mode); @@ -1574,7 +1672,9 @@ void dScnLogo_c::setProgressiveMode(u8 mode) { } u8 dScnLogo_c::getProgressiveMode() { - #if PLATFORM_WII || PLATFORM_SHIELD + #if VERSION == VERSION_WII_PAL + return SCGetEuRgb60Mode(); + #elif PLATFORM_WII || PLATFORM_SHIELD return SCGetProgressiveMode(); #endif @@ -1594,6 +1694,14 @@ bool dScnLogo_c::isProgressiveMode() { } void dScnLogo_c::setRenderMode() { +#if VERSION == VERSION_WII_PAL + if (VIGetDTVStatus() != 0) { + if (SCGetProgressiveMode() == 1) { + mDoMch_render_c::setRenderModeObj(&g_palZeldaProg60); + return; + } + } +#endif mDoMch_render_c::setProgressiveMode(); } diff --git a/src/m_Do/m_Do_graphic.cpp b/src/m_Do/m_Do_graphic.cpp index 7f624531f7..2fe48c8fd7 100644 --- a/src/m_Do/m_Do_graphic.cpp +++ b/src/m_Do/m_Do_graphic.cpp @@ -578,10 +578,6 @@ BOOL mDoGph_gInf_c::isWideZoom() { return isWide() && mWideZoom; } -u8 mDoGph_gInf_c::isWide() { - return mWide == TRUE; -} - void mDoGph_gInf_c::setWideZoomProjection(Mtx44& m) { if (!isWideZoom()) { return; diff --git a/src/m_Do/m_Do_machine.cpp b/src/m_Do/m_Do_machine.cpp index 1223da03a1..9418d36c53 100644 --- a/src/m_Do/m_Do_machine.cpp +++ b/src/m_Do/m_Do_machine.cpp @@ -250,7 +250,9 @@ GXRenderModeObj g_ntscZeldaProg = { #if DEBUG static void myGXVerifyCallback(GXWarningLevel, u32, const char*); +#endif +#if DEBUG || VERSION == VERSION_WII_PAL GXRenderModeObj g_palZeldaProg60 = { VI_TVMODE_EURGB60_PROG, 640, 456, 456, 25, 12, 670, 456,