VRam read fix (fixes Equinox)
This commit is contained in:
@@ -293,7 +293,7 @@ NEWSYM bg3scroly, dw 0 ; background 3 y position
|
|||||||
NEWSYM bg4scroly, dw 0 ; background 4 y position
|
NEWSYM bg4scroly, dw 0 ; background 4 y position
|
||||||
NEWSYM addrincr, dw 2 ; vram increment (2,64,128,256)
|
NEWSYM addrincr, dw 2 ; vram increment (2,64,128,256)
|
||||||
NEWSYM vramincr, db 0 ; 0 = inrement at 2118/2139, 1 = 2119,213A
|
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 vramaddr, dd 0 ; vram address
|
||||||
NEWSYM cgaddr, dw 0 ; cg (palette) address
|
NEWSYM cgaddr, dw 0 ; cg (palette) address
|
||||||
NEWSYM cgmod, db 0 ; if cgram is modified or not
|
NEWSYM cgmod, db 0 ; if cgram is modified or not
|
||||||
@@ -389,8 +389,9 @@ NEWSYM SDD1BankA, db 0
|
|||||||
NEWSYM SDD1BankB, db 1
|
NEWSYM SDD1BankB, db 1
|
||||||
NEWSYM SDD1BankC, db 2
|
NEWSYM SDD1BankC, db 2
|
||||||
NEWSYM SDD1BankD, db 3
|
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
|
num2writeppureg equ $-sndrot
|
||||||
; pharos equ hack *sigh*
|
; pharos equ hack *sigh*
|
||||||
@@ -573,11 +574,11 @@ reg2139r:
|
|||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
mov bx,[vramaddr]
|
mov bx,[vramaddr]
|
||||||
add ebx,[vram]
|
add ebx,[vram]
|
||||||
mov al,[ebx]
|
mov bl,[ebx]
|
||||||
|
mov al,[vramread]
|
||||||
|
mov [vramread],bl
|
||||||
cmp byte[vramincr],0
|
cmp byte[vramincr],0
|
||||||
je .noincr
|
je .noincr
|
||||||
cmp byte[vramread],0
|
|
||||||
je .noincr2
|
|
||||||
mov bx,[addrincr]
|
mov bx,[addrincr]
|
||||||
add [vramaddr],bx
|
add [vramaddr],bx
|
||||||
cmp byte[vramincby8on],1
|
cmp byte[vramincby8on],1
|
||||||
@@ -597,20 +598,17 @@ reg2139r:
|
|||||||
sub word[vramaddr],16
|
sub word[vramaddr],16
|
||||||
.noincr
|
.noincr
|
||||||
ret
|
ret
|
||||||
.noincr2
|
|
||||||
mov byte[vramread],1
|
|
||||||
ret
|
|
||||||
|
|
||||||
; Read VRAM Data (High)
|
; Read VRAM Data (High)
|
||||||
reg213Ar:
|
reg213Ar:
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
mov bx,[vramaddr]
|
mov bx,[vramaddr]
|
||||||
add ebx,[vram]
|
add ebx,[vram]
|
||||||
mov al,[ebx+1]
|
mov bl,[ebx+1]
|
||||||
|
mov al,[vramread2]
|
||||||
|
mov [vramread2],bl
|
||||||
cmp byte[vramincr],1
|
cmp byte[vramincr],1
|
||||||
je .noincr
|
je .noincr
|
||||||
cmp byte[vramread],0
|
|
||||||
je .noincr2
|
|
||||||
mov bx,[addrincr]
|
mov bx,[addrincr]
|
||||||
add [vramaddr],bx
|
add [vramaddr],bx
|
||||||
cmp byte[vramincby8on],1
|
cmp byte[vramincby8on],1
|
||||||
@@ -630,9 +628,6 @@ reg213Ar:
|
|||||||
sub word[vramaddr],16
|
sub word[vramaddr],16
|
||||||
.noincr
|
.noincr
|
||||||
ret
|
ret
|
||||||
.noincr2
|
|
||||||
mov byte[vramread],1
|
|
||||||
ret
|
|
||||||
|
|
||||||
; Read CGRAM Data
|
; Read CGRAM Data
|
||||||
reg213Br:
|
reg213Br:
|
||||||
|
|||||||
Reference in New Issue
Block a user