From cb00272c78592746b2eb9c5afc4bec974e229000 Mon Sep 17 00:00:00 2001 From: n-a-c-h <> Date: Fri, 4 Jul 2003 05:07:49 +0000 Subject: [PATCH] Fixed BS checksum calculation. --- zsnes/src/init.asm | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/zsnes/src/init.asm b/zsnes/src/init.asm index 05762d67..209ba0f7 100644 --- a/zsnes/src/init.asm +++ b/zsnes/src/init.asm @@ -5421,8 +5421,21 @@ NEWSYM showinfogui je .nobs mov dword[CSStatus+29],'BROA' mov dword[CSStatus+33],'DCST' + ;Get checksum of header alone for subtraction + sub esi,41 + xor eax,eax + mov ecx,48 +.bssubloop + movzx ebx,byte[esi] + add ax,bx + inc esi + dec ecx + jnz .bssubloop + mov bx,[Checksumvalue] + sub bx,ax + mov [Checksumvalue],bx ;dummy out date so CRC32 matches - sub esi,3 + sub esi,10 mov word[esi],042h ;42 is the answer, and the uCONSRT standard .nobs