summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Dirk Best <mail@dirk-best.de>2019-04-02 01:18:04 +0200
committer Dirk Best <mail@dirk-best.de>2019-04-02 01:18:04 +0200
commit9d85fe11889216b8f007a9dbe4f455b2970f3ac8 (patch)
tree2e54d14e242e878d30a10d85deaa004d1d537f4d
parenta3a802ac0a1cab6376759845075389b961e2e1fc (diff)
ltcasino: Update and verify all dipswitches, add NVRAM
Also document service mode and update notes. The dipswitches now fully match the dipswitch menu in service mode.
-rw-r--r--src/mame/drivers/ltcasino.cpp296
1 files changed, 156 insertions, 140 deletions
diff --git a/src/mame/drivers/ltcasino.cpp b/src/mame/drivers/ltcasino.cpp
index 9d38ba05d6d..7205a0ac00e 100644
--- a/src/mame/drivers/ltcasino.cpp
+++ b/src/mame/drivers/ltcasino.cpp
@@ -3,21 +3,26 @@
/***************************************************************************
Little Casino
+ Little Casino II
Mini Vegas 4in1
- Non-Payout 'Gambling' style games.
+ Non-Payout 'Gambling' style games
TODO:
- Clocks need to be verified
+ - Timing is probably wrong, IRQ sources need to be verified
- Figure out the rest of the dipswitches
- Keyboard
- - Battery backed RAM for High Scores & Keyboard message
Notes:
- - The color versions are commonly called Little Casino II (as stickered on cabinet) - This is NOT reflected on the title screen
- - Color version of the first version is undumped (flyer exists)?
- - In v18_10_rf.bin, around 0x600 is text showing a service mode screen / dipswitch settings
- How do you activate it?
+ - To enter service mode, press buttons 2 and 4 then reset. Let go
+ of the buttons once the video test finishes. Some games also
+ enter service mode if you disable all games via the dipswitches.
+ Once in service mode, press both buttons 2 and 4 to advance to
+ next screen.
+ - The name "Little Casino II" is just reflected by a sticker on the
+ cabinet - the title screen is still "Little Casino"
+ - Color version of "Little Casino" is undumped (flyer exists)?
Mini Vegas
@@ -60,42 +65,12 @@ Other: Hitachi HD46821P 1MHz NMOS Peripheral Interface Adapter (PIA) x 2
44 pin edge connector
-Additional notes about Little Casino II v18.1 included with ROMs:
-
-DIP 1:
-^^^^^^
-1 ON = ??
-2 ON = ??
-3 ON = 2 coins 1 credit
-4 ON = 1 coin 2 credit
-5 ON = hard
-6 ON = very easy
-7 ON = no display of high scores
-8 ON = ??
-
-
-DIP 2:
-^^^^^^
-1 ON = 3 hands a credit
-
-8 = ON = starts playing by itself
-
-
-DIP 3:
-^^^^^^
-All off = game hangs after coinup. **
-
-** Same result as disabling all selectable games, that’s why it’s suggested below
- that some of port “Q” is mapped to DSW3.
-
- Notice that many dip explanations above don't match effects below, so ports and
- dipswitches might not be linearly mapped.
-
***************************************************************************/
#include "emu.h"
#include "cpu/m6502/m6502.h"
#include "machine/6821pia.h"
+#include "machine/nvram.h"
#include "sound/ay8910.h"
#include "video/tms9927.h"
#include "emupal.h"
@@ -122,6 +97,8 @@ public:
m_video_ram(*this, "video_ram"),
m_attribute_ram(*this, "attribute_ram"),
m_gfxdecode(*this, "gfxdecode"),
+ m_input_q(*this, "Q"),
+ m_input_s(*this, "S"),
m_lamps(*this, "button_%u", 0U),
m_tilemap(nullptr)
{ }
@@ -129,7 +106,7 @@ public:
void init_mv4in1();
void ltcasino(machine_config &config);
- void ltcasinn(machine_config &config);
+ void ltcasin2(machine_config &config);
void mv4in1(machine_config &config);
private:
@@ -141,19 +118,24 @@ private:
required_shared_ptr<uint8_t> m_video_ram;
required_shared_ptr<uint8_t> m_attribute_ram;
required_device<gfxdecode_device> m_gfxdecode;
+ required_ioport m_input_q;
+ required_ioport m_input_s;
output_finder<5> m_lamps;
tilemap_t *m_tilemap;
void main_map(address_map &map);
- void ltcasinn_palette(palette_device &palette) const;
+ void ltcasin2_palette(palette_device &palette) const;
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TILE_GET_INFO_MEMBER(ltcasino_tile_info);
- TILE_GET_INFO_MEMBER(ltcasinn_tile_info);
+ TILE_GET_INFO_MEMBER(ltcasin2_tile_info);
void machine_start_ltcasino();
- void machine_start_ltcasinn();
+ void machine_start_ltcasin2();
+
+ DECLARE_READ8_MEMBER(input_q_r);
+ DECLARE_READ8_MEMBER(input_s_r);
DECLARE_WRITE8_MEMBER(output_r_w);
DECLARE_WRITE8_MEMBER(output_t_w);
@@ -167,7 +149,7 @@ private:
void ltcasino_state::main_map(address_map &map)
{
map.unmap_value_high();
- map(0x0000, 0x07ff).ram();
+ map(0x0000, 0x07ff).ram().share("nvram");
map(0x8000, 0xcfff).rom();
map(0xd000, 0xd7ff).ram().share(m_video_ram);
map(0xe000, 0xe7ff).ram().share(m_attribute_ram);
@@ -184,8 +166,6 @@ void ltcasino_state::main_map(address_map &map)
// INPUT PORT DEFINITIONS
//**************************************************************************
-
-
static INPUT_PORTS_START( ltcasino )
PORT_START("COIN")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_COIN1) PORT_WRITE_LINE_DEVICE_MEMBER("pia0", pia6821_device, ca1_w)
@@ -197,41 +177,41 @@ static INPUT_PORTS_START( ltcasino )
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD3) PORT_NAME("Button 3")
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD4) PORT_NAME("Button 4")
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD5) PORT_NAME("Button 5")
- PORT_DIPNAME(0x20, 0x00, "Enable Craps") // off to enter service - likely mapped to DSW3
- PORT_DIPSETTING( 0x20, DEF_STR( Off ))
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_CUSTOM)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_CUSTOM)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_CUSTOM)
+
+ PORT_START("S")
+ PORT_DIPUNKNOWN_DIPLOC(0x01, IP_ACTIVE_LOW, "C:1")
+ PORT_DIPNAME(0x02, 0x00, "Enable Black Jack")
PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPNAME(0x40, 0x00, "Enable Poker") // off to enter service - likely mapped to DSW3
- PORT_DIPSETTING( 0x40, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x02, DEF_STR( Off ))
+ PORT_DIPLOCATION("C:2")
+ PORT_DIPNAME(0x04, 0x00, "Enable Craps")
PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPNAME(0x80, 0x00, "Enable Black Jack") // off to enter service - likely mapped to DSW3
- PORT_DIPSETTING( 0x80, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ))
+ PORT_DIPLOCATION("C:3")
+ PORT_DIPNAME(0x08, 0x00, "Enable Poker")
PORT_DIPSETTING( 0x00, DEF_STR( On ))
-
- PORT_START("S")
- PORT_DIPUNKNOWN_DIPLOC(0x01, IP_ACTIVE_LOW, "DSW3:1")
- PORT_DIPUNKNOWN_DIPLOC(0x02, IP_ACTIVE_LOW, "DSW3:2")
- PORT_DIPUNKNOWN_DIPLOC(0x04, IP_ACTIVE_LOW, "DSW3:3")
- PORT_DIPUNKNOWN_DIPLOC(0x08, IP_ACTIVE_LOW, "DSW3:4")
- PORT_DIPUNKNOWN_DIPLOC(0x10, IP_ACTIVE_LOW, "DSW3:5")
- PORT_DIPNAME(0x20, 0x00, DEF_STR( Service_Mode ))
- PORT_DIPSETTING( 0x00, DEF_STR( Off ))
- PORT_DIPSETTING( 0x20, DEF_STR( On ))
- PORT_DIPLOCATION("DSW3:6")
- PORT_DIPNAME(0x40, 0x00, "Enable Hi-Lo") // off to enter service
- PORT_DIPSETTING( 0x40, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ))
+ PORT_DIPLOCATION("C:4")
+ PORT_DIPUNKNOWN_DIPLOC(0x10, IP_ACTIVE_LOW, "C:5")
+ PORT_DIPUNUSED_DIPLOC(0x20, IP_ACTIVE_LOW, "C:6") // would enable game 5
+ PORT_DIPNAME(0x40, 0x00, "Enable Hi-Lo")
PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPLOCATION("DSW3:7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ))
+ PORT_DIPLOCATION("C:7")
PORT_DIPNAME(0x80, 0x00, DEF_STR( Demo_Sounds ))
- PORT_DIPSETTING( 0x80, DEF_STR( Off ))
PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPLOCATION("DSW3:8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ))
+ PORT_DIPLOCATION("C:8")
PORT_START("A")
- PORT_DIPNAME(0x03, 0x03, "Hands to Start")
- PORT_DIPSETTING( 0x03, "3")
- PORT_DIPSETTING( 0x02, "4")
- PORT_DIPSETTING( 0x01, "5")
+ PORT_DIPNAME(0x03, 0x03, "Hands per Game")
PORT_DIPSETTING( 0x00, "6")
+ PORT_DIPSETTING( 0x01, "5")
+ PORT_DIPSETTING( 0x02, "4")
+ PORT_DIPSETTING( 0x03, "3")
PORT_DIPLOCATION("A:1,2")
PORT_DIPNAME(0x0c, 0x0c, DEF_STR( Coinage ))
PORT_DIPSETTING( 0x00, DEF_STR( 2C_2C ))
@@ -243,15 +223,15 @@ static INPUT_PORTS_START( ltcasino )
PORT_DIPSETTING( 0x00, DEF_STR( Off ))
PORT_DIPSETTING( 0x10, DEF_STR( On )) // limits to 15 coins
PORT_DIPLOCATION("A:5")
- PORT_DIPUNKNOWN_DIPLOC(0x20, IP_ACTIVE_LOW, "A:6") // If this is LOW Little Casino II sets can reset on coin-up
+ PORT_DIPUNKNOWN_DIPLOC(0x20, IP_ACTIVE_LOW, "A:6") // coin window on ltcasin2
PORT_DIPUNKNOWN_DIPLOC(0x40, IP_ACTIVE_LOW, "A:7")
PORT_DIPNAME(0x80, 0x80, "Screen Mode")
- PORT_DIPSETTING( 0x80, "60 Hz")
- PORT_DIPSETTING( 0x00, "50 Hz")
+ PORT_DIPSETTING( 0x00, "50 Cycle")
+ PORT_DIPSETTING( 0x80, "60 Cycle")
PORT_DIPLOCATION("A:8")
PORT_START("B")
- PORT_DIPNAME(0x01, 0x01, "Show High Scores") // When it's OFF, it doesn't show or allow High Scores
+ PORT_DIPNAME(0x01, 0x01, "Topten") // toggles availability of the high score table
PORT_DIPSETTING( 0x00, DEF_STR( Off ))
PORT_DIPSETTING( 0x01, DEF_STR( On ))
PORT_DIPLOCATION("B:1")
@@ -260,17 +240,17 @@ static INPUT_PORTS_START( ltcasino )
PORT_DIPUNKNOWN_DIPLOC(0x08, IP_ACTIVE_LOW, "B:4")
PORT_DIPUNKNOWN_DIPLOC(0x10, IP_ACTIVE_LOW, "B:5")
PORT_DIPUNKNOWN_DIPLOC(0x20, IP_ACTIVE_LOW, "B:6")
- PORT_DIPNAME(0x40, 0x40, "Bonus Hand")
- PORT_DIPSETTING( 0x40, "100000 & 200000")
- PORT_DIPSETTING( 0x00, DEF_STR( None ))
+ PORT_DIPNAME(0x40, 0x40, "Free Hand")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x40, DEF_STR( On ))
PORT_DIPLOCATION("B:7")
- PORT_DIPNAME(0x80, 0x80, "Auto Play")
- PORT_DIPSETTING( 0x80, DEF_STR( Off ))
+ PORT_DIPNAME(0x80, 0x80, "Autoplay")
PORT_DIPSETTING( 0x00, DEF_STR( On ))
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ))
PORT_DIPLOCATION("B:8")
INPUT_PORTS_END
-static INPUT_PORTS_START( ltcasinn )
+static INPUT_PORTS_START( ltcasin2 )
PORT_INCLUDE(ltcasino)
PORT_MODIFY("COIN")
@@ -278,34 +258,35 @@ static INPUT_PORTS_START( ltcasinn )
PORT_MODIFY("S")
PORT_DIPNAME(0x01, 0x01, "Keyboard")
- PORT_DIPSETTING( 0x01, DEF_STR( Off ))
PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPLOCATION("DSW3:1")
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ))
+ PORT_DIPLOCATION("C:1")
+ PORT_DIPUNKNOWN_DIPLOC(0x10, IP_ACTIVE_LOW, "C:5")
PORT_DIPNAME(0x20, 0x00, "Enable Horse")
- PORT_DIPSETTING( 0x20, DEF_STR( Off ))
PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPLOCATION("DSW3:6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ))
+ PORT_DIPLOCATION("C:6")
PORT_DIPNAME(0x40, 0x00, "Enable Slots")
- PORT_DIPSETTING( 0x40, DEF_STR( Off ))
PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPLOCATION("DSW3:7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ))
+ PORT_DIPLOCATION("C:7")
PORT_MODIFY("A")
- PORT_DIPUNKNOWN_DIPLOC(0x10, IP_ACTIVE_LOW, "A:5") // Coin Limit for other sets, v18.1 always locked to 15 coins?
- PORT_DIPNAME(0x40, 0x00, "Leave On") // needs to be 0x00 or can reset on coin-up - But controls Hi-scores display??????
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPSETTING( 0x40, DEF_STR( Off ))
+ PORT_DIPUNUSED_DIPLOC(0x10, IP_ACTIVE_LOW, "A:5") // Coin Limit for other sets, v18.1 always locked to 15 coins
+ PORT_DIPNAME(0x20, 0x00, "Coin Window") // needs to be disabled or it can reset on coin-up
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x20, DEF_STR( On ))
+ PORT_DIPLOCATION("A:6")
+ PORT_DIPNAME(0x40, 0x40, "Topten") // toggles availability of the high score table
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x40, DEF_STR( On ))
PORT_DIPLOCATION("A:7")
PORT_MODIFY("B")
- PORT_DIPUNKNOWN_DIPLOC(0x01, IP_ACTIVE_LOW, "B:1") // Moves "Show High Scores" to A:7 - see about note
- PORT_DIPNAME(0x02, 0x02, "Memory Test") // tests d000 to d7ff
- PORT_DIPSETTING( 0x00, DEF_STR( Off ))
- PORT_DIPSETTING( 0x02, DEF_STR( On ))
- PORT_DIPLOCATION("B:2")
+ PORT_DIPUNKNOWN_DIPLOC(0x01, IP_ACTIVE_LOW, "B:1")
INPUT_PORTS_END
-static INPUT_PORTS_START( ltcasinna )
+static INPUT_PORTS_START( ltcasin2a )
PORT_INCLUDE(ltcasino)
PORT_MODIFY("COIN")
@@ -313,19 +294,19 @@ static INPUT_PORTS_START( ltcasinna )
PORT_MODIFY("S")
PORT_DIPNAME(0x01, 0x01, "Keyboard")
- PORT_DIPSETTING( 0x01, DEF_STR( Off ))
PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPLOCATION("DSW3:1")
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ))
+ PORT_DIPLOCATION("C:1")
PORT_DIPNAME(0x20, 0x00, "Enable Horse")
- PORT_DIPSETTING( 0x20, DEF_STR( Off ))
PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPLOCATION("DSW3:6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ))
+ PORT_DIPLOCATION("C:6")
PORT_MODIFY("A")
- PORT_DIPNAME(0x40, 0x00, "Leave On") // needs to be 0x00 or can reset on coin-up
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPSETTING( 0x40, DEF_STR( Off ))
- PORT_DIPLOCATION("A:7")
+ PORT_DIPNAME(0x20, 0x00, "Coin Window") // needs to be disabled or it can reset on coin-up
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x20, DEF_STR( On ))
+ PORT_DIPLOCATION("A:6")
PORT_MODIFY("B")
PORT_DIPNAME(0x02, 0x02, "Memory Test") // tests d000 to d7ff
@@ -337,23 +318,23 @@ INPUT_PORTS_END
static INPUT_PORTS_START( mv4in1 )
PORT_INCLUDE(ltcasino)
- PORT_MODIFY("Q")
- PORT_DIPNAME(0x20, 0x00, "Enable Dice") // must be off to enter service - likely mapped to DSW3
- PORT_DIPSETTING( 0x20, DEF_STR( Off ))
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPNAME(0x80, 0x00, "Enable 21") // must be off to enter service - likely mapped to DSW3
- PORT_DIPSETTING( 0x80, DEF_STR( Off ))
- PORT_DIPSETTING( 0x00, DEF_STR( On ))
-
PORT_MODIFY("S")
PORT_DIPNAME(0x01, 0x01, "Keyboard")
+ PORT_DIPSETTING( 0x00, DEF_STR( On ))
PORT_DIPSETTING( 0x01, DEF_STR( Off ))
+ PORT_DIPLOCATION("C:1")
+ PORT_DIPNAME(0x02, 0x00, "Enable 21")
PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPLOCATION("DSW3:1")
- PORT_DIPNAME(0x40, 0x00, "Enable Red-Dog") // must be off to enter service
- PORT_DIPSETTING( 0x40, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x02, DEF_STR( Off ))
+ PORT_DIPLOCATION("C:2")
+ PORT_DIPNAME(0x04, 0x00, "Enable Dice")
+ PORT_DIPSETTING( 0x00, DEF_STR( On ))
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ))
+ PORT_DIPLOCATION("C:3")
+ PORT_DIPNAME(0x40, 0x00, "Enable Red-Dog")
PORT_DIPSETTING( 0x00, DEF_STR( On ))
- PORT_DIPLOCATION("DSW3:7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ))
+ PORT_DIPLOCATION("C:7")
INPUT_PORTS_END
@@ -361,7 +342,7 @@ INPUT_PORTS_END
// VIDEO EMULATION
//**************************************************************************
-void ltcasino_state::ltcasinn_palette(palette_device &palette) const
+void ltcasino_state::ltcasin2_palette(palette_device &palette) const
{
for (int i = 0; i < 8; i++)
{
@@ -394,7 +375,7 @@ TILE_GET_INFO_MEMBER(ltcasino_state::ltcasino_tile_info)
SET_TILE_INFO_MEMBER(0, code, 0, 0);
}
-TILE_GET_INFO_MEMBER(ltcasino_state::ltcasinn_tile_info)
+TILE_GET_INFO_MEMBER(ltcasino_state::ltcasin2_tile_info)
{
uint16_t code = m_video_ram[tile_index];
// +1 on attribute offset otherwise glitches occurs on left side of objects?
@@ -428,7 +409,7 @@ static GFXDECODE_START( gfx_ltcasino )
GFXDECODE_ENTRY("gfx1", 0, tiles8x8_layout, 0, 1)
GFXDECODE_END
-static GFXDECODE_START( gfx_ltcasinn )
+static GFXDECODE_START( gfx_ltcasin2 )
GFXDECODE_ENTRY("gfx1", 0, tiles8x8_layout, 0, 64)
GFXDECODE_END
@@ -450,12 +431,36 @@ void ltcasino_state::machine_start_ltcasino()
m_lamps.resolve();
}
-void ltcasino_state::machine_start_ltcasinn()
+void ltcasino_state::machine_start_ltcasin2()
{
- m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ltcasino_state::ltcasinn_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
+ m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(ltcasino_state::ltcasin2_tile_info), this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_lamps.resolve();
}
+READ8_MEMBER(ltcasino_state::input_s_r)
+{
+ uint8_t data = m_input_s->read() & 0xf1;
+
+ // bit 1, 2 and 3 from input port Q bit 7, 5 and 6
+ data |= BIT(m_input_q->read(), 7) << 1;
+ data |= BIT(m_input_q->read(), 5) << 2;
+ data |= BIT(m_input_q->read(), 6) << 3;
+
+ return data;
+}
+
+READ8_MEMBER(ltcasino_state::input_q_r)
+{
+ uint8_t data = m_input_q->read() & 0x1f;
+
+ // bit 5, 6 and 7 from input port Q bit 2, 3 and 1
+ data |= BIT(m_input_s->read(), 2) << 5;
+ data |= BIT(m_input_s->read(), 3) << 6;
+ data |= BIT(m_input_s->read(), 1) << 7;
+
+ return data;
+}
+
WRITE8_MEMBER(ltcasino_state::output_r_w)
{
// 7------- unknown (toggles rapidly)
@@ -489,12 +494,14 @@ void ltcasino_state::ltcasino(machine_config &config)
M6502(config, m_maincpu, 18_MHz_XTAL/16); // clock unknown
m_maincpu->set_addrmap(AS_PROGRAM, &ltcasino_state::main_map);
+ NVRAM(config, "nvram");
+
PIA6821(config, m_pia[0], 0);
- m_pia[0]->readpa_handler().set_ioport("Q");
+ m_pia[0]->readpa_handler().set(FUNC(ltcasino_state::input_q_r));
m_pia[0]->writepb_handler().set(FUNC(ltcasino_state::output_r_w));
PIA6821(config, m_pia[1], 0);
- m_pia[1]->readpa_handler().set_ioport("S");
+ m_pia[1]->readpa_handler().set(FUNC(ltcasino_state::input_s_r));
m_pia[1]->writepb_handler().set(FUNC(ltcasino_state::output_t_w));
MCFG_MACHINE_START_OVERRIDE(ltcasino_state, ltcasino)
@@ -525,21 +532,21 @@ void ltcasino_state::ltcasino(machine_config &config)
m_ay->add_route(ALL_OUTPUTS, "mono", 0.4);
}
-void ltcasino_state::ltcasinn(machine_config &config)
+void ltcasino_state::ltcasin2(machine_config &config)
{
ltcasino(config);
- MCFG_MACHINE_START_OVERRIDE(ltcasino_state, ltcasinn)
+ MCFG_MACHINE_START_OVERRIDE(ltcasino_state, ltcasin2)
config.device_remove("palette");
- PALETTE(config, "palette", FUNC(ltcasino_state::ltcasinn_palette), 128, 8);
+ PALETTE(config, "palette", FUNC(ltcasino_state::ltcasin2_palette), 128, 8);
- m_gfxdecode->set_info(gfx_ltcasinn);
+ m_gfxdecode->set_info(gfx_ltcasin2);
}
void ltcasino_state::mv4in1(machine_config &config)
{
- ltcasinn(config);
+ ltcasin2(config);
// different XTAL
m_maincpu->set_clock(18.432_MHz_XTAL/16);
@@ -553,10 +560,12 @@ void ltcasino_state::mv4in1(machine_config &config)
// ROM DEFINITIONS
//**************************************************************************
+// Selection text: "SELECT GAME DESIRED!"
+// Games: Black Jack, Draw Poker, Craps, Hi-Lo
ROM_START( ltcasino )
ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "a", 0x8000, 0x1000, CRC(14909fee) SHA1(bf53fa65da7f013ea1ac6b4942cdfdb34ef16252) ) // Selection text: Select Game Desired!
- ROM_LOAD( "b", 0x9800, 0x0800, CRC(1473f854) SHA1(eadaec1f6d653e61458bc262945c20140f4530eb) ) // Games: Black Jack, Draw Poker, Craps & Hi-Lo
+ ROM_LOAD( "a", 0x8000, 0x1000, CRC(14909fee) SHA1(bf53fa65da7f013ea1ac6b4942cdfdb34ef16252) )
+ ROM_LOAD( "b", 0x9800, 0x0800, CRC(1473f854) SHA1(eadaec1f6d653e61458bc262945c20140f4530eb) )
ROM_LOAD( "c", 0xa800, 0x0800, CRC(7a07004b) SHA1(62bd0f3d12b7eada6fc271abea60569aca7262b0) )
ROM_LOAD( "d", 0xb800, 0x0800, CRC(5148cafc) SHA1(124039f48784bf032f612714db73fb67a216a1e7) )
ROM_LOAD( "e", 0xc800, 0x0800, CRC(5f9e103a) SHA1(b0e9ace4c3962c06e5250fac16a245dca711350f) )
@@ -566,10 +575,12 @@ ROM_START( ltcasino )
ROM_LOAD( "v", 0x0000, 0x0800, CRC(f1f75675) SHA1(8f3777e6b2a3f824f94b28669cac501ec02bbf36) )
ROM_END
+// Selection text: "PLAY YOUR FAVORITES"
+// Games: 21, Draw Poker, Dice, Red-Dog
ROM_START( mv4in1 )
ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "g.ic13", 0x8000, 0x1000, CRC(ac33bd85) SHA1(fd555f70d0a7040473d35ec38e19185671a471ea) ) // Selection text: Play Your Favorites
- ROM_LOAD( "f.ic14", 0x9000, 0x1000, CRC(f95c87d1) SHA1(df5ed53722ec55a97eabe10b0ed3f1ba32cbe55f) ) // Games: 21, Draw Poker, Dice & Red-Dog
+ ROM_LOAD( "g.ic13", 0x8000, 0x1000, CRC(ac33bd85) SHA1(fd555f70d0a7040473d35ec38e19185671a471ea) )
+ ROM_LOAD( "f.ic14", 0x9000, 0x1000, CRC(f95c87d1) SHA1(df5ed53722ec55a97eabe10b0ed3f1ba32cbe55f) )
ROM_LOAD( "e.ic15", 0xa000, 0x1000, CRC(e525fcf2) SHA1(f1ec0c514e25ec4a1caf737ff8a962c81fb2706a) )
ROM_LOAD( "d.ic16", 0xb000, 0x1000, CRC(ab34673f) SHA1(520a173a342a27b5f9d995e6f53c3a2f0f359f9e) )
ROM_LOAD( "c.ic17", 0xc000, 0x1000, CRC(e384edf4) SHA1(99042528ce2b35191248d90162ca06a1a585667c) )
@@ -579,10 +590,13 @@ ROM_START( mv4in1 )
ROM_LOAD( "a.ic19", 0x0000, 0x1000, CRC(a25c125e) SHA1(e0ba83ccddbd82a2bf52585ae0accb9192cbb00e) )
ROM_END
-ROM_START( ltcasin2 ) // board was marked version 18.1 (C)1984
+// Selection text: "PLEASE MAKE SELECTION!"
+// Games: Black Jack, Draw Poker, Craps, Slots, Horse
+// Board was marked version 18.1 (C)1984
+ROM_START( ltcasin2 )
ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "v18_10_ra.bin", 0x8000, 0x1000, CRC(f0c5cc96) SHA1(ec50918ba2a2487df70694f9e1a52d4b8d1bc7e2) ) // Selection text: Please Make Selection!
- ROM_LOAD( "v18_10_rb.bin", 0x9000, 0x1000, CRC(2ece16e4) SHA1(ef6adc45be2ecc510cd8b2e9682635066013a5e4) ) // Games: Black Jack, Draw Poker, Craps, Slots & Horse
+ ROM_LOAD( "v18_10_ra.bin", 0x8000, 0x1000, CRC(f0c5cc96) SHA1(ec50918ba2a2487df70694f9e1a52d4b8d1bc7e2) )
+ ROM_LOAD( "v18_10_rb.bin", 0x9000, 0x1000, CRC(2ece16e4) SHA1(ef6adc45be2ecc510cd8b2e9682635066013a5e4) )
ROM_LOAD( "v18_10_rc.bin", 0xa000, 0x1000, CRC(16bae5c9) SHA1(e5cb61d9dcae3c46c7139f3494d1bf981ec8821f) )
ROM_LOAD( "v18_10_rd.bin", 0xb000, 0x1000, CRC(d12f2d6b) SHA1(e3544bf6b778c21b704a01f1ed06d6517ca01604) )
ROM_LOAD( "v18_10_re.bin", 0xc000, 0x1000, CRC(2acdad10) SHA1(2732b791fea0a9d1c6e4c174739381466f2b0270) )
@@ -592,10 +606,12 @@ ROM_START( ltcasin2 ) // board was marked version 18.1 (C)1984
ROM_LOAD( "v18_10_rv.bin", 0x0000, 0x1000, CRC(7209898d) SHA1(94bd7e8c3a544429af721e9564c11cc56d7805be) )
ROM_END
+// Selection text: "PLEASE PICK YOUR POISON!"
+// Games: Black Jack, Draw Poker, Craps, Hi-Lo, Horse
ROM_START( ltcasin2a )
ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "v17_00_ra.bin", 0x8000, 0x1000, CRC(1a595442) SHA1(b8fe3e5ed2024a57187c0ce547c1bbef2429ed63) ) // Selection text: Please Pick Your Poison!
- ROM_LOAD( "v17_00_rb.bin", 0x9000, 0x1000, CRC(4f5502c1) SHA1(cd1b7c08d26fed71c45e44ebd208bd18dc262e8f) ) // Games: Black Jack, Draw Poker, Craps, Hi-Lo & Horse
+ ROM_LOAD( "v17_00_ra.bin", 0x8000, 0x1000, CRC(1a595442) SHA1(b8fe3e5ed2024a57187c0ce547c1bbef2429ed63) )
+ ROM_LOAD( "v17_00_rb.bin", 0x9000, 0x1000, CRC(4f5502c1) SHA1(cd1b7c08d26fed71c45e44ebd208bd18dc262e8f) )
ROM_LOAD( "v17_00_rc.bin", 0xa000, 0x1000, CRC(990283b8) SHA1(8a3fe5be8381894b8e8dd14c7d42190e60a25600) )
ROM_LOAD( "v17_00_rd.bin", 0xb000, 0x1000, CRC(884f39dc) SHA1(fe149faf118279205e82760c5052cefb88a2f5be) )
ROM_LOAD( "v17_00_re.bin", 0xc000, 0x1000, CRC(fae38204) SHA1(e5908734cee0a89d873ab3761ded285f8ae138d3) )
@@ -612,6 +628,6 @@ ROM_END
// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROTATION COMPANY FULLNAME FLAGS
GAMEL( 1982, ltcasino, 0, ltcasino, ltcasino, ltcasino_state, empty_init, ROT0, "Digital Controls Inc.", "Little Casino", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK, layout_ltcasino )
-GAMEL( 1983, mv4in1, ltcasino, mv4in1, mv4in1, ltcasino_state, init_mv4in1, ROT0, "Entertainment Enterprises, Ltd.", "Mini Vegas 4in1", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK, layout_ltcasinn )
-GAMEL( 1984, ltcasin2, 0, ltcasinn, ltcasinn, ltcasino_state, empty_init, ROT0, "Digital Controls Inc.", "Little Casino II v18.1", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK, layout_ltcasinn )
-GAMEL( 1984, ltcasin2a, ltcasin2, ltcasinn, ltcasinna, ltcasino_state, empty_init, ROT0, "Digital Controls Inc.", "Little Casino II v17.0", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK, layout_ltcasinn )
+GAMEL( 1983, mv4in1, 0, mv4in1, mv4in1, ltcasino_state, init_mv4in1, ROT0, "Entertainment Enterprises, Ltd.", "Mini Vegas 4in1", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK, layout_ltcasinn )
+GAMEL( 1984, ltcasin2, 0, ltcasin2, ltcasin2, ltcasino_state, empty_init, ROT0, "Digital Controls Inc.", "Little Casino II v18.1", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK, layout_ltcasinn )
+GAMEL( 1984, ltcasin2a, ltcasin2, ltcasin2, ltcasin2a, ltcasino_state, empty_init, ROT0, "Digital Controls Inc.", "Little Casino II v17.0", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK, layout_ltcasinn )