summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/jpmsys5.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/jpmsys5.cpp')
-rw-r--r--src/mame/drivers/jpmsys5.cpp156
1 files changed, 115 insertions, 41 deletions
diff --git a/src/mame/drivers/jpmsys5.cpp b/src/mame/drivers/jpmsys5.cpp
index 76c07ddec22..38a1a4f67aa 100644
--- a/src/mame/drivers/jpmsys5.cpp
+++ b/src/mame/drivers/jpmsys5.cpp
@@ -24,6 +24,7 @@
The byte at 0x81 of the EVEN 68k rom appears to be some kind of
control byte, probably region, or coin / machine type setting.
Many sets differ only by this byte.
+ Now we have BACTA protocol emulation, see if this is related.
Many sets are probably missing sound roms, however due to the
varying motherboard configurations (SAA vs. YM, with added UPD)
@@ -34,6 +35,8 @@
#include "emu.h"
#include "includes/jpmsys5.h"
+#include "machine/bacta_datalogger.h"
+
#include "machine/clock.h"
#include "machine/input_merger.h"
#include "sound/saa1099.h"
@@ -446,7 +449,7 @@ static INPUT_PORTS_START( monopoly )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_NAME("50p")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_NAME("100p")
PORT_BIT( 0xc3, IP_ACTIVE_LOW, IPT_UNUSED )
-
+
PORT_START("TOUCH_PUSH")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, jpmsys5v_state,touchscreen_press, 0)
@@ -590,10 +593,14 @@ void jpmsys5v_state::jpmsys5v(machine_config &config)
INPUT_MERGER_ANY_HIGH(config, "acia_irq").output_handler().set_inputline(m_maincpu, INT_6850ACIA);
+ bacta_datalogger_device &bacta(BACTA_DATALOGGER(config, "bacta", 0));
+
ACIA6850(config, m_acia6850[0], 0);
- m_acia6850[0]->txd_handler().set(FUNC(jpmsys5v_state::a0_tx_w));
+ m_acia6850[0]->txd_handler().set("bacta", FUNC(bacta_datalogger_device::write_txd));
m_acia6850[0]->irq_handler().set("acia_irq", FUNC(input_merger_device::in_w<0>));
+ bacta.rxd_handler().set(m_acia6850[0], FUNC(acia6850_device::write_rxd));
+
ACIA6850(config, m_acia6850[1], 0);
m_acia6850[1]->txd_handler().set(FUNC(jpmsys5v_state::a1_tx_w));
m_acia6850[1]->irq_handler().set("acia_irq", FUNC(input_merger_device::in_w<1>));
@@ -602,9 +609,11 @@ void jpmsys5v_state::jpmsys5v(machine_config &config)
m_acia6850[2]->txd_handler().set(FUNC(jpmsys5v_state::a2_tx_w));
m_acia6850[2]->irq_handler().set("acia_irq", FUNC(input_merger_device::in_w<2>));
+ clock_device &bacta_clock(CLOCK(config, "bacta_clock", 19200)); // Gives 1200 baud, but real timer is programmable (location?)
+ bacta_clock.signal_handler().set(m_acia6850[0], FUNC(acia6850_device::write_txc));
+ bacta_clock.signal_handler().append(m_acia6850[0], FUNC(acia6850_device::write_rxc));
+
clock_device &acia_clock(CLOCK(config, "acia_clock", 10000)); // What are the correct ACIA clocks ?
- acia_clock.signal_handler().set(m_acia6850[0], FUNC(acia6850_device::write_txc));
- acia_clock.signal_handler().append(m_acia6850[0], FUNC(acia6850_device::write_rxc));
acia_clock.signal_handler().append(m_acia6850[1], FUNC(acia6850_device::write_txc));
acia_clock.signal_handler().append(m_acia6850[1], FUNC(acia6850_device::write_rxc));
acia_clock.signal_handler().append(m_acia6850[2], FUNC(acia6850_device::write_txc));
@@ -810,21 +819,27 @@ void jpmsys5_state::jpmsys5_ym(machine_config &config)
INPUT_MERGER_ANY_HIGH(config, "acia_irq").output_handler().set_inputline(m_maincpu, INT_6850ACIA);
+ bacta_datalogger_device &bacta(BACTA_DATALOGGER(config, "bacta", 0));
+
ACIA6850(config, m_acia6850[0], 0);
- m_acia6850[0]->txd_handler().set(FUNC(jpmsys5_state::a0_tx_w));
+ m_acia6850[0]->txd_handler().set("bacta", FUNC(bacta_datalogger_device::write_txd));
m_acia6850[0]->irq_handler().set("acia_irq", FUNC(input_merger_device::in_w<0>));
+ bacta.rxd_handler().set(m_acia6850[0], FUNC(acia6850_device::write_rxd));
+
ACIA6850(config, m_acia6850[1], 0);
- m_acia6850[1]->txd_handler().set(FUNC(jpmsys5_state::a1_tx_w));
+ m_acia6850[1]->txd_handler().set(FUNC(jpmsys5v_state::a1_tx_w));
m_acia6850[1]->irq_handler().set("acia_irq", FUNC(input_merger_device::in_w<1>));
ACIA6850(config, m_acia6850[2], 0);
- m_acia6850[2]->txd_handler().set(FUNC(jpmsys5_state::a2_tx_w));
+ m_acia6850[2]->txd_handler().set(FUNC(jpmsys5v_state::a2_tx_w));
m_acia6850[2]->irq_handler().set("acia_irq", FUNC(input_merger_device::in_w<2>));
+ clock_device &bacta_clock(CLOCK(config, "bacta_clock", 19200)); // Gives 1200 baud, but real timer is programmable (location?)
+ bacta_clock.signal_handler().set(m_acia6850[0], FUNC(acia6850_device::write_txc));
+ bacta_clock.signal_handler().append(m_acia6850[0], FUNC(acia6850_device::write_rxc));
+
clock_device &acia_clock(CLOCK(config, "acia_clock", 10000)); // What are the correct ACIA clocks ?
- acia_clock.signal_handler().set(m_acia6850[0], FUNC(acia6850_device::write_txc));
- acia_clock.signal_handler().append(m_acia6850[0], FUNC(acia6850_device::write_rxc));
acia_clock.signal_handler().append(m_acia6850[1], FUNC(acia6850_device::write_txc));
acia_clock.signal_handler().append(m_acia6850[1], FUNC(acia6850_device::write_rxc));
acia_clock.signal_handler().append(m_acia6850[2], FUNC(acia6850_device::write_txc));
@@ -868,21 +883,27 @@ void jpmsys5_state::jpmsys5(machine_config &config)
INPUT_MERGER_ANY_HIGH(config, "acia_irq").output_handler().set_inputline(m_maincpu, INT_6850ACIA);
+ bacta_datalogger_device &bacta(BACTA_DATALOGGER(config, "bacta", 0));
+
ACIA6850(config, m_acia6850[0], 0);
- m_acia6850[0]->txd_handler().set(FUNC(jpmsys5_state::a0_tx_w));
+ m_acia6850[0]->txd_handler().set("bacta", FUNC(bacta_datalogger_device::write_txd));
m_acia6850[0]->irq_handler().set("acia_irq", FUNC(input_merger_device::in_w<0>));
+ bacta.rxd_handler().set(m_acia6850[0], FUNC(acia6850_device::write_rxd));
+
ACIA6850(config, m_acia6850[1], 0);
- m_acia6850[1]->txd_handler().set(FUNC(jpmsys5_state::a1_tx_w));
+ m_acia6850[1]->txd_handler().set(FUNC(jpmsys5v_state::a1_tx_w));
m_acia6850[1]->irq_handler().set("acia_irq", FUNC(input_merger_device::in_w<1>));
ACIA6850(config, m_acia6850[2], 0);
- m_acia6850[2]->txd_handler().set(FUNC(jpmsys5_state::a2_tx_w));
+ m_acia6850[2]->txd_handler().set(FUNC(jpmsys5v_state::a2_tx_w));
m_acia6850[2]->irq_handler().set("acia_irq", FUNC(input_merger_device::in_w<2>));
+ clock_device &bacta_clock(CLOCK(config, "bacta_clock", 19200)); // Gives 1200 baud, but real timer is programmable (location?)
+ bacta_clock.signal_handler().set(m_acia6850[0], FUNC(acia6850_device::write_txc));
+ bacta_clock.signal_handler().append(m_acia6850[0], FUNC(acia6850_device::write_rxc));
+
clock_device &acia_clock(CLOCK(config, "acia_clock", 10000)); // What are the correct ACIA clocks ?
- acia_clock.signal_handler().set(m_acia6850[0], FUNC(acia6850_device::write_txc));
- acia_clock.signal_handler().append(m_acia6850[0], FUNC(acia6850_device::write_rxc));
acia_clock.signal_handler().append(m_acia6850[1], FUNC(acia6850_device::write_txc));
acia_clock.signal_handler().append(m_acia6850[1], FUNC(acia6850_device::write_rxc));
acia_clock.signal_handler().append(m_acia6850[2], FUNC(acia6850_device::write_txc));
@@ -922,6 +943,7 @@ void jpmsys5_state::jpmsys5(machine_config &config)
*
*************************************/
+
ROM_START( monopoly )
ROM_REGION( 0x300000, "maincpu", 0 )
ROM_LOAD16_BYTE( "7398.bin", 0x000000, 0x80000, CRC(62c80f20) SHA1(322514f920d6cb48887b624786b52af34bdb8e5f) )
@@ -931,23 +953,25 @@ ROM_START( monopoly )
ROM_LOAD16_BYTE( "6670.bin", 0x200000, 0x80000, CRC(66e2a5e1) SHA1(04d4b55d6ad121cdc3592d33e9d953affa24f01a) )
ROM_LOAD16_BYTE( "6671.bin", 0x200001, 0x80000, CRC(b2a3cedd) SHA1(e3a5dd028b0769e08a796a96665b31491c3b18ca) )
+ ROM_REGION( 0x80000, "upd7759", 0 )
+ ROM_LOAD( "6538.bin", 0x00000, 0x40000, CRC(ccdd4ce3) SHA1(dbb24682cea8081a447ca2c53395964fc46e7f56) )
+ROM_END
- ROM_REGION( 0x300000, "altrevs", 0 )
- ROM_LOAD16_BYTE( "7400.bin", 0x00001, 0x080000, CRC(d6f1f98c) SHA1(f20c788a31a8fe339aed701866180a3eb16fafb9) )
-
- // this version doesn't work too well, missing other roms, or just bad?
- ROM_LOAD16_BYTE( "monov3p1", 0x00000, 0x080000, CRC(a66fc610) SHA1(fddd3b37a6aebf5c402942d26a2fa1fa130326dd) )
- ROM_LOAD16_BYTE( "monov3p2", 0x00001, 0x080000, CRC(2d629723) SHA1(c5584113e50dc5f636dbcf80e4689d2bbfe98e71) )
- // mismastched?
- ROM_LOAD16_BYTE( "monov4p2", 0x00001, 0x080000, CRC(3c2dd9b7) SHA1(01c87584b3599763a0c37040199014c2902dc6f3) )
-
+ROM_START( monopolyd )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "7398.bin", 0x000000, 0x80000, CRC(62c80f20) SHA1(322514f920d6cb48887b624786b52af34bdb8e5f) )
+ ROM_LOAD16_BYTE( "7400.bin", 0x000001, 0x80000, CRC(d6f1f98c) SHA1(f20c788a31a8fe339aed701866180a3eb16fafb9) )
+ ROM_LOAD16_BYTE( "6668.bin", 0x100000, 0x80000, CRC(30bf082a) SHA1(29ba67a86e82f0eb4feb816a2031d62028eb11b0) )
+ ROM_LOAD16_BYTE( "6669.bin", 0x100001, 0x80000, CRC(85d38c2d) SHA1(2f1a394df243e5fbbad31507b9074c997c473106) )
+ ROM_LOAD16_BYTE( "6670.bin", 0x200000, 0x80000, CRC(66e2a5e1) SHA1(04d4b55d6ad121cdc3592d33e9d953affa24f01a) )
+ ROM_LOAD16_BYTE( "6671.bin", 0x200001, 0x80000, CRC(b2a3cedd) SHA1(e3a5dd028b0769e08a796a96665b31491c3b18ca) )
ROM_REGION( 0x80000, "upd7759", 0 )
ROM_LOAD( "6538.bin", 0x00000, 0x40000, CRC(ccdd4ce3) SHA1(dbb24682cea8081a447ca2c53395964fc46e7f56) )
ROM_END
-ROM_START( monopolya )
+ROM_START( monopoly4 )
ROM_REGION( 0x300000, "maincpu", 0 )
ROM_LOAD16_BYTE( "mono4e1", 0x000000, 0x80000, CRC(0338b165) SHA1(fdc0fcf0fddcf88d593a22885779e8224484e7e4) )
ROM_LOAD16_BYTE( "mono4e2", 0x000001, 0x80000, CRC(c8aa21d8) SHA1(257ecf85e1d41b15bb2bbe2157e9d3f72b7e0317) )
@@ -956,10 +980,27 @@ ROM_START( monopolya )
ROM_LOAD16_BYTE( "6670.bin", 0x200000, 0x80000, CRC(66e2a5e1) SHA1(04d4b55d6ad121cdc3592d33e9d953affa24f01a) )
ROM_LOAD16_BYTE( "6671.bin", 0x200001, 0x80000, CRC(b2a3cedd) SHA1(e3a5dd028b0769e08a796a96665b31491c3b18ca) )
+ ROM_REGION( 0x300000, "altrevs", 0 )
+ ROM_LOAD16_BYTE( "monov4p2", 0x000001, 0x80000, CRC(3c2dd9b7) SHA1(01c87584b3599763a0c37040199014c2902dc6f3) ) // mismatched?
+
+ ROM_REGION( 0x80000, "upd7759", 0 )
+ ROM_LOAD( "6538.bin", 0x00000, 0x40000, CRC(ccdd4ce3) SHA1(dbb24682cea8081a447ca2c53395964fc46e7f56) )
+ROM_END
+
+ROM_START( monopoly3 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "monov3p1", 0x000000, 0x80000, CRC(a66fc610) SHA1(fddd3b37a6aebf5c402942d26a2fa1fa130326dd) )
+ ROM_LOAD16_BYTE( "monov3p2", 0x000001, 0x80000, CRC(2d629723) SHA1(c5584113e50dc5f636dbcf80e4689d2bbfe98e71) )
+ ROM_LOAD16_BYTE( "6668.bin", 0x100000, 0x80000, CRC(30bf082a) SHA1(29ba67a86e82f0eb4feb816a2031d62028eb11b0) )
+ ROM_LOAD16_BYTE( "6669.bin", 0x100001, 0x80000, CRC(85d38c2d) SHA1(2f1a394df243e5fbbad31507b9074c997c473106) )
+ ROM_LOAD16_BYTE( "6670.bin", 0x200000, 0x80000, CRC(66e2a5e1) SHA1(04d4b55d6ad121cdc3592d33e9d953affa24f01a) )
+ ROM_LOAD16_BYTE( "6671.bin", 0x200001, 0x80000, CRC(b2a3cedd) SHA1(e3a5dd028b0769e08a796a96665b31491c3b18ca) )
+
ROM_REGION( 0x80000, "upd7759", 0 )
ROM_LOAD( "6538.bin", 0x00000, 0x40000, CRC(ccdd4ce3) SHA1(dbb24682cea8081a447ca2c53395964fc46e7f56) )
ROM_END
+//Monopoly Classic is a non-payout quiz game, where the goal is to earn points from collecting properties.
ROM_START( monoplcl )
ROM_REGION( 0x300000, "maincpu", 0 )
@@ -970,13 +1011,18 @@ ROM_START( monoplcl )
ROM_LOAD16_BYTE( "6670.bin", 0x200000, 0x80000, CRC(66e2a5e1) SHA1(04d4b55d6ad121cdc3592d33e9d953affa24f01a) )
ROM_LOAD16_BYTE( "6671.bin", 0x200001, 0x80000, CRC(b2a3cedd) SHA1(e3a5dd028b0769e08a796a96665b31491c3b18ca) )
- ROM_REGION( 0x300000, "altrevs", 0 )
- ROM_LOAD16_BYTE( "7403.bin", 0x000001, 0x080000, CRC(95dbacb6) SHA1(bd551ccad95440a669a547092ab126178b0d0bf9) )
+ ROM_REGION( 0x80000, "upd7759", 0 )
+ ROM_LOAD( "6538.bin", 0x00000, 0x40000, CRC(ccdd4ce3) SHA1(dbb24682cea8081a447ca2c53395964fc46e7f56) )
+ROM_END
- ROM_LOAD( "mdlxv1p1", 0x0000, 0x080000, CRC(48ab1691) SHA1(6df2aad02548d5239e3974a11228bc9aad8c9170) )
- ROM_LOAD( "mdlxv1p2", 0x0000, 0x080000, CRC(107c3e65) SHA1(e298b3a2826f92ba6119348a36bc4735e1799797) )
- /* p3 missing? */
- ROM_LOAD( "mdlxv1p4", 0x0000, 0x080000, CRC(e3fd1a27) SHA1(6bba70ff27a6d068febcbdfa1b1f8ff2ef86ef03) )
+ROM_START( monoplcld )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "7401.bin", 0x000000, 0x80000, CRC(eec11426) SHA1(b732a5a64d3fba676134942768b823d088792a1f) )
+ ROM_LOAD16_BYTE( "7403.bin", 0x000001, 0x80000, CRC(95dbacb6) SHA1(bd551ccad95440a669a547092ab126178b0d0bf9) )
+ ROM_LOAD16_BYTE( "6668.bin", 0x100000, 0x80000, CRC(30bf082a) SHA1(29ba67a86e82f0eb4feb816a2031d62028eb11b0) )
+ ROM_LOAD16_BYTE( "6669.bin", 0x100001, 0x80000, CRC(85d38c2d) SHA1(2f1a394df243e5fbbad31507b9074c997c473106) )
+ ROM_LOAD16_BYTE( "6670.bin", 0x200000, 0x80000, CRC(66e2a5e1) SHA1(04d4b55d6ad121cdc3592d33e9d953affa24f01a) )
+ ROM_LOAD16_BYTE( "6671.bin", 0x200001, 0x80000, CRC(b2a3cedd) SHA1(e3a5dd028b0769e08a796a96665b31491c3b18ca) )
ROM_REGION( 0x80000, "upd7759", 0 )
@@ -992,10 +1038,37 @@ ROM_START( monopldx )
ROM_LOAD16_BYTE( "6881.bin", 0x200000, 0x80000, CRC(8418ee17) SHA1(5666b90db00d9e88a37655bb9a714f076e2689d6) )
ROM_LOAD16_BYTE( "6882.bin", 0x200001, 0x80000, CRC(400f5fb4) SHA1(80b1d3902fc9f6db24f49055b07bc31c0c74a993) )
- ROM_REGION( 0x300000, "altrevs", 0 )
- ROM_LOAD16_BYTE( "8441.bin", 0x000001, 0x080000, CRC(d0825af4) SHA1(a7291806893c42a115763e404337976b8c30e9e0) ) // 1 byte change from 8440 (doesn't boot, but might want additional hw)
+ ROM_REGION( 0x80000, "upd7759", 0 )
+ ROM_LOAD( "modl-snd.bin", 0x000000, 0x80000, CRC(f761da41) SHA1(a07d1b4cb7ce7a24b6fb84843543b95c3aec470f) )
+ROM_END
+ROM_START( monopldxd )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "8439.bin", 0x000000, 0x80000, CRC(fbd6caa4) SHA1(73e787ae41a0ce44d48a46dd623d5e1351335e3e) )
+ ROM_LOAD16_BYTE( "8441.bin", 0x000001, 0x80000, CRC(d0825af4) SHA1(a7291806893c42a115763e404337976b8c30e9e0) ) // 1 byte change from 8440
+ ROM_LOAD16_BYTE( "6879.bin", 0x100000, 0x80000, CRC(4fbd1222) SHA1(9a9c9e4768c18a6a3e717605d3c88179676b6ad1) )
+ ROM_LOAD16_BYTE( "6880.bin", 0x100001, 0x80000, CRC(0370bf5f) SHA1(a0ed1dbc6aeab02e8229f23f8ba4ff880d31e7a1) )
+ ROM_LOAD16_BYTE( "6881.bin", 0x200000, 0x80000, CRC(8418ee17) SHA1(5666b90db00d9e88a37655bb9a714f076e2689d6) )
+ ROM_LOAD16_BYTE( "6882.bin", 0x200001, 0x80000, CRC(400f5fb4) SHA1(80b1d3902fc9f6db24f49055b07bc31c0c74a993) )
+
+ ROM_REGION( 0x80000, "upd7759", 0 )
+ ROM_LOAD( "modl-snd.bin", 0x000000, 0x80000, CRC(f761da41) SHA1(a07d1b4cb7ce7a24b6fb84843543b95c3aec470f) )
+ROM_END
+
+ROM_START( monopldx1 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "mdlxv1p1", 0x000000, 0x80000, CRC(48ab1691) SHA1(6df2aad02548d5239e3974a11228bc9aad8c9170) )
+ ROM_LOAD16_BYTE( "mdlxv1p2", 0x000001, 0x80000, CRC(107c3e65) SHA1(e298b3a2826f92ba6119348a36bc4735e1799797) )
+ ROM_LOAD16_BYTE( "6879.bin", 0x100000, 0x80000, CRC(4fbd1222) SHA1(9a9c9e4768c18a6a3e717605d3c88179676b6ad1) )
+ ROM_LOAD16_BYTE( "6880.bin", 0x100001, 0x80000, CRC(0370bf5f) SHA1(a0ed1dbc6aeab02e8229f23f8ba4ff880d31e7a1) )
+ ROM_LOAD16_BYTE( "6881.bin", 0x200000, 0x80000, CRC(8418ee17) SHA1(5666b90db00d9e88a37655bb9a714f076e2689d6) )
+ ROM_LOAD16_BYTE( "6882.bin", 0x200001, 0x80000, CRC(400f5fb4) SHA1(80b1d3902fc9f6db24f49055b07bc31c0c74a993) )
+
+ ROM_REGION( 0x300000, "altrevs", 0 )
+ /* p3 missing? */
+ ROM_LOAD16_BYTE( "mdlxv1p4", 0x100001, 0x80000, CRC(e3fd1a27) SHA1(6bba70ff27a6d068febcbdfa1b1f8ff2ef86ef03) ) //Doesn't match set?
+
ROM_REGION( 0x80000, "upd7759", 0 )
ROM_LOAD( "modl-snd.bin", 0x000000, 0x80000, CRC(f761da41) SHA1(a07d1b4cb7ce7a24b6fb84843543b95c3aec470f) )
ROM_END
@@ -1010,13 +1083,14 @@ ROM_START( cashcade )
ROM_END
-
-
-
-
/* Video based titles */
-GAME( 1994, monopoly, 0, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Monopoly (JPM) (SYSTEM5 VIDEO, set 1)", 0 )
-GAME( 1994, monopolya, monopoly, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Monopoly (JPM) (SYSTEM5 VIDEO, set 2)", 0 )
-GAME( 1995, monoplcl, monopoly, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Monopoly Classic (JPM) (SYSTEM5 VIDEO)", 0 )
-GAME( 1995, monopldx, 0, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Monopoly Deluxe (JPM) (SYSTEM5 VIDEO)", 0 )
-GAME( 199?, cashcade, 0, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Cashcade (JPM) (SYSTEM5 VIDEO)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) // shows a loading error.. is the set incomplete?
+GAME( 1994, monopoly, 0, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Monopoly (JPM) (Version 4H) (SYSTEM5 VIDEO)", 0 )
+GAME( 1994, monopolyd, monopoly, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Monopoly (JPM) (Version 4H, Protocol) (SYSTEM5 VIDEO)", 0 )
+GAME( 1994, monopoly4, monopoly, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Monopoly (JPM) (Version 4) (SYSTEM5 VIDEO)", 0 )
+GAME( 1994, monopoly3, monopoly, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Monopoly (JPM) (Version 3) (SYSTEM5 VIDEO)", 0 )
+GAME( 1995, monoplcl, monopoly, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Monopoly Classic (JPM) (Version 5) (SYSTEM5 VIDEO)", 0 )
+GAME( 1995, monoplcld, monopoly, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Monopoly Classic (JPM) (Version 5, Protocol) (SYSTEM5 VIDEO)", 0 )
+GAME( 1995, monopldx, 0, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Monopoly Deluxe (JPM) (Version 6) (SYSTEM5 VIDEO)", 0 )
+GAME( 1995, monopldxd, monopldx, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Monopoly Deluxe (JPM) (Version 6, Protocol) (SYSTEM5 VIDEO)", 0 )
+GAME( 1995, monopldx1, monopldx, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Monopoly Deluxe (JPM) (Version 1) (SYSTEM5 VIDEO)", MACHINE_NOT_WORKING ) // no questions?
+GAME( 199?, cashcade, 0, jpmsys5v, monopoly, jpmsys5v_state, empty_init, ROT0, "JPM", "Cashcade (JPM) (SYSTEM5 VIDEO)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) // shows a loading error.. is the set incomplete?