* Changed how video mode is chosen by the loader

PAL now really uses PAL
  Force Interlace now really use interlace
  Use Force480p if you want to force progressive
  Use Disc/console default for auto-detection

This is experimental, please report your settings and tested game if you get blackscreen/freezes but same settings work with r1216 and you think you selected the correct video mode.
This commit is contained in:
Cyan 2013-08-18 14:58:07 +00:00
parent cd3b443f4e
commit c6ae0b25c0
2 changed files with 19 additions and 47 deletions

View File

@ -2,8 +2,8 @@
<app version="1"> <app version="1">
<name> USB Loader GX</name> <name> USB Loader GX</name>
<coder>USB Loader GX Team</coder> <coder>USB Loader GX Team</coder>
<version>3.0 r1216</version> <version>3.0 r1217</version>
<release_date>20130818134939</release_date> <release_date>20130818144629</release_date>
<!-- // remove this line to enable arguments <!-- // remove this line to enable arguments
<arguments> <arguments>
<arg>--ios=250</arg> <arg>--ios=250</arg>

View File

@ -87,13 +87,8 @@ void Disc_SelectVMode(u8 videoselected, bool devolution, u32 *dml_VideoMode)
{ {
case CONF_VIDEO_PAL: case CONF_VIDEO_PAL:
rmode_reg = PAL60 ? VI_EURGB60 : VI_PAL; rmode_reg = PAL60 ? VI_EURGB60 : VI_PAL;
if(PAL60) rmode = progressive ? &TVEurgb60Hz480Prog : (PAL60 ? &TVEurgb60Hz480IntDf : &TVPal528IntDf);
rmode = progressive ? &TVNtsc480Prog : &TVEurgb60Hz480IntDf; if(dml_VideoMode) *dml_VideoMode = progressive ? DML_VID_FORCE_PROG : (PAL60 ? DML_VID_FORCE_PAL60 : DML_VID_FORCE_PAL50);
if(dml_VideoMode)
{
rmode = progressive ? &TVEurgb60Hz480Prog : (PAL60 ? &TVEurgb60Hz480IntDf : &TVPal528IntDf);
*dml_VideoMode = progressive ? DML_VID_FORCE_PROG : (PAL60 ? DML_VID_FORCE_PAL60 : DML_VID_FORCE_PAL50);
}
break; break;
case CONF_VIDEO_MPAL: case CONF_VIDEO_MPAL:
@ -102,7 +97,8 @@ void Disc_SelectVMode(u8 videoselected, bool devolution, u32 *dml_VideoMode)
case CONF_VIDEO_NTSC: case CONF_VIDEO_NTSC:
rmode_reg = VI_NTSC; rmode_reg = VI_NTSC;
if(dml_VideoMode) *dml_VideoMode = DML_VID_FORCE_NTSC; rmode = progressive ? &TVNtsc480Prog : &TVNtsc480IntDf;
if(dml_VideoMode) *dml_VideoMode = progressive ? DML_VID_FORCE_PROG : DML_VID_FORCE_NTSC;
break; break;
} }
@ -119,35 +115,19 @@ void Disc_SelectVMode(u8 videoselected, bool devolution, u32 *dml_VideoMode)
case 'P': case 'P':
case 'X': case 'X':
case 'Y': case 'Y':
if (tvmode != CONF_VIDEO_PAL) rmode_reg = PAL60 ? VI_EURGB60 : VI_PAL;
{ rmode = progressive ? &TVEurgb60Hz480Prog : (PAL60 ? &TVEurgb60Hz480IntDf : &TVPal528IntDf);
rmode_reg = PAL60 ? VI_EURGB60 : VI_PAL; if(dml_VideoMode) *dml_VideoMode = progressive ? DML_VID_FORCE_PROG : (PAL60 ? DML_VID_FORCE_PAL60 : DML_VID_FORCE_PAL50);
rmode = progressive ? &TVNtsc480Prog : (PAL60 ? &TVEurgb60Hz480IntDf : &TVPal528IntDf);
}
if(dml_VideoMode)
{
rmode_reg = PAL60 ? VI_EURGB60 : VI_PAL;
rmode = progressive ? &TVEurgb60Hz480Prog : (PAL60 ? &TVEurgb60Hz480IntDf : &TVPal528IntDf);
*dml_VideoMode = progressive ? DML_VID_FORCE_PROG : (PAL60 ? DML_VID_FORCE_PAL60 : DML_VID_FORCE_PAL50);
}
break; break;
// NTSC // NTSC
case 'E': case 'E':
case 'J': case 'J':
if (tvmode != CONF_VIDEO_NTSC) rmode_reg = VI_NTSC;
{ rmode = progressive ? &TVNtsc480Prog : &TVNtsc480IntDf;
rmode_reg = VI_NTSC; if(dml_VideoMode) *dml_VideoMode = progressive ? DML_VID_FORCE_PROG : DML_VID_FORCE_NTSC;
rmode = progressive ? &TVNtsc480Prog : &TVNtsc480IntDf;
}
if(dml_VideoMode)
{
rmode_reg = VI_NTSC;
rmode = progressive ? &TVNtsc480Prog : &TVNtsc480IntDf;
*dml_VideoMode = DML_VID_FORCE_NTSC;
}
break; break;
default: default:
if(dml_VideoMode) *dml_VideoMode = DML_VID_DML_AUTO; if(dml_VideoMode) *dml_VideoMode = DML_VID_DML_AUTO;
break; break;
} }
break; break;
@ -157,27 +137,19 @@ void Disc_SelectVMode(u8 videoselected, bool devolution, u32 *dml_VideoMode)
if(dml_VideoMode) *dml_VideoMode = DML_VID_FORCE_PAL50; if(dml_VideoMode) *dml_VideoMode = DML_VID_FORCE_PAL50;
break; break;
case VIDEO_MODE_PAL60: // PAL60 case VIDEO_MODE_PAL60: // PAL60
rmode = progressive ? &TVNtsc480Prog : &TVEurgb60Hz480IntDf; rmode = &TVEurgb60Hz480IntDf;
rmode_reg = VI_EURGB60; rmode_reg = VI_EURGB60;
if(dml_VideoMode) if(dml_VideoMode) *dml_VideoMode = DML_VID_FORCE_PAL60;
{
rmode = progressive ? &TVEurgb60Hz480Prog : &TVEurgb60Hz480IntDf;
*dml_VideoMode = progressive ? DML_VID_FORCE_PROG : DML_VID_FORCE_PAL60;
}
break; break;
case VIDEO_MODE_NTSC: // NTSC case VIDEO_MODE_NTSC: // NTSC
rmode = progressive ? &TVNtsc480Prog : &TVNtsc480IntDf; rmode = &TVNtsc480IntDf;
rmode_reg = VI_NTSC; rmode_reg = VI_NTSC;
if(dml_VideoMode) *dml_VideoMode = progressive ? DML_VID_FORCE_PROG : DML_VID_FORCE_NTSC; if(dml_VideoMode) *dml_VideoMode = DML_VID_FORCE_NTSC;
break; break;
case VIDEO_MODE_PAL480P: case VIDEO_MODE_PAL480P:
rmode = &TVNtsc480Prog; rmode = &TVEurgb60Hz480Prog;
rmode_reg = VI_EURGB60; rmode_reg = VI_EURGB60;
if(dml_VideoMode) if(dml_VideoMode) *dml_VideoMode = DML_VID_FORCE_PROG | DML_VID_PROG_PATCH;
{
rmode = &TVEurgb60Hz480Prog;
*dml_VideoMode = DML_VID_FORCE_PROG | DML_VID_PROG_PATCH;
}
break; break;
case VIDEO_MODE_NTSC480P: case VIDEO_MODE_NTSC480P:
rmode = &TVNtsc480Prog; rmode = &TVNtsc480Prog;