matrimbl set from Kawaks [Kawaks]

This commit is contained in:
davidhay 2008-10-11 12:14:57 +00:00
parent 79e4dc3955
commit d8a6433cc5
5 changed files with 103 additions and 7 deletions

View File

@ -5281,7 +5281,7 @@ ROM_START( rotd ) /* Encrypted Set */ /* MVS VERSION */
ROM_LOAD16_BYTE( "264-c8.bin", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) ) /* Plane 2,3 */
ROM_END
ROM_START( kof2002 ) /* Encrypted Set */
ROM_START( kof2002 ) /* Encrypted Set */ /* MVS AND AES VERSION */
ROM_REGION( 0x500000, "main", 0 )
ROM_LOAD16_WORD_SWAP( "265-p1.bin", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
ROM_LOAD16_WORD_SWAP( "265-p2.bin", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
@ -6527,6 +6527,41 @@ ROM_START( kof2k4se )
ROM_LOAD16_BYTE( "k2k4s-c5.bin", 0x3000001, 0x800000, CRC(2c912ff9) SHA1(b624a625ea3e221808b7ea43fb0b1a51d8c1853e) ) /* Plane 2,3 */
ROM_END
/* Matrimelee bootleg */
ROM_START( matrimbl )
ROM_REGION( 0x500000, "main", 0 )
ROM_LOAD16_WORD_SWAP( "266-p1.bin", 0x000000, 0x100000, CRC(5d4c2dc7) SHA1(8d723b0d28ec344eef26009b361a2b97d300dd51) )
ROM_LOAD16_WORD_SWAP( "266-p2.bin", 0x100000, 0x400000, CRC(a14b1906) SHA1(1daa14d73512f760ef569b06f9facb279437d1db) )
ROM_Y_ZOOM
ROM_REGION( 0x80000, "fixed", 0 )
ROM_FILL( 0x000000, 0x80000, 0 )
ROM_REGION( 0x20000, "fixedbios", 0 )
ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
NEO_BIOS_AUDIO_128K( "mart-m1.bin", CRC(3ea96ab1) SHA1(e5053c4312f658faed2a34e38325a22ef792d384) )
ROM_REGION( 0x1000000, "ym", 0 )
ROM_LOAD( "mart-v1.bin", 0x000000, 0x400000, CRC(352b0a07) SHA1(19f7cc12f3f6d0fda9c7449816c4c32367447897) )
ROM_LOAD16_WORD_SWAP( "mart-v2.bin", 0x400000, 0x400000, CRC(1e9bd59e) SHA1(0f754e780d0ebb815a92a45ad55f85f6d0181b70) )
ROM_LOAD( "mart-v3.bin", 0x800000, 0x400000, CRC(e8362fcc) SHA1(42d558fd80cabe22a1c09a1fa75741afbcf46b7c) )
ROM_LOAD16_WORD_SWAP( "mart-v4.bin", 0xc00000, 0x400000, CRC(c8c79b19) SHA1(9c7a5e694d68f37a27209e1400b60b6241a04cc7) )
NO_DELTAT_REGION
ROM_REGION( 0x4000000, "sprites", 0 )
ROM_LOAD16_BYTE( "mart-c1.bin", 0x0000000, 0x800000, CRC(a5595656) SHA1(d86281607f22e4f2001047eaeeda99cd673c508c) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "mart-c2.bin", 0x0000001, 0x800000, CRC(c5f7c300) SHA1(9ff5ffb750bd2e925667d84389192f92183e8677) ) /* Plane 2,3 */
ROM_LOAD16_BYTE( "mart-c3.bin", 0x1000000, 0x800000, CRC(574efd7d) SHA1(6cac303db705fe2800701ee51de9e9fca04e6e66) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "mart-c4.bin", 0x1000001, 0x800000, CRC(109d54d9) SHA1(22cb748b3b14317b90d9d9951297ada2bfc3a3f1) ) /* Plane 2,3 */
ROM_LOAD16_BYTE( "mart-c5.bin", 0x2000000, 0x800000, CRC(15c9e882) SHA1(1c9f1ccaed4fdd9d8f5cc9b6fcaca3c4e328e59e) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "mart-c6.bin", 0x2000001, 0x800000, CRC(77497b97) SHA1(c6481bea5a36f8210971fdcb4bfbe7ed93c769de) ) /* Plane 2,3 */
ROM_LOAD16_BYTE( "mart-c7.bin", 0x3000000, 0x800000, CRC(ab481bb6) SHA1(6b2d97c5505eeb28e300b075f37f0d69ef44463a) ) /* Plane 0,1 */
ROM_LOAD16_BYTE( "mart-c8.bin", 0x3000001, 0x800000, CRC(906cf267) SHA1(b0f2cf8887794d715f208751ddd1ed26b2c3ffdf) ) /* Plane 2,3 */
ROM_END
/* Metal Slug 5 bootleg */
ROM_START( ms5plus )
@ -7195,6 +7230,15 @@ static DRIVER_INIT( matrim )
DRIVER_INIT_CALL(neogeo);
}
static DRIVER_INIT( matrimbl )
{
matrim_decrypt_68k(machine);
neogeo_fixed_layer_bank_type = 2;
matrimbl_decrypt(machine);
neogeo_sfix_decrypt(machine); /* required for text layer */
DRIVER_INIT_CALL(neogeo);
}
static DRIVER_INIT( pnyaa )
{
neo_pcm2_snk_1999(machine, 4);
@ -7636,7 +7680,7 @@ GAME( 2003, samsh5sp, neogeo, neogeo, neogeo, samsh5sp, ROT0, "Yuki Enterp
GAME( 2003, samsh5sh, samsh5sp, neogeo, neogeo, samsh5sp, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (set 2, censored)", 0 )
GAME( 2003, samsh5sn, samsh5sp, neogeo, neogeo, samsh5sp, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (set 3, less censored)", 0 )
/* there are other bootlegs kof2002b etc. kof96ep, matrimbl?, kf2k1pls -- work out which should be supported */
/* there are other bootlegs kof2002b etc. kof96ep, kf2k1pls? -- work out which should be supported */
/* Alpha Denshi Co. / ADK (changed name in 1993) */
GAME( 1990, maglord, neogeo, neogeo, neogeo, neogeo, ROT0, "Alpha Denshi Co.", "Magician Lord (set 1)", 0 )
@ -7774,6 +7818,7 @@ GAME( 2002, rotd, neogeo, neogeo, neogeo, rotd, ROT0, "Evoga / Pla
/* Atlus */
GAME( 2002, matrim, neogeo, neogeo, neogeo, matrim, ROT0, "Noise Factory / Atlus", "Matrimelee / Shin Gouketsuji Ichizoku Toukon", 0 )
GAME( 2002, matrimbl, matrim, neogeo, neogeo, matrimbl, ROT0, "bootleg", "Matrimelee / Shin Gouketsuji Ichizoku Toukon (bootleg)", 0 )
/* Breezasoft */
GAME( 2001, jockeygp, neogeo, neogeo, jockeygp, jockeygp, ROT0, "Sun Amusement / BrezzaSoft", "Jockey Grand Prix", 0 )

View File

@ -42,8 +42,12 @@ READ16_HANDLER( neogeo_unmapped_r );
void kof99_neogeo_gfx_decrypt(running_machine *machine, int extra_xor);
void kof2000_neogeo_gfx_decrypt(running_machine *machine, int extra_xor);
void cmc50_neogeo_gfx_decrypt(running_machine *machine, int extra_xor);
void cmc42_neogeo_gfx_decrypt(running_machine *machine, int extra_xor);
void cmc50_neogeo_gfx_decrypt(running_machine *machine, int extra_xor);
void neogeo_cmc50_m1_decrypt(running_machine *machine);
void neo_pcm2_snk_1999(running_machine *machine, int value);
void neo_pcm2_swap(running_machine *machine, int value);
void neogeo_sfix_decrypt(running_machine *machine);
void kof99_decrypt_68k(running_machine *machine);
void garou_decrypt_68k(running_machine *machine);
void garouo_decrypt_68k(running_machine *machine);
@ -64,9 +68,6 @@ void kof2003_decrypt_68k(running_machine *machine);
void kof2003h_decrypt_68k(running_machine *machine);
void kof2003biosdecode(running_machine *machine);
void samsh5sp_decrypt_68k(running_machine *machine);
void neo_pcm2_snk_1999(running_machine *machine, int value);
void neo_pcm2_swap(running_machine *machine, int value);
void neogeo_cmc50_m1_decrypt(running_machine *machine);
/*----------- defined in machine/neoprot.c -----------*/
@ -118,6 +119,7 @@ void kf2k3upl_install_protection(running_machine *machine);
void kf2k3pl_install_protection(running_machine *machine);
void samsho5b_px_decrypt(running_machine *machine);
void samsho5b_vx_decrypt(running_machine *machine);
void matrimbl_decrypt(running_machine *machine);
/*----------- defined in video/neogeo.c -----------*/

View File

@ -1037,3 +1037,51 @@ void samsho5b_vx_decrypt( running_machine *machine )
rom[ i ] = BITSWAP8( rom[ i ], 0, 1, 5, 4, 3, 2, 6, 7 );
}
/* Matrimelee / Shin Gouketsuji Ichizoku Toukon (bootleg) */
#define MATRIMBLZ80( i ) ( i^(BITSWAP8(i&0x3,4,3,1,2,0,7,6,5)<<8) )
void matrimbl_decrypt( running_machine *machine )
{
/* decrypt Z80 */
UINT8 *rom = memory_region( machine, "audio" )+0x10000;
UINT8 *buf = malloc_or_die( 0x20000 );
int i, j=0;
memcpy( buf, rom, 0x20000 );
for( i=0x00000; i<0x20000; i++ )
{
if ( i&0x10000 )
{
if ( i&0x800 )
{
j=MATRIMBLZ80( i );
j=j^0x10000;
}
else
{
j=MATRIMBLZ80(( i^0x01 ));
}
}
else
{
if ( i&0x800 )
{
j=MATRIMBLZ80(( i^0x01 ));
j=j^0x10000;
}
else
{
j=MATRIMBLZ80( i );
}
}
rom[ j ]=buf[ i ];
}
free( buf );
memcpy( rom-0x10000, rom, 0x10000 );
/* decrypt gfx */
cthd2003_c( machine, 0);
}

View File

@ -590,7 +590,7 @@ static void neogeo_gfx_decrypt(running_machine *machine, int extra_xor)
/* the S data comes from the end of the C data */
static void neogeo_sfix_decrypt(running_machine *machine)
void neogeo_sfix_decrypt(running_machine *machine)
{
int i;
int rom_size = memory_region_length(machine, "sprites");

View File

@ -5797,6 +5797,7 @@ BOMULEUL CHAJARA SEGA ST-V 1997/04/11
DRIVER( kf10thep ) /* bootleg of kof2002 */
DRIVER( kof2k4se ) /* bootleg of kof2002 */
DRIVER( matrim ) /* 0266 (c) 2002 Atlus */
DRIVER( matrimbl ) /* bootleg */
DRIVER( pnyaa ) /* 0267 (c) 2003 Aiky / Taito */
DRIVER( ms5pcb ) /* 0268 (c) 2003 Playmore */
DRIVER( mslug5 ) /* 0268 (c) 2003 Playmore */