📄 guiwindp.inc
字号:
.nocheckboxw GUIDisplayTextY 5,13,110,GUIVideoTextB3 ; Misc Filters GUIDisplayCheckboxu 5,18,115,GrayscaleMode,GUIVideoTextB3a,0 ; Grayscale xor eax,eax ; Hires Mode7 mov al,[cvidmode] cmp byte[GUIM7VID+eax],0 je near .nocheckboxm72 cmp byte[newengen],0 je near .nocheckboxm72 GUIDisplayCheckboxu 5,128,115,Mode7HiRes16b,GUIVideoTextB3b,0.nocheckboxm72 ; Monitor Refresh%ifndef __UNIXSDL__ ; VSync GUIDisplayTextY 5,13,140,GUIVideoTextB4 GUIDisplayCheckboxu 5,18,145,vsyncon,GUIVideoTextB4a,0%endif%ifdef __WIN32__ xor eax,eax ; Triple Buffering mov al,[cvidmode] cmp byte[GUIWFVID+eax],0 je near .nocheckboxslw2 GUIDisplayCheckboxu 5,128,145,TripleBufferWin,GUIVideoTextB4b,0.nocheckboxslw2%endif%ifdef __MSDOS__ xor eax,eax mov al,[cvidmode] cmp byte[GUITBVID+eax],0 je near .nocheckboxtbb cmp byte[TripBufAvail],0 je near .nocheckboxtbb GUIDisplayCheckboxu 5,128,145,Triplebufen,GUIVideoTextB4b,0.nocheckboxtbb%endif%ifndef __MSDOS__ xor eax,eax ; Keep 4:3 Ratio mov al,[cvidmode] cmp byte[GUIKEEP43+eax],0 je near .nocheckboxk43 pushad call Keep43Check popad cmp byte[ShowKeep43],0 je near .nocheckboxk43 GUIDisplayTextY 5,13,170,GUIVideoTextB5 GUIDisplayCheckboxu 5,18,175,Keep4_3Ratio,GUIVideoTextB5a,8.nocheckboxk43%endif%ifdef __MSDOS__ xor eax,eax ; Small Screen mov al,[cvidmode] cmp byte[GUISSVID+eax],0 je near .nocheckbox3b GUIDisplayTextY 5,13,170,GUIVideoTextB5 GUIDisplayCheckboxu 5,18,175,smallscreenon,GUIVideoTextB5b,1.nocheckbox3b xor eax,eax ; Full/Widescreen mov al,[cvidmode] cmp byte[GUIFSVID+eax],0 je near .notext5 cmp byte[GUIWSVID+eax],0 jne near .notext4a GUIDisplayTextY 5,13,170,GUIVideoTextB5 GUIDisplayCheckboxu 5,128,175,ScreenScale,GUIVideoTextB5c,6 jmp .notext5.notext4a GUIDisplayTextY 5,13,170,GUIVideoTextB5 GUIDisplayCheckboxu 5,128,175,ScreenScale,GUIVideoTextB5d,6.notext5%endif.notfilterstab cmp dword[GUIVntscTab],1 ; NTSC Tab jne near .notntsctab GUIDisplayCheckboxu 5,5,25,NTSCBlend,GUIVideoTextC1a,0 GUIDisplayCheckboxu 5,135,25,NTSCRef,GUIVideoTextC1b,0 DrawGUIButton 5,8,166,67,177,GUIVideoTextC3a,81,0,0 DrawGUIButton 5,72,166,119,177,GUIVideoTextC3b,82,0,0 DrawGUIButton 5,124,166,147,177,GUIVideoTextC3c,83,0,0 DrawGUIButton 5,152,166,217,177,GUIVideoTextC3d,84,0,0 DrawGUIButton 5,102,186,137,197,GUIVideoTextCD1,37,0,0 DrawGUIButton 5,148,186,207,197,GUIVideoTextCD2,39,0,0 GUIDisplayTextY 5,7,46,GUIVideoTextC2a GUIDisplayTextY 5,7,66,GUIVideoTextC2b GUIDisplayTextY 5,7,86,GUIVideoTextC2c GUIDisplayTextY 5,7,106,GUIVideoTextC2d GUIDisplayTextY 5,7,126,GUIVideoTextC2e GUIDisplayTextY 5,7,156,GUIVideoTextC3 GUIDrawSlider 5,8,200,56,NTSCHue,GUIVideoTextCD3,NTSCslidSet,NTSCslidText GUIDrawSlider 5,8,200,76,NTSCSat,GUIVideoTextCD3,NTSCslidSet,NTSCslidText GUIDrawSlider 5,8,200,96,NTSCCont,GUIVideoTextCD3,NTSCslidSet,NTSCslidText GUIDrawSlider 5,8,200,116,NTSCBright,GUIVideoTextCD3,NTSCslidSet,NTSCslidText GUIDrawSlider 5,8,200,136,NTSCSharp,GUIVideoTextCD3,NTSCslidSet,NTSCslidText.notntsctab cmp dword[GUIVntscTab],2 ; Advanced NTSC Options Tab jne near .notadvntsctab DrawGUIButton 5,102,186,137,197,GUIVideoTextCD1,38,0,0 DrawGUIButton 5,148,186,207,197,GUIVideoTextCD2,39,0,0 GUIDisplayTextY 5,7,36,GUIVideoTextD1a GUIDisplayTextY 5,7,56,GUIVideoTextD1b GUIDisplayTextY 5,7,76,GUIVideoTextD1c GUIDisplayTextY 5,7,96,GUIVideoTextD1d GUIDisplayTextY 5,7,116,GUIVideoTextD1e GUIDisplayTextY 5,7,136,GUIVideoTextD1f GUIDrawSlider 5,8,200,46,NTSCGamma,GUIVideoTextCD3,NTSCslidSet,NTSCslidText GUIDrawSlider 5,8,200,66,NTSCRes,GUIVideoTextCD3,NTSCslidSet,NTSCslidText GUIDrawSlider 5,8,200,86,NTSCArt,GUIVideoTextCD3,NTSCslidSet,NTSCslidText GUIDrawSlider 5,8,200,106,NTSCFringe,GUIVideoTextCD3,NTSCslidSet,NTSCslidText GUIDrawSlider 5,8,200,126,NTSCBleed,GUIVideoTextCD3,NTSCslidSet,NTSCslidText GUIDrawSlider 5,8,200,146,NTSCWarp,GUIVideoTextCD3,NTSCslidSet,NTSCslidText.notadvntsctab retSECTION .dataGUIVideoTabs dd 1,2 db 'MODES',0 db 'FILTERS',0GUIVntscTab dd 0,2 db 'NTSC',0 db 'ADV NTSC',0%ifndef __MSDOS__ ; Modes TabGUIVideoTextA1 db 'LEGEND:',0GUIVideoTextA1a db 'D = ALLOW FILTERS',0GUIVideoTextA1b db 'S = STRETCH',0GUIVideoTextA1c db 'R = KEEP 8:7 RATIO',0GUIVideoTextA1d db 'W = WINDOWED',0GUIVideoTextA1e db 'F = FULLSCREEN',0%ifdef __OPENGL__GUIVideoTextA1f db 'O = USES OPENGL',0%endifGUIVideoTextA2 db 'CUSTOM:',0GUIVideoTextA2a db 'X',0%endifGUIVideoTextA3 db 'CURRENT:',0GUIVideoTextA4 db 'SET',0 ; set buttonGUIVideoTextB1 db 'VIDEO FILTERS:',0 ; Filters.ExclusiveGUIVideoTextB1a db 'INTERPOLATION',0 ; -y%ifdef __MSDOS__GUIVideoTextB1b db 'EAGLE ENGINE',0 ; same loc at interpolation -y%endif%ifdef __OPENGL__GUIVideoTextB1c db 'BILINEAR FILTER',0%endifGUIVideoTextB1d db 'NTSC FILTER',0GUIVideoTextB1e db '2XSAI ENGINE',0GUIVideoTextB1f db 'SUPER EAGLE',0GUIVideoTextB1g db 'SUPER 2XSAI',0%ifdef __MSDOS__GUIVideoTextB1h db 'HQ2X',0%elseGUIVideoTextB1i db 'HQ FILTER',0GUIVideoTextB1j db '2X',0GUIVideoTextB1k db '3X',0GUIVideoTextB1l db '4X',0%endifGUIVideoTextB2 db 'SCANLINES:',0 ; Filters.ScanlinesGUIVideoTextB2a db 'NONE',0GUIVideoTextB2b db '25%',0GUIVideoTextB2c db '50%',0GUIVideoTextB2d db 'FULL',0GUIVideoTextB3 db 'MISC FILTERS:',0 ; Filters.OtherGUIVideoTextB3a db 'GRAYSCALE MODE',0 ; -v8GUIVideoTextB3b db 'HI-RES MODE 7',0 ;%ifndef __UNIXSDL__GUIVideoTextB4 db 'MONITOR SYNC:',0 ; Video.SyncGUIVideoTextB4a db 'VSYNC',0 ; -wGUIVideoTextB4b db 'TRIPLE BUFFERING',0 ; -3%endifGUIVideoTextB5 db 'DISPLAY OPTIONS:',0 ; Video.Display%ifndef __MSDOS__GUIVideoTextB5a db 'USE 4:3 RATIO',0NEWSYM ShowKeep43, db 0%elseGUIVideoTextB5b db 'SMALL SCREEN',0 ; -cGUIVideoTextB5c db 'FULL SCREEN',0 ; -ccGUIVideoTextB5d db 'WIDE SCREEN',0 ; -cc%endifGUIVideoTextC1a db 'BLEND FRAMES',0 ; NTSC TabGUIVideoTextC1b db 'REFRESH',0GUIVideoTextC2a db 'HUE:',0GUIVideoTextC2b db 'SATURATION:',0GUIVideoTextC2c db 'CONTRAST:',0GUIVideoTextC2d db 'BRIGHTNESS:',0GUIVideoTextC2e db 'SHARPNESS:',0GUIVideoTextC3 db 'PRESETS:',0 ; NTSC PresetsGUIVideoTextC3a db 'COMPOSITE',0GUIVideoTextC3b db 'S-VIDEO',0GUIVideoTextC3c db 'RGB',0GUIVideoTextC3d db 'MONOCHROME',0GUIVideoTextD1a db 'GAMMA:',0 ; NTSC Adv TabGUIVideoTextD1b db 'RESOLUTION:',0GUIVideoTextD1c db 'ARTIFACTS:',0GUIVideoTextD1d db 'FRINGING:',0GUIVideoTextD1e db 'BLEED:',0GUIVideoTextD1f db 'HUE WARPING:',0GUIVideoTextCD1 db 'RESET',0 ; NTSC buttons + counterGUIVideoTextCD2 db 'RESET ALL',0GUIVideoTextCD3 db '----%',0SECTION .bssGUIVStA resd 3GUIcurrentvideoviewloc resd 1GUIcurrentvideocursloc resd 1SECTION .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%endmacroDisplayGUISound: ; Sound Related Options GUIDrawWindowBox 6,GUISoundDisp GUIDisplayTextY 6,6,16,GUISoundTextA GUIDisplayCheckboxu 6,11,21,SPCDisable,GUISoundTextA1,0 cmp byte[SPCDisable],0 jne near .nosound GUIDisplayCheckboxu 6,11,31,soundon,GUISoundTextA2,0 cmp byte[soundon],1 jne near .nosound GUIDisplayCheckboxu 6,11,41,StereoSound,GUISoundTextA3,7 cmp byte[StereoSound],1 jne near .nostereo GUIDisplayCheckboxu 6,11,51,RevStereo,GUISoundTextA4,2 GUIDisplayCheckboxu 6,11,61,Surround,GUISoundTextA5,2.nostereo%ifdef __MSDOS__ GUIDisplayCheckboxu 6,11,71,Force8b,GUISoundTextA6,0%endif%ifdef __WIN32__ GUIDisplayCheckboxu 6,11,71,PrimaryBuffer,GUISoundTextA7,4%endif.nosound GUIDisplayTextY 6,6,152,GUISoundTextD GUIDisplayButtonHoleTu 6,11,157,byte[SoundInterpType],0,GUISoundTextF,0 GUIDisplayButtonHoleTu 6,11,167,byte[SoundInterpType],1,GUISoundTextD1,0 GUIDisplayButtonHoleTu 6,11,177,byte[SoundInterpType],2,GUISoundTextD2,0 cmp byte[MMXSupport],0 je near .no8ptinterp GUIDisplayButtonHoleTu 6,11,187,byte[SoundInterpType],3,GUISoundTextD3,0.no8ptinterp GUIDisplayTextY 6,106,152,GUISoundTextE GUIDisplayButtonHoleTu 6,111,157,byte[LowPassFilterType],0,GUISoundTextF,1 GUIDisplayButtonHoleTu 6,111,167,byte[LowPassFilterType],1,GUISoundTextE1,1 GUIDisplayButtonHoleTu 6,111,177,byte[LowPassFilterType],2,GUISoundTextE2,1 cmp byte[MMXSupport],0 je near .nohiqualityfilter GUIDisplayButtonHoleTu 6,111,187,byte[LowPassFilterType],3,GUISoundTextE3,0.nohiqualityfilter%ifdef __MSDOS__ cmp byte[SoundQuality],2 jbe .okay cmp byte[SoundQuality],4 je .okay cmp byte[StereoSound],1 jne .okay cmp byte[SBHDMA],0 jne .okay cmp byte[vibracard], 1 je .okay GUIDisplayBBox 6,15,101,69,109,167 GUIDisplayTextG 6,23,104,GUISoundTextB0 jmp .nosrate.okay%endif GUIDisplayTextY 6,6,93,GUISoundTextB GUIDisplayBBox 6,15,101,69,109,167 ;Sampling Rate Box mov eax,[SoundQuality] lea eax,[eax*8+GUISoundTextB1] mov [GUITemp],eax GUIDisplayTextG 6,23,104,[GUITemp].nosrate GUIDisplayTextY 6,6,116,GUISoundTextC GUIDrawSlider 6,15,100,131,MusicRelVol,GUISoundTextC1,VolslidSet,VolslidText retSECTION .dataGUISoundTextA db 'SOUND SWITCHES:',0GUISoundTextA1 db 'DISABLE SPC EMULATION',0GUISoundTextA2 db 'ENABLE SOUND',0GUISoundTextA3 db 'ENABLE STEREO SOUND',0GUISoundTextA4 db 'REVERSE STEREO CHANNELS',0GUISoundTextA5 db 'SIMULATE SURROUND SOUND',0GUISoundTextA6 db 'FORCE 8-BIT OUTPUT',0 ; DOS OnlyGUISoundTextA7 db 'USE PRIMARY BUFFER',0 ; Win OnlyGUISoundTextB db 'SAMPLING RATE:',0GUISoundTextB0 db 'N/A',0GUISoundTextB1 db ' 8000HZ',0GUISoundTextB2 db '11025HZ',0GUISoundTextB3 db '22050HZ',0GUISoundTextB4 db '44100HZ',0GUISoundTextB5 db '16000HZ',0GUISoundTextB6 db '32000HZ',0GUISoundTextB7 db '48000HZ',0GUISoundTextC db 'VOLUME LEVEL:',0GUISoundTextC1 db '---%',0GUISoundTextD db 'INTERPOLATION:',0GUISoundTextD1 db 'GAUSSIAN',0GUISoundTextD2 db 'CUBIC SPLINE',0GUISoundTextD3 db '8-POINT',0GUISoundTextE db 'LOWPASS:',0GUISoundTextE1 db 'SIMPLE',0GUISoundTextE2 db 'DYNAMIC',0GUISoundTextE3 db 'HI QUALITY',0GUISoundTextF db 'NONE',0SECTION .textDisplayGUICheatConv: mov eax,[ccheatnpos] add eax,4 xor ebx,ebx mov ecx,3 mov edx,GUICheatTextZ3.loop mov bl,[eax] and bl,0Fh mov bl,[GUICheatTextZ4+ebx] mov [edx+1],bl mov bl,[eax] and bl,0F0h shr bl,4 mov bl,[GUICheatTextZ4+ebx] mov [edx],bl add edx,2 dec eax dec ecx jnz .loop mov eax,[ccheatnpos] inc eax mov edx,GUICheatTextZ3+7 mov bl,[eax] and bl,0Fh mov bl,[GUICheatTextZ4+ebx] mov [edx+1],bl mov bl,[eax] and bl,0F0h shr bl,4 mov bl,[GUICheatTextZ4+ebx] mov [edx],bl mov eax,[ccheatnpos] add eax,5 mov edx,GUICheatTextZ3+10 mov bl,[eax] and bl,0Fh mov bl,[GUICheatTextZ4+ebx] mov [edx+1],bl mov bl,[eax] and bl,0F0h shr bl,4 mov bl,[GUICheatTextZ4+ebx] mov [edx],bl mov eax,[ccheatnpos] test byte[eax-28],80h jnz .src test byte[eax],04h jz .on mov byte[GUICheatTextZ3+13],'O' mov byte[GUICheatTextZ3+14],'F' mov byte[GUICheatTextZ3+15],'F' jmp .off.on test byte[eax],80h jnz .repl mov byte[GUICheatTextZ3+13],'O' mov byte[GUICheatTextZ3+14],'N' mov byte[GUICheatTextZ3+15],' ' jmp .off.repl mov byte[GUICheatTextZ3+13],'R' mov byte[GUICheatTextZ3+14],'P' mov byte[GUICheatTextZ3+15],'L' jmp .off.src mov byte[GUICheatTextZ3+13],'S' mov byte[GUICheatTextZ3+14],'R' mov byte[GUICheatTextZ3+15],'C'.off mov ecx,20 add eax,8 mov edx,GUICheatTextZ3+17.loop2 mov bl,[eax] mov [edx],bl inc eax inc edx dec ecx jnz .loop2 ret%macro GUIOuttextwin2cheat 2 test dword[ccheatnleft],80000000h jnz near %%skip call DisplayGUICheatConv mov byte[GUItextcolor],223 GUIOuttextwin2 7,%1,%2,GUICheatTextZ3 mov byte[GUItextcolor],221 ;Text cmp byte[GUIWincoladd],0 je %%zero mov byte[GUItextcolor],222%%zero GUIOuttextwin2 7,%1-1,%2-1,GUICheatTextZ3 add dword[ccheatnpos],28 dec dword[ccheatnleft]%%skip%endmacroDisplayGUICheat: ; Add/Browse Cheats menu GUIDrawWindowBox 7,GUICheatDisp GUIDisplayText 7,6,13,GUICheatTextA GUIDisplayText 7,6,132,GUICheatTextC1 GUIDisplayText 7,6,143,GUICheatTextC2 GUIDisplayText 7,11,154,GUICheatTextD1 GUIDisplayText 7,11,164,GUICheatTextD2 GUIDisplayText 7,11,172,GUICheatTextD3 GUIDisplayText 7,11,180,GUICheatTextD4 mov byte[GUItextcolor],217 cmp byte[GUIWincoladd],0 je .zero mov byte[GUItextcolor],211.zero DrawGUIButton 7,5,113,47,124,GUICheatTextB1,5,0,0 ; Draw Buttons DrawGUIButton 7,52,113,94,124,GUICheatTextB2,6,0,0 DrawGUIButton 7,99,113,141,124,GUICheatTextB3,7,0,0 DrawGUIButton 7,146,113,188,124,GUICheatTextB4,8,0,0 DrawGUIButton 7,193,113,235,124,GUICheatTextB5,33,0,0 DrawGUIButton 7,212,134,236,145,GUICheatTextB6,9,0,0 GUIDisplayBBoxS 7,5,20,229,108,167 ; Draw Cheat Box cmp dword[GUIcurrentcheatwin],0 ; Red Highlight for Cheats box jne near .nowinbox mov ebx,[GUIcurrentcheatcursloc] sub ebx,[GUIcurrentcheatviewloc] mov eax,ebx lea ebx,[ebx*8] sub ebx,eax add ebx,22 DrawGUIWinBox2 7,5,229,7,224.nowinbox mov dword[ccheatnpos],cheatdata ; Green Text mov eax,[NumCheats] sub eax,[GUIcurrentcheatviewloc] dec eax mov [ccheatnleft],eax mov eax,[GUIcurrentcheatviewloc] mov ebx,eax shl eax,5 sub eax,ebx sub eax,ebx sub eax,ebx sub eax,ebx add [ccheatnpos],eax GUIOuttextwin2cheat 12,24 GUIOuttextwin2cheat 12,24+7 GUIOuttextwin2cheat 12,24+7*2 GUIOuttextwin2cheat 12,24+7*3 GUIOuttextwin2cheat 12,24+7*4 GUIOuttextwin2cheat 12,24+7*5 GUIOuttextwin2cheat 12,24+7*6 GUIOuttextwin2cheat 12,24+7*7 GUIOuttextwin2cheat 12,24+7*8 GUIOuttextwin2cheat 12,24+7*9 GUIOuttextwin2cheat 12,24+7*10 GUIOuttextwin2cheat 12,24+7*11;Scrollbar DrawSlideBarWin 7,231,28,[GUIcurrentcheatviewloc],[NumCheats],12,73,GUICStA cmp byte[GUICHold],7 jne .noholda add byte[GUIWincoladd],3.noholda GUIDisplayIconWin 7,231,20,GUIIconDataUpArrow cmp byte[GUICHold],7 jne .noholda2 sub byte[GUIWincoladd],3.noholda2 cmp byte[GUI
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -