From 57f110a2dd376e5ca9115d9a342ec1138cb4f429 Mon Sep 17 00:00:00 2001 From: zsknight <> Date: Sat, 19 May 2001 01:24:16 +0000 Subject: [PATCH] vram read fix - Smash Tennis working again --- zsnes/src/cpu/regs.inc | 14 ++++++++++---- zsnes/src/cpu/regsw.inc | 27 +++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 4 deletions(-) diff --git a/zsnes/src/cpu/regs.inc b/zsnes/src/cpu/regs.inc index be49f37c..6d246ba5 100644 --- a/zsnes/src/cpu/regs.inc +++ b/zsnes/src/cpu/regs.inc @@ -571,20 +571,23 @@ reg2138r: ; Read VRAM Data (Low) reg2139r: + mov al,[vramread] + xor ebx,ebx mov bx,[vramaddr] add ebx,[vram] mov bl,[ebx] - mov al,[vramread] mov [vramread],bl + cmp byte[vramincr],0 - je .noincr + je near .noincr mov bx,[addrincr] add [vramaddr],bx cmp byte[vramincby8on],1 jne .noincr dec byte[vramincby8left] jnz .noincr + add word[vramaddr],2 mov bl,byte[vramincby8totl] mov byte[vramincby8left],bl @@ -601,20 +604,23 @@ reg2139r: ; Read VRAM Data (High) reg213Ar: + mov al,[vramread2] + xor ebx,ebx mov bx,[vramaddr] add ebx,[vram] mov bl,[ebx+1] - mov al,[vramread2] mov [vramread2],bl + cmp byte[vramincr],1 - je .noincr + je near .noincr mov bx,[addrincr] add [vramaddr],bx cmp byte[vramincby8on],1 jne .noincr dec byte[vramincby8left] jnz .noincr + add word[vramaddr],2 mov bl,byte[vramincby8totl] mov byte[vramincby8left],bl diff --git a/zsnes/src/cpu/regsw.inc b/zsnes/src/cpu/regsw.inc index e1bb482f..d823ad33 100644 --- a/zsnes/src/cpu/regsw.inc +++ b/zsnes/src/cpu/regsw.inc @@ -906,6 +906,17 @@ reg2117w: mov byte[vramaddr+1],al shl word[vramaddr],1 mov byte[vramread],0 + + xor ebx,ebx + mov bx,[vramaddr] + add ebx,[vram] + mov bl,[ebx] + mov [vramread],bl + xor ebx,ebx + mov bx,[vramaddr] + add ebx,[vram] + mov bl,[ebx+1] + mov [vramread2],bl ret ; Video port data (Low) @@ -1166,9 +1177,17 @@ reg2122w: reg2123w: mov bl,al and bl,0Fh + test bl,0Ah + jnz .nen1 +; or bl,02h +.nen1 mov [winbg1en],bl mov bl,al shr bl,4 + test bl,0Ah + jnz .nen2 +; or bl,02h +.nen2 mov [winbg2en],bl ret @@ -1176,9 +1195,17 @@ reg2123w: reg2124w: mov bl,al and bl,0Fh + test bl,0Ah + jnz .nen1 +; or bl,02h +.nen1 mov [winbg3en],bl mov bl,al shr bl,4 + test bl,0Ah + jnz .nen2 +; or bl,02h +.nen2 mov [winbg4en],bl ret