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

📄 fxemu2c.asm

📁 SFC游戏模拟器 snes9x 1.43 的原代码
💻 ASM
📖 第 1 页 / 共 5 页
字号:
NEWSYM FxOpdA5A1    ; LMS rn,(yy)  load word from RAM (short address)   LMSRNc 5NEWSYM FxOpdA6A1    ; LMS rn,(yy)  load word from RAM (short address)   LMSRNc 6NEWSYM FxOpdA7A1    ; LMS rn,(yy)  load word from RAM (short address)   LMSRNc 7NEWSYM FxOpdA8A1    ; LMS rn,(yy)  load word from RAM (short address)   LMSRNc 8NEWSYM FxOpdA9A1    ; LMS rn,(yy)  load word from RAM (short address)   LMSRNc 9NEWSYM FxOpdAAA1    ; LMS rn,(yy)  load word from RAM (short address)   LMSRNc 10NEWSYM FxOpdABA1    ; LMS rn,(yy)  load word from RAM (short address)   LMSRNc 11NEWSYM FxOpdACA1    ; LMS rn,(yy)  load word from RAM (short address)   LMSRNc 12NEWSYM FxOpdADA1    ; LMS rn,(yy)  load word from RAM (short address)   LMSRNc 13NEWSYM FxOpdAEA1    ; LMS rn,(yy)  load word from RAM (short address)   xor eax,eax   mov al,[ebp]   add eax,eax   inc ebp   add eax,[SfxRAMMem]   mov cl,[ebp]   mov dword [SfxLastRamAdr],eax   mov ebx,[eax]              ; Read word from ram   inc ebp   mov [SfxR0+14*4],bx              ; Write data   UpdateR14   CLRFLAGS   FXReturnNEWSYM FxOpdAFA1    ; LMS rn,(yy)  load word from RAM (short address)   xor eax,eax   mov al,[ebp]   add eax,eax   inc ebp   add eax,[SfxRAMMem]   mov cl,[ebp]   mov dword [SfxLastRamAdr],eax   mov ebx,[eax]              ; Read word from ram   and ebx,0FFFFh   mov ebp,[SfxCPB]   add ebp,ebx   CLRFLAGS   FXReturnNEWSYM FxOpdA0A2    ; SMS (yy),rn  store word in RAM (short address)   SMSRNc 0NEWSYM FxOpdA1A2    ; SMS (yy),rn  store word in RAM (short address)   SMSRNc 1NEWSYM FxOpdA2A2    ; SMS (yy),rn  store word in RAM (short address)   SMSRNc 2NEWSYM FxOpdA3A2    ; SMS (yy),rn  store word in RAM (short address)   SMSRNc 3NEWSYM FxOpdA4A2    ; SMS (yy),rn  store word in RAM (short address)   SMSRNc 4NEWSYM FxOpdA5A2    ; SMS (yy),rn  store word in RAM (short address)   SMSRNc 5NEWSYM FxOpdA6A2    ; SMS (yy),rn  store word in RAM (short address)   SMSRNc 6NEWSYM FxOpdA7A2    ; SMS (yy),rn  store word in RAM (short address)   SMSRNc 7NEWSYM FxOpdA8A2    ; SMS (yy),rn  store word in RAM (short address)   SMSRNc 8NEWSYM FxOpdA9A2    ; SMS (yy),rn  store word in RAM (short address)   SMSRNc 9NEWSYM FxOpdAAA2    ; SMS (yy),rn  store word in RAM (short address)   SMSRNc 10NEWSYM FxOpdABA2    ; SMS (yy),rn  store word in RAM (short address)   SMSRNc 11NEWSYM FxOpdACA2    ; SMS (yy),rn  store word in RAM (short address)   SMSRNc 12NEWSYM FxOpdADA2    ; SMS (yy),rn  store word in RAM (short address)   SMSRNc 13NEWSYM FxOpdAEA2    ; SMS (yy),rn  store word in RAM (short address)   SMSRNc 14NEWSYM FxOpdAFA2    ; SMS (yy),rn  store word in RAM (short address)   xor eax,eax   mov ebx,ebp   sub ebx,[SfxCPB]   mov al,[ebp]   inc ebp   add eax,eax   FETCHPIPE   add eax,[SfxRAMMem]   mov dword [SfxLastRamAdr],eax   inc ebp   mov [eax],bx              ; Write word to ram   CLRFLAGS   FXReturnNEWSYM FxOpdB0      ; FROM rn   set source register   FROMRNd 0NEWSYM FxOpdB1      ; FROM rn   set source register   FROMRNd 1NEWSYM FxOpdB2      ; FROM rn   set source register   FROMRNd 2NEWSYM FxOpdB3      ; FROM rn   set source register   FROMRNd 3NEWSYM FxOpdB4      ; FROM rn   set source register   FROMRNd 4NEWSYM FxOpdB5      ; FROM rn   set source register   FROMRNd 5NEWSYM FxOpdB6      ; FROM rn   set source register   FROMRNd 6NEWSYM FxOpdB7      ; FROM rn   set source register   FROMRNd 7NEWSYM FxOpdB8      ; FROM rn   set source register   FROMRNd 8NEWSYM FxOpdB9      ; FROM rn   set source register   FROMRNd 9NEWSYM FxOpdBA      ; FROM rn   set source register   FROMRNd 10NEWSYM FxOpdBB      ; FROM rn   set source register   FROMRNd 11NEWSYM FxOpdBC      ; FROM rn   set source register   FROMRNd 12NEWSYM FxOpdBD      ; FROM rn   set source register   FROMRNd 13NEWSYM FxOpdBE      ; FROM rn   set source register   FROMRNd 14NEWSYM FxOpdBF      ; FROM rn   set source register   FETCHPIPE   mov esi,SfxR0+15*4   inc ebp                ; Increase program counter   mov eax,ebp   sub eax,[SfxCPB]   mov [SfxR15],eax   call [FxTableb+ecx*4]   mov esi,SfxR0   FXReturnNEWSYM FxOpdC0      ; HIB       move high-byte to low-byte      ; V   mov eax,[esi]            ; Read Source   FETCHPIPE   and eax,0FF00h   mov dword [SfxSignZero],eax   shr eax,8   inc ebp   mov [edi],eax   CLRFLAGS   FXReturnNEWSYM FxOpdC1      ; OR rn     or rn   ORRNc 1NEWSYM FxOpdC2      ; OR rn     or rn   ORRNc 2NEWSYM FxOpdC3      ; OR rn     or rn   ORRNc 3NEWSYM FxOpdC4      ; OR rn     or rn   ORRNc 4NEWSYM FxOpdC5      ; OR rn     or rn   ORRNc 5NEWSYM FxOpdC6      ; OR rn     or rn   ORRNc 6NEWSYM FxOpdC7      ; OR rn     or rn   ORRNc 7NEWSYM FxOpdC8      ; OR rn     or rn   ORRNc 8NEWSYM FxOpdC9      ; OR rn     or rn   ORRNc 9NEWSYM FxOpdCA      ; OR rn     or rn   ORRNc 10NEWSYM FxOpdCB      ; OR rn     or rn   ORRNc 11NEWSYM FxOpdCC      ; OR rn     or rn   ORRNc 12NEWSYM FxOpdCD      ; OR rn     or rn   ORRNc 13NEWSYM FxOpdCE      ; OR rn     or rn   ORRNc 14NEWSYM FxOpdCF      ; OR rn     or rn   mov eax,[esi]            ; Read Source   mov ebx,ebp   FETCHPIPE   sub ebx,[SfxCPB]   or eax,ebx   inc ebp   mov [edi],eax            ; Write DREG   mov [SfxSignZero],eax   CLRFLAGS   FXReturnNEWSYM FxOpdC1A1    ; XOR rn    xor rn   XORRNc 1NEWSYM FxOpdC2A1    ; XOR rn    xor rn   XORRNc 2NEWSYM FxOpdC3A1    ; XOR rn    xor rn   XORRNc 3NEWSYM FxOpdC4A1    ; XOR rn    xor rn   XORRNc 4NEWSYM FxOpdC5A1    ; XOR rn    xor rn   XORRNc 5NEWSYM FxOpdC6A1    ; XOR rn    xor rn   XORRNc 6NEWSYM FxOpdC7A1    ; XOR rn    xor rn   XORRNc 7NEWSYM FxOpdC8A1    ; XOR rn    xor rn   XORRNc 8NEWSYM FxOpdC9A1    ; XOR rn    xor rn   XORRNc 9NEWSYM FxOpdCAA1    ; XOR rn    xor rn   XORRNc 10NEWSYM FxOpdCBA1    ; XOR rn    xor rn   XORRNc 11NEWSYM FxOpdCCA1    ; XOR rn    xor rn   XORRNc 12NEWSYM FxOpdCDA1    ; XOR rn    xor rn   XORRNc 13NEWSYM FxOpdCEA1    ; XOR rn    xor rn   XORRNc 14NEWSYM FxOpdCFA1    ; XOR rn    xor rn   FETCHPIPE   mov eax,[esi]            ; Read Source   mov ebx,ebp   sub ebx,[SfxCPB]   xor eax,ebx   inc ebp   mov [edi],eax            ; Write DREG   mov [SfxSignZero],eax   CLRFLAGS   FXReturnNEWSYM FxOpdC1A2    ; OR #n     OR #n   ORIc 1NEWSYM FxOpdC2A2    ; OR #n     OR #n   ORIc 2NEWSYM FxOpdC3A2    ; OR #n     OR #n   ORIc 3NEWSYM FxOpdC4A2    ; OR #n     OR #n   ORIc 4NEWSYM FxOpdC5A2    ; OR #n     OR #n   ORIc 5NEWSYM FxOpdC6A2    ; OR #n     OR #n   ORIc 6NEWSYM FxOpdC7A2    ; OR #n     OR #n   ORIc 7NEWSYM FxOpdC8A2    ; OR #n     OR #n   ORIc 8NEWSYM FxOpdC9A2    ; OR #n     OR #n   ORIc 9NEWSYM FxOpdCAA2    ; OR #n     OR #n   ORIc 10NEWSYM FxOpdCBA2    ; OR #n     OR #n   ORIc 11NEWSYM FxOpdCCA2    ; OR #n     OR #n   ORIc 12NEWSYM FxOpdCDA2    ; OR #n     OR #n   ORIc 13NEWSYM FxOpdCEA2    ; OR #n     OR #n   ORIc 14NEWSYM FxOpdCFA2    ; OR #n     OR #n   ORIc 15NEWSYM FxOpdC1A3    ; XOR #n    xor #n   XORIc 1NEWSYM FxOpdC2A3    ; XOR #n    xor #n   XORIc 2NEWSYM FxOpdC3A3    ; XOR #n    xor #n   XORIc 3NEWSYM FxOpdC4A3    ; XOR #n    xor #n   XORIc 4NEWSYM FxOpdC5A3    ; XOR #n    xor #n   XORIc 5NEWSYM FxOpdC6A3    ; XOR #n    xor #n   XORIc 6NEWSYM FxOpdC7A3    ; XOR #n    xor #n   XORIc 7NEWSYM FxOpdC8A3    ; XOR #n    xor #n   XORIc 8NEWSYM FxOpdC9A3    ; XOR #n    xor #n   XORIc 9NEWSYM FxOpdCAA3    ; XOR #n    xor #n   XORIc 10NEWSYM FxOpdCBA3    ; XOR #n    xor #n   XORIc 11NEWSYM FxOpdCCA3    ; XOR #n    xor #n   XORIc 12NEWSYM FxOpdCDA3    ; XOR #n    xor #n   XORIc 13NEWSYM FxOpdCEA3    ; XOR #n    xor #n   XORIc 14NEWSYM FxOpdCFA3    ; XOR #n    xor #n   XORIc 15NEWSYM FxOpdD0      ; INC rn    increase by one   INCRNc 0NEWSYM FxOpdD1      ; INC rn    increase by one   INCRNc 1NEWSYM FxOpdD2      ; INC rn    increase by one   INCRNc 2NEWSYM FxOpdD3      ; INC rn    increase by one   INCRNc 3NEWSYM FxOpdD4      ; INC rn    increase by one   INCRNc 4NEWSYM FxOpdD5      ; INC rn    increase by one   INCRNc 5NEWSYM FxOpdD6      ; INC rn    increase by one   INCRNc 6NEWSYM FxOpdD7      ; INC rn    increase by one   INCRNc 7NEWSYM FxOpdD8      ; INC rn    increase by one   INCRNc 8NEWSYM FxOpdD9      ; INC rn    increase by one   INCRNc 9NEWSYM FxOpdDA      ; INC rn    increase by one   INCRNc 10NEWSYM FxOpdDB      ; INC rn    increase by one   INCRNc 11NEWSYM FxOpdDC      ; INC rn    increase by one   INCRNc 12NEWSYM FxOpdDD      ; INC rn    increase by one   INCRNc 13NEWSYM FxOpdDE      ; INC rn    increase by one   FETCHPIPE   mov eax,[SfxR0+14*4]            ; Read Source   inc ax   mov [SfxR0+14*4],eax   mov [SfxSignZero],eax   CLRFLAGS   inc ebp   UpdateR14   FXReturnNEWSYM FxOpdDF      ; GETC      transfer ROM buffer to color register   mov eax,[SfxRomBuffer]   FETCHPIPE   mov eax,[eax]   test byte[SfxPOR],04h   jz .nohighnibble   mov bl,al   shr bl,4   and al,0F0h   or al,bl.nohighnibble   test byte[SfxPOR],08h   jnz .preserveupper   cmp [SfxCOLR],al   je .nocolchange   mov [SfxCOLR],al   and eax,0FFh   mov ebx,[fxbit01+eax*4]   mov [fxbit01pcal],ebx   mov ebx,[fxbit23+eax*4]   mov [fxbit23pcal],ebx   mov ebx,[fxbit45+eax*4]   mov [fxbit45pcal],ebx   mov ebx,[fxbit67+eax*4]   mov [fxbit67pcal],ebx.nocolchange   CLRFLAGS   inc ebp                ; Increase program counter   FXReturn.preserveupper   mov bl,[SfxCOLR]   and al,0Fh   and bl,0F0h   or al,bl   cmp [SfxCOLR],al   je .nocolchange   mov [SfxCOLR],al   and eax,0FFh   mov ebx,[fxbit01+eax*4]   mov [fxbit01pcal],ebx   mov ebx,[fxbit23+eax*4]   mov [fxbit23pcal],ebx   mov ebx,[fxbit45+eax*4]   mov [fxbit45pcal],ebx   mov ebx,[fxbit67+eax*4]   mov [fxbit67pcal],ebx   CLRFLAGS   inc ebp                ; Increase program counter   FXReturnNEWSYM FxOpdDFA2    ; RAMB      set current RAM bank    ; Verified   mov eax,[esi]            ; Read Source   mov ebx,[SfxnRamBanks]   FETCHPIPE   dec ebx   and eax,ebx   mov dword [SfxRAMBR],eax   shl eax,16   add eax,[sfxramdata]   mov dword [SfxRAMMem],eax   CLRFLAGS   inc ebp   FXReturnNEWSYM FxOpdDFA3    ; ROMB      set current ROM bank    ; Verified   mov eax,[esi]            ; Read Source   and eax,07Fh   FETCHPIPE   mov dword [SfxROMBR],eax   mov eax,[SfxMemTable+eax*4]   mov [SfxCROM],eax   CLRFLAGS   inc ebp   FXReturnNEWSYM FxOpdE0      ; DEC rn    decrement by one   DECRNc 0NEWSYM FxOpdE1      ; DEC rn    decrement by one   DECRNc 1NEWSYM FxOpdE2      ; DEC rn    decrement by one   DECRNc 2NEWSYM FxOpdE3      ; DEC rn    decrement by one   DECRNc 3NEWSYM FxOpdE4      ; DEC rn    decrement by one   DECRNc 4NEWSYM FxOpdE5      ; DEC rn    decrement by one   DECRNc 5NEWSYM FxOpdE6      ; DEC rn    decrement by one   DECRNc 6NEWSYM FxOpdE7      ; DEC rn    decrement by one   DECRNc 7NEWSYM FxOpdE8      ; DEC rn    decrement by one   DECRNc 8NEWSYM FxOpdE9      ; DEC rn    decrement by one   DECRNc 9NEWSYM FxOpdEA      ; DEC rn    decrement by one   DECRNc 10NEWSYM FxOpdEB      ; DEC rn    decrement by one   DECRNc 11NEWSYM FxOpdEC      ; DEC rn    decrement by one   DECRNc 12NEWSYM FxOpdED      ; DEC rn    decrement by one   DECRNc 13NEWSYM FxOpdEE      ; DEC rn    decrement by one   dec word[SfxR0+14*4]   FETCHPIPE   mov eax,[SfxR0+14*4]            ; Read Source   mov [SfxSignZero],eax   UpdateR14   CLRFLAGS   inc ebp   FXReturnNEWSYM FxOpdEF      ; getb      get byte from ROM at address R14        ; V   FETCHPIPE   mov eax,[SfxRomBuffer]   inc ebp   mov eax,[eax]   and eax,0FFh;   cmp edi,SfxR15;   je .nor15   mov [edi],eax            ; Write DREG   CLRFLAGS   FXReturn.nor15   or eax,8000h   mov [edi],eax            ; Write DREG   CLRFLAGS   FXReturn   add eax,ebp   sub eax,[SfxCPB]   mov [SfxR15],eax   CLRFLAGS   FXReturnNEWSYM FxOpdEFA1    ; getbh     get high-byte from ROM at address R14   ; V   mov eax,[esi]            ; Read Source   mov ebx,[SfxRomBuffer]   and eax,0FFh   FETCHPIPE   mov ah,[ebx]   inc ebp   mov [edi],eax            ; Write DREG   CLRFLAGS   FXReturnNEWSYM FxOpdEFA2    ; ge

⌨️ 快捷键说明

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