From a10c1c8dcaa0c1ba5ff11a034ef533b6341328fe Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Wed, 23 Nov 2022 08:48:51 +0100 Subject: New machines marked as NOT_WORKING ---------------------------------- UFO Catcher 7 (V20011112) [Darksoft, TeamEurope] --- src/mame/arcade.flt | 1 + src/mame/mame.lst | 3 + src/mame/sega/segaufoh8.cpp | 143 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 147 insertions(+) create mode 100644 src/mame/sega/segaufoh8.cpp diff --git a/src/mame/arcade.flt b/src/mame/arcade.flt index 267550d17b8..161bd0633f0 100644 --- a/src/mame/arcade.flt +++ b/src/mame/arcade.flt @@ -1243,6 +1243,7 @@ sega/segasm1.cpp sega/segasp.cpp sega/segattl.cpp sega/segaufo.cpp +sega/segaufoh8.cpp sega/segaxbd.cpp sega/segaybd.cpp sega/sg1000a.cpp diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 47df942731c..65aadf1cd6d 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -38647,6 +38647,9 @@ ufo21 // ufo800 // ufomini // +@source:sega/segaufoh8.cpp +ufo7 // + @source:sega/segaxbd.cpp abcop // 1990.?? A.B.Cop (World, FD1094) abcopd // diff --git a/src/mame/sega/segaufoh8.cpp b/src/mame/sega/segaufoh8.cpp new file mode 100644 index 00000000000..b5bd819ba14 --- /dev/null +++ b/src/mame/sega/segaufoh8.cpp @@ -0,0 +1,143 @@ +// license:BSD-3-Clause +// copyright-holders: + +/* +Sega UFO Catcher on H8 based hardware + +Stickers on PCB: + +GAME BD UCS +834-14256 +S/NO. 103294 + + +REV.B + +Chips on PCB: + +1x SEGA 315-5338A +1x SEGA 315-5296 +1x H8/3007 2D3 HD6413007F20 JAPAN +1x YAMAHA YM3438 +*/ + +#include "emu.h" + +#include "315_5296.h" +#include "315_5338a.h" + +#include "cpu/h8/h83006.h" +#include "sound/ymopn.h" + +#include "speaker.h" + + +namespace { + +class segaufoh8_state : public driver_device +{ +public: + segaufoh8_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu") + {} + + void segaufoh8(machine_config &config); + +private: + required_device m_maincpu; + + void program_map(address_map &map); + void io_map(address_map &map); +}; + + +void segaufoh8_state::program_map(address_map &map) +{ + map(0x000000, 0x07ffff).rom().region("maincpu", 0); + //map(0x?00000, 0x?0007f).rw("315_5296", FUNC(sega_315_5296_device::read), FUNC(sega_315_5296_device::write)).umask16(0xff00); + //map(0x400000, 0x40001f).rw("315_5338a", FUNC(sega_315_5338a_device::read), FUNC(sega_315_5338a_device::write)).umask16(0xff00); + //map(0xfe0000, 0xffffff).ram(); +} + +void segaufoh8_state::io_map(address_map &map) +{ +} + + +static INPUT_PORTS_START( ufo7 ) + PORT_START("IN1") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("IN2") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("DSW1") // only one bank of dips on PCB, but there is a second empty space + PORT_DIPNAME( 0x01, 0x01, "UNK1-01" ) + PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x02, 0x02, "UNK1-02" ) + PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x04, 0x04, "UNK1-04" ) + PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x08, 0x08, "UNK1-08" ) + PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x10, 0x10, "UNK1-10" ) + PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x20, 0x20, "UNK1-20" ) + PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x40, 0x40, "UNK1-40" ) + PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) + PORT_DIPNAME( 0x80, 0x80, "UNK1-80" ) + PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) +INPUT_PORTS_END + + +void segaufoh8_state::segaufoh8(machine_config &config) +{ + H83007(config, m_maincpu, 16_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &segaufoh8_state::program_map); + m_maincpu->set_addrmap(AS_IO, &segaufoh8_state::io_map); + + SEGA_315_5296(config, "315_5296", 8_MHz_XTAL); + + SEGA_315_5338A(config, "315_5338a", 32_MHz_XTAL); + + SPEAKER(config, "mono").front_center(); + + ym3438_device &ym(YM3438(config, "ym", 16_MHz_XTAL / 2)); // divider not verified + //ym.irq_handler().set_inputline("maincpu", 0); + ym.add_route(ALL_OUTPUTS, "mono", 0.40); +} + + +ROM_START( ufo7 ) + ROM_REGION(0x80000, "maincpu", 0) + ROM_LOAD16_WORD_SWAP( "epr-23795b.ic408", 0x00000, 0x80000, CRC(ca153fc7) SHA1(f21878deaff2c86896912a8a0a4b17b44e5ef65c) ) +ROM_END + +} // anonymous namespace + + +GAME( 2001, ufo7, 0, segaufoh8, ufo7, segaufoh8_state, empty_init, ROT0, "Sega", "UFO Catcher 7 (V20011112)", MACHINE_IS_SKELETON_MECHANICAL ) // UFO Catch 7 in string in ROM -- cgit v1.2.3