Fixed MegamanX problem
This commit is contained in:
@@ -37,7 +37,7 @@ EXTSYM ramsize,ramsizeand,sram
|
|||||||
EXTSYM ram7fa
|
EXTSYM ram7fa
|
||||||
EXTSYM DosExit,invalid,invopcd,previdmode,printhex8
|
EXTSYM DosExit,invalid,invopcd,previdmode,printhex8
|
||||||
EXTSYM SA1Status,IRAM,CurBWPtr,SA1RAMArea
|
EXTSYM SA1Status,IRAM,CurBWPtr,SA1RAMArea
|
||||||
EXTSYM SA1Overflow
|
EXTSYM SA1Overflow,OBCEnable
|
||||||
EXTSYM Sdd1Mode,Sdd1Bank,Sdd1Addr,Sdd1NewAddr,memtabler8,AddrNoIncr,SDD1BankA
|
EXTSYM Sdd1Mode,Sdd1Bank,Sdd1Addr,Sdd1NewAddr,memtabler8,AddrNoIncr,SDD1BankA
|
||||||
EXTSYM SPC7110Entries,spc7110romptr
|
EXTSYM SPC7110Entries,spc7110romptr
|
||||||
|
|
||||||
@@ -656,6 +656,38 @@ NEWSYM SprValAdd, db 0
|
|||||||
C4Data dd 0
|
C4Data dd 0
|
||||||
C4sprites dd 0
|
C4sprites dd 0
|
||||||
|
|
||||||
|
NEWSYM InitOBC
|
||||||
|
pushad
|
||||||
|
mov esi,[romdata]
|
||||||
|
add esi,4096*1024
|
||||||
|
mov [C4RamR],esi
|
||||||
|
mov [C4RamW],esi
|
||||||
|
mov [C4Ram],esi
|
||||||
|
add dword[C4RamW],8192*4
|
||||||
|
add dword[C4Ram],8192*8
|
||||||
|
mov ecx,8192
|
||||||
|
.c4loop
|
||||||
|
mov dword[esi],OBCReadReg
|
||||||
|
mov dword[esi+8192*4],OBCWriteReg
|
||||||
|
mov dword[esi+8192*8],0
|
||||||
|
add esi,4
|
||||||
|
dec ecx
|
||||||
|
jnz .c4loop
|
||||||
|
popad
|
||||||
|
ret
|
||||||
|
|
||||||
|
OBCReadReg:
|
||||||
|
add ecx,[C4Ram]
|
||||||
|
mov al,[ecx]
|
||||||
|
sub ecx,[C4Ram]
|
||||||
|
ret
|
||||||
|
|
||||||
|
OBCWriteReg
|
||||||
|
add ecx,[C4Ram]
|
||||||
|
mov [ecx],al
|
||||||
|
sub ecx,[C4Ram]
|
||||||
|
ret
|
||||||
|
|
||||||
NEWSYM InitC4
|
NEWSYM InitC4
|
||||||
pushad
|
pushad
|
||||||
mov esi,[romdata]
|
mov esi,[romdata]
|
||||||
@@ -2378,6 +2410,8 @@ NEWSYM regaccessbankr8
|
|||||||
je .sfxram
|
je .sfxram
|
||||||
cmp byte[C4Enable],1
|
cmp byte[C4Enable],1
|
||||||
je near .c4ram
|
je near .c4ram
|
||||||
|
cmp byte[OBCEnable],1
|
||||||
|
je near .c4ram
|
||||||
and ebx,7Fh
|
and ebx,7Fh
|
||||||
cmp bl,10h
|
cmp bl,10h
|
||||||
jb .dsp1
|
jb .dsp1
|
||||||
@@ -2480,6 +2514,8 @@ NEWSYM regaccessbankr16
|
|||||||
je .sfxram
|
je .sfxram
|
||||||
cmp byte[C4Enable],1
|
cmp byte[C4Enable],1
|
||||||
je near .c4ram
|
je near .c4ram
|
||||||
|
cmp byte[OBCEnable],1
|
||||||
|
je near .c4ram
|
||||||
and ebx,7Fh
|
and ebx,7Fh
|
||||||
cmp bl,10h
|
cmp bl,10h
|
||||||
jb .dsp1
|
jb .dsp1
|
||||||
@@ -2578,6 +2614,8 @@ NEWSYM regaccessbankw8
|
|||||||
je .sfxram
|
je .sfxram
|
||||||
cmp byte[C4Enable],1
|
cmp byte[C4Enable],1
|
||||||
je near .c4ram
|
je near .c4ram
|
||||||
|
cmp byte[OBCEnable],1
|
||||||
|
je near .c4ram
|
||||||
and ebx,7Fh
|
and ebx,7Fh
|
||||||
cmp bl,10h
|
cmp bl,10h
|
||||||
jb .dsp1
|
jb .dsp1
|
||||||
@@ -2678,6 +2716,8 @@ NEWSYM regaccessbankw16
|
|||||||
je .sfxram
|
je .sfxram
|
||||||
cmp byte[C4Enable],1
|
cmp byte[C4Enable],1
|
||||||
je near .c4ram
|
je near .c4ram
|
||||||
|
cmp byte[OBCEnable],1
|
||||||
|
je near .c4ram
|
||||||
and ebx,7Fh
|
and ebx,7Fh
|
||||||
cmp bl,10h
|
cmp bl,10h
|
||||||
jb .dsp1
|
jb .dsp1
|
||||||
@@ -3683,7 +3723,7 @@ NEWSYM sramaccessbankr8b
|
|||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
ret
|
ret
|
||||||
.noaccess
|
.noaccess
|
||||||
xor al,al
|
mov al,0FFh
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
ret
|
ret
|
||||||
|
|
||||||
@@ -3701,7 +3741,7 @@ NEWSYM sramaccessbankr16b
|
|||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
ret
|
ret
|
||||||
.noaccess
|
.noaccess
|
||||||
xor ax,ax
|
mov ax,0FFFFh
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user