From bf196afea8fc09e9f4cab2c0e9bd0870379bfde1 Mon Sep 17 00:00:00 2001 From: zsknight <> Date: Fri, 18 May 2001 01:02:21 +0000 Subject: [PATCH] VRam read fix (fixes Equinox) --- zsnes/src/cpu/regs.inc | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/zsnes/src/cpu/regs.inc b/zsnes/src/cpu/regs.inc index aec3ac61..be49f37c 100644 --- a/zsnes/src/cpu/regs.inc +++ b/zsnes/src/cpu/regs.inc @@ -293,7 +293,7 @@ NEWSYM bg3scroly, dw 0 ; background 3 y position NEWSYM bg4scroly, dw 0 ; background 4 y position NEWSYM addrincr, dw 2 ; vram increment (2,64,128,256) NEWSYM vramincr, db 0 ; 0 = inrement at 2118/2139, 1 = 2119,213A -NEWSYM vramread, db 0 ; 0 = address set, 1 = already read once +NEWSYM vramread, db 0 ; previous character for vram read NEWSYM vramaddr, dd 0 ; vram address NEWSYM cgaddr, dw 0 ; cg (palette) address NEWSYM cgmod, db 0 ; if cgram is modified or not @@ -389,8 +389,9 @@ NEWSYM SDD1BankA, db 0 NEWSYM SDD1BankB, db 1 NEWSYM SDD1BankC, db 2 NEWSYM SDD1BankD, db 3 +NEWSYM vramread2, db 0 ; previous character for vram read -NEWSYM tempdat, times 484 db 0 ; expandable area +NEWSYM tempdat, times 483 db 0 ; expandable area num2writeppureg equ $-sndrot ; pharos equ hack *sigh* @@ -573,11 +574,11 @@ reg2139r: xor ebx,ebx mov bx,[vramaddr] add ebx,[vram] - mov al,[ebx] + mov bl,[ebx] + mov al,[vramread] + mov [vramread],bl cmp byte[vramincr],0 je .noincr - cmp byte[vramread],0 - je .noincr2 mov bx,[addrincr] add [vramaddr],bx cmp byte[vramincby8on],1 @@ -597,20 +598,17 @@ reg2139r: sub word[vramaddr],16 .noincr ret -.noincr2 - mov byte[vramread],1 - ret ; Read VRAM Data (High) reg213Ar: xor ebx,ebx mov bx,[vramaddr] add ebx,[vram] - mov al,[ebx+1] + mov bl,[ebx+1] + mov al,[vramread2] + mov [vramread2],bl cmp byte[vramincr],1 je .noincr - cmp byte[vramread],0 - je .noincr2 mov bx,[addrincr] add [vramaddr],bx cmp byte[vramincby8on],1 @@ -630,9 +628,6 @@ reg213Ar: sub word[vramaddr],16 .noincr ret -.noincr2 - mov byte[vramread],1 - ret ; Read CGRAM Data reg213Br: