Fatal Fury 2
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