From e2c8a56667e81b4261e530c223016000a2a4cb2f Mon Sep 17 00:00:00 2001 From: zsknight <> Date: Fri, 1 Jun 2001 01:15:21 +0000 Subject: [PATCH] Triple buffering option (win) --- zsnes/src/gui/gui.asm | 3 +- zsnes/src/gui/guimouse.inc | 7 +++-- zsnes/src/gui/guiwindp.inc | 58 +++++++++++++++++++++++++++----------- 3 files changed, 47 insertions(+), 21 deletions(-) diff --git a/zsnes/src/gui/gui.asm b/zsnes/src/gui/gui.asm index 946d0de9..7abba47b 100644 --- a/zsnes/src/gui/gui.asm +++ b/zsnes/src/gui/gui.asm @@ -121,7 +121,7 @@ EXTSYM MessageOn,Msgptr,MsgCount EXTSYM PJoyAOrig,PJoyBOrig,PJoyCOrig,PJoyDOrig,PJoyEOrig EXTSYM GetHostName EXTSYM vramaddr,curypos,ClearRegs,vram,sndrot,regsbackup -EXTSYM GetScreen +EXTSYM GetScreen,GUITBWVID EXTSYM MouseWindow EXTSYM GotoHomepage @@ -581,6 +581,7 @@ NEWSYM AlternateTimer, db 0 NEWSYM AllowMultipleInst, db 0 NEWSYM FilteredGUI, db 0 NEWSYM BilinearFilter, db 0 +NEWSYM TripleBufferWin, db 0 GUIsave equ $-GUIRAdd diff --git a/zsnes/src/gui/guimouse.inc b/zsnes/src/gui/guimouse.inc index 548a2c4b..5133f7cd 100644 --- a/zsnes/src/gui/guimouse.inc +++ b/zsnes/src/gui/guimouse.inc @@ -2176,10 +2176,11 @@ DisplayGUIVideoClick: mov bl,[cvidmode] cmp byte[GUIHSVID+ebx],0 je near .nohsline - GUIClickCButton4 21,123,byte[scanlines],byte[cfgscanline],1 - GUIClickCButton4 61,123,byte[scanlines],byte[cfgscanline],3 - GUIClickCButton4 101,123,byte[scanlines],byte[cfgscanline],2 + GUIClickCButton4 21,114,byte[scanlines],byte[cfgscanline],1 + GUIClickCButton4 61,114,byte[scanlines],byte[cfgscanline],3 + GUIClickCButton4 101,114,byte[scanlines],byte[cfgscanline],2 .nohsline + GUIClickCButton 11,123,byte[TripleBufferWin] xor ebx,ebx mov bl,[cvidmode] cmp byte[GUI2xVID+ebx],0 diff --git a/zsnes/src/gui/guiwindp.inc b/zsnes/src/gui/guiwindp.inc index 9c25bb45..43561317 100644 --- a/zsnes/src/gui/guiwindp.inc +++ b/zsnes/src/gui/guiwindp.inc @@ -1621,9 +1621,9 @@ DisplayGUIVideo: ; jne near .nowin32pt2 %ifndef __MSDOS__ GUIOuttextwin2 5,12,76,GUIVideoTextw0 - GUIOuttextwin2 5,12,86,GUIVideoTextw1 - GUIOuttextwin2 5,12,96,GUIVideoTextw2 - GUIOuttextwin2 5,12,106,GUIVideoTextw3 + GUIOuttextwin2 5,12,83,GUIVideoTextw1 + GUIOuttextwin2 5,12,90,GUIVideoTextw2 + GUIOuttextwin2 5,12,97,GUIVideoTextw3 %endif ;.nowin32pt2 @@ -1636,11 +1636,17 @@ DisplayGUIVideo: mov al,[cvidmode] cmp byte[GUIHSVID+eax],0 je near .notexta - GUIOuttextwin2 5,13,118,GUIVideoTextb - GUIOuttextwin2 5,36,128,GUIVideoTexta - GUIOuttextwin2 5,76,128,GUIVideoTexta2 - GUIOuttextwin2 5,116,128,GUIVideoTexta3 + GUIOuttextwin2 5,13,111,GUIVideoTextb + GUIOuttextwin2 5,36,119,GUIVideoTexta + GUIOuttextwin2 5,76,119,GUIVideoTexta2 + GUIOuttextwin2 5,116,119,GUIVideoTexta3 .notexta + xor eax,eax + mov al,[cvidmode] + cmp byte[GUITBWVID+eax],0 + je near .nottbw + GUIOuttextwin2 5,26,128,GUIVideoText7 +.nottbw xor eax,eax mov al,[cvidmode] cmp byte[GUI2xVID+eax],0 @@ -1710,9 +1716,9 @@ DisplayGUIVideo: ; jne near .nowin32pt %ifndef __MSDOS__ GUIOuttextwin2 5,11,75,GUIVideoTextw0 - GUIOuttextwin2 5,11,85,GUIVideoTextw1 - GUIOuttextwin2 5,11,95,GUIVideoTextw2 - GUIOuttextwin2 5,11,105,GUIVideoTextw3 + GUIOuttextwin2 5,11,82,GUIVideoTextw1 + GUIOuttextwin2 5,11,89,GUIVideoTextw2 + GUIOuttextwin2 5,11,96,GUIVideoTextw3 %endif ;.nowin32pt xor eax,eax @@ -1724,11 +1730,17 @@ DisplayGUIVideo: mov al,[cvidmode] cmp byte[GUIHSVID+eax],0 je near .notextab - GUIOuttextwin2 5,12,117,GUIVideoTextb - GUIOuttextwin2 5,35,127,GUIVideoTexta - GUIOuttextwin2 5,75,127,GUIVideoTexta2 - GUIOuttextwin2 5,115,127,GUIVideoTexta3 + GUIOuttextwin2 5,12,110,GUIVideoTextb + GUIOuttextwin2 5,35,118,GUIVideoTexta + GUIOuttextwin2 5,75,118,GUIVideoTexta2 + GUIOuttextwin2 5,115,118,GUIVideoTexta3 .notextab + xor eax,eax + mov al,[cvidmode] + cmp byte[GUITBWVID+eax],0 + je near .nottbwb + GUIOuttextwin2 5,25,127,GUIVideoText7 +.nottbwb xor eax,eax mov al,[cvidmode] cmp byte[GUI2xVID+eax],0 @@ -1812,22 +1824,34 @@ DisplayGUIVideo: jne .nocheckbox mov dword[GUITemp],GUIIconDataCheckBoxC .nocheckbox - GUIDisplayIconWin 5,21,123,[GUITemp] + GUIDisplayIconWin 5,21,114,[GUITemp] .nocheckboxb mov dword[GUITemp],GUIIconDataCheckBoxUC cmp byte[scanlines],3 jne .nocheckboxv mov dword[GUITemp],GUIIconDataCheckBoxC .nocheckboxv - GUIDisplayIconWin 5,61,123,[GUITemp] + GUIDisplayIconWin 5,61,114,[GUITemp] mov dword[GUITemp],GUIIconDataCheckBoxUC cmp byte[scanlines],2 jne .nocheckboxv2 mov dword[GUITemp],GUIIconDataCheckBoxC .nocheckboxv2 - GUIDisplayIconWin 5,101,123,[GUITemp] + GUIDisplayIconWin 5,101,114,[GUITemp] .nocheckboxw + xor eax,eax + mov al,[cvidmode] + cmp byte[GUITBWVID+eax],0 + je near .nocheckboxslw2 + mov dword[GUITemp],GUIIconDataCheckBoxUC + cmp byte[TripleBufferWin],1 + jne .nocheckboxslw + mov dword[GUITemp],GUIIconDataCheckBoxC +.nocheckboxslw + GUIDisplayIconWin 5,11,123,[GUITemp] +.nocheckboxslw2 + xor eax,eax mov al,[cvidmode] cmp byte[GUI2xVID+eax],0