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;
		}
	}
}
Exemple #2
0
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;
}
Exemple #4
0
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;
}
Exemple #5
0
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
Exemple #6
0
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);
}
Exemple #7
0
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"));

}
Exemple #8
0
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;
	}
}