Fatal Fury 2: Difference between revisions

From NeoGeo Development Wiki
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