diff --git a/zsnes/src/linux/sdlintrf.asm b/zsnes/src/linux/sdlintrf.asm index 4f157c8b..20210029 100644 --- a/zsnes/src/linux/sdlintrf.asm +++ b/zsnes/src/linux/sdlintrf.asm @@ -121,6 +121,7 @@ EXTSYM WinErrorA2,WinErrorB2,WinErrorC2 EXTSYM ZsnesPage EXTSYM GetLocalTime EXTSYM V8Mode,GrayscaleMode +EXTSYM PrevWinMode NEWSYM WinIntRFAsmStart @@ -816,6 +817,13 @@ NEWSYM initvideo ; Returns 1 in videotroub if trouble occurs call initwinvideo popad + xor eax,eax + mov al,[cvidmode] + cmp byte[GUIWFVID+eax],1 + je .noprevwinmode + mov byte[PrevWinMode],al +.noprevwinmode + cmp dword[firstvideo],1 je .skipinitgfx pushad diff --git a/zsnes/src/win/winintrf.asm b/zsnes/src/win/winintrf.asm index 7ebd166c..876e1865 100644 --- a/zsnes/src/win/winintrf.asm +++ b/zsnes/src/win/winintrf.asm @@ -133,6 +133,7 @@ EXTSYM UDPDisableMode,UDPEnableMode,UDPClearVars,UDPWait1Sec EXTSYM WinErrorA2,WinErrorB2,WinErrorC2 EXTSYM ZsnesPage EXTSYM V8Mode,GrayscaleMode +EXTSYM PrevWinMode EXTSYM _imp__GetLocalTime@4 @@ -1094,6 +1095,13 @@ NEWSYM initvideo ; Returns 1 in videotroub if trouble occurs call initwinvideo popad + xor eax,eax + mov al,[cvidmode] + cmp byte[GUIWFVID+eax],1 + je .noprevwinmode + mov byte[PrevWinMode],al +.noprevwinmode + cmp dword[firstvideo],1 je .skipinitgfx pushad diff --git a/zsnes/src/win/winlink.cpp b/zsnes/src/win/winlink.cpp index 0fa361ad..8296db29 100644 --- a/zsnes/src/win/winlink.cpp +++ b/zsnes/src/win/winlink.cpp @@ -1491,7 +1491,6 @@ extern unsigned char cvidmode; DWORD FirstVid=1; DWORD FirstFull=1; extern BYTE GUIWFVID[]; -extern BYTE PrevWinMode; void clearwin(); char WinName[]={"ZSNESW\0"}; @@ -1512,7 +1511,6 @@ void initwinvideo(void) X=0; Y=0; FullScreen=GUIWFVID[cvidmode]; - if (GUIWFVID[cvidmode] == 0) PrevWinMode = cvidmode; switch (cvidmode) {