diff --git a/zsnes/src/gui/gui.asm b/zsnes/src/gui/gui.asm index 44d9e561..c2e11427 100644 --- a/zsnes/src/gui/gui.asm +++ b/zsnes/src/gui/gui.asm @@ -579,8 +579,8 @@ NEWSYM GUIWGAdd, db 8 NEWSYM GUIWBAdd, db 25 NEWSYM BlackAndWhite, db 0 - NEWSYM MouseWheel, db 1 +NEWSYM AlternateTimer, db 0 GUIsave equ $-GUIRAdd diff --git a/zsnes/src/gui/guikeys.inc b/zsnes/src/gui/guikeys.inc index ae296887..e2a0aed7 100644 --- a/zsnes/src/gui/guikeys.inc +++ b/zsnes/src/gui/guikeys.inc @@ -812,12 +812,20 @@ GUIOptionKeys: mov [cfgnewgfx],al .invalidng .nonewgfx +%ifdef __MSDOS__ cmp dh,'V' jne .novsync xor byte[vsyncon],1 mov al,[vsyncon] mov [cfgvsync],al .novsync +%endif +%ifdef __WIN32__ + cmp dh,'H' + jne .nohighpriority + xor byte[HighPriority],1 +.nohighpriority +%endif cmp dh,'M' jne .nommxcopy xor byte[FPUCopy],2 @@ -844,10 +852,12 @@ GUIOptionKeys: jne .noswfix xor byte[SidewinderFix],1 .noswfix - cmp dh,'H' - jne .nohighpriority - xor byte[HighPriority],1 -.nohighpriority +%ifdef __WIN32__ + cmp dh,'S' + jne .noalttimer + xor byte[AlternateTimer],1 +.noalttimer +%endif cmp dh,'F' jne .nofpsatstart xor byte[FPSAtStart],1 diff --git a/zsnes/src/gui/guimouse.inc b/zsnes/src/gui/guimouse.inc index 2f064979..5fb815f4 100644 --- a/zsnes/src/gui/guimouse.inc +++ b/zsnes/src/gui/guimouse.inc @@ -2085,7 +2085,12 @@ DisplayGUIOptionClick: jne near .invalidng GUIClickCButton2 11,36,byte[newengen],byte[cfgnewgfx],1 .invalidng +%ifdef __MSDOS__ GUIClickCButton2 11,46,byte[vsyncon],byte[cfgvsync],1 +%endif +%ifdef __WIN32__ + GUIClickCButton 11,46,byte[HighPriority] +%endif GUIClickCButton2 11,56,byte[FPUCopy],byte[cfgcopymethod],2 GUIClickCButtonM 11,66,byte[pl12s34] ; cmp byte[OSPort],3 @@ -2095,7 +2100,7 @@ DisplayGUIOptionClick: %endif ;.win32config %ifdef __WIN32__ - GUIClickCButton 11,76,byte[HighPriority] + GUIClickCButton 11,76,byte[AlternateTimer] %endif GUIClickCButton 11,86,byte[FPSAtStart] GUIClickCButton 11,96,byte[Turbo30hz] diff --git a/zsnes/src/gui/guiwindp.inc b/zsnes/src/gui/guiwindp.inc index c5676b45..cab4438d 100644 --- a/zsnes/src/gui/guiwindp.inc +++ b/zsnes/src/gui/guiwindp.inc @@ -1355,6 +1355,9 @@ DisplayGUIOption: %ifdef __MSDOS__ GUIOuttextwin2u 4,26,51,GUIOptionText5,0 %endif +%ifdef __WIN32__ + GUIOuttextwin2u 4,26,51,GUIOptionText5b,0 +%endif ;.win32b GUIOuttextwin2u 4,26,61,GUIOptionText6,0 GUIOuttextwin2u 4,26,71,GUIOptionText7,0 @@ -1365,7 +1368,7 @@ DisplayGUIOption: %endif ;.win32b2 %ifdef __WIN32__ - GUIOuttextwin2u 4,26,81,GUIOptionTextAb,0 + GUIOuttextwin2u 4,26,81,GUIOptionTextAb,1 %endif GUIOuttextwin2u 4,26,91,GUIOptionTextB,0 GUIOuttextwin2u 4,26,101,GUIOptionTextC,2 @@ -1387,6 +1390,9 @@ DisplayGUIOption: %ifdef __MSDOS__ GUIOuttextwin2 4,25,50,GUIOptionText5 %endif +%ifdef __WIN32__ + GUIOuttextwin2 4,25,50,GUIOptionText5b +%endif ;.win32c GUIOuttextwin2 4,25,60,GUIOptionText6 GUIOuttextwin2 4,25,70,GUIOptionText7 @@ -1429,17 +1435,24 @@ DisplayGUIOption: mov dword[GUITemp],GUIIconDataCheckBoxC .nocheckbox1 GUIDisplayIconWin 4,11,36,[GUITemp] +%ifdef __MSDOS__ mov dword[GUITemp],GUIIconDataCheckBoxUC cmp byte[vsyncon],0 je .nocheckbox2 mov dword[GUITemp],GUIIconDataCheckBoxC -.nocheckbox2 ; cmp byte[OSPort],3 ; je near .win32 -%ifdef __MSDOS__ GUIDisplayIconWin 4,11,46,[GUITemp] %endif ;.win32 +%ifdef __WIN32__ + mov dword[GUITemp],GUIIconDataCheckBoxUC + cmp byte[HighPriority],0 + je .nocheckbox2 + mov dword[GUITemp],GUIIconDataCheckBoxC +%endif +.nocheckbox2 + GUIDisplayIconWin 4,11,46,[GUITemp] mov dword[GUITemp],GUIIconDataCheckBoxUC cmp byte[FPUCopy],2 jne .nocheckbox3 @@ -1465,7 +1478,7 @@ DisplayGUIOption: ;.win322 %ifdef __WIN32__ mov dword[GUITemp],GUIIconDataCheckBoxUC - cmp byte[HighPriority],0 + cmp byte[AlternateTimer],0 je .win323 mov dword[GUITemp],GUIIconDataCheckBoxC .win323 @@ -1580,10 +1593,11 @@ GUIOptionText2 db 'AUTO FRAME RATE',0 GUIOptionText3 db 'MAX FRAME SKIP',0 GUIOptionText4 db 'NEW GFX ENGINE',0 GUIOptionText5 db 'VSYNC',0 +GUIOptionText5b db 'HIGH PRIORITY MODE',0 GUIOptionText6 db 'MMX SUPPORT',0 GUIOptionText7 db 'USE PL3/4 AS PL1/2',0 GUIOptionTextA db 'SIDEWINDER FIX',0 -GUIOptionTextAb db 'HIGH PRIORITY MODE',0 +GUIOptionTextAb db 'USE ALTERNATE TIMER',0 GUIOptionTextB db 'FPS AT START',0 GUIOptionTextC db 'USE 30HZ FOR TURBO',0 GUIOptionTextD db 'ENABLE GAME CLOCK',0 diff --git a/zsnes/src/win/winlink.cpp b/zsnes/src/win/winlink.cpp index a14fcca7..62d2f64a 100644 --- a/zsnes/src/win/winlink.cpp +++ b/zsnes/src/win/winlink.cpp @@ -129,8 +129,6 @@ DWORD MouseButton; _int64 start, end, freq, update_ticks_pc, start2, end2, update_ticks_pc2; -BYTE AlternateTimer=0; - extern "C" { void drawscreenwin(void); @@ -190,6 +188,7 @@ extern BYTE ExclusiveSound; extern BYTE HighPriority; extern BYTE AlwaysOnTop; extern BYTE SaveMainWindowPos; +extern BYTE AlternateTimer; extern signed short int MainWindowX; extern signed short int MainWindowY; extern int CurKeyPos;