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

📄 guiwindp.inc

📁 linux下的任天堂模拟器代码。供大家参考。
💻 INC
📖 第 1 页 / 共 5 页
字号:
;Copyright (C) 1997-2007 ZSNES Team ( zsKnight, _Demo_, pagefault, Nach );;http://www.zsnes.com;http://sourceforge.net/projects/zsnes;https://zsnes.bountysource.com;;This program is free software; you can redistribute it and/or;modify it under the terms of the GNU General Public License;version 2 as published by the Free Software Foundation.;;This program is distributed in the hope that it will be useful,;but WITHOUT ANY WARRANTY; without even the implied warranty of;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the;GNU General Public License for more details.;;You should have received a copy of the GNU General Public License;along with this program; if not, write to the Free Software;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.EXTSYM VERSION_STR,placedateSECTION .dataNEWSYM mencoderExists, db 0NEWSYM lameExists, db 0SECTION .text%macro DrawGUILineSc 2  mov dword[GUIcolscaleval],%2  mov edx,%1  push eax  push ecx  call GUIHLines  pop ecx  pop eax  inc ebx%endmacro%macro DrawGUILine 0  push eax  push ecx  call GUIHLine  pop ecx  pop eax  inc ebx%endmacro%macro DrawTitleBar 0  mov edx,46+157+6  sub edx,[GUIWincoladd]  DrawGUILine  mov edx,42+157+4+4  sub edx,[GUIWincoladd]  DrawGUILine  dec edx  DrawGUILine  dec edx  DrawGUILine  dec edx  DrawGUILine  dec edx  DrawGUILine  dec edx  DrawGUILine  dec edx  DrawGUILine  dec edx  DrawGUILine  mov edx,38+157+4  sub edx,[GUIWincoladd]  DrawGUILine  sub ebx,10  mov edx,44+157+4  sub edx,[GUIWincoladd]  mov esi,9  push ecx  mov ecx,eax%%loop2  DrawGUILine  dec esi  jnz %%loop2  pop ecx  sub ebx,8  mov edx,40+157+4  sub edx,[GUIWincoladd]  mov esi,9  push eax  mov eax,ecx%%loop3  DrawGUILine  dec esi  jnz %%loop3  pop eax%endmacro%macro drawshadow2 3  mov edx,[GUIwinposy+%1*4]  cmp edx,223  jg near .noshadow  cmp edx,0  jge .noshadclip  mov edx,0.noshadclip  mov ebx,edx  add ebx,%3  add ebx,9  cmp ebx,0  jl near .noshadow  cmp ebx,223  jng .noshadclip2  mov ebx,223.noshadclip2  sub ebx,edx  inc ebx  mov edi,edx  shl edi,8  mov eax,edx  shl eax,5  add edi,eax  mov edx,[GUIwinposx+%1*4]  mov ecx,edx  cmp edx,255  jg .noshadow  cmp edx,-3  jnl .noshadclip3  mov edx,-3.noshadclip3  add ecx,%2  cmp ecx,0  jl .noshadow  cmp ecx,255  jng .noshadclip4  mov ecx,255.noshadclip4  sub ecx,edx  inc ecx  add edi,edx  add edi,[vidbuffer]  add edi,288*3+3+16  call GUIDrawShadow2.noshadow%endmacro%macro GUIDrawWindowBox 2  mov dword[GUIWincoladd],4  mov dword[GUIWincol],148+10  cmp byte[cwindrawn],1  jne .noone  mov dword[GUIWincol],148+5.noone  cmp byte[cwindrawn],0  jne .nozero  mov dword[GUIWincoladd],0  mov dword[GUIWincol],148.nozero  drawshadow2 %1,dword[GUIwinsizex+%1*4],dword[GUIwinsizey+%1*4]  mov eax,[GUIwinposx+%1*4]  mov ebx,[GUIwinposy+%1*4]  mov ecx,eax  add ecx,dword[GUIwinsizex+%1*4]  DrawTitleBar  mov esi,[GUIwinsizey+%1*4]  dec esi  mov edx,[GUIWincol]  add edx,2.loop  DrawGUILine  dec esi  jnz .loop  mov edx,[GUIWincol]  DrawGUILine  mov eax,[GUIwinposx+%1*4]  mov ebx,[GUIwinposy+%1*4]  add ebx,10  mov ecx,eax  mov esi,[GUIwinsizey+%1*4]  mov edx,[GUIWincol]  add edx,3  dec esi.loop2  DrawGUILine  dec esi  jnz .loop2  mov eax,[GUIwinposx+%1*4]  mov ebx,[GUIwinposy+%1*4]  add ebx,10  add eax,dword[GUIwinsizex+%1*4]  mov ecx,eax  mov esi,[GUIwinsizey+%1*4]  mov dl,[GUIWincol]  inc dl.loop3  DrawGUILine  dec esi  jnz .loop3  mov ebx,[GUIwinposy+%1*4]  add ebx,3  mov edx,[GUIwinposx+%1*4]  add edx,3  mov byte[GUItextcolor],184  GUIOuttextwin %2  mov ebx,[GUIwinposy+%1*4]  add ebx,2  mov edx,[GUIwinposx+%1*4]  add edx,2  mov byte[GUItextcolor],220  cmp byte[GUIWincoladd],0  je .zero2  sub byte[GUItextcolor],6.zero2  GUIOuttextwin %2  mov eax,[GUIwinposx+%1*4]  mov ebx,[GUIwinposy+%1*4]  add eax,dword[GUIwinsizex+%1*4]  sub eax,10  GUIDisplayIcon GUIIconDataClose%endmacro%macro DrawGUIWinBox 6  mov eax,[GUIwinposx+%1*4]  mov ebx,[GUIwinposy+%1*4]  add eax,%2  add ebx,%3  mov ecx,eax  add ecx,%4-%2+1  mov dl,%6  mov esi,%5-%3+1%%loop  DrawGUILine  dec esi  jnz %%loop%endmacro%macro DrawGUIWinBox2 5  mov eax,[GUIwinposx+%1*4]  mov ecx,eax  add eax,%2  add ecx,%3+1  mov dl,%5  cmp byte[GUIWincoladd],0  je %%zero  inc dl%%zero  mov esi,%4  add ebx,dword[GUIwinposy+%1*4]%%loop  DrawGUILine  dec esi  jnz %%loop%endmacro%macro DrawGUIWinBox3 6  mov ecx,%4  mov eax,[GUIwinposx+%1*4]  mov ebx,[GUIwinposy+%1*4]  add ecx,eax  add eax,%2  add ebx,%3  inc ecx  mov dl,%6  mov esi,%5-%3+1%%loop  DrawGUILine  dec esi  jnz %%loop%endmacro%macro DrawGUIButton 9  mov dl,[GUItextcolor]  sub dl,5  cmp byte[GUICBHold],%7  jne %%noa  sub dl,13%%noa  DrawGUIWinBox %1,%2,%3,%4,%3,dl  sub dl,3  cmp byte[GUICBHold],%7  jne %%nob  add dl,5%%nob  DrawGUIWinBox %1,%2,%3,%2,%5,dl  sub dl,3  cmp byte[GUICBHold],%7  jne %%noc  add dl,5%%noc  DrawGUIWinBox %1,%2+1,%3+1,%4-2,%5-2,dl  sub dl,3  cmp byte[GUICBHold],%7  jne %%nod  add dl,5%%nod  DrawGUIWinBox %1,%4+1,%3+1,%4-2,%5-2,dl  sub dl,3  cmp byte[GUICBHold],%7  jne %%noe  add dl,5%%noe  DrawGUIWinBox %1,%2,%5,%4-1,%5,dl  cmp byte[GUICBHold],%7  je near %%no2  sub byte[GUItextcolor],15  GUIOuttextwin2 %1,%2+5+%8,%3+4+%9,%6  add byte[GUItextcolor],15  GUIOuttextwin2 %1,%2+4+%8,%3+3+%9,%6  jmp %%yes%%no2  sub byte[GUItextcolor],18  GUIOuttextwin2 %1,%2+6+%8,%3+5+%9,%6  add byte[GUItextcolor],15  GUIOuttextwin2 %1,%2+5+%8,%3+4+%9,%6  add byte[GUItextcolor],3%%yes%endmacro%macro GUIOuttextwin2load 3  mov eax,[eax]  mov [cloadnpos],eax  inc dword[cloadnposb]  mov byte[GUItextcolor],223  GUIOuttextwin2l %1,%2,%3,[cloadnpos]  mov byte[GUItextcolor],221  cmp byte[GUIWincoladd],0  je %%zero  mov byte[GUItextcolor],222%%zero  GUIOuttextwin2l %1,%2-1,%3-1,[cloadnpos]  add dword[cloadnpos],32  dec dword[cloadnleft]%endmacro%macro GUIOuttextwinloadfile 3  test dword[cloadnleft],80000000h  jnz near %%skip  mov eax,[cloadnposb]  cmp eax,[GUIfileentries]  jae near %%skip  mov eax,[cloadnposb]  shl eax,2  add eax,[selected_names]  GUIOuttextwin2load  %1,%2,%3%%skip%endmacro%macro GUIOuttextwinloaddir 3  test dword[cloadnleft],80000000h  jnz near %%skip  mov eax,[cloadnposb]  cmp eax,[GUIdirentries]  jae near %%skip  mov eax,[cloadnposb]  shl eax,2  add eax,[d_names]  add eax,8  GUIOuttextwin2load  %1,%2,%3%%skip%endmacro%macro GUIDisplayButtonHoleTu 7  mov dword[GUITemp],GUIIconDataButtonHole  cmp %4,%5  jne %%nofill  mov dword[GUITemp],GUIIconDataButtonFill%%nofill  GUIDisplayIconWin %1,%2,%3,[GUITemp]  GUIDisplayTextu %1,%2+15,%3+3,%6,%7%endmacro%macro GUIDisplayButtonHole 5  mov dword[GUITemp],GUIIconDataButtonHole  cmp %4,%5  jne %%nofill  mov dword[GUITemp],GUIIconDataButtonFill%%nofill  GUIDisplayIconWin %1,%2,%3,[GUITemp]%endmacro%macro GUIDisplayText 4                   ; Text&Shadow  mov byte[GUItextcolor],202  cmp byte[GUIWincoladd],0  je %%text  mov byte[GUItextcolor],196%%textGUIOuttextwin2 %1,%2,%3,%4  add byte[GUItextcolor],15GUIOuttextwin2 %1,%2-1,%3-1,%4%endmacro%macro GUIDisplayTextY 4                  ; Yellow Text&Shadow  mov al,[GUIWincol]  mov [GUItextcolor],al  GUIOuttextwin2 %1,%2,%3,%4  mov byte[GUItextcolor],163  cmp byte[GUIWincoladd],0  je %%texty  mov byte[GUItextcolor],164%%texty  GUIOuttextwin2 %1,%2-1,%3-1,%4%endmacro%macro GUIDisplayTextu 5                  ; Text&Shadow With Underline  mov byte[GUItextcolor],202  cmp byte[GUIWincoladd],0  je %%textu  mov byte[GUItextcolor],196%%textuGUIOuttextwin2u %1,%2,%3,%4,%5  add byte[GUItextcolor],15GUIOuttextwin2 %1,%2-1,%3-1,%4%endmacro%macro GUIDisplayTextG 4                  ; Green Text&Shadow  mov byte[GUItextcolor],223  GUIOuttextwin2 %1,%2,%3,%4  mov byte[GUItextcolor],221  cmp byte[GUIWincoladd],0  je %%zero  mov byte[GUItextcolor],222%%zero  GUIOuttextwin2 %1,%2-1,%3-1,%4%endmacro%macro GUIDisplayCheckboxP 4              ; Toggled Checkbox (Plain, no text)  mov dword[GUITemp],GUIIconDataCheckBoxUC  cmp byte[%4],0  je %%nocheckbox  mov dword[GUITemp],GUIIconDataCheckBoxC%%nocheckbox  GUIDisplayIconWin %1,%2,%3,[GUITemp]%endmacro%macro GUIDisplayCheckbox 5               ; Toggled Checkbox (Text)  mov dword[GUITemp],GUIIconDataCheckBoxUC  cmp byte[%4],0  je %%nocheckbox  mov dword[GUITemp],GUIIconDataCheckBoxC%%nocheckbox  GUIDisplayIconWin %1,%2,%3,[GUITemp]  GUIDisplayText %1,%2+15,%3+5,%5%endmacro%macro GUIDisplayCheckboxTn 6             ; Variable Checkbox (Text)  mov dword[GUITemp],GUIIconDataCheckBoxUC  cmp byte[%4],%5  jne %%nocheckbox  mov dword[GUITemp],GUIIconDataCheckBoxC%%nocheckbox  GUIDisplayIconWin %1,%2,%3,[GUITemp]  GUIDisplayText %1,%2+15,%3+5,%6%endmacro%macro GUIDisplayCheckboxu 6              ; Toggled Checkbox (Text Underline)  mov dword[GUITemp],GUIIconDataCheckBoxUC  cmp byte[%4],0  je %%nocheckbox  mov dword[GUITemp],GUIIconDataCheckBoxC%%nocheckbox  GUIDisplayIconWin %1,%2,%3,[GUITemp]  GUIDisplayTextu %1,%2+15,%3+5,%5,%6%endmacro%macro GUIDisplayCheckboxun 7             ; Set Var. Checkbox (Text Underline)  mov dword[GUITemp],GUIIconDataCheckBoxUC  cmp byte[%4],%5  jne %%nocheckbox  mov dword[GUITemp],GUIIconDataCheckBoxC%%nocheckbox  GUIDisplayIconWin %1,%2,%3,[GUITemp]  GUIDisplayTextu %1,%2+15,%3+5,%6,%7%endmacro%macro GUIDisplayCheckboxPn 5             ; Set Var. Checkbox  mov dword[GUITemp],GUIIconDataCheckBoxUC  cmp byte[%4],%5  jne %%nocheckbox  mov dword[GUITemp],GUIIconDataCheckBoxC%%nocheckbox  GUIDisplayIconWin %1,%2,%3,[GUITemp]%endmacro%macro GUIDisplayBBoxS 6                   ; Black Box W/Border  mov dword[GUIWincol],148+10              ; Minus right side  cmp byte[cwindrawn],1  jne %%noone  mov dword[GUIWincol],148+5%%noone  cmp byte[cwindrawn],0  jne %%nozero  mov dword[GUIWincol],148%%nozero  DrawGUIWinBox %1,%2,%3,%4,%5,%6  mov dl,[GUIWincol]  DrawGUIWinBox %1,%2,%3-3+2,%4,%3+1,dl  mov dl,[GUIWincol]  inc dl  DrawGUIWinBox %1,%2-1,%3,%2,%5,dl  mov dl,[GUIWincol]  add dl,4  DrawGUIWinBox %1,%2,%5+1,%4,%5-1,dl%endmacro%macro GUIDisplayBBox 6                     ; Black Box W/Border  mov dword[GUIWincol],148+10  cmp byte[cwindrawn],1  jne %%noone  mov dword[GUIWincol],148+5%%noone  cmp byte[cwindrawn],0  jne %%nozero  mov dword[GUIWincol],148%%nozero  DrawGUIWinBox %1,%2,%3,%4,%5,%6  mov dl,[GUIWincol]  DrawGUIWinBox %1,%2,%3-3+2,%4,%3+1,dl  mov dl,[GUIWincol]  inc dl  DrawGUIWinBox %1,%2-1,%3,%2,%5,dl  mov dl,[GUIWincol]  add dl,4  DrawGUIWinBox %1,%2,%5+1,%4,%5-1,dl  mov dl,[GUIWincol]  add dl,3  DrawGUIWinBox %1,%4+2,%3,%4-3,%5,dl%endmacro%macro SetVidbufLoc 0  mov esi,ebx  mov eax,ebx  shl esi,8  shl eax,5  add esi,eax  add esi,16  add esi,[vidbuffer]%endmacro%macro GUIDrawTArea 1 ; win #id

⌨️ 快捷键说明

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