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

📄 newgfx.asm

📁 linux下的任天堂模拟器代码。供大家参考。
💻 ASM
📖 第 1 页 / 共 4 页
字号:
    sprdrawa sprdrawpra    pop edx.nodrawspr    add edx,8    mov esi,edx    dec cl    jnz near .loopobj    rol byte[csprbit],1    cmp byte[csprbit],1    je near .clearcsprmem    pop ebx    pop esi    ret.notprio    mov esi,[esi+2]    mov dl,[csprbit]    sprdrawa sprdrawpra2    pop edx    add edx,8    mov esi,edx    dec cl    jnz near .loopobj    rol byte[csprbit],1    cmp byte[csprbit],1    je near .clearcsprmem    pop ebx    pop esi    ret.drawspriteflipx    mov bx,[esi]    push edx    mov ch,[esi+6]    mov dl,[esi+7]    and edx,03h    cmp edx,[csprival]    jne near .notpriof    mov esi,[esi+2]    mov dl,[csprbit]    sprdrawaf sprdrawpra    pop edx    add edx,8    mov esi,edx    dec cl    jnz near .loopobj    rol byte[csprbit],1    cmp byte[csprbit],1    je near .clearcsprmem.endobj    pop ebx    pop esi    ret.notpriof    mov esi,[esi+2]    mov dl,[csprbit]    sprdrawaf sprdrawpra2    pop edx    add edx,8    mov esi,edx    dec cl    jnz near .loopobj    rol byte[csprbit],1    cmp byte[csprbit],1    je near .clearcsprmem    pop ebx    pop esi    ret.clearcsprmem    xor eax,eax    mov ecx,64    mov edi,sprpriodata+16    rep stosd    pop ebx    pop esi    ret.drawsingle    push esi    push ebx    mov edi,esi    mov esi,[sprtbng+ebx*4]    mov edx,ecx    and edx,0FFh    shl edx,3    sub edx,8    add edx,esi    mov esi,edx    xor ebx,ebx.loopobj2    test byte[esi+7],20h    jnz near .drawspriteflipx2    mov bx,[esi]    mov ch,[esi+6]    mov esi,[esi+2]    sprdrawa sprdrawprb    sub edx,8    mov esi,edx    dec cl    jnz near .loopobj2    pop ebx    pop esi    ret.drawspriteflipx2    mov bx,[esi]    mov ch,[esi+6]    mov esi,[esi+2]    sprdrawaf sprdrawprb    sub edx,8    mov esi,edx    dec cl    jnz near .loopobj2    pop ebx    pop esi    retNEWSYM drawsprngm7h    cmp byte[winbg1enval+ebx+4*256],0    jne near drawsprngm7w    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]    sprdrawa sprdrawpra    pop edx.nodrawspr    add edx,8    mov esi,edx    dec cl    jnz near .loopobj    rol byte[csprbit],1    cmp byte[csprbit],1    je near .clearcsprmem    pop ebx    pop esi    ret.notprio    mov esi,[esi+2]    mov dl,[csprbit]    sprdrawa sprdrawpra2    pop edx    add edx,8    mov esi,edx    dec cl    jnz near .loopobj    rol byte[csprbit],1    cmp byte[csprbit],1    je near .clearcsprmem    pop ebx    pop esi    ret.drawspriteflipx    mov bx,[esi]    push edx    mov ch,[esi+6]    mov dl,[esi+7]    and edx,03h    cmp edx,[csprival]    jne near .notpriof    mov esi,[esi+2]    mov dl,[csprbit]    sprdrawaf sprdrawpra    pop edx    add edx,8    mov esi,edx    dec cl    jnz near .loopobj    rol byte[csprbit],1    cmp byte[csprbit],1    je near .clearcsprmem.endobj    pop ebx    pop esi    ret.notpriof    mov esi,[esi+2]    mov dl,[csprbit]    sprdrawaf sprdrawpra2    pop edx    add edx,8    mov esi,edx    dec cl    jnz near .loopobj    rol byte[csprbit],1    cmp byte[csprbit],1    je near .clearcsprmem    pop ebx    pop esi    ret.clearcsprmem    xor eax,eax    mov ecx,64    mov edi,sprpriodata+16    rep stosd    pop ebx    pop esi    ret.drawsingle    push esi    push ebx    mov edi,esi    mov esi,[sprtbng+ebx*4]    mov edx,ecx    and edx,0FFh    shl edx,3    sub edx,8    add edx,esi    mov esi,edx    xor ebx,ebx.loopobj2    test byte[esi+7],20h    jnz near .drawspriteflipx2    mov bx,[esi]    mov ch,[esi+6]    mov esi,[esi+2]    sprdrawa sprdrawprb    sub edx,8    mov esi,edx    dec cl    jnz near .loopobj2    pop ebx    pop esi    ret.drawspriteflipx2    mov bx,[esi]    mov ch,[esi+6]    mov esi,[esi+2]    sprdrawaf sprdrawprb    sub edx,8    mov esi,edx    dec cl    jnz near .loopobj2    pop ebx    pop esi    retSECTION .bssNEWSYM NGNumSpr, resb 1SECTION .textNEWSYM drawsprngw    mov [NGNumSpr],cl    mov ecx,[objclineptr+ebx*4]    add ecx,[ngwinptr]    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 dl,[esi+7]    and edx,03h    cmp edx,[csprival]    jne near .notprio    mov dh,[esi+6]    mov esi,[esi+2]    mov dl,[csprbit]    sprdrawa sprdrawprawb    pop edx.nodrawspr    add edx,8    mov esi,edx    dec byte[NGNumSpr]    jnz near .loopobj    rol byte[csprbit],1    cmp byte[csprbit],1    je near .clearcsprmem    pop ebx    pop esi    xor ecx,ecx    ret.notprio    mov esi,[esi+2]    mov dl,[csprbit]    sprdrawa sprdrawpra2    pop edx    add edx,8    mov esi,edx    dec byte[NGNumSpr]    jnz near .loopobj    rol byte[csprbit],1    cmp byte[csprbit],1    je near .clearcsprmem    pop ebx    pop esi    xor ecx,ecx    ret.drawspriteflipx    mov bx,[esi]    push edx    mov dl,[esi+7]    and edx,03h    cmp edx,[csprival]    jne near .notpriof    mov dh,[esi+6]    mov esi,[esi+2]    mov dl,[csprbit]    sprdrawaf sprdrawprawb    pop edx    add edx,8    mov esi,edx    dec byte[NGNumSpr]    jnz near .loopobj    rol byte[csprbit],1    cmp byte[csprbit],1    je near .clearcsprmem.endobj    pop ebx    pop esi    xor ecx,ecx    ret.notpriof    mov esi,[esi+2]    mov dl,[csprbit]    sprdrawaf sprdrawpra2    pop edx    add edx,8    mov esi,edx    dec byte[NGNumSpr]    jnz near .loopobj    rol byte[csprbit],1    cmp byte[csprbit],1    je near .clearcsprmem    pop ebx    pop esi    xor ecx,ecx    xor ecx,ecx    ret.clearcsprmem    xor eax,eax    mov ecx,64    mov edi,sprpriodata+16    rep stosd    pop ebx    pop esi    ret.drawsingle    push esi    push ebx    mov edi,esi    mov esi,[sprtbng+ebx*4]    xor edx,edx    mov dl,[NGNumSpr]    and edx,0FFh    shl edx,3    sub edx,8    add edx,esi    mov esi,edx    xor ebx,ebx.loopobj2    test byte[esi+7],20h    jnz near .drawspriteflipx2    push edx    mov bx,[esi]    mov dh,[esi+6]    mov esi,[esi+2]    sprdrawa sprdrawprbwb    pop edx    sub edx,8    mov esi,edx    dec byte[NGNumSpr]    jnz near .loopobj2    pop ebx    pop esi    xor ecx,ecx    ret.drawspriteflipx2    push edx    mov bx,[esi]    mov dh,[esi+6]    mov esi,[esi+2]    sprdrawaf sprdrawprbwb    pop edx    sub edx,8    mov esi,edx    dec byte[NGNumSpr]    jnz near .loopobj2    pop ebx    pop esi    xor ecx,ecx    retNEWSYM drawsprngm7w    mov [NGNumSpr],cl    mov ecx,[objclineptr+ebx*4]    add ecx,[ngwinptr]    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 dl,[esi+7]    and edx,03h    cmp edx,[csprival]    jne near .notprio    mov dh,[esi+6]    mov esi,[esi+2]    mov dl,[csprbit]    sprdrawa sprdrawprawb    pop edx.nodrawspr    add edx,8    mov esi,edx    dec byte[NGNumSpr]    jnz near .loopobj    rol byte[csprbit],1    cmp byte[csprbit],1    je near .clearcsprmem    pop ebx    pop esi    xor ecx,ecx    ret.notprio    mov esi,[esi+2]    mov dl,[csprbit]    sprdrawa sprdrawpra2    pop edx    add edx,8    mov esi,edx    dec byte[NGNumSpr]    jnz near .loopobj    rol byte[csprbit],1    cmp byte[csprbit],1    je near .clearcsprmem    pop ebx    pop esi    xor ecx,ecx    ret.drawspriteflipx    mov bx,[esi]    push edx    mov dl,[esi+7]    and edx,03h    cmp edx,[csprival]    jne near .notpriof    mov dh,[esi+6]    mov esi,[esi+2]    mov dl,[csprbit]    sprdrawaf sprdrawprawb    pop edx    add edx,8    mov esi,edx    dec byte[NGNumSpr]    jnz near .loopobj    rol byte[csprbit],1    cmp byte[csprbit],1    je near .clearcsprmem.endobj    pop ebx    pop esi    xor ecx,ecx    ret.notpriof    mov esi,[esi+2]    mov dl,[csprbit]    sprdrawaf sprdrawpra2    pop edx    add edx,8    mov esi,edx    dec byte[NGNumSpr]    jnz near .loopobj    rol byte[csprbit],1    cmp byte[csprbit],1    je near .clearcsprmem    pop ebx    pop esi    xor ecx,ecx    ret.clearcsprmem    xor eax,eax    mov ecx,64    mov edi,sprpriodata+16    rep stosd    pop ebx    pop esi    ret.drawsingle    push esi    push ebx    mov edi,esi    mov esi,[sprtbng+ebx*4]    xor edx,edx    mov dl,[NGNumSpr]    and edx,0FFh    shl edx,3    sub edx,8    add edx,esi    mov esi,edx    xor ebx,ebx.loopobj2    test byte[esi+7],20h    jnz near .drawspriteflipx2    push edx    mov bx,[esi]    mov dh,[esi+6]    mov esi,[esi+2]    sprdrawa sprdrawprbwb    pop edx    sub edx,8    mov esi,edx    dec byte[NGNumSpr]    jnz near .loopobj2    pop ebx    pop esi    xor ecx,ecx    ret.drawspriteflipx2    push edx    mov bx,[esi]    mov dh,[esi+6]    mov esi,[esi+2]    sprdrawaf sprdrawprbwb    pop edx    sub edx,8    mov esi,edx    dec byte[NGNumSpr]    jnz near .loopobj2    pop ebx    pop esi    xor ecx,ecx    ret;*******************************************************; Prepare Sprite Priorities;*******************************************************NEWSYM makesprprtable    retNEWSYM preparesprpr    xor ebx,ebx    mov bl,[curypos]    mov eax,[sprleftpr+ebx*4]    mov [sprclprio],eax    cmp eax,00000001h    je .single    cmp eax,00000100h    je .single    cmp eax,00010000h    je .single    cmp eax,01000000h    je .single    mov dword[sprsingle],0    ret.single    mov dword[sprsingle],1    retSECTION .bssNEWSYM sprclprio,  resd 1NEWSYM sprsingle,  resd 1SECTION .text

⌨️ 快捷键说明

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