📄 guimouse.inc
字号:
%endif xor ebx,ebx mov bl,[cvidmode]%ifdef __MSDOS__ cmp byte[GUIHSVID+ebx],0%else cmp byte[GUIDSIZE+ebx],0%endif je near .nohsline FilterExcl 68,87,En2xSaI,hqFilter,NTSCFilter FilterExcl 118,87,En2xSaI,hqFilter,NTSCFilter GUIPButtonHoleS 68,87,byte[scanlines],2 GUIPButtonHoleS 118,87,byte[scanlines],3.nohsline GUIClickCButton 18,115,byte[GrayscaleMode] ; Grayscale xor ebx,ebx ; Hires Mode7 mov bl,[cvidmode] cmp byte[GUIM7VID+ebx],0 je .nocheckboxtm7 GUIClickCButton5 128,115,byte[Mode7HiRes16b],1.nocheckboxtm7%ifdef __MSDOS__ xor ebx,ebx ; Triple buffs/vsyncs mov bl,[cvidmode] cmp byte[GUITBVID+ebx],0 je .nocheckboxttb GUIClickCButtonT 128,145,byte[Triplebufen],byte[vsyncon].nocheckboxttb GUIClickCButtonT 18,145,byte[vsyncon],byte[Triplebufen]%endif%ifdef __WIN32__ xor ebx,ebx mov bl,[cvidmode] cmp byte[GUIWFVID+ebx],0 je near .notriplebufferwin GUIClickCButtonf 128,145,byte[TripleBufferWin],initDirectDraw.notriplebufferwin GUIClickCButtonf 18,145,byte[vsyncon],initDirectDraw%endif%ifndef __MSDOS__ xor ebx,ebx ; Keep 4:3 Ratio mov bl,[cvidmode] cmp byte[GUIKEEP43+ebx],0 je near .nocheckboxk43 GUIClickCButtonK 18,175,byte[Keep4_3Ratio],initwinvideo.nocheckboxk43%endif%ifdef __MSDOS__ xor ebx,ebx ; Small Screen mov bl,[cvidmode] cmp byte[GUISSVID+ebx],0 je .nocheckbox2b FilterExcl 18,175,ScreenScale,antienab,En2xSaI,scanlines GUIClickCButton3 18,175,byte[smallscreenon].nocheckbox2b xor ebx,ebx ; Full/Wide Screen mov bl,[cvidmode] cmp byte[GUIFSVID+ebx],0 je .nocheckbox3b FilterExcl 128,175,smallscreenon,antienab,En2xSaI GUIClickCButton3 128,175,byte[ScreenScale].nocheckbox3b%endif.notfilterstab cmp dword[GUIVntscTab],1 ; NTSC Tab jne near .notntsctab mov eax,[GUImouseposx] ; update mouse location sub eax,[GUIwinposx+5*4] mov edx,[GUImouseposy] sub edx,[GUIwinposy+5*4] GUIClickCButton 5,25,byte[NTSCBlend] ; Checkboxes GUIClickCButton 135,25,byte[NTSCRef] GUIPHoldbutton 8,166,67,177,81 GUIPHoldbutton 72,166,119,177,82 GUIPHoldbutton 124,166,147,177,83 GUIPHoldbutton 152,166,217,177,84 GUIPHoldbutton 102,186,137,197,37 ; button GUIPHoldbutton 148,186,207,197,39 ; button ;Sliders cmp eax,8 ; X-Range for click-area jl near .nomovebar 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 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 mov [GUIHoldYlim],eax jmp .nosharpbar.nohuebar cmp edx,74 jl near .nomovebar cmp edx,78 jg .nosatbar mov [NTSCSat],al mov [ntscCurVar],al mov byte[ntscWhVar],1 mov byte[GUIHold],7 mov eax,[GUIwinposy+5*4] add eax,76 mov [GUIHoldYlim],eax jmp .nosharpbar.nosatbar cmp edx,94 jl near .nomovebar cmp edx,98 jg .nocontbar mov [NTSCCont],al mov [ntscCurVar],al mov byte[ntscWhVar],2 mov byte[GUIHold],7 mov eax,[GUIwinposy+5*4] add eax,96 mov [GUIHoldYlim],eax jmp .nosharpbar.nocontbar cmp edx,114 jl near .nomovebar cmp edx,118 jg .nobrightbar mov [NTSCBright],al mov [ntscCurVar],al mov byte[ntscWhVar],3 mov byte[GUIHold],7 mov eax,[GUIwinposy+5*4] add eax,116 mov [GUIHoldYlim],eax jmp .nosharpbar.nobrightbar cmp edx,134 jl near .nomovebar cmp edx,138 jg .nosharpbar mov [NTSCSharp],al mov [ntscCurVar],al mov byte[ntscWhVar],4 mov byte[GUIHold],7 mov eax,[GUIwinposy+5*4] add eax,136 mov [GUIHoldYlim],eax jmp .nowarpbar.nosharpbar mov eax,[GUIwinposx+5*4] add eax,8 mov [GUIHoldXlimL],eax add eax,200 mov [GUIHoldXlimR],eax.nomovebar cmp byte[NTSCRef],0 je .notntsctab%ifndef __MSDOS__ mov dword[NTSCPresetVar],4 pushad call NTSCFilterInit popad%endif.notntsctab cmp dword[GUIVntscTab],2 ; NTSC Tab jne near .notadvntsctab mov eax,[GUImouseposx] ; update mouse location sub eax,[GUIwinposx+5*4] mov edx,[GUImouseposy] sub edx,[GUIwinposy+5*4] GUIPHoldbutton 102,186,137,197,38 ; button GUIPHoldbutton 148,186,207,197,39 ; button ;Sliders cmp eax,8 ; X-Range for click-area jl near .nomovebar2 cmp eax,8+200 jg near .nomovebar2 sub al,108 cmp edx,44 ; Y-Range for click-area jl near .nomovebar2 cmp edx,48 jg .nogammabar mov [NTSCGamma],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,46 mov [GUIHoldYlim],eax jmp .nowarpbar.nogammabar cmp edx,64 jl near .nomovebar2 cmp edx,68 jg .noresbar mov [NTSCRes],al mov [ntscCurVar],al mov byte[ntscWhVar],1 mov byte[GUIHold],7 mov eax,[GUIwinposy+5*4] add eax,66 mov [GUIHoldYlim],eax jmp .nowarpbar.noresbar cmp edx,84 jl near .nomovebar2 cmp edx,88 jg .noartbar mov [NTSCArt],al mov [ntscCurVar],al mov byte[ntscWhVar],2 mov byte[GUIHold],7 mov eax,[GUIwinposy+5*4] add eax,86 mov [GUIHoldYlim],eax jmp .nowarpbar.noartbar cmp edx,104 jl near .nomovebar2 cmp edx,108 jg .nofringebar mov [NTSCFringe],al mov [ntscCurVar],al mov byte[ntscWhVar],3 mov byte[GUIHold],7 mov eax,[GUIwinposy+5*4] add eax,106 mov [GUIHoldYlim],eax jmp .nowarpbar.nofringebar cmp edx,124 jl near .nomovebar2 cmp edx,128 jg .nobleedbar mov [NTSCBleed],al mov [ntscCurVar],al mov byte[ntscWhVar],4 mov byte[GUIHold],7 mov eax,[GUIwinposy+5*4] add eax,126 mov [GUIHoldYlim],eax jmp .nowarpbar.nobleedbar cmp edx,144 jl .nomovebar2 cmp edx,148 jg .nomovebar2 mov [NTSCWarp],al mov [ntscCurVar],al mov byte[ntscWhVar],5 mov byte[GUIHold],7 mov eax,[GUIwinposy+5*4] add eax,146 mov [GUIHoldYlim],eax.nowarpbar mov eax,[GUIwinposx+5*4] add eax,8 mov [GUIHoldXlimL],eax add eax,200 mov [GUIHoldXlimR],eax.nomovebar2 cmp byte[NTSCRef],0 je .notadvntsctab%ifndef __MSDOS__ mov dword[NTSCPresetVar],4 pushad call NTSCFilterInit popad%endif.notadvntsctab xor eax,eax retSECTION .bssGUINumValue resd 1GUIBlankVar resd 1ntscLastVar resb 6ntscCurVar resb 1ntscWhVar resb 1SECTION .dataNEWSYM NTSCPresetVar, dd 4SECTION .textDisplayGUISoundClick: mov eax,[GUImouseposx] sub eax,[GUIwinposx+6*4] mov edx,[GUImouseposy] sub edx,[GUIwinposy+6*4] GUIClickCButton 11,21,byte[SPCDisable] GUIClickCButtonf 11,31,byte[soundon],reInitSound GUIClickCButton 11,41,byte[StereoSound] GUIClickCButton 11,51,byte[RevStereo] GUIClickCButton 11,61,byte[Surround]%ifdef __MSDOS__ GUIClickCButton 11,71,byte[Force8b]%endif%ifdef __WIN32__ GUIClickCButton 11,71,byte[PrimaryBuffer]%endif GUIPButtonHole 11,157,byte[SoundInterpType],0 GUIPButtonHole 11,167,byte[SoundInterpType],1 GUIPButtonHole 11,177,byte[SoundInterpType],2 cmp byte[MMXSupport],0 je near .no8ptintrp GUIPButtonHole 11,187,byte[SoundInterpType],3.no8ptintrp GUIPButtonHole 111,157,byte[LowPassFilterType],0 GUIPButtonHole 111,167,byte[LowPassFilterType],1 GUIPButtonHole 111,177,byte[LowPassFilterType],2 cmp byte[MMXSupport],0 je near .nohiqualityfilter GUIPButtonHole 111,187,byte[LowPassFilterType],3.nohiqualityfilter GUIClickArea 15,101,69,109,.nosrate mov eax,[SoundQuality] mov al,[sampratenext+eax] mov [SoundQuality],al.nosrate GUIClickArea 15,129,115,133,{near .nomovebar} sub eax,15 mov [MusicRelVol],al mov byte[GUIHold],5 mov eax,[GUIwinposy+6*4] add eax,131 mov [GUIHoldYlim],eax xor eax,eax xor edx,edx mov al,[MusicRelVol] shl eax,7 mov ebx,100 div ebx cmp al,127 jb .noof mov al,127.noof mov [MusicVol],al mov al,[DSPMem+0Ch] call WDSPReg0C mov al,[DSPMem+1Ch] call WDSPReg1C mov eax,[GUIwinposx+6*4] add eax,15 mov [GUIHoldXlimL],eax add eax,100 mov [GUIHoldXlimR],eax.nomovebar retSECTION .datasampratenext db 1,4,5,6,2,3,0,0SECTION .textDisplayGUICheatClick2: GUISlidebarPostImpl 231,28,238,100,.scrollup,.scrolldown,7,12,GUIcurrentcheatviewloc,GUIcurrentcheatcursloc,NumCheats,GUIBlankVar,1 GUIPostWinBoxMove 5,22,229,22+12*7,GUIcurrentcheatviewloc,GUIcurrentcheatcursloc,NumCheats,.scrollup,.scrolldown,DisplayGUICheatClick.skipscrol,12DisplayGUICheatClick: GUIBoxVar 5,20,181,110,GUIcurrentcheatwin,0 ; Main Box GUIBoxVar 82,129,173,136,GUIcurrentcheatwin,1 ; Enter Code Box GUIBoxVar 82,140,196,147,GUIcurrentcheatwin,2 ; Description Box ; SlideBar Implementation GUISlidebarImpl 231,28,238,100,GUICStA,12,GUIcurrentcheatviewloc,GUIcurrentcheatcursloc,NumCheats,7.skipscrol cmp byte[GUIcurrentcheatwin],0 jne near .nowin GUIWinControl 5,23,229,21+12*7,GUIBlankVar,GUIcurrentcheatviewloc,NumCheats,22,7,GUIcurrentcheatcursloc,3,7,30.nowin GUIPHoldbutton 5,113,47,124,5 ; Buttons GUIPHoldbutton 52,113,94,124,6 GUIPHoldbutton 99,113,141,124,7 GUIPHoldbutton 146,113,188,124,8 GUIPHoldbutton 212,134,236,145,9 GUIPHoldbutton 193,113,235,124,33 GUIClickCButton5 11,186,byte[AutoLoadCht],1 ; Checkbox retDisplayNetOptnsClick: retguipresstest: xor ebx,ebx mov ecx,256+128+64.a mov byte[pressed+ebx],0 inc ebx dec ecx jnz .a call GUIUnBuffer call DisplayBoxes call DisplayMenu GUIBox 75,95,180,131,160 GUIBox 75,95,180,95,162 GUIBox 75,95,75,131,161 GUIBox 180,95,180,131,159 GUIBox 75,131,180,131,158 GUIOuttext 81,101,guipresstext1,220-15 GUIOuttext 80,100,guipresstext1,220 GUIOuttext 81,111,guipresstext2,220-15 GUIOuttext 80,110,guipresstext2,220 GUIOuttext 81,121,guipresstext3,220-15 GUIOuttext 80,120,guipresstext3,220 call vidpastecopyscr.again call JoyRead; mov dword[pressed+0CCh],0; mov dword[pressed+0CCh+80h],0; mov dword[pressed+0E8h],0; mov dword[pressed+0E8h+80h],0 xor ebx,ebx mov ecx,256+128+64.b cmp byte[pressed+ebx],0 jne .pressedokay inc ebx dec ecx jnz .b jmp .again.pressedokay push ebx xor ebx,ebx mov ecx,256+128+64.a2 cmp byte[pressed+ebx],0 je .pressedokayb mov byte[pressed+ebx],2.pressedokayb inc ebx dec ecx jnz .a2 pop ebx.again2 call Check_Key or al,al jz .nokey call Get_Key jmp .again2.nokey; push ebx; mov eax,0Bh; int 33h; pop ebx retSECTION .dataguipresstext1 db 'ENTER THE KEY',0guipresstext2 db 'OR BUTTON TO USE',0guipresstext3 db '(ESC TO CLEAR)',0SECTION .textguipresstestb: call GUIUnBuffer call DisplayBoxes call DisplayMenu GUIBox 65,80,194,126,160 GUIBox 65,80,194,80,162 GUIBox 65,80,65,126,161 GUIBox 194,80,194,126,159 GUIBox 65,126,194,126,158 GUIOuttext 71,86,guipresstext1,220-15 GUIOuttext 70,85,guipresstext1,220 GUIOuttext 71,96,guipresstext2,220-15 GUIOuttext 70,95,guipresstext2,220 GUIOuttext 71,116,guipresstext3b,220-15 GUIOuttext 70,115,guipresstext3b,220 mov eax,[guipressptr] GUIOuttext 71,106,eax,220-15 mov eax,[guipressptr] GUIOuttext 70,105,eax,220 call vidpastecopyscr mov ecx,8192 call delay.tryagain call JoyRead xor ebx,ebx mov ecx,256+128+64.b2 cmp byte[pressed+ebx],0 jne .tryagain inc ebx dec ecx jnz .b2.again call JoyRead; mov dword[pressed+0CCh],0; mov dword[pressed+0CCh+80h],0; mov dword[pressed+0E8h],0; mov dword[pressed+0E8h+80h],0 xor ebx,ebx mov ecx,256+128+64.b cmp byte[pressed+ebx],0 jne .pressedokay inc ebx dec ecx jnz .b jmp .again.pressedokay.again2 call Check_Key or al,al jz .nokey call Get_Key jmp .again2.nokey cmp ebx,1 je .skip cmp ebx,3Bh je .skip mov eax,[guicpressptr] mov [eax],ebx.skip; push ebx; mov eax,0Bh; int 33h; pop ebx retSECTION .dataguipresstext3b db '(ESC TO SKIP)',0guipresstext4b db 'FOR UP ',0 db 'FOR DOWN ',0 db 'FOR LEFT ',0 db 'FOR RIGHT ',0 db 'FOR START ',0 db 'FOR SELECT ',0 db 'FOR A (RIGHT BUTTON)',0 db 'FOR B (DOWN BUTTON) ',0 db 'FOR X (TOP BUTTON) ',0 db 'FOR Y (LEFT BUTTON) ',0 db 'FOR THE L BUTTON ',0 db 'FOR THE R BUTTON ',0SECTION .bssguipressptr resd 1guicpressptr resd 1SECTION .textDisplayGameOptnsClick: mov dword[keycontrolval],0 ; Shortcut Boxes DGOptnsProcBox 27,23,[KeyBGDisble0] DGOptnsProcBox 27+45,23,[KeyBGDisble1] DGOptnsProcBox 27+45*2,23,[KeyBGDisble2] DGOptnsProcBox 27+45*3,23,[KeyBGDisble3] DGOptnsProcBox 27+45*4,23,[KeySprDisble] DGOptnsProcBox 27,41,[KeyDisableSC0] DGOptnsProcBox 27+45,41,[KeyDisableSC1] DGOptnsProcBox 27+45*2,41,[KeyDisableSC2] DGOptnsProcBox 27+45*3,41,[KeyDisableSC3] DGOptnsProcBox 34+45*4,41,[KeyVolUp] DGOptnsProcBox 27,50,[KeyDisableSC4] DGOptnsProcBox 27+45,50,[KeyDisableSC5] DGOptnsProcBox 27+45*2,50,[KeyDisableSC6] DGOptnsProcBox 27+45*3,50,[KeyDisableSC7] DGOptnsProcBox 34+45*4,50,[KeyVolDown] DGOptnsProcBox 8+25,70,[KeyQuickLoad] DGOptnsProcBox 8+57+26,70,[KeyQuickRst] DGOptnsProcBox 8+114+20,70,[KeyQuickExit] DGOptnsProcBox 8+114+78,70,[KeyQuickClock] DGOptnsProcBox 8+25,80,[KeyQuickChat] DGOptnsProcBox 8+57+45,80,[KeyQuickSnapShot] DGOptnsProcBox 8+108+70,80,[KeyQuickSaveSPC] DGOptnsProcBox 78,100,[KeyUsePlayer1234] DGOptnsProcBox 78,110,[KeyResetAll] DGOptnsProcBox 78,120,[KeyDisplayFPS]%ifndef __MSDOS__ DGOptnsProcBox 78,130,[KeyDisplayBatt]%endif DGOptnsProcBox 191,100,[KeyNewGfxSwt] DGOptnsProcBox 191,110,[KeyWinDisble] DGOptnsProcBox 191,120,[KeyOffsetMSw] DGOptnsProcBox 191,130,[KeyIncreaseGamma] DGOptnsProcBox 191,140,[KeyDecreaseGamma] retDisplayGUIOptnsClick: mov eax,[GUImouseposx] sub eax,[GUIwinposx+10*4]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -