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;
		}
	}
}
Beispiel #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)
Beispiel #3
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