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

View File

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