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

📄 newg162.asm

📁 linux下的任天堂模拟器代码。供大家参考。
💻 ASM
📖 第 1 页 / 共 4 页
字号:
NEWSYM drawtileng8b16b    mov ebp,[cpalval+ebx*4]    determinetransp drawtileng8b16btdrawtileng8b16bnt    CheckWindowing drawtileng8bwin    drawtile16b tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0Fh,vidmemch8s,cache8b16b,tilenormal,tilenormalbdrawtileng8bwin:    drawtile16bw tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0Fh,vidmemch8s,cache8b16b,tilenormal,tilenormalb,tilenormalw,tilenormalwbdrawtileng8b16bt    test byte[BGMS1+ebx*2+1],dl    jnz near drawtileng8b16bms    test byte[scadtng+ebx],dl    jz near drawtileng8b16bnt    CheckWindowing drawtileng8bwint    drawtile16b tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0Fh,vidmemch8s,cache8b16b,tilenormalt,tilenormalbtdrawtileng8bwint:    drawtile16bw tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0Fh,vidmemch8s,cache8b16b,tilenormalt,tilenormalbt,tilenormalwt,tilenormalwbtdrawtileng8b16bms:    test byte[scadtng+ebx],dl    jz near drawtileng8b16bmsnt    DetermineWindow drawtileng8b16bmstmsw, drawtileng8b16bmstmw, drawtileng8b16bmstsw    drawtile16b tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmst,tilenormalbmstdrawtileng8b16bmstmsw:    drawtile16bw tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmst,tilenormalbmst,tilenormalwmst,tilenormalwbmstdrawtileng8b16bmstmw:    drawtile16bw2 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmst,tilenormalbmst,tilenormalwsmt,tilenormalwbsmt,tilenormals,tilenormalbsdrawtileng8b16bmstsw:    drawtile16bw2 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmst,tilenormalbmst,tilenormalwmsbt,tilenormalwbmsbt,tilenormalt,tilenormalbtdrawtileng8b16bmsnt    DetermineWindow drawtileng8b16bmsntmsw, drawtileng8b16bmsntmw, drawtileng8b16bmsntsw    drawtile16b tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmsnt,tilenormalbmsntdrawtileng8b16bmsntmsw:    drawtile16bw tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwmsnt,tilenormalwbmsntdrawtileng8b16bmsntmw:    drawtile16bw2 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwsmnt,tilenormalwbsmnt,tilenormals,tilenormalbsdrawtileng8b16bmsntsw:    drawtile16bw2 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwmsbnt,tilenormalwbmsbnt,tilenormal,tilenormalb;******************************************; 16x16 tiles - tile engine;******************************************%macro WinClipMacro16x16 1    mov byte[tleftn],17    mov dword[ngcwinptr],ngwintable    mov dword[ngcwinmode],0    cmp dword[ngwintable],0    jne .loop    add dword[ngcwinptr],4    mov dword[ngcwinmode],1.winclipped    mov ebx,[ngcwinptr]    mov cx,[vrama+eax]    cmp dword[ebx],16    jbe near %1    sub dword[ebx],16    add ax,2    mov ebx,[ng16bbgval]    add edi,32    inc dword[bg1totng+ebx*4]    test eax,03Fh    jnz .notileadd    add ax,[bgtxadd].notileadd    dec byte[tleftn]    jnz .winclipped    pop ebx    cmp byte[curmosaicsz],1    jne near domosaicng16b    ret.loop    mov ebx,[ngcwinptr]    mov cx,[vrama+eax]    cmp dword[ebx],16    jbe near %1    sub dword[ebx],16    xor ecx,[ng16bprval]    test ecx,2000h    jnz near .finline%endmacro%macro drawtile16b16x16 10    mov byte[tleftn],17%%loop    mov cx,[vrama+eax]    xor ecx,[ng16bprval]    test ecx,2000h    jnz near %%finline    drawtileng16x1616b %1,%2,%3,%%loop,%%finline,%4,%5,%6,%7,%8,%9,%10    ret%endmacro%macro drawtile16bw16x16 12    WinClipMacro16x16 %%processwinclip2b    drawtileng16x1616b %1,%2,%3,.loop,.finline,%4,%5,%6,%7,%8,%9,%10%%processwinclip2b    mov ebx,[ngcwinptr]    mov cx,[vrama+eax]    mov ebx,[ebx]    xor ecx,[ng16bprval]    mov [ngcpixleft],ebx    test ecx,2000h    jnz near %%finline    drawtileng16x16win16b %1,%2,%3,%%loop,%%finline,%4,%5,%6,%7,%8,%11,%12%%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 drawtile16bw216x16 14    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    drawtileng16x1616b %1,%2,%3,.winclipped,.finlineb,%4,%5,%6,%7,%8,%13,%14.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    drawtileng16x1616b %1,%2,%3,.loop,.finline,%4,%5,%6,%7,%8,%9,%10%%processwinclip2b    mov ebx,[ngcwinptr]    mov cx,[vrama+eax]    mov ebx,[ebx]    xor ecx,[ng16bprval]    mov [ngcpixleft],ebx    test ecx,2000h    jnz near %%finline    drawtileng16x16win16b %1,%2,%3,%%loop,%%finline,%4,%5,%6,%7,%8,%11,%12%%loop    push eax    mov ebx,[ngcwinptr]    mov eax,[ngcpixleft]    mov [ebx],eax    pop eax    cmp dword[ngcwinmode],1    je near .winclipped    jmp .loop%endmacroNEWSYM drawtileng16x162b16b    mov ebp,[cpalval+ebx*4]    determinetransp drawtileng2b16bt16x16drawtileng2b16bnt16x16    CheckWindowing drawtileng2bwin16x16    drawtile16b16x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormal,tilenormalbdrawtileng2bwin16x16:    drawtile16bw16x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormal,tilenormalb,tilenormalw,tilenormalwbdrawtileng2b16bt16x16    test byte[BGMS1+ebx*2+1],dl    jnz near drawtileng2b16bms16x16    test byte[scadtng+ebx],dl    jz near drawtileng2b16bnt16x16    CheckWindowing drawtileng2bwint16x16    drawtile16b16x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormalt,tilenormalbtdrawtileng2bwint16x16:    drawtile16bw16x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormalt,tilenormalbt,tilenormalwt,tilenormalwbtdrawtileng2b16bms16x16:    test byte[scadtng+ebx],dl    jz near drawtileng2b16bmsnt16x16    DetermineWindow drawtileng2b16bmstmsw16x16, drawtileng2b16bmstmw16x16, drawtileng2b16bmstsw16x16    drawtile16b16x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormalmst,tilenormalbmstdrawtileng2b16bmstmsw16x16:    drawtile16bw16x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormalmst,tilenormalbmst,tilenormalwmst,tilenormalwbmstdrawtileng2b16bmstmw16x16:    drawtile16bw216x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormalmst,tilenormalbmst,tilenormalwsmt,tilenormalwbsmt,tilenormals,tilenormalbsdrawtileng2b16bmstsw16x16:    drawtile16bw216x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormalmst,tilenormalbmst,tilenormalwmsbt,tilenormalwbmsbt,tilenormalt,tilenormalbtdrawtileng2b16bmsnt16x16    DetermineWindow drawtileng2b16bmsntmsw16x16, drawtileng2b16bmsntmw16x16, drawtileng2b16bmsntsw16x16    drawtile16b16x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormalmsnt,tilenormalbmsntdrawtileng2b16bmsntmsw16x16:    drawtile16bw16x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwmsnt,tilenormalwbmsntdrawtileng2b16bmsntmw16x16:    drawtile16bw216x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwsmnt,tilenormalwbsmnt,tilenormals,tilenormalbsdrawtileng2b16bmsntsw16x16:    drawtile16bw216x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwmsbnt,tilenormalwbmsbnt,tilenormal,tilenormalbNEWSYM drawtileng16x164b16b    mov ebp,[cpalval+ebx*4]    determinetransp drawtileng4b16bt16x16drawtileng4b16bnt16x16    CheckWindowing drawtileng4bwin16x16    drawtile16b16x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormal,tilenormalbdrawtileng4bwin16x16:    drawtile16bw16x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormal,tilenormalb,tilenormalw,tilenormalwbdrawtileng4b16bt16x16    test byte[BGMS1+ebx*2+1],dl    jnz near drawtileng4b16bms16x16    test byte[scadtng+ebx],dl    jz near drawtileng4b16bnt16x16    CheckWindowing drawtileng4bwint16x16    drawtile16b16x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalt,tilenormalbtdrawtileng4bwint16x16:    drawtile16bw16x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalt,tilenormalbt,tilenormalwt,tilenormalwbtdrawtileng4b16bms16x16:    test byte[scadtng+ebx],dl    jz near drawtileng4b16bmsnt16x16    DetermineWindow drawtileng4b16bmstmsw16x16, drawtileng4b16bmstmw16x16, drawtileng4b16bmstsw16x16    drawtile16b16x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalmst,tilenormalbmstdrawtileng4b16bmstmsw16x16:    drawtile16bw16x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalmst,tilenormalbmst,tilenormalwmst,tilenormalwbmstdrawtileng4b16bmstmw16x16:    drawtile16bw216x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalmst,tilenormalbmst,tilenormalwsmt,tilenormalwbsmt,tilenormals,tilenormalbsdrawtileng4b16bmstsw16x16:    drawtile16bw216x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalmst,tilenormalbmst,tilenormalwmsbt,tilenormalwbmsbt,tilenormalt,tilenormalbtdrawtileng4b16bmsnt16x16    DetermineWindow drawtileng4b16bmsntmsw16x16, drawtileng4b16bmsntmw16x16, drawtileng4b16bmsntsw16x16    drawtile16b16x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalmsnt,tilenormalbmsntdrawtileng4b16bmsntmsw16x16:    drawtile16bw16x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwmsnt,tilenormalwbmsntdrawtileng4b16bmsntmw16x16:    drawtile16bw216x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwsmnt,tilenormalwbsmnt,tilenormals,tilenormalbsdrawtileng4b16bmsntsw16x16:    drawtile16bw216x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwmsbnt,tilenormalwbmsbnt,tilenormal,tilenormalbNEWSYM drawtileng16x168b16b    mov ebp,[cpalval+ebx*4]    determinetransp drawtileng8b16bt16x16drawtileng8b16bnt16x16    CheckWindowing drawtileng8bwin16x16    drawtile16b16x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormal,tilenormalbdrawtileng8bwin16x16:    drawtile16bw16x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormal,tilenormalb,tilenormalw,tilenormalwbdrawtileng8b16bt16x16    test byte[BGMS1+ebx*2+1],dl    jnz near drawtileng8b16bms16x16    test byte[scadtng+ebx],dl    jz near drawtileng8b16bnt16x16    CheckWindowing drawtileng8bwint16x16    drawtile16b16x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalt,tilenormalbtdrawtileng8bwint16x16:    drawtile16bw16x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalt,tilenormalbt,tilenormalwt,tilenormalwbtdrawtileng8b16bms16x16:    test byte[scadtng+ebx],dl    jz near drawtileng8b16bmsnt16x16    DetermineWindow drawtileng8b16bmstmsw16x16, drawtileng8b16bmstmw16x16, drawtileng8b16bmstsw16x16    drawtile16b16x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmst,tilenormalbmstdrawtileng8b16bmstmsw16x16:    drawtile16bw16x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmst,tilenormalbmst,tilenormalwmst,tilenormalwbmstdrawtileng8b16bmstmw16x16:    drawtile16bw216x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmst,tilenormalbmst,tilenormalwsmt,tilenormalwbsmt,tilenormals,tilenormalbsdrawtileng8b16bmstsw16x16:    drawtile16bw216x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmst,tilenormalbmst,tilenormalwmsbt,tilenormalwbmsbt,tilenormalt,tilenormalbtdrawtileng8b16bmsnt16x16    DetermineWindow drawtileng8b16bmsntmsw16x16, drawtileng8b16bmsntmw16x16, drawtileng8b16bmsntsw16x16    drawtile16b16x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmsnt,tilenormalbmsntdrawtileng8b16bmsntmsw16x16:    drawtile16bw16x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwmsnt,tilenormalwbmsntdrawtileng8b16bmsntmw16x16:    drawtile16bw216x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwsmnt,tilenormalwbsmnt,tilenormals,tilenormalbsdrawtileng8b16bmsntsw16x16:    drawtile16bw216x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwmsbnt,tilenormalwbmsbnt,tilenormal,tilenormalb;******************************************; 8x8 tiles - line by line engine;******************************************%macro drawline16bmacro 8    mov byte[tleftn],33%%loop    mov cx,[vrama+eax]    xor ecx,[ng16bprval]    test ecx,2000h    jnz near %%finline    drawlineng16b %1,%2,%3,%%loop,%%finline,%4,%5,%6,%7,%8    ret%endmacro%macro drawline16bwmacro 9    WinClipMacro %%processwinclip2b    drawlineng16b %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    drawlinengwin16b %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 drawline16bw2macro 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    drawlineng16b %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    drawlineng16b %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

⌨️ 快捷键说明

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