From 18f012e109bba560fd4a62f4ffe0a3c32e7f7868 Mon Sep 17 00:00:00 2001 From: David Haywood Date: Thu, 18 Jan 2018 19:06:33 +0000 Subject: [PATCH] misc small bits (grudge, nesvt, kickgoal) (#3075) * Default FreePlay DSW to 'Off' for the recently added 'grudge' parent set (Free Play doesn't work properly on it anyway) Leave it to 'On' for the previous set because Coin mode doesn't work properly there Add a note about (undumped) Majesco Frogger TV game likely being nes_vt * new clones : Kick Goal (set 2) and cleaned up driver so that it uses oki mem map etc. * factory defaults for several esd16 sets so they don't run with bogus values (nw) * note the regions on the fort2b / fort2ba sets, one is world, the other is korea (nw) --- src/mame/drivers/balsente.cpp | 17 +++-- src/mame/drivers/eolith.cpp | 4 +- src/mame/drivers/esd16.cpp | 21 ++++++ src/mame/drivers/kickgoal.cpp | 129 +++++++++++++++++++--------------- src/mame/drivers/nes_vt.cpp | 3 +- src/mame/includes/kickgoal.h | 66 +++++++++-------- src/mame/mame.lst | 1 + 7 files changed, 150 insertions(+), 91 deletions(-) diff --git a/src/mame/drivers/balsente.cpp b/src/mame/drivers/balsente.cpp index 1603d7b32c7..36a23406088 100644 --- a/src/mame/drivers/balsente.cpp +++ b/src/mame/drivers/balsente.cpp @@ -1141,9 +1141,9 @@ static INPUT_PORTS_START( grudge ) PORT_DIPSETTING( 0x01, "1" ) PORT_DIPSETTING( 0x02, "2" ) PORT_DIPSETTING( 0x03, "3" ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("H1:8") + PORT_DIPNAME( 0x80, 0x00, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("H1:8") PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) + PORT_DIPSETTING( 0x80, "On (buggy)" ) PORT_MODIFY("SWG") PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "G1:1" ) @@ -1181,6 +1181,15 @@ static INPUT_PORTS_START( grudge ) UNUSED_ANALOG INPUT_PORTS_END +static INPUT_PORTS_START( grudgep ) + PORT_INCLUDE( sentetst ) + + PORT_MODIFY("SWH") + PORT_DIPNAME( 0x80, 0x80, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("H1:8") // default to "ON" because Coin mode is buggy on this revision of the prototype + PORT_DIPSETTING( 0x00, "Off (buggy)" ) + PORT_DIPSETTING( 0x80, DEF_STR( On ) ) +INPUT_PORTS_END + static INPUT_PORTS_START( rescraid ) PORT_INCLUDE( stocker ) @@ -1808,7 +1817,7 @@ ROM_START( grudge ) ROM_LOAD( "gm-2a.bin", 0x28000, 0x8000, CRC(1de8dd2e) SHA1(6b538dcf35105bca1ae1bb5387a08b4d1d4f410c) ) ROM_LOAD( "gm-6b.bin", 0x2e000, 0x2000, CRC(513d8cdd) SHA1(563e5a2b7e71b4e1447bd41339174129a5884517) ) // mostly the same as 2a/5a except for a small table, corrupt text if we don't use this here.. - ROM_LOAD( "gm-5a.bin", 0x38000, 0x8000, CRC(1de8dd2e) SHA1(6b538dcf35105bca1ae1bb5387a08b4d1d4f410c) ) // same as 2a, not being used.. + ROM_LOAD( "gm-5a.bin", 0x38000, 0x8000, CRC(1de8dd2e) SHA1(6b538dcf35105bca1ae1bb5387a08b4d1d4f410c) ) // same as 2a, not being used, confirmed as identical on PCB SOUNDBOARD_ROMS @@ -2409,7 +2418,7 @@ GAME( 1985, minigolf, 0, balsente, minigolf, balsente_state, minigolf, RO GAME( 1985, minigolf2,minigolf, balsente, minigolf2,balsente_state, minigolf2,ROT0, "Bally/Sente", "Mini Golf (10/8/85)", MACHINE_SUPPORTS_SAVE ) GAME( 1984, triviabb, 0, balsente, triviag1, balsente_state, triviag2, ROT0, "Bally/Sente", "Trivial Pursuit (Baby Boomer Edition) (3/20/85)", MACHINE_SUPPORTS_SAVE ) GAME( 198?, grudge, 0, balsente, grudge, balsente_state, grudge, ROT0, "Bally Midway", "Grudge Match (v00.90, Italy, location test?)", MACHINE_SUPPORTS_SAVE ) // newer than set below, had a complete cabinet + art -GAME( 198?, grudgep, grudge, balsente, grudge, balsente_state, grudge, ROT0, "Bally Midway", "Grudge Match (v00.80, prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 198?, grudgep, grudge, balsente, grudgep, balsente_state, grudge, ROT0, "Bally Midway", "Grudge Match (v00.80, prototype)", MACHINE_SUPPORTS_SAVE ) /* Board: Unknown */ GAME( 1984, triviag1, 0, balsente, triviag1, balsente_state, triviag1, ROT0, "Bally/Sente", "Trivial Pursuit (Think Tank - Genus Edition) (set 1)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/eolith.cpp b/src/mame/drivers/eolith.cpp index eb8a60f425a..dd5c939c3f7 100644 --- a/src/mame/drivers/eolith.cpp +++ b/src/mame/drivers/eolith.cpp @@ -1751,5 +1751,5 @@ GAME( 1999, penfan, 0, eolith45, penfan, eolith_state, eolith, RO GAME( 1999, penfana, penfan, eolith45, penfan, eolith_state, eolith, ROT0, "Eolith", "Penfan Girls - Step1. Mild Mind (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 2000, stealsee, 0, eolith45, stealsee, eolith_state, eolith, ROT0, "Moov Generation / Eolith", "Steal See", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) GAME( 2000, hidctch3, 0, eolith50, hidctch3, eolith_state, hidctch3, ROT0, "Eolith", "Hidden Catch 3 (ver 1.00 / pcb ver 3.05)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 2001, fort2b, 0, eolith50, common, eolith_state, eolith, ROT0, "Eolith", "Fortress 2 Blue Arcade (ver 1.01 / pcb ver 3.05)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 2001, fort2ba, fort2b, eolith50, common, eolith_state, eolith, ROT0, "Eolith", "Fortress 2 Blue Arcade (ver 1.00 / pcb ver 3.05)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2001, fort2b, 0, eolith50, common, eolith_state, eolith, ROT0, "Eolith", "Fortress 2 Blue Arcade (World) (ver 1.01 / pcb ver 3.05)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // Language selection is greyed out in Service Mode +GAME( 2001, fort2ba, fort2b, eolith50, common, eolith_state, eolith, ROT0, "Eolith", "Fortress 2 Blue Arcade (Korea) (ver 1.00 / pcb ver 3.05)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // ^^ diff --git a/src/mame/drivers/esd16.cpp b/src/mame/drivers/esd16.cpp index 8410489c9cb..e76e9be7889 100644 --- a/src/mame/drivers/esd16.cpp +++ b/src/mame/drivers/esd16.cpp @@ -933,6 +933,9 @@ ROM_START( mchampdx ) ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ ROM_LOAD( "ver0106_esd4.su10", 0x00000, 0x40000, CRC(ac8ae009) SHA1(2c1c30cc4b3e34a5f14d7dfb6f6e18ff21f526f5) ) + + ROM_REGION16_BE( 0x80, "eeprom", ROMREGION_ERASE00 ) // factory default settings because game doesn't init them properly otherwise + ROM_LOAD16_WORD_SWAP( "eeprom", 0x0000, 0x0080, CRC(646b2f53) SHA1(f6673f68084b63a69c612a03c58f57435d5a9496) ) ROM_END ROM_START( mchampdxa ) @@ -956,6 +959,9 @@ ROM_START( mchampdxa ) ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ ROM_LOAD( "esd4.su10", 0x00000, 0x40000, CRC(2fbe94ab) SHA1(1bc4a33ec93a80fb598722d2b50bdf3ccaaa984a) ) + + ROM_REGION16_BE( 0x80, "eeprom", ROMREGION_ERASE00 ) // factory default settings because game doesn't init them properly otherwise + ROM_LOAD16_WORD_SWAP( "eeprom", 0x0000, 0x0080, CRC(646b2f53) SHA1(f6673f68084b63a69c612a03c58f57435d5a9496) ) ROM_END ROM_START( mchampdxb ) @@ -979,6 +985,9 @@ ROM_START( mchampdxb ) ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ ROM_LOAD( "esd4.su10", 0x00000, 0x40000, CRC(2fbe94ab) SHA1(1bc4a33ec93a80fb598722d2b50bdf3ccaaa984a) ) + + ROM_REGION16_BE( 0x80, "eeprom", ROMREGION_ERASE00 ) // factory default settings because game doesn't init them properly otherwise + ROM_LOAD16_WORD_SWAP( "eeprom1114", 0x0000, 0x0080, CRC(427d90d2) SHA1(39983f9b22b1e9221f7f745f7e84ddcf44d03a08) ) ROM_END /*************************************************************************** @@ -1248,6 +1257,9 @@ ROM_START( deluxe5 ) /* Deluxe 5 */ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ ROM_LOAD( "esd4.su10", 0x00000, 0x20000, CRC(23f2b7d9) SHA1(328c951d14674760df68486841c933bad0d59fe3) ) /* AT27C010 mask rom */ + + ROM_REGION16_BE( 0x80, "eeprom", ROMREGION_ERASE00 ) // factory default settings because game doesn't init them properly otherwise + ROM_LOAD16_WORD_SWAP( "eeprom", 0x0000, 0x0080, CRC(4539a8a0) SHA1(b882110b489e61ac5421fbe3551d9ee323b5d86b) ) ROM_END ROM_START( deluxe5a ) /* Deluxe 5 */ @@ -1271,6 +1283,9 @@ ROM_START( deluxe5a ) /* Deluxe 5 */ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ ROM_LOAD( "esd4.su10", 0x00000, 0x20000, CRC(23f2b7d9) SHA1(328c951d14674760df68486841c933bad0d59fe3) ) /* AT27C010 mask rom */ + + ROM_REGION16_BE( 0x80, "eeprom", ROMREGION_ERASE00 ) // factory default settings because game doesn't init them properly otherwise + ROM_LOAD16_WORD_SWAP( "eeprom", 0x0000, 0x0080, CRC(4539a8a0) SHA1(b882110b489e61ac5421fbe3551d9ee323b5d86b) ) ROM_END ROM_START( deluxe5b ) /* Deluxe 5 */ @@ -1294,6 +1309,9 @@ ROM_START( deluxe5b ) /* Deluxe 5 */ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ ROM_LOAD( "esd4.su10", 0x00000, 0x20000, CRC(23f2b7d9) SHA1(328c951d14674760df68486841c933bad0d59fe3) ) /* AT27C010 mask rom */ + + ROM_REGION16_BE( 0x80, "eeprom", ROMREGION_ERASE00 ) // factory default settings because game doesn't init them properly otherwise + ROM_LOAD16_WORD_SWAP( "eeprom", 0x0000, 0x0080, CRC(4539a8a0) SHA1(b882110b489e61ac5421fbe3551d9ee323b5d86b) ) ROM_END @@ -1318,6 +1336,9 @@ ROM_START( deluxe4u ) /* Deluxe 4 U - Removes Blackjack game, but otherwise same ROM_REGION( 0x40000, "oki", 0 ) /* Samples */ ROM_LOAD( "esd4.su10", 0x00000, 0x20000, CRC(23f2b7d9) SHA1(328c951d14674760df68486841c933bad0d59fe3) ) /* AT27C010 mask rom */ + + ROM_REGION16_BE( 0x80, "eeprom", ROMREGION_ERASE00 ) // factory default settings because game doesn't init them properly otherwise + ROM_LOAD16_WORD_SWAP( "eeprom", 0x0000, 0x0080, CRC(4539a8a0) SHA1(b882110b489e61ac5421fbe3551d9ee323b5d86b) ) ROM_END diff --git a/src/mame/drivers/kickgoal.cpp b/src/mame/drivers/kickgoal.cpp index cd3f087cbd0..c61ca112b4f 100644 --- a/src/mame/drivers/kickgoal.cpp +++ b/src/mame/drivers/kickgoal.cpp @@ -2,21 +2,15 @@ // copyright-holders:David Haywood /* Driver Info - Kick Goal (c)1995 TCH Action Hollywood (c)1995 TCH - prelim driver by David Haywood +driver by David Haywood todo: -Sound - Not possible without PIC dump? - the PIC is protected, sound will have to be simulated - the kickgoal sound rom is also bad. - -Should the screen size really be doubled in kickgoal or should the fg tiles be 8bpp instead -because otherwise these don't seem much like the same hardware.. +Sound - need PIC dumps to replace simulation code (the PIC is protected) Both games have problems with the Eeprom (settings are not saved) @@ -217,10 +211,10 @@ WRITE16_MEMBER(kickgoal_state::actionhw_snd_w) switch (data) { - case 0xfc: m_oki->set_rom_bank(0); break; - case 0xfd: m_oki->set_rom_bank(2); break; - case 0xfe: m_oki->set_rom_bank(1); break; - case 0xff: m_oki->set_rom_bank(3); break; + case 0xfc: m_okibank->set_entry(0); break; + case 0xfd: m_okibank->set_entry(2); break; + case 0xfe: m_okibank->set_entry(1); break; + case 0xff: m_okibank->set_entry(3); break; case 0x78: m_oki->write_command(data); m_snd_sam[0] = 00; m_snd_sam[1]= 00; m_snd_sam[2] = 00; m_snd_sam[3] = 00; @@ -297,7 +291,7 @@ WRITE16_MEMBER(kickgoal_state::actionhw_snd_w) INTERRUPT_GEN_MEMBER(kickgoal_state::kickgoal_interrupt) { - if ((m_adpcm->read_status() & 0x08) == 0) + if ((m_oki->read_status() & 0x08) == 0) { switch(m_melody_loop) { @@ -326,8 +320,8 @@ INTERRUPT_GEN_MEMBER(kickgoal_state::kickgoal_interrupt) if (m_melody_loop) { // logerror("Changing to sample %02x\n", m_melody_loop); - m_adpcm->write_command((0x80 | m_melody_loop) & 0xff); - m_adpcm->write_command(0x81); + m_oki->write_command((0x80 | m_melody_loop) & 0xff); + m_oki->write_command(0x81); } } if (machine().input().code_pressed_once(KEYCODE_PGUP)) @@ -339,7 +333,7 @@ INTERRUPT_GEN_MEMBER(kickgoal_state::kickgoal_interrupt) if (m_m6295_bank == 0x03) m_m6295_bank = 0x00; popmessage("Changing Bank to %02x", m_m6295_bank); - m_adpcm->set_rom_bank(m_m6295_bank); + m_okibank->set_entry(m_m6295_bank); if (m_m6295_key_delay == 0xffff) m_m6295_key_delay = 0x00; @@ -358,7 +352,7 @@ INTERRUPT_GEN_MEMBER(kickgoal_state::kickgoal_interrupt) if (m_m6295_bank == 0x03) m_m6295_bank = 0x02; popmessage("Changing Bank to %02x", m_m6295_bank); - m_adpcm->set_rom_bank(m_m6295_bank); + m_okibank->set_entry(m_m6295_bank); if (m_m6295_key_delay == 0xffff) m_m6295_key_delay = 0x00; @@ -374,11 +368,11 @@ INTERRUPT_GEN_MEMBER(kickgoal_state::kickgoal_interrupt) { m_m6295_comm += 1; m_m6295_comm &= 0x7f; - if (m_m6295_comm == 0x00) { m_adpcm->set_rom_bank(0); m_m6295_bank = 0; } - if (m_m6295_comm == 0x60) { m_adpcm->set_rom_bank(0); m_m6295_bank = 0; } - if (m_m6295_comm == 0x65) { m_adpcm->set_rom_bank(1); m_m6295_bank = 1; } - if (m_m6295_comm == 0x69) { m_adpcm->set_rom_bank(2); m_m6295_bank = 2; } - if (m_m6295_comm == 0x70) { m_adpcm->set_rom_bank(1); m_m6295_bank = 1; } + if (m_m6295_comm == 0x00) { m_okibank->set_entry(0); m_m6295_bank = 0; } + if (m_m6295_comm == 0x60) { m_okibank->set_entry(0); m_m6295_bank = 0; } + if (m_m6295_comm == 0x65) { m_okibank->set_entry(1); m_m6295_bank = 1; } + if (m_m6295_comm == 0x69) { m_okibank->set_entry(2); m_m6295_bank = 2; } + if (m_m6295_comm == 0x70) { m_okibank->set_entry(1); m_m6295_bank = 1; } popmessage("Sound test command %02x on Bank %02x", m_m6295_comm, m_m6295_bank); if (m_m6295_key_delay == 0xffff) @@ -395,11 +389,11 @@ INTERRUPT_GEN_MEMBER(kickgoal_state::kickgoal_interrupt) { m_m6295_comm -= 1; m_m6295_comm &= 0x7f; - if (m_m6295_comm == 0x2b) { m_adpcm->set_rom_bank(0); m_m6295_bank = 0; } - if (m_m6295_comm == 0x64) { m_adpcm->set_rom_bank(0); m_m6295_bank = 0; } - if (m_m6295_comm == 0x68) { m_adpcm->set_rom_bank(1); m_m6295_bank = 1; } - if (m_m6295_comm == 0x6c) { m_adpcm->set_rom_bank(2); m_m6295_bank = 2; } - if (m_m6295_comm == 0x76) { m_adpcm->set_rom_bank(1); m_m6295_bank = 1; } + if (m_m6295_comm == 0x2b) { m_okibank->set_entry(0); m_m6295_bank = 0; } + if (m_m6295_comm == 0x64) { m_okibank->set_entry(0); m_m6295_bank = 0; } + if (m_m6295_comm == 0x68) { m_okibank->set_entry(1); m_m6295_bank = 1; } + if (m_m6295_comm == 0x6c) { m_okibank->set_entry(2); m_m6295_bank = 2; } + if (m_m6295_comm == 0x76) { m_okibank->set_entry(1); m_m6295_bank = 1; } popmessage("Sound test command %02x on Bank %02x", m_m6295_comm, m_m6295_bank); if (m_m6295_key_delay == 0xffff) @@ -414,9 +408,9 @@ INTERRUPT_GEN_MEMBER(kickgoal_state::kickgoal_interrupt) { if (m_m6295_key_delay >= (0x80 * oki_time_base)) { - m_adpcm->write_command(0x78); - m_adpcm->write_command(0x80 | m_m6295_comm); - m_adpcm->write_command(0x11); + m_oki->write_command(0x78); + m_oki->write_command(0x80 | m_m6295_comm); + m_oki->write_command(0x11); popmessage("Playing sound %02x on Bank %02x", m_m6295_comm, m_m6295_bank); @@ -613,6 +607,9 @@ void kickgoal_state::machine_start() save_item(NAME(m_m6295_comm)); save_item(NAME(m_m6295_bank)); save_item(NAME(m_m6295_key_delay)); + + m_okibank->configure_entries(0, 4, memregion("oki")->base(), 0x20000); + m_okibank->set_entry(1); } void kickgoal_state::machine_reset() @@ -628,6 +625,12 @@ void kickgoal_state::machine_reset() m_m6295_key_delay = 0; } + +static ADDRESS_MAP_START( oki_map, 0, 8, kickgoal_state ) + AM_RANGE(0x00000, 0x1ffff) AM_ROM + AM_RANGE(0x20000, 0x3ffff) AM_ROMBANK("okibank") +ADDRESS_MAP_END + MACHINE_CONFIG_START(kickgoal_state::kickgoal) /* basic machine hardware */ @@ -664,6 +667,7 @@ MACHINE_CONFIG_START(kickgoal_state::kickgoal) //MCFG_GENERIC_LATCH_8_ADD("soundlatch") MCFG_OKIM6295_ADD("oki", 12000000/8, PIN7_LOW) + MCFG_DEVICE_ADDRESS_MAP(0, oki_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MACHINE_CONFIG_END @@ -702,6 +706,7 @@ MACHINE_CONFIG_START(kickgoal_state::actionhw) //MCFG_GENERIC_LATCH_8_ADD("soundlatch") MCFG_OKIM6295_ADD("oki", XTAL_12MHz/12, PIN7_HIGH) /* verified on pcb */ + MCFG_DEVICE_ADDRESS_MAP(0, oki_map) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) MACHINE_CONFIG_END @@ -714,27 +719,46 @@ ROM_START( kickgoal ) ROM_LOAD16_BYTE( "ic6", 0x000000, 0x40000, CRC(498ca792) SHA1(c638c3a1755870010c5961b58bcb02458ff4e238) ) ROM_LOAD16_BYTE( "ic5", 0x000001, 0x40000, CRC(d528740a) SHA1(d56a71004aabc839b0833a6bf383e5ef9d4948fa) ) - ROM_REGION( 0x1000, "audiocpu", 0 ) /* sound? (missing) */ + ROM_REGION( 0x2000, "audiocpu", 0 ) /* sound */ /* Remove the CPU_DISABLED flag in MACHINE_DRIVER when the rom is dumped */ - ROM_LOAD( "pic16c57", 0x0000, 0x0800, NO_DUMP ) + ROM_LOAD( "pic16c57-xt-p_protected.IC18", 0x0000, 0x1fff, BAD_DUMP CRC(9e678719) SHA1(ff8edf149e4c12de620e40eaa42161cd1d08bad0) ) + + ROM_REGION16_BE( 0x80, "eeprom", 0 ) + ROM_LOAD( "93c46_16bit.IC12", 0x00, 0x80, CRC(58f512ff) SHA1(67ffb7e2d817087d8158ee53974e46ec85a3e1ed) ) ROM_REGION( 0x200000, "gfx1", 0 ) - ROM_LOAD( "ic33", 0x000000, 0x80000, CRC(5038f52a) SHA1(22ed0e2c8a99056e73cff912731626689996a276) ) - ROM_LOAD( "ic34", 0x080000, 0x80000, CRC(06e7094f) SHA1(e41b893ef91d541d2623d76ce6c69ecf4218c16d) ) - ROM_LOAD( "ic35", 0x100000, 0x80000, CRC(ea010563) SHA1(5e474db372550e9d33f933ab00881a9b29a712d1) ) - ROM_LOAD( "ic36", 0x180000, 0x80000, CRC(b6a86860) SHA1(73ab43830d5e62154bc8953615cdb397c7a742aa) ) + ROM_LOAD( "TCH__4.tms27c040.IC33", 0x000000, 0x80000, CRC(5038f52a) SHA1(22ed0e2c8a99056e73cff912731626689996a276) ) + ROM_LOAD( "TCH__5.tms27c040.IC34", 0x080000, 0x80000, CRC(06e7094f) SHA1(e41b893ef91d541d2623d76ce6c69ecf4218c16d) ) + ROM_LOAD( "TCH__6.tms27c040.IC35", 0x100000, 0x80000, CRC(ea010563) SHA1(5e474db372550e9d33f933ab00881a9b29a712d1) ) + ROM_LOAD( "TCH__7.tms27c040.IC36", 0x180000, 0x80000, CRC(b6a86860) SHA1(73ab43830d5e62154bc8953615cdb397c7a742aa) ) - /* $00000-$20000 stays the same in all sound banks, */ - /* the second half of the bank is the area that gets switched */ - ROM_REGION( 0x100000, "oki", 0 ) /* OKIM6295 samples */ - ROM_LOAD( "ic13", 0x00000, 0x40000, BAD_DUMP CRC(c6cb56e9) SHA1(835773b3f0647d3c553180bcf10e57ad44d68353) ) // BAD ADDRESS LINES (mask=010000) - ROM_CONTINUE( 0x60000, 0x20000 ) - ROM_CONTINUE( 0xa0000, 0x20000 ) - ROM_COPY( "oki", 0x000000, 0x40000, 0x20000) - ROM_COPY( "oki", 0x000000, 0x80000, 0x20000) - ROM_COPY( "oki", 0x000000, 0xc0000, 0x20000) + ROM_REGION( 0x080000, "oki", 0 ) /* OKIM6295 samples */ + ROM_LOAD( "TCH__3.tms27c040.ic13", 0x00000, 0x80000, CRC(51272b0b) SHA1(ba94385183a9d74bb1d5159d2908492bf500f31e) ) ROM_END +ROM_START( kickgoala ) + ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 code */ + ROM_LOAD16_BYTE( "TCH__2.mc27c2001.IC6", 0x000000, 0x40000, CRC(3ce2743a) SHA1(7998c476c8e630487213dd23ef4fec94a95497ca) ) + ROM_LOAD16_BYTE( "TCH__1.am27c020.IC5", 0x000001, 0x40000, CRC(d7d7f83c) SHA1(4ee66a379a0c7ecb15ee4923ac98ba28bfb1e4bd) ) + + ROM_REGION( 0x2000, "audiocpu", 0 ) /* sound */ + /* Remove the CPU_DISABLED flag in MACHINE_DRIVER when the rom is dumped */ + ROM_LOAD( "pic16c57-xt-p_protected.IC18", 0x0000, 0x1fff, BAD_DUMP CRC(9e678719) SHA1(ff8edf149e4c12de620e40eaa42161cd1d08bad0) ) + + ROM_REGION16_BE( 0x80, "eeprom", 0 ) + ROM_LOAD( "93c46_16bit.IC12", 0x00, 0x80, CRC(58f512ff) SHA1(67ffb7e2d817087d8158ee53974e46ec85a3e1ed) ) + + ROM_REGION( 0x200000, "gfx1", 0 ) + ROM_LOAD( "TCH__4.tms27c040.IC33", 0x000000, 0x80000, CRC(5038f52a) SHA1(22ed0e2c8a99056e73cff912731626689996a276) ) + ROM_LOAD( "TCH__5.tms27c040.IC34", 0x080000, 0x80000, CRC(06e7094f) SHA1(e41b893ef91d541d2623d76ce6c69ecf4218c16d) ) + ROM_LOAD( "TCH__6.tms27c040.IC35", 0x100000, 0x80000, CRC(ea010563) SHA1(5e474db372550e9d33f933ab00881a9b29a712d1) ) + ROM_LOAD( "TCH__7.tms27c040.IC36", 0x180000, 0x80000, CRC(b6a86860) SHA1(73ab43830d5e62154bc8953615cdb397c7a742aa) ) + + ROM_REGION( 0x080000, "oki", 0 ) /* OKIM6295 samples */ + ROM_LOAD( "TCH__3.tms27c040.ic13", 0x00000, 0x80000, CRC(51272b0b) SHA1(ba94385183a9d74bb1d5159d2908492bf500f31e) ) +ROM_END + + ROM_START( actionhw ) ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 code */ ROM_LOAD16_BYTE( "2.ic6", 0x000000, 0x80000, CRC(2b71d58c) SHA1(3e58531fa56d41a3c7944e3beab4850907564a89) ) @@ -754,15 +778,8 @@ ROM_START( actionhw ) ROM_LOAD( "10.ic32", 0x300000, 0x80000, CRC(5ee5db3e) SHA1(c79f84548ce5311acac478c5180330bf56485863) ) ROM_LOAD( "11.ic36", 0x380000, 0x80000, CRC(8d376b1e) SHA1(37f16b3237d9813a8d153ab5640252e7643f3b99) ) - /* $00000-$20000 stays the same in all sound banks, */ - /* the second half of the bank is the area that gets switched */ - ROM_REGION( 0x100000, "oki", 0 ) /* OKIM6295 samples */ - ROM_LOAD( "3.ic13", 0x00000, 0x40000, CRC(b8f6705d) SHA1(55116e14aba6dac7334e26f704b3e6b0b9f856c2) ) - ROM_CONTINUE( 0x60000, 0x20000 ) - ROM_CONTINUE( 0xa0000, 0x20000 ) - ROM_COPY( "oki", 0x000000, 0x40000, 0x20000) - ROM_COPY( "oki", 0x000000, 0x80000, 0x20000) - ROM_COPY( "oki", 0x000000, 0xc0000, 0x20000) /* Last bank used in Test Mode */ + ROM_REGION( 0x80000, "oki", 0 ) /* OKIM6295 samples */ + ROM_LOAD( "3.ic13", 0x00000, 0x80000, CRC(b8f6705d) SHA1(55116e14aba6dac7334e26f704b3e6b0b9f856c2) ) ROM_END /* GAME drivers **************************************************************/ @@ -778,5 +795,7 @@ DRIVER_INIT_MEMBER(kickgoal_state,kickgoal) } -GAME( 1995, kickgoal, 0, kickgoal, kickgoal, kickgoal_state, kickgoal, ROT0, "TCH", "Kick Goal", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kickgoal, 0, kickgoal, kickgoal, kickgoal_state, kickgoal, ROT0, "TCH", "Kick Goal (set 1)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 1995, kickgoala, kickgoal, kickgoal, kickgoal, kickgoal_state, kickgoal, ROT0, "TCH", "Kick Goal (set 2)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) + GAME( 1995, actionhw, 0, actionhw, kickgoal, kickgoal_state, kickgoal, ROT0, "TCH", "Action Hollywood", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/nes_vt.cpp b/src/mame/drivers/nes_vt.cpp index 9f208ad3806..aa8f7eb1a66 100644 --- a/src/mame/drivers/nes_vt.cpp +++ b/src/mame/drivers/nes_vt.cpp @@ -1143,7 +1143,8 @@ CONS( 200?, vdogdemo, 0, 0, nes_vt, nes_vt, nes_vt_state, 0, "VRT", "V-Do // for testing 'Shark', 'Octopus', 'Harbor', and 'Earth Fighter' use the extended colour modes, other games just seem to use standard NES modes CONS( 200?, mc_dgear, 0, 0, nes_vt, nes_vt, nes_vt_state, 0, "dreamGEAR", "dreamGEAR 75-in-1", MACHINE_NOT_WORKING ) // all software in this runs in the VT03 enhanced mode, it also includes an actual licensed VT03 port of Frogger. If running on EmuVT set to PAL or the colours are broken -CONS( 200?, vgtablet, 0, 0, nes_vt, nes_vt, nes_vt_state, 0, " / Konami", "VG Pocket Tablet", MACHINE_NOT_WORKING ) +CONS( 2006, vgtablet, 0, 0, nes_vt, nes_vt, nes_vt_state, 0, " / Konami", "VG Pocket Tablet", MACHINE_NOT_WORKING ) +// There is a 2004 Majesco Frogger "TV game" that appears to contain the same version of Frogger as above but with no other games, so probably fits here. // this is VT09 based, and needs 8bpp modes at least // it boots, but gfx look wrong due to unsupported mode diff --git a/src/mame/includes/kickgoal.h b/src/mame/includes/kickgoal.h index 3dd329c9f03..891b47d05d7 100644 --- a/src/mame/includes/kickgoal.h +++ b/src/mame/includes/kickgoal.h @@ -19,20 +19,40 @@ public: m_bg2ram(*this, "bg2ram"), m_scrram(*this, "scrram"), m_spriteram(*this, "spriteram"), - m_adpcm(*this, "oki"), m_eeprom(*this, "eeprom") , m_maincpu(*this, "maincpu"), m_oki(*this, "oki"), + m_okibank(*this, "okibank"), m_gfxdecode(*this, "gfxdecode"), m_palette(*this, "palette") { } - /* memory pointers */ - required_shared_ptr m_fgram; - required_shared_ptr m_bgram; - required_shared_ptr m_bg2ram; - required_shared_ptr m_scrram; - required_shared_ptr m_spriteram; + DECLARE_READ16_MEMBER(kickgoal_eeprom_r); + DECLARE_WRITE16_MEMBER(kickgoal_eeprom_w); + DECLARE_WRITE16_MEMBER(kickgoal_fgram_w); + DECLARE_WRITE16_MEMBER(kickgoal_bgram_w); + DECLARE_WRITE16_MEMBER(kickgoal_bg2ram_w); + DECLARE_WRITE16_MEMBER(actionhw_snd_w); + DECLARE_DRIVER_INIT(kickgoal); + TILE_GET_INFO_MEMBER(get_kickgoal_fg_tile_info); + TILE_GET_INFO_MEMBER(get_kickgoal_bg_tile_info); + TILE_GET_INFO_MEMBER(get_kickgoal_bg2_tile_info); + TILEMAP_MAPPER_MEMBER(tilemap_scan_kicksfg); + TILEMAP_MAPPER_MEMBER(tilemap_scan_kicksbg); + TILEMAP_MAPPER_MEMBER(tilemap_scan_kicksbg2); + TILEMAP_MAPPER_MEMBER(tilemap_scan_actionhwbg2); + DECLARE_VIDEO_START(kickgoal); + DECLARE_VIDEO_START(actionhw); + + INTERRUPT_GEN_MEMBER(kickgoal_interrupt); + + uint32_t screen_update_kickgoal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + +private: /* video-related */ tilemap_t *m_fgtm; tilemap_t *m_bgtm; @@ -56,33 +76,21 @@ public: int m_bg2_region; int m_sprbase; + + void kickgoal_draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect); + + /* memory pointers */ + required_shared_ptr m_fgram; + required_shared_ptr m_bgram; + required_shared_ptr m_bg2ram; + required_shared_ptr m_scrram; + required_shared_ptr m_spriteram; /* devices */ - required_device m_adpcm; required_device m_eeprom; - DECLARE_READ16_MEMBER(kickgoal_eeprom_r); - DECLARE_WRITE16_MEMBER(kickgoal_eeprom_w); - DECLARE_WRITE16_MEMBER(kickgoal_fgram_w); - DECLARE_WRITE16_MEMBER(kickgoal_bgram_w); - DECLARE_WRITE16_MEMBER(kickgoal_bg2ram_w); - DECLARE_WRITE16_MEMBER(actionhw_snd_w); - DECLARE_DRIVER_INIT(kickgoal); - TILE_GET_INFO_MEMBER(get_kickgoal_fg_tile_info); - TILE_GET_INFO_MEMBER(get_kickgoal_bg_tile_info); - TILE_GET_INFO_MEMBER(get_kickgoal_bg2_tile_info); - TILEMAP_MAPPER_MEMBER(tilemap_scan_kicksfg); - TILEMAP_MAPPER_MEMBER(tilemap_scan_kicksbg); - TILEMAP_MAPPER_MEMBER(tilemap_scan_kicksbg2); - TILEMAP_MAPPER_MEMBER(tilemap_scan_actionhwbg2); - virtual void machine_start() override; - virtual void machine_reset() override; - DECLARE_VIDEO_START(kickgoal); - DECLARE_VIDEO_START(actionhw); - uint32_t screen_update_kickgoal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - INTERRUPT_GEN_MEMBER(kickgoal_interrupt); - void kickgoal_draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect); required_device m_maincpu; required_device m_oki; + required_memory_bank m_okibank; required_device m_gfxdecode; required_device m_palette; void kickgoal(machine_config &config); diff --git a/src/mame/mame.lst b/src/mame/mame.lst index d88b3c47853..6136db5641d 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -17304,6 +17304,7 @@ kenseim // 18/04/1994 (c) 1994 Togo/Sigma (Japan) not li @source:kickgoal.cpp actionhw // (c) 1995 kickgoal // (c) 1995 +kickgoala // @source:kim1.cpp kim1 // Commodore (MOS) KIM-1 1975