From fde16570c2dbbfc9c06d6840acf25cb5f1a7b704 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Sun, 20 Sep 2020 21:31:19 +0200 Subject: New machines marked as NOT_WORKING ---------------------------------- Pac-Carnival [Phil Bennett] --- src/mame/drivers/cave.cpp | 107 ++++++++++++++++++++++++++++++++++++++++++++-- src/mame/includes/cave.h | 2 + src/mame/mame.lst | 1 + 3 files changed, 106 insertions(+), 4 deletions(-) diff --git a/src/mame/drivers/cave.cpp b/src/mame/drivers/cave.cpp index fd30f06e933..07c3cd03156 100644 --- a/src/mame/drivers/cave.cpp +++ b/src/mame/drivers/cave.cpp @@ -222,7 +222,7 @@ void cave_state::videoregs_w(offs_t offset, u16 data, u16 mem_mask) COMBINE_DATA(&m_videoregs[Chip][offset]); offset <<= 1; // offset 0x04 and 0x06 is offset related? - // offset 0x0a is position mode toggle in bit 13-12 (seperated for X and Y?), other bits used but unknown + // offset 0x0a is position mode toggle in bit 13-12 (separated for X and Y?), other bits used but unknown // offset 0x68 or 0x78 is commonly watchdog or DMA command? // offset 0x6c or 0x7c is encryption key or CRTC or something else? // offset 0x6e is commonly communication when sound CPU exists @@ -236,7 +236,7 @@ void cave_state::videoregs_w(offs_t offset, u16 data, u16 mem_mask) offset != 0x68 && offset != 0x6e && offset != 0x78) - logerror("%s: Unknown videoregs #%02X writtten %04X = %04X & %04X\n", + logerror("%s: Unknown videoregs #%02X written %04X = %04X & %04X\n", machine().describe_context(), Chip, offset, data, mem_mask); } @@ -1186,6 +1186,31 @@ void cave_state::paceight_map(address_map &map) map(0xe00001, 0xe00001).w(FUNC(cave_state::tjumpman_eeprom_w)); // EEPROM } + +/*************************************************************************** + Pac-Carnival +***************************************************************************/ + +//TODO: leds need verifying + +void cave_state::paccarn_map(address_map &map) +{ + map(0x000000, 0x07ffff).rom(); // ROM + map(0x100000, 0x10ffff).ram().share("nvram"); // RAM (battery) + map(0x200000, 0x20ffff).ram().share("spriteram.0"); // Sprites + map(0x300000, 0x307fff).m(m_tilemap[0], FUNC(tilemap038_device::vram_map)); // Layer 0 + map(0x400000, 0x40007f).w(FUNC(cave_state::videoregs_w<0>)).share("videoregs.0"); // Video Regs + map(0x400000, 0x400007).r(FUNC(cave_state::irq_cause_r)); // IRQ Cause + map(0x400068, 0x400069).w("watchdog", FUNC(watchdog_timer_device::reset16_w)); // Watchdog + map(0x500000, 0x500001).portr("IN0"); // Inputs + EEPROM + Hopper + map(0x500002, 0x500003).portr("IN1"); // Inputs + map(0x600000, 0x600005).w(m_tilemap[0], FUNC(tilemap038_device::vregs_w)); // Layer 0 Control + map(0x700000, 0x70ffff).ram().w(m_palette[0], FUNC(palette_device::write16)).share("palette.0"); // Palette + map(0x800001, 0x800001).rw("oki1", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // M6295 + map(0xc00000, 0xc00001).w(FUNC(cave_state::pacslot_leds_w)); // Leds + Hopper + map(0xe00001, 0xe00001).w(FUNC(cave_state::tjumpman_eeprom_w)); // EEPROM +} + /*************************************************************************** Uo Poko ***************************************************************************/ @@ -1692,6 +1717,28 @@ static INPUT_PORTS_START( paceight ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME( "Max Bet" ) INPUT_PORTS_END +static INPUT_PORTS_START( paccarn ) // holding together Bet 4 and Bet 8 activates Bet 12 in IO Test Mode + PORT_START("IN0") + PORT_SERVICE( 0x01, IP_ACTIVE_LOW ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(10) // credits (impulse needed to coin up reliably) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME( "Bet 4" ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME( "Bet 2" ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_MEMBER(cave_state, tjumpman_hopper_r) + + PORT_START("IN1") + PORT_BIT( 0x07, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_CONFNAME( 0x08, 0x08, "Self Test" ) + PORT_CONFSETTING( 0x08, DEF_STR( Off ) ) + PORT_CONFSETTING( 0x00, DEF_STR( On ) ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME( "Bet 8" ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME( "Bet 3" ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(10) // medal (impulse needed to coin up reliably) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) +INPUT_PORTS_END + static INPUT_PORTS_START( ppsatan ) PORT_START("SYSTEM") // $200000 PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) @@ -2406,6 +2453,12 @@ void cave_state::paceight(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &cave_state::paceight_map); } +void cave_state::paccarn(machine_config &config) +{ + pacslot(config); + m_maincpu->set_addrmap(AS_PROGRAM, &cave_state::paccarn_map); +} + /*************************************************************************** Poka Poka Satan ***************************************************************************/ @@ -4097,6 +4150,51 @@ ROM_START( paceight ) ROM_LOAD( "n44u51a.u51", 0x117*2, 0x117, CRC(3c5e9bc5) SHA1(b4e04c4fa91ff33542b73971f67e71d13e24c5ec) ) // GAL16V8B-15LP ROM_END +/*************************************************************************** + + Pac-Carnival by Namco, 1996 + Namco N-44 EM VIDEO platform, PCB B0445 + + TMP 68HC000P-16 + + 013 9341E7005 + 038 9429WX704 + + OKI M6295 x 2 + + Battery + 93C46 EEPROM (at U24) + + 28MHz XTAL + + TODO: doesn't boot. Can be tricked via debugger: + when stuck at PC 0x16628, do PC = 0x1662a +***************************************************************************/ + +ROM_START( paccarn ) + ROM_REGION( 0x80000, "maincpu", 0 ) + ROM_LOAD16_WORD_SWAP( "pl1-mpr0b.u41", 0x00000, 0x80000, CRC(ef6b08ea) SHA1(61fe4db433a154233c4e1efd248ad51ba1d265d0) ) + + ROM_REGION( 0x100000, "sprites0", 0 ) + ROM_LOAD16_BYTE( "pl1-obj0.u52", 0x00000, 0x80000, CRC(1dd7c292) SHA1(e78d4be35c24616a1954910039e381869246a246) ) + ROM_LOAD16_BYTE( "pl1-obj1.u53", 0x00001, 0x80000, CRC(7b9935d0) SHA1(ef05230689124d0999ba9e472968e04d6e75c405) ) + + ROM_REGION( 0x80000, "layer0", 0 ) + ROM_LOAD16_BYTE( "pl1-cha0.u60", 0x00000, 0x40000, CRC(7977662e) SHA1(5aaa69ffaa62b20196a7b638232716b7c6391490) ) + ROM_LOAD16_BYTE( "pl1-cha1.u61", 0x00001, 0x40000, CRC(2150eafa) SHA1(e744a0861ee8a76c2bb24f681df38966df5dc9f0) ) + + ROM_REGION( 0x40000, "oki1", 0 ) + ROM_LOAD( "pl1-voi0.u27", 0x00000, 0x40000, CRC(e22b87e3) SHA1(83a6952fb0f695bb74cc5a3a1e24a916b6de9c8e) ) + + ROM_REGION( 0x40000, "oki2", ROMREGION_ERASE00 ) + // empty ROM socket + + ROM_REGION( 0x117 * 3, "plds", 0 ) // all protected + ROM_LOAD( "n44u1b.u1", 0x117*0, 0x117, NO_DUMP ) + ROM_LOAD( "n44u3b.u3", 0x117*1, 0x117, NO_DUMP ) + ROM_LOAD( "n44u51a.u51", 0x117*2, 0x117, NO_DUMP ) +ROM_END + /*************************************************************************** Poka Poka Satan - wack-a-mole game with one frontal upright screen and two @@ -5255,8 +5353,9 @@ GAME( 1996, agalletah, agallet, sailormn, cave, cave_state, init_agallet, GAME( 1996, hotdogst, 0, hotdogst, cave, cave_state, init_hotdogst, ROT90, "Marble (Ace International license)", "Hotdog Storm (Korea)", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, pacslot, 0, pacslot, pacslot, cave_state, init_tjumpman, ROT0, "Namco", "Pac-Slot", MACHINE_SUPPORTS_SAVE ) -GAME( 1996, paceight, 0, paceight, paceight, cave_state, init_tjumpman, ROT0, "Namco", "Pac-Eight", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, pacslot, 0, pacslot, pacslot, cave_state, init_tjumpman, ROT0, "Namco", "Pac-Slot", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, paceight, 0, paceight, paceight, cave_state, init_tjumpman, ROT0, "Namco", "Pac-Eight", MACHINE_SUPPORTS_SAVE ) +GAME( 1996, paccarn, 0, paccarn, paccarn, cave_state, init_tjumpman, ROT0, "Namco", "Pac-Carnival", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // stuck at boot. See ROM_LOAD for infos on how to get it to start via debugger GAME( 1996, ppsatan, 0, ppsatan, ppsatan, cave_state, init_ppsatan, ROT0, "Kato Seisakujo Co., Ltd.", "Poka Poka Satan (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/includes/cave.h b/src/mame/includes/cave.h index e74310a53a4..c1d31c76ede 100644 --- a/src/mame/includes/cave.h +++ b/src/mame/includes/cave.h @@ -80,6 +80,7 @@ public: void sailormn(machine_config &config); void paceight(machine_config &config); void pacslot(machine_config &config); + void paccarn(machine_config &config); void hotdogst(machine_config &config); void crusherm(machine_config &config); void donpachi(machine_config &config); @@ -340,6 +341,7 @@ private: void metmqstr_sound_portmap(address_map &map); void oki2_map(address_map &map); void oki_map(address_map &map); + void paccarn_map(address_map &map); void paceight_map(address_map &map); void pacslot_map(address_map &map); void ppsatan_map(address_map &map); diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 5edd346a952..473ba1904f5 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -9930,6 +9930,7 @@ mazinger // (c) 1994 Banpresto (country is in EEPROM) mazingerj // (c) 1994 Banpresto (country is in EEPROM) metmqstr // (c) 1995 Banpresto / Pandorabox nmaster // (c) 1995 Banpresto / Pandorabox +paccarn // (c) 1996 Namco paceight // (c) 1996 Namco pacslot // (c) 1996 Namco plegends // (c) 1994 Atlus -- cgit v1.2.3