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

📄 newgfx.asm

📁 linux下的任天堂模拟器代码。供大家参考。
💻 ASM
📖 第 1 页 / 共 4 页
字号:
    jnz near .nodobg3sb2    cmp byte[modeused+1],0    je near .nodobg3sb2    test dword[bgcmsung],400h    jz near .nodobg3sb2    mov eax,[bg3totng]    cmp eax,[bg3drwng]    je near .nodobg3sb2    mov dword[mode0ads],40404040h    Procbg3pr1b 2, drawbg3linepr1, drawbg3tilepr1, prdatc, 400h, 4h.nodobg3sb2    mov dword[bg1totng],0    mov dword[bg2totng],0    mov dword[bg3totng],0    mov dword[bg4totng],0    mov dword[bg1drwng],0    mov dword[bg2drwng],0    mov dword[bg3drwng],0    mov dword[bg4drwng],0    ; Draw MainScreens    test byte[scrndis],8h    jnz near .nodobg4m    test dword[bgcmsung],8h    jz near .nodobg4m    mov dword[mode0ads],60606060h    Procbgpr0 3, drawbg4line, drawbg4tile, 8h, 0.nodobg4m    test byte[scrndis],4h    jnz near .nodobg3m    test dword[bgcmsung],4h    jz near .nodobg3m    mov dword[mode0ads],40404040h    Procbg3pr0 2, drawbg3line, drawbg3tile, 4h, 0.nodobg3m    ; draw sprites mode 0-1    test byte[scrndis],10h    jnz near .nosprprma    test dword[modeused],00000101h    jz near .nosprprma    test dword[bgcmsung],10h    jz near .nosprprma    Procsprng01 10h, 0.nosprprma    test byte[scrndis],8h    jnz near .nodobg4mb    test dword[bgcmsung],8h    jz near .nodobg4mb    mov eax,[bg4totng]    cmp eax,[bg4drwng]    je near .nodobg4mb    mov dword[mode0ads],60606060h    Procbgpr1 3, drawbg4linepr1, drawbg4tilepr1, prdata, 8h, 0.nodobg4mb    test byte[scrndis],4h    jnz near .nodobg3mb    test dword[bgcmsung],4h    jz near .nodobg3mb    mov eax,[bg3totng]    cmp eax,[bg3drwng]    je near .nodobg3mb    mov dword[mode0ads],40404040h    Procbg3pr1 2, drawbg3linepr1, drawbg3tilepr1, prdatc, 4h, 0.nodobg3mb    ; draw sprites mode 0-1    test byte[scrndis],10h    jnz near .nosprprmb    test dword[modeused],00000101h    jz near .nosprprmb    test dword[bgcmsung],10h    jz near .nosprprmb    Procsprng01 10h, 0.nosprprmb    test byte[scrndis],2h    jnz near .nodobg2m    test dword[bgcmsung],2h    jz near .nodobg2m    mov dword[mode0ads],20202020h    Procbgpr0 1, drawbg2line, drawbg2tile, 2h, 0.nodobg2m    ; draw mode 7 extbg pr 0    cmp byte[ngextbg],0    je near .noextbgmn    test dword[bgcmsung],3h    jz near .noextbgmn    ProcMode7ngextbg 3h, 0.noextbgmn    ; draw sprites mode 2-7    test byte[scrndis],10h    jnz near .nosprprmc    test dword[modeused],01010000h    jnz near .yessprprmc    test dword[modeused+4],01010101h    jz near .nosprprmc.yessprprmc    test dword[bgcmsung],10h    jz near .nosprprmc    Procsprng234567 10h, 0h.nosprprmc    test byte[scrndis],1h    jnz near .nodobg1m    test dword[bgcmsung],1h    jz near .nodobg1m    mov dword[mode0ads],00000000h    Procbgpr0 0, drawbg1line, drawbg1tile, 1h, 0.nodobg1m    ; draw mode 7, priority 0    cmp byte[modeused+7],0    je near .nomode7m    test dword[bgcmsung],1h    jz near .nomode7m    ProcMode7ng 1h, 0.nomode7m    ; draw sprites mode 0-7    test byte[scrndis],10h    jnz near .nosprprmd    test dword[bgcmsung],10h    jz near .nosprprmd    Procsprng 10h, 0.nosprprmd    ; draw mode 7 extbg pr 1    cmp byte[ngextbg],0    je near .noextbgmn2    test dword[bgcmsung],3h    jz near .noextbgmn2    ProcMode7ngextbg2 2h, 0.noextbgmn2    test byte[scrndis],2h    jnz near .nodobg2mb    test dword[bgcmsung],2h    jz near .nodobg2mb    mov eax,[bg2totng]    cmp eax,[bg2drwng]    je near .nodobg2mb    mov dword[mode0ads],20202020h    Procbgpr1 1, drawbg2linepr1, drawbg2tilepr1, prdata, 2h, 0.nodobg2mb    ; draw sprites mode 2-7    test byte[scrndis],10h    jnz near .nosprprme    test dword[modeused],01010000h    jnz near .yessprprme    test dword[modeused+4],01010101h    jz near .nosprprme.yessprprme    test dword[bgcmsung],10h    jz near .nosprprme    Procsprng234567 10h, 0.nosprprme    test byte[scrndis],1h    jnz near .nodobg1mb    test dword[bgcmsung],1h    jz near .nodobg1mb    mov eax,[bg1totng]    cmp eax,[bg1drwng]    je near .nodobg1mb    mov dword[mode0ads],00000000h    Procbgpr1 0, drawbg1linepr1, drawbg1tilepr1, prdatb, 1h, 0.nodobg1mb    ; draw sprites mode 0-7    test byte[scrndis],10h    jnz near .nosprprmf    test dword[bgcmsung],10h    jz near .nosprprmf    Procsprng 10h, 0.nosprprmf    test byte[scrndis],4h    jnz near .nodobg3mb2    cmp byte[modeused+1],0    je near .nodobg3mb2    test dword[bgcmsung],4h    jz near .nodobg3mb2    mov eax,[bg3totng]    cmp eax,[bg3drwng]    je near .nodobg3mb2    mov dword[mode0ads],40404040h    Procbg3pr1b 2, drawbg3linepr1, drawbg3tilepr1, prdatc, 4h, 0.nodobg3mb2.dontdraw    xor ebx,ebx    xor ecx,ecx    pop ebp    pop edi    pop esi    pop edx    retNEWSYM drawbg1tile    mov byte[prdatb+ebx],1    drawbgtileng 0,0    retNEWSYM drawbg2tile    mov byte[prdata+ebx],1    drawbgtileng 1,1    retNEWSYM drawbg3tile    mov byte[prdatc+ebx],1    drawbgtileng 2,2    retNEWSYM drawbg4tile    mov byte[prdata+ebx],1    drawbgtileng 3,1    retNEWSYM drawbg1tilepr1    drawbgtilengpr1 0,0    retNEWSYM drawbg2tilepr1    drawbgtilengpr1 1,1    retNEWSYM drawbg3tilepr1    drawbgtilengpr1 2,2    retNEWSYM drawbg4tilepr1    drawbgtilengpr1 3,1    retNEWSYM drawbg1line    mov byte[prdatb+ebx],0    drawbglineng 0,0NEWSYM drawbg2line    mov byte[prdata+ebx],0    drawbglineng 1,1NEWSYM drawbg3line    mov byte[prdatc+ebx],0    drawbglineng 2,2NEWSYM drawbg4line    mov byte[prdata+ebx],0    drawbglineng 3,1NEWSYM domosaicng    mov esi,[pesimpng]    xor eax,eax    mov edi,xtravbuf+16    mov al,[curmosaicsz]    cmp al,16    ja .notokay    cmp al,1    jbe .notokay    push esi    jmp [mosjmptab+eax*4-8].notokay    retNEWSYM mosdraw2    mov ecx,128.next    mov al,[edi]    or al,al    jz .nodraw    mov [esi],al    mov [esi+1],al    mosender 2NEWSYM mosdraw3    mov ecx,86.next    mov al,[edi]    or al,al    jz .nodraw    mov [esi],al    mov [esi+1],al    mov [esi+2],al    mosender 3NEWSYM mosdraw4    mov ecx,64.next    mov al,[edi]    or al,al    jz .nodraw    mov [esi],al    mov [esi+1],al    mov [esi+2],al    mov [esi+3],al    mosender 4NEWSYM mosdraw5    mov ecx,52.next    mov al,[edi]    or al,al    jz .nodraw    mov [esi],al    mov [esi+1],al    mov [esi+2],al    mov [esi+3],al    mov [esi+4],al    mosender 5NEWSYM mosdraw6    mov ecx,43.next    mov al,[edi]    or al,al    jz .nodraw    mov [esi],al    mov [esi+1],al    mov [esi+2],al    mov [esi+3],al    mov [esi+4],al    mov [esi+5],al    mosender 6NEWSYM mosdraw7    mov ecx,37.next    mov al,[edi]    or al,al    jz .nodraw    mov [esi],al    mov [esi+1],al    mov [esi+2],al    mov [esi+3],al    mov [esi+4],al    mov [esi+5],al    mov [esi+6],al    mosender 7NEWSYM mosdraw8    mov ecx,32.next    mov al,[edi]    or al,al    jz .nodraw    mov [esi],al    mov [esi+1],al    mov [esi+2],al    mov [esi+3],al    mov [esi+4],al    mov [esi+5],al    mov [esi+6],al    mov [esi+7],al    mosender 8NEWSYM mosdraw9    mov ecx,29.next    mov al,[edi]    or al,al    jz .nodraw    mov [esi],al    mov [esi+1],al    mov [esi+2],al    mov [esi+3],al    mov [esi+4],al    mov [esi+5],al    mov [esi+6],al    mov [esi+7],al    mov [esi+8],al    mosender 9NEWSYM mosdraw10    mov ecx,26.next    mov al,[edi]    or al,al    jz .nodraw    mov [esi],al    mov [esi+1],al    mov [esi+2],al    mov [esi+3],al    mov [esi+4],al    mov [esi+5],al    mov [esi+6],al    mov [esi+7],al    mov [esi+8],al    mov [esi+9],al    mosender 10NEWSYM mosdraw11    mov ecx,24.next    mov al,[edi]    or al,al    jz .nodraw    mov [esi],al    mov [esi+1],al    mov [esi+2],al    mov [esi+3],al    mov [esi+4],al    mov [esi+5],al    mov [esi+6],al    mov [esi+7],al    mov [esi+8],al    mov [esi+9],al    mov [esi+10],al    mosender 11NEWSYM mosdraw12    mov ecx,22.next    mov al,[edi]    or al,al    jz .nodraw    mov [esi],al    mov [esi+1],al    mov [esi+2],al    mov [esi+3],al    mov [esi+4],al    mov [esi+5],al    mov [esi+6],al    mov [esi+7],al    mov [esi+8],al    mov [esi+9],al    mov [esi+10],al    mov [esi+11],al    mosender 12NEWSYM mosdraw13    mov ecx,20.next    mov al,[edi]    or al,al    jz .nodraw    mov [esi],al    mov [esi+1],al    mov [esi+2],al    mov [esi+3],al    mov [esi+4],al    mov [esi+5],al    mov [esi+6],al    mov [esi+7],al    mov [esi+8],al    mov [esi+9],al    mov [esi+10],al    mov [esi+11],al    mov [esi+12],al    mosender 13NEWSYM mosdraw14    mov ecx,19.next    mov al,[edi]    or al,al    jz .nodraw    mov [esi],al    mov [esi+1],al    mov [esi+2],al    mov [esi+3],al    mov [esi+4],al    mov [esi+5],al    mov [esi+6],al    mov [esi+7],al    mov [esi+8],al    mov [esi+9],al    mov [esi+10],al    mov [esi+11],al    mov [esi+12],al    mov [esi+13],al    mosender 14NEWSYM mosdraw15    mov ecx,18.next    mov al,[edi]    or al,al    jz .nodraw    mov [esi],al    mov [esi+1],al    mov [esi+2],al    mov [esi+3],al    mov [esi+4],al    mov [esi+5],al    mov [esi+6],al    mov [esi+7],al    mov [esi+8],al    mov [esi+9],al    mov [esi+10],al    mov [esi+11],al    mov [esi+12],al    mov [esi+13],al    mov [esi+14],al    mosender 15NEWSYM mosdraw16    mov ecx,16.next    mov al,[edi]    or al,al    jz .nodraw    mov [esi],al    mov [esi+1],al    mov [esi+2],al    mov [esi+3],al    mov [esi+4],al    mov [esi+5],al    mov [esi+6],al    mov [esi+7],al    mov [esi+8],al    mov [esi+9],al    mov [esi+10],al    mov [esi+11],al    mov [esi+12],al    mov [esi+13],al    mov [esi+14],al    mov [esi+15],al    mosender 16NEWSYM drawbg1linepr1    drawbglinengpr1 0,0NEWSYM drawbg2linepr1    drawbglinengpr1 1,1NEWSYM drawbg3linepr1    drawbglinengpr1 2,2NEWSYM drawbg4linepr1    drawbglinengpr1 3,1SECTION .bssNEWSYM bgtxadd,  resd 1NEWSYM bgcyval,  resd 1NEWSYM bgcxval,  resd 1NEWSYM tleftn,   resd 1NEWSYM tleftnb,  resd 1NEWSYM bg1totng, resd 1NEWSYM bg2totng, resd 1NEWSYM bg3totng, resd 1NEWSYM bg4totng, resd 1NEWSYM bg1drwng, resd 1NEWSYM bg2drwng, resd 1NEWSYM bg3drwng, resd 1NEWSYM bg4drwng, resd 1NEWSYM sprcurng, resd 1NEWSYM scfbl,    resd 1NEWSYM mode0ads, resd 1NEWSYM mode0add, resd 1NEWSYM taddnfy16x16, resd 1NEWSYM taddfy16x16, resd 1NEWSYM switch16x16, resd 1NEWSYM yposng,     resd 1NEWSYM flipyposng, resd 1NEWSYM yposngom,     resd 1NEWSYM flipyposngom, resd 1SECTION .textNEWSYM drawsprng    cmp byte[winbg1enval+ebx+4*256],0    jne near drawsprngw    test dword[sprleftpr+ebx*4],80000000h    jnz near .drawsingle    push esi    push ebx    mov edi,esi    mov esi,[sprtbng+ebx*4]    mov edx,esi    xor ebx,ebx.loopobj    test byte[esi+7],20h    jnz near .drawspriteflipx    mov bx,[esi]    push edx    mov ch,[esi+6]    mov dl,[esi+7]    and edx,03h    cmp edx,[csprival]    jne near .notprio    mov esi,[esi+2]    mov dl,[csprbit]

⌨️ 快捷键说明

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