Wordsize memory read at 001FFF fix (fixes Super Tetris 2)

This commit is contained in:
zsknight
2001-05-19 11:01:12 +00:00
parent 57f110a2dd
commit ccdd278443
2 changed files with 29 additions and 6 deletions

View File

@@ -2635,7 +2635,7 @@ NEWSYM regaccessbankr16
xor ebx,ebx xor ebx,ebx
ret ret
.regacc .regacc
cmp ecx,2000h cmp ecx,1FFFh
jae .regs jae .regs
mov ax,[wramdataa+ecx] mov ax,[wramdataa+ecx]
ret ret
@@ -2832,7 +2832,7 @@ NEWSYM regaccessbankw8
NEWSYM regaccessbankw16 NEWSYM regaccessbankw16
test ecx,8000h test ecx,8000h
jnz .romacc jnz .romacc
cmp ecx,2000h cmp ecx,1FFFh
jae .regs jae .regs
mov [wramdataa+ecx],ax mov [wramdataa+ecx],ax
ret ret
@@ -3016,14 +3016,16 @@ NEWSYM GenerateBank0Table
writetobank0table membank0w8rom,81h writetobank0table membank0w8rom,81h
writetobank0table membank0w8romram,1h writetobank0table membank0w8romram,1h
mov eax,Bank0datr16 mov eax,Bank0datr16
writetobank0table membank0r16ram,20h writetobank0table membank0r16ram,1Fh
writetobank0table membank0r16ramh,1
writetobank0table membank0r16reg,28h writetobank0table membank0r16reg,28h
writetobank0table membank0r16inv,17h writetobank0table membank0r16inv,17h
writetobank0table membank0r16chip,1Fh writetobank0table membank0r16chip,1Fh
writetobank0table membank0r16rom,81h writetobank0table membank0r16rom,81h
writetobank0table membank0r16romram,1h writetobank0table membank0r16romram,1h
mov eax,Bank0datw16 mov eax,Bank0datw16
writetobank0table membank0w16ram,20h writetobank0table membank0w16ram,1Fh
writetobank0table membank0w16ramh,1
writetobank0table membank0w16reg,28h writetobank0table membank0w16reg,28h
writetobank0table membank0w16inv,17h writetobank0table membank0w16inv,17h
writetobank0table membank0w16chip,1Fh writetobank0table membank0w16chip,1Fh
@@ -3148,9 +3150,19 @@ NEWSYM membank0r8romram ; 0000-1FFF
ret ret
; --- 16 BIT READ STUFF --- ; --- 16 BIT READ STUFF ---
NEWSYM membank0r16ram ; 0000-1FFF NEWSYM membank0r16ram ; 0000-1EFF
mov ax,[wramdataa+ebx+ecx] mov ax,[wramdataa+ebx+ecx]
ret ret
NEWSYM membank0r16ramh ; 1F00-1FFF
add ecx,ebx
cmp ecx,1FFFh
je .over
mov ax,[wramdataa+ecx]
ret
.over
mov al,[wramdataa+ecx]
xor ah,ah
ret
NEWSYM membank0r16reg ; 2000-48FF NEWSYM membank0r16reg ; 2000-48FF
add ecx,ebx add ecx,ebx
call dword near [regptra+ecx*4-8000h] call dword near [regptra+ecx*4-8000h]
@@ -3257,9 +3269,18 @@ NEWSYM membank0w8romram ; 0000-1FFF
ret ret
; --- 16 BIT WRITE STUFF --- ; --- 16 BIT WRITE STUFF ---
NEWSYM membank0w16ram ; 0000-1FFF NEWSYM membank0w16ram ; 0000-1EFF
mov [wramdataa+ebx+ecx],ax mov [wramdataa+ebx+ecx],ax
ret ret
NEWSYM membank0w16ramh ; 1F00-1FFF
add ecx,ebx
cmp ecx,1FFFh
je .over
mov [wramdataa+ecx],ax
ret
.over
mov [wramdataa+ecx],al
ret
NEWSYM membank0w16reg ; 2000-48FF NEWSYM membank0w16reg ; 2000-48FF
add ecx,ebx add ecx,ebx
call dword near [regptwa+ecx*4-8000h] call dword near [regptwa+ecx*4-8000h]

View File

@@ -766,7 +766,9 @@ NEWSYM vrama, times 65536 db 0
NEWSYM mode7tab, times 65536 db 0 NEWSYM mode7tab, times 65536 db 0
NEWSYM srama, times 65536 db 0 NEWSYM srama, times 65536 db 0
NEWSYM debugbufa, times 10000 db 0 NEWSYM debugbufa, times 10000 db 0
NEWSYM wramreadptr, dd 0
NEWSYM regptra, times 49152 db 0 NEWSYM regptra, times 49152 db 0
NEWSYM wramwriteptr, dd 0
NEWSYM regptwa, times 49152 db 0 NEWSYM regptwa, times 49152 db 0
; vcache.asm ; vcache.asm