Fatal Fury 2

From NeoGeo Development Wiki
Revision as of 11:43, 7 January 2013 by Furrtek (talk | contribs)
Jump to navigation Jump to search
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