Fatal Fury 2: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
mNo edit summary |
||
Line 23: | Line 23: | ||
|cd_date=09/09/94 | |cd_date=09/09/94 | ||
}} | }} | ||
== [[PRO-CT0]] protection code == | |||
Uses lots of bogus addresses to be confusing. | |||
<syntaxhighlight> | |||
00296A: | |||
move #$5555,$255552 ;LOAD | |||
move.b $255551,$10AC2E ;Read GAD/GBD: $FF | |||
move.b d0,$255551 ;Clock | |||
move.b $2FFFF1,$10AC2F ;Read GAD/GBD: $00 | |||
move.b d0,$2FFFF1 ;Clock | |||
move.b $200001,$10AC30 ;Read GAD/GBD: $FF | |||
move.b d0,$2FF001 ;Clock | |||
move.b $2FF001,$10AC31 ;Read GAD/GBD: $00 | |||
cmpi.l #$FF00FF00,$10AC2E ;Compare reads | |||
beq + | |||
move #$3328,24580(a5) ;Lock up flag ? | |||
+: | |||
rts | |||
</syntaxhighlight> | |||
<pre> | |||
Load C: 00110011001100110011001100110011 ($33333333) | |||
PRO-CT0 serialize: | |||
00110011 3 | |||
00110011 2 | |||
00110011 1 | |||
00110011 0 | |||
GAD/GBD to D7~D0 remap (no effect): | |||
00110011 1 | |||
00110011 0 | |||
00110011 3 | |||
00110011 2 | |||
|||||||| | |||
00FF00FF -> | |||
</pre> | |||
<syntaxhighlight> | |||
012530: | |||
move #$1234,$256782 ;LOAD C $366A061A (00110110 01101010 00000110 00011010) | |||
move.b $236001,18642(a5) ;Read GAD/GBD | |||
move.b #$20,$236001 ;Clock | |||
move.b $236001,18643(a5) ;Read GAD/GBD | |||
move.b #$20,$236001 ;Clock | |||
move.b $236001,18644(a5) ;Read GAD/GBD | |||
move.b #$20,$236001 ;Clock | |||
move.b $236001,18645(a5) ;Read GAD/GBD | |||
move.b #$20,$236001 ;Clock | |||
move.l 18642(a5),d0 | |||
subi.l #$F05A3601,d0 ;Compare reads | |||
rts | |||
</syntaxhighlight> | |||
<pre> | |||
Load C: 00110110011010100000011000011010 ($366A061A) | |||
PRO-CT0 serialize: | |||
00110110 3 | |||
01101010 2 | |||
00000110 1 | |||
00011010 0 | |||
GAD/GBD to D7~D0 remap: | |||
00000110 1 | |||
00011010 0 | |||
00110110 3 | |||
01101010 2 | |||
|||||||| | |||
01365AF0 -> | |||
</pre> | |||
<syntaxhighlight> | |||
move #$1824,$242812 ;LOAD C | |||
move.b $236009,18642(a5) ;Read GAD/GBD with H (reverse) | |||
move.b #$20,$236009 ;Clock | |||
move.b $236009,18643(a5) ;Read GAD/GBD with H (reverse) | |||
move.b #$20,$236009 ;Clock | |||
move.b $236009,18644(a5) ;Read GAD/GBD with H (reverse) | |||
move.b #$20,$236009 ;Clock | |||
move.b $236009,18645(a5) ;Read GAD/GBD with H (reverse) | |||
move.b #$20,$236009 ;Clock | |||
move.l 18642(a5),d0 | |||
subi.l #$81422418,d0 ;Compare reads | |||
rts | |||
</syntaxhighlight> | |||
<pre> | |||
Load C: 00100100100000010100001000011000 ($24814218) | |||
PRO-CT0 serialize: | |||
00100100 3 | |||
10000001 2 | |||
01000010 1 | |||
00011000 0 | |||
GAD/GBD to D7~D0 remap: | |||
01000010 1 | |||
00011000 0 | |||
00100100 3 | |||
10000001 2 | |||
|||||||| | |||
18244281 <- | |||
</pre> | |||
<syntaxhighlight> | |||
move #$1234,$256782 ;LOAD C | |||
move.b $236005,18642(a5) ;Read GAD/GBD with EVEN (nibble swap) | |||
move.b #$20,$236005 ;Clock | |||
move.b $236005,18643(a5) ;Read GAD/GBD with EVEN (nibble swap) | |||
move.b #$20,$236005 ;Clock | |||
move.b $236005,18644(a5) ;Read GAD/GBD with EVEN (nibble swap) | |||
move.b #$20,$236005 ;Clock | |||
move.b $236005,18645(a5) ;Read GAD/GBD with EVEN (nibble swap) | |||
move.b #$20,$236005 ;Clock | |||
move.l 18642(a5),d0 | |||
subi.l #$0FA56310,d0 ;Compare reads | |||
rts | |||
</syntaxhighlight> | |||
<pre> | |||
Load C: 00110110011010100000011000011010 ($366A061A) | |||
PRO-CT0 serialize: | |||
00110110 3 | |||
01101010 2 | |||
00000110 1 | |||
00011010 0 | |||
GAD/GBD to D7~D0 remap: | |||
00000110 1 | |||
00011010 0 | |||
00110110 3 | |||
01101010 2 | |||
|||||||| | |||
01365AF0 nibble swap: 1063A50F -> | |||
</pre> | |||
<syntaxhighlight> | |||
move #$1824,$242812 ;LOAD C | |||
move.b $23600D,18642(a5) ;Read GAD/GBD with H and EVEN | |||
move.b #$20,$23600D ;Clock | |||
move.b $23600D,18643(a5) ;Read GAD/GBD with H and EVEN | |||
move.b #$20,$23600D ;Clock | |||
move.b $23600D,18644(a5) ;Read GAD/GBD with H and EVEN | |||
move.b #$20,$23600D ;Clock | |||
move.b $23600D,18645(a5) ;Read GAD/GBD with H and EVEN | |||
move.b #$20,$23600D ;Clock | |||
move.l 18642(a5),d0 | |||
subi.l #$18244281,d0 ;Compare reads | |||
rts | |||
</syntaxhighlight> | |||
<pre> | |||
Load C: 00100100100000010100001000011000 ($24814218) | |||
PRO-CT0 serialize: | |||
00100100 3 | |||
10000001 2 | |||
01000010 1 | |||
00011000 0 | |||
GAD/GBD to D7~D0 remap: | |||
01000010 1 | |||
00011000 0 | |||
00100100 3 | |||
10000001 2 | |||
|||||||| | |||
18244281 nibble swap: <- 81422418 | |||
</pre> | |||
[[Category:Games]] | [[Category:Games]] |
Revision as of 11:43, 7 January 2013
General Info | |
USA Title | Fatal Fury 2 |
Japanese Title | Garou Densetsu 2 - arata-naru tatakai
(餓狼伝説 2) |
European Title | Fatal Fury 2 |
NGH | 047 |
Developer | SNK |
Editor | SNK |
Meg count | 106 |
TCRF page | None |
MVS Release | |
Release date | 1992 |
PROG Board | PROG-G2 |
CHA Board | CHA42G-1 |
Protection Chip | none |
MAME romset | fatfury2 |
AES Release | |
Release date | 05/03/93 |
PROG Board | Unknown |
CHA Board | Unknown |
Protection Chip | Unknown |
MAME romset | |
CD Release | |
Release date | 09/09/94 |
PRO-CT0 protection code
Uses lots of bogus addresses to be confusing.
00296A:
move #$5555,$255552 ;LOAD
move.b $255551,$10AC2E ;Read GAD/GBD: $FF
move.b d0,$255551 ;Clock
move.b $2FFFF1,$10AC2F ;Read GAD/GBD: $00
move.b d0,$2FFFF1 ;Clock
move.b $200001,$10AC30 ;Read GAD/GBD: $FF
move.b d0,$2FF001 ;Clock
move.b $2FF001,$10AC31 ;Read GAD/GBD: $00
cmpi.l #$FF00FF00,$10AC2E ;Compare reads
beq +
move #$3328,24580(a5) ;Lock up flag ?
+:
rts
Load C: 00110011001100110011001100110011 ($33333333) PRO-CT0 serialize: 00110011 3 00110011 2 00110011 1 00110011 0 GAD/GBD to D7~D0 remap (no effect): 00110011 1 00110011 0 00110011 3 00110011 2 |||||||| 00FF00FF ->
012530:
move #$1234,$256782 ;LOAD C $366A061A (00110110 01101010 00000110 00011010)
move.b $236001,18642(a5) ;Read GAD/GBD
move.b #$20,$236001 ;Clock
move.b $236001,18643(a5) ;Read GAD/GBD
move.b #$20,$236001 ;Clock
move.b $236001,18644(a5) ;Read GAD/GBD
move.b #$20,$236001 ;Clock
move.b $236001,18645(a5) ;Read GAD/GBD
move.b #$20,$236001 ;Clock
move.l 18642(a5),d0
subi.l #$F05A3601,d0 ;Compare reads
rts
Load C: 00110110011010100000011000011010 ($366A061A) PRO-CT0 serialize: 00110110 3 01101010 2 00000110 1 00011010 0 GAD/GBD to D7~D0 remap: 00000110 1 00011010 0 00110110 3 01101010 2 |||||||| 01365AF0 ->
move #$1824,$242812 ;LOAD C
move.b $236009,18642(a5) ;Read GAD/GBD with H (reverse)
move.b #$20,$236009 ;Clock
move.b $236009,18643(a5) ;Read GAD/GBD with H (reverse)
move.b #$20,$236009 ;Clock
move.b $236009,18644(a5) ;Read GAD/GBD with H (reverse)
move.b #$20,$236009 ;Clock
move.b $236009,18645(a5) ;Read GAD/GBD with H (reverse)
move.b #$20,$236009 ;Clock
move.l 18642(a5),d0
subi.l #$81422418,d0 ;Compare reads
rts
Load C: 00100100100000010100001000011000 ($24814218) PRO-CT0 serialize: 00100100 3 10000001 2 01000010 1 00011000 0 GAD/GBD to D7~D0 remap: 01000010 1 00011000 0 00100100 3 10000001 2 |||||||| 18244281 <-
move #$1234,$256782 ;LOAD C
move.b $236005,18642(a5) ;Read GAD/GBD with EVEN (nibble swap)
move.b #$20,$236005 ;Clock
move.b $236005,18643(a5) ;Read GAD/GBD with EVEN (nibble swap)
move.b #$20,$236005 ;Clock
move.b $236005,18644(a5) ;Read GAD/GBD with EVEN (nibble swap)
move.b #$20,$236005 ;Clock
move.b $236005,18645(a5) ;Read GAD/GBD with EVEN (nibble swap)
move.b #$20,$236005 ;Clock
move.l 18642(a5),d0
subi.l #$0FA56310,d0 ;Compare reads
rts
Load C: 00110110011010100000011000011010 ($366A061A) PRO-CT0 serialize: 00110110 3 01101010 2 00000110 1 00011010 0 GAD/GBD to D7~D0 remap: 00000110 1 00011010 0 00110110 3 01101010 2 |||||||| 01365AF0 nibble swap: 1063A50F ->
move #$1824,$242812 ;LOAD C
move.b $23600D,18642(a5) ;Read GAD/GBD with H and EVEN
move.b #$20,$23600D ;Clock
move.b $23600D,18643(a5) ;Read GAD/GBD with H and EVEN
move.b #$20,$23600D ;Clock
move.b $23600D,18644(a5) ;Read GAD/GBD with H and EVEN
move.b #$20,$23600D ;Clock
move.b $23600D,18645(a5) ;Read GAD/GBD with H and EVEN
move.b #$20,$23600D ;Clock
move.l 18642(a5),d0
subi.l #$18244281,d0 ;Compare reads
rts
Load C: 00100100100000010100001000011000 ($24814218) PRO-CT0 serialize: 00100100 3 10000001 2 01000010 1 00011000 0 GAD/GBD to D7~D0 remap: 01000010 1 00011000 0 00100100 3 10000001 2 |||||||| 18244281 nibble swap: <- 81422418