From 84cf42a2abf9881a0544904160cf4cc4698119c5 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Sun, 2 May 2021 10:47:40 +0200 Subject: New machines marked as NOT_WORKING ---------------------------------- Panic Shot Rockman [SpinalFeyd] --- scripts/target/mame/arcade.lua | 1 + src/mame/arcade.flt | 1 + src/mame/drivers/psrockman.cpp | 142 +++++++++++++++++++++++++++++++++++++++++ src/mame/mame.lst | 3 + 4 files changed, 147 insertions(+) create mode 100644 src/mame/drivers/psrockman.cpp diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua index c383b647fcd..da12f729e74 100644 --- a/scripts/target/mame/arcade.lua +++ b/scripts/target/mame/arcade.lua @@ -1567,6 +1567,7 @@ files { MAME_DIR .. "src/mame/drivers/mitchell.cpp", MAME_DIR .. "src/mame/includes/mitchell.h", MAME_DIR .. "src/mame/video/mitchell.cpp", + MAME_DIR .. "src/mame/drivers/psrockman.cpp", MAME_DIR .. "src/mame/drivers/sf.cpp", MAME_DIR .. "src/mame/drivers/sidearms.cpp", MAME_DIR .. "src/mame/includes/sidearms.h", diff --git a/src/mame/arcade.flt b/src/mame/arcade.flt index cba8c01d7f3..3c5bab57107 100644 --- a/src/mame/arcade.flt +++ b/src/mame/arcade.flt @@ -1002,6 +1002,7 @@ pse.cpp psikyo.cpp psikyo4.cpp psikyosh.cpp +psrockmn.cpp psychic5.cpp pturn.cpp pubtimed.cpp diff --git a/src/mame/drivers/psrockman.cpp b/src/mame/drivers/psrockman.cpp new file mode 100644 index 00000000000..638d0b5f2e2 --- /dev/null +++ b/src/mame/drivers/psrockman.cpp @@ -0,0 +1,142 @@ +// license:BSD-3-Clause +// copyright-holders: + +/* +PANIC SHOT ROCKMAN - カプコン パニックショットロックマン +MECHANICAL GAME (pinball / medal game hybrid) +1992 +D-CPC-ROCKMAN-02 + +=== + +EPROMS + +D27C010A + +D27C512 + +=== + +PLD +PALACE16V8H-25PC/4 + +=== + +OKI M6295 + +YAMAHA YM2203C + +ZILOG Z80 CPU +*/ + + +#include "emu.h" +#include "emupal.h" +#include "screen.h" +#include "speaker.h" +#include "cpu/z80/z80.h" +#include "sound/okim6295.h" +#include "sound/ym2203.h" + + +namespace { + +class psrockman_state : public driver_device +{ +public: + psrockman_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + {} + + + void psrockman(machine_config &config); + +private: + void io_map(address_map &map); + void prg_map(address_map &map); +}; + + +void psrockman_state::prg_map(address_map &map) +{ + map(0x0000, 0x7fff).rom(); + map(0xd000, 0xd000).portr("IN0"); // TODO: guess, 0x40 seems to make the call attendant speech stutter/restart, also .w()? + //map(0xd008, 0xd008).rw(); + //map(0xd010, 0xd010).rw(); + //map(0xd018, 0xd018).w(); + //map(0xd020, 0xd020).w(); + //map(0xd038, 0xd038).w(); + map(0xe000, 0xffff).ram(); +} + +void psrockman_state::io_map(address_map &map) // TODO: only guesses +{ + map.global_mask(0xff); + + map(0x00, 0x01).rw("ym", FUNC(ym2203_device::read), FUNC(ym2203_device::write)); + map(0x40, 0x40).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); +} + + +static INPUT_PORTS_START( psrockman ) // 2 8-dip blocks + PORT_START("IN0") + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("DSW1") + PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW1:1") + PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "SW1:2") + PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "SW1:3") + PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "SW1:4") + PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "SW1:5") + PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "SW1:6") + PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "SW1:7") + PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "SW1:8") + + PORT_START("DSW2") + PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW2:1") + PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "SW2:2") + PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "SW2:3") + PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "SW2:4") + PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "SW2:5") + PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "SW2:6") + PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "SW2:7") + PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "SW2:8") +INPUT_PORTS_END + + +void psrockman_state::psrockman(machine_config &config) +{ + z80_device &maincpu(Z80(config, "maincpu", 3.579545_MHz_XTAL)); + maincpu.set_addrmap(AS_PROGRAM, &psrockman_state::prg_map); + maincpu.set_addrmap(AS_IO, &psrockman_state::io_map); + +// TODO: flyer picture shows at least two LED displays + + SPEAKER(config, "mono").front_center(); + + ym2203_device &ym(YM2203(config, "ym", 3.579545_MHz_XTAL)); + ym.port_a_read_callback().set_ioport("DSW1"); // guess + ym.port_b_read_callback().set_ioport("DSW2"); // guess + ym.irq_handler().set_inputline("maincpu", 0); // TODO: with this the game says 係員をお呼びください (Please call staff) over and over + ym.add_route(ALL_OUTPUTS, "mono", 1.0); + + OKIM6295(config, "oki", 1056000, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 1.0);; // clock frequency & pin 7 not verified +} + + +ROM_START( psrockmn ) + ROM_REGION(0x10000, "maincpu", 0) + ROM_LOAD( "prm0-1b-rom1.bin", 0x00000, 0x10000, CRC(9d840391) SHA1(84d90a5fb7901e18f74cb5acb6dd933023f2836f) ) + + ROM_REGION(0x40000, "oki", 0) + ROM_LOAD( "rockman-f188-rom2.bin", 0x00000, 0x20000, CRC(2ade4f1d) SHA1(e664fbe9d0c4013af3f765a8c52757e8e5ad2449) ) + ROM_LOAD( "rockman-9d48-rom3.bin", 0x20000, 0x20000, CRC(d47373ef) SHA1(a595b09ae75b7dae6ad2332e063fedc3b450e74e) ) + + ROM_REGION(0x117, "plds", 0) + ROM_LOAD( "rock-pal1.bin", 0x000, 0x117, CRC(50688629) SHA1(c7ced85561ff86c6c5a348765d8b3b6eef21554b) ) +ROM_END + +} // Anonymous namespace + + +GAME( 1992, psrockmn, 0, psrockman, psrockman, psrockman_state, empty_init, ROT0, "Capcom", "Panic Shot Rockman", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index aa4cc8955be..db70d1ae4e1 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -35417,6 +35417,9 @@ psionxp // @source:psion5.cpp psion5mx // +@source:psrockman.cpp +psrockmn // + @source:psx.cpp psa // 1995 Sony PlayStation (Asia-Pacific) pse // 1995 Sony PlayStation (Europe) -- cgit v1.2.3