vram read fix - Smash Tennis working again
This commit is contained in:
@@ -571,20 +571,23 @@ reg2138r:
|
|||||||
|
|
||||||
; Read VRAM Data (Low)
|
; Read VRAM Data (Low)
|
||||||
reg2139r:
|
reg2139r:
|
||||||
|
mov al,[vramread]
|
||||||
|
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
mov bx,[vramaddr]
|
mov bx,[vramaddr]
|
||||||
add ebx,[vram]
|
add ebx,[vram]
|
||||||
mov bl,[ebx]
|
mov bl,[ebx]
|
||||||
mov al,[vramread]
|
|
||||||
mov [vramread],bl
|
mov [vramread],bl
|
||||||
|
|
||||||
cmp byte[vramincr],0
|
cmp byte[vramincr],0
|
||||||
je .noincr
|
je near .noincr
|
||||||
mov bx,[addrincr]
|
mov bx,[addrincr]
|
||||||
add [vramaddr],bx
|
add [vramaddr],bx
|
||||||
cmp byte[vramincby8on],1
|
cmp byte[vramincby8on],1
|
||||||
jne .noincr
|
jne .noincr
|
||||||
dec byte[vramincby8left]
|
dec byte[vramincby8left]
|
||||||
jnz .noincr
|
jnz .noincr
|
||||||
|
|
||||||
add word[vramaddr],2
|
add word[vramaddr],2
|
||||||
mov bl,byte[vramincby8totl]
|
mov bl,byte[vramincby8totl]
|
||||||
mov byte[vramincby8left],bl
|
mov byte[vramincby8left],bl
|
||||||
@@ -601,20 +604,23 @@ reg2139r:
|
|||||||
|
|
||||||
; Read VRAM Data (High)
|
; Read VRAM Data (High)
|
||||||
reg213Ar:
|
reg213Ar:
|
||||||
|
mov al,[vramread2]
|
||||||
|
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
mov bx,[vramaddr]
|
mov bx,[vramaddr]
|
||||||
add ebx,[vram]
|
add ebx,[vram]
|
||||||
mov bl,[ebx+1]
|
mov bl,[ebx+1]
|
||||||
mov al,[vramread2]
|
|
||||||
mov [vramread2],bl
|
mov [vramread2],bl
|
||||||
|
|
||||||
cmp byte[vramincr],1
|
cmp byte[vramincr],1
|
||||||
je .noincr
|
je near .noincr
|
||||||
mov bx,[addrincr]
|
mov bx,[addrincr]
|
||||||
add [vramaddr],bx
|
add [vramaddr],bx
|
||||||
cmp byte[vramincby8on],1
|
cmp byte[vramincby8on],1
|
||||||
jne .noincr
|
jne .noincr
|
||||||
dec byte[vramincby8left]
|
dec byte[vramincby8left]
|
||||||
jnz .noincr
|
jnz .noincr
|
||||||
|
|
||||||
add word[vramaddr],2
|
add word[vramaddr],2
|
||||||
mov bl,byte[vramincby8totl]
|
mov bl,byte[vramincby8totl]
|
||||||
mov byte[vramincby8left],bl
|
mov byte[vramincby8left],bl
|
||||||
|
|||||||
@@ -906,6 +906,17 @@ reg2117w:
|
|||||||
mov byte[vramaddr+1],al
|
mov byte[vramaddr+1],al
|
||||||
shl word[vramaddr],1
|
shl word[vramaddr],1
|
||||||
mov byte[vramread],0
|
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
|
ret
|
||||||
|
|
||||||
; Video port data (Low)
|
; Video port data (Low)
|
||||||
@@ -1166,9 +1177,17 @@ reg2122w:
|
|||||||
reg2123w:
|
reg2123w:
|
||||||
mov bl,al
|
mov bl,al
|
||||||
and bl,0Fh
|
and bl,0Fh
|
||||||
|
test bl,0Ah
|
||||||
|
jnz .nen1
|
||||||
|
; or bl,02h
|
||||||
|
.nen1
|
||||||
mov [winbg1en],bl
|
mov [winbg1en],bl
|
||||||
mov bl,al
|
mov bl,al
|
||||||
shr bl,4
|
shr bl,4
|
||||||
|
test bl,0Ah
|
||||||
|
jnz .nen2
|
||||||
|
; or bl,02h
|
||||||
|
.nen2
|
||||||
mov [winbg2en],bl
|
mov [winbg2en],bl
|
||||||
ret
|
ret
|
||||||
|
|
||||||
@@ -1176,9 +1195,17 @@ reg2123w:
|
|||||||
reg2124w:
|
reg2124w:
|
||||||
mov bl,al
|
mov bl,al
|
||||||
and bl,0Fh
|
and bl,0Fh
|
||||||
|
test bl,0Ah
|
||||||
|
jnz .nen1
|
||||||
|
; or bl,02h
|
||||||
|
.nen1
|
||||||
mov [winbg3en],bl
|
mov [winbg3en],bl
|
||||||
mov bl,al
|
mov bl,al
|
||||||
shr bl,4
|
shr bl,4
|
||||||
|
test bl,0Ah
|
||||||
|
jnz .nen2
|
||||||
|
; or bl,02h
|
||||||
|
.nen2
|
||||||
mov [winbg4en],bl
|
mov [winbg4en],bl
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user