void patchVideoModes(void *dst, u32 len, int vidMode, GXRModeObj *vmode, int patchVidModes) { GXRModeObj **table = 0; if(patchVidModes && vmode != 0) applyVideoPatch(dst, len, vmode, patchVidModes - 1); else { switch(vidMode) { case 0: // default / disc / game break; case 1: // SYSTEM switch(CONF_GetVideo()) { case CONF_VIDEO_PAL: table = CONF_GetEuRGB60() > 0 ? NTSC2PAL60 : NTSC2PAL; break; case CONF_VIDEO_MPAL: table = NTSC2PAL; break; default: table = PAL2NTSC; break; } Search_and_patch_Video_Modes(dst, len, table); break; case 2: // PAL50 Search_and_patch_Video_Modes(dst, len, NTSC2PAL); break; case 3: // PAL60 Search_and_patch_Video_Modes(dst, len, NTSC2PAL60); break; case 4: // NTSC Search_and_patch_Video_Modes(dst, len, PAL2NTSC); break; default: break; } } }
void VideoModePatcher(u8 * dst, int len, u8 videoSelected, u8 VideoPatchDol) { GXRModeObj** table = NULL; if (videoSelected == VIDEO_MODE_PATCH) // patch enum'd in cfg.h { switch (CONF_GetVideo()) { case CONF_VIDEO_PAL: table = CONF_GetEuRGB60() > 0 ? NTSC2PAL60 : NTSC2PAL; break; case CONF_VIDEO_MPAL: table = NTSC2PAL; break; default: table = PAL2NTSC; break; } Search_and_patch_Video_Modes(dst, len, table); } else if(VideoPatchDol == VIDEO_PATCH_DOL_REGION ) //&& rmode != NULL) { switch(rmode->viTVMode >> 2) { case VI_PAL: case VI_MPAL: table = NTSC2PAL; break; case VI_EURGB60: table = NTSC2PAL60; break; default: table = PAL2NTSC; } Search_and_patch_Video_Modes(dst, len, table); } else if (VideoPatchDol == VIDEO_PATCH_DOL_ON && rmode != NULL)
void CSettings::SetDefault() { snprintf(covers_path, sizeof(covers_path), "%simages/", ConfigPath); snprintf(covers2d_path, sizeof(covers2d_path), "%simages/2D/", ConfigPath); snprintf(coversFull_path, sizeof(coversFull_path), "%simages/full/", ConfigPath); snprintf(disc_path, sizeof(disc_path), "%simages/disc/", ConfigPath); snprintf(titlestxt_path, sizeof(titlestxt_path), "%stitles/", ConfigPath); snprintf(languagefiles_path, sizeof(languagefiles_path), "%slanguage/", ConfigPath); snprintf(update_path, sizeof(update_path), "%s/apps/usbloader_gx/", BootDevice); snprintf(BNRCachePath, sizeof(BNRCachePath), "%s/apps/usbloader_gx/cache_bnr/", BootDevice); snprintf(homebrewapps_path, sizeof(homebrewapps_path), "%s/apps/", BootDevice); snprintf(Cheatcodespath, sizeof(Cheatcodespath), "%s/codes/", BootDevice); snprintf(TxtCheatcodespath, sizeof(TxtCheatcodespath), "%s/txtcodes/", BootDevice); snprintf(BcaCodepath, sizeof(BcaCodepath), "%s/bca/", BootDevice); snprintf(WipCodepath, sizeof(WipCodepath), "%s/wip/", BootDevice); snprintf(WDMpath, sizeof(WDMpath), "%s/wdm/", BootDevice); snprintf(WiinnertagPath, sizeof(WiinnertagPath), "%s", ConfigPath); snprintf(theme_path, sizeof(theme_path), "%stheme/", ConfigPath); snprintf(dolpath, sizeof(dolpath), "%s/", BootDevice); snprintf(NandEmuPath, sizeof(NandEmuPath), "%s/nand/", BootDevice); snprintf(DEVOLoaderPath, sizeof(DEVOLoaderPath), "%s/apps/gc_devo/", BootDevice); snprintf(NINLoaderPath, sizeof(NINLoaderPath), "%s/apps/nintendont/", BootDevice); strlcpy(NandEmuChanPath, NandEmuPath, sizeof(NandEmuChanPath)); strlcpy(GameCubePath, "usb1:/games/", sizeof(GameCubePath)); strlcpy(GameCubeSDPath, "sd:/games/", sizeof(GameCubeSDPath)); strlcpy(CustomBannersURL, "http://nintendont.gxarena.com/banners/", sizeof(CustomBannersURL)); theme[0] = 0; language_path[0] = 0; ogg_path[0] = 0; unlockCode[0] = 0; db_language[0] = 0; returnTo[0] = 0; NTSC = (CONF_GetVideo() == CONF_VIDEO_NTSC); PAL50 = (CONF_GetVideo() == CONF_VIDEO_PAL) && (CONF_GetEuRGB60() == 0); widescreen = (CONF_GetAspectRatio() == CONF_ASPECT_16_9); godmode = 1; videomode = VIDEO_MODE_DISCDEFAULT; videopatch = OFF; videoPatchDol = OFF; language = CONSOLE_DEFAULT; ocarina = OFF; hddinfo = CLOCK_HR12; sinfo = ON; rumble = ON; GameSort = SORT_ABC; volume = 80; sfxvolume = 80; gamesoundvolume = 80; tooltips = ON; gamesound = ON; parentalcontrol = PARENTAL_LVL_ADULT; LoaderIOS = BUILD_IOS; cios = BUILD_IOS; gridRows = 3; partition = 0; discart = DISCARTS_ORIGINALS_CUSTOMS; coversfull = COVERSFULL_HQ; xflip = XFLIP_NO; quickboot = OFF; wiilight = WIILIGHT_ON; autonetwork = OFF; patchcountrystrings = OFF; titlesOverride = ON; ForceDiscTitles = OFF; screensaver = SCREENSAVER_10_MIN; musicloopmode = ON; marknewtitles = ON; ShowFreeSpace = ON; PlaylogUpdate = OFF; ParentalBlocks = BLOCK_ALL; InstallToDir = INSTALL_TO_NAME_GAMEID; GameSplit = GAMESPLIT_4GB; InstallPartitions = REMOVE_UPDATE_PARTITION; HomeMenu = HOME_MENU_DEFAULT; MultiplePartitions = OFF; BlockIOSReload = AUTO; USBPort = 0; USBAutoMount = ON; CacheTitles = ON; WSFactor = 0.8f; //actually should be 0.75 for real widescreen FontScaleFactor = 0.8f; //it's a work around to not have to change ALL fonts now ClockFontScaleFactor = 1.0f; // Scale of 1 to prevent misaligned clock. EnabledCategories.resize(1); EnabledCategories[0] = 0; RequiredCategories.resize(0); ForbiddenCategories.resize(0); Wiinnertag = OFF; SelectedGame = 0; GameListOffset = 0; sneekVideoPatch = OFF; NandEmuMode = OFF; NandEmuChanMode = 2; UseSystemFont = ON; Hooktype = 0; WiirdDebugger = OFF; WiirdDebuggerPause = OFF; ShowPlayCount = ON; RememberUnlock = ON; LoaderMode = MODE_WIIGAMES | MODE_GCGAMES; SearchMode = SEARCH_BEGINNING; GameAspectRatio = ASPECT_SYSTEM_DEFAULT; PointerSpeed = 0.18f; UseChanLauncher = OFF; AdjustOverscanX = 0; AdjustOverscanY = 0; TooltipDelay = 1500; // ms GameWindowMode = GAMEWINDOW_BANNER; CacheBNRFiles = ON; BannerAnimStart = BANNER_START_ON_ZOOM; BannerGridSpeed = 25.6f; // pixel/frames BannerZoomDuration = 30; // frames BannerProjectionOffsetX = (!widescreen || PAL50) ? 0.0f : 2.0f; BannerProjectionOffsetY = PAL50 ? -1.0f : (NTSC ? 0.0f : -4.0f); BannerProjectionWidth = (Settings.widescreen ? (Settings.PAL50 ? 616 : 620.0f) : 608.0f); BannerProjectionHeight = (Settings.PAL50 ? 448.0f : (NTSC ? 470.0f : 464.0f)); GCBannerScale = 1.5f; GameCubeMode = GC_MODE_MIOS; GameCubeSource = AUTO; MultiDiscPrompt = OFF; DMLVideo = DML_VIDEO_AUTO; DMLProgPatch = OFF; DMLNMM = OFF; DMLActivityLED = OFF; DMLPADHOOK = OFF; DMLNoDisc2 = OFF; DMLWidescreen = OFF; DMLScreenshot = OFF; DMLJPNPatch = OFF; DMLDebug = OFF; NINDeflicker = OFF; NINPal50Patch = OFF; NINWiiUWide = widescreen; NINVideoScale = 40; NINVideoOffset = 0; NINRemlimit = OFF; NINMCEmulation = ON; NINMCSize = 2; NINAutoboot = ON; NINSettings = AUTO; NINUSBHID = OFF; NINMaxPads = 4; NINNativeSI = OFF; NINOSReport = OFF; NINLED = OFF; NINLog = OFF; DEVOMCEmulation = OFF; DEVOWidescreen = OFF; DEVOActivityLED = ON; DEVOFZeroAX = OFF; DEVOTimerFix = OFF; DEVODButtons = OFF; DEVOCropOverscan = OFF; DEVODiscDelay = OFF; GCInstallCompressed = OFF; GCInstallAligned = OFF; PrivateServer = OFF; }
GXRModeObj * __Disc_SelectVMode(u8 videoselected, u64 chantitle) { vmode = VIDEO_GetPreferredMode(0); /* Get video mode configuration */ bool progressive = (CONF_GetProgressiveScan() > 0) && VIDEO_HaveComponentCable(); /* Select video mode register */ switch (CONF_GetVideo()) { case CONF_VIDEO_PAL: if (CONF_GetEuRGB60() > 0) { vmode_reg = VI_EURGB60; vmode = progressive ? &TVNtsc480Prog : &TVEurgb60Hz480IntDf; } else vmode_reg = VI_PAL; break; case CONF_VIDEO_MPAL: vmode_reg = VI_MPAL; break; case CONF_VIDEO_NTSC: vmode_reg = VI_NTSC; break; } char Region; if(chantitle != 0) Region = ((u32)(chantitle) & 0xFFFFFFFF) % 256; else Region = diskid[3]; switch (videoselected) { case 0: // DEFAULT (DISC/GAME) /* Select video mode */ switch (Region) { case 'W': break; // Don't overwrite wiiware video modes. // PAL case 'D': case 'F': case 'P': case 'X': case 'Y': if (CONF_GetVideo() != CONF_VIDEO_PAL) { vmode_reg = VI_PAL; vmode = progressive ? &TVNtsc480Prog : &TVNtsc480IntDf; } break; // NTSC case 'E': case 'J': default: if (CONF_GetVideo() != CONF_VIDEO_NTSC) { vmode_reg = VI_NTSC; vmode = progressive ? &TVNtsc480Prog : &TVEurgb60Hz480IntDf; } break; } break; case 1: // PAL50 vmode = &TVPal528IntDf; vmode_reg = vmode->viTVMode >> 2; break; case 2: // PAL60 vmode = progressive ? &TVNtsc480Prog : &TVEurgb60Hz480IntDf; vmode_reg = progressive ? TVEurgb60Hz480Prog.viTVMode >> 2 : vmode->viTVMode >> 2; break; case 3: // NTSC vmode = progressive ? &TVNtsc480Prog : &TVNtsc480IntDf; vmode_reg = vmode->viTVMode >> 2; break; case 4: // AUTO PATCH TO SYSTEM case 5: // SYSTEM break; case 6: // PROGRESSIVE 480P(NTSC + PATCH ALL) vmode = &TVNtsc480Prog; vmode_reg = vmode->viTVMode >> 2; break; default: break; } disc_vmode = vmode; return vmode; }
void maindolpatches(void *dst, int len) { GXRModeObj** table = NULL; DCFlushRange(dst, len); if (CFG.video == CFG_VIDEO_PATCH) // patch auto { switch(CONF_GetVideo()) { case CONF_VIDEO_PAL: if(CONF_GetEuRGB60() > 0) { table = NTSC2PAL60; } else { table = NTSC2PAL; } break; case CONF_VIDEO_MPAL: table = NTSC2PAL; break; default: table = PAL2NTSC; break; } Search_and_patch_Video_Modes(dst, len, table); } // force PAL50 (Narolez) if (CFG.video == CFG_VIDEO_PAL50) { Search_and_patch_Video_Modes(dst, len, NTSC2PAL); } if (CFG.video == CFG_VIDEO_PAL60) { Search_and_patch_Video_Modes(dst, len, NTSC2PAL60); } if (CFG.video == CFG_VIDEO_NTSC) { Search_and_patch_Video_Modes(dst, len, PAL2NTSC); } if (CFG.ocarina) { dogamehooks(dst,len); } if (CFG.vidtv) { vidolpatcher(dst,len); } /*LANGUAGE PATCH - FISHEARS*/ if (CFG.language != CFG_LANG_CONSOLE) { langpatcher(dst,len); } // Country Patch by WiiPower if(CFG.country_patch) { PatchCountryStrings(dst, len); } // 002b fix from NeoGammaR4 by WiiPower: if (CFG.anti_002_fix) { Anti_002_fix(dst, len); } DCFlushRange(dst, len); } // maindolpatches
void __Disc_SetVMode(void) { GXRModeObj *vmode = NULL; u32 progressive, tvmode, vmode_reg = 0; /* Get video mode configuration */ progressive = (CONF_GetProgressiveScan() > 0) && VIDEO_HaveComponentCable(); tvmode = CONF_GetVideo(); /* Select video mode register */ switch (tvmode) { case CONF_VIDEO_PAL: if (CONF_GetEuRGB60() > 0) { vmode_reg = 5; vmode = (progressive) ? &TVNtsc480Prog : &TVEurgb60Hz480IntDf; } else vmode_reg = 1; break; case CONF_VIDEO_MPAL: vmode_reg = 4; break; case CONF_VIDEO_NTSC: vmode_reg = 0; break; } /* Select video mode */ switch(diskid[3]) { /* PAL */ case 'D': case 'F': case 'P': case 'X': case 'Y': if (tvmode != CONF_VIDEO_PAL) { vmode_reg = 1; vmode = (progressive) ? &TVNtsc480Prog : &TVNtsc480IntDf; } break; /* NTSC or unknown */ case 'E': case 'J': if (tvmode != CONF_VIDEO_NTSC) { vmode_reg = 0; vmode = (progressive) ? &TVNtsc480Prog : &TVEurgb60Hz480IntDf; } break; } /* Set video mode register */ *(vu32 *)0x800000CC = vmode_reg; /* Set video mode */ if (vmode) Video_Configure(vmode); /* Clear screen */ Video_Clear(COLOR_BLACK); }
void __Disc_SetVMode(u8 videoselected) { GXRModeObj *vmode = NULL; u32 progressive, tvmode, vmode_reg = 0; /* Get video mode configuration */ progressive = (CONF_GetProgressiveScan() > 0) && VIDEO_HaveComponentCable(); tvmode = CONF_GetVideo(); /* Select video mode register */ switch (tvmode) { case CONF_VIDEO_PAL: vmode_reg = (CONF_GetEuRGB60() > 0) ? 5 : 1; break; case CONF_VIDEO_MPAL: vmode_reg = 4; break; case CONF_VIDEO_NTSC: vmode_reg = 0; break; } switch (videoselected) { case 0: /* Select video mode */ switch (diskid[3]) { /* PAL */ case 'P': case 'D': case 'F': case 'I': case 'S': case 'H': case 'X': case 'Y': case 'Z': if (tvmode != CONF_VIDEO_PAL) { vmode_reg = 5; vmode = (progressive) ? &TVNtsc480Prog : &TVEurgb60Hz480IntDf; } break; /* NTSC or unknown */ case 'E': case 'J': case 'K': case 'W': if (tvmode != CONF_VIDEO_NTSC) { vmode_reg = 0; vmode = (progressive) ? &TVNtsc480Prog : &TVNtsc480IntDf; } break; } break; case 1: vmode = &TVPal528IntDf; vmode_reg = (vmode->viTVMode) >> 2; break; case 2: progressive = (CONF_GetProgressiveScan() > 0) && VIDEO_HaveComponentCable(); vmode = (progressive) ? &TVNtsc480Prog : &TVEurgb60Hz480IntDf; vmode_reg = (vmode->viTVMode) >> 2; break; case 3: progressive = (CONF_GetProgressiveScan() > 0) && VIDEO_HaveComponentCable(); vmode = (progressive) ? &TVNtsc480Prog : &TVNtsc480IntDf; vmode_reg = (vmode->viTVMode) >> 2; break; case 4: // vmode = VIDEO_GetPreferredMode(NULL); break; } /* Set video mode register */ *Video_Mode = vmode_reg; /* Set video mode */ if (vmode) { VIDEO_Configure(vmode); /* Setup video */ VIDEO_SetBlack(FALSE); VIDEO_Flush(); VIDEO_WaitVSync(); if (vmode->viTVMode & VI_NON_INTERLACE) VIDEO_WaitVSync(); } gprintf("\nVideo mode - %s",((progressive)?"progressive":"interlaced")); }
void __Disc_SelectVMode(u8 videoselected) { vmode = VIDEO_GetPreferredMode(0); /* Get video mode configuration */ bool progressive = (CONF_GetProgressiveScan() > 0) && VIDEO_HaveComponentCable(); /* Select video mode register */ switch (CONF_GetVideo()) { case CONF_VIDEO_PAL: if (CONF_GetEuRGB60() > 0) { vmode_reg = VI_EURGB60; vmode = progressive ? &TVNtsc480Prog : &TVEurgb60Hz480IntDf; } else vmode_reg = VI_PAL; break; case CONF_VIDEO_MPAL: vmode_reg = VI_MPAL; break; case CONF_VIDEO_NTSC: vmode_reg = VI_NTSC; break; } switch (videoselected) { case 0: // DEFAULT (DISC/GAME) /* Select video mode */ switch (diskid[3]) { // PAL case 'D': case 'F': case 'P': case 'X': case 'Y': if (CONF_GetVideo() != CONF_VIDEO_PAL) { vmode_reg = VI_PAL; vmode = progressive ? &TVNtsc480Prog : &TVNtsc480IntDf; } break; // NTSC case 'E': case 'J': default: if (CONF_GetVideo() != CONF_VIDEO_NTSC) { vmode_reg = VI_NTSC; vmode = progressive ? &TVNtsc480Prog : &TVEurgb60Hz480IntDf; } break; } break; case 1: // PAL50 vmode = &TVPal528IntDf; vmode_reg = vmode->viTVMode >> 2; break; case 2: // PAL60 vmode = progressive ? &TVNtsc480Prog : &TVEurgb60Hz480IntDf; vmode_reg = progressive ? TVEurgb60Hz480Prog.viTVMode >> 2 : vmode->viTVMode >> 2; break; case 3: // NTSC vmode = progressive ? &TVNtsc480Prog : &TVNtsc480IntDf; vmode_reg = vmode->viTVMode >> 2; break; case 4: // AUTO PATCH TO SYSTEM case 5: // SYSTEM break; case 6: // PROGRESSIVE 480P(NTSC + PATCH ALL) vmode = &TVNtsc480Prog; vmode_reg = vmode->viTVMode >> 2; break; default: break; } }