Video: added Prescale filters, that pointresize to 2x-4x to allow less blur at fullscreen + hardware acceleration. Only work at 32bpp.
fix to previous commit note: not bytes, bits!
This commit is contained in:
parent
21d94f7f27
commit
81cc9062f0
File diff suppressed because it is too large
Load Diff
|
@ -147,7 +147,7 @@ int genie = 0;
|
||||||
int pal_emulation = 0;
|
int pal_emulation = 0;
|
||||||
int pal_setting_specified = 0;
|
int pal_setting_specified = 0;
|
||||||
int dendy = 0;
|
int dendy = 0;
|
||||||
bool swapDuty = 0; // some dendy models had duty cycle bits swapped
|
bool swapDuty = 0; // some Famicom and NES clones had duty cycle bits swapped
|
||||||
int ntsccol = 0, ntsctint, ntschue;
|
int ntsccol = 0, ntsctint, ntschue;
|
||||||
std::string BaseDirectory;
|
std::string BaseDirectory;
|
||||||
int PauseAfterLoad;
|
int PauseAfterLoad;
|
||||||
|
|
|
@ -1394,7 +1394,7 @@ BEGIN
|
||||||
LTEXT "First line:",65436,367,68,40,9
|
LTEXT "First line:",65436,367,68,40,9
|
||||||
LTEXT "Last line:",65435,367,84,40,9
|
LTEXT "Last line:",65435,367,84,40,9
|
||||||
CTEXT "NTSC",65434,413,57,27,8
|
CTEXT "NTSC",65434,413,57,27,8
|
||||||
CTEXT "PAL/Dendy",65433,465,57,27,8
|
CTEXT "PAL/Dendy",65433,455,57,48,8
|
||||||
EDITTEXT IDC_SCANLINE_FIRST_NTSC,414,66,27,12,ES_RIGHT
|
EDITTEXT IDC_SCANLINE_FIRST_NTSC,414,66,27,12,ES_RIGHT
|
||||||
EDITTEXT IDC_SCANLINE_LAST_NTSC,414,83,27,12,ES_RIGHT
|
EDITTEXT IDC_SCANLINE_LAST_NTSC,414,83,27,12,ES_RIGHT
|
||||||
EDITTEXT IDC_SCANLINE_FIRST_PAL,465,66,27,12,ES_RIGHT
|
EDITTEXT IDC_SCANLINE_FIRST_PAL,465,66,27,12,ES_RIGHT
|
||||||
|
@ -1659,6 +1659,10 @@ BEGIN
|
||||||
BEGIN
|
BEGIN
|
||||||
BOTTOMMARGIN, 188
|
BOTTOMMARGIN, 188
|
||||||
END
|
END
|
||||||
|
|
||||||
|
"VIDEOCONFIG", DIALOG
|
||||||
|
BEGIN
|
||||||
|
END
|
||||||
END
|
END
|
||||||
#endif // APSTUDIO_INVOKED
|
#endif // APSTUDIO_INVOKED
|
||||||
|
|
||||||
|
|
|
@ -222,8 +222,8 @@ static int InitBPPStuff(int fs)
|
||||||
switch (winspecial)
|
switch (winspecial)
|
||||||
{
|
{
|
||||||
case 3:
|
case 3:
|
||||||
specfilteropt = NTSCwinspecial;
|
specfilteropt = NTSCwinspecial;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(bpp >= 16)
|
if(bpp >= 16)
|
||||||
|
@ -337,6 +337,8 @@ int SetVideoMode(int fs)
|
||||||
specmul = 2;
|
specmul = 2;
|
||||||
else if(winspecial >= 4 && winspecial <= 5)
|
else if(winspecial >= 4 && winspecial <= 5)
|
||||||
specmul = 3;
|
specmul = 3;
|
||||||
|
else if(winspecial >= 6)
|
||||||
|
specmul = winspecial - 4; // magic assuming prescales are winspecial >= 6
|
||||||
else
|
else
|
||||||
specmul = 1;
|
specmul = 1;
|
||||||
|
|
||||||
|
@ -424,7 +426,8 @@ int SetVideoMode(int fs)
|
||||||
|
|
||||||
windowedfailed=0;
|
windowedfailed=0;
|
||||||
SetMainWindowStuff();
|
SetMainWindowStuff();
|
||||||
} else
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
//Following is full-screen
|
//Following is full-screen
|
||||||
if(vmod == 0) // Custom mode
|
if(vmod == 0) // Custom mode
|
||||||
|
@ -434,6 +437,8 @@ int SetVideoMode(int fs)
|
||||||
specmul = 2;
|
specmul = 2;
|
||||||
else if(vmodes[0].special >= 4 && vmodes[0].special <= 5)
|
else if(vmodes[0].special >= 4 && vmodes[0].special <= 5)
|
||||||
specmul = 3;
|
specmul = 3;
|
||||||
|
else if(vmodes[0].special >= 6)
|
||||||
|
specmul = vmodes[0].special - 4; // magic assuming prescales are vmodes[0].special >= 6
|
||||||
else
|
else
|
||||||
specmul = 1;
|
specmul = 1;
|
||||||
}
|
}
|
||||||
|
@ -598,6 +603,8 @@ static void BlitScreenWindow(unsigned char *XBuf)
|
||||||
specialmul = 2;
|
specialmul = 2;
|
||||||
else if(winspecial >= 4 && winspecial <= 5)
|
else if(winspecial >= 4 && winspecial <= 5)
|
||||||
specialmul = 3;
|
specialmul = 3;
|
||||||
|
else if(winspecial >= 6)
|
||||||
|
specialmul = winspecial - 4; // magic assuming prescales are winspecial >= 6
|
||||||
else specialmul = 1;
|
else specialmul = 1;
|
||||||
|
|
||||||
srect.top=srect.left=0;
|
srect.top=srect.left=0;
|
||||||
|
@ -736,6 +743,8 @@ static void BlitScreenFull(uint8 *XBuf)
|
||||||
specmul = 2;
|
specmul = 2;
|
||||||
else if(vmodes[0].special >= 4 && vmodes[0].special <= 5)
|
else if(vmodes[0].special >= 4 && vmodes[0].special <= 5)
|
||||||
specmul = 3;
|
specmul = 3;
|
||||||
|
else if(vmodes[0].special >= 6)
|
||||||
|
specmul = vmodes[0].special - 4; // magic assuming prescales are vmodes[0].special >= 6
|
||||||
else
|
else
|
||||||
specmul = 1;
|
specmul = 1;
|
||||||
|
|
||||||
|
@ -1257,9 +1266,9 @@ BOOL CALLBACK VideoConCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPara
|
||||||
//CheckRadioButton(hwndDlg,IDC_RADIO_SCALE,IDC_RADIO_STRETCH,(vmodes[0].flags&VMDF_STRFS)?IDC_RADIO_STRETCH:IDC_RADIO_SCALE);
|
//CheckRadioButton(hwndDlg,IDC_RADIO_SCALE,IDC_RADIO_STRETCH,(vmodes[0].flags&VMDF_STRFS)?IDC_RADIO_STRETCH:IDC_RADIO_SCALE);
|
||||||
|
|
||||||
// -Video Modes Tag-
|
// -Video Modes Tag-
|
||||||
char *str[]={"<none>","hq2x","Scale2x","NTSC 2x","hq3x","Scale3x"};
|
char *str[]={"<none>","hq2x","Scale2x","NTSC 2x","hq3x","Scale3x","Prescale2x","Prescale3x","Prescale4x"};
|
||||||
int x;
|
int x;
|
||||||
for(x=0;x<6;x++)
|
for(x=0;x<9;x++)
|
||||||
{
|
{
|
||||||
SendDlgItemMessage(hwndDlg,IDC_VIDEOCONFIG_SCALER_FS,CB_ADDSTRING,0,(LPARAM)(LPSTR)str[x]);
|
SendDlgItemMessage(hwndDlg,IDC_VIDEOCONFIG_SCALER_FS,CB_ADDSTRING,0,(LPARAM)(LPSTR)str[x]);
|
||||||
SendDlgItemMessage(hwndDlg,IDC_VIDEOCONFIG_SCALER_WIN,CB_ADDSTRING,0,(LPARAM)(LPSTR)str[x]);
|
SendDlgItemMessage(hwndDlg,IDC_VIDEOCONFIG_SCALER_WIN,CB_ADDSTRING,0,(LPARAM)(LPSTR)str[x]);
|
||||||
|
|
Loading…
Reference in New Issue