S-DD1 mods
This commit is contained in:
@@ -1303,6 +1303,7 @@ NEWSYM endprog
|
|||||||
|
|
||||||
EXTSYM SDD1Array,SDD1Entry,SDD1Sort
|
EXTSYM SDD1Array,SDD1Entry,SDD1Sort
|
||||||
call SDD1Sort
|
call SDD1Sort
|
||||||
|
jmp .nodecomppack
|
||||||
cmp byte[SDD1Enable],0
|
cmp byte[SDD1Enable],0
|
||||||
jne .yesdecomppack
|
jne .yesdecomppack
|
||||||
cmp dword[SDD1Entry],0
|
cmp dword[SDD1Entry],0
|
||||||
|
|||||||
@@ -656,6 +656,7 @@ NEWSYM SprValAdd, db 0
|
|||||||
C4Data dd 0
|
C4Data dd 0
|
||||||
C4sprites dd 0
|
C4sprites dd 0
|
||||||
OBClog dd 0
|
OBClog dd 0
|
||||||
|
NumSprites db 0
|
||||||
|
|
||||||
NEWSYM InitOBC
|
NEWSYM InitOBC
|
||||||
pushad
|
pushad
|
||||||
@@ -690,10 +691,11 @@ NEWSYM InitOBC
|
|||||||
|
|
||||||
OBCSprites:
|
OBCSprites:
|
||||||
pushad
|
pushad
|
||||||
|
mov byte[NumSprites],0
|
||||||
mov esi,[C4Ram]
|
mov esi,[C4Ram]
|
||||||
mov edi,esi
|
mov edi,esi
|
||||||
add edi,1800h
|
add edi,1800h
|
||||||
add byte[OBCRegArray],1
|
add byte[OBCRegArray],2
|
||||||
and byte[OBCRegArray],0FEh
|
and byte[OBCRegArray],0FEh
|
||||||
.loop
|
.loop
|
||||||
cmp byte[OBCRegArray],0
|
cmp byte[OBCRegArray],0
|
||||||
@@ -709,12 +711,6 @@ OBCSprites:
|
|||||||
mov al,[esi+9]
|
mov al,[esi+9]
|
||||||
mov [edi+ebx+1],al
|
mov [edi+ebx+1],al
|
||||||
mov al,[esi+10] ;2,10
|
mov al,[esi+10] ;2,10
|
||||||
; cmp byte[esi+18],0
|
|
||||||
; je .zero
|
|
||||||
; mov al,[esi+17]
|
|
||||||
; mov [edi+ebx+1],al
|
|
||||||
; mov al,[esi+18]
|
|
||||||
;.zero
|
|
||||||
mov [edi+ebx+2],al
|
mov [edi+ebx+2],al
|
||||||
mov al,[esi+0Bh]
|
mov al,[esi+0Bh]
|
||||||
mov byte[edi+ebx+3],al
|
mov byte[edi+ebx+3],al
|
||||||
@@ -736,9 +732,15 @@ OBCSprites:
|
|||||||
and byte[edi+ebx],ah
|
and byte[edi+ebx],ah
|
||||||
or byte[edi+ebx],al
|
or byte[edi+ebx],al
|
||||||
|
|
||||||
|
inc byte[NumSprites]
|
||||||
add esi,16
|
add esi,16
|
||||||
jmp .loop
|
jmp .loop
|
||||||
.nomore
|
.nomore
|
||||||
|
|
||||||
|
mov esi,[C4Ram]
|
||||||
|
mov edi,esi
|
||||||
|
add edi,1800h
|
||||||
|
; mov dword[edi+200h],0AAAAAAAAh
|
||||||
popad
|
popad
|
||||||
ret
|
ret
|
||||||
|
|
||||||
@@ -746,19 +748,20 @@ OBCClear:
|
|||||||
call OBCSprites
|
call OBCSprites
|
||||||
mov dword[OBCRegArray],0
|
mov dword[OBCRegArray],0
|
||||||
mov dword[OBCRegArray+4],0
|
mov dword[OBCRegArray+4],0
|
||||||
mov byte[OBCRegArray],0FFh
|
mov byte[OBCRegArray],0FEh
|
||||||
mov byte[clearmem],1
|
mov byte[clearmem],1
|
||||||
mov dword[OBClog],0
|
mov dword[OBClog],0
|
||||||
ret
|
ret
|
||||||
|
|
||||||
; Affected values: 0,1,2,3,4,6,7,9,A,B
|
; Affected values: 0,1,2,3,4,6,7,9,A,B
|
||||||
; 0,1 - Another X value?
|
; 0,1 - Another X value (unused?)
|
||||||
; 2 - OAM value?
|
; 2 - OAM value
|
||||||
; 3/4 - X value (bits 0-8)
|
; 3/4 - X value (bits 0-8)
|
||||||
|
; 5 - N/A (not written to)
|
||||||
; 6 - OAM #
|
; 6 - OAM #
|
||||||
; 7 - Always 0?
|
; 7 - Always 0?
|
||||||
; 9 - Y value (bits 0-7)
|
; 9 - Y value (bits 0-7)
|
||||||
; A - OAM value?
|
; A - OAM value
|
||||||
; B - OAM Status
|
; B - OAM Status
|
||||||
; X,Y,OAM,Attr / xhighbit / OAM highbit / Sprite size
|
; X,Y,OAM,Attr / xhighbit / OAM highbit / Sprite size
|
||||||
;bit 0 = OAM b8, bit 1-3 = palette number bit 4,5 = playfield priority
|
;bit 0 = OAM b8, bit 1-3 = palette number bit 4,5 = playfield priority
|
||||||
@@ -779,7 +782,7 @@ OBCRegs:
|
|||||||
mov [ebx],cl
|
mov [ebx],cl
|
||||||
cmp cl,6
|
cmp cl,6
|
||||||
jne .notsix
|
jne .notsix
|
||||||
add byte[OBCRegArray],1
|
add byte[OBCRegArray],2
|
||||||
mov bl,[OBCRegArray]
|
mov bl,[OBCRegArray]
|
||||||
mov bh,bl
|
mov bh,bl
|
||||||
mov [OBCRegArray+1],bl
|
mov [OBCRegArray+1],bl
|
||||||
@@ -800,15 +803,18 @@ OBCRegs:
|
|||||||
.noclearmem
|
.noclearmem
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
mov bl,[OBCRegArray+ecx]
|
mov bl,[OBCRegArray+ecx]
|
||||||
; mov dl,[OBCIncArray+ecx]
|
cmp byte[OBCIncArray+ecx],1
|
||||||
|
jne .noinc
|
||||||
or byte[OBCRegArray+ecx],1
|
or byte[OBCRegArray+ecx],1
|
||||||
|
.noinc
|
||||||
|
inc byte[OBCRegArray+ecx]
|
||||||
shl ebx,3
|
shl ebx,3
|
||||||
add ecx,ebx
|
add ecx,ebx
|
||||||
add ecx,[C4Ram]
|
add ecx,[C4Ram]
|
||||||
mov byte[ecx],al
|
mov byte[ecx],al
|
||||||
; cmp dl,1
|
; cmp dl,1
|
||||||
; jne .second
|
; jne .second
|
||||||
; mov byte[ecx+8],0FFh
|
mov byte[ecx+8],0FFh
|
||||||
; jmp .first
|
; jmp .first
|
||||||
;.second
|
;.second
|
||||||
; mov byte[ecx+16],0FFh
|
; mov byte[ecx+16],0FFh
|
||||||
@@ -4370,7 +4376,7 @@ NEWSYM SDD1EntryPtr, dd 0
|
|||||||
NEWSYM LatestBank, dd 0FFFFh
|
NEWSYM LatestBank, dd 0FFFFh
|
||||||
NEWSYM memaccessbankr8sdd1
|
NEWSYM memaccessbankr8sdd1
|
||||||
; TestSDD1
|
; TestSDD1
|
||||||
; jmp debugdecompress
|
jmp debugdecompress
|
||||||
; call FillArray
|
; call FillArray
|
||||||
mov byte[.found4],0
|
mov byte[.found4],0
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user