summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2022-02-08 17:59:09 +0100
committer Ivan Vangelista <mesgnet@yahoo.it>2022-02-08 17:59:09 +0100
commitb6addc3d0650021b407509481baab559b77c06d7 (patch)
tree0086f633b0f5c3395941e14417ccba62180779e0
parent8b5307cee063a5ce44f9af220e41881fa6d6cf3b (diff)
New clones marked as NOT_WORKING
-------------------------------- Multi Game (French / English, Version Soft 4.4.8T - 4.0.5, 26-OCT-00) [Jorge Silva] Multi Game (English, Version Soft 4.1.2T - 1.5.7, 16-MAY-00(397)) [Jorge Silva]
-rw-r--r--src/mame/drivers/gambl186.cpp129
-rw-r--r--src/mame/mame.lst8
2 files changed, 108 insertions, 29 deletions
diff --git a/src/mame/drivers/gambl186.cpp b/src/mame/drivers/gambl186.cpp
index c79092e4957..a829e067946 100644
--- a/src/mame/drivers/gambl186.cpp
+++ b/src/mame/drivers/gambl186.cpp
@@ -10,11 +10,11 @@
************************************************************************************
-80186xl20 Xtal 40Mhz
-At89c52 (not dumped) with external 32K ram?? Xtal 11.xxx18Mhz
-Cirrus Logic CL-GD5428-80QC-A video chip with 416c256 ram near it Xtal 14.x818 Mhaz
+80186xl20 Xtal 40MHz
+At89c52 (not dumped) with external 32K ram?? Xtal 11.0592MHz
+Cirrus Logic CL-GD5428-80QC-A video chip with 416c256 ram near it Xtal 14.381818 MHz
-U9-U10 programm rom common to both pcb
+U9-U10 program rom common to both pcb
u11-u12 Program rom/GFX
U13-U14 256Kramx8 (32Kbyte x16)
@@ -42,42 +42,55 @@ In order to get the game to run, follow these steps:
TODO:
- fix the poker game (casino 10). EEPROM behaviour still buggy.
- sound;
-- proper 3x D71055C emulation.
+- proper 3x D71055C emulation
+- hopper and ticket dispenser
+- proper touch screen
+- in gambl186c the link test can't be skipped and it doesn't seem to like current connection emulation
***********************************************************************************/
#include "emu.h"
+
#include "cpu/i86/i186.h"
+#include "cpu/mcs51/mcs51.h"
#include "machine/nvram.h"
#include "sound/upd7759.h"
#include "video/clgd542x.h"
+
#include "speaker.h"
+namespace {
+
class gambl186_state : public driver_device
{
public:
gambl186_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
- m_upd7759(*this, "7759") { }
+ m_upd7759(*this, "7759"),
+ m_data_bank(*this, "data_bank") { }
void gambl186(machine_config &config);
+protected:
+ virtual void machine_start() override;
+
private:
required_device<cpu_device> m_maincpu;
- optional_device<upd7759_device> m_upd7759;
- int m_comms_state;
- int m_comms_ind;
+ required_device<upd7759_device> m_upd7759;
+ required_memory_bank m_data_bank;
+
+ uint16_t m_comms_state;
+ uint16_t m_comms_ind;
uint8_t m_comms_data[1002];
- int m_comms_cmd;
- int m_comms_expect;
- int m_comms_blocks;
+ uint8_t m_comms_cmd;
+ uint16_t m_comms_expect;
+ uint8_t m_comms_blocks;
bool m_comms_ack;
- virtual void machine_start() override;
uint16_t comms_r(offs_t offset, uint16_t mem_mask = ~0);
void comms_w(offs_t offset, uint16_t data);
void data_bank_w(uint16_t data);
@@ -88,7 +101,15 @@ private:
void gambl186_state::machine_start()
{
- membank("data_bank")->configure_entries(0, 4, memregion("data")->base(), 0x40000);
+ m_data_bank->configure_entries(0, 4, memregion("data")->base(), 0x40000);
+
+ save_item(NAME(m_comms_state));
+ save_item(NAME(m_comms_ind));
+ save_item(NAME(m_comms_data));
+ save_item(NAME(m_comms_cmd));
+ save_item(NAME(m_comms_expect));
+ save_item(NAME(m_comms_blocks));
+ save_item(NAME(m_comms_ack));
}
static const uint8_t password[] = {5, 2, 0, 3, 0, 0, 2, 4, 5, 6, 0x16};
@@ -326,9 +347,9 @@ void gambl186_state::comms_w(offs_t offset, uint16_t data)
void gambl186_state::data_bank_w(uint16_t data)
{
- membank("data_bank")->set_entry(data & 3);
- if(data & 0xfffc)
- popmessage("warning: set %04x to data bank",data);
+ m_data_bank->set_entry(data & 3);
+ if (data & 0xfffc)
+ popmessage("warning: set %04x to data bank", data);
}
@@ -365,7 +386,7 @@ void gambl186_state::upd_w(uint16_t data)
void gambl186_state::gambl186_map(address_map &map)
{
map(0x00000, 0x0ffff).ram().share("nvram");
- map(0x40000, 0x7ffff).bankr("data_bank");
+ map(0x40000, 0x7ffff).bankr(m_data_bank);
map(0xa0000, 0xbffff).rw("vga", FUNC(cirrus_gd5428_device::mem_r), FUNC(cirrus_gd5428_device::mem_w));
map(0xc0000, 0xfffff).rom().region("ipl", 0);
}
@@ -467,10 +488,16 @@ static INPUT_PORTS_START( gambl186 )
PORT_DIPNAME( 0x8000, 0x8000, "SW2-8" ) PORT_DIPLOCATION("SW2:8")
PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
-
INPUT_PORTS_END
+static INPUT_PORTS_START( gambl186c )
+ PORT_INCLUDE( gambl186)
+ PORT_MODIFY("DSW1")
+ PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Language) ) PORT_DIPLOCATION("SW2:6")
+ PORT_DIPSETTING( 0x2000, DEF_STR( French ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( English ) )
+INPUT_PORTS_END
void gambl186_state::gambl186(machine_config &config)
{
@@ -478,6 +505,8 @@ void gambl186_state::gambl186(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &gambl186_state::gambl186_map);
m_maincpu->set_addrmap(AS_IO, &gambl186_state::gambl186_io);
+ AT89C52(config, "mcu", XTAL(11'059'200)).set_disable(); // no dump available
+
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -486,7 +515,7 @@ void gambl186_state::gambl186(machine_config &config)
CIRRUS_GD5428(config, "vga", 0).set_screen("screen");
- /* sound hardware */
+ // sound hardware
SPEAKER(config, "mono").front_center();
UPD7759(config, m_upd7759);
m_upd7759->add_route(ALL_OUTPUTS, "mono", 0.75);
@@ -494,7 +523,7 @@ void gambl186_state::gambl186(machine_config &config)
-ROM_START( gambl186 )
+ROM_START( gambl186 ) // has Casino 10, Roulette, 21 Blackjack and Bingo 10 selection
ROM_REGION( 0x100000, "data", 0 )
ROM_LOAD16_BYTE( "ie398.u11", 0x00000, 0x80000, CRC(86ad7cab) SHA1(b701c3701db630d218a9b1700f216f795a1b1272) )
ROM_LOAD16_BYTE( "io398.u12", 0x00001, 0x80000, CRC(0a036f34) SHA1(63d0b87c7d4c902413f28c0b55d78e5fda511f4f) )
@@ -503,11 +532,14 @@ ROM_START( gambl186 )
ROM_LOAD16_BYTE( "se403p.u9", 0x00000, 0x20000, CRC(1021cc20) SHA1(d9bb67676b05458ff813d608431ff06946ab7721) )
ROM_LOAD16_BYTE( "so403p.u10", 0x00001, 0x20000, CRC(af9746c9) SHA1(3f1ab8110cc5eadec661181779799693ad695e21) )
+ ROM_REGION( 0x2000, "mcu", 0 )
+ ROM_LOAD( "89c52.bin", 0x0000, 0x2000, NO_DUMP )
+
ROM_REGION( 0x20000, "upd", 0 ) // upd7759 sound samples
ROM_LOAD( "347.u302", 0x00000, 0x20000, CRC(7ce8f490) SHA1(2f856e31d189e9d46ba6b322133d99133e0b52ac) )
ROM_END
-ROM_START( gambl186a )
+ROM_START( gambl186a ) // has Casino 10, Roulette, 21 Blackjack and Bingo 10 selection
ROM_REGION( 0x100000, "data", 0 )
ROM_LOAD16_BYTE( "ie399.u11", 0x00000, 0x80000, CRC(2a7bce20) SHA1(fbabaaa0d72b5dfccd33f5194d13009bdc44b5a7) )
ROM_LOAD16_BYTE( "io399.u12", 0x00001, 0x80000, CRC(9212f52b) SHA1(d970c59c1e0f5f7e94c1b632398bcfae278c143d) )
@@ -516,6 +548,9 @@ ROM_START( gambl186a )
ROM_LOAD16_BYTE( "se403p.u9", 0x00000, 0x20000, CRC(1021cc20) SHA1(d9bb67676b05458ff813d608431ff06946ab7721) )
ROM_LOAD16_BYTE( "so403p.u10", 0x00001, 0x20000, CRC(af9746c9) SHA1(3f1ab8110cc5eadec661181779799693ad695e21) )
+ ROM_REGION( 0x2000, "mcu", 0 )
+ ROM_LOAD( "89c52.bin", 0x0000, 0x2000, NO_DUMP )
+
ROM_REGION( 0x20000, "upd", 0 ) // upd7759 sound samples
ROM_LOAD( "347.u302", 0x00000, 0x20000, CRC(7ce8f490) SHA1(2f856e31d189e9d46ba6b322133d99133e0b52ac) )
ROM_END
@@ -527,14 +562,56 @@ ROM_START( gambl186b )
ROM_LOAD16_BYTE( "io3.7.8.bin", 0x00001, 0x80000, CRC(c69bf3ad) SHA1(eb612e903a9b184c2dd363e081ee8f650a4f2f90) )
ROM_REGION16_LE( 0x40000, "ipl", 0 )
- ROM_LOAD16_BYTE( "se3.8.6t.bin", 0x00000, 0x20000,CRC(158bd3a3) SHA1(846f382f145f8c4c36bd75fef12717b41e91c70b))
+ ROM_LOAD16_BYTE( "se3.8.6t.bin", 0x00000, 0x20000, CRC(158bd3a3) SHA1(846f382f145f8c4c36bd75fef12717b41e91c70b) )
ROM_LOAD16_BYTE( "so3.8.6t.bin", 0x00001, 0x20000, CRC(4bd275d3) SHA1(6b84f54e723408b06b71e89f7de6a8014fd9ecfd) )
+ ROM_REGION( 0x2000, "mcu", 0 )
+ ROM_LOAD( "89c52.bin", 0x0000, 0x2000, NO_DUMP )
+
ROM_REGION( 0x20000, "upd", 0 ) // upd7759 sound samples
ROM_LOAD( "sound3.9.8.bin", 0x00000, 0x20000, CRC(1d6d1743) SHA1(df0e8d311ccaf77fb5dfc341124a11051154e79c) )
ROM_END
+
+ROM_START( gambl186c ) // labels unreadable or hand written with just a number. Has Super Lolo, Morpion, Solitaire and Jumping Frog selection
+ ROM_REGION( 0x100000, "data", 0 )
+ ROM_LOAD16_BYTE( "3", 0x00000, 0x80000, CRC(782d6aa2) SHA1(8b8cfc41a10c79f43c56c90ed6dc280a54da2a18) )
+ ROM_LOAD16_BYTE( "4", 0x00001, 0x80000, CRC(75053488) SHA1(a63b312325cc1bd73283f5387219e58c7ba368d8) )
+
+ ROM_REGION16_LE( 0x40000, "ipl", 0 )
+ ROM_LOAD16_BYTE( "1", 0x00000, 0x20000, CRC(3478d935) SHA1(439fa07d6eb0e77356d1fd1713aeed5580a2dccb) )
+ ROM_LOAD16_BYTE( "2", 0x00001, 0x20000, CRC(6f708e48) SHA1(8e9157599cf340713b67b6e03fa60c7a536175c0) )
+
+ ROM_REGION( 0x2000, "mcu", 0 )
+ ROM_LOAD( "89c52.bin", 0x0000, 0x2000, NO_DUMP )
+
+ ROM_REGION( 0x20000, "upd", 0 ) // upd7759 sound samples
+ ROM_LOAD( "5", 0x00000, 0x20000, CRC(1d6d1743) SHA1(df0e8d311ccaf77fb5dfc341124a11051154e79c) )
+ROM_END
+
+
+ROM_START( gambl186d ) // labels unreadable or hand written with just a number. Has Super Lolo, Morpion, Solitaire and Jumping Frog selection
+ ROM_REGION( 0x100000, "data", 0 )
+ ROM_LOAD16_BYTE( "3", 0x00000, 0x80000, CRC(782d6aa2) SHA1(8b8cfc41a10c79f43c56c90ed6dc280a54da2a18) )
+ ROM_LOAD16_BYTE( "4", 0x00001, 0x80000, CRC(75053488) SHA1(a63b312325cc1bd73283f5387219e58c7ba368d8) )
+
+ ROM_REGION16_LE( 0x40000, "ipl", 0 )
+ ROM_LOAD16_BYTE( "1", 0x00000, 0x20000, CRC(97a900cd) SHA1(1dd65080fe366f74c63456f7ecc0121252bea6e2) )
+ ROM_LOAD16_BYTE( "2", 0x00001, 0x20000, CRC(b5e61416) SHA1(55d64250cd9855405b76f9a7027f89edb27dadf1) )
+
+ ROM_REGION( 0x2000, "mcu", 0 )
+ ROM_LOAD( "89c52.bin", 0x0000, 0x2000, NO_DUMP )
+
+ ROM_REGION( 0x20000, "upd", 0 ) // upd7759 sound samples
+ ROM_LOAD( "5", 0x00000, 0x20000, CRC(1d6d1743) SHA1(df0e8d311ccaf77fb5dfc341124a11051154e79c) )
+ROM_END
+
+} // anonymous namespace
+
+
// version numbering isn't clear, rom labels don't agree with test mode display.
-GAME( 1997, gambl186, 0, gambl186, gambl186, gambl186_state, empty_init, ROT0, "EGD", "Multi Game (Versione 4.0.3 - 1.5.7, 05-FEV-99(397)) (V398?)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // Versione 4.0.3 (1.5.7), csmb15A, CSMB_0015A (IT), - 05-FEV-99(397)
-GAME( 1997, gambl186a, gambl186, gambl186, gambl186, gambl186_state, empty_init, ROT0, "EGD", "Multi Game (Versione 4.0.3 - 1.5.7, 05-FEV-99(397)) (V399?)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // same?
-GAME( 1997, gambl186b, gambl186, gambl186, gambl186, gambl186_state, empty_init, ROT0, "EGD", "Multi Game (Versione 3.8.6T - 1.5.6, 25-AUG-97) (V378?)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // Versione 3.8.6T (1.5.6), mult5_it, CSMB-0000F (IT), 25-AUG-97
+GAME( 1997, gambl186, 0, gambl186, gambl186, gambl186_state, empty_init, ROT0, "EGD", "Multi Game (Italian, Versione 4.0.3 - 1.5.7, 05-FEV-99(397)) (V398?)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // Versione 4.0.3 (1.5.7), csmb15A, CSMB_0015A (IT), - 05-FEV-99(397)
+GAME( 1997, gambl186a, gambl186, gambl186, gambl186, gambl186_state, empty_init, ROT0, "EGD", "Multi Game (Italian, Versione 4.0.3 - 1.5.7, 05-FEV-99(397)) (V399?)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // same?
+GAME( 1997, gambl186b, gambl186, gambl186, gambl186, gambl186_state, empty_init, ROT0, "EGD", "Multi Game (Italian, Versione 3.8.6T - 1.5.6, 25-AUG-97) (V378?)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // Versione 3.8.6T (1.5.6), mult5_it, CSMB-0000F (IT), 25-AUG-97
+GAME( 2000, gambl186c, gambl186, gambl186, gambl186c, gambl186_state, empty_init, ROT0, "EGD", "Multi Game (French / English, Version Soft 4.4.8T - 4.0.5, 26-OCT-00)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // Version Soft 4.4.8T (4.0.5), CSMB-0020E (HX) - hdpr-hx - Oct 26 2000 - 15:01:24
+GAME( 2000, gambl186d, gambl186, gambl186, gambl186, gambl186_state, empty_init, ROT0, "EGD", "Multi Game (English, Version Soft 4.1.2T - 1.5.7, 16-MAY-00(397))", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // Version 4.1.2T (1.5.7), carapor2, SLC_PORT_2_VII (POR) - 16-MAY-00(397)
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index fc2ea0feda8..b67d977eab0 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -14896,9 +14896,11 @@ hotpinbl // (c) 1995 Comad & New Japan System
gamate // Bit Corp Gamate
@source:gambl186.cpp
-gambl186 // unknown
-gambl186a // unknown
-gambl186b // unknown
+gambl186 // EGD
+gambl186a // EGD
+gambl186b // EGD
+gambl186c // EGD
+gambl186d // EGD
@source:gamecom.cpp
gamecom // Tiger Game.com