diff --git a/zsnes/src/cpu/memory.asm b/zsnes/src/cpu/memory.asm index 013dbdd6..7c3f71dc 100644 --- a/zsnes/src/cpu/memory.asm +++ b/zsnes/src/cpu/memory.asm @@ -4285,6 +4285,10 @@ NEWSYM memaccessbankr1648mb NEWSYM sramaccessbankr8 push ecx + cmp bl,0F0h + jne .notf0 + sub bl,80h +.notf0 sub bl,70h shl ebx,15 add ecx,ebx @@ -4302,6 +4306,10 @@ NEWSYM sramaccessbankr16 NEWSYM sramaccessbankw8 push ecx sub bl,70h + cmp bl,0F0h + jne .notf0 + sub bl,80h +.notf0 shl ebx,15 add ecx,ebx call sramaccessbankw8b @@ -4309,6 +4317,10 @@ NEWSYM sramaccessbankw8 ret NEWSYM sramaccessbankw16 push ecx + cmp bl,0F0h + jne .notf0 + sub bl,80h +.notf0 sub bl,70h shl ebx,15 add ecx,ebx diff --git a/zsnes/src/init.asm b/zsnes/src/init.asm index fd40129d..29403f5a 100644 --- a/zsnes/src/init.asm +++ b/zsnes/src/init.asm @@ -5993,6 +5993,26 @@ NEWSYM CheckROMType mov dword[memtabler16+79h*4],memaccessbankr16 mov dword[memtablew16+79h*4],memaccessbankw16 + cmp byte[romtype],1 + jne near .notlorom + mov dword[memtabler8+0F0h*4],sramaccessbankr8 + mov dword[memtablew8+0F0h*4],sramaccessbankw8 + mov dword[memtabler16+0F0h*4],sramaccessbankr16 + mov dword[memtablew16+0F0h*4],sramaccessbankw16 + mov dword[memtabler8+0F1h*4],sramaccessbankr8 + mov dword[memtablew8+0F1h*4],sramaccessbankw8 + mov dword[memtabler16+0F1h*4],sramaccessbankr16 + mov dword[memtablew16+0F1h*4],sramaccessbankw16 + mov dword[memtabler8+0F2h*4],sramaccessbankr8 + mov dword[memtablew8+0F2h*4],sramaccessbankw8 + mov dword[memtabler16+0F2h*4],sramaccessbankr16 + mov dword[memtablew16+0F2h*4],sramaccessbankw16 + mov dword[memtabler8+0F3h*4],sramaccessbankr8 + mov dword[memtablew8+0F3h*4],sramaccessbankw8 + mov dword[memtabler16+0F3h*4],sramaccessbankr16 + mov dword[memtablew16+0F3h*4],sramaccessbankw16 +.notlorom + ; Chip Detection mov byte[SFXEnable],0 mov byte[C4Enable],0