mirror of
https://github.com/holub/mame
synced 2025-05-17 19:24:59 +03:00
NeoGeo Update from Johnboy
(Guru, can you check that ms5pcb you have, the roms in MAME are now marked as NO DUMP) Updated Neo-Geo game pcb infos 2020bba: Marked MVS and AES version sonicwi2: Added correct sized v2 kof95 / kof95a: . Renamed kof95 to kof95h . Renamed p1 to correct chip label . Added note . Renamed kof95a to kof95 . Renamed p1 samsho3 / samsho3a: . Renamed samsho3a to samsho3 . Renamed samsho3 to samsho3h . Renamed p1 to correct chip label . Marked AES version kof98 / kof98n: . Renamed m1 in kof98 to correct chip label . Renamed m1 in kof98n to correct chip label (kof98n should be latest revision, cart had very high SN 1xx.xxx) kof97: Marked MVS version samsho5 / samsho5h: . Correct text layer size . Marked samsho5h AES version neogeo: . Updated system set to what is found on NEO-MVH MV1FS . Added note ms5pcb: . Hooked up bios dip . Renamed bios to correct chip label . Renamed p1 / p2 to correct chip label, marked NO_DUMP . Added note
This commit is contained in:
parent
ef10dec73f
commit
c423c47d14
File diff suppressed because it is too large
Load Diff
@ -61,6 +61,7 @@ void kf2k3pcb_gfx_decrypt(running_machine *machine);
|
||||
void kf2k3pcb_decrypt_68k(running_machine *machine);
|
||||
void kf2k3pcb_decrypt_s1data(running_machine *machine);
|
||||
void kof2003_decrypt_68k(running_machine *machine);
|
||||
void kof2003h_decrypt_68k(running_machine *machine);
|
||||
void kof2003biosdecode(running_machine *machine);
|
||||
void samsh5p_decrypt_68k(running_machine *machine);
|
||||
|
||||
@ -117,6 +118,7 @@ void kof2k3up_px_decrypt(running_machine *machine);
|
||||
void kof2k3up_install_protection(running_machine *machine);
|
||||
void kf2k3pl_install_protection(running_machine *machine);
|
||||
void samsh5bl_px_decrypt(running_machine *machine);
|
||||
void samsh5bl_vx_decrypt(running_machine *machine);
|
||||
|
||||
|
||||
/*----------- defined in video/neogeo.c -----------*/
|
||||
|
@ -998,4 +998,13 @@ void samsh5bl_px_decrypt( running_machine *machine )
|
||||
free( buf );
|
||||
}
|
||||
|
||||
void samsh5bl_vx_decrypt( running_machine *machine )
|
||||
{
|
||||
int vx_size = memory_region_length( machine, "ym" );
|
||||
UINT8 *rom = memory_region( machine, "ym" );
|
||||
int i;
|
||||
|
||||
for( i = 0; i < vx_size; i++ )
|
||||
rom[ i ] = BITSWAP8( rom[ i ], 0, 1, 5, 4, 3, 2, 6, 7 );
|
||||
}
|
||||
|
||||
|
@ -1246,6 +1246,53 @@ void kof2003_decrypt_68k(running_machine *machine)
|
||||
}
|
||||
|
||||
|
||||
void kof2003h_decrypt_68k(running_machine *machine)
|
||||
{
|
||||
static const UINT8 xor1[0x20] = { 0xc2, 0x4b, 0x74, 0xfd, 0x0b, 0x34, 0xeb, 0xd7, 0x10, 0x6d, 0xf9, 0xce, 0x5d, 0xd5, 0x61, 0x29, 0xf5, 0xbe, 0x0d, 0x82, 0x72, 0x45, 0x0f, 0x24, 0xb3, 0x34, 0x1b, 0x99, 0xea, 0x09, 0xf3, 0x03 };
|
||||
static const UINT8 xor2[0x20] = { 0x2b, 0x09, 0xd0, 0x7f, 0x51, 0x0b, 0x10, 0x4c, 0x5b, 0x07, 0x70, 0x9d, 0x3e, 0x0b, 0xb0, 0xb6, 0x54, 0x09, 0xe0, 0xcc, 0x3d, 0x0d, 0x80, 0x99, 0x87, 0x03, 0x90, 0x82, 0xfe, 0x04, 0x20, 0x18 };
|
||||
int i;
|
||||
int ofst;
|
||||
int rom_size = 0x900000;
|
||||
UINT8 *rom = memory_region( machine, "main" );
|
||||
UINT8 *buf = malloc_or_die( rom_size );
|
||||
|
||||
for (i = 0; i < 0x100000; i++)
|
||||
{
|
||||
rom[ 0x800000 + i ] ^= rom[ 0x100002 | BYTE_XOR_LE(i) ];
|
||||
}
|
||||
for( i = 0; i < 0x100000; i++)
|
||||
{
|
||||
rom[ i ] ^= xor1[ (BYTE_XOR_LE(i) % 0x20) ];
|
||||
}
|
||||
for( i = 0x100000; i < 0x800000; i++)
|
||||
{
|
||||
rom[ i ] ^= xor2[ (BYTE_XOR_LE(i) % 0x20) ];
|
||||
}
|
||||
for( i = 0x100000; i < 0x800000; i += 4)
|
||||
{
|
||||
UINT16 rom16;
|
||||
rom16 = rom[BYTE_XOR_LE(i+1)] | rom[BYTE_XOR_LE(i+2)]<<8;
|
||||
rom16 = BITSWAP16( rom16, 15, 14, 13, 12, 10, 11, 8, 9, 6, 7, 4, 5, 3, 2, 1, 0 );
|
||||
rom[BYTE_XOR_LE(i+1)] = rom16&0xff;
|
||||
rom[BYTE_XOR_LE(i+2)] = rom16>>8;
|
||||
}
|
||||
for( i = 0; i < 0x0100000 / 0x10000; i++ )
|
||||
{
|
||||
ofst = (i & 0xf0) + BITSWAP8((i & 0x0f), 7, 6, 5, 4, 1, 0, 3, 2);
|
||||
memcpy( &buf[ i * 0x10000 ], &rom[ ofst * 0x10000 ], 0x10000 );
|
||||
}
|
||||
for( i = 0x100000; i < 0x900000; i += 0x100)
|
||||
{
|
||||
ofst = (i & 0xf000ff) + ((i & 0x000f00) ^ 0x00400) + (BITSWAP8( ((i & 0x0ff000) >> 12), 6, 7, 4, 5, 0, 1, 2, 3 ) << 12);
|
||||
memcpy( &buf[ i ], &rom[ ofst ], 0x100 );
|
||||
}
|
||||
memcpy (&rom[0x000000], &buf[0x000000], 0x100000);
|
||||
memcpy (&rom[0x100000], &buf[0x800000], 0x100000);
|
||||
memcpy (&rom[0x200000], &buf[0x100000], 0x700000);
|
||||
free( buf );
|
||||
}
|
||||
|
||||
|
||||
void kof2003biosdecode(running_machine *machine)
|
||||
{
|
||||
static const UINT8 address[0x80]={
|
||||
|
@ -5668,11 +5668,11 @@ BOMULEUL CHAJARA SEGA ST-V 1997/04/11
|
||||
DRIVER( pbobblen ) /* 0083 (c) 1994 Taito */
|
||||
DRIVER( pbobblna ) /* 0083 (c) 1994 Taito */
|
||||
DRIVER( kof95 ) /* 0084 (c) 1995 SNK */
|
||||
DRIVER( kof95a ) /* 0084 (c) 1995 SNK */
|
||||
DRIVER( kof95h ) /* 0084 (c) 1995 SNK */
|
||||
/* 0085 Shinsetsu Samurai Spirits Bushidoretsuden / Samurai Shodown RPG (CD only) */
|
||||
DRIVER( tws96 ) /* 0086 (c) 1996 Tecmo */
|
||||
DRIVER( samsho3 ) /* 0087 (c) 1995 SNK */
|
||||
DRIVER( samsho3a ) /* 0087 (c) 1995 SNK */
|
||||
DRIVER( samsho3h ) /* 0087 (c) 1995 SNK */
|
||||
DRIVER( fswords ) /* Korean hack of samsho3 */
|
||||
DRIVER( stakwin ) /* 0088 (c) 1995 Saurus */
|
||||
DRIVER( pulstar ) /* 0089 (c) 1995 Aicom */
|
||||
@ -5810,6 +5810,7 @@ BOMULEUL CHAJARA SEGA ST-V 1997/04/11
|
||||
DRIVER( samsho5b ) /* bootleg */
|
||||
DRIVER( kf2k3pcb ) /* 0271 (c) 2003 Playmore - JAMMA PCB */
|
||||
DRIVER( kof2003 ) /* 0271 (c) 2003 Playmore */
|
||||
DRIVER( kof2003h ) /* 0271 (c) 2003 Playmore */
|
||||
DRIVER( kf2k3bl ) /* bootleg */
|
||||
DRIVER( kf2k3bla ) /* bootleg */
|
||||
DRIVER( kf2k3pl ) /* bootleg */
|
||||
|
Loading…
Reference in New Issue
Block a user