NTSC sliders enlarged to negatives, added a couple other things in that tab too, made slider macro more powerful, some cosmetic changes, fixed issue when switching to modes without ntsc filter. And some cleanup too. Don't you think my commit messages are getting quite lengthy lately ? Yea, I thought so too. -_-

This commit is contained in:
grinvader
2006-03-30 03:03:35 +00:00
parent 78e304186d
commit 72ac93cfc7
7 changed files with 250 additions and 216 deletions

View File

@@ -361,3 +361,4 @@ NEWSYM NTSCCont, db 0
NEWSYM NTSCBright, db 0 NEWSYM NTSCBright, db 0
NEWSYM NTSCSharp, db 0 NEWSYM NTSCSharp, db 0
NEWSYM NTSCWarp, db 0 NEWSYM NTSCWarp, db 0
NEWSYM NTSCRef, db 0

View File

@@ -105,10 +105,10 @@ EXTSYM MovieRecord,MovieInsertChapter,MovieSeekAhead,MovieSeekBehind
EXTSYM ResetDuringMovie,MovieDumpRaw,AutoLoadCht EXTSYM ResetDuringMovie,MovieDumpRaw,AutoLoadCht
EXTSYM GUIwinposx,GUIwinposy,maxskip,GUIEffect,hqFilter,En2xSaI,NTSCFilter EXTSYM GUIwinposx,GUIwinposy,maxskip,GUIEffect,hqFilter,En2xSaI,NTSCFilter
EXTSYM NTSCBlend,NTSCHue,NTSCSat,NTSCCont,NTSCBright,NTSCSharp,NTSCWarp EXTSYM NTSCBlend,NTSCHue,NTSCSat,NTSCCont,NTSCBright,NTSCSharp,NTSCWarp,NTSCRef
EXTSYM LowPassFilterType,MovieStartMethod,MovieDisplayFrame,resetposn EXTSYM LowPassFilterType,MovieStartMethod,MovieDisplayFrame,resetposn
EXTSYM SnapPath,SPCPath,BSXPath,SGPath,STPath,GNextPath,FEOEZPath,SJNSPath EXTSYM SnapPath,SPCPath,BSXPath,SGPath,STPath,GNextPath,FEOEZPath,SJNSPath
EXTSYM MDHPath,SPL4Path,CheatSrcByteSize,prevloadfnamel EXTSYM MDHPath,SPL4Path,CheatSrcByteSize,prevloadfnamel,NTSCFilterInit
EXTSYM prevloadnames,prevloaddnamel,prevlfreeze,FirstTimeData,MMXSupport EXTSYM prevloadnames,prevloaddnamel,prevlfreeze,FirstTimeData,MMXSupport
EXTSYM GUIRAdd,GUIGAdd,GUIBAdd,GUITRAdd,GUITGAdd,GUITBAdd,GUIWRAdd EXTSYM GUIRAdd,GUIGAdd,GUIBAdd,GUITRAdd,GUITGAdd,GUITBAdd,GUIWRAdd
EXTSYM GUIWGAdd,GUIWBAdd,GUIloadfntype,SoundInterpType,PrimaryBuffer EXTSYM GUIWGAdd,GUIWBAdd,GUIloadfntype,SoundInterpType,PrimaryBuffer
@@ -306,9 +306,9 @@ ViewBuffer resb 50*32
SECTION .data SECTION .data
; Window sizes and positions ; Window sizes and positions
; LOAD STAT INPT OPT VID SND CHT NET GMKEY GUIOP ABT RSET SRC STCN MOVE CMBO ADDO CHIP PATH SAVE SPED ; LOAD STAT INPT OPT VID SND CHT NET GMKEY GUIOP ABT RSET SRC STCN MOVE CMBO ADDO CHIP PATH SAVE SPED
GUIwinposxo dd 0,6 ,65 ,33 ,42 ,38 ,34 ,6 ,64 ,8 ,8 ,33 ,56 ,64 ,56 ,5 ,3 ,28 ,48 ,6 ,28 ,53 GUIwinposxo dd 0,6 ,65 ,33 ,42 ,2 ,34 ,6 ,64 ,8 ,8 ,33 ,56 ,64 ,56 ,5 ,3 ,28 ,48 ,6 ,28 ,53
GUIwinposyo dd 0,20 ,70 ,30 ,20 ,20 ,20 ,20 ,30 ,30 ,20 ,20 ,60 ,30 ,65 ,20 ,19 ,60 ,60 ,20 ,30 ,25 GUIwinposyo dd 0,20 ,70 ,30 ,20 ,20 ,20 ,20 ,30 ,30 ,20 ,20 ,60 ,30 ,65 ,20 ,19 ,60 ,60 ,20 ,30 ,25
GUIwinsizex dd 0,244 ,126 ,189 ,172 ,180 ,188 ,244 ,8*16,240 ,240 ,190 ,9*16,8*16,9*16,246 ,250 ,200 ,160 ,244 ,200 ,150 GUIwinsizex dd 0,244 ,126 ,189 ,172 ,250 ,188 ,244 ,8*16,240 ,240 ,190 ,9*16,8*16,9*16,246 ,250 ,200 ,160 ,244 ,200 ,150
GUIwinsizey dd 0,190 ,3*16,166 ,190 ,192 ,188 ,191 ,40 ,170 ,150 ,190 ,42 ,40 ,42 ,190 ,190 ,100 ,100 ,190 ,160 ,180 GUIwinsizey dd 0,190 ,3*16,166 ,190 ,192 ,188 ,191 ,40 ,170 ,150 ,190 ,42 ,40 ,42 ,190 ,190 ,100 ,100 ,190 ,160 ,180
GUIwinptr db 0 GUIwinptr db 0

View File

@@ -953,14 +953,18 @@ ret
GUIVideoKeys: GUIVideoKeys:
cmp dh,9 cmp dh,9
jne near .notab jne near .tabdone
cmp byte[NTSCFilter],0 cmp byte[NTSCFilter],0
jne .ntsc je near .nontsc
KeyTabInc GUIVideoTabs xor eax,eax
jmp .notab mov al,[cvidmode]
.ntsc cmp byte[GUINTVID+eax],0
je .nontsc
KeyTabInc GUIVideoTabs,GUIVntscTab KeyTabInc GUIVideoTabs,GUIVntscTab
.notab jmp .tabdone
.nontsc
KeyTabInc GUIVideoTabs
.tabdone
cmp dh,'a' cmp dh,'a'
jb .nocap jb .nocap
cmp dh,'z' cmp dh,'z'
@@ -1367,6 +1371,10 @@ GUIVideoKeys:
jne .noblend jne .noblend
xor byte[NTSCBlend],1 xor byte[NTSCBlend],1
.noblend .noblend
cmp dh,'R'
jne .norefresh
xor byte[NTSCRef],1
.norefresh
.notntsctab .notntsctab
ret ret

View File

@@ -37,6 +37,18 @@ ProcessMouse:
je near .noholdnecessary je near .noholdnecessary
cmp byte[GUIHold],0 cmp byte[GUIHold],0
jne .noholda jne .noholda
cmp byte[LastHoldEnable],7 ; ntsc sliders
jne .norelease1
xor edx,edx
mov dl,[ntscWhVar]
mov cl,[ntscCurVar]
cmp cl,[ntscLastVar+edx]
je .norelease1
pushad
call NTSCFilterInit
popad
mov [ntscLastVar+edx],cl
.norelease1
mov ecx,0 mov ecx,0
mov edx,255 mov edx,255
call Set_MouseXMax call Set_MouseXMax
@@ -584,7 +596,9 @@ ProcessMouseButtons:
je near GUIProcReset je near GUIProcReset
cmp byte[GUICBHold],3 cmp byte[GUICBHold],3
je near GUIProcReset je near GUIProcReset
cmp byte[GUICBHold],4 cmp byte[GUICBHold],4 ; set video mode
je near GUIProcVideo
cmp byte[GUICBHold],37 ; reset ntsc options
je near GUIProcVideo je near GUIProcVideo
cmp byte[GUICBHold],10 cmp byte[GUICBHold],10
je near GUIProcStates je near GUIProcStates
@@ -847,6 +861,22 @@ ProcessMouseButtons:
ret ret
GUIProcVideo: GUIProcVideo:
cmp byte[GUICBHold],37
mov byte[GUICBHold],0
jne .noreset
mov byte[NTSCBlend],0
mov byte[NTSCRef],0
mov byte[NTSCHue],0
mov byte[NTSCSat],0
mov byte[NTSCCont],0
mov byte[NTSCBright],0
mov byte[NTSCSharp],0
mov byte[NTSCWarp],0
pushad
call NTSCFilterInit
popad
ret
.noreset
%ifdef __MSDOS__ %ifdef __MSDOS__
mov al,[GUIcurrentvideocursloc] mov al,[GUIcurrentvideocursloc]
cmp al,3 cmp al,3
@@ -868,7 +898,6 @@ GUIProcVideo:
mov byte[newengen],1 mov byte[newengen],1
mov byte[cfgnewgfx],1 mov byte[cfgnewgfx],1
.skipno16b .skipno16b
mov byte[GUICBHold],0
call guiprevideo call guiprevideo
mov al,[cvidmode] mov al,[cvidmode]
mov [.prevvid],al mov [.prevvid],al
@@ -2583,18 +2612,23 @@ DisplayGUIVideoClick:
sub edx,[GUIwinposy+5*4] sub edx,[GUIwinposy+5*4]
GUIClickCButton 5,25,byte[NTSCBlend] ; Checkboxes GUIClickCButton 5,25,byte[NTSCBlend] ; Checkboxes
GUIClickCButton 135,25,byte[NTSCRef]
GUIPHoldbutton 5,166,42,177,37 ; button
;Sliders ;Sliders
cmp eax,15 ; X-Range for click-area cmp eax,8 ; X-Range for click-area
jl near .nomovebar jl near .nomovebar
cmp eax,15+100 cmp eax,8+200
jg near .nomovebar jg near .nomovebar
sub al,108
cmp edx,54 ; Y-Range for click-area cmp edx,54 ; Y-Range for click-area
jl near .nomovebar jl near .nomovebar
cmp edx,58 cmp edx,58
jg .nohuebar jg .nohuebar
sub eax,15
mov [NTSCHue],al mov [NTSCHue],al
mov [ntscCurVar],al
mov byte[ntscWhVar],0
mov byte[GUIHold],7 ; Lock mouse to bar when clicked mov byte[GUIHold],7 ; Lock mouse to bar when clicked
mov eax,[GUIwinposy+5*4] mov eax,[GUIwinposy+5*4]
add eax,56 add eax,56
@@ -2605,8 +2639,9 @@ DisplayGUIVideoClick:
jl near .nomovebar jl near .nomovebar
cmp edx,78 cmp edx,78
jg .nosatbar jg .nosatbar
sub eax,15
mov [NTSCSat],al mov [NTSCSat],al
mov [ntscCurVar],al
mov byte[ntscWhVar],1
mov byte[GUIHold],7 mov byte[GUIHold],7
mov eax,[GUIwinposy+5*4] mov eax,[GUIwinposy+5*4]
add eax,76 add eax,76
@@ -2617,8 +2652,9 @@ DisplayGUIVideoClick:
jl near .nomovebar jl near .nomovebar
cmp edx,98 cmp edx,98
jg .nocontbar jg .nocontbar
sub eax,15
mov [NTSCCont],al mov [NTSCCont],al
mov [ntscCurVar],al
mov byte[ntscWhVar],2
mov byte[GUIHold],7 mov byte[GUIHold],7
mov eax,[GUIwinposy+5*4] mov eax,[GUIwinposy+5*4]
add eax,96 add eax,96
@@ -2629,8 +2665,9 @@ DisplayGUIVideoClick:
jl near .nomovebar jl near .nomovebar
cmp edx,118 cmp edx,118
jg .nobrightbar jg .nobrightbar
sub eax,15
mov [NTSCBright],al mov [NTSCBright],al
mov [ntscCurVar],al
mov byte[ntscWhVar],3
mov byte[GUIHold],7 mov byte[GUIHold],7
mov eax,[GUIwinposy+5*4] mov eax,[GUIwinposy+5*4]
add eax,116 add eax,116
@@ -2638,11 +2675,12 @@ DisplayGUIVideoClick:
jmp .nowarpbar jmp .nowarpbar
.nobrightbar .nobrightbar
cmp edx,134 cmp edx,134
jl .nomovebar jl near .nomovebar
cmp edx,138 cmp edx,138
jg .nosharpbar jg .nosharpbar
sub eax,15
mov [NTSCSharp],al mov [NTSCSharp],al
mov [ntscCurVar],al
mov byte[ntscWhVar],4
mov byte[GUIHold],7 mov byte[GUIHold],7
mov eax,[GUIwinposy+5*4] mov eax,[GUIwinposy+5*4]
add eax,136 add eax,136
@@ -2653,30 +2691,35 @@ DisplayGUIVideoClick:
jl .nomovebar jl .nomovebar
cmp edx,158 cmp edx,158
jg .nomovebar jg .nomovebar
sub eax,15
mov [NTSCWarp],al mov [NTSCWarp],al
mov [ntscCurVar],al
mov byte[ntscWhVar],5
mov byte[GUIHold],7 mov byte[GUIHold],7
mov eax,[GUIwinposy+5*4] mov eax,[GUIwinposy+5*4]
add eax,156 add eax,156
mov [GUIHoldYlim],eax mov [GUIHoldYlim],eax
.nowarpbar .nowarpbar
mov eax,[GUIwinposx+5*4] mov eax,[GUIwinposx+5*4]
add eax,15 add eax,8
mov [GUIHoldXlimL],eax mov [GUIHoldXlimL],eax
add eax,100 add eax,200
mov [GUIHoldXlimR],eax mov [GUIHoldXlimR],eax
.nomovebar .nomovebar
.notntsctab cmp byte[NTSCRef],0
EXTSYM NTSCFilterInit je .notntsctab
xor al,al
pushad pushad
call NTSCFilterInit call NTSCFilterInit
popad popad
.notntsctab
xor eax,eax
ret ret
SECTION .bss SECTION .bss
GUINumValue resd 1 GUINumValue resd 1
GUIBlankVar resd 1 GUIBlankVar resd 1
ntscLastVar resb 6
ntscCurVar resb 1
ntscWhVar resb 1
SECTION .text SECTION .text
DisplayGUISoundClick: DisplayGUISoundClick:
@@ -3066,7 +3109,7 @@ DisplayGUIOptnsClick:
cmp eax,25 cmp eax,25
jl near .nomovebar jl near .nomovebar
cmp eax,25+128 cmp eax,25+127
jg near .nomovebar jg near .nomovebar
sub eax,25 sub eax,25
shr eax,2 shr eax,2
@@ -3158,7 +3201,7 @@ DisplayGUIOptnsClick:
add eax,25 add eax,25
mov [GUIHoldXlimL],eax mov [GUIHoldXlimL],eax
mov eax,[GUIwinposx+10*4] mov eax,[GUIwinposx+10*4]
add eax,25+128 add eax,25+127
mov [GUIHoldXlimR],eax mov [GUIHoldXlimR],eax
.nohold .nohold
ret ret
@@ -3489,11 +3532,11 @@ DisplayGUISpeedClick:
GUIPHoldbutton2 129,13,137,21,13,byte[maxskip],-1,0 GUIPHoldbutton2 129,13,137,21,13,byte[maxskip],-1,0
; Speed Slider ; Speed Slider
cmp eax,15 ; X-Range for click-area cmp eax,7 ; X-Range for click-area
jl near .nomovebar jl near .nomovebar
cmp eax,15+116 cmp eax,7+116
jg near .nomovebar jg near .nomovebar
sub eax,15 sub eax,7
shr eax,1 shr eax,1
cmp edx,173 ; Y-Range for click-area cmp edx,173 ; Y-Range for click-area
jl near .nomovebar jl near .nomovebar
@@ -3505,7 +3548,7 @@ DisplayGUISpeedClick:
add eax,175 add eax,175
mov [GUIHoldYlim],eax mov [GUIHoldYlim],eax
mov eax,[GUIwinposx+21*4] mov eax,[GUIwinposx+21*4]
add eax,15 add eax,7
mov [GUIHoldXlimL],eax mov [GUIHoldXlimL],eax
add eax,116 add eax,116
mov [GUIHoldXlimR],eax mov [GUIHoldXlimR],eax

View File

@@ -659,17 +659,17 @@ GUIOuttextwin2 %1,%2-1,%3-1,%4
push ecx ; save X offset for next drawing step push ecx ; save X offset for next drawing step
dec eax dec eax
mov ecx,eax mov ecx,eax
mov esi,12 mov esi,11
inc dl inc dl
%%draw2 %%draw2
DrawGUILine DrawGUILine
dec esi dec esi
jnz %%draw2 jnz %%draw2
sub ebx,13 sub ebx,11
push ebx ; save Y offset for next drawing step push ebx ; save Y offset for next drawing step
mov cl,[GUIWincol] mov cl,[GUIWincol]
mov [GUItextcolor],cl mov [GUItextcolor],cl
add ebx,5 add ebx,4
push ebx ; save label Yoff push ebx ; save label Yoff
mov edx,eax mov edx,eax
add edx,6 add edx,6
@@ -692,9 +692,19 @@ GUIOuttextwin2 %1,%2-1,%3-1,%4
add edi,ebp add edi,ebp
call GUIOutputStringwin call GUIOutputStringwin
mov byte[GUItextcolor],217 ; restore normal colour mov byte[GUItextcolor],217 ; restore normal colour
pop ebx ; restore Yoff for next tab pop ebx ; restore Yoff for drawing step
pop eax pop eax
add eax,2 ; restore and set Xoff for next tab inc eax ; restore and set Xoff for drawing step
mov ecx,eax
mov dl,[GUIWincol]
add dl,3
mov esi,12
%%draw3
DrawGUILine
dec esi
jnz %%draw3
sub ebx,13
inc eax
%%read2 %%read2
mov esi,%1 mov esi,%1
cmp byte[esi+ebp],0 cmp byte[esi+ebp],0
@@ -806,7 +816,7 @@ GUIOuttextwin2 %1,%2-1,%3-1,%4
%%nodraw %%nodraw
%endmacro %endmacro
%macro GUIDrawSlider 6 ; win #id, minX, width, Ypos, variable, text %macro GUIDrawSlider 8 ; win #id, minX, width, Ypos, var, text, proc1, proc2
mov eax,[GUIwinposx+%1*4] mov eax,[GUIwinposx+%1*4]
mov ebx,[GUIwinposy+%1*4] mov ebx,[GUIwinposy+%1*4]
add eax,%2 add eax,%2
@@ -822,23 +832,12 @@ GUIOuttextwin2 %1,%2-1,%3-1,%4
sub dl,13 sub dl,13
DrawGUILine DrawGUILine
xor eax,eax xor eax,eax
mov al,[%5] %7 %5 ; proc1 == alters var correctly and puts result in al
mov dword[GUITemp],%2-4 mov dword[GUITemp],%2-4
add [GUITemp],eax add [GUITemp],eax
GUIDisplayIconWin %1,[GUITemp],%4-4,GUIIconDataSlideBar GUIDisplayIconWin %1,[GUITemp],%4-4,GUIIconDataSlideBar
mov word[%6],' ' %8 %5,%6 ; proc2 == alters text correctly and puts pointer in esi
mov esi,%6+3 mov [GUITemp],esi ; Display Value (Green)
mov al,[%5]
mov bl,10
%%asciilp ; turns decimal into ascii
dec esi
xor ah,ah
div bl
add ah,48
mov [esi],ah
cmp al,0
jne %%asciilp
mov dword[GUITemp],%6 ; Display Value (Green)
GUIDisplayTextG %1,%2+%3+6,%4-1,[GUITemp] GUIDisplayTextG %1,%2+%3+6,%4-1,[GUITemp]
%endmacro %endmacro
@@ -1645,6 +1644,35 @@ GUIOptionTextZ db '-',0
SECTION .text SECTION .text
%macro NTSCslidSet 1 ; slider variable
mov al,[%1]
add al,100
%endmacro
%macro NTSCslidText 2 ; slider var, text
mov dword[%2],' '
mov esi,%2+3
mov al,[%1]
mov bl,10
test al,128
jz %%asciilp
xor al,255
inc al
%%asciilp ; turns decimal into ascii
xor ah,ah
div bl
add ah,48
mov [esi],ah
dec esi
cmp al,0
jne %%asciilp
test byte[%1],128
jz %%pos
mov byte[esi],'-'
%%pos
mov esi,%2
%endmacro
DisplayGUIVideo: DisplayGUIVideo:
cmp byte[TripBufAvail],0 ; Check features cmp byte[TripBufAvail],0 ; Check features
jne .notexttb jne .notexttb
@@ -1675,6 +1703,16 @@ DisplayGUIVideo:
GUIDrawWindowBox 5,GUIVideoDisp ; Video Modes List/Options GUIDrawWindowBox 5,GUIVideoDisp ; Video Modes List/Options
xor eax,eax
mov al,[cvidmode]
cmp byte[GUINTVID+eax],0
jne .ntsc
mov byte[NTSCFilter],0
mov dword[GUIVntscTab],0
cmp byte[GUIVideoTabs],0
jne .ntsc
mov byte[GUIVideoTabs],1
.ntsc
GUIDrawTArea 5 GUIDrawTArea 5
GUIDrawTabs GUIVideoTabs GUIDrawTabs GUIVideoTabs
cmp byte[NTSCFilter],0 cmp byte[NTSCFilter],0
@@ -1905,7 +1943,10 @@ DisplayGUIVideo:
cmp dword[GUIVntscTab],1 cmp dword[GUIVntscTab],1
jne near .notntsctab jne near .notntsctab
DrawGUIButton 5,5,166,42,177,GUIVideoTextG8,37,0,0 ; Button
GUIDisplayCheckboxu 5,5,25,NTSCBlend,GUIVideoTextG1,0 GUIDisplayCheckboxu 5,5,25,NTSCBlend,GUIVideoTextG1,0
GUIDisplayCheckboxu 5,135,25,NTSCRef,GUIVideoTextG9,0
GUIDisplayTextY 5,7,46,GUIVideoTextG2 GUIDisplayTextY 5,7,46,GUIVideoTextG2
GUIDisplayTextY 5,7,66,GUIVideoTextG3 GUIDisplayTextY 5,7,66,GUIVideoTextG3
@@ -1914,12 +1955,12 @@ DisplayGUIVideo:
GUIDisplayTextY 5,7,126,GUIVideoTextG6 GUIDisplayTextY 5,7,126,GUIVideoTextG6
GUIDisplayTextY 5,7,146,GUIVideoTextG7 GUIDisplayTextY 5,7,146,GUIVideoTextG7
GUIDrawSlider 5,15,100,56,NTSCHue,GUIVideoTextG GUIDrawSlider 5,8,200,56,NTSCHue,GUIVideoTextG,NTSCslidSet,NTSCslidText
GUIDrawSlider 5,15,100,76,NTSCSat,GUIVideoTextG GUIDrawSlider 5,8,200,76,NTSCSat,GUIVideoTextG,NTSCslidSet,NTSCslidText
GUIDrawSlider 5,15,100,96,NTSCCont,GUIVideoTextG GUIDrawSlider 5,8,200,96,NTSCCont,GUIVideoTextG,NTSCslidSet,NTSCslidText
GUIDrawSlider 5,15,100,116,NTSCBright,GUIVideoTextG GUIDrawSlider 5,8,200,116,NTSCBright,GUIVideoTextG,NTSCslidSet,NTSCslidText
GUIDrawSlider 5,15,100,136,NTSCSharp,GUIVideoTextG GUIDrawSlider 5,8,200,136,NTSCSharp,GUIVideoTextG,NTSCslidSet,NTSCslidText
GUIDrawSlider 5,15,100,156,NTSCWarp,GUIVideoTextG GUIDrawSlider 5,8,200,156,NTSCWarp,GUIVideoTextG,NTSCslidSet,NTSCslidText
.notntsctab .notntsctab
ret ret
@@ -1963,7 +2004,7 @@ GUIVideoText8 db 'SET',0 ; set button
GUIVideoText9 db 'VSYNC',0 ; -c GUIVideoText9 db 'VSYNC',0 ; -c
GUIVideoTexte db 'NTSC',0 GUIVideoTexte db 'NTSC',0
GUIVideoTextG db '---%',0 GUIVideoTextG db '----%',0
GUIVideoTextG1 db 'BLEND FRAMES',0 GUIVideoTextG1 db 'BLEND FRAMES',0
GUIVideoTextG2 db 'HUE:',0 GUIVideoTextG2 db 'HUE:',0
GUIVideoTextG3 db 'SATURATION:',0 GUIVideoTextG3 db 'SATURATION:',0
@@ -1971,6 +2012,8 @@ GUIVideoTextG4 db 'CONTRAST:',0
GUIVideoTextG5 db 'BRIGHTNESS:',0 GUIVideoTextG5 db 'BRIGHTNESS:',0
GUIVideoTextG6 db 'SHARPNESS:',0 GUIVideoTextG6 db 'SHARPNESS:',0
GUIVideoTextG7 db 'HUE WARPING:',0 GUIVideoTextG7 db 'HUE WARPING:',0
GUIVideoTextG8 db 'RESET',0
GUIVideoTextG9 db 'REFRESH',0
SECTION .bss SECTION .bss
GUIVStA resd 3 GUIVStA resd 3
@@ -1979,6 +2022,26 @@ GUIcurrentvideocursloc resd 1
SECTION .text SECTION .text
%macro VolslidSet 1 ; slider variable
mov al,[%1]
%endmacro
%macro VolslidText 2 ; slider var, text
mov word[%2],' '
mov esi,%2+3
mov al,[%1]
mov bl,10
%%asciilp ; turns decimal into ascii
dec esi
xor ah,ah
div bl
add ah,48
mov [esi],ah
cmp al,0
jne %%asciilp
mov esi,%2
%endmacro
DisplayGUISound: ; Sound Related Options DisplayGUISound: ; Sound Related Options
GUIDrawWindowBox 6,GUISoundDisp GUIDrawWindowBox 6,GUISoundDisp
@@ -2029,7 +2092,7 @@ DisplayGUISound: ; Sound Related Options
add [GUITemp],eax add [GUITemp],eax
GUIDisplayTextG 6,23,64,[GUITemp] GUIDisplayTextG 6,23,64,[GUITemp]
GUIDrawSlider 6,15,100,91,MusicRelVol,GUISoundTextC1 GUIDrawSlider 6,15,100,91,MusicRelVol,GUISoundTextC1,VolslidSet,VolslidText
ret ret
SECTION .data SECTION .data
@@ -3065,13 +3128,35 @@ GUIGameOptnsTextD2e db '- GAMMA',0
SECTION .text SECTION .text
%macro GUICslidSet 1 ; slider var
mov al,[%1]
shl eax,2
add eax,2
%endmacro
%macro GUICslidText 2 ; slider var, text
mov byte[%2],' '
mov esi,%2+2
mov al,[%1]
mov bl,10
%%asciilp ; turns decimal into ascii
dec esi
xor ah,ah
div bl
add ah,48
mov [esi],ah
cmp al,0
jne %%asciilp
mov esi,%2
%endmacro
DisplayGUIOptns: ; GUI Options DisplayGUIOptns: ; GUI Options
%ifdef __WIN32__ ; If Windows, extend window down %ifdef __WIN32__ ; If Windows, extend window down
mov dword[GUIwinsizey+10*4],192 mov dword[GUIwinsizey+10*4],192
%endif %endif
GUIDrawWindowBox 10,GUIGUIDisp GUIDrawWindowBox 10,GUIGUIDisp
push eax ; Setup Colors ; Setup Colors
cmp byte[CurPalSelect],1 cmp byte[CurPalSelect],1
je .yespal2b je .yespal2b
cmp byte[CurPalSelect],2 cmp byte[CurPalSelect],2
@@ -3099,50 +3184,10 @@ DisplayGUIOptns: ; GUI Options
mov al,[GUIWBAdd] mov al,[GUIWBAdd]
mov [TBVal2],al mov [TBVal2],al
.nopal1b .nopal1b
pop eax
mov eax,[GUIwinposx+10*4] ; Slider Bars GUIDrawSlider 10,25,127,124,TRVal2,GUIGUIOptnsTextD2,GUICslidSet,GUICslidText
mov ebx,[GUIwinposy+10*4] GUIDrawSlider 10,25,127,136,TGVal2,GUIGUIOptnsTextD2,GUICslidSet,GUICslidText
mov ecx,eax GUIDrawSlider 10,25,127,148,TBVal2,GUIGUIOptnsTextD2,GUICslidSet,GUICslidText
add eax,25
add ecx,25+32*4
add ebx,124
xor edx,edx
mov dl,215
sub dl,[GUIWincoladd]
DrawGUILine
add ebx,11
DrawGUILine
add ebx,11
DrawGUILine
inc ecx
mov ebx,[GUIwinposy+10*4]
inc eax
add ebx,125
sub dl,13
DrawGUILine
add ebx,11
DrawGUILine
add ebx,11
DrawGUILine
xor eax,eax
mov al,[TRVal2]
shl eax,2
mov dword[GUITemp],23
add [GUITemp],eax
GUIDisplayIconWin 10,[GUITemp],120,GUIIconDataSlideBar
xor eax,eax
mov al,[TGVal2]
shl eax,2
mov dword[GUITemp],23
add [GUITemp],eax
GUIDisplayIconWin 10,[GUITemp],132,GUIIconDataSlideBar
xor eax,eax
mov al,[TBVal2]
shl eax,2
mov dword[GUITemp],23
add [GUITemp],eax
GUIDisplayIconWin 10,[GUITemp],144,GUIIconDataSlideBar
GUIDisplayTextY 10,6,16,GUIGUIOptnsTextA GUIDisplayTextY 10,6,16,GUIGUIOptnsTextA
GUIDisplayCheckboxu 10,12,23,mousewrap,GUIGUIOptnsTextA1a,0 ; Checkboxes GUIDisplayCheckboxu 10,12,23,mousewrap,GUIGUIOptnsTextA1a,0 ; Checkboxes
@@ -3183,51 +3228,8 @@ DisplayGUIOptns: ; GUI Options
GUIDisplayButtonHole 10,48,108,byte[CurPalSelect],0 ; Radio Buttons GUIDisplayButtonHole 10,48,108,byte[CurPalSelect],0 ; Radio Buttons
GUIDisplayButtonHole 10,88,108,byte[CurPalSelect],1 GUIDisplayButtonHole 10,88,108,byte[CurPalSelect],1
GUIDisplayButtonHole 10,135,108,byte[CurPalSelect],2 GUIDisplayButtonHole 10,135,108,byte[CurPalSelect],2
mov dword[GUIGUIOptnsTextD2],0 ; Display Values for the 3 bars
mov esi,GUIGUIOptnsTextD2+2
xor eax,eax
mov al,[TRVal2]
call .processnum
GUIDisplayTextG 10,160,123,[GUITemp] ; R
mov dword[GUIGUIOptnsTextD2],0
mov esi,GUIGUIOptnsTextD2+2
xor eax,eax
mov al,[TGVal2]
call .processnum
GUIDisplayTextG 10,160,135,[GUITemp] ; G
mov dword[GUIGUIOptnsTextD2],0
mov esi,GUIGUIOptnsTextD2+2
xor eax,eax
mov al,[TBVal2]
call .processnum
GUIDisplayTextG 10,160,147,[GUITemp] ; B
ret ret
.processnum
mov ebx,10
div bl
add ah,48
mov [esi],ah
cmp al,0
je .nomore
dec esi
xor ah,ah
div bl
add ah,48
mov [esi],ah
.nomore
mov [GUITemp],esi
mov byte[GUItextcolor],223
ret
;mousewrap 0 ; 0 = mouse boundries, 1 = mouse wrap
;mouseshad 1 ; 0 = no mouse shadow, 1 = mouse shadow
;lastcursres 0 ; 0 = go to load, 1 = go to previous menu, 2 = no menu
;resetposn 1 ; 0 = no window reset, 1 = window reset
SECTION .data SECTION .data
GUIGUIOptnsTextA db 'GUI SWITCHES:',0 GUIGUIOptnsTextA db 'GUI SWITCHES:',0
GUIGUIOptnsTextA1a db 'MOUSE WRAP',0 GUIGUIOptnsTextA1a db 'MOUSE WRAP',0
@@ -3257,7 +3259,7 @@ GUIGUIOptnsTextC2 db 'SAVE MAIN WINDOW POSITION',0
GUIGUIOptnsTextC3 db 'ALLOW MULTIPLE INSTANCES',0 GUIGUIOptnsTextC3 db 'ALLOW MULTIPLE INSTANCES',0
GUIGUIOptnsTextD1 db '@',0 GUIGUIOptnsTextD1 db '@',0
GUIGUIOptnsTextD2 dd 0 GUIGUIOptnsTextD2 db ' ',0
SECTION .text SECTION .text
@@ -4627,6 +4629,41 @@ GUISaveTextZ3 db ' ',0
SECTION .text SECTION .text
%macro SpdslidSet 1 ; slider var
mov al,[%1]
shl eax,1
%endmacro
%macro SpdslidText 2 ; slider var, text
mov dword[%2],0
mov esi,%2+2
mov al,[%1] ; currently emuspeed ranges from 0 to 58
mov bl,10
cmp al,29 ; this will turn it into '/30' to '30x'
jb %%slowmo
mov byte[esi],'x' ; adds 'x' after the ff value
sub al,28
jmp %%asciilp
%%slowmo
inc esi
mov byte[%2],1 ; slomo indicator
mov al,30
sub al,[%1]
%%asciilp ; turns decimal into ascii
dec esi
xor ah,ah
div bl
add ah,48
mov [esi],ah
cmp al,0
jne %%asciilp
cmp byte[%2],1
jne %%done
dec esi
mov byte[esi],'/' ; adds '/' before the slomo value
%%done
%endmacro
DisplayGUISpeed: ;Speed Options DisplayGUISpeed: ;Speed Options
GUIDrawWindowBox 21,GUISpeedDisp GUIDrawWindowBox 21,GUISpeedDisp
@@ -4720,62 +4757,7 @@ DisplayGUISpeed: ;Speed Options
cmp byte[frameskip],0 cmp byte[frameskip],0
jne near .noslider jne near .noslider
mov eax,[GUIwinposx+21*4] ;Slider GUIDrawSlider 21,7,116,175,EmuSpeed,GUISpeedTextD1,SpdslidSet,SpdslidText
mov ebx,[GUIwinposy+21*4]
add eax,15
add ebx,175
mov ecx,eax
add ecx,116
xor edx,edx
mov dl,215
sub dl,[GUIWincoladd]
DrawGUILine
inc ecx
inc eax
sub dl,13
DrawGUILine
xor eax,eax
mov al,[EmuSpeed]
shl eax,1
mov dword[GUITemp],11
add [GUITemp],eax
GUIDisplayIconWin 21,[GUITemp],171,GUIIconDataSlideBar
mov dword[GUISpeedTextD1],0
mov esi,GUISpeedTextD1+2
xor eax,eax ; currently emuspeed ranges from 0 to 58
mov al,[EmuSpeed] ; this will turn it into '/30' to '30x'
cmp al,29
jb .slowmo
mov byte[esi],'x' ; adds 'x' after the ff value
dec esi
sub al,28
jmp .asciilp
.slowmo
mov byte[GUISpeedTextD1],1 ; slomo indicator
mov bl,30
sub bl,al
mov al,bl
.asciilp ; turns decimal into ascii
mov bl,10
div bl
add ah,48
mov [esi],ah
cmp al,0
je .nomore
dec esi
xor ah,ah
div bl
add ah,48
mov [esi],ah
.nomore
cmp byte[GUISpeedTextD1],1
jne .convdone
dec esi
mov byte[esi],'/' ; adds '/' before the slomo value
.convdone
mov [GUITemp],esi ; Display Value (Green)
GUIDisplayTextG 21,78,163,[GUITemp]
.noslider .noslider
cmp byte[frameskip],0 ; Determine if AutoFR is enabled cmp byte[frameskip],0 ; Determine if AutoFR is enabled
je near .auto je near .auto

View File

@@ -29,7 +29,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#include <string.h> #include <string.h>
#include <sys/stat.h> #include <sys/stat.h>
#endif #endif
#include "ntsc.h" #include "ntsc.h"
extern unsigned int newengen, nggposng[2]; extern unsigned int newengen, nggposng[2];
@@ -83,19 +82,20 @@ void Clear2xSaIBuffer()
unsigned char ntsc_phase = 0; unsigned char ntsc_phase = 0;
snes_ntsc_setup_t ntsc_setup; snes_ntsc_setup_t ntsc_setup;
snes_ntsc_t ntsc_snes; snes_ntsc_t ntsc_snes;
extern unsigned char NTSCBlend,NTSCHue,NTSCSat,NTSCCont,NTSCBright,NTSCSharp,NTSCWarp; extern unsigned char NTSCBlend;
extern signed char NTSCHue, NTSCSat, NTSCCont, NTSCBright, NTSCSharp, NTSCWarp;
// Init NTSC filter command, should be called whenever changes are made in the GUI related to the GUI // Init NTSC filter command, should be called whenever changes are made in the GUI related to the GUI
void NTSCFilterInit() void NTSCFilterInit()
{ {
// Set GUI options // Set GUI options
ntsc_setup.merge_fields = (float) NTSCBlend; ntsc_setup.hue = ((float) NTSCHue) / 100.0;
ntsc_setup.hue = (float) NTSCHue / 100; ntsc_setup.saturation = ((float) NTSCSat) / 100.0;
ntsc_setup.saturation = (float) NTSCSat / 100; ntsc_setup.contrast = ((float) NTSCCont) / 100.0;
ntsc_setup.contrast = (float) NTSCCont / 100; ntsc_setup.brightness = ((float) NTSCBright) / 100.0;
ntsc_setup.brightness = (float) NTSCBright / 100; ntsc_setup.sharpness = ((float) NTSCSharp) / 100.0;
ntsc_setup.sharpness = (float) NTSCSharp / 100; ntsc_setup.hue_warping = ((float) NTSCWarp) / 100.0;
ntsc_setup.hue_warping = (float) NTSCWarp / 100; ntsc_setup.merge_fields = (int) NTSCBlend;
snes_ntsc_init(&ntsc_snes, &ntsc_setup); snes_ntsc_init(&ntsc_snes, &ntsc_setup);
} }