⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 guikeys.inc

📁 linux下的任天堂模拟器代码。供大家参考。
💻 INC
📖 第 1 页 / 共 4 页
字号:
  push edx%rep %0  xor edx,edx  mov eax,[%1]  div dword[%1+4]  mov [%1],edx  %rotate 1  or [%1],eax  cmp eax,1  je %%exit  %rotate -1  sub eax,[%1]  adc dword[%1],0  jnz %%exit  %rotate 1%endrep%%exit  pop edx%endmacroGUIInputKeys:  ToUpperASM  cmp dh,9  jne .notab  KeyTabInc GUIInputTabs  mov byte[GUIFreshInputSelect],1.notab  GUIKeyCheckbox GameSpecificInput,'G'  GUIKeyCheckbox AllowUDLR,'A'  GUIKeyCheckbox Turbo30hz,'T'  cmp dh,'U'  jne .nousepl34  xor byte[pl12s34],1  mov byte[MultiTap],1  cmp byte[pl12s34],1  je .nomtap  cmp byte[pl3contrl],0  jne .mtap  cmp byte[pl4contrl],0  jne .mtap  cmp byte[pl5contrl],0  jne .mtap.nomtap  mov byte[MultiTap],0.mtap.nousepl34%ifdef __MSDOS__  GUIKeyCheckbox SidewinderFix,'S'  cmp dh,'J'  jne .nop209  cmp byte[cplayernum],0  jne .nopl1  GUIKeyCheckbox pl1p209,'J'  jmp .nopl5.nopl1  cmp byte[cplayernum],1  jne .nopl2  GUIKeyCheckbox pl2p209,'J'  jmp .nopl5.nopl2  cmp byte[cplayernum],2  jne .nopl3  GUIKeyCheckbox pl3p209,'J'  jmp .nopl5.nopl3  cmp byte[cplayernum],3  jne .nopl4  GUIKeyCheckbox pl4p209,'J'  jmp .nopl5.nopl4  cmp byte[cplayernum],4  jne .nopl5  GUIKeyCheckbox pl5p209,'J'.nopl5  call SetDevice.nop209%endif  retGUITCPIPKeys:  retGUIOptionKeys:  ToUpperASM  cmp byte[ShowMMXSupport],1  jne .nommxcopy  GUIKeyCheckbox MMXSupport,'M'          ; Checkboxes.nommxcopy  GUIKeyButtonHole ScreenShotFormat,0,'P'%ifndef NO_PNG  GUIKeyButtonHole ScreenShotFormat,1,'G'%endif  GUIKeyCheckbox newengen, 'N'  GUIKeyCheckbox FPSAtStart,'F'  GUIKeyCheckbox TimerEnable,'C'  GUIKeyCheckbox ClockBox,'X'  GUIKeyCheckbox TwelveHourClock,'1'  GUIKeyCheckbox bgfixer,'A'  GUIKeyCheckbox SmallMsgText,'S'  GUIKeyCheckbox AutoPatch,'I'  GUIKeyCheckbox RomInfo,'R'  GUIKeyCheckbox DisplayInfo,'W'  GUIKeyCheckbox GUIEnableTransp,'T'%ifdef __WIN32__  GUIKeyCheckbox PauseFocusChange,'B'  GUIKeyCheckbox HighPriority,'O'  pushad  call CheckPriority  popad  GUIKeyCheckbox DisableScreenSaver,'D'  pushad  call CheckScreenSaver  popad%endif  retGUIAboutKeys:  ToUpperASM  cmp dh,'E'  jne .noeegg  xor byte[EEgg],1.noeegg  retGUISaveKeys:  ToUpperASM  GUIKeyCheckbox AutoIncSaveSlot,'I' ; Checkboxes  GUIKeyCheckbox nosaveSRAM,'D'  GUIKeyCheckbox SRAMSave5Sec,'C'  GUIKeyCheckbox LatestSave,'S'  GUIKeyCheckbox AutoState,'A'  GUIKeyCheckbox SRAMState,'L'  GUIKeyCheckbox PauseLoad,'P'  GUIKeyCheckbox PauseRewind,'R'  retGUISpeedKeys:  ToUpperASM  GUIKeyCheckbox FastFwdToggle,'T'   ; Checkbox  cmp dh,'A'                 ; Framerate Checkboxes  jne .noautofr  cmp byte[frameskip],0  ; 0 = autoframerate / 1-10 = frameskip 0-9  je .zero  mov byte[frameskip],0  jmp .notzero.zero  mov byte[FPSOn],0  mov byte[frameskip],1.notzero.noautofr  retGUIAddonKeys:  ToUpperASM  GUIKeyButtonHole device1,0,'G'             ;Radio Buttons  GUIKeyButtonHole device1,1,'M'  GUIKeyButtonHole device2,0,'A'  GUIKeyButtonHole device2,1,'O'  GUIKeyButtonHole device2,2,'S'  GUIKeyButtonHole device2,3,'1'  GUIKeyButtonHole device2,4,'2'  GUIKeyCheckbox mouse1lh,'L'             ; Checkboxes  GUIKeyCheckbox mouse2lh,'E'  retGUIChipKeys:  ToUpperASM  GUIKeyCheckbox nssdip1,'1'             ; Checkboxes  GUIKeyCheckbox nssdip2,'2'  GUIKeyCheckbox nssdip3,'3'  GUIKeyCheckbox nssdip4,'4'  GUIKeyCheckbox nssdip5,'5'  GUIKeyCheckbox nssdip6,'6'  retGUIGUIOptnsKeys:  ToUpperASM  GUIKeyCheckbox mousewrap,'M'            ; Checkboxes  GUIKeyCheckbox mouseshad,'S'  GUIKeyCheckbox esctomenu,'G'  GUIKeyCheckbox savewinpos,'W'  GUIKeyCheckbox GUIRClick,'C'  GUIKeyCheckbox JoyPad1Move,'U'  GUIKeyCheckbox newfont,'O'  GUIKeyCheckbox lhguimouse,'/'  cmp dh,'F'  jne .guioptn8  xor byte[FilteredGUI],1%ifdef __MSDOS__  call DOSClearScreen%endif  pushad%ifdef __OPENGL__  cmp byte[cvidmode],5  jl near .skipinit  pushad  call drawscreenwin  call initwinvideo  popad.skipinit%endif  call Clear2xSaIBuffer  popad.guioptn8  GUIKeyButtonHole GUIEffect,0,'E'   ; Start From Radio Buttons  GUIKeyButtonHole GUIEffect,1,'N'  GUIKeyButtonHole GUIEffect,2,'A'  GUIKeyButtonHole GUIEffect,3,'B'  GUIKeyButtonHole GUIEffect,4,'R'  GUIKeyButtonHole GUIEffect,5,'K'%ifdef __WIN32__  GUIKeyCheckbox MouseWheel,'H'  GUIKeyCheckbox TrapMouseCursor,'P'  GUIKeyCheckbox AlwaysOnTop,'T'  GUIKeyCheckbox SaveMainWindowPos,'V'  GUIKeyCheckbox AllowMultipleInst,'L'%endifretGUIVideoKeys:%ifndef __MSDOS__  call GUIPathKeys%endif  cmp dh,9  jne near .tabdone  cmp byte[NTSCFilter],0  je near .nontsc  movzx eax,byte[cvidmode]  cmp byte[GUINTVID+eax],0  je .nontsc  KeyTabInc GUIVideoTabs,GUIVntscTab  jmp .tabdone.nontsc  KeyTabInc GUIVideoTabs.tabdone  ToUpperASM  xor eax,eax  cmp dword[GUIVideoTabs],1  jne near .notmodestab;   "Home"%ifdef __UNIXSDL__  cmp dl,89  je .yeshome  cmp dword[numlockptr],1  je .nohome  cmp dl,71  jne .nohome.yeshome%else  cmp dl,71  jne .nohome%endif  mov dword[GUIcurrentvideocursloc],0  mov dword[GUIcurrentvideoviewloc],0.nohome;   "End"%ifdef __UNIXSDL__  cmp dl,95  je .yesendp  cmp dword[numlockptr],1  je .noendp  cmp dl,79  jne .noendp.yesendp%else  cmp dl,79  jne .noendp%endif  mov eax,[NumVideoModes]  dec eax  mov [GUIcurrentvideocursloc],eax  sub eax,19  mov [GUIcurrentvideoviewloc],eax  test dword[GUIcurrentvideoviewloc],8000000h  jz .noendp  mov dword[GUIcurrentvideoviewloc],0.noendp;   "Up"%ifdef __UNIXSDL__  cmp dl,90  je .up  cmp dword[numlockptr],1  je .noup  cmp dl,72  jne .noup%else  cmp dl,72  jne .noup%endif.up  cmp dword[GUIcurrentvideocursloc],0  je .noup  mov ebx,[GUIcurrentvideocursloc]  cmp [GUIcurrentvideoviewloc],ebx  jne .noviewdec  dec dword[GUIcurrentvideoviewloc].noviewdec  dec dword[GUIcurrentvideocursloc].noup;   "Down"%ifdef __UNIXSDL__  cmp dl,96  je .yesdown  cmp dword[numlockptr],1  je .nodown  cmp dl,80  jne .nodown.yesdown%else  cmp dl,80  jne .nodown%endif  mov ebx,[GUIcurrentvideocursloc]  inc ebx  cmp ebx,[NumVideoModes]  je .nodown  inc dword[GUIcurrentvideocursloc]  sub ebx,20  cmp ebx,[GUIcurrentvideoviewloc]  jne .nodown  inc dword[GUIcurrentvideoviewloc].nodown;   "PageUp"%ifdef __UNIXSDL__  cmp dl,91  je .yespageup  cmp dword[numlockptr],1  je .nopageup  cmp dl,73  jne .nopageup.yespageup%else  cmp dl,73  jne .nopageup%endif  sub dword[GUIcurrentvideoviewloc],20  sub dword[GUIcurrentvideocursloc],20  test dword[GUIcurrentvideoviewloc],8000000h  jz .posv  mov dword[GUIcurrentvideoviewloc],0.posv  test dword[GUIcurrentvideocursloc],8000000h  jz .posc  mov dword[GUIcurrentvideocursloc],0.posc.nopageup;   "PageDown"%ifdef __UNIXSDL__  cmp dl,97  je .yespagedn  cmp dword[numlockptr],1  je .nopagedown  cmp dl,81  jne .nopagedown.yespagedn%else  cmp dl,81  jne .nopagedown%endif  add dword[GUIcurrentvideoviewloc],20  add dword[GUIcurrentvideocursloc],20  mov ebx,[NumVideoModes]  dec ebx  cmp dword[GUIcurrentvideocursloc],ebx  jb .poscd  mov [GUIcurrentvideocursloc],ebx.poscd  sub ebx,19  cmp dword[GUIcurrentvideoviewloc],ebx  jl .posvd  test ebx,8000000h  jz .noneg  mov ebx,0.noneg  mov [GUIcurrentvideoviewloc],ebx.posvd.nopagedown; "Return"  cmp dl,13  jne .noreturn  mov byte[GUICBHold],4.noreturn.notmodestab  cmp dword[GUIVideoTabs],2  jne near .notfilterstab%ifdef __MSDOS__  cmp byte[smallscreenon],1  je .noquarterscanlines  cmp byte[ScreenScale],1  je .nohq4x%endif  cmp dh,'I'  jne .nointerpolation  xor eax,eax  mov al,[cvidmode]%ifdef __OPENGL__  cmp byte[GUIBIFIL+eax],0  je .nobilinearfilter  xor byte[BilinearFilter],1  FilterExcl2 NTSCFilter  pushad  call drawscreenwin  call initwinvideo  call Clear2xSaIBuffer  popad  jmp .nointerpolation.nobilinearfilter%elifdef __MSDOS__  cmp byte[GUIEAVID+eax],0  jne .interpolation%endif%ifdef __WIN32__  cmp byte[GUIDSIZE+eax],0%else  cmp byte[GUII2VID+eax],0%endif  je .nointerpolation.interpolation  xor byte[antienab],1  jz near .nointerpolation  FilterExcl2 En2xSaI,hqFilter,NTSCFilter.nointerpolation  cmp dh,'N'  jne .nontscfilter  xor ebx,ebx  mov bl,[cvidmode]  cmp byte[GUINTVID+ebx],0  je .nontscfilter  xor byte[NTSCFilter],1  jz .nontscfilter  FilterExcl2 En2xSaI,hqFilter,scanlines,antienab%ifdef __OPENGL__  FilterExcl2 BilinearFilter%endif%ifdef __WIN32__  cmp byte[NTSCFilter],0  je .noforce4_3  mov byte[Keep4_3Ratio],1.noforce4_3%endif%ifndef __MSDOS__  pushad  call NTSCFilterInit  popad%endif.nontscfilter  xor ebx,ebx  mov bl,[cvidmode]%ifdef __MSDOS__  cmp byte[GUI2xVID+ebx],0%else  cmp byte[GUIDSIZE+ebx],0%endif  je near .nosuper2xsai  cmp dh,'S'  jne .no2xsai  mov eax,1  jmp .yesfilter.no2xsai  cmp dh,'E'  jne .nosupereagle  mov eax,2  jmp .yesfilter.nosupereagle  cmp dh,'P'  jne .nosuper2xsai  mov eax,3.yesfilter  pushad  call Clear2xSaIBuffer  popad  FilterExcl2 hqFilter,scanlines,antienab,NTSCFilter  GUIkeystoggleoptn byte[En2xSaI],al.nosuper2xsai  cmp dh,'Q'  jne .nohqfilter  xor ebx,ebx  mov bl,[cvidmode]  cmp byte[GUIHQ2X+ebx],0  jne .hqfilter%ifndef __MSDOS__  cmp byte[GUIHQ3X+ebx],0  jne .hqfilter  cmp byte[GUIHQ4X+ebx],0  jne .hqfilter%endif  jmp .nohqfilter.hqfilter  pushad  call Clear2xSaIBuffer  popad  xor byte[hqFilter],1  jz .nohqfilter  FilterExcl2 scanlines,En2xSaI,antienab,NTSCFilter.nohqfilter%ifndef __MSDOS__  cmp dh,'X'  jne .nohq2x  cmp byte[hqFilter],0  je .nohq2x  xor ebx,ebx  mov bl,[cvidmode]  cmp byte[GUIHQ2X+ebx],0  je .nohq2x  pushad  call Clear2xSaIBuffer  popad  GUIKeyButtonHole hqFilterlevel,2,'X'.nohq2x  cmp dh,'3'  jne .nohq3x  cmp byte[hqFilter],0  je .nohq3x  xor ebx,ebx  mov bl,[cvidmode]  cmp byte[GUIHQ3X+ebx],0  je .nohq3x  pushad  call Clear2xSaIBuffer  popad  GUIKeyButtonHole hqFilterlevel,3,'3'.nohq3x  cmp dh,'4'  jne .nohq4x  cmp byte[hqFilter],0  je .nohq4x  xor ebx,ebx  mov bl,[cvidmode]  cmp byte[GUIHQ4X+ebx],0  je .nohq4x  pushad  call Clear2xSaIBuffer  popad  GUIKeyButtonHole hqFilterlevel,4,'4'%endif.nohq4x  xor eax,eax  mov al,[cvidmode]%ifdef __MSDOS__  cmp byte[GUISLVID+eax],0%else  cmp byte[GUIDSIZE+eax],0%endif  je .nofullscanlines  GUIKeyButtonHole scanlines,0,'O'  cmp dh,'F'  jne .nofullscanlines  FilterExcl2 En2xSaI,hqFilter,NTSCFilter  pushad%ifdef __MSDOS__  call DOSClearScreen  cmp byte[cvidmode],2  ;modeQ  je .refresh  cmp byte[cvidmode],5  jne .nomodex.refresh  mov byte[cbitmode],1  call initvideo2  mov byte[cbitmode],0  call GUISetPal.nomodex%endif  popad  GUIKeyButtonHole scanlines,1,'F'.nofullscanlines%ifdef __MSDOS__  cmp byte[ScreenScale],1  je .noquarterscanlines%endif  xor eax,eax  mov al,[cvidmode]%ifdef __MSDOS__  cmp byte[GUIHSVID+eax],0%else  cmp byte[GUIDSIZE+eax],0%endif  je near .noquarterscanlines  cmp dh,'5'  jne .nohalfscanlines  FilterExcl2 En2xSaI,hqFilter,NTSCFilter%ifdef __MSDOS__  call DOSClearScreen%endif  GUIKeyButtonHole scanlines,3,'5'.nohalfscanlines  cmp dh,'2'  jne .noquarterscanlines  FilterExcl2 En2xSaI,hqFilter,NTSCFilter%ifdef __MSDOS__  call DOSClearScreen%endif  GUIKeyButtonHole scanlines,2,'2'.noquarterscanlines  cmp dh,'G'  jne .nograyscale  xor byte[GrayscaleMode],1.nograyscale  cmp dh,'H'  jne .nohiresmode7  xor ebx,ebx  mov bl,[cvidmode]  cmp byte[GUIM7VID+ebx],0  je .nohiresmode7  xor byte[Mode7HiRes16b],1.nohiresmode7%ifndef __UNIXSDL__  cmp dh,'V'  jne .novsync  xor byte[vsyncon],1%ifdef __WIN32__  pushad  call initDirectDraw  call Clear2xSaIBuffer  popad%else  jz .novsync  FilterExcl2 Triplebufen%endif.novsync%endif%ifndef __UNIXSDL__  cmp dh,'T'  jne .notriplebuffer  xor eax,eax  mov al,[cvidmode]%ifdef __WIN32__  cmp byte[GUIWFVID+eax],0  je near .notriplebuffer  xor byte[TripleBufferWin],1  pushad  call initDirectDraw  call Clear2xSaIBuffer  popad%else  cmp byte[GUITBVID+ebx],0  je near .notriplebuffer  xor byte[Triplebufen],1  jz .notriplebuffer  FilterExcl2 vsyncon%endif.notriplebuffer%endif%ifndef __MSDOS__  cmp dh,'R'  jne .nokeep4_3  xor ebx,ebx  mov bl,[cvidmode]  cmp byte[GUIKEEP43+ebx],0  je near .nokeep4_3  xor byte[Keep4_3Ratio],1  pushad  call initwinvideo  call Clear2xSaIBuffer  popad.nokeep4_3%endif%ifdef __MSDOS__  cmp dh,'M'  jne .nosmallscreen  xor eax,eax  mov al,[cvidmode]  cmp byte[GUISSVID+eax],0  je .nosmallscreen  xor byte[smallscreenon],1  FilterExcl2 ScreenScale,antienab,En2xSaI,scanlines  DOSClearScreenKey.nosmallscreen  cmp dh,'C'  jne .nofullscreen  xor eax,eax  mov al,[cvidmode]  cmp byte[GUIFSVID+eax],0  je .nofullscreen  xor byte[ScreenScale],1  FilterExcl2 smallscreenon,antienab,En2xSaI  DOSClearScreenKey.nofullscreen%endif.notfilterstab  cmp dword[GUIVntscTab],1  jl .notntsctab  cmp dh,'B'  jne .noblend  xor byte[NTSCBlend],1.noblend  cmp dh,'R'  jne .norefresh  xor byte[NTSCRef],1.norefresh.notntsctab  retGUISoundKeys:  ToUpperASM  cmp dh,'E'  jne .notenablesound  xor byte[soundon],1%ifdef __WIN32__  pushad  call reInitSound  popad%endif.notenablesound  GUIKeyCheckbox StereoSound,'S'  GUIKeyCheckbox RevStereo,'V'  GUIKeyCheckbox Surround,'M'  GUIKeyCheckbox SPCDisable,'D'%ifdef __MSDOS__  GUIKeyCheckbox Force8b,'F'%endif%ifdef __WIN32__  GUIKeyCheckbox PrimaryBuffer,'P'%endif  cmp dh,'R'                 ; Sampling Rate  jne .notsrate  mov eax,[SoundQuality]  mov al,[.sampratenext+eax]  mov [SoundQuality],al.notsrate  GUIKeyButtonHole SoundInterpType,0,'N'  GUIKeyButtonHole SoundInterpType,1,'G'  GUIKeyButtonHole SoundInterpType,2,'C'  cmp byte[MMXSupport],0  je .no8ptinterp  GUIKeyButtonHole SoundInterpType,3,'8'.no8ptinterp

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -