Partial C portage of initialization code
This commit is contained in:
@@ -112,7 +112,7 @@ EXTSYM sramaccessbankr8s,sramaccessbankw16,sramaccessbankw16s
|
|||||||
EXTSYM sramaccessbankw8,sramaccessbankw8s,GenerateBank0TableSA1
|
EXTSYM sramaccessbankw8,sramaccessbankw8s,GenerateBank0TableSA1
|
||||||
EXTSYM ScrDispl,wramreadptr,wramwriteptr
|
EXTSYM ScrDispl,wramreadptr,wramwriteptr
|
||||||
EXTSYM pl1Ltk,pl1Rtk,pl2Ltk,pl2Rtk,pl3Ltk,pl3Rtk,pl4Ltk,pl4Rtk,pl5Ltk,pl5Rtk
|
EXTSYM pl1Ltk,pl1Rtk,pl2Ltk,pl2Rtk,pl3Ltk,pl3Rtk,pl4Ltk,pl4Rtk,pl5Ltk,pl5Rtk
|
||||||
EXTSYM loadstate2
|
EXTSYM loadstate2, headerhack
|
||||||
%ifdef __LINUX__
|
%ifdef __LINUX__
|
||||||
EXTSYM LoadDir, popdir, pushdir
|
EXTSYM LoadDir, popdir, pushdir
|
||||||
%endif
|
%endif
|
||||||
@@ -1468,566 +1468,6 @@ SECTION .text
|
|||||||
EXTSYM ewj2hack
|
EXTSYM ewj2hack
|
||||||
EXTSYM latchyr
|
EXTSYM latchyr
|
||||||
|
|
||||||
NEWSYM headerhack
|
|
||||||
mov byte[disablehdma],0
|
|
||||||
mov byte[Offby1line],0
|
|
||||||
mov byte[CacheCheckSkip],0
|
|
||||||
mov word[IRQHack],0
|
|
||||||
mov byte[HIRQSkip],0
|
|
||||||
mov byte[hdmaearlstart],0
|
|
||||||
mov dword[WindowDisables],0
|
|
||||||
mov byte[ClearScreenSkip],0
|
|
||||||
mov byte[ENVDisable],0
|
|
||||||
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,0FFC0h
|
|
||||||
cmp dword[esi],'HORA'
|
|
||||||
jne .nothoraigakuen
|
|
||||||
cmp dword[esi+4],'I-GA'
|
|
||||||
jne .nothoraigakuen
|
|
||||||
cmp dword[esi+8],'KUEN'
|
|
||||||
jne .nothoraigakuen
|
|
||||||
cmp dword[esi+12],' '
|
|
||||||
jne .nothoraigakuen
|
|
||||||
mov al,0h
|
|
||||||
mov edi,spcRam
|
|
||||||
mov ecx,65472
|
|
||||||
rep stosb
|
|
||||||
ret
|
|
||||||
.nothoraigakuen
|
|
||||||
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,07FC0h
|
|
||||||
cmp dword[esi],0DFCAB0BDh
|
|
||||||
jne .notfamista1
|
|
||||||
cmp dword[esi+4],0D0A7CCB0h
|
|
||||||
jne .notfamista1
|
|
||||||
cmp dword[esi+8],02020C0BDh
|
|
||||||
jne .notfamista1
|
|
||||||
cmp dword[esi+12],20202020h
|
|
||||||
jne .notfamista1
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,2762Fh
|
|
||||||
mov word [esi],0EAEAh ; Skip a check for value FF at 2140 when spc not
|
|
||||||
; initialized yet?!?
|
|
||||||
.notfamista1
|
|
||||||
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,07FC0h
|
|
||||||
cmp dword[esi],0DFCAB0BDh
|
|
||||||
jne .notfamista2
|
|
||||||
cmp dword[esi+4],0D0A7CCB0h
|
|
||||||
jne .notfamista2
|
|
||||||
cmp dword[esi+8],03220C0BDh
|
|
||||||
jne .notfamista2
|
|
||||||
cmp dword[esi+12],20202020h
|
|
||||||
jne .notfamista2
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,6CEDh
|
|
||||||
mov word [esi],0EAEAh ; Skip a check for value FF at 2140 when spc not
|
|
||||||
; initialized yet?!?
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,6CF9h
|
|
||||||
mov word [esi],0EAEAh ; Skip a check for value FF at 2140 when spc not
|
|
||||||
; initialized yet?!?
|
|
||||||
.notfamista2
|
|
||||||
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,07FC0h
|
|
||||||
cmp dword[esi],20434653h
|
|
||||||
jne .notkamenrider
|
|
||||||
cmp dword[esi+4],0D7DDD2B6h
|
|
||||||
jne .notkamenrider
|
|
||||||
cmp dword[esi+8],0B0DEC0B2h
|
|
||||||
jne .notkamenrider
|
|
||||||
cmp dword[esi+12],20202020h
|
|
||||||
jne .notkamenrider
|
|
||||||
mov byte[latchyr],2
|
|
||||||
.notkamenrider
|
|
||||||
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,07FC0h
|
|
||||||
cmp dword[esi],'EURO'
|
|
||||||
jne .noteuropeanprimegoal
|
|
||||||
cmp dword[esi+4],'PEAN'
|
|
||||||
jne .noteuropeanprimegoal
|
|
||||||
cmp dword[esi+8],' PRI'
|
|
||||||
jne .noteuropeanprimegoal
|
|
||||||
cmp dword[esi+12],'ME G'
|
|
||||||
jne .noteuropeanprimegoal
|
|
||||||
mov al,0h
|
|
||||||
mov edi,spcRam
|
|
||||||
mov ecx,65472
|
|
||||||
rep stosb
|
|
||||||
ret
|
|
||||||
.noteuropeanprimegoal
|
|
||||||
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,07FC0h
|
|
||||||
cmp dword[esi],'CYBE'
|
|
||||||
jne .notcyberknight2
|
|
||||||
cmp dword[esi+4],'R KN'
|
|
||||||
jne .notcyberknight2
|
|
||||||
cmp dword[esi+8],'IGHT'
|
|
||||||
jne .notcyberknight2
|
|
||||||
cmp dword[esi+12],' 2 '
|
|
||||||
jne .notcyberknight2
|
|
||||||
mov byte[cycpb268],75
|
|
||||||
mov byte[cycpb358],77
|
|
||||||
mov byte[cycpbl2],75
|
|
||||||
mov byte[cycpblt2],75
|
|
||||||
mov byte[cycpbl],75
|
|
||||||
mov byte[cycpblt],75
|
|
||||||
.notcyberknight2
|
|
||||||
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,07FC0h
|
|
||||||
cmp dword[esi],0B4B1DEC3h
|
|
||||||
jne .notdeasomething
|
|
||||||
cmp dword[esi+4],0CFBBC9C4h
|
|
||||||
jne .notdeasomething
|
|
||||||
cmp dword[esi+8],0CAAFB120h
|
|
||||||
jne .notdeasomething
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,017837Ch
|
|
||||||
mov word [esi],0EAEAh
|
|
||||||
.notdeasomething
|
|
||||||
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,07FC0h
|
|
||||||
cmp dword[esi],'HUMA'
|
|
||||||
jne .nothumangrandprix3
|
|
||||||
cmp dword[esi+4],'N GR'
|
|
||||||
jne .nothumangrandprix3
|
|
||||||
cmp dword[esi+8],'ANDP'
|
|
||||||
jne .nothumangrandprix3
|
|
||||||
mov byte[cycpb268],135
|
|
||||||
mov byte[cycpb358],157
|
|
||||||
mov byte[cycpbl2],125
|
|
||||||
mov byte[cycpblt2],125
|
|
||||||
mov byte[cycpbl],125
|
|
||||||
mov byte[cycpblt],125
|
|
||||||
.nothumangrandprix3
|
|
||||||
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,07FC0h
|
|
||||||
cmp dword[esi],'ACCE'
|
|
||||||
jne .notaccelebrid
|
|
||||||
cmp dword[esi+4],'LEBR'
|
|
||||||
jne .notaccelebrid
|
|
||||||
cmp dword[esi+8],'ID '
|
|
||||||
jne .notaccelebrid
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,034DA2h
|
|
||||||
mov byte[esi],000h
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,034DA3h
|
|
||||||
mov byte[esi],000h
|
|
||||||
.notaccelebrid
|
|
||||||
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,07FC0h
|
|
||||||
cmp dword[esi],'BATT'
|
|
||||||
jne .notbattlegp
|
|
||||||
cmp dword[esi+4],'LE G'
|
|
||||||
jne .notbattlegp
|
|
||||||
cmp dword[esi+8],'RAND'
|
|
||||||
jne .notbattlegp
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,018089h
|
|
||||||
mov byte[esi],0FBh
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,006C95h
|
|
||||||
mov byte[esi],0FBh
|
|
||||||
.notbattlegp
|
|
||||||
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,07FC0h
|
|
||||||
cmp dword[esi],'Neug'
|
|
||||||
jne .notneugiertrans
|
|
||||||
cmp dword[esi+4],'ier '
|
|
||||||
jne .notneugiertrans
|
|
||||||
cmp dword[esi+8],'(tr.'
|
|
||||||
jne .notneugiertrans
|
|
||||||
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,0D4150h
|
|
||||||
mov byte[esi],0F9h
|
|
||||||
.notneugiertrans
|
|
||||||
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,07FC0h
|
|
||||||
cmp dword[esi],'NEUG'
|
|
||||||
jne .notneugier
|
|
||||||
cmp dword[esi+4],'IER '
|
|
||||||
jne .notneugier
|
|
||||||
cmp dword[esi+8],' '
|
|
||||||
jne .notneugier
|
|
||||||
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,0D4150h
|
|
||||||
mov byte[esi],0F9h
|
|
||||||
.notneugier
|
|
||||||
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,07FC0h
|
|
||||||
cmp dword[esi],'HOME'
|
|
||||||
jne .nothomealone
|
|
||||||
cmp dword[esi+4],' ALO'
|
|
||||||
jne .nothomealone
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,0666Bh
|
|
||||||
mov byte[esi],0EEh ; RTS instead of jumping to a rts
|
|
||||||
mov byte[esi+1],0BCh ; RTS instead of jumping to a rts
|
|
||||||
.nothomealone
|
|
||||||
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,0FFC0h
|
|
||||||
cmp dword[esi],'EMER'
|
|
||||||
jne .notemeralddragon
|
|
||||||
cmp dword[esi+4],'ALD '
|
|
||||||
jne .notemeralddragon
|
|
||||||
cmp dword[esi+8],'DRAG'
|
|
||||||
jne .notemeralddragon
|
|
||||||
mov byte[ENVDisable],1
|
|
||||||
.notemeralddragon
|
|
||||||
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,07FC0h
|
|
||||||
cmp dword[esi],'YOSH'
|
|
||||||
jne .notyoshi
|
|
||||||
cmp dword[esi+8],'ISLA'
|
|
||||||
jne .notyoshi
|
|
||||||
jmp .yoshi
|
|
||||||
.notyoshi
|
|
||||||
cmp dword[esi],'YOSS'
|
|
||||||
jne .notyoshi2
|
|
||||||
cmp dword[esi+8],'ISLA'
|
|
||||||
jne .notyoshi2
|
|
||||||
.yoshi
|
|
||||||
mov byte[hdmaearlstart],2
|
|
||||||
mov byte[opexec268],116
|
|
||||||
mov byte[opexec358],126
|
|
||||||
.notyoshi2
|
|
||||||
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,0FFC0h
|
|
||||||
cmp dword[esi],'BUBS'
|
|
||||||
jne .notbubsy2
|
|
||||||
cmp dword[esi+4],'Y II'
|
|
||||||
jne .notbubsy2
|
|
||||||
mov byte[cycpb268],125
|
|
||||||
mov byte[cycpb358],147
|
|
||||||
mov byte[cycpbl2],125
|
|
||||||
mov byte[cycpblt2],125
|
|
||||||
mov byte[cycpbl],125
|
|
||||||
mov byte[cycpblt],125
|
|
||||||
.notbubsy2
|
|
||||||
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,7FC0h
|
|
||||||
cmp dword[esi],0DEB3B0CFh
|
|
||||||
je .marvelous
|
|
||||||
cmp dword[esi],'REND'
|
|
||||||
jne .notrend
|
|
||||||
mov byte[cycpb268],157
|
|
||||||
mov byte[cycpb358],157
|
|
||||||
mov byte[cycpbl2],157
|
|
||||||
mov byte[cycpblt2],157
|
|
||||||
mov byte[cycpbl],157
|
|
||||||
mov byte[cycpblt],157
|
|
||||||
jmp .notrend
|
|
||||||
.marvelous
|
|
||||||
.notrend
|
|
||||||
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,07FC0h
|
|
||||||
cmp dword[esi],'STAR'
|
|
||||||
jne .notds9
|
|
||||||
cmp dword[esi+4],' TRE'
|
|
||||||
jne .notds9
|
|
||||||
cmp dword[esi+8],'K: D'
|
|
||||||
jne .notds9
|
|
||||||
mov byte[opexec268],187
|
|
||||||
mov byte[opexec358],187
|
|
||||||
.notds9
|
|
||||||
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,0FFC0h
|
|
||||||
cmp dword[esi],'CLAY'
|
|
||||||
jne .notclayfighter
|
|
||||||
cmp dword[esi+4],' FIG'
|
|
||||||
jne .notclayfighter
|
|
||||||
cmp dword[esi+8],'HTER'
|
|
||||||
jne .notclayfighter
|
|
||||||
cmp dword[esi+12],' '
|
|
||||||
jne .notclayfighter
|
|
||||||
mov esi,[romdata] ; In intro
|
|
||||||
add esi,01A10B9h
|
|
||||||
mov byte[esi],0DEh
|
|
||||||
|
|
||||||
mov esi,[romdata] ; In game
|
|
||||||
add esi,01A1996h
|
|
||||||
mov byte[esi],0DEh
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,01AE563h
|
|
||||||
mov byte[esi],0DEh
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,01AE600h
|
|
||||||
mov byte[esi],0DEh
|
|
||||||
.notclayfighter
|
|
||||||
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,0FFC0h
|
|
||||||
cmp dword[esi],'Baha'
|
|
||||||
jne .notbahamutlagoon
|
|
||||||
cmp dword[esi+4],'mut '
|
|
||||||
jne .notbahamutlagoon
|
|
||||||
cmp dword[esi+8],'Lago'
|
|
||||||
jne .notbahamutlagoon
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,010254h
|
|
||||||
mov byte[esi],0EEh
|
|
||||||
.notbahamutlagoon
|
|
||||||
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,07FC0h
|
|
||||||
cmp dword[esi],'MORT'
|
|
||||||
jne .notmk
|
|
||||||
cmp dword[esi+4],'AL K'
|
|
||||||
jne .notmk
|
|
||||||
cmp dword[esi+8],'OMBA'
|
|
||||||
jne .notmk
|
|
||||||
cmp dword[esi+12],'T '
|
|
||||||
jne .notmk
|
|
||||||
mov byte[disablehdma],1
|
|
||||||
.notmk
|
|
||||||
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,0FFC0h
|
|
||||||
cmp dword[esi],'CLOC'
|
|
||||||
jne .notclocktower
|
|
||||||
cmp dword[esi+4],'K TO'
|
|
||||||
jne .notclocktower
|
|
||||||
cmp dword[esi+8],'WER '
|
|
||||||
jne .notclocktower
|
|
||||||
mov byte[opexec268],187
|
|
||||||
mov byte[opexec358],182
|
|
||||||
mov byte[opexec268cph],47
|
|
||||||
mov byte[opexec358cph],47
|
|
||||||
.notclocktower
|
|
||||||
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,07FC0h
|
|
||||||
cmp dword[esi],'DRAG'
|
|
||||||
jne .notdq5
|
|
||||||
cmp dword[esi+4],'ONQU'
|
|
||||||
jne .notdq5
|
|
||||||
cmp dword[esi+8],'EST5'
|
|
||||||
jne .notdq5
|
|
||||||
mov byte[disablehdma],1
|
|
||||||
.notdq5
|
|
||||||
|
|
||||||
; Lamborgini Challenge - -p 110
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,07FC0h
|
|
||||||
cmp dword[esi],'DIGI'
|
|
||||||
jne .nodigitaldevil
|
|
||||||
mov byte[opexec268],187
|
|
||||||
mov byte[opexec358],187
|
|
||||||
.nodigitaldevil
|
|
||||||
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,7FC0h
|
|
||||||
cmp dword[esi],'SP F'
|
|
||||||
jne .notfmatchtennis
|
|
||||||
mov byte[cycpb268],145
|
|
||||||
mov byte[cycpb358],147
|
|
||||||
mov byte[cycpbl2],145
|
|
||||||
mov byte[cycpblt2],145
|
|
||||||
mov byte[cycpbl],145
|
|
||||||
mov byte[cycpblt],145
|
|
||||||
.notfmatchtennis
|
|
||||||
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,7FC0h
|
|
||||||
cmp dword[esi],'DEAD'
|
|
||||||
je .deaddance
|
|
||||||
cmp dword[esi],'TUFF'
|
|
||||||
jne .nottuffenuff
|
|
||||||
.deaddance
|
|
||||||
mov byte[cycpb268],75
|
|
||||||
mov byte[cycpb358],77
|
|
||||||
mov byte[cycpbl2],75
|
|
||||||
mov byte[cycpblt2],75
|
|
||||||
mov byte[cycpbl],75
|
|
||||||
mov byte[cycpblt],75
|
|
||||||
.nottuffenuff
|
|
||||||
|
|
||||||
cmp byte[DSP1Type],0
|
|
||||||
je .notdis
|
|
||||||
mov byte[disablehdma],1
|
|
||||||
.notdis
|
|
||||||
|
|
||||||
; Here are the individual game hacks. Some of these probably can
|
|
||||||
; be removed since many of them were created very early in ZSNES
|
|
||||||
; development.
|
|
||||||
|
|
||||||
cmp dword[esi+0FFC0h],'FINA'
|
|
||||||
jne .notff
|
|
||||||
.notff
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,9AB0h
|
|
||||||
cmp dword[esi],0F00F2908h
|
|
||||||
jne .notff3
|
|
||||||
mov byte[opexec268],163
|
|
||||||
mov byte[opexec358],157
|
|
||||||
mov byte[opexec268cph],39
|
|
||||||
mov byte[opexec358cph],39
|
|
||||||
.notff3
|
|
||||||
|
|
||||||
; Earth Worm Jim 2 - IRQ hack (reduce sound static)
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,0FFC0h
|
|
||||||
mov edi,.ewj2head
|
|
||||||
call Checkheadersame
|
|
||||||
cmp al,0
|
|
||||||
jne .noromhead2
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,02A9C1Ah
|
|
||||||
mov word [esi],0
|
|
||||||
add esi, 5
|
|
||||||
mov word [esi],0
|
|
||||||
mov dword [ewj2hack],1
|
|
||||||
.noromhead2
|
|
||||||
|
|
||||||
; Lamborgini Challenge - -p 110
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,07FC0h
|
|
||||||
mov edi,.lambhead
|
|
||||||
call Checkheadersame
|
|
||||||
cmp al,0
|
|
||||||
jne .noromheadlamb
|
|
||||||
mov byte[opexec268],187
|
|
||||||
mov byte[opexec358],187
|
|
||||||
.noromheadlamb
|
|
||||||
|
|
||||||
; Addams Family Values - -p 75
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,07FC0h
|
|
||||||
mov edi,.adm3head
|
|
||||||
call Checkheadersame
|
|
||||||
cmp al,0
|
|
||||||
jne .noromheadadm3
|
|
||||||
mov byte[opexec268],120
|
|
||||||
mov byte[opexec358],100
|
|
||||||
.noromheadadm3
|
|
||||||
|
|
||||||
; Bubsy -p 115
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,07FC0h
|
|
||||||
mov edi,.bubshead
|
|
||||||
call Checkheadersame
|
|
||||||
cmp al,0
|
|
||||||
jne .noromhead3
|
|
||||||
mov byte[opexec268],220
|
|
||||||
mov byte[opexec358],220
|
|
||||||
mov byte[opexec268cph],64
|
|
||||||
mov byte[opexec358cph],64
|
|
||||||
.noromhead3
|
|
||||||
|
|
||||||
; BToad vs DD - 197/192/47/47 -p 120
|
|
||||||
mov esi,[romdata]
|
|
||||||
; add esi,07FC0h
|
|
||||||
cmp dword[esi+640h],0E2FA85F6h
|
|
||||||
jne .noromhead4
|
|
||||||
mov byte[opexec268],187
|
|
||||||
mov byte[opexec358],187
|
|
||||||
mov byte[opexec268cph],47
|
|
||||||
mov byte[opexec358cph],47
|
|
||||||
mov bl,[cycpb358]
|
|
||||||
mov byte[cycpblt],bl
|
|
||||||
mov al,[opexec358]
|
|
||||||
mov byte[cycpl],al
|
|
||||||
.noromhead4
|
|
||||||
; Chrono Trigger - 187/182/47/47 -p 120 / res change clear screen disable
|
|
||||||
mov esi,[romdata]
|
|
||||||
; add esi,0FFC0h
|
|
||||||
cmp dword[esi+8640h],0E243728Dh
|
|
||||||
jne .noromhead6
|
|
||||||
cmp byte[opexec358],182
|
|
||||||
ja .noromhead6
|
|
||||||
mov byte[ClearScreenSkip],1
|
|
||||||
mov byte[opexec268],187
|
|
||||||
mov byte[opexec358],182
|
|
||||||
mov byte[opexec268cph],47
|
|
||||||
mov byte[opexec358cph],47
|
|
||||||
mov bl,[cycpb358]
|
|
||||||
mov byte[cycpblt],bl
|
|
||||||
mov al,[opexec358]
|
|
||||||
mov byte[cycpl],al
|
|
||||||
.noromhead6
|
|
||||||
|
|
||||||
; PunchOut - Disable HDMA start in middle of screen
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,07FC0h
|
|
||||||
mov edi,.pouthead
|
|
||||||
call Checkheadersame
|
|
||||||
cmp al,0
|
|
||||||
jne .noromhead7
|
|
||||||
mov byte[disablehdma],1
|
|
||||||
.noromhead7
|
|
||||||
|
|
||||||
; Front Mission - -p 140
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,0FFC0h
|
|
||||||
cmp dword[esi],0C4DDDBCCh
|
|
||||||
jne .noromheadfm
|
|
||||||
cmp dword[esi+4],0AEBCAFD0h
|
|
||||||
jne .noromheadfm
|
|
||||||
mov byte[opexec268],226
|
|
||||||
mov byte[opexec358],226
|
|
||||||
mov byte[opexec268cph],80
|
|
||||||
mov byte[opexec358cph],80
|
|
||||||
.noromheadfm
|
|
||||||
|
|
||||||
; Front Mission - -p 140
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,0FFC0h
|
|
||||||
cmp dword[esi],'FRON'
|
|
||||||
jne .noromheadfm2
|
|
||||||
cmp dword[esi+4],'T MI'
|
|
||||||
jne .noromheadfm2
|
|
||||||
mov byte[opexec268],226
|
|
||||||
mov byte[opexec358],226
|
|
||||||
mov byte[opexec268cph],80
|
|
||||||
mov byte[opexec358cph],80
|
|
||||||
.noromheadfm2
|
|
||||||
|
|
||||||
; Clayfighter 2 - -p 120
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,0FFC0h
|
|
||||||
cmp dword[esi],'Clay'
|
|
||||||
jne .noromheadcf2
|
|
||||||
cmp byte[esi+12],'2'
|
|
||||||
jne .noromheadcf2
|
|
||||||
mov byte[opexec268],187
|
|
||||||
mov byte[opexec358],182
|
|
||||||
mov byte[opexec268cph],47
|
|
||||||
mov byte[opexec358cph],47
|
|
||||||
.noromheadcf2
|
|
||||||
|
|
||||||
mov esi,[romdata]
|
|
||||||
add esi,0FFC0h
|
|
||||||
cmp dword[esi],'Donk'
|
|
||||||
jne .noromheaddk
|
|
||||||
cmp word[ramsize],2048
|
|
||||||
jne .noromheaddk
|
|
||||||
mov word[ramsize],4096
|
|
||||||
mov word[ramsizeand],4095
|
|
||||||
.noromheaddk
|
|
||||||
ret
|
|
||||||
|
|
||||||
SECTION .data
|
SECTION .data
|
||||||
|
|
||||||
.ewj2head db 58,62,45,43,55,40,48,45,50,95,53,54,50,95,77,95,95,95,95,95
|
.ewj2head db 58,62,45,43,55,40,48,45,50,95,53,54,50,95,77,95,95,95,95,95
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user