Fixed NTSC filter bugs

This commit is contained in:
pagefault
2006-03-29 20:10:45 +00:00
parent ceea2d86f2
commit c3fab62714
2 changed files with 10 additions and 3 deletions

View File

@@ -20,6 +20,7 @@
%ifdef __WIN32__
EXTSYM MinimizeWindow
EXTSYM initwinvideo
%endif
SECTION .bss
@@ -2541,7 +2542,7 @@ DisplayGUIVideoClick:
cmp byte[GUINTVID+ebx],0
je near .nontscfilter
FilterExcl 115,173,En2xSaI,hqFilter,scanlines,cfgscanline,antienab,cfginterp,BilinearFilter
GUIClickCButton5 115,173,byte[NTSCFilter],1
GUIClickCButtonf 115,173,byte[NTSCFilter],initwinvideo
.nontscfilter
%ifdef __UNIXSDL__
xor ebx,ebx ; bilinear

View File

@@ -1401,6 +1401,7 @@ DWORD SMode=0;
DWORD DSMode=0;
DWORD NTSCMode=0;
DWORD prevHQMode=~0;
DWORD prevNTSCMode=0;
DWORD prevScanlines=~0;
WORD Refresh = 0;
extern "C" BYTE GUIWFVID[];
@@ -1866,10 +1867,11 @@ void initwinvideo(void)
if ( GUIHQ4X[cvidmode] != 0 ) HQMode=4;
}
if ((CurMode!=cvidmode) || (prevHQMode!=HQMode))
if ((CurMode!=cvidmode) || (prevHQMode!=HQMode) || (prevNTSCMode!=NTSCFilter))
{
CurMode=cvidmode;
prevHQMode=HQMode;
prevNTSCMode=NTSCFilter;
newmode=1;
SurfaceX=256;
SurfaceY=240;
@@ -1969,8 +1971,10 @@ void initwinvideo(void)
SurfaceX = 512;
else
SurfaceX = 640;
SurfaceY=480;
if (NTSCMode)
if (NTSCMode && NTSCFilter)
{
if (!FullScreen)
{
@@ -2510,6 +2514,8 @@ void drawscreenwin(void)
if (prevHQMode!=HQMode)
initwinvideo();
if (prevNTSCMode != NTSCFilter) initwinvideo();
if (prevScanlines != scanlines)
{
initwinvideo();