summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2024-01-15 18:22:02 +0100
committer Ivan Vangelista <mesgnet@yahoo.it>2024-01-15 18:22:02 +0100
commit7ba0ff6eae67b6af6243ee3b3061a438588876ff (patch)
tree62b38f5faedafce096bc3962eae557e35f8d3f19
parent7e2832ffaa9bc605c81e558987de6ee265166096 (diff)
New systems marked not working
------------------------------ Diga Mart (rev. A) [Arcade2007] New working clones ------------------ Diner (LG-2) German [Quench]
-rw-r--r--src/mame/konami/konendev.cpp3
-rw-r--r--src/mame/mame.lst6
-rw-r--r--src/mame/pinball/s11c.cpp14
-rw-r--r--src/mame/sega/digamart.cpp137
4 files changed, 157 insertions, 3 deletions
diff --git a/src/mame/konami/konendev.cpp b/src/mame/konami/konendev.cpp
index 9c740c0ad1d..f58c99b5d81 100644
--- a/src/mame/konami/konendev.cpp
+++ b/src/mame/konami/konendev.cpp
@@ -44,7 +44,7 @@
4. FMU2 PCB (GGAT2 PWB(C) 0000094515)
- 12 x Fujitsu 29F016A-90PFTN surface-mounted flash memory chips (not always populated e.g. rapfire5 only has 6 chips)
- The games use flash memory for resources, however only Enchanted Lamp has its flash data dumped thus the others can't boot.
+ The games use flash memory for resources. Several games are fully dumped but most of the Russian versions don't have the flash data dumped and can't boot.
Games with progressive jackpots (such as Wild Fire) require a second display.
The second display is a 15"(?) LCD which is noticeably smaller than the main display, which is a PC-style CRT (early models) or LCD (ES500 models or retrofitted).
@@ -58,7 +58,6 @@
Hard Meters Disconnected
Logic Door Port
IFU2 Failure (enchlamp only)
- IFU2 Version Mismatch (amazonsp and safemonn, need correct BIOS dump)
LCD Display Disconnected (when enchlamp is set to Wild Fire jackpot mode)
*/
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 1652d4ba7cd..25c16ce3d40 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -36954,6 +36954,7 @@ dd_l2 //
dd_lu1 //
dd_p6 //
diner_f2 //
+diner_g2 //
diner_l1 //
diner_l2 //
diner_l3 //
@@ -38736,6 +38737,9 @@ karianx // (c) 1996 Deniam
logicpr2 // (c) 1997 Deniam (Japan)
logicpro // (c) 1996 Deniam
+@source:sega/digamart.cpp
+digamart
+
@source:sega/dotrikun.cpp
dotrikun // cabinet test board
dotrikun2 // cabinet test board
@@ -45040,7 +45044,7 @@ evio //
gcslottv //
gungunad //
has_wamg //
-hikara //
+hikara //
jarajal //
jpopira //
ltv_tam //
diff --git a/src/mame/pinball/s11c.cpp b/src/mame/pinball/s11c.cpp
index 0bb8b6be8d5..cf8e739c4e5 100644
--- a/src/mame/pinball/s11c.cpp
+++ b/src/mame/pinball/s11c.cpp
@@ -335,6 +335,19 @@ ROM_START(diner_f2)
ROM_RELOAD(0x50000, 0x10000)
ROM_END
+ROM_START(diner_g2)
+ ROM_REGION(0x10000, "maincpu", 0)
+ ROM_LOAD("dinr_u26.l2", 0x4000, 0x4000, CRC(8b6aa22e) SHA1(6b802a85fc2babf5a183fb434df11597363c1c9d))
+ ROM_LOAD("diner_nova_apparate_u27_rev2.bin", 0x8000, 0x8000, CRC(74be688e) SHA1(053d32a7db72a310521781db94d6090ef8553c89))
+ ROM_REGION(0x80000, "bg:cpu", ROMREGION_ERASEFF)
+ ROM_LOAD("dinr_u4.l1", 0x00000, 0x10000, CRC(3bd28368) SHA1(41eec2f5f863039deaabfae8aece4b1cf15e4b78))
+ ROM_RELOAD(0x10000, 0x10000)
+ ROM_LOAD("dinr_u19.l1", 0x20000, 0x10000, CRC(278b9a30) SHA1(41e59adb8b6c08caee46c3dd73256480b4041619))
+ ROM_RELOAD(0x30000, 0x10000)
+ ROM_LOAD("dinr_u20.l1", 0x40000, 0x10000, CRC(511fb260) SHA1(e6e25b464c5c38f3c0492436f1e8aa2be33dd278))
+ ROM_RELOAD(0x50000, 0x10000)
+ROM_END
+
ROM_START(diner_l1)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("u26-lu1.rom", 0x4000, 0x4000, CRC(259b302f) SHA1(d7e19c2d2ad7805d9158178c24d180d158a59b0c))
@@ -754,6 +767,7 @@ GAME(1990, diner_l4, 0, s11c, s11c, s11c_state, init_s11c, ROT0,
GAME(1990, diner_l3, diner_l4, s11c, s11c, s11c_state, init_s11c, ROT0, "Williams", "Diner (LA-3)", MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1990, diner_l2, diner_l4, s11c, s11c, s11c_state, init_s11c, ROT0, "Williams", "Diner (LU-2) Europe", MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1990, diner_f2, diner_l4, s11c, s11c, s11c_state, init_s11c, ROT0, "Williams", "Diner (LF-2) French", MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE )
+GAME(1990, diner_g2, diner_l4, s11c, s11c, s11c_state, init_s11c, ROT0, "Williams", "Diner (LG-2) German", MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1990, diner_l1, diner_l4, s11c, s11c, s11c_state, init_s11c, ROT0, "Williams", "Diner (LU-1) Europe", MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1990, diner_p0, diner_l4, s11c, s11c, s11c_state, init_s11c, ROT0, "Williams", "Diner (PA-0 prototype)", MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1990, dd_l2, 0, s11c, s11c, s11c_state, init_s11c, ROT0, "Bally", "Dr. Dude (LA-2)", MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/sega/digamart.cpp b/src/mame/sega/digamart.cpp
new file mode 100644
index 00000000000..171161f565d
--- /dev/null
+++ b/src/mame/sega/digamart.cpp
@@ -0,0 +1,137 @@
+// license:BSD-3-Clause
+// copyright-holders:
+
+/*
+Diga Mart (Sega, 1993)
+
+It's a crane machine with prizes on a moving track/turntable under a dome,
+with 4 player positions surrounding it.
+
+Stickers on PCB:
+
+834-5781
+8601.... (covered on pic)
+
+Main chips on PCB:
+
+1x Z8400APS
+1x HM6116LP-3
+1x M5L8255AP-5
+2x SN76489AN
+1x 8 MHx XTAL
+1x 8-dip bank
+*/
+
+#include "emu.h"
+
+#include "cpu/z80/z80.h"
+#include "machine/i8255.h"
+#include "sound/sn76496.h"
+
+#include "speaker.h"
+
+
+namespace {
+
+class digamart_state : public driver_device
+{
+public:
+ digamart_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu")
+ {
+ }
+
+ void digamart(machine_config &config);
+
+private:
+ required_device<cpu_device> m_maincpu;
+
+ void program_map(address_map &map);
+};
+
+
+void digamart_state::program_map(address_map &map)
+{
+ map(0x0000, 0x1fff).rom().region("maincpu", 0);
+ map(0x2000, 0x27ff).ram();
+ // map(0x4000, 0x400f).w()
+ map(0x6000, 0x6003).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write));
+ // map(0x8000, 0x8000).r();
+ // map(0xa000, 0xa000).r();
+ map(0xc000, 0xc003).w("sn1", FUNC(sn76496_device::write));
+ map(0xe000, 0xe003).w("sn2", FUNC(sn76496_device::write));
+}
+
+
+static INPUT_PORTS_START( digamart ) // 4 players, 2 buttons each
+ 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("DSW1")
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:1")
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:2")
+ PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+INPUT_PORTS_END
+
+
+void digamart_state::digamart(machine_config &config)
+{
+ Z80(config, m_maincpu, 8_MHz_XTAL / 2); // divisor not verified
+ m_maincpu->set_addrmap(AS_PROGRAM, &digamart_state::program_map);
+ m_maincpu->set_periodic_int(FUNC(digamart_state::irq0_line_hold), attotime::from_hz(4 * 60)); // TODO: wrong
+
+ i8255_device &ppi(I8255(config, "ppi"));
+ ppi.in_pa_callback().set([this] () { logerror("%s: PA read\n", machine().describe_context()); return uint8_t(0); });
+ ppi.out_pa_callback().set([this] (uint8_t data) { logerror("%s: PA write %02X\n", machine().describe_context(), data); });
+ ppi.in_pb_callback().set([this] () { logerror("%s: PB read\n", machine().describe_context()); return uint8_t(0); });
+ ppi.out_pb_callback().set([this] (uint8_t data) { logerror("%s: PB write %02X\n", machine().describe_context(), data); });
+ ppi.in_pc_callback().set([this] () { logerror("%s: PC read\n", machine().describe_context()); return uint8_t(0); });
+ ppi.out_pc_callback().set([this] (uint8_t data) { logerror("%s: PC write %02X\n", machine().describe_context(), data); });
+
+
+ SPEAKER(config, "mono").front_center();
+
+ SN76489A(config, "sn1", 8_MHz_XTAL / 8).add_route(ALL_OUTPUTS, "mono", 0.5); // divisor not verified
+
+ SN76489A(config, "sn2", 8_MHz_XTAL / 8).add_route(ALL_OUTPUTS, "mono", 0.5); // divisor not verified
+}
+
+
+ROM_START( digamart )
+ ROM_REGION( 0x2000, "maincpu", 0 )
+ ROM_LOAD( "epr-6970a.ic26", 0x0000, 0x2000, CRC(507de646) SHA1(a6934b3fdb0768691f3513d27767a99882078a1d) ) // handwritten label
+ROM_END
+
+} // anonymous namespace
+
+
+GAME( 1983, digamart, 0, digamart, digamart, digamart_state, empty_init, ROT0, "Sega", "Diga Mart (rev. A)", MACHINE_IS_SKELETON_MECHANICAL )