📄 newgfx16.mac
字号:
;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.; drawtileng16b%macro ngsub 2 test dword[BGMS1+ebx*2+1],%1 jz near %2 test dword[BGMS1+ebx*2],%1 jnz near %2 test byte[FillSubScr+ebx],1 jnz near %2%endmacro%macro ngmain 2 test dword[BGMS1+ebx*2],%1 jnz %%yesmain test byte[FillSubScr+ebx],1 jz near %2 test dword[BGMS1+ebx*2+1],%1 jz near %2%%yesmain%endmacro%macro sprdrawpra16bng 1 or al,al jz %%skip add al,ch test byte[sprpriodata+ebx-%1+16],dl jnz %%skip mov ax,[ebp+eax*2] mov [edi+ebx*2-%1*2],ax xor eax,eax or byte[sprpriodata+ebx-%1+16],dl%%skip%endmacro%macro sprdrawprb16bng 1 or al,al jz %%skip add al,ch mov ax,[ebp+eax*2] mov [edi+ebx*2-%1*2],ax xor eax,eax%%skip%endmacro%macro sprdrawprawb16bng 1 or al,al jz %%skip add al,dh test byte[sprpriodata+ebx-%1+16],dl jnz %%skip cmp byte[ecx+ebx-%1],1 je %%skip or byte[sprpriodata+ebx-%1+16],dl mov ax,[ebp+eax*2] mov [edi+ebx*2-%1*2],ax xor eax,eax%%skip%endmacro%macro sprdrawprbwb16bng 1 or al,al jz %%skip add al,dh cmp byte[ecx+ebx-%1],1 je %%skip mov ax,[ebp+eax*2] mov [edi+ebx*2-%1*2],ax xor eax,eax%%skip%endmacro%macro sprdrawpra16bngt 1 or al,al jz %%skip add al,ch test byte[sprpriodata+ebx-%1+16],dl jnz %%skip mov ax,[ebp+eax*2+512] or byte[sprpriodata+ebx-%1+16],dl cmp ch,128+64 jae %%yestransp and eax,[UnusedBitXor]%%yestransp mov [edi+ebx*2-%1*2],ax xor eax,eax%%skip%endmacro%macro sprdrawprb16bngt 1 or al,al jz %%skip add al,ch mov ax,[ebp+eax*2+512] cmp ch,128+64 jae %%yestransp and eax,[UnusedBitXor]%%yestransp mov [edi+ebx*2-%1*2],ax xor eax,eax%%skip%endmacro%macro sprdrawprawb16bngt 1 or al,al jz %%skip add al,dh test byte[sprpriodata+ebx-%1+16],dl jnz %%skip cmp byte[ecx+ebx-%1],1 je %%skip or byte[sprpriodata+ebx-%1+16],dl mov ax,[ebp+eax*2+512] cmp dh,128+64 jae %%yestransp and eax,[UnusedBitXor]%%yestransp mov [edi+ebx*2-%1*2],ax xor eax,eax%%skip%endmacro%macro sprdrawprbwb16bngt 1 or al,al jz %%skip add al,dh cmp byte[ecx+ebx-%1],1 je %%skip mov ax,[ebp+eax*2+512] cmp dh,128+64 jae %%yestransp and eax,[UnusedBitXor]%%yestransp mov [edi+ebx*2-%1*2],ax xor eax,eax%%skip%endmacro%macro sprdrawpra16bngmst 1 or al,al jz %%skip add al,ch test byte[sprpriodata+ebx-%1+16],dl jnz %%skip mov ax,[ebp+eax*2+512] cmp ch,128+64 jae %%yestransp and eax,[UnusedBitXor]%%yestransp mov [edi+ebx*2-%1*2],ax and eax,[UnusedBitXor] mov [edi+ebx*2-%1*2+75036*2],ax xor eax,eax or byte[sprpriodata+ebx-%1+16],dl%%skip%endmacro%macro sprdrawprb16bngmst 1 or al,al jz %%skip add al,ch mov ax,[ebp+eax*2+512] cmp ch,128+64 jae %%yestransp and eax,[UnusedBitXor]%%yestransp mov [edi+ebx*2-%1*2],ax and eax,[UnusedBitXor] mov [edi+ebx*2-%1*2+75036*2],ax xor eax,eax%%skip%endmacro%macro sprdrawprawb16bngmst 1 or al,al jz %%skip add al,dh test byte[sprpriodata+ebx-%1+16],dl jnz %%skip cmp byte[ecx+ebx-%1],1 je %%skip or byte[sprpriodata+ebx-%1+16],dl mov ax,[ebp+eax*2+512] cmp dh,128+64 jae %%yestransp and eax,[UnusedBitXor]%%yestransp mov [edi+ebx*2-%1*2],ax and eax,[UnusedBitXor] mov [edi+ebx*2-%1*2+75036*2],ax xor eax,eax%%skip%endmacro%macro sprdrawprbwb16bngmst 1 or al,al jz %%skip add al,dh cmp byte[ecx+ebx-%1],1 je %%skip mov ax,[ebp+eax*2+512] cmp dh,128+64 jae %%yestransp and eax,[UnusedBitXor]%%yestransp mov [edi+ebx*2-%1*2],ax and eax,[UnusedBitXor] mov [edi+ebx*2-%1*2+75036*2],ax xor eax,eax%%skip%endmacro%macro sprdrawprawb16bngst 1 or al,al jz %%skip add al,dh test byte[sprpriodata+ebx-%1+16],dl jnz %%skip or byte[sprpriodata+ebx-%1+16],dl mov ax,[ebp+eax*2+512] cmp dh,128+64 jae %%yestransp and eax,[UnusedBitXor]%%yestransp mov [edi+ebx*2-%1*2],ax cmp byte[ecx+ebx-%1],1 je %%skip and eax,[UnusedBitXor] mov [edi+ebx*2-%1*2+75036*2],ax%%skip xor eax,eax%endmacro%macro sprdrawprbwb16bngst 1 or al,al jz %%skip add al,dh mov ax,[ebp+eax*2+512] cmp dh,128+64 jae %%yestransp and eax,[UnusedBitXor]%%yestransp mov [edi+ebx*2-%1*2],ax cmp byte[ecx+ebx-%1],1 je %%skip and eax,[UnusedBitXor] mov [edi+ebx*2-%1*2+75036*2],ax%%skip xor eax,eax%endmacro%macro sprdrawprawb16bngmt 1 or al,al jz %%skip add al,dh test byte[sprpriodata+ebx-%1+16],dl jnz %%skip or byte[sprpriodata+ebx-%1+16],dl mov ax,[ebp+eax*2] mov [edi+ebx*2-%1*2+75036*2],ax cmp byte[ecx+ebx-%1],1 je %%skip cmp dh,128+64 jae %%yestransp and eax,[UnusedBitXor]%%yestransp or ax,[UnusedBit] mov [edi+ebx*2-%1*2],ax%%skip xor eax,eax%endmacro%macro sprdrawprbwb16bngmt 1 or al,al jz %%skip add al,dh mov ax,[ebp+eax*2] mov [edi+ebx*2-%1*2+75036*2],ax cmp byte[ecx+ebx-%1],1 je %%skip or ax,[UnusedBit] cmp dh,128+64 jae %%yestransp and eax,[UnusedBitXor]%%yestransp mov [edi+ebx*2-%1*2],ax%%skip xor eax,eax%endmacro%macro sprdrawpra16bngnt 1 or al,al jz %%skip add al,ch test byte[sprpriodata+ebx-%1+16],dl jnz %%skip mov ax,[ebp+eax*2] mov [edi+ebx*2-%1*2],ax xor eax,eax or byte[sprpriodata+ebx-%1+16],dl%%skip%endmacro%macro sprdrawprb16bngnt 1 or al,al jz %%skip add al,ch mov ax,[ebp+eax*2] mov [edi+ebx*2-%1*2],ax xor eax,eax%%skip%endmacro%macro sprdrawprawb16bngnt 1 or al,al jz %%skip add al,dh test byte[sprpriodata+ebx-%1+16],dl jnz %%skip or byte[sprpriodata+ebx-%1+16],dl cmp byte[ecx+ebx-%1],1 je %%skip mov ax,[ebp+eax*2] mov [edi+ebx*2-%1*2],ax xor eax,eax%%skip%endmacro%macro sprdrawprbwb16bngnt 1 or al,al jz %%skip add al,dh cmp byte[ecx+ebx-%1],1 je %%skip mov ax,[ebp+eax*2] mov [edi+ebx*2-%1*2],ax xor eax,eax%%skip%endmacro%macro sprdrawpra16bngmsnt 1 or al,al jz %%skip add al,ch test byte[sprpriodata+ebx-%1+16],dl jnz %%skip mov ax,[ebp+eax*2] mov [edi+ebx*2-%1*2],ax mov [edi+ebx*2-%1*2+75036*2],ax xor eax,eax or byte[sprpriodata+ebx-%1+16],dl%%skip%endmacro%macro sprdrawprb16bngmsnt 1 or al,al jz %%skip add al,ch mov ax,[ebp+eax*2] mov [edi+ebx*2-%1*2],ax mov [edi+ebx*2-%1*2+75036*2],ax xor eax,eax%%skip%endmacro%macro sprdrawprawb16bngmsnt 1 or al,al jz %%skip add al,dh test byte[sprpriodata+ebx-%1+16],dl jnz %%skip or byte[sprpriodata+ebx-%1+16],dl cmp byte[ecx+ebx-%1],1 je %%skip mov ax,[ebp+eax*2] mov [edi+ebx*2-%1*2],ax mov [edi+ebx*2-%1*2+75036*2],ax xor eax,eax%%skip%endmacro%macro sprdrawprbwb16bngmsnt 1 or al,al jz %%skip add al,dh cmp byte[ecx+ebx-%1],1 je %%skip mov ax,[ebp+eax*2] mov [edi+ebx*2-%1*2],ax mov [edi+ebx*2-%1*2+75036*2],ax xor eax,eax%%skip%endmacro%macro sprdrawprawb16bngsnt 1 or al,al jz %%skip add al,dh test byte[sprpriodata+ebx-%1+16],dl jnz %%skip or byte[sprpriodata+ebx-%1+16],dl mov ax,[ebp+eax*2] mov [edi+ebx*2-%1*2],ax cmp byte[ecx+ebx-%1],1 je %%skip mov [edi+ebx*2-%1*2+75036*2],ax%%skip xor eax,eax%endmacro%macro sprdrawprbwb16bngsnt 1 or al,al jz %%skip add al,dh mov ax,[ebp+eax*2] mov [edi+ebx*2-%1*2],ax cmp byte[ecx+ebx-%1],1 je %%skip mov [edi+ebx*2-%1*2+75036*2],ax%%skip xor eax,eax%endmacro%macro sprdrawprawb16bngmnt 1 or al,al jz %%skip add al,dh test byte[sprpriodata+ebx-%1+16],dl jnz %%skip or byte[sprpriodata+ebx-%1+16],dl mov ax,[ebp+eax*2] mov [edi+ebx*2-%1*2+75036*2],ax cmp byte[ecx+ebx-%1],1 je %%skip mov [edi+ebx*2-%1*2],ax%%skip xor eax,eax%endmacro%macro sprdrawprbwb16bngmnt 1 or al,al jz %%skip add al,dh mov ax,[ebp+eax*2] mov [edi+ebx*2-%1*2+75036*2],ax cmp byte[ecx+ebx-%1],1 je %%skip mov [edi+ebx*2-%1*2],ax%%skip xor eax,eax%endmacro%macro sprdrawpra216bng 1 or al,al jz %%skip or byte[sprpriodata+ebx-%1+16],dl%%skip%endmacro%macro sprdrawpra16bnghr 1 or al,al jz %%skip add al,ch test byte[sprpriodata+ebx-%1+16],dl jnz %%skip mov ax,[ebp+eax*2] mov [edi+ebx*2-%1*2],ax mov [edi+ebx*2-%1*2+75036*4],ax xor eax,eax or byte[sprpriodata+ebx-%1+16],dl%%skip%endmacro%macro sprdrawprb16bnghr 1 or al,al jz %%skip add al,ch mov ax,[ebp+eax*2] mov [edi+ebx*2-%1*2+75036*4],ax mov [edi+ebx*2-%1*2],ax xor eax,eax%%skip%endmacro%macro sprdrawprawb16bnghr 1 or al,al jz %%skip add al,dh test byte[sprpriodata+ebx-%1+16],dl jnz %%skip cmp byte[ecx+ebx-%1],1 je %%skip or byte[sprpriodata+ebx-%1+16],dl mov ax,[ebp+eax*2] mov [edi+ebx*2-%1*2+75036*4],ax mov [edi+ebx*2-%1*2],ax xor eax,eax%%skip%endmacro%macro sprdrawprbwb16bnghr 1 or al,al jz %%skip add al,dh cmp byte[ecx+ebx-%1],1 je %%skip mov ax,[ebp+eax*2] mov [edi+ebx*2-%1*2+75036*4],ax mov [edi+ebx*2-%1*2],ax xor eax,eax%%skip%endmacro%macro sprdrawpra16bngthr 1 or al,al jz %%skip add al,ch test byte[sprpriodata+ebx-%1+16],dl jnz %%skip mov ax,[ebp+eax*2+512] or byte[sprpriodata+ebx-%1+16],dl cmp ch,128+64 jae %%yestransp and eax,[UnusedBitXor]%%yestransp mov [edi+ebx*2-%1*2],ax mov [edi+ebx*2-%1*2+75036*4],ax xor eax,eax%%skip%endmacro%macro sprdrawprb16bngthr 1 or al,al jz %%skip add al,ch mov ax,[ebp+eax*2+512] cmp ch,128+64 jae %%yestransp and eax,[UnusedBitXor]%%yestransp mov [edi+ebx*2-%1*2],ax mov [edi+ebx*2-%1*2+75036*4],ax xor eax,eax%%skip%endmacro%macro sprdrawprawb16bngthr 1 or al,al jz %%skip add al,dh test byte[sprpriodata+ebx-%1+16],dl jnz %%skip cmp byte[ecx+ebx-%1],1 je %%skip or byte[sprpriodata+ebx-%1+16],dl mov ax,[ebp+eax*2+512] cmp dh,128+64 jae %%yestransp and eax,[UnusedBitXor]%%yestransp mov [edi+ebx*2-%1*2],ax mov [edi+ebx*2-%1*2+75036*4],ax xor eax,eax%%skip%endmacro%macro sprdrawprbwb16bngthr 1 or al,al jz %%skip add al,dh cmp byte[ecx+ebx-%1],1 je %%skip mov ax,[ebp+eax*2+512] cmp dh,128+64 jae %%yestransp and eax,[UnusedBitXor]%%yestransp mov [edi+ebx*2-%1*2],ax mov [edi+ebx*2-%1*2+75036*4],ax xor eax,eax%%skip%endmacro%macro sprdrawpra16bngmsthr 1 or al,al jz %%skip add al,ch test byte[sprpriodata+ebx-%1+16],dl jnz %%skip mov ax,[ebp+eax*2+512] cmp ch,128+64 jae %%yestransp and eax,[UnusedBitXor]%%yestransp mov [edi+ebx*2-%1*2],ax mov [edi+ebx*2-%1*2+75036*4],ax and eax,[UnusedBitXor] mov [edi+ebx*2-%1*2+75036*2],ax mov [edi+ebx*2-%1*2+75036*6],ax xor eax,eax or byte[sprpriodata+ebx-%1+16],dl%%skip%endmacro%macro sprdrawprb16bngmsthr 1 or al,al jz %%skip add al,ch mov ax,[ebp+eax*2+512] cmp ch,128+64 jae %%yestransp and eax,[UnusedBitXor]%%yestransp mov [edi+ebx*2-%1*2],ax mov [edi+ebx*2-%1*2+75036*4],ax and eax,[UnusedBitXor] mov [edi+ebx*2-%1*2+75036*2],ax mov [edi+ebx*2-%1*2+75036*6],ax xor eax,eax%%skip%endmacro%macro sprdrawprawb16bngmsthr 1 or al,al jz %%skip add al,dh test byte[sprpriodata+ebx-%1+16],dl jnz %%skip cmp byte[ecx+ebx-%1],1 je %%skip or byte[sprpriodata+ebx-%1+16],dl mov ax,[ebp+eax*2+512] cmp dh,128+64 jae %%yestransp and eax,[UnusedBitXor]%%yestransp mov [edi+ebx*2-%1*2],ax mov [edi+ebx*2-%1*2+75036*4],ax and eax,[UnusedBitXor] mov [edi+ebx*2-%1*2+75036*2],ax mov [edi+ebx*2-%1*2+75036*6],ax xor eax,eax
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -