diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua index 2d6f3b6fc0b..55995e2cac9 100644 --- a/scripts/target/mame/arcade.lua +++ b/scripts/target/mame/arcade.lua @@ -4807,6 +4807,7 @@ files { MAME_DIR .. "src/mame/drivers/chexx.cpp", MAME_DIR .. "src/mame/drivers/chicago.cpp", MAME_DIR .. "src/mame/drivers/chsuper.cpp", + MAME_DIR .. "src/mame/drivers/cirsa820xxx.cpp", MAME_DIR .. "src/mame/drivers/clowndwn.cpp", MAME_DIR .. "src/mame/drivers/clpoker.cpp", MAME_DIR .. "src/mame/drivers/cocoloco.cpp", diff --git a/src/mame/arcade.flt b/src/mame/arcade.flt index c3bbc9f2f90..5696a5e4e7e 100644 --- a/src/mame/arcade.flt +++ b/src/mame/arcade.flt @@ -230,6 +230,7 @@ cidelsa.cpp cinemat.cpp circus.cpp circusc.cpp +cirsa820xxx.cpp cischeat.cpp citycon.cpp clayshoo.cpp diff --git a/src/mame/drivers/cirsa820xxx.cpp b/src/mame/drivers/cirsa820xxx.cpp new file mode 100644 index 00000000000..6b1c2cf0f7a --- /dev/null +++ b/src/mame/drivers/cirsa820xxx.cpp @@ -0,0 +1,139 @@ +// license:BSD-3-Clause +// copyright-holders: + +/* +Skeleton driver for Cirsa 820XXX hardware. +This PCB is an evolution of the 810XXX hardware found in missbamby.cpp. Main differences are there is an i8254 +and two dips banks instead of just one (and no service/reset button). Also there is no i8155. +Known games on this hardware: + ________________________________________________________________________ + | Dumped | Game | Manufacturer | Notes | + +--------+-------------------+--------------------+--------------------| + | YES | Unknown | Cirsa | Cirsa PCB 820501 A | + +-------------------------------------------------+--------------------+ +*/ + +/* + ________________________________ + __________| | | | | | | | | | | | | | | | |__________ + | |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_| | + | ___________________ | + | | EMPTY | | + | |__________________| | + | ___________________ ____________ | + | | AY-3-8910 | | iP8254 | | + | |__________________| __________ |___________| | + | _________ _________ |PAT-004_| ____________ | + | |_DIPSx8_||_DIPSx8_| __________ | KM6816-15 | | + | |PAT-024_| |___________| | + | ________ ___________________ ______________ | + | |___?___| | Intel P8085A | | ROM 1C | | + | ________ |__________________| |_____________| | + | |___?___| ___ ______________ | + | ________ |XTAL __________ | ROM 1B | | + | |___?___| |_74LS373_| |_____________| | + | ______________ | + | BATT | ROM 1A | | + | CIRSA 820501 A |_____________| | + | | + |____________________________________________________| + + The Xtal frequency was unreadable. +*/ + +#include "emu.h" +#include "speaker.h" +#include "cpu/i8085/i8085.h" +#include "machine/pit8253.h" +//#include "machine/nvram.h" +#include "sound/ay8910.h" + + +namespace { + +class cirsa820xxx_state : public driver_device +{ +public: + cirsa820xxx_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") + { + } + + void cirsa820xxx(machine_config &config); + +private: + required_device m_maincpu; + + void io_map(address_map &map); + void prg_map(address_map &map); +}; + +void cirsa820xxx_state::prg_map(address_map &map) +{ + map(0x0000, 0x5fff).rom().region("maincpu", 0); + map(0x6000, 0x67ff).ram(); +} + +void cirsa820xxx_state::io_map(address_map &map) +{ + map.global_mask(0xff); + map.unmap_value_high(); +} + + +static INPUT_PORTS_START( cirsa820xxx ) + 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 cirsa820xxx_state::cirsa820xxx(machine_config &config) +{ + I8085A(config, m_maincpu, 6'000'000); // XTAL value was unreadable, guessed for now + m_maincpu->set_addrmap(AS_PROGRAM, &cirsa820xxx_state::prg_map); + m_maincpu->set_addrmap(AS_IO, &cirsa820xxx_state::io_map); + + PIT8254(config, "i8254", 0); + + SPEAKER(config, "mono").front_center(); + ay8910_device &psg(AY8910(config, "psg", 6'000'000 / 4)); // XTAL value was unreadable, guessed for now. Unknown divider + psg.add_route(ALL_OUTPUTS, "mono", 1.0); +} + + +// Cirsa PCB 820501 A +ROM_START( unk820501 ) + ROM_REGION(0x6000, "maincpu", 0) + ROM_LOAD( "1b.bin", 0x0000, 0x2000, CRC(aff9bd07) SHA1(ec38b298f4d7a617326d73e642b47f5c0e974f04) ) + ROM_LOAD( "1a.bin", 0x2000, 0x2000, CRC(d9eefece) SHA1(3137000fbf70562b300bf4b95c425b3de2dd63c4) ) + ROM_LOAD( "b-1554_unidesa_b-82_1c.bin", 0x4000, 0x2000, CRC(89b3da4a) SHA1(c464fb0e307afd035d091007ec6a428975fb60e4) ) + + ROM_REGION(0x104, "plds", 0) + ROM_LOAD( "pat_004.bin", 0x000, 0x104, NO_DUMP ) // pal164dc +ROM_END + +} // Anonymous namespace + + +GAME( 1982?, unk820501, 0, cirsa820xxx, cirsa820xxx, cirsa820xxx_state, empty_init, ROT0, "Cirsa", "unknown Cirsa slot machine on 820501 A PCB", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/missbamby.cpp b/src/mame/drivers/missbamby.cpp index f71bdbd820e..532c6ccf950 100644 --- a/src/mame/drivers/missbamby.cpp +++ b/src/mame/drivers/missbamby.cpp @@ -79,6 +79,9 @@ Golden Winner - Reben //#include "machine/nvram.h" #include "sound/ay8910.h" + +namespace { + class missbamby_state : public driver_device { public: @@ -218,6 +221,8 @@ ROM_START( unkslot ) ROM_LOAD( "n83s23n.bin", 0x00, 0x20, CRC(ea598b2c) SHA1(c0d6367ed2381a4a0f22780773ff4777569e88ab) ) ROM_END +} // Anonymous namespace + GAME( 1981, minisupf, 0, missbamby, missbamby, missbamby_state, empty_init, ROT0, "Cirsa", "Mini Super Fruits", MACHINE_IS_SKELETON_MECHANICAL ) GAME( 1981, luckyplr, 0, missbamby, missbamby, missbamby_state, empty_init, ROT0, "Cirsa", "Lucky Player", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index fb629291813..a504ca08bbc 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -10368,6 +10368,9 @@ circusc4 // GX380 (c) 1984 circuscc // GX380 (c) 1984 + Centuri license circusce // GX380 (c) 1984 + Centuri license +@source:cirsa820xxx.cpp +unk820501 + @source:cischeat.cpp armchmp2 // (c) 1992 Jaleco armchmp2o // (c) 1992 Jaleco