diff --git a/zsnes/src/cpu/e65816.inc b/zsnes/src/cpu/e65816.inc index b81cacc8..2f3b0303 100644 --- a/zsnes/src/cpu/e65816.inc +++ b/zsnes/src/cpu/e65816.inc @@ -494,23 +494,7 @@ COpCDm16:; CMP a CMPMacro16b COpCFm8: ; CMP al addr_al_8br - mov bl,[esi-1] - mov cx,[esi-3] - test ecx,8000h - jz .loweraddr2 - add ecx,[snesmmap+ebx*4] - jmp .nextaddr -.loweraddr2 - add ecx,[snesmap2+ebx*4] -.nextaddr - cmp ecx,esi - je .ne -.equal - xor ecx,ecx CMPMacro8b -.ne - xor al,al - jmp .equal COpCFm16:; CMP al addr_al_16br CMPMacro16b diff --git a/zsnes/src/init.asm b/zsnes/src/init.asm index 2dfc075f..daf82c01 100644 --- a/zsnes/src/init.asm +++ b/zsnes/src/init.asm @@ -2026,6 +2026,29 @@ NEWSYM initsnes mov dword[NoiseDisTemp],0 mov dword[NoiseDisTemp+4],0 + mov esi,[romdata] + add esi,7FC0h + cmp dword[esi],'MEGA' + jne .notmmx + cmp dword[esi+4],'MAN ' + jne .notmmx + cmp dword[esi+8],'X ' + jne .notmmx + mov esi,[romdata] + cmp byte[esi+824Ah],0F0h + jne .mmxa + mov byte[esi+824Ah],080h +.mmxa + cmp byte[esi+21FC3h],0F0h + jne .mmxb + mov byte[esi+21FC3h],080h +.mmxb + cmp byte[esi+2241Bh],0F0h + jne .mmxc + mov byte[esi+2241Bh],080h +.mmxc +.notmmx + mov esi,[romdata] add esi,7FC0h cmp word[esi],'BS' ; 7FFFFFA