Worked on Wizardry 4's rom mix up
This commit is contained in:
@@ -4434,6 +4434,102 @@ NEWSYM loadfileGUI
|
|||||||
mov byte[TextFile], 1
|
mov byte[TextFile], 1
|
||||||
mov byte[IPSPatched],0
|
mov byte[IPSPatched],0
|
||||||
|
|
||||||
|
; Wizardry Gaiden 4?
|
||||||
|
mov esi,[romdata]
|
||||||
|
cmp dword[esi+207FC0h],'WIZA'
|
||||||
|
jne near .notwiz4
|
||||||
|
cmp dword[esi+207FC4h],'RDRY'
|
||||||
|
jne near .notwiz4
|
||||||
|
cmp dword[esi+207FC8h],' GAI'
|
||||||
|
jne near .notwiz4
|
||||||
|
cmp dword[esi+207FCDh],'EN 4'
|
||||||
|
jne near .notwiz4
|
||||||
|
mov eax,100000h
|
||||||
|
.loopwiz4
|
||||||
|
mov bl,[esi]
|
||||||
|
mov bh,[esi+200000h]
|
||||||
|
mov [esi+200000h],bl
|
||||||
|
mov [esi],bh
|
||||||
|
inc esi
|
||||||
|
dec eax
|
||||||
|
jnz .loopwiz4
|
||||||
|
|
||||||
|
pushad
|
||||||
|
mov edi,mode7tab+256
|
||||||
|
mov ecx,256
|
||||||
|
xor al,al
|
||||||
|
.nextlb2
|
||||||
|
mov [edi],al
|
||||||
|
inc al
|
||||||
|
inc edi
|
||||||
|
dec ecx
|
||||||
|
jnz .nextlb2
|
||||||
|
mov edi,mode7tab+256
|
||||||
|
; 0,4,8,C
|
||||||
|
; 0,64,1,65,2,... (1st 3MB, 1st 1MB)
|
||||||
|
; (2nd 4MB?, 2nd 2MB)
|
||||||
|
mov dl,4
|
||||||
|
.nextl2
|
||||||
|
mov eax,4
|
||||||
|
sub al,dl
|
||||||
|
mov bl,[.table+eax*2]
|
||||||
|
mov bh,[.table+eax*2+1]
|
||||||
|
mov ecx,16
|
||||||
|
.nextl
|
||||||
|
mov [edi],bl
|
||||||
|
mov [edi+1],bh
|
||||||
|
inc bl
|
||||||
|
inc bh
|
||||||
|
add edi,2
|
||||||
|
dec ecx
|
||||||
|
jnz .nextl
|
||||||
|
add bl,16
|
||||||
|
add bh,16
|
||||||
|
dec dl
|
||||||
|
jnz .nextl2
|
||||||
|
jmp .skiptable
|
||||||
|
; O O O O ? ? ? ?
|
||||||
|
.table db 0,64,96+16,32+16,32,96,0+16,64+16
|
||||||
|
.skiptable
|
||||||
|
mov dword[NumofBanks],20h*4
|
||||||
|
call SwapTable256
|
||||||
|
call UnInterleave
|
||||||
|
popad
|
||||||
|
.notwiz4
|
||||||
|
|
||||||
|
jmp .skipall
|
||||||
|
; scan for branches
|
||||||
|
mov esi,06A5h
|
||||||
|
add esi,[romdata]
|
||||||
|
mov ecx,80h
|
||||||
|
.loopcheck
|
||||||
|
cmp byte[esi],48h
|
||||||
|
je .yes
|
||||||
|
cmp byte[esi],8Bh
|
||||||
|
je .yes
|
||||||
|
cmp byte[esi],0Bh
|
||||||
|
je .yes
|
||||||
|
cmp byte[esi],4Bh
|
||||||
|
je .yes
|
||||||
|
cmp byte[esi],08h
|
||||||
|
je .yes
|
||||||
|
cmp byte[esi],0DAh
|
||||||
|
je .yes
|
||||||
|
cmp byte[esi],5Ah
|
||||||
|
je .yes
|
||||||
|
jmp .no
|
||||||
|
.yes
|
||||||
|
pushad
|
||||||
|
mov al,byte[esi]
|
||||||
|
mov al,80h
|
||||||
|
sub al,cl
|
||||||
|
call printhex8
|
||||||
|
popad
|
||||||
|
.no
|
||||||
|
add esi,8000h
|
||||||
|
loop .loopcheck
|
||||||
|
.skipall
|
||||||
|
|
||||||
; mirror image
|
; mirror image
|
||||||
mov eax,[.curromspace]
|
mov eax,[.curromspace]
|
||||||
cmp dword[.maxromspace],eax
|
cmp dword[.maxromspace],eax
|
||||||
@@ -4450,7 +4546,7 @@ NEWSYM loadfileGUI
|
|||||||
inc ecx
|
inc ecx
|
||||||
cmp ecx,[.maxromspace]
|
cmp ecx,[.maxromspace]
|
||||||
jne .nextmir
|
jne .nextmir
|
||||||
.nomir
|
.nomir
|
||||||
|
|
||||||
; calculate checksum
|
; calculate checksum
|
||||||
mov eax,1
|
mov eax,1
|
||||||
|
|||||||
Reference in New Issue
Block a user