dinopic - WIP

This commit is contained in:
Robbbert 2013-04-01 11:39:04 +00:00
parent 0e089286c1
commit d37c28691d
3 changed files with 245 additions and 125 deletions

View File

@ -2309,7 +2309,7 @@ static INPUT_PORTS_START( dinopic )
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
static INPUT_PORTS_START( dino )
INPUT_PORTS_START( dino )
PORT_INCLUDE( dinopic )
PORT_START( "EEPROMIN" )
@ -3272,7 +3272,7 @@ static MACHINE_CONFIG_DERIVED( qsound, cps1_12MHz )
MACHINE_CONFIG_END
/* bootlegs with PIC */
#if 0
static MACHINE_CONFIG_START( cpspicb, cps_state )
/* basic machine hardware */
@ -3307,7 +3307,7 @@ static MACHINE_CONFIG_START( cpspicb, cps_state )
MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MACHINE_CONFIG_END
#endif
static MACHINE_CONFIG_DERIVED( wofhfh, cps1_12MHz )
/* basic machine hardware */
@ -9556,112 +9556,6 @@ ROM_START( dinoj )
ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
ROM_END
/*
Cadillac Bootleg Hardware:
1x 68000p10
1x PIC16c57
1x AD-65
1x OSC 30mhz
1x OSC 24mhz
13x 27c4000 ROMS
*/
ROM_START( dinopic )
ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_BYTE( "3.bin", 0x000001, 0x80000, CRC(13dfeb08) SHA1(cd2f9dd64f4fabe93901247e36dff3763169716d) )
ROM_LOAD16_BYTE( "5.bin", 0x000000, 0x80000, CRC(96dfcbf1) SHA1(a8bda6edae2c1b79db7ae8a8976fd2457f874373) )
ROM_LOAD16_BYTE( "2.bin", 0x100001, 0x80000, CRC(0e4058ba) SHA1(346f9e34ea53dd1bf5cdafa1e38bf2edb09b9a7f) )
ROM_LOAD16_BYTE( "7.bin", 0x100000, 0x80000, CRC(6133f349) SHA1(d13af99910623f62c090d25372a2253dbc2f8cbe) )
ROM_REGION( 0x400000, "gfx", 0 ) // same data, different format, except for 8 which is a 99% match (bad rom?)
ROMX_LOAD( "4.bin", 0x000000, 0x40000, CRC(f3c2c98d) SHA1(98ae51a67fa4159456a4a205eebdd8d1775888d1), ROM_SKIP(7) )
ROM_CONTINUE( 0x000004, 0x40000)
ROMX_LOAD( "8.bin", 0x000001, 0x40000, CRC(d574befc) SHA1(56482e7a9aa8439f30e3cf72311495ce677a083d), ROM_SKIP(7) )
ROM_CONTINUE( 0x000005, 0x40000)
ROMX_LOAD( "9.bin", 0x000002, 0x40000, CRC(55ef0adc) SHA1(3b5551ae76ae80882d37fc70a1031a57885d6840), ROM_SKIP(7) )
ROM_CONTINUE( 0x000006, 0x40000)
ROMX_LOAD( "6.bin", 0x000003, 0x40000, CRC(cc0805fc) SHA1(c512734c28b878a30a0de249929f69784d5d77a1), ROM_SKIP(7) )
ROM_CONTINUE( 0x000007, 0x40000)
ROMX_LOAD( "13.bin", 0x200000, 0x40000, CRC(1371f714) SHA1(d2c98096fab08e3d4fd2482e6ebfc970ead656ee), ROM_SKIP(7) )
ROM_CONTINUE( 0x200004, 0x40000)
ROMX_LOAD( "12.bin", 0x200001, 0x40000, CRC(b284c4a7) SHA1(166f571e0afa115f8e38ba427b40e30abcfd70ee), ROM_SKIP(7) )
ROM_CONTINUE( 0x200005, 0x40000)
ROMX_LOAD( "11.bin", 0x200002, 0x40000, CRC(b7ad3394) SHA1(58dec34d9d991ff2817c8a7847749716abae6c77), ROM_SKIP(7) )
ROM_CONTINUE( 0x200006, 0x40000)
ROMX_LOAD( "10.bin", 0x200003, 0x40000, CRC(88847705) SHA1(05dc90067921960e417b7436056a5e1f86abaa1a), ROM_SKIP(7) )
ROM_CONTINUE( 0x200007, 0x40000)
ROM_REGION( 0x28000, "audiocpu", 0 ) /* PIC16c57 - protected, dump isn't valid */
ROM_LOAD( "pic16c57-rp", 0x00000, 0x2d4c, BAD_DUMP CRC(5a6d393c) SHA1(1391a1590aff5f75bb6fae1c83eddb796b53135d) )
ROM_REGION( 0x80000, "oki", 0 ) /* OKI6295 samples */
ROM_LOAD( "1.bin", 0x000000, 0x80000, CRC(7d921309) SHA1(d51e60e904d302c2516b734189e141aa171b2b82) )
ROM_END
/* this is basically the same set as above, from a different bootleg pcb, with a few extra pal dumps etc.
the first dump will probably be removed eventually
CPU
1x TS68000CP10 (main)
1x AD-65 (sound)(equivalent to M6295)
1x PIC16C57-XT/P
1x A1020B-PL84C
1x oscillator 24.000MHz (close to main)
1x oscillator 30.000MHz (close to sound)
ROMs
13x 27C4000
3x GAL20V8A
3x PALCE16V8H (1 broken not dumped)
1x CAT93C46P
Note
1x JAMMA edge connector
1x 10 legs connector
1x trimmer (volume)
*/
ROM_START( dinopic2 )
ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_BYTE( "27c4000-m12374r-2.bin", 0x000001, 0x80000, CRC(13dfeb08) SHA1(cd2f9dd64f4fabe93901247e36dff3763169716d) )
ROM_LOAD16_BYTE( "27c4000-m12481.bin", 0x000000, 0x80000, CRC(96dfcbf1) SHA1(a8bda6edae2c1b79db7ae8a8976fd2457f874373) )
ROM_LOAD16_BYTE( "27c4000-m12374r-1.bin", 0x100001, 0x80000, CRC(0e4058ba) SHA1(346f9e34ea53dd1bf5cdafa1e38bf2edb09b9a7f) )
ROM_LOAD16_BYTE( "27c4000-m12374r-3.bin", 0x100000, 0x80000, CRC(6133f349) SHA1(d13af99910623f62c090d25372a2253dbc2f8cbe) )
ROM_REGION( 0x400000, "gfx", 0 )
ROMX_LOAD( "27c4000-m12481-4.bin", 0x000000, 0x40000, CRC(f3c2c98d) SHA1(98ae51a67fa4159456a4a205eebdd8d1775888d1), ROM_SKIP(7) )
ROM_CONTINUE( 0x000004, 0x40000)
ROMX_LOAD( "27c4000-m12481-3.bin", 0x000001, 0x40000, CRC(417a4816) SHA1(5268f6667ff550a949a08f94171966f5d841c6b2), ROM_SKIP(7) ) // this one is a perfect match, unlike dinopic set
ROM_CONTINUE( 0x000005, 0x40000)
ROMX_LOAD( "27c4000-m12481-2.bin", 0x000002, 0x40000, CRC(55ef0adc) SHA1(3b5551ae76ae80882d37fc70a1031a57885d6840), ROM_SKIP(7) )
ROM_CONTINUE( 0x000006, 0x40000)
ROMX_LOAD( "27c4000-m12481-1.bin", 0x000003, 0x40000, CRC(cc0805fc) SHA1(c512734c28b878a30a0de249929f69784d5d77a1), ROM_SKIP(7) )
ROM_CONTINUE( 0x000007, 0x40000)
ROMX_LOAD( "27c4000-m12481-8.bin", 0x200000, 0x40000, CRC(1371f714) SHA1(d2c98096fab08e3d4fd2482e6ebfc970ead656ee), ROM_SKIP(7) )
ROM_CONTINUE( 0x200004, 0x40000)
ROMX_LOAD( "27c4000-m12481-7.bin", 0x200001, 0x40000, CRC(b284c4a7) SHA1(166f571e0afa115f8e38ba427b40e30abcfd70ee), ROM_SKIP(7) )
ROM_CONTINUE( 0x200005, 0x40000)
ROMX_LOAD( "27c4000-m12481-6.bin", 0x200002, 0x40000, CRC(b7ad3394) SHA1(58dec34d9d991ff2817c8a7847749716abae6c77), ROM_SKIP(7) )
ROM_CONTINUE( 0x200006, 0x40000)
ROMX_LOAD( "27c4000-m12481-5.bin", 0x200003, 0x40000, CRC(88847705) SHA1(05dc90067921960e417b7436056a5e1f86abaa1a), ROM_SKIP(7) )
ROM_CONTINUE( 0x200007, 0x40000)
ROM_REGION( 0x28000, "audiocpu", 0 ) /* PIC16c57 - protected, dump isn't valid */
ROM_LOAD( "pic16c57-xt.hex", 0x00000, 0x26cc, BAD_DUMP CRC(a6a5eac4) SHA1(2039789084836769180f0bfd230c2553a37e2aaf) )
ROM_REGION( 0x80000, "oki", 0 ) /* OKI6295 samples */
ROM_LOAD( "27c4000-m12623.bin", 0x000000, 0x80000, CRC(7d921309) SHA1(d51e60e904d302c2516b734189e141aa171b2b82) )
ROM_REGION( 0x80000, "user1", 0 ) /* extra bits on this set */
ROM_LOAD( "cat93c46p.bin", 0x0, 0x080, CRC(d49fa351) SHA1(e6dfaff1c6aa962d34ae8e82b71e6f394d82e19c) )
ROM_LOAD( "gal20v8a-1.bin", 0x0, 0x157, CRC(cd99ca47) SHA1(ee1d990fd294aa46f56f31264134251569f6792e) )
ROM_LOAD( "gal20v8a-2.bin", 0x0, 0x157, CRC(60d016b9) SHA1(add42c763c819f3fe6d7cf3adc7123a52c2a3be9) )
ROM_LOAD( "gal20v8a-3.bin", 0x0, 0x157, CRC(049b7f4f) SHA1(6c6ea03d9a293db69a8bd10e042ee75e3c01313c) )
ROM_LOAD( "palce16v8h-1.bin", 0x0, 0x117, CRC(48253c66) SHA1(8c94e655b768c45c3edf6ef39e62e3b7a4e57530) )
ROM_LOAD( "palce16v8h-2.bin", 0x0, 0x117, CRC(9ae375ba) SHA1(6f227c2a5b1170a41e6419f12d1e1f98edc6f8e5) )
ROM_END
/* Chinese bootleg board */
ROM_START( dinohunt )
@ -11216,8 +11110,6 @@ GAME( 1992, sf2hfj, sf2hf, cps1_12MHz, sf2j, cps_state, cps1,
GAME( 1993, dino, 0, qsound, dino, cps_state, dino, ROT0, "Capcom", "Cadillacs and Dinosaurs (World 930201)", GAME_SUPPORTS_SAVE ) // "ETC"
GAME( 1993, dinou, dino, qsound, dino, cps_state, dino, ROT0, "Capcom", "Cadillacs and Dinosaurs (USA 930201)", GAME_SUPPORTS_SAVE )
GAME( 1993, dinoj, dino, qsound, dino, cps_state, dino, ROT0, "Capcom", "Cadillacs: Kyouryuu Shin Seiki (Japan 930201)", GAME_SUPPORTS_SAVE )
GAME( 1993, dinopic, dino, cpspicb, dinopic, cps_state, dino, ROT0, "bootleg", "Cadillacs and Dinosaurs (bootleg with PIC16c57, set 1)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
GAME( 1993, dinopic2, dino, cpspicb, dinopic, cps_state, dino, ROT0, "bootleg", "Cadillacs and Dinosaurs (bootleg with PIC16c57, set 2)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
GAME( 1993, dinohunt, dino, wofhfh, dinoh, cps_state, dinohunt, ROT0, "bootleg", "Dinosaur Hunter (Chinese bootleg of Cadillacs and Dinosaurs)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // 930223 - based on Asia TW version, the original is still undumped
GAME( 1993, punisher, 0, qsound, punisher, cps_state, punisher, ROT0, "Capcom", "The Punisher (World 930422)", GAME_SUPPORTS_SAVE ) // "ETC"
GAME( 1993, punisheru, punisher, qsound, punisher, cps_state, punisher, ROT0, "Capcom", "The Punisher (USA 930422)", GAME_SUPPORTS_SAVE )

View File

@ -152,6 +152,40 @@ WRITE8_MEMBER( cps_state::fcrash_msm5205_1_data_w )
/* not verified */
#define CPS1_ROWSCROLL_OFFS (0x20/2) /* base of row scroll offsets in other RAM */
WRITE16_MEMBER(cps_state::dinopic_layer_w)
{
switch (offset)
{
case 0x00:
m_cps_a_regs[0x0e / 2] = data;
break;
case 0x01:
m_cps_a_regs[0x0c / 2] = data;
break;
case 0x02:
m_cps_a_regs[0x12 / 2] = data;
m_cps_a_regs[CPS1_ROWSCROLL_OFFS] = data; /* row scroll start */
break;
case 0x03:
m_cps_a_regs[0x10 / 2] = data;
break;
case 0x04:
m_cps_a_regs[0x16 / 2] = data;
break;
case 0x05:
m_cps_a_regs[0x14 / 2] = data;
break;
default:
logerror("%s: Unknown layer cmd %X %X\n",space.machine().describe_context(),offset<<1,data);
}
}
WRITE16_MEMBER( cps_state::dinopic_layer2_w )
{
m_cps_a_regs[0x06 / 2] = data;
}
WRITE16_MEMBER(cps_state::kodb_layer_w)
{
/* layer enable and mask 1&2 registers are written here - passing them to m_cps_b_regs for now for drawing routines */
@ -609,6 +643,25 @@ static ADDRESS_MAP_START( knightsb_map, AS_PROGRAM, 16, cps_state )
AM_RANGE(0xff0000, 0xffffff) AM_RAM
ADDRESS_MAP_END
static ADDRESS_MAP_START( dinopic_map, AS_PROGRAM, 16, cps_state )
AM_RANGE(0x000000, 0x3fffff) AM_ROM
AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1") /* Player input ports */
AM_RANGE(0x800006, 0x800007) AM_WRITE(cps1_soundlatch_w) /* Sound command */
AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w)
AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */
AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
AM_RANGE(0x800222, 0x800223) AM_WRITE(dinopic_layer2_w)
AM_RANGE(0x880000, 0x880001) AM_WRITENOP // always 0
AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
AM_RANGE(0x980000, 0x98000b) AM_WRITE(dinopic_layer_w)
AM_RANGE(0xf18000, 0xf19fff) AM_RAM
AM_RANGE(0xf1c000, 0xf1c001) AM_READ_PORT("IN2") /* Player 3 controls (later games) */
AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */
AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
AM_RANGE(0xff0000, 0xffffff) AM_RAM
ADDRESS_MAP_END
static ADDRESS_MAP_START( fcrash_map, AS_PROGRAM, 16, cps_state )
AM_RANGE(0x000000, 0x3fffff) AM_ROM
AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w)
@ -1555,9 +1608,10 @@ static MACHINE_CONFIG_START( knightsb, cps_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
#define CODE_SIZE 0x400000
ROM_START( fcrash )
ROM_REGION( 0x400000, "maincpu", 0 ) /* 68000 code */
ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_BYTE( "9.bin", 0x00000, 0x20000, CRC(c6854c91) SHA1(29f01cc65be5eaa3f86e99eebdd284104623abb0) )
ROM_LOAD16_BYTE( "5.bin", 0x00001, 0x20000, CRC(77f7c2b3) SHA1(feea48d9555824a2e5bf5e99ce159edc015f0792) )
ROM_LOAD16_BYTE( "8.bin", 0x40000, 0x20000, CRC(1895b3df) SHA1(415a26050c50ed79a7ee5ddd1b8d61593b1ce876) )
@ -1629,7 +1683,7 @@ Note
*/
ROM_START( kodb )
ROM_REGION( 0x400000, "maincpu", 0 ) /* 68000 code */
ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_BYTE( "3.ic172", 0x00000, 0x080000, CRC(036dd74c) SHA1(489344e56863429e86b4c362b82d89819c1d6afb) )
ROM_LOAD16_BYTE( "4.ic171", 0x00001, 0x080000, CRC(3e4b7295) SHA1(3245640bae7d141238051dfe5c7683d05c6d3848) )
//ROM_FILL( 0x952, 1, 7) // temporary patch to fix transitions
@ -1698,7 +1752,7 @@ Note:
/* FIXME - GFX ROMs are wrong, copied from the other version */
/* ROMs missing are KA.IC91 KB.IC92 KC.IC93 KD.IC94 */
ROM_START( knightsb )
ROM_REGION( 0x400000, "maincpu", 0 ) /* 68000 code */
ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_BYTE( "3.ic173", 0x00001, 0x40000, CRC(c9c6e720) SHA1(e8a1cd73458b548e88fc49d8f659e0dc33a8e756) )
ROM_LOAD16_BYTE( "5.ic172", 0x00000, 0x40000, CRC(7fd91118) SHA1(d2832b21309a467938891946d7af35d8095787a4) )
ROM_LOAD16_BYTE( "2.ic175", 0x80001, 0x40000, CRC(1eb91343) SHA1(e02cfbbd7689346f14f2e3455ed17e7f0b51bad0) )
@ -1720,7 +1774,7 @@ ROM_START( knightsb )
ROM_END
ROM_START( cawingbl )
ROM_REGION( 0x400000, "maincpu", 0 ) /* 68000 code */
ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_BYTE( "caw2.bin", 0x00000, 0x80000, CRC(8125d3f0) SHA1(a0e48c326c6164ca189c9372f5c38a7c103772c1) )
ROM_LOAD16_BYTE( "caw1.bin", 0x00001, 0x80000, CRC(b19b10ce) SHA1(3c71f1dc830d1e8b8ba26d8a71e12f477659480c) )
@ -1736,7 +1790,7 @@ ROM_START( cawingbl )
ROM_END
ROM_START( cawingb2 )
ROM_REGION( 0x400000, "maincpu", 0 ) /* 68000 code */
ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_BYTE( "8.8", 0x00000, 0x20000, CRC(f655708c) SHA1(9962a1c96ea08bc71b25d4f58e5d1fb1beebf0dc) )
ROM_LOAD16_BYTE( "4.4", 0x00001, 0x20000, CRC(a02fb5aa) SHA1(c9c064a83899c48f681ac803cfc5886503b9d992) )
ROM_LOAD16_BYTE( "7.7", 0x40000, 0x20000, CRC(8c6c7430) SHA1(3ed5713caf774b050b41a6adea026e1307b570df) )
@ -1769,6 +1823,173 @@ ROM_START( cawingb2 )
ROM_RELOAD( 0x10000, 0x20000 )
ROM_END
MACHINE_START_MEMBER(cps_state, dinopic)
{
m_maincpu = machine().device<cpu_device>("maincpu");
//m_audiocpu = machine().device<cpu_device>("audiocpu");
m_layer_enable_reg = 0x0a;
m_layer_mask_reg[0] = 0x0c;
m_layer_mask_reg[1] = 0x0e;
m_layer_mask_reg[2] = 0x00;
m_layer_mask_reg[3] = 0x02;
m_layer_scroll1x_offset = 0x40;
m_layer_scroll2x_offset = 0x40;
m_layer_scroll3x_offset = 0x40;
m_sprite_base = 0x1000;
m_sprite_list_end_marker = 0x8000;
m_sprite_x_offset = 0;
}
static MACHINE_CONFIG_START( dinopic, cps_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, 12000000)
MCFG_CPU_PROGRAM_MAP(dinopic_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
//MCFG_CPU_ADD("audiocpu", PIC16C57, 12000000)
//MCFG_DEVICE_DISABLE() /* no valid dumps .. */
MCFG_MACHINE_START_OVERRIDE(cps_state, dinopic)
MCFG_EEPROM_ADD("eeprom", qsound_eeprom_interface)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1)
MCFG_GFXDECODE(cps1)
MCFG_PALETTE_LENGTH(0xc00)
MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MACHINE_CONFIG_END
/*
Cadillac Bootleg Hardware:
1x 68000p10
1x PIC16c57
1x AD-65
1x OSC 30mhz
1x OSC 24mhz
13x 27c4000 ROMS
*/
ROM_START( dinopic )
ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_BYTE( "3.bin", 0x000001, 0x80000, CRC(13dfeb08) SHA1(cd2f9dd64f4fabe93901247e36dff3763169716d) )
ROM_LOAD16_BYTE( "5.bin", 0x000000, 0x80000, CRC(96dfcbf1) SHA1(a8bda6edae2c1b79db7ae8a8976fd2457f874373) )
ROM_LOAD16_BYTE( "2.bin", 0x100001, 0x80000, CRC(0e4058ba) SHA1(346f9e34ea53dd1bf5cdafa1e38bf2edb09b9a7f) )
ROM_LOAD16_BYTE( "7.bin", 0x100000, 0x80000, CRC(6133f349) SHA1(d13af99910623f62c090d25372a2253dbc2f8cbe) )
ROM_REGION( 0x400000, "gfx", 0 ) // same data, different format, except for 8 which is a 99% match (bad rom?)
ROMX_LOAD( "4.bin", 0x000000, 0x40000, CRC(f3c2c98d) SHA1(98ae51a67fa4159456a4a205eebdd8d1775888d1), ROM_SKIP(7) )
ROM_CONTINUE( 0x000004, 0x40000)
ROMX_LOAD( "8.bin", 0x000001, 0x40000, CRC(d574befc) SHA1(56482e7a9aa8439f30e3cf72311495ce677a083d), ROM_SKIP(7) )
ROM_CONTINUE( 0x000005, 0x40000)
ROMX_LOAD( "9.bin", 0x000002, 0x40000, CRC(55ef0adc) SHA1(3b5551ae76ae80882d37fc70a1031a57885d6840), ROM_SKIP(7) )
ROM_CONTINUE( 0x000006, 0x40000)
ROMX_LOAD( "6.bin", 0x000003, 0x40000, CRC(cc0805fc) SHA1(c512734c28b878a30a0de249929f69784d5d77a1), ROM_SKIP(7) )
ROM_CONTINUE( 0x000007, 0x40000)
ROMX_LOAD( "13.bin", 0x200000, 0x40000, CRC(1371f714) SHA1(d2c98096fab08e3d4fd2482e6ebfc970ead656ee), ROM_SKIP(7) )
ROM_CONTINUE( 0x200004, 0x40000)
ROMX_LOAD( "12.bin", 0x200001, 0x40000, CRC(b284c4a7) SHA1(166f571e0afa115f8e38ba427b40e30abcfd70ee), ROM_SKIP(7) )
ROM_CONTINUE( 0x200005, 0x40000)
ROMX_LOAD( "11.bin", 0x200002, 0x40000, CRC(b7ad3394) SHA1(58dec34d9d991ff2817c8a7847749716abae6c77), ROM_SKIP(7) )
ROM_CONTINUE( 0x200006, 0x40000)
ROMX_LOAD( "10.bin", 0x200003, 0x40000, CRC(88847705) SHA1(05dc90067921960e417b7436056a5e1f86abaa1a), ROM_SKIP(7) )
ROM_CONTINUE( 0x200007, 0x40000)
ROM_REGION( 0x28000, "audiocpu", 0 ) /* PIC16c57 - protected, dump isn't valid */
ROM_LOAD( "pic16c57-rp", 0x00000, 0x2d4c, BAD_DUMP CRC(5a6d393c) SHA1(1391a1590aff5f75bb6fae1c83eddb796b53135d) )
ROM_REGION( 0x80000, "oki", 0 ) /* OKI6295 samples */
ROM_LOAD( "1.bin", 0x000000, 0x80000, CRC(7d921309) SHA1(d51e60e904d302c2516b734189e141aa171b2b82) )
ROM_END
/* this is basically the same set as above, from a different bootleg pcb, with a few extra pal dumps etc.
the first dump will probably be removed eventually
CPU
1x TS68000CP10 (main)
1x AD-65 (sound)(equivalent to M6295)
1x PIC16C57-XT/P
1x A1020B-PL84C
1x oscillator 24.000MHz (close to main)
1x oscillator 30.000MHz (close to sound)
ROMs
13x 27C4000
3x GAL20V8A
3x PALCE16V8H (1 broken not dumped)
1x CAT93C46P
Note
1x JAMMA edge connector
1x 10 legs connector
1x trimmer (volume)
*/
ROM_START( dinopic2 )
ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_BYTE( "27c4000-m12374r-2.bin", 0x000001, 0x80000, CRC(13dfeb08) SHA1(cd2f9dd64f4fabe93901247e36dff3763169716d) )
ROM_LOAD16_BYTE( "27c4000-m12481.bin", 0x000000, 0x80000, CRC(96dfcbf1) SHA1(a8bda6edae2c1b79db7ae8a8976fd2457f874373) )
ROM_LOAD16_BYTE( "27c4000-m12374r-1.bin", 0x100001, 0x80000, CRC(0e4058ba) SHA1(346f9e34ea53dd1bf5cdafa1e38bf2edb09b9a7f) )
ROM_LOAD16_BYTE( "27c4000-m12374r-3.bin", 0x100000, 0x80000, CRC(6133f349) SHA1(d13af99910623f62c090d25372a2253dbc2f8cbe) )
ROM_REGION( 0x400000, "gfx", 0 )
ROMX_LOAD( "27c4000-m12481-4.bin", 0x000000, 0x40000, CRC(f3c2c98d) SHA1(98ae51a67fa4159456a4a205eebdd8d1775888d1), ROM_SKIP(7) )
ROM_CONTINUE( 0x000004, 0x40000)
ROMX_LOAD( "27c4000-m12481-3.bin", 0x000001, 0x40000, CRC(417a4816) SHA1(5268f6667ff550a949a08f94171966f5d841c6b2), ROM_SKIP(7) ) // this one is a perfect match, unlike dinopic set
ROM_CONTINUE( 0x000005, 0x40000)
ROMX_LOAD( "27c4000-m12481-2.bin", 0x000002, 0x40000, CRC(55ef0adc) SHA1(3b5551ae76ae80882d37fc70a1031a57885d6840), ROM_SKIP(7) )
ROM_CONTINUE( 0x000006, 0x40000)
ROMX_LOAD( "27c4000-m12481-1.bin", 0x000003, 0x40000, CRC(cc0805fc) SHA1(c512734c28b878a30a0de249929f69784d5d77a1), ROM_SKIP(7) )
ROM_CONTINUE( 0x000007, 0x40000)
ROMX_LOAD( "27c4000-m12481-8.bin", 0x200000, 0x40000, CRC(1371f714) SHA1(d2c98096fab08e3d4fd2482e6ebfc970ead656ee), ROM_SKIP(7) )
ROM_CONTINUE( 0x200004, 0x40000)
ROMX_LOAD( "27c4000-m12481-7.bin", 0x200001, 0x40000, CRC(b284c4a7) SHA1(166f571e0afa115f8e38ba427b40e30abcfd70ee), ROM_SKIP(7) )
ROM_CONTINUE( 0x200005, 0x40000)
ROMX_LOAD( "27c4000-m12481-6.bin", 0x200002, 0x40000, CRC(b7ad3394) SHA1(58dec34d9d991ff2817c8a7847749716abae6c77), ROM_SKIP(7) )
ROM_CONTINUE( 0x200006, 0x40000)
ROMX_LOAD( "27c4000-m12481-5.bin", 0x200003, 0x40000, CRC(88847705) SHA1(05dc90067921960e417b7436056a5e1f86abaa1a), ROM_SKIP(7) )
ROM_CONTINUE( 0x200007, 0x40000)
ROM_REGION( 0x28000, "audiocpu", 0 ) /* PIC16c57 - protected, dump isn't valid */
ROM_LOAD( "pic16c57-xt.hex", 0x00000, 0x26cc, BAD_DUMP CRC(a6a5eac4) SHA1(2039789084836769180f0bfd230c2553a37e2aaf) )
ROM_REGION( 0x80000, "oki", 0 ) /* OKI6295 samples */
ROM_LOAD( "27c4000-m12623.bin", 0x000000, 0x80000, CRC(7d921309) SHA1(d51e60e904d302c2516b734189e141aa171b2b82) )
ROM_REGION( 0x80000, "user1", 0 ) /* extra bits on this set */
ROM_LOAD( "cat93c46p.bin", 0x0, 0x080, CRC(d49fa351) SHA1(e6dfaff1c6aa962d34ae8e82b71e6f394d82e19c) )
ROM_LOAD( "gal20v8a-1.bin", 0x0, 0x157, CRC(cd99ca47) SHA1(ee1d990fd294aa46f56f31264134251569f6792e) )
ROM_LOAD( "gal20v8a-2.bin", 0x0, 0x157, CRC(60d016b9) SHA1(add42c763c819f3fe6d7cf3adc7123a52c2a3be9) )
ROM_LOAD( "gal20v8a-3.bin", 0x0, 0x157, CRC(049b7f4f) SHA1(6c6ea03d9a293db69a8bd10e042ee75e3c01313c) )
ROM_LOAD( "palce16v8h-1.bin", 0x0, 0x117, CRC(48253c66) SHA1(8c94e655b768c45c3edf6ef39e62e3b7a4e57530) )
ROM_LOAD( "palce16v8h-2.bin", 0x0, 0x117, CRC(9ae375ba) SHA1(6f227c2a5b1170a41e6419f12d1e1f98edc6f8e5) )
ROM_END
DRIVER_INIT_MEMBER(cps_state, dinopic)
{
m_bootleg_sprite_ram = (UINT16*)machine().device("maincpu")->memory().space(AS_PROGRAM).install_ram(0x990000, 0x993fff);
DRIVER_INIT_CALL(cps1);
}
/*
CPU
@ -1797,7 +2018,7 @@ Note
*/
ROM_START( sf2mdt )
ROM_REGION( 0x400000, "maincpu", 0 ) /* 68000 code */
ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_BYTE( "3.ic172", 0x000000, 0x80000, CRC(5301b41f) SHA1(6855a57b21e8c5d74e5cb18f9ce6af650d7fb422) )
ROM_LOAD16_BYTE( "1.ic171", 0x000001, 0x80000, CRC(c1c803f6) SHA1(9fe18ae2553a63d8e4dcc20bafd5a4634f8b93c4) )
ROM_LOAD16_BYTE( "4.ic176", 0x100000, 0x20000, CRC(1073b7b6) SHA1(81ca1eab65ceac69520584bb23a684ccb9d92f89) )
@ -1824,7 +2045,7 @@ ROM_END
ROM_START( sf2mdta )
/* unconfirmed if working on real hardware, pf4 is a bad dump (bad pin) */
ROM_REGION( 0x400000, "maincpu", 0 ) /* 68000 code */
ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_BYTE( "3.mdta", 0x000000, 0x80000, CRC(9f544ef4) SHA1(f784809e59a5fcabd6d15d3f1c36250a5528c9f8) )
ROM_LOAD16_BYTE( "5.mdta", 0x000001, 0x80000, CRC(d76d6621) SHA1(aa9cea9ddace212a7b3c535b8f6e3fbc50da1f94) )
ROM_LOAD16_BYTE( "2.mdta", 0x100000, 0x20000, CRC(74844192) SHA1(99cd546c78cce7f632007af454d8a55eddb6b19b) )
@ -1888,7 +2109,7 @@ MACHINE_CONFIG_END
ROM_START( sgyxz )
ROM_REGION( 0x400000, "maincpu", 0 ) /* 68000 Code */
ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 Code */
ROM_LOAD16_BYTE( "sgyxz_prg1.bin", 0x000001, 0x20000, CRC(d8511929) SHA1(4de9263778f327693f4d1e21b48e43806f673487) )
ROM_CONTINUE( 0x80001, 0x20000 )
ROM_CONTINUE( 0x40001, 0x20000 )
@ -1995,7 +2216,7 @@ DRIVER_INIT_MEMBER(cps_state, knightsb)
MACHINE_START_MEMBER(cps_state, punipic)
{
m_maincpu = machine().device<cpu_device>("maincpu");
m_audiocpu = machine().device<cpu_device>("audiocpu");
//m_audiocpu = machine().device<cpu_device>("audiocpu");
m_layer_enable_reg = 0x12;
m_layer_mask_reg[0] = 0x14;
@ -2046,7 +2267,7 @@ MACHINE_CONFIG_END
/* bootleg with pic, like dinopic / dinopic2 */
ROM_START( punipic )
ROM_REGION( 0x400000, "maincpu", 0 ) /* 68000 code */
ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_BYTE( "cpu5.bin", 0x000000, 0x80000, CRC(c3151563) SHA1(61d3a20c25fea8a94ae6e473a87c21968867cba0) )
ROM_LOAD16_BYTE( "cpu3.bin", 0x000001, 0x80000, CRC(8c2593ac) SHA1(4261bc72b96c3a5690df35c5d8b71524765693d9) )
ROM_LOAD16_BYTE( "cpu4.bin", 0x100000, 0x80000, CRC(665a5485) SHA1(c07920d110ca9c35f6cbff94a6a889c17300f994) )
@ -2122,7 +2343,7 @@ Notes:
*/
ROM_START( punipic2 )
ROM_REGION( 0x400000, "maincpu", 0 ) /* 68000 code */
ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_BYTE( "prg4.bin", 0x000000, 0x80000, CRC(c3151563) SHA1(61d3a20c25fea8a94ae6e473a87c21968867cba0) )
ROM_LOAD16_BYTE( "prg3.bin", 0x000001, 0x80000, CRC(8c2593ac) SHA1(4261bc72b96c3a5690df35c5d8b71524765693d9) )
ROM_LOAD16_BYTE( "prg2.bin", 0x100000, 0x80000, CRC(665a5485) SHA1(c07920d110ca9c35f6cbff94a6a889c17300f994) )
@ -2152,7 +2373,7 @@ ROM_END
so it might be different */
ROM_START( punipic3 )
ROM_REGION( 0x400000, "maincpu", 0 ) /* 68000 code */
ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_BYTE( "psb5b.rom", 0x000000, 0x80000, CRC(58f42c05) SHA1(e243928f0bbecdf2a8d07cf4a6fdea4440e46c01) )
ROM_LOAD16_BYTE( "psb3b.rom", 0x000001, 0x80000, CRC(90113db4) SHA1(4decc203ae3ee4abcb2e017f11cd20eae2abf3f3) )
ROM_LOAD16_BYTE( "psb4a.rom", 0x100000, 0x80000, CRC(665a5485) SHA1(c07920d110ca9c35f6cbff94a6a889c17300f994) )
@ -2232,7 +2453,7 @@ static MACHINE_CONFIG_START( sf2m1, cps_state )
MACHINE_CONFIG_END
ROM_START( sf2m1 )
ROM_REGION( 0x400000, "maincpu", 0 ) /* 68000 code */
ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_BYTE( "222e", 0x000000, 0x80000, CRC(1e20d0a3) SHA1(5e05b52fd938aff5190bca7e178705d7236aef66) )
ROM_LOAD16_BYTE( "196e", 0x000001, 0x80000, CRC(88cc38a3) SHA1(6049962f943bd37748a9531cc3254e8b59326eac) )
ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
@ -2271,6 +2492,8 @@ DRIVER_INIT_MEMBER(cps_state, sf2m1)
GAME( 1990, cawingbl, cawing, cawingbl, cawingbl, cps_state, cawingbl, ROT0, "bootleg", "Carrier Air Wing (bootleg with 2xYM2203 + 2xMSM205 set 1)", GAME_SUPPORTS_SAVE )
GAME( 1990, cawingb2, cawing, cawingbl, cawingbl, cps_state, cawingbl, ROT0, "bootleg", "Carrier Air Wing (bootleg with 2xYM2203 + 2xMSM205 set 2)", GAME_SUPPORTS_SAVE )
GAME( 1993, dinopic, dino, dinopic, dino, cps_state, dinopic, ROT0, "bootleg", "Cadillacs and Dinosaurs (bootleg with PIC16c57, set 1)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
GAME( 1993, dinopic2, dino, dinopic, dino, cps_state, dinopic, ROT0, "bootleg", "Cadillacs and Dinosaurs (bootleg with PIC16c57, set 2)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
GAME( 1990, fcrash, ffight, fcrash, fcrash, cps_state, cps1, ROT0, "bootleg (Playmark)", "Final Crash (bootleg of Final Fight)", GAME_SUPPORTS_SAVE )
GAME( 1991, kodb, kod, kodb, kodb, cps_state, kodb, ROT0, "bootleg (Playmark)", "The King of Dragons (bootleg)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) // 910731 "ETC"
GAME( 1991, knightsb, knights, knightsb, knights, cps_state, knightsb, ROT0, "bootleg", "Knights of the Round (bootleg)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // 911127 - based on World version

View File

@ -252,6 +252,7 @@ public:
/* fcrash handlers */
DECLARE_DRIVER_INIT(kodb);
DECLARE_DRIVER_INIT(cawingbl);
DECLARE_DRIVER_INIT(dinopic);
DECLARE_DRIVER_INIT(knightsb);
DECLARE_DRIVER_INIT(punipic);
DECLARE_DRIVER_INIT(punipic3);
@ -261,14 +262,17 @@ public:
DECLARE_MACHINE_START(fcrash);
DECLARE_MACHINE_RESET(fcrash);
DECLARE_MACHINE_START(cawingbl);
DECLARE_MACHINE_START(dinopic);
DECLARE_MACHINE_START(knightsb);
DECLARE_MACHINE_START(kodb);
DECLARE_MACHINE_START(punipic);
DECLARE_MACHINE_START(sf2mdt);
DECLARE_MACHINE_START(sgyxz);
DECLARE_WRITE16_MEMBER(kodb_layer_w);
DECLARE_WRITE16_MEMBER(cawingbl_soundlatch_w);
DECLARE_WRITE16_MEMBER(dinopic_layer_w);
DECLARE_WRITE16_MEMBER(dinopic_layer2_w);
DECLARE_WRITE16_MEMBER(knightsb_layer_w);
DECLARE_WRITE16_MEMBER(kodb_layer_w);
DECLARE_WRITE16_MEMBER(punipic_layer_w);
DECLARE_WRITE16_MEMBER(sf2mdt_layer_w);
DECLARE_WRITE16_MEMBER(sf2mdta_layer_w);
@ -324,6 +328,7 @@ ADDRESS_MAP_EXTERN( qsound_sub_map, 8 );
GFXDECODE_EXTERN( cps1 );
INPUT_PORTS_EXTERN( dino );
INPUT_PORTS_EXTERN( knights );
INPUT_PORTS_EXTERN( punisher );
INPUT_PORTS_EXTERN( sf2 );