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

📄 newg162.asm

📁 linux下的任天堂模拟器代码。供大家参考。
💻 ASM
📖 第 1 页 / 共 4 页
字号:
    drawlineng16x816b %1,%2,%3,%%loopb,%%finlineb,%4,%5,%6,%9,%10    ret%endmacroNEWSYM drawlineng16x84b16b    determinetransp drawlineng4b16bt16x8drawlineng4b16bnt16x8    drawline16bmacro16x8 tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixels16x8,procpixelst16x8,procpixels16x8b,procpixelst16x8bdrawlineng4b16bt16x8    test byte[BGMS1+ebx*2+1],dl    jnz near drawlineng4b16bms16x8    test byte[scadtng+ebx],dl    jz near drawlineng4b16bnt16x8    drawline16bmacro16x8 tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelstr16x8,procpixelstt16x8,procpixelstr16x8b,procpixelstt16x8bdrawlineng4b16bms16x8:    test byte[scadtng+ebx],dl    jz near drawlineng4b16bmsnt16x8    drawline16bmacro16x8 tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmst16x8,procpixelstmst16x8,procpixelsmst16x8b,procpixelstmst16x8bdrawlineng4b16bmsnt16x8    drawline16bmacro16x8 tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmsnt16x8,procpixelstmsnt16x8,procpixelsmsnt16x8b,procpixelstmsnt16x8bNEWSYM drawlineng16x82b16b    determinetransp drawlineng2b16bt16x8drawlineng2b16bnt16x8    drawline16bmacro16x8 tltype2b,preparet2ba,cachesingle2bng,ngpalcon2b,test2ba,03h,procpixels16x8,procpixelst16x8,procpixels16x8b,procpixelst16x8bdrawlineng2b16bt16x8    test byte[BGMS1+ebx*2+1],dl    jnz near drawlineng2b16bms16x8    test byte[scadtng+ebx],dl    jz near drawlineng2b16bnt16x8    drawline16bmacro16x8 tltype2b,preparet2ba,cachesingle2bng,ngpalcon2b,test2ba,03h,procpixelstr16x8,procpixelstt16x8,procpixelstr16x8b,procpixelstt16x8bdrawlineng2b16bms16x8:    test byte[scadtng+ebx],dl    jz near drawlineng2b16bmsnt16x8    drawline16bmacro16x8 tltype2b,preparet2ba,cachesingle2bng,ngpalcon2b,test2ba,03h,procpixelsmst16x8,procpixelstmst16x8,procpixelsmst16x8b,procpixelstmst16x8bdrawlineng2b16bmsnt16x8    drawline16bmacro16x8 tltype2b,preparet2ba,cachesingle2bng,ngpalcon2b,test2ba,03h,procpixelsmsnt16x8,procpixelstmsnt16x8,procpixelsmsnt16x8b,procpixelstmsnt16x8b%macro WinClipMacroom 1    mov byte[tleftn],33    mov dword[ngcwinptr],ngwintable    mov dword[ngcwinmode],0    cmp dword[ngwintable],0    jne near .loop    add dword[ngcwinptr],4    mov dword[ngcwinmode],1.winclipped    mov ebx,[ngcwinptr]    cmp dword[ebx],8    jbe near %1    sub dword[ebx],8    mov ebx,[cbgval]    add word[ofsmmptr],2    inc dword[bg1totng+ebx*4]    add word[ofsmtptr],2    mov ax,[ofsmmptr]    mov ebx,[yposngom]    mov edx,[flipyposngom]    mov [yposng],ebx    mov [flipyposng],edx    add edi,16    test eax,03Fh    jnz .next    mov bx,[bgtxadd]    add ax,bx    add [ofsmmptr],bx    add word[ofsmtptr],bx.next    mov ebx,[ofsmcptr]    add ebx,[ofsmcptr2]    mov ecx,[ofsmval]    add dword[ofshvaladd],8    test dword[ebx],ecx    jz .noofsm2    mov ebx,[ebx]    mov ax,[ofsmtptr]    and ebx,3FFh    add ebx,[ofsmcyps]    test ebx,100h    jz .noupper2    add ax,[ofsmady].noupper2    and ebx,0FFh    mov edx,ebx    shr ebx,3    and edx,07h    shl ebx,6    shl edx,3    add ax,bx    mov [yposng],edx    xor edx,38h    mov [flipyposng],edx.noofsm2    mov ebx,[ofsmcptr]    add ebx,[ofsmcptr2]    add dword[ofsmcptr2],2    mov ecx,[ofsmvalh]    and dword[ofsmcptr2],3Fh    test dword[ebx-40h],ecx    jz .noofsmh    mov ebx,[ebx-40h]    sub ax,[ofsmtptr]    add ax,[ofsmtptrs]    add ebx,[ofshvaladd]    test ebx,100h    jz .noleft    add ax,[ofsmadx].noleft    and ebx,0F8h    shr ebx,2    add ax,bx.noofsmh    dec byte[tleftn]    jnz near .winclipped    pop ebx    cmp byte[curmosaicsz],1    jne near domosaicng16b    ret.loop    mov ebx,[ngcwinptr]    mov cx,[vrama+eax]    cmp dword[ebx],8    jbe near %1    sub dword[ebx],8    xor ecx,[ng16bprval]    test ecx,2000h    jnz near .finline%endmacro%macro drawline16bmacroom 8    mov byte[tleftn],33%%loop    mov cx,[vrama+eax]    xor ecx,[ng16bprval]    test ecx,2000h    jnz near %%finline    drawlinengom16b %1,%2,%3,%%loop,%%finline,%4,%5,%6,%7,%8    ret%endmacro%macro drawline16bwmacroom 9    WinClipMacroom %%processwinclip2b    drawlinengom16b %1,%2,%3,.loop,.finline,%4,%5,%6,%7,%8%%processwinclip2b    mov ebx,[ngcwinptr]    mov cx,[vrama+eax]    mov ebx,[ebx]    xor ecx,[ng16bprval]    mov [ngcpixleft],ebx    test ecx,2000h    jnz near %%finline    drawlinengomwin16b %1,%2,%3,%%loop,%%finline,%4,%5,%6,%9%%loop    push eax    mov ebx,[ngcwinptr]    mov eax,[ngcpixleft]    mov [ebx],eax    pop eax    cmp dword[ngcwinmode],1    je near .winclipped    jmp .loop%endmacro%macro drawline16bw2macroom 11    mov byte[tleftn],33    mov dword[ngcwinptr],ngwintable    mov dword[ngcwinmode],0    cmp dword[ngwintable],0    jne near .loop    add dword[ngcwinptr],4    mov dword[ngcwinmode],1.winclipped    mov ebx,[ngcwinptr]    mov cx,[vrama+eax]    cmp dword[ebx],8    jbe near %%processwinclip2b    sub dword[ebx],8    xor ecx,[ng16bprval]    test ecx,2000h    jnz near .finlineb    drawlinengom16b %1,%2,%3,.winclipped,.finlineb,%4,%5,%6,%10,%11.loop    mov ebx,[ngcwinptr]    mov cx,[vrama+eax]    cmp dword[ebx],8    jbe near %%processwinclip2b    sub dword[ebx],8    xor ecx,[ng16bprval]    test ecx,2000h    jnz near .finline    drawlinengom16b %1,%2,%3,.loop,.finline,%4,%5,%6,%7,%8%%processwinclip2b    mov ebx,[ngcwinptr]    mov cx,[vrama+eax]    mov ebx,[ebx]    xor ecx,[ng16bprval]    mov [ngcpixleft],ebx    test ecx,2000h    jnz near %%finline    drawlinengomwin16b %1,%2,%3,%%loop,%%finline,%4,%5,%6,%9%%loop    push eax    mov ebx,[ngcwinptr]    mov eax,[ngcpixleft]    mov [ebx],eax    pop eax    cmp dword[ngcwinmode],1    je near .winclipped    jmp .loop%endmacroNEWSYM drawlinengom4b16b    determinetransp drawlineng4b16btomdrawlineng4b16bntom    CheckWindowing drawlineng4bwinom    drawline16bmacroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixels,procpixelstdrawlineng4bwinom:    drawline16bwmacroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixels,procpixelst,procpixelstwdrawlineng4b16btom    test byte[BGMS1+ebx*2+1],dl    jnz near drawlineng4b16bmsom    test byte[scadtng+ebx],dl    jz near drawlineng4b16bntom    CheckWindowing drawlineng4bwintom    drawline16bmacroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelstr,procpixelsttdrawlineng4bwintom:    drawline16bwmacroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelstr,procpixelstt,procpixelstwtdrawlineng4b16bmsom:    test byte[scadtng+ebx],dl    jz near drawlineng4b16bmsntom    DetermineWindow drawlineng4b16bmstmswom, drawlineng4b16bmstmwom, drawlineng4b16bmstswom    drawline16bmacroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmst,procpixelstmstdrawlineng4b16bmstmswom:    drawline16bwmacroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmst,procpixelstmst,procpixelstwmstdrawlineng4b16bmstmwom:    drawline16bw2macroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmst,procpixelstmst,procpixelstwsmt,procpixelss,procpixelstsdrawlineng4b16bmstswom:    drawline16bw2macroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmst,procpixelstmst,procpixelstwmsbt,procpixelstr,procpixelsttdrawlineng4b16bmsntom    DetermineWindow drawlineng4b16bmsntmswom, drawlineng4b16bmsntmwom, drawlineng4b16bmsntswom    drawline16bmacroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmsnt,procpixelstmsntdrawlineng4b16bmsntmswom:    drawline16bwmacroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmsnt,procpixelstmsnt,procpixelstwmsntdrawlineng4b16bmsntmwom:    drawline16bw2macroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmsnt,procpixelstmsnt,procpixelstwsmnt,procpixelss,procpixelstsdrawlineng4b16bmsntswom:    drawline16bw2macroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmsnt,procpixelstmsnt,procpixelstwmsbnt,procpixelsnt,procpixelstnt%macro drawline16bmacroom16x16 8    mov byte[tleftn],17%%loop    mov cx,[vrama+eax]    xor ecx,[ng16bprval]    test ecx,2000h    jnz near %%finline    drawlinengom16b16x16 %1,%2,%3,%%loop,%%finline,%4,%5,%6,%7,%8    ret%endmacro%macro drawline16bwmacroom16x16 9    WinClipMacro16x16 %%processwinclip2b    drawlinengom16b16x16 %1,%2,%3,.loop,.finline,%4,%5,%6,%7,%8%%processwinclip2b    mov ebx,[ngcwinptr]    mov cx,[vrama+eax]    mov ebx,[ebx]    xor ecx,[ng16bprval]    mov [ngcpixleft],ebx    test ecx,2000h    jnz near %%finline    drawlinengomwin16b16x16 %1,%2,%3,%%loop,%%finline,%4,%5,%6,%9%%loop    push eax    mov ebx,[ngcwinptr]    mov eax,[ngcpixleft]    mov [ebx],eax    pop eax    cmp dword[ngcwinmode],1    je near .winclipped    jmp .loop%endmacro%macro drawline16bw2macroom16x16 11    mov byte[tleftn],17    mov dword[ngcwinptr],ngwintable    mov dword[ngcwinmode],0    cmp dword[ngwintable],0    jne near .loop    add dword[ngcwinptr],4    mov dword[ngcwinmode],1.winclipped    mov ebx,[ngcwinptr]    mov cx,[vrama+eax]    cmp dword[ebx],16    jbe near %%processwinclip2b    sub dword[ebx],16    xor ecx,[ng16bprval]    test ecx,2000h    jnz near .finlineb    drawlinengom16b16x16 %1,%2,%3,.winclipped,.finlineb,%4,%5,%6,%10,%11.loop    mov ebx,[ngcwinptr]    mov cx,[vrama+eax]    cmp dword[ebx],16    jbe near %%processwinclip2b    sub dword[ebx],16    xor ecx,[ng16bprval]    test ecx,2000h    jnz near .finline    drawlinengom16b16x16 %1,%2,%3,.loop,.finline,%4,%5,%6,%7,%8%%processwinclip2b    mov ebx,[ngcwinptr]    mov cx,[vrama+eax]    mov ebx,[ebx]    xor ecx,[ng16bprval]    mov [ngcpixleft],ebx    test ecx,2000h    jnz near %%finline    drawlinengomwin16b16x16 %1,%2,%3,%%loop,%%finline,%4,%5,%6,%9%%loop    push eax    mov ebx,[ngcwinptr]    mov eax,[ngcpixleft]    mov [ebx],eax    pop eax    cmp dword[ngcwinmode],1    je near .winclipped    jmp .loop%endmacroNEWSYM drawlinengom16x164b16b    determinetransp drawlineng4b16btom16x16drawlineng4b16bntom16x16    drawline16bmacroom16x16 tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixels,procpixelstdrawlineng4b16btom16x16    test byte[BGMS1+ebx*2+1],dl    jnz near drawlineng4b16bmsom16x16    test byte[scadtng+ebx],dl    jz near drawlineng4b16bntom16x16    drawline16bmacroom16x16 tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelstr,procpixelsttdrawlineng4b16bmsom16x16:    test byte[scadtng+ebx],dl    jz near drawlineng4b16bmsntom16x16    drawline16bmacroom16x16 tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmst,procpixelstmstdrawlineng4b16bmsntom16x16    drawline16bmacroom16x16 tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmsnt,procpixelstmsnt

⌨️ 快捷键说明

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