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 NTSCSharp, 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 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 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 GUIRAdd,GUIGAdd,GUIBAdd,GUITRAdd,GUITGAdd,GUITBAdd,GUIWRAdd
EXTSYM GUIWGAdd,GUIWBAdd,GUIloadfntype,SoundInterpType,PrimaryBuffer
@@ -306,9 +306,9 @@ ViewBuffer resb 50*32
SECTION .data
; 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
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
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
GUIwinptr db 0

View File

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

View File

@@ -37,6 +37,18 @@ ProcessMouse:
je near .noholdnecessary
cmp byte[GUIHold],0
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 edx,255
call Set_MouseXMax
@@ -584,7 +596,9 @@ ProcessMouseButtons:
je near GUIProcReset
cmp byte[GUICBHold],3
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
cmp byte[GUICBHold],10
je near GUIProcStates
@@ -847,6 +861,22 @@ ProcessMouseButtons:
ret
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__
mov al,[GUIcurrentvideocursloc]
cmp al,3
@@ -868,7 +898,6 @@ GUIProcVideo:
mov byte[newengen],1
mov byte[cfgnewgfx],1
.skipno16b
mov byte[GUICBHold],0
call guiprevideo
mov al,[cvidmode]
mov [.prevvid],al
@@ -2583,18 +2612,23 @@ DisplayGUIVideoClick:
sub edx,[GUIwinposy+5*4]
GUIClickCButton 5,25,byte[NTSCBlend] ; Checkboxes
GUIClickCButton 135,25,byte[NTSCRef]
GUIPHoldbutton 5,166,42,177,37 ; button
;Sliders
cmp eax,15 ; X-Range for click-area
cmp eax,8 ; X-Range for click-area
jl near .nomovebar
cmp eax,15+100
cmp eax,8+200
jg near .nomovebar
sub al,108
cmp edx,54 ; Y-Range for click-area
jl near .nomovebar
cmp edx,58
jg .nohuebar
sub eax,15
mov [NTSCHue],al
mov [ntscCurVar],al
mov byte[ntscWhVar],0
mov byte[GUIHold],7 ; Lock mouse to bar when clicked
mov eax,[GUIwinposy+5*4]
add eax,56
@@ -2605,8 +2639,9 @@ DisplayGUIVideoClick:
jl near .nomovebar
cmp edx,78
jg .nosatbar
sub eax,15
mov [NTSCSat],al
mov [ntscCurVar],al
mov byte[ntscWhVar],1
mov byte[GUIHold],7
mov eax,[GUIwinposy+5*4]
add eax,76
@@ -2617,8 +2652,9 @@ DisplayGUIVideoClick:
jl near .nomovebar
cmp edx,98
jg .nocontbar
sub eax,15
mov [NTSCCont],al
mov [ntscCurVar],al
mov byte[ntscWhVar],2
mov byte[GUIHold],7
mov eax,[GUIwinposy+5*4]
add eax,96
@@ -2629,8 +2665,9 @@ DisplayGUIVideoClick:
jl near .nomovebar
cmp edx,118
jg .nobrightbar
sub eax,15
mov [NTSCBright],al
mov [ntscCurVar],al
mov byte[ntscWhVar],3
mov byte[GUIHold],7
mov eax,[GUIwinposy+5*4]
add eax,116
@@ -2638,11 +2675,12 @@ DisplayGUIVideoClick:
jmp .nowarpbar
.nobrightbar
cmp edx,134
jl .nomovebar
jl near .nomovebar
cmp edx,138
jg .nosharpbar
sub eax,15
mov [NTSCSharp],al
mov [ntscCurVar],al
mov byte[ntscWhVar],4
mov byte[GUIHold],7
mov eax,[GUIwinposy+5*4]
add eax,136
@@ -2653,30 +2691,35 @@ DisplayGUIVideoClick:
jl .nomovebar
cmp edx,158
jg .nomovebar
sub eax,15
mov [NTSCWarp],al
mov [ntscCurVar],al
mov byte[ntscWhVar],5
mov byte[GUIHold],7
mov eax,[GUIwinposy+5*4]
add eax,156
mov [GUIHoldYlim],eax
.nowarpbar
mov eax,[GUIwinposx+5*4]
add eax,15
add eax,8
mov [GUIHoldXlimL],eax
add eax,100
add eax,200
mov [GUIHoldXlimR],eax
.nomovebar
.notntsctab
EXTSYM NTSCFilterInit
xor al,al
cmp byte[NTSCRef],0
je .notntsctab
pushad
call NTSCFilterInit
popad
.notntsctab
xor eax,eax
ret
SECTION .bss
GUINumValue resd 1
GUIBlankVar resd 1
ntscLastVar resb 6
ntscCurVar resb 1
ntscWhVar resb 1
SECTION .text
DisplayGUISoundClick:
@@ -3066,7 +3109,7 @@ DisplayGUIOptnsClick:
cmp eax,25
jl near .nomovebar
cmp eax,25+128
cmp eax,25+127
jg near .nomovebar
sub eax,25
shr eax,2
@@ -3158,7 +3201,7 @@ DisplayGUIOptnsClick:
add eax,25
mov [GUIHoldXlimL],eax
mov eax,[GUIwinposx+10*4]
add eax,25+128
add eax,25+127
mov [GUIHoldXlimR],eax
.nohold
ret
@@ -3489,11 +3532,11 @@ DisplayGUISpeedClick:
GUIPHoldbutton2 129,13,137,21,13,byte[maxskip],-1,0
; Speed Slider
cmp eax,15 ; X-Range for click-area
cmp eax,7 ; X-Range for click-area
jl near .nomovebar
cmp eax,15+116
cmp eax,7+116
jg near .nomovebar
sub eax,15
sub eax,7
shr eax,1
cmp edx,173 ; Y-Range for click-area
jl near .nomovebar
@@ -3505,7 +3548,7 @@ DisplayGUISpeedClick:
add eax,175
mov [GUIHoldYlim],eax
mov eax,[GUIwinposx+21*4]
add eax,15
add eax,7
mov [GUIHoldXlimL],eax
add eax,116
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
dec eax
mov ecx,eax
mov esi,12
mov esi,11
inc dl
%%draw2
DrawGUILine
dec esi
jnz %%draw2
sub ebx,13
sub ebx,11
push ebx ; save Y offset for next drawing step
mov cl,[GUIWincol]
mov [GUItextcolor],cl
add ebx,5
add ebx,4
push ebx ; save label Yoff
mov edx,eax
add edx,6
@@ -692,9 +692,19 @@ GUIOuttextwin2 %1,%2-1,%3-1,%4
add edi,ebp
call GUIOutputStringwin
mov byte[GUItextcolor],217 ; restore normal colour
pop ebx ; restore Yoff for next tab
pop ebx ; restore Yoff for drawing step
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
mov esi,%1
cmp byte[esi+ebp],0
@@ -806,7 +816,7 @@ GUIOuttextwin2 %1,%2-1,%3-1,%4
%%nodraw
%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 ebx,[GUIwinposy+%1*4]
add eax,%2
@@ -822,23 +832,12 @@ GUIOuttextwin2 %1,%2-1,%3-1,%4
sub dl,13
DrawGUILine
xor eax,eax
mov al,[%5]
%7 %5 ; proc1 == alters var correctly and puts result in al
mov dword[GUITemp],%2-4
add [GUITemp],eax
GUIDisplayIconWin %1,[GUITemp],%4-4,GUIIconDataSlideBar
mov word[%6],' '
mov esi,%6+3
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)
%8 %5,%6 ; proc2 == alters text correctly and puts pointer in esi
mov [GUITemp],esi ; Display Value (Green)
GUIDisplayTextG %1,%2+%3+6,%4-1,[GUITemp]
%endmacro
@@ -1645,6 +1644,35 @@ GUIOptionTextZ db '-',0
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:
cmp byte[TripBufAvail],0 ; Check features
jne .notexttb
@@ -1675,6 +1703,16 @@ DisplayGUIVideo:
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
GUIDrawTabs GUIVideoTabs
cmp byte[NTSCFilter],0
@@ -1905,7 +1943,10 @@ DisplayGUIVideo:
cmp dword[GUIVntscTab],1
jne near .notntsctab
DrawGUIButton 5,5,166,42,177,GUIVideoTextG8,37,0,0 ; Button
GUIDisplayCheckboxu 5,5,25,NTSCBlend,GUIVideoTextG1,0
GUIDisplayCheckboxu 5,135,25,NTSCRef,GUIVideoTextG9,0
GUIDisplayTextY 5,7,46,GUIVideoTextG2
GUIDisplayTextY 5,7,66,GUIVideoTextG3
@@ -1914,12 +1955,12 @@ DisplayGUIVideo:
GUIDisplayTextY 5,7,126,GUIVideoTextG6
GUIDisplayTextY 5,7,146,GUIVideoTextG7
GUIDrawSlider 5,15,100,56,NTSCHue,GUIVideoTextG
GUIDrawSlider 5,15,100,76,NTSCSat,GUIVideoTextG
GUIDrawSlider 5,15,100,96,NTSCCont,GUIVideoTextG
GUIDrawSlider 5,15,100,116,NTSCBright,GUIVideoTextG
GUIDrawSlider 5,15,100,136,NTSCSharp,GUIVideoTextG
GUIDrawSlider 5,15,100,156,NTSCWarp,GUIVideoTextG
GUIDrawSlider 5,8,200,56,NTSCHue,GUIVideoTextG,NTSCslidSet,NTSCslidText
GUIDrawSlider 5,8,200,76,NTSCSat,GUIVideoTextG,NTSCslidSet,NTSCslidText
GUIDrawSlider 5,8,200,96,NTSCCont,GUIVideoTextG,NTSCslidSet,NTSCslidText
GUIDrawSlider 5,8,200,116,NTSCBright,GUIVideoTextG,NTSCslidSet,NTSCslidText
GUIDrawSlider 5,8,200,136,NTSCSharp,GUIVideoTextG,NTSCslidSet,NTSCslidText
GUIDrawSlider 5,8,200,156,NTSCWarp,GUIVideoTextG,NTSCslidSet,NTSCslidText
.notntsctab
ret
@@ -1963,7 +2004,7 @@ GUIVideoText8 db 'SET',0 ; set button
GUIVideoText9 db 'VSYNC',0 ; -c
GUIVideoTexte db 'NTSC',0
GUIVideoTextG db '---%',0
GUIVideoTextG db '----%',0
GUIVideoTextG1 db 'BLEND FRAMES',0
GUIVideoTextG2 db 'HUE:',0
GUIVideoTextG3 db 'SATURATION:',0
@@ -1971,6 +2012,8 @@ GUIVideoTextG4 db 'CONTRAST:',0
GUIVideoTextG5 db 'BRIGHTNESS:',0
GUIVideoTextG6 db 'SHARPNESS:',0
GUIVideoTextG7 db 'HUE WARPING:',0
GUIVideoTextG8 db 'RESET',0
GUIVideoTextG9 db 'REFRESH',0
SECTION .bss
GUIVStA resd 3
@@ -1979,6 +2022,26 @@ GUIcurrentvideocursloc resd 1
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
GUIDrawWindowBox 6,GUISoundDisp
@@ -2029,7 +2092,7 @@ DisplayGUISound: ; Sound Related Options
add [GUITemp],eax
GUIDisplayTextG 6,23,64,[GUITemp]
GUIDrawSlider 6,15,100,91,MusicRelVol,GUISoundTextC1
GUIDrawSlider 6,15,100,91,MusicRelVol,GUISoundTextC1,VolslidSet,VolslidText
ret
SECTION .data
@@ -3065,13 +3128,35 @@ GUIGameOptnsTextD2e db '- GAMMA',0
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
%ifdef __WIN32__ ; If Windows, extend window down
mov dword[GUIwinsizey+10*4],192
%endif
GUIDrawWindowBox 10,GUIGUIDisp
push eax ; Setup Colors
; Setup Colors
cmp byte[CurPalSelect],1
je .yespal2b
cmp byte[CurPalSelect],2
@@ -3099,50 +3184,10 @@ DisplayGUIOptns: ; GUI Options
mov al,[GUIWBAdd]
mov [TBVal2],al
.nopal1b
pop eax
mov eax,[GUIwinposx+10*4] ; Slider Bars
mov ebx,[GUIwinposy+10*4]
mov ecx,eax
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
GUIDrawSlider 10,25,127,124,TRVal2,GUIGUIOptnsTextD2,GUICslidSet,GUICslidText
GUIDrawSlider 10,25,127,136,TGVal2,GUIGUIOptnsTextD2,GUICslidSet,GUICslidText
GUIDrawSlider 10,25,127,148,TBVal2,GUIGUIOptnsTextD2,GUICslidSet,GUICslidText
GUIDisplayTextY 10,6,16,GUIGUIOptnsTextA
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,88,108,byte[CurPalSelect],1
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
.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
GUIGUIOptnsTextA db 'GUI SWITCHES:',0
GUIGUIOptnsTextA1a db 'MOUSE WRAP',0
@@ -3257,7 +3259,7 @@ GUIGUIOptnsTextC2 db 'SAVE MAIN WINDOW POSITION',0
GUIGUIOptnsTextC3 db 'ALLOW MULTIPLE INSTANCES',0
GUIGUIOptnsTextD1 db '@',0
GUIGUIOptnsTextD2 dd 0
GUIGUIOptnsTextD2 db ' ',0
SECTION .text
@@ -4627,6 +4629,41 @@ GUISaveTextZ3 db ' ',0
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
GUIDrawWindowBox 21,GUISpeedDisp
@@ -4720,62 +4757,7 @@ DisplayGUISpeed: ;Speed Options
cmp byte[frameskip],0
jne near .noslider
mov eax,[GUIwinposx+21*4] ;Slider
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]
GUIDrawSlider 21,7,116,175,EmuSpeed,GUISpeedTextD1,SpdslidSet,SpdslidText
.noslider
cmp byte[frameskip],0 ; Determine if AutoFR is enabled
je near .auto

