diff --git a/zsnes/src/dos/dosintrf.asm b/zsnes/src/dos/dosintrf.asm index 27e6903c..3595ab66 100644 --- a/zsnes/src/dos/dosintrf.asm +++ b/zsnes/src/dos/dosintrf.asm @@ -1073,6 +1073,7 @@ NEWSYM GUI2xVID, db 0,0,0,0,0,1,0,0,0,0,0,0 ; 2xSaI/Super Eagle Engines NEWSYM GUIWFVID, db 0,0,0,0,0,0,0,0,0,0,0,0 ; If Windows Full Screen NEWSYM GUII2VID, db 0,0,0,0,0,0,0,0,0,0,0,0 ; Interpolation NEWSYM GUIM7VID, db 0,0,0,0,0,1,0,0,0,0,0,0 ; Interpolation +NEWSYM GUIBIFIL, db 0,0,0,0,0,0,0,0,0,0,0,0 ; Bilinear Filtering SECTION .text ; **************************** diff --git a/zsnes/src/gui/gui.asm b/zsnes/src/gui/gui.asm index aedee6c5..ec42688b 100644 --- a/zsnes/src/gui/gui.asm +++ b/zsnes/src/gui/gui.asm @@ -174,7 +174,7 @@ EXTSYM ModemSendChar EXTSYM numlockptr %endif %ifdef __WIN32__ -EXTSYM CheckPriority +EXTSYM CheckPriority,GUIBIFIL EXTSYM CheckAlwaysOnTop %endif %ifdef __LINUX__ @@ -583,6 +583,7 @@ NEWSYM MouseWheel, db 1 NEWSYM AlternateTimer, db 0 NEWSYM AllowMultipleInst, db 0 NEWSYM FilteredGUI, db 0 +NEWSYM BilinearFilter, db 0 GUIsave equ $-GUIRAdd diff --git a/zsnes/src/gui/guimouse.inc b/zsnes/src/gui/guimouse.inc index 6a7e999e..5bf09be2 100644 --- a/zsnes/src/gui/guimouse.inc +++ b/zsnes/src/gui/guimouse.inc @@ -2194,6 +2194,12 @@ DisplayGUIVideoClick: je .nocheckbox1b GUIClickCButton3 11,78,byte[antienab],byte[cfginterp],1 .nocheckbox1b + xor ebx,ebx + mov bl,[cvidmode] + cmp byte[GUIBIFIL+ebx],0 + je .nocheckbox1bf + GUIClickCButton 11,78,byte[BilinearFilter] +.nocheckbox1bf xor ebx,ebx mov bl,[cvidmode] cmp byte[GUIFSVID+ebx],0 diff --git a/zsnes/src/gui/guiwindp.inc b/zsnes/src/gui/guiwindp.inc index 96013a80..ea19d336 100644 --- a/zsnes/src/gui/guiwindp.inc +++ b/zsnes/src/gui/guiwindp.inc @@ -1655,6 +1655,12 @@ DisplayGUIVideo: je near .notextb2 GUIOuttextwin2 5,26,168,GUIVideoText3 .notextb2 + xor eax,eax + mov al,[cvidmode] + cmp byte[GUIBIFIL+eax],0 + je near .notextbf2 + GUIOuttextwin2 5,26,168,GUIVideoTextbf +.notextbf2 xor eax,eax mov al,[cvidmode] cmp byte[GUIINVID+eax],0 @@ -1737,6 +1743,12 @@ DisplayGUIVideo: je near .notextb2b GUIOuttextwin2 5,25,167,GUIVideoText3 .notextb2b + xor eax,eax + mov al,[cvidmode] + cmp byte[GUIBIFIL+eax],0 + je near .notextb2bf + GUIOuttextwin2 5,25,167,GUIVideoText3 +.notextb2bf xor eax,eax mov al,[cvidmode] cmp byte[GUIINVID+eax],0 @@ -1852,6 +1864,18 @@ DisplayGUIVideo: GUIDisplayIconWin 5,11,163,[GUITemp] .nocheckboxi2 + xor eax,eax + mov al,[cvidmode] + cmp byte[GUIBIFIL+eax],0 + je near .nocheckboxbf + mov dword[GUITemp],GUIIconDataCheckBoxUC + cmp byte[BilinearFilter],0 + je .nocheckbox1bf + mov dword[GUITemp],GUIIconDataCheckBoxC +.nocheckbox1bf + GUIDisplayIconWin 5,11,163,[GUITemp] +.nocheckboxbf + xor eax,eax mov al,[cvidmode] cmp byte[GUITBVID+eax],0 @@ -2038,6 +2062,7 @@ GUIVideoTexta3 db '25%',0 GUIVideoTextc db '2XSAI ENGINE',0 GUIVideoTextd db 'SUPER EAGLE ENGINE',0 GUIVideoTextd2 db 'SUPER 2XSAI ENGINE',0 +GUIVideoTextbf db 'BILINEAR FILTER',0 GUIVideoText3 db 'INTERPOLATION',0 ; -y GUIVideoText4 db 'EAGLE ENGINE',0 ; -y GUIVideoText5 db 'FULL SCREEN',0 ; -c diff --git a/zsnes/src/linux/sdlintrf.asm b/zsnes/src/linux/sdlintrf.asm index 36e271da..bad49651 100644 --- a/zsnes/src/linux/sdlintrf.asm +++ b/zsnes/src/linux/sdlintrf.asm @@ -1001,6 +1001,7 @@ NEWSYM GUIM7VID, db 0,0,1,1 ; ?Mode 7 video thing? NEWSYM GUIWFVID, db 0,1,0,1 ; If Windows Full Screen NEWSYM GUIDSIZE, db 0,0,1,1 NEWSYM GUIRATIO, db 0,1,0,0 +NEWSYM GUIBIFIL, db 0,0,0,0 ; If Video mode supports Bilinear Filtering SECTION .text diff --git a/zsnes/src/win/winintrf.asm b/zsnes/src/win/winintrf.asm index 0c32d0d0..f2db94cd 100644 --- a/zsnes/src/win/winintrf.asm +++ b/zsnes/src/win/winintrf.asm @@ -1297,6 +1297,7 @@ NEWSYM GUIM7VID, db 0,0,0,0,0,1,0,1,1,0,0,1,0,1,0,1,0,1,0,1,0,1 ; ?Mode 7 NEWSYM GUIWFVID, db 0,0,0,1,0,0,0,1,1,1,0,0,1,1,0,0,1,1,0,0,0,0 ; If Windows Full Screen NEWSYM GUIDSIZE, db 0,0,0,0,0,1,0,1,1,0,0,1,0,1,0,1,0,1,0,1,0,1 NEWSYM GUIRATIO, db 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +NEWSYM GUIBIFIL, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 SECTION .text