diff --git a/zsnes/src/cpu/dspproc.asm b/zsnes/src/cpu/dspproc.asm index afad7d1b..3295bc90 100644 --- a/zsnes/src/cpu/dspproc.asm +++ b/zsnes/src/cpu/dspproc.asm @@ -129,7 +129,7 @@ EXTSYM InterSound EXTSYM NoiseData,SoundCompD,Voice0Disable,csounddisable,dssel,spcRamcmp EXTSYM cfgecho,Surround,SoundBufEn EXTSYM echobuf,ENVDisable -EXTSYM LowPassFilter +EXTSYM LowPassFilterType EXTSYM UseCubicSpline,NoiseDisTemp NEWSYM DspProcAsmStart @@ -5334,7 +5334,7 @@ NEWSYM ProcessVoice816 loop .revstloop .norevstereo - cmp byte[LowPassFilter],0 + cmp byte[LowPassFilterType],0 je near LPFexit mov esi,DSPBuffer cmp byte[StereoSound],1 diff --git a/zsnes/src/gui/gui.asm b/zsnes/src/gui/gui.asm index 3ed9618c..e314563b 100644 --- a/zsnes/src/gui/gui.asm +++ b/zsnes/src/gui/gui.asm @@ -483,7 +483,7 @@ NEWSYM pl4URk, dd 0 NEWSYM pl4DLk, dd 0 NEWSYM pl4DRk, dd 0 -NEWSYM LowPassFilter, db 0 +NEWSYM LowPassFilterType, db 0 NEWSYM DontSavePath, db 0 NEWSYM ReCalib, db 1 NEWSYM GUIComboGameSpec, db 0 @@ -616,9 +616,9 @@ ModemPTimer dd 0 ; Timer for modem process ModemOKStat db 0 ; OK is detected on modem status ; LOAD STAT INPT OPT VID SND CHT NET GMKEY GUIOP ABT RSET SRC STCN MOVE CMBO ADDO -GUIwinposxo dd 0,5 ,60 ,30 ,55 ,50 ,65 ,5 ,30 ,20 ,10 ,80 ,65 ,20 ,70 ,50 ,3 ,50 +GUIwinposxo dd 0,5 ,60 ,30 ,55 ,50 ,35 ,5 ,30 ,20 ,10 ,80 ,65 ,20 ,70 ,50 ,3 ,50 GUIwinposyo dd 0,20 ,70 ,30 ,20 ,20 ,20 ,20 ,30 ,20 ,20 ,50 ,60 ,30 ,65 ,50 ,22 ,60 -GUIwinsizex dd 0,244 ,126 ,189 ,167 ,170 ,148 ,244 ,8*16,224 ,240 ,7*16,9*16,8*16,9*16,140 ,250 ,160 +GUIwinsizex dd 0,244 ,126 ,189 ,167 ,170 ,188 ,244 ,8*16,224 ,240 ,7*16,9*16,8*16,9*16,140 ,250 ,160 GUIwinsizey dd 0,190 ,3*16,166 ,190 ,192 ,184 ,191 ,40 ,189 ,192 ,98 ,42 ,40 ,42 ,70 ,190 ,60 GUIwinptr db 0 diff --git a/zsnes/src/gui/guikeys.inc b/zsnes/src/gui/guikeys.inc index b4746259..41d59d9a 100644 --- a/zsnes/src/gui/guikeys.inc +++ b/zsnes/src/gui/guikeys.inc @@ -1258,6 +1258,18 @@ GUISoundKeys: jne .no8ptinterp GUIkeystoggleoptn byte[SoundInterpType],3 .no8ptinterp + cmp dh,'I' + jne .nosimplefilter + GUIkeystoggleoptn byte[LowPassFilterType],1 +.nosimplefilter + cmp dh,'Y' + jne .nodynamicfilter + GUIkeystoggleoptn byte[LowPassFilterType],2 +.nodynamicfilter + cmp dh,'H' + jne .nohiqualityfilter + GUIkeystoggleoptn byte[LowPassFilterType],3 +.nohiqualityfilter ret .sampratenext db 1,4,5,6,2,3,0,0,0,0 diff --git a/zsnes/src/gui/guimouse.inc b/zsnes/src/gui/guimouse.inc index 82b9de3b..2c348637 100644 --- a/zsnes/src/gui/guimouse.inc +++ b/zsnes/src/gui/guimouse.inc @@ -2335,6 +2335,9 @@ DisplayGUISoundClick: GUIClickCButton6 11,161,byte[SoundInterpType],1 GUIClickCButton6 11,171,byte[SoundInterpType],2 GUIClickCButton6 11,181,byte[SoundInterpType],3 + GUIClickCButton6 111,161,byte[LowPassFilterType],1 + GUIClickCButton6 111,171,byte[LowPassFilterType],2 + GUIClickCButton6 111,181,byte[LowPassFilterType],3 cmp eax,15 jl near .nosrate cmp edx,61 diff --git a/zsnes/src/gui/guiwindp.inc b/zsnes/src/gui/guiwindp.inc index dd77f0b9..57dbb1ef 100644 --- a/zsnes/src/gui/guiwindp.inc +++ b/zsnes/src/gui/guiwindp.inc @@ -2183,6 +2183,9 @@ DisplayGUISound: GUIOuttextwin2u 6,26,166,GUISoundTextQ,0 GUIOuttextwin2u 6,26,176,GUISoundTextR,0 GUIOuttextwin2u 6,26,186,GUISoundTextS,0 + GUIOuttextwin2u 6,126,166,GUISoundTextU,1 + GUIOuttextwin2u 6,126,176,GUISoundTextV,1 + GUIOuttextwin2u 6,126,186,GUISoundTextW,0 add byte[GUItextcolor],15 GUIOuttextwin2 6,25,25,GUISoundText1 GUIOuttextwin2 6,25,34,GUISoundText3 @@ -2208,12 +2211,16 @@ DisplayGUISound: GUIOuttextwin2 6,25,165,GUISoundTextQ GUIOuttextwin2 6,25,175,GUISoundTextR GUIOuttextwin2 6,25,185,GUISoundTextS + GUIOuttextwin2 6,125,165,GUISoundTextU + GUIOuttextwin2 6,125,175,GUISoundTextV + GUIOuttextwin2 6,125,185,GUISoundTextW mov al,[GUIWincol] mov byte[GUItextcolor],al GUIOuttextwin2 6,6,16,GUISoundText6 GUIOuttextwin2u 6,6,53,GUISoundText2,9 GUIOuttextwin2 6,6,76,GUISoundText5 GUIOuttextwin2 6,6,156,GUISoundTextP + GUIOuttextwin2 6,106,156,GUISoundTextT mov byte[GUItextcolor],163 cmp byte[GUIWincoladd],0 je .zero3 @@ -2223,6 +2230,7 @@ DisplayGUISound: GUIOuttextwin2 6,5,52,GUISoundText2 GUIOuttextwin2 6,5,75,GUISoundText5 GUIOuttextwin2 6,5,155,GUISoundTextP + GUIOuttextwin2 6,105,155,GUISoundTextT mov dword[GUITemp],GUIIconDataCheckBoxUC cmp byte[cfgsoundon],0 je .nocheckbox @@ -2306,6 +2314,24 @@ DisplayGUISound: mov dword[GUITemp],GUIIconDataCheckBoxC .nocheckbox9 GUIDisplayIconWin 6,11,181,[GUITemp] + mov dword[GUITemp],GUIIconDataCheckBoxUC + cmp byte[LowPassFilterType],1 + jne .nocheckbox10 + mov dword[GUITemp],GUIIconDataCheckBoxC +.nocheckbox10 + GUIDisplayIconWin 6,111,161,[GUITemp] + mov dword[GUITemp],GUIIconDataCheckBoxUC + cmp byte[LowPassFilterType],2 + jne .nocheckbox11 + mov dword[GUITemp],GUIIconDataCheckBoxC +.nocheckbox11 + GUIDisplayIconWin 6,111,171,[GUITemp] + mov dword[GUITemp],GUIIconDataCheckBoxUC + cmp byte[LowPassFilterType],3 + jne .nocheckbox12 + mov dword[GUITemp],GUIIconDataCheckBoxC +.nocheckbox12 + GUIDisplayIconWin 6,111,181,[GUITemp] DrawGUIWinBox 6,15,61,69,69,167 mov dword[GUITemp],GUISoundText7 xor eax,eax @@ -2398,6 +2424,10 @@ GUISoundTextP db 'INTERPOLATION :',0 GUISoundTextQ db 'GAUSSEN',0 GUISoundTextR db 'CUBIC SPLINE',0 GUISoundTextS db '8-POINT',0 +GUISoundTextT db 'LOWPASS :',0 +GUISoundTextU db 'SIMPLE',0 +GUISoundTextV db 'DYNAMIC',0 +GUISoundTextW db 'HI QUALITY',0