From 34a2f529df36a2c517dd333b7fae7731597fe7b3 Mon Sep 17 00:00:00 2001 From: pagefault <> Date: Wed, 2 Apr 2003 18:20:22 +0000 Subject: [PATCH] Interleaved rom detection fix --- zsnes/src/init.asm | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/zsnes/src/init.asm b/zsnes/src/init.asm index 858bf5dd..9c39e643 100644 --- a/zsnes/src/init.asm +++ b/zsnes/src/init.asm @@ -6180,12 +6180,12 @@ NEWSYM CheckROMType mov byte[intldone],0 cmp byte[romtype],1 - je near .hirominterlcheck + jne near .nointerlcheck + xor ebx,ebx + xor edx,edx mov eax,[curromsize] imul eax,1048576 - shr eax,3 - shr eax,4 - imul eax,[curromsize] + shr eax,2 mov esi,[romdata] add esi,7FC0h add esi,eax @@ -6193,22 +6193,22 @@ NEWSYM CheckROMType mov ebx,[esi] inc esi mov edx,[esi] - shl edx,8 + shl edx,16 add ebx,edx inc esi add ebx,[esi] inc esi mov edx,[esi] - shl edx,8 + shl edx,16 add ebx,edx - cmp ebx,0FFFFh - jne near .nointerlcheck + cmp bx,0FFFFh + jne .interlcheck2 mov esi,[romdata] add esi,7FC0h add esi,eax add esi,25 cmp byte[esi],14 - jb near .nointerlcheck + jae .interlcheck2 mov esi,[romdata] add esi,7FC0h add esi,eax @@ -6223,32 +6223,33 @@ NEWSYM CheckROMType je near .interleaved cmp byte[esi],83 je near .interleaved - jmp .nointerlcheck -.hirominterlcheck + +.interlcheck2 + xor ebx,ebx + xor edx,edx mov esi,[romdata] - add esi,0FFC0h + add esi,7FC0h add esi,28 mov ebx,[esi] inc esi mov edx,[esi] - shl edx,8 + shl edx,16 add ebx,edx inc esi add ebx,[esi] inc esi mov edx,[esi] - shl edx,8 + shl edx,16 add ebx,edx - cmp ebx,0FFFFh + cmp bx,0FFFFh jne near .nointerlcheck mov esi,[romdata] - add esi,0FFC0h - add esi,eax + add esi,7FC0h add esi,25 cmp byte[esi],14 - jb .nointerlcheck + jae .nointerlcheck mov esi,[romdata] - add esi,0FFC0h + add esi,7FC0h add esi,eax add esi,21 cmp byte[esi],33