View File

@@ -29,7 +29,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#include <string.h>
#include <sys/stat.h>
#endif
#include "ntsc.h"
extern unsigned int newengen, nggposng[2];
@@ -83,20 +82,21 @@ void Clear2xSaIBuffer()
unsigned char ntsc_phase = 0;
snes_ntsc_setup_t ntsc_setup;
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
void NTSCFilterInit()
{
// Set GUI options
ntsc_setup.merge_fields = (float) NTSCBlend;
ntsc_setup.hue = (float) NTSCHue / 100;
ntsc_setup.saturation = (float) NTSCSat / 100;
ntsc_setup.contrast = (float) NTSCCont / 100;
ntsc_setup.brightness = (float) NTSCBright / 100;
ntsc_setup.sharpness = (float) NTSCSharp / 100;
ntsc_setup.hue_warping = (float) NTSCWarp / 100;
snes_ntsc_init(&ntsc_snes, &ntsc_setup);
// Set GUI options
ntsc_setup.hue = ((float) NTSCHue) / 100.0;
ntsc_setup.saturation = ((float) NTSCSat) / 100.0;
ntsc_setup.contrast = ((float) NTSCCont) / 100.0;
ntsc_setup.brightness = ((float) NTSCBright) / 100.0;
ntsc_setup.sharpness = ((float) NTSCSharp) / 100.0;
ntsc_setup.hue_warping = ((float) NTSCWarp) / 100.0;
ntsc_setup.merge_fields = (int) NTSCBlend;
snes_ntsc_init(&ntsc_snes, &ntsc_setup);
}
void NTSCFilterDraw(int SurfaceX, int SurfaceY, int pitch, unsigned char *buffer)

View File

@@ -1902,7 +1902,7 @@ void initwinvideo(void)
case 5:
case 6:
case 7:
case 8:
case 8:
WindowWidth=640;
WindowHeight=480;
break;