summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Roberto Fresca <robbie@robertofresca.com>2025-08-30 01:38:58 +0200
committer Roberto Fresca <robbie@robertofresca.com>2025-08-30 01:38:58 +0200
commit821acc6f88b6e8f55a60f272221bb9fd59573688 (patch)
tree4969217cbcc7a889ea6c39b46636f4258fa2eafc
parent8125894390f2645cb0bfc397775410e7a2b36b5b (diff)
goldstar.cpp driver improvements. [Roberto Fresca, Grull Osgo]
- Fixed Joker Master title tilemap/scroll bug. - Fixed cmv4 hopper DIP switches polarity. - Added Animal House button-lamps control panel. - Added hopper support to the following sets: roypok96, roypok96a, roypok96b, nfb96se, nfb96sea, nfb96seb, nfb96sec, carb2003, and noved. - Added remaining lucky8t (A900) DIP switches. [Ioannis Bampoulas]
-rw-r--r--src/mame/igs/goldstar.cpp92
-rw-r--r--src/mame/layout/animalhs.lay256
2 files changed, 314 insertions, 34 deletions
diff --git a/src/mame/igs/goldstar.cpp b/src/mame/igs/goldstar.cpp
index 9f62d7bf119..67c4751c43d 100644
--- a/src/mame/igs/goldstar.cpp
+++ b/src/mame/igs/goldstar.cpp
@@ -250,6 +250,7 @@
#include <algorithm>
+#include "animalhs.lh"
#include "bingowng.lh"
#include "cherryb3.lh"
#include "chrygld.lh"
@@ -905,9 +906,9 @@ void goldstar_state::video_start()
void cmaster_state::video_start()
{
- m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmaster_state::get_reel_tile_info<0>)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
- m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmaster_state::get_reel_tile_info<1>)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
- m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmaster_state::get_reel_tile_info<2>)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
+ m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmaster_state::get_reel_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmaster_state::get_reel_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmaster_state::get_reel_tile_info<2>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
m_reel_tilemap[0]->set_scroll_cols(64);
m_reel_tilemap[1]->set_scroll_cols(64);
@@ -916,7 +917,7 @@ void cmaster_state::video_start()
m_cmaster_girl_num = 0;
m_cmaster_girl_pal = 0;
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmaster_state::get_cherrym_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmaster_state::get_cherrym_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
m_enable_reg = 0x0b;
@@ -964,7 +965,8 @@ uint32_t goldstar_state::screen_update_goldstar(screen_device &screen, bitmap_rg
for (int i = 0; i < 64; i++)
m_bg_tilemap->set_scrolly(i, m_bg_scroll[i]);
- m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
+ const rectangle bg_visible(0*8, (63)*8-1, 8*8, (31)*8-1); // top clipped for jkrmast
+ m_bg_tilemap->draw(screen, bitmap, bg_visible, 0, 0);
}
if (m_enable_reg & 0x08)
@@ -1159,9 +1161,9 @@ TILE_GET_INFO_MEMBER(cmast97_state::get_cmast97_bg_tile_info)
void cmast97_state::video_start()
{
- m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmast97_state::get_reel_tile_info<0>)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
- m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmast97_state::get_reel_tile_info<1>)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
- m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmast97_state::get_reel_tile_info<2>)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
+ m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmast97_state::get_reel_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmast97_state::get_reel_tile_info<1>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
+ m_reel_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmast97_state::get_reel_tile_info<2>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
m_reel_tilemap[0]->set_scroll_cols(64);
m_reel_tilemap[1]->set_scroll_cols(64);
@@ -1174,11 +1176,11 @@ void cmast97_state::video_start()
m_cmaster_girl_num = 0;
m_cmaster_girl_pal = 0;
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmast97_state::get_cherrym_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmast97_state::get_cherrym_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_scrolly(0, -16);
- m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmast97_state::get_cmast97_bg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64, 32);
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(cmast97_state::get_cmast97_bg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
}
void cmast97_state::cmast97_palette_init(palette_device &palette) const
@@ -1237,11 +1239,11 @@ TILE_GET_INFO_MEMBER(wingco_state::get_magical_fg_tile_info)
VIDEO_START_MEMBER(wingco_state, bingowng)
{
- m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wingco_state::get_reel_tile_info<0>)), TILEMAP_SCAN_ROWS, 8,32, 64, 8);
+ m_reel_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wingco_state::get_reel_tile_info<0>)), TILEMAP_SCAN_ROWS, 8, 32, 64, 8);
m_reel_tilemap[0]->set_scroll_cols(64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wingco_state::get_goldstar_fg_tile_info)), TILEMAP_SCAN_ROWS, 8,8, 64, 32);
+ m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(wingco_state::get_goldstar_fg_tile_info)), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_fg_tilemap->set_transparent_pen(0);
// is there an enable reg for this game?
@@ -3298,11 +3300,11 @@ static INPUT_PORTS_START( cmv4_dsw2 )
PORT_DIPSETTING( 0x02, "6" )
PORT_DIPSETTING( 0x01, "7" )
PORT_DIPSETTING( 0x00, "8 (Highest)" )
- PORT_DIPNAME( 0x18, 0x00, "Hopper Limit" ) PORT_DIPLOCATION("DSW2:4,5")
- PORT_DIPSETTING( 0x18, "300" )
- PORT_DIPSETTING( 0x10, "500" )
- PORT_DIPSETTING( 0x08, "1000" )
- PORT_DIPSETTING( 0x00, "Unlimited" )
+ PORT_DIPNAME( 0x18, 0x18, "Hopper Limit" ) PORT_DIPLOCATION("DSW2:4,5")
+ PORT_DIPSETTING( 0x18, "Unlimited" )
+ PORT_DIPSETTING( 0x10, "1000" )
+ PORT_DIPSETTING( 0x08, "500" )
+ PORT_DIPSETTING( 0x00, "300" )
PORT_DIPNAME( 0x20, 0x20, "100+ Odds Sound" ) PORT_DIPLOCATION("DSW2:6")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x20, DEF_STR( On ) )
@@ -5623,8 +5625,11 @@ static INPUT_PORTS_START( lucky8t )
PORT_DIPNAME( 0x01, 0x01, "Max Bet" ) PORT_DIPLOCATION("DSW1:1")
PORT_DIPSETTING( 0x01, "64" )
PORT_DIPSETTING( 0x00, "120" )
- PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "DSW1:2")
- PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "DSW1:3")
+ PORT_DIPNAME( 0x06, 0x06, "Bonus / Game Difficulty" ) PORT_DIPLOCATION("DSW1:2,3")
+ PORT_DIPSETTING( 0x00, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Medium ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x06, DEF_STR( Hardest ) )
PORT_DIPNAME( 0x18, 0x18, "Double-Up Game Pay Rate" ) PORT_DIPLOCATION("DSW1:4,5") // OK
PORT_DIPSETTING( 0x18, "60%" )
PORT_DIPSETTING( 0x10, "70%" )
@@ -5633,8 +5638,11 @@ static INPUT_PORTS_START( lucky8t )
PORT_DIPNAME( 0x20, 0x20, "Reel Speed" ) PORT_DIPLOCATION("DSW1:6")
PORT_DIPSETTING( 0x20, "Normal" )
PORT_DIPSETTING( 0x00, "Fast" )
- PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "DSW1:7")
- PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "DSW1:8")
+ PORT_DIPNAME( 0xc0, 0xc0, "JP Game Difficulty" ) PORT_DIPLOCATION("DSW1:7,8")
+ PORT_DIPSETTING( 0x00, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Medium ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0xc0, DEF_STR( Hardest ) )
PORT_MODIFY("DSW2")
PORT_DIPNAME( 0x03, 0x01, "Main Game Pay Rate" ) PORT_DIPLOCATION("DSW2:1,2") // OK
@@ -5645,35 +5653,47 @@ static INPUT_PORTS_START( lucky8t )
PORT_DIPNAME( 0x04, 0x04, "Double Up Game" ) PORT_DIPLOCATION("DSW2:3") // OK, use stop buttons to play
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
- PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "DSW2:4")
+ PORT_DIPNAME( 0x08, 0x08, "Seven Crowns Difficulty" ) PORT_DIPLOCATION("DSW2:4")
+ PORT_DIPSETTING( 0x00, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Hard ) )
PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "DSW2:5")
PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "DSW2:6")
PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "DSW2:7")
PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "DSW2:8")
PORT_MODIFY("DSW3")
- PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "DSW3:1")
- PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "DSW3:2")
- PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "DSW3:3")
+ PORT_DIPNAME( 0x03, 0x03, "Coin Value" ) PORT_DIPLOCATION("DSW3:1,2")
+ PORT_DIPSETTING( 0x00, "50" )
+ PORT_DIPSETTING( 0x03, "100" )
+ PORT_DIPSETTING( 0x01, "200" )
+ PORT_DIPSETTING( 0x02, "300" )
+ PORT_DIPNAME( 0x04, 0x04, "Bell Bonus Difficulty" ) PORT_DIPLOCATION("DSW3:3")
+ PORT_DIPSETTING( 0x00, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Hard ) )
PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "DSW3:4")
PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "DSW3:5")
PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "DSW3:6")
PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "DSW3:7")
- PORT_DIPNAME( 0x80, 0x80, "Minimum Bet" ) PORT_DIPLOCATION("DSW3:8") // conditional to DSW1-1 max bet
+ PORT_DIPNAME( 0x80, 0x80, "Minimum Bet" ) PORT_DIPLOCATION("DSW3:8") // conditional to DSW1-1 max bet
PORT_DIPSETTING( 0x80, "16" ) PORT_CONDITION("DSW1", 0x01, NOTEQUALS, 0x00) // for max 64
PORT_DIPSETTING( 0x00, "32" ) PORT_CONDITION("DSW1", 0x01, NOTEQUALS, 0x00) // for max 64
PORT_DIPSETTING( 0x80, "32" ) PORT_CONDITION("DSW1", 0x01, EQUALS, 0x00) // for max 120
PORT_DIPSETTING( 0x00, "40" ) PORT_CONDITION("DSW1", 0x01, EQUALS, 0x00) // for max 120
PORT_MODIFY("DSW4")
- PORT_DIPNAME( 0x03, 0x03, "Key In Rate" ) PORT_DIPLOCATION("DSW4:1,2") // OK
+ PORT_DIPNAME( 0x03, 0x03, "Key In Rate" ) PORT_DIPLOCATION("DSW4:1,2") // OK
PORT_DIPSETTING( 0x03, "100" )
PORT_DIPSETTING( 0x00, "500" )
PORT_DIPSETTING( 0x02, "1000" )
PORT_DIPSETTING( 0x01, "3000" )
- PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "DSW4:3")
- PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "DSW4:4")
- PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "DSW4:5")
+ PORT_DIPNAME( 0x0c, 0x0c, "Big Jackpot Difficulty" ) PORT_DIPLOCATION("DSW4:3,4")
+ PORT_DIPSETTING( 0x00, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Medium ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x0c, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0x10, 0x00, "Tuning (Difficulty)" ) PORT_DIPLOCATION("DSW4:5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) ) // manual recommends this ON
PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "DSW4:6")
PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "DSW4:7")
PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "DSW4:8")
@@ -7541,10 +7561,10 @@ static INPUT_PORTS_START( roypok96 )
PORT_START("IN2")
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( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", FUNC(ticket_dispenser_device::line_r))
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) // Hopper presence detection
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) PORT_NAME("Key Out / Attendant")
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Hopper")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Settings")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Stats")
@@ -8019,6 +8039,10 @@ static INPUT_PORTS_START( nfb96bl )
PORT_INCLUDE( cmv4_service )
+ PORT_MODIFY("IN2")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", FUNC(ticket_dispenser_device::line_r))
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_CUSTOM ) // Hopper presence detection
+
PORT_START("DSW1")
PORT_DIPNAME( 0x07, 0x03, "Game Rate" ) PORT_DIPLOCATION("DSW1:1,2,3") // OK
PORT_DIPSETTING( 0x07, "Level 1 - 90%" )
@@ -24937,7 +24961,7 @@ GAMEL( 199?, chryglda, ncb3, cb3e, chrygld, cb3_state, init_cb3e
GAME( 1994, chryangla, ncb3, chryangla,ncb3, cb3_state, init_chryangl, ROT0, "bootleg (G.C.I.)", "Cherry Angel (encrypted, W-4 hardware)", MACHINE_NOT_WORKING ) // DYNA CB3 V1.40 string, decrypted but only test screens work
GAME( 1991, eldoraddoa, eldoradd, eldoraddoa,animalhs,cmaster_state, init_eldoraddoa,ROT0, "Dyna", "El Dorado (V1.4D)", MACHINE_NOT_WORKING | MACHINE_WRONG_COLORS ) // improve GFX drawing, correct palette decode, I/O, etc
-GAME( 1991, animalhs, 0, animalhs, animalhs, cmaster_state, init_animalhs, ROT0, "Suns Co Ltd.", "Animal House (V1.0, set 1)", MACHINE_NOT_WORKING ) // improve GFX drawing, correct palette decode, I/O, etc
+GAMEL( 1991, animalhs, 0, animalhs, animalhs, cmaster_state, init_animalhs, ROT0, "Suns Co Ltd.", "Animal House (V1.0, set 1)", 0, layout_animalhs ) // improve GFX drawing, correct palette decode
GAME( 1991, animalhsa, animalhs, animalhs, animalhs, cmaster_state, init_animalhs, ROT0, "Suns Co Ltd.", "Animal House (V1.0, set 2)", MACHINE_NOT_WORKING ) // improve GFX drawing, correct palette decode, I/O, etc
// looks like a hack of Cherry Bonus 3
diff --git a/src/mame/layout/animalhs.lay b/src/mame/layout/animalhs.lay
new file mode 100644
index 00000000000..86d5f3278e0
--- /dev/null
+++ b/src/mame/layout/animalhs.lay
@@ -0,0 +1,256 @@
+<?xml version="1.0"?>
+<!--
+license:CC0-1.0
+copyright-holders: Roberto Fresca
+
+ Animal House control panel
+
+-->
+<mamelayout version="2">
+
+<!-- define button-lamps -->
+
+ <element name="stop1" defstate="0">
+ <rect state="1">
+ <color red="1.0" green="0.0" blue="0.0" />
+ </rect>
+ <rect state="0">
+ <color red="0.20" green="0.0" blue="0.0" />
+ </rect>
+ <text string="STOP 1">
+ <color red="0.0" green="0.0" blue="0.0" />
+ <bounds x="0" y="0.1" width="1" height="0.4" />
+ </text>
+ <text string="DOUBLE">
+ <color red="0.0" green="0.0" blue="0.0" />
+ <bounds x="0" y="0.5" width="1" height="0.4" />
+ </text>
+ </element>
+
+ <element name="stop2" defstate="0">
+ <rect state="1">
+ <color red="1.0" green="0.0" blue="0.0" />
+ </rect>
+ <rect state="0">
+ <color red="0.20" green="0.0" blue="0.0" />
+ </rect>
+ <text string="STOP 2">
+ <color red="0.0" green="0.0" blue="0.0" />
+ <bounds x="0" y="0.1" width="1" height="0.4" />
+ </text>
+ <text string="BIG">
+ <color red="0.0" green="0.0" blue="0.0" />
+ <bounds x="0" y="0.5" width="1" height="0.4" />
+ </text>
+ </element>
+
+ <element name="stop3" defstate="0">
+ <rect state="1">
+ <color red="1.0" green="0.0" blue="0.0" />
+ </rect>
+ <rect state="0">
+ <color red="0.20" green="0.0" blue="0.0" />
+ </rect>
+ <text string="STOP 3">
+ <color red="0.0" green="0.0" blue="0.0" />
+ <bounds x="0" y="0.1" width="1" height="0.4" />
+ </text>
+ <text string="SMALL/INFO">
+ <color red="0.0" green="0.0" blue="0.0" />
+ <bounds x="0" y="0.5" width="1" height="0.4" />
+ </text>
+ </element>
+
+ <element name="stopall" defstate="0">
+ <rect state="1">
+ <color red="1.0" green="0.0" blue="0.0" />
+ </rect>
+ <rect state="0">
+ <color red="0.20" green="0.0" blue="0.0" />
+ </rect>
+ <text string="STOP ALL">
+ <color red="0.0" green="0.0" blue="0.0" />
+ <bounds x="0" y="0.1" width="1" height="0.4" />
+ </text>
+ <text string="TAKE">
+ <color red="0.0" green="0.0" blue="0.0" />
+ <bounds x="0" y="0.5" width="1" height="0.4" />
+ </text>
+ </element>
+
+ <element name="bet" defstate="0">
+ <rect state="1">
+ <color red="1.0" green="0.0" blue="1.0" />
+ </rect>
+ <rect state="0">
+ <color red="0.20" green="0.0" blue="0.15" />
+ </rect>
+ <text string="BET">
+ <color red="0.0" green="0.0" blue="0.0" />
+ <bounds x="0" y="0.3" width="1" height="0.4" />
+ </text>
+ </element>
+
+ <element name="start" defstate="0">
+ <rect state="1">
+ <color red="0.0" green="1.0" blue="0.0" />
+ </rect>
+ <rect state="0">
+ <color red="0.0" green="0.20" blue="0.0" />
+ </rect>
+ <text string="START">
+ <color red="0.0" green="0.0" blue="0.0" />
+ <bounds x="0" y="0.3" width="1" height="0.4" />
+ </text>
+ </element>
+
+
+
+<!-- define basic elements -->
+
+ <element name="cpanel">
+ <rect>
+ <color red="0.0" green="0.0" blue="0.0" />
+ </rect>
+ </element>
+
+ <element name="bet_b" defstate="0">
+ <rect state="1">
+ <color red="0.7" green="0.0" blue="0.7" />
+ </rect>
+ <rect state="0">
+ <color red="0.1" green="0.0" blue="0.1" />
+ </rect>
+ </element>
+
+ <element name="stop_b" defstate="0">
+ <rect state="1">
+ <color red="0.7" green="0.0" blue="0.0" />
+ </rect>
+ <rect state="0">
+ <color red="0.1" green="0.0" blue="0.0" />
+ </rect>
+ </element>
+
+ <element name="start_b" defstate="0">
+ <rect state="1">
+ <color red="0.0" green="0.7" blue="0.0" />
+ </rect>
+ <rect state="0">
+ <color red="0.0" green="0.1" blue="0.0" />
+ </rect>
+ </element>
+
+
+
+<!-- define cpanel degradee elements -->
+
+
+ <element name="cpanel1">
+ <rect>
+ <color red="0.20" green="0.20" blue="0.20" />
+ </rect>
+ </element>
+
+ <element name="cpanel2">
+ <rect>
+ <color red="0.15" green="0.15" blue="0.15" />
+ </rect>
+ </element>
+
+ <element name="cpanel3">
+ <rect>
+ <color red="0.10" green="0.10" blue="0.10" />
+ </rect>
+ </element>
+
+ <element name="cpanel4">
+ <rect>
+ <color red="0.05" green="0.05" blue="0.05" />
+ </rect>
+ </element>
+
+
+<!-- define background -->
+
+ <view name="Button Lamps">
+ <screen index="0">
+ <bounds left="0" top="0" right="4" bottom="3" />
+ </screen>
+
+ <element ref="cpanel">
+ <bounds left="0" right="4" top="3" bottom="3.40" />
+ </element>
+
+ <element ref="cpanel1">
+ <bounds left="0" right="4" top="3.01" bottom="3.39" />
+ </element>
+
+ <element ref="cpanel2">
+ <bounds left="0" right="4" top="3.02" bottom="3.38" />
+ </element>
+
+ <element ref="cpanel3">
+ <bounds left="0" right="4" top="3.03" bottom="3.37" />
+ </element>
+
+ <element ref="cpanel4">
+ <bounds left="0" right="4" top="3.04" bottom="3.36" />
+ </element>
+
+ <element ref="cpanel">
+ <bounds left="0" right="4" top="3.05" bottom="3.35" />
+ </element>
+
+
+<!-- define lamps -->
+
+ <element name="lamp11" ref="bet_b" inputtag="IN0" inputmask="0x20">
+ <bounds x="0.05" y="3.08" width="0.40" height="0.24" />
+ </element>
+ <element name="lamp11" ref="bet" inputtag="IN0" inputmask="0x80">
+ <bounds x="0.07" y="3.10" width="0.36" height="0.20" />
+ </element>
+
+
+ <element name="lamp9" ref="stop_b" inputtag="IN0" inputmask="0x08">
+ <bounds x="0.75" y="3.08" width="0.50" height="0.24" />
+ </element>
+ <element name="lamp9" ref="stop1" inputtag="IN0" inputmask="0x08">
+ <bounds x="0.77" y="3.10" width="0.46" height="0.20" />
+ </element>
+
+
+ <element name="lamp8" ref="stop_b" inputtag="IN0" inputmask="0x04">
+ <bounds x="1.4" y="3.08" width="0.50" height="0.24" />
+ </element>
+ <element name="lamp8" ref="stop2" inputtag="IN0" inputmask="0x04">
+ <bounds x="1.42" y="3.10" width="0.46" height="0.20" />
+ </element>
+
+
+ <element name="lamp12" ref="stop_b" inputtag="IN0" inputmask="0x40">
+ <bounds x="2.05" y="3.08" width="0.50" height="0.24" />
+ </element>
+ <element name="lamp12" ref="stop3" inputtag="IN0" inputmask="0x40">
+ <bounds x="2.07" y="3.10" width="0.46" height="0.20" />
+ </element>
+
+
+ <element name="lamp10" ref="stop_b" inputtag="IN0" inputmask="0x10">
+ <bounds x="2.7" y="3.08" width="0.50" height="0.24" />
+ </element>
+ <element name="lamp10" ref="stopall" inputtag="IN0" inputmask="0x10">
+ <bounds x="2.72" y="3.10" width="0.46" height="0.20" />
+ </element>
+
+
+ <element name="lamp13" ref="start_b" inputtag="IN0" inputmask="0x80">
+ <bounds x="3.45" y="3.08" width="0.50" height="0.24" />
+ </element>
+ <element name="lamp13" ref="start" inputtag="IN0" inputmask="0x80">
+ <bounds x="3.47" y="3.10" width="0.46" height="0.20" />
+ </element>
+
+ </view>
+</mamelayout>