summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author angelosa <salese_corp_ltd@email.it>2015-05-02 19:39:46 +0200
committer angelosa <salese_corp_ltd@email.it>2015-05-02 19:39:46 +0200
commita649a95488e1fc85813dda747dc74c596496bd1c (patch)
tree860c97ca011b64c31a5ad277f5cea2b1d86eeaf0
parent1b4d3e06d8987c2801788f5ed9a8abdfe1e6eec1 (diff)
Added ROM bank to data ROM, graphics are fixed. Needs an input overhaul because coins doesn't work and by default only one game is enabled.
-rw-r--r--src/mame/drivers/gambl186.c21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/mame/drivers/gambl186.c b/src/mame/drivers/gambl186.c
index fe3c686cd65..139a5a2e569 100644
--- a/src/mame/drivers/gambl186.c
+++ b/src/mame/drivers/gambl186.c
@@ -55,15 +55,20 @@ public:
int m_comms_blocks;
bool m_comms_ack;
+ virtual void machine_start();
DECLARE_READ16_MEMBER(comms_r);
DECLARE_WRITE16_MEMBER(comms_w);
+ DECLARE_WRITE16_MEMBER(data_bank_w);
};
-
+void gambl186_state::machine_start()
+{
+ membank("data_bank")->configure_entries(0, 4, memregion("data")->base(), 0x40000);
+}
static ADDRESS_MAP_START( gambl186_map, AS_PROGRAM, 16, gambl186_state )
AM_RANGE(0x00000, 0x0ffff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0x40000, 0x4ffff) AM_ROM AM_REGION("data",0) // TODO: way bigger than this, banked?
+ AM_RANGE(0x40000, 0x7ffff) AM_ROMBANK("data_bank") // TODO: way bigger than this, banked?
AM_RANGE(0xa0000, 0xbffff) AM_DEVREADWRITE8("vga", cirrus_gd5428_device, mem_r, mem_w, 0xffff)
AM_RANGE(0xc0000, 0xfffff) AM_ROM AM_REGION("ipl",0)
ADDRESS_MAP_END
@@ -226,6 +231,13 @@ WRITE16_MEMBER(gambl186_state::comms_w)
}
}
+WRITE16_MEMBER( gambl186_state::data_bank_w)
+{
+ membank("data_bank")->set_entry(data & 3);
+ if(data & 0xfffc)
+ popmessage("warning: set %04x to data bank",data);
+}
+
static ADDRESS_MAP_START( gambl186_io, AS_IO, 16, gambl186_state )
AM_RANGE(0x03b0, 0x03bf) AM_DEVREADWRITE8("vga", cirrus_gd5428_device, port_03b0_r, port_03b0_w, 0xffff)
AM_RANGE(0x03c0, 0x03cf) AM_DEVREADWRITE8("vga", cirrus_gd5428_device, port_03c0_r, port_03c0_w, 0xffff)
@@ -241,6 +253,7 @@ static ADDRESS_MAP_START( gambl186_io, AS_IO, 16, gambl186_state )
AM_RANGE(0x0584, 0x0585) AM_READ_PORT("DSW2") AM_WRITENOP // ???
AM_RANGE(0x0600, 0x0603) AM_WRITENOP // lamps
AM_RANGE(0x0680, 0x0683) AM_READWRITE(comms_r, comms_w)
+ AM_RANGE(0x0700, 0x0701) AM_WRITE(data_bank_w)
ADDRESS_MAP_END
@@ -562,5 +575,5 @@ ROM_START( gambl186a )
ROM_END
-GAME( 1999, gambl186, 0, gambl186, gambl186, driver_device, 0, ROT0, "<unknown>", "unknown 186 based gambling game (V398)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 199?, gambl186a, gambl186, gambl186, gambl186, driver_device, 0, ROT0, "<unknown>", "unknown 186 based gambling game (V399)", GAME_NOT_WORKING | GAME_NO_SOUND )
+GAME( 1997, gambl186, 0, gambl186, gambl186, driver_device, 0, ROT0, "EGD", "Multi Game - Bingo 10 (V398)", GAME_NOT_WORKING | GAME_NO_SOUND )
+GAME( 199?, gambl186a, gambl186, gambl186, gambl186, driver_device, 0, ROT0, "EGD", "Multi Game - Bingo 10 (V399)", GAME_NOT_WORKING | GAME_NO_SOUND )