summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2019-11-10 23:52:30 -0500
committer AJR <ajrhacker@users.noreply.github.com>2019-11-10 23:52:30 -0500
commit0a83f32207dfd827b59df245258cf1b133537947 (patch)
treef689009f3374f939afe3f0db45be1008bf671061
parent3bc0aad093d7eb5bc06fc2aa6396f84069dd1b25 (diff)
New machines marked as NOT_WORKING
---------------------------------- Spade [SpinalFeyd]
-rw-r--r--scripts/target/mame/arcade.lua1
-rw-r--r--src/mame/arcade.flt1
-rw-r--r--src/mame/drivers/gsspade.cpp91
-rw-r--r--src/mame/mame.lst3
4 files changed, 96 insertions, 0 deletions
diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua
index b4a95fae8e1..3cf0955133a 100644
--- a/scripts/target/mame/arcade.lua
+++ b/scripts/target/mame/arcade.lua
@@ -4758,6 +4758,7 @@ files {
MAME_DIR .. "src/mame/drivers/gotcha.cpp",
MAME_DIR .. "src/mame/includes/gotcha.h",
MAME_DIR .. "src/mame/video/gotcha.cpp",
+ MAME_DIR .. "src/mame/drivers/gsspade.cpp",
MAME_DIR .. "src/mame/drivers/gumbo.cpp",
MAME_DIR .. "src/mame/includes/gumbo.h",
MAME_DIR .. "src/mame/video/gumbo.cpp",
diff --git a/src/mame/arcade.flt b/src/mame/arcade.flt
index 486bcbc59d4..c5a85243dba 100644
--- a/src/mame/arcade.flt
+++ b/src/mame/arcade.flt
@@ -489,6 +489,7 @@ gradius3.cpp
grchamp.cpp
gridlee.cpp
groundfx.cpp
+gsspade.cpp
gstream.cpp
gstriker.cpp
gsword.cpp
diff --git a/src/mame/drivers/gsspade.cpp b/src/mame/drivers/gsspade.cpp
new file mode 100644
index 00000000000..5c275de7aa9
--- /dev/null
+++ b/src/mame/drivers/gsspade.cpp
@@ -0,0 +1,91 @@
+// license:BSD-3-Clause
+// copyright-holders:AJR
+/****************************************************************************
+
+ Skeleton driver for "Spade" by Guan Shing.
+
+ Whatever machine this is (likely some sort of mechanical redemption
+ game) clearly consists of more than the dumped sound board. The 8279
+ addressed by the code is not at all to be found there.
+
+****************************************************************************/
+
+#include "emu.h"
+#include "cpu/mcs51/mcs51.h"
+#include "machine/i8279.h"
+#include "sound/ay8910.h"
+#include "sound/ym2413.h"
+#include "speaker.h"
+
+class gsspade_state : public driver_device
+{
+public:
+ gsspade_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_soundcpu(*this, "soundcpu")
+ {
+ }
+
+ void gsspade(machine_config &config);
+
+private:
+ void prog_map(address_map &map);
+ void ext_map(address_map &map);
+
+ required_device<mcs51_cpu_device> m_soundcpu;
+};
+
+
+void gsspade_state::prog_map(address_map &map)
+{
+ map(0x0000, 0x1fff).rom().region("soundcpu", 0);
+}
+
+void gsspade_state::ext_map(address_map &map)
+{
+ map(0x9002, 0x9003).w("psg", FUNC(ay8910_device::address_data_w));
+ map(0xb000, 0xb001).rw("kdc", FUNC(i8279_device::read), FUNC(i8279_device::write));
+ map(0xc000, 0xc001).w("m3567", FUNC(ym2413_device::write));
+}
+
+
+static INPUT_PORTS_START(gsspade)
+ PORT_START("P1")
+ // Inputs for testing purposes
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_NAME("P1.0")
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_NAME("P1.1")
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_BUTTON3) PORT_NAME("P1.2")
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_BUTTON4) PORT_NAME("P1.3")
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_BUTTON5) PORT_NAME("P1.6")
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_BUTTON6) PORT_NAME("P1.7")
+INPUT_PORTS_END
+
+
+void gsspade_state::gsspade(machine_config &config)
+{
+ I8051(config, m_soundcpu, 10.738635_MHz_XTAL); // Intel/Fujitsu P8051AH
+ m_soundcpu->set_addrmap(AS_PROGRAM, &gsspade_state::prog_map);
+ m_soundcpu->set_addrmap(AS_IO, &gsspade_state::ext_map);
+ m_soundcpu->port_in_cb<1>().set_ioport("P1");
+
+ I8279(config, "kdc", 1'789'772); // ?
+
+ SPEAKER(config, "speaker").front_center();
+
+ ay8910_device &psg(AY8910(config, "psg", 1'789'772)); // File KC89C72 (clock guessed)
+ psg.add_route(ALL_OUTPUTS, "speaker", 0.65);
+
+ ym2413_device &m3567(YM2413(config, "m3567", 3.579545_MHz_XTAL)); // M3567
+ m3567.add_route(ALL_OUTPUTS, "speaker", 1.0);
+}
+
+
+ROM_START(gsspade)
+ ROM_REGION(0x2000, "soundcpu", 0)
+ ROM_LOAD("spade-gs-dm-5.u2", 0x0000, 0x2000, CRC(c359201b) SHA1(5e5ac815bcd50f918f9c8b7447bcf6cf9426ae74))
+ROM_END
+
+
+GAME(199?, gsspade, 0, gsspade, gsspade, gsspade_state, empty_init, ROT0, "Guan Shing", "Spade", MACHINE_NOT_WORKING | MACHINE_MECHANICAL)
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 01b61cbac6c..a25bf870ce2 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -14981,6 +14981,9 @@ gridlee // [1983 Videa] prototype - no copyright notice
@source:groundfx.cpp
groundfx // D51 (c) 1992 Taito Corporation
+@source:gsspade.cpp
+gsspade //
+
@source:gstream.cpp
gstream // (c) 2002, Oriental Soft Japan
x2222 // (c) 2000, Oriental Soft