mirror of
https://github.com/dborth/fceugx.git
synced 2025-02-03 19:02:34 +01:00
PAL <> NTSC timing corrections
This commit is contained in:
parent
a1fe3af450
commit
2421a712dc
@ -368,7 +368,7 @@ int main(int argc, char *argv[])
|
|||||||
else
|
else
|
||||||
MainMenu(MENU_GAME);
|
MainMenu(MENU_GAME);
|
||||||
|
|
||||||
if(currentTiming != GCSettings.timing)
|
if(currentTiming != GCSettings.timing && GCSettings.timing != 2)
|
||||||
FCEUI_SetVidSystem(GCSettings.timing); // causes a small 'pop' in the audio
|
FCEUI_SetVidSystem(GCSettings.timing); // causes a small 'pop' in the audio
|
||||||
|
|
||||||
currentTiming = GCSettings.timing;
|
currentTiming = GCSettings.timing;
|
||||||
|
@ -50,7 +50,7 @@ int GCMemROM(int size)
|
|||||||
GameInfo->soundrate = SAMPLERATE;
|
GameInfo->soundrate = SAMPLERATE;
|
||||||
GameInfo->name=0;
|
GameInfo->name=0;
|
||||||
GameInfo->type=GIT_CART;
|
GameInfo->type=GIT_CART;
|
||||||
GameInfo->vidsys=GIV_USER;
|
GameInfo->vidsys=(EGIV)GCSettings.timing;
|
||||||
GameInfo->input[0]=GameInfo->input[1]=SI_UNSET;
|
GameInfo->input[0]=GameInfo->input[1]=SI_UNSET;
|
||||||
GameInfo->inputfc=SIFC_UNSET;
|
GameInfo->inputfc=SIFC_UNSET;
|
||||||
GameInfo->cspecial=SIS_NONE;
|
GameInfo->cspecial=SIS_NONE;
|
||||||
|
@ -203,7 +203,7 @@ static u32 normaldiff;
|
|||||||
|
|
||||||
void setFrameTimer()
|
void setFrameTimer()
|
||||||
{
|
{
|
||||||
if (GCSettings.timing == 1) // PAL
|
if (FCEUI_GetCurrentVidSystem(NULL, NULL) == 1) // PAL
|
||||||
normaldiff = 20000; // 50hz
|
normaldiff = 20000; // 50hz
|
||||||
else
|
else
|
||||||
normaldiff = 16667; // 60hz
|
normaldiff = 16667; // 60hz
|
||||||
@ -212,16 +212,14 @@ void setFrameTimer()
|
|||||||
|
|
||||||
void SyncSpeed()
|
void SyncSpeed()
|
||||||
{
|
{
|
||||||
if(GCSettings.timing != vmode_60hz)
|
|
||||||
return; // same timing as game - no adjustment necessary
|
|
||||||
|
|
||||||
now = gettime();
|
now = gettime();
|
||||||
|
u32 diff = diff_usec(prev, now);
|
||||||
|
|
||||||
if(turbomode)
|
if(turbomode)
|
||||||
{
|
{
|
||||||
// do nothing
|
// do nothing
|
||||||
}
|
}
|
||||||
else if (diff_usec(prev, now) > normaldiff)
|
else if (diff > normaldiff)
|
||||||
{
|
{
|
||||||
frameskip++;
|
frameskip++;
|
||||||
}
|
}
|
||||||
@ -609,7 +607,7 @@ ResetVideo_Emu ()
|
|||||||
|
|
||||||
// change current VI mode if using original render mode
|
// change current VI mode if using original render mode
|
||||||
if (GCSettings.render == 0)
|
if (GCSettings.render == 0)
|
||||||
rmode = tvmodes[GCSettings.timing];
|
rmode = tvmodes[FCEUI_GetCurrentVidSystem(NULL, NULL)];
|
||||||
else
|
else
|
||||||
rmode = FindVideoMode();
|
rmode = FindVideoMode();
|
||||||
|
|
||||||
|
@ -3051,7 +3051,9 @@ static int MenuSettingsVideo()
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 5: // timing
|
case 5: // timing
|
||||||
GCSettings.timing ^= 1;
|
GCSettings.timing++;
|
||||||
|
if(GCSettings.timing > 2)
|
||||||
|
GCSettings.timing = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 6:
|
case 6:
|
||||||
@ -3110,7 +3112,13 @@ static int MenuSettingsVideo()
|
|||||||
sprintf (options.value[4], "%s",
|
sprintf (options.value[4], "%s",
|
||||||
GCSettings.currpal ? palettes[GCSettings.currpal-1].desc : "Default");
|
GCSettings.currpal ? palettes[GCSettings.currpal-1].desc : "Default");
|
||||||
|
|
||||||
sprintf (options.value[5], "%s", GCSettings.timing == 1 ? "PAL" : "NTSC");
|
switch(GCSettings.timing)
|
||||||
|
{
|
||||||
|
case 0: sprintf (options.value[5], "NTSC"); break;
|
||||||
|
case 1: sprintf (options.value[5], "PAL"); break;
|
||||||
|
case 2: sprintf (options.value[5], "Automatic"); break;
|
||||||
|
}
|
||||||
|
|
||||||
sprintf (options.value[6], "%.2f%%, %.2f%%", GCSettings.zoomHor*100, GCSettings.zoomVert*100);
|
sprintf (options.value[6], "%.2f%%, %.2f%%", GCSettings.zoomHor*100, GCSettings.zoomVert*100);
|
||||||
sprintf (options.value[7], "%d, %d", GCSettings.xshift, GCSettings.yshift);
|
sprintf (options.value[7], "%d, %d", GCSettings.xshift, GCSettings.yshift);
|
||||||
sprintf (options.value[8], "%s", GCSettings.crosshair == 1 ? "On" : "Off");
|
sprintf (options.value[8], "%s", GCSettings.crosshair == 1 ? "On" : "Off");
|
||||||
@ -3133,6 +3141,7 @@ static int MenuSettingsVideo()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(backBtn.GetState() == STATE_CLICKED)
|
if(backBtn.GetState() == STATE_CLICKED)
|
||||||
|
|
||||||
{
|
{
|
||||||
menu = MENU_GAMESETTINGS;
|
menu = MENU_GAMESETTINGS;
|
||||||
}
|
}
|
||||||
|
@ -380,8 +380,8 @@ void FixInvalidSettings()
|
|||||||
GCSettings.Controller = CTRL_PAD2;
|
GCSettings.Controller = CTRL_PAD2;
|
||||||
if(!(GCSettings.render >= 0 && GCSettings.render < 3))
|
if(!(GCSettings.render >= 0 && GCSettings.render < 3))
|
||||||
GCSettings.render = 2;
|
GCSettings.render = 2;
|
||||||
if(GCSettings.timing != 0 && GCSettings.timing != 1)
|
if(GCSettings.timing < 0 || GCSettings.timing > 2)
|
||||||
GCSettings.timing = 0;
|
GCSettings.timing = 2;
|
||||||
if(!(GCSettings.videomode >= 0 && GCSettings.videomode < 5))
|
if(!(GCSettings.videomode >= 0 && GCSettings.videomode < 5))
|
||||||
GCSettings.videomode = 0;
|
GCSettings.videomode = 0;
|
||||||
}
|
}
|
||||||
@ -398,7 +398,7 @@ DefaultSettings ()
|
|||||||
ResetControls(); // controller button mappings
|
ResetControls(); // controller button mappings
|
||||||
|
|
||||||
GCSettings.currpal = 1; // color palette
|
GCSettings.currpal = 1; // color palette
|
||||||
GCSettings.timing = 0; // 0 - NTSC, 1 - PAL
|
GCSettings.timing = 2; // 0 - NTSC, 1 - PAL, 2 - Automatic
|
||||||
GCSettings.videomode = 0; // automatic video mode detection
|
GCSettings.videomode = 0; // automatic video mode detection
|
||||||
GCSettings.Controller = CTRL_PAD2; // NES pad, Four Score, Zapper
|
GCSettings.Controller = CTRL_PAD2; // NES pad, Four Score, Zapper
|
||||||
GCSettings.crosshair = 1; // show zapper crosshair
|
GCSettings.crosshair = 1; // show zapper crosshair
|
||||||
|
Loading…
x
Reference in New Issue
Block a user