-igs/igs_m027.cpp: Hooked up I/O for Fruit Paradise and added layout for (Ocean|Fruit) Paradise.

-emu/ioport.cpp: Made DIP switch location validity errors more precise.
This commit is contained in:
Vas Crabb 2024-09-10 16:08:22 +10:00
parent 51e67286b5
commit 09c80cf794
3 changed files with 320 additions and 76 deletions

View File

@ -1414,12 +1414,11 @@ void ioport_field::expand_diplocation(const char *location, std::string &errorbu
}
// then verify the number of bits in the mask matches
ioport_value temp;
int bits;
for (bits = 0, temp = m_mask; temp != 0 && bits < 32; bits++)
temp &= temp - 1;
if (bits != entries)
int const bits = population_count_32(m_mask);
if (bits > entries)
errorbuf.append(string_format("Switch location '%s' does not describe enough bits for mask %X\n", location, m_mask));
else if (bits < entries)
errorbuf.append(string_format("Switch location '%s' describes too many bits for mask %X\n", location, m_mask));
}

View File

@ -47,6 +47,7 @@
#include <algorithm>
#include "jking02.lh"
#include "oceanpar.lh"
namespace {
@ -353,6 +354,40 @@ INPUT_PORTS_START( mahjong_joy )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
INPUT_PORTS_END
INPUT_PORTS_START( three_reel )
PORT_START("PORTB")
PORT_BIT( 0x03, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Call Attendant")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("PORTC")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN )
PORT_BIT( 0x1e, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", hopper_device, line_r) // HPSW
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("PLAYER")
PORT_BIT( 0x00000007, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_COIN1 ) // COINA
PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_SLOT_STOP_ALL ) PORT_NAME("Stop All Reels / Big")
PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_SLOT_STOP1 ) PORT_NAME("Stop Reel 1 / Double Up")
PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_SLOT_STOP2 ) PORT_NAME("Stop Reel 2 / Small")
PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_SLOT_STOP3 ) PORT_NAME("Stop Reel 3 / Take Score")
PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) PORT_NAME("Play")
PORT_BIT( 0x00003800, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Ticket") // TICKET
PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("ticket", ticket_dispenser_device, line_r) // TKSW
PORT_BIT( 0x00010000, IP_ACTIVE_LOW, IPT_COIN2 ) // COINC
PORT_BIT( 0xfffe0000, IP_ACTIVE_LOW, IPT_UNKNOWN )
INPUT_PORTS_END
INPUT_PORTS_START( jking02 )
PORT_START("DSW1")
PORT_DIPNAME( 0x1f, 0x1f, "ID Number") PORT_DIPLOCATION("SW1:1,2,3,4,5")
@ -789,9 +824,9 @@ INPUT_PORTS_START( mgzza )
INPUT_PORTS_END
INPUT_PORTS_START( oceanpara )
PORT_INCLUDE( base )
PORT_INCLUDE( three_reel )
PORT_MODIFY("DSW1")
PORT_START("DSW1")
PORT_DIPNAME( 0x01, 0x01, DEF_STR(Demo_Sounds) ) PORT_DIPLOCATION("SW1:1")
PORT_DIPSETTING( 0x00, DEF_STR(Off) )
PORT_DIPSETTING( 0x01, DEF_STR(On) )
@ -816,37 +851,27 @@ INPUT_PORTS_START( oceanpara )
PORT_DIPSETTING( 0x40, "Symbol" )
PORT_DIPSETTING( 0x00, "Symbol" )
PORT_MODIFY("DSW2")
PORT_START("DSW2")
PORT_DIPNAME( 0x01, 0x01, "Chance Level" ) PORT_DIPLOCATION("SW2:1")
PORT_DIPSETTING( 0x01, DEF_STR(Low) )
PORT_DIPSETTING( 0x00, DEF_STR(High) )
PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW2:2" )
PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW2:3" )
PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW2:4" )
PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW2:5" )
PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW2:6" )
PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW2:7" )
PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW2:8" )
PORT_MODIFY("PORTB")
PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW )
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK )
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT )
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Call Attendant")
PORT_MODIFY("PORTC")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_KEYIN )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", hopper_device, line_r) // HPSW
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT )
PORT_START("PLAYER")
PORT_BIT( 0x00000007, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_COIN1 ) // COINA
PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_SLOT_STOP_ALL ) PORT_NAME("Stop All Reels / Big")
PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_SLOT_STOP1 ) PORT_NAME("Stop Reel 1 / Double Up")
PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_SLOT_STOP2 ) PORT_NAME("Stop Reel 2 / Small")
PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_SLOT_STOP3 ) PORT_NAME("Stop Reel 3 / Take Score")
PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) PORT_NAME("Play")
PORT_BIT( 0x00003800, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Ticket") // TICKET
PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("ticket", ticket_dispenser_device, line_r) // TKSW
PORT_BIT( 0x00010000, IP_ACTIVE_LOW, IPT_COIN2 ) // COINC
PORT_BIT( 0xfffe0000, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("DSW3")
PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:1" )
PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:2" )
PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW3:3" )
PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW3:4" )
PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW3:5" )
PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW3:6" )
PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW3:7" )
PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW3:8" )
INPUT_PORTS_END
INPUT_PORTS_START( oceanpar )
@ -863,6 +888,18 @@ INPUT_PORTS_START( oceanpar )
PORT_DIPSETTING( 0x00, DEF_STR(Yes) )
INPUT_PORTS_END
INPUT_PORTS_START( fruitpara )
PORT_INCLUDE( oceanpara )
PORT_MODIFY("DSW2")
PORT_DIPNAME( 0x02, 0x02, "Score Box" ) PORT_DIPLOCATION("SW2:2")
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, "Play Score" ) PORT_DIPLOCATION("SW2:3")
PORT_DIPSETTING( 0x04, DEF_STR(No) )
PORT_DIPSETTING( 0x00, DEF_STR(Yes) )
INPUT_PORTS_END
INPUT_PORTS_START( amazonia )
PORT_INCLUDE(base)
@ -1007,7 +1044,7 @@ void igs_m027_state::lamps_w(u8 data)
// | 3 | bet | | bet |
// | 4 | stop 1/take | | stop 3/take |
// | 5 | stop 2/double | | stop 1/double |
// | 6 | stop all | | stop all/big |
// | 6 | stop all/big | | stop all/big |
// | 7 | | | |
// | 8 | | | |
// | 9 | | bet | |
@ -1312,42 +1349,6 @@ IGS PCB-0331-02-FG
***************************************************************************/
ROM_START( fruitpar )
ROM_REGION( 0x04000, "maincpu", 0 )
// Internal ROM of IGS027A type G ARM based MCU
ROM_LOAD( "q5_027a.bin", 0x00000, 0x4000, CRC(df756ac3) SHA1(5b5d2a7f6363260166e3411d1571056cc30a5e56) )
ROM_REGION32_LE( 0x80000, "user1", 0 ) // external ARM data / prg
ROM_LOAD( "fruit_paradise_v214.u23", 0x00000, 0x80000, CRC(e37bc4e0) SHA1(f5580e6007dc60f32efd3b3e7e64c5ee446ede8a) )
ROM_REGION( 0x080000, "igs017_igs031:tilemaps", 0 )
ROM_LOAD16_WORD_SWAP( "paradise_text.u12", 0x000000, 0x080000, CRC(bdaa4407) SHA1(845eead0902c81290c2b5d7543ac9dfda375fdd1) )
ROM_REGION( 0x400000, "igs017_igs031:sprites", 0 )
ROM_LOAD( "igs_m4101.u13", 0x000000, 0x400000, CRC(84899398) SHA1(badac65af6e03c490798f4368eb2b15db8c590d0) ) // FIXED BITS (xxxxxxx0xxxxxxxx)
ROM_REGION( 0x80000, "oki", 0 )
ROM_LOAD( "igs_w4102.u28", 0x00000, 0x80000, CRC(558cab25) SHA1(0280b37a14589329f0385c048e5742b9e89bd587) )
ROM_END
ROM_START( fruitpara )
ROM_REGION( 0x04000, "maincpu", 0 )
// Internal ROM of IGS027A type G ARM based MCU
ROM_LOAD( "q5_027a.bin", 0x00000, 0x4000, CRC(df756ac3) SHA1(5b5d2a7f6363260166e3411d1571056cc30a5e56) )
ROM_REGION32_LE( 0x80000, "user1", ROMREGION_ERASEFF )
ROM_LOAD( "f paradise v-206us.u23", 0x00000, 0x80000, CRC(ee2fa627) SHA1(6e964213e17d7db021ec63c7a1af08f863483369) )
ROM_REGION( 0x080000, "igs017_igs031:tilemaps", 0 )
ROM_LOAD16_WORD_SWAP( "paradise_text.u12", 0x000000, 0x080000, CRC(bdaa4407) SHA1(845eead0902c81290c2b5d7543ac9dfda375fdd1) )
ROM_REGION( 0x400000, "igs017_igs031:sprites", 0 )
ROM_LOAD( "igs_m4101.u13", 0x000000, 0x400000, CRC(84899398) SHA1(badac65af6e03c490798f4368eb2b15db8c590d0) ) // FIXED BITS (xxxxxxx0xxxxxxxx)
ROM_REGION( 0x80000, "oki", 0 )
ROM_LOAD( "igs_w4102.u28", 0x00000, 0x80000, CRC(558cab25) SHA1(0280b37a14589329f0385c048e5742b9e89bd587) )
ROM_END
ROM_START( oceanpar ) // IGS PCB-0331-02-FG
ROM_REGION( 0x04000, "maincpu", 0 )
// Internal ROM of IGS027A type G ARM based MCU
@ -1384,6 +1385,42 @@ ROM_START( oceanpara ) // IGS PCB-0331-01-FG
ROM_LOAD( "igs_w4102.u28", 0x00000, 0x80000, CRC(558cab25) SHA1(0280b37a14589329f0385c048e5742b9e89bd587) ) // same as fruitpar
ROM_END
ROM_START( fruitpar ) // IGS PCB-0331-02-FG
ROM_REGION( 0x04000, "maincpu", 0 )
// Internal ROM of IGS027A type G ARM based MCU
ROM_LOAD( "q5_027a.bin", 0x00000, 0x4000, CRC(df756ac3) SHA1(5b5d2a7f6363260166e3411d1571056cc30a5e56) )
ROM_REGION32_LE( 0x80000, "user1", 0 ) // external ARM data / prg
ROM_LOAD( "fruit_paradise_v214.u23", 0x00000, 0x80000, CRC(e37bc4e0) SHA1(f5580e6007dc60f32efd3b3e7e64c5ee446ede8a) )
ROM_REGION( 0x080000, "igs017_igs031:tilemaps", 0 )
ROM_LOAD16_WORD_SWAP( "paradise_text.u12", 0x000000, 0x080000, CRC(bdaa4407) SHA1(845eead0902c81290c2b5d7543ac9dfda375fdd1) )
ROM_REGION( 0x400000, "igs017_igs031:sprites", 0 )
ROM_LOAD( "igs_m4101.u13", 0x000000, 0x400000, CRC(84899398) SHA1(badac65af6e03c490798f4368eb2b15db8c590d0) ) // FIXED BITS (xxxxxxx0xxxxxxxx)
ROM_REGION( 0x80000, "oki", 0 )
ROM_LOAD( "igs_w4102.u28", 0x00000, 0x80000, CRC(558cab25) SHA1(0280b37a14589329f0385c048e5742b9e89bd587) )
ROM_END
ROM_START( fruitpara )
ROM_REGION( 0x04000, "maincpu", 0 )
// Internal ROM of IGS027A type G ARM based MCU
ROM_LOAD( "q5_027a.bin", 0x00000, 0x4000, CRC(df756ac3) SHA1(5b5d2a7f6363260166e3411d1571056cc30a5e56) )
ROM_REGION32_LE( 0x80000, "user1", ROMREGION_ERASEFF )
ROM_LOAD( "f paradise v-206us.u23", 0x00000, 0x80000, CRC(ee2fa627) SHA1(6e964213e17d7db021ec63c7a1af08f863483369) )
ROM_REGION( 0x080000, "igs017_igs031:tilemaps", 0 )
ROM_LOAD16_WORD_SWAP( "paradise_text.u12", 0x000000, 0x080000, CRC(bdaa4407) SHA1(845eead0902c81290c2b5d7543ac9dfda375fdd1) )
ROM_REGION( 0x400000, "igs017_igs031:sprites", 0 )
ROM_LOAD( "igs_m4101.u13", 0x000000, 0x400000, CRC(84899398) SHA1(badac65af6e03c490798f4368eb2b15db8c590d0) ) // FIXED BITS (xxxxxxx0xxxxxxxx)
ROM_REGION( 0x80000, "oki", 0 )
ROM_LOAD( "igs_w4102.u28", 0x00000, 0x80000, CRC(558cab25) SHA1(0280b37a14589329f0385c048e5742b9e89bd587) )
ROM_END
// supposedly a reskin of fruitpar / oceanpar, runs on a slightly different PCB (type not readable, seems same as amazonkp)
ROM_START( luckycrs )
ROM_REGION( 0x04000, "maincpu", 0 )
@ -2308,8 +2345,6 @@ void igs_m027_state::init_lhdmg()
// Complete dumps
GAME( 1999, slqz3, 0, slqz3_xor, base, igs_m027_state, init_slqz3, ROT0, "IGS", "Mahjong Shuang Long Qiang Zhu 3 (China, VS107C)", MACHINE_NOT_WORKING )
GAME( 1999, qlgs, 0, m027_xor, qlgs, igs_m027_state, init_qlgs, ROT0, "IGS", "Que Long Gao Shou", MACHINE_NOT_WORKING )
GAME( 1999, fruitpar, 0, m027_xor, base, igs_m027_state, init_fruitpar, ROT0, "IGS", "Fruit Paradise (V214)", MACHINE_NOT_WORKING )
GAME( 1999, fruitpara, fruitpar, m027_xor, base, igs_m027_state, init_fruitpar, ROT0, "IGS", "Fruit Paradise (V206US)", MACHINE_NOT_WORKING )
GAME( 1999, lhdmg, 0, lhdmg_xor, lhdmg, igs_m027_state, init_lhdmg, ROT0, "IGS", "Long Hu Da Manguan", MACHINE_NOT_WORKING ) // 龙虎大满贯
GAME( 1999, lhdmgp, lhdmg, lhdmg_xor, lhdmg, igs_m027_state, init_lhdmg, ROT0, "IGS", "Long Hu Da Manguan Plus", MACHINE_NOT_WORKING ) // 龙虎大满贯
GAME( 1999, lhzb3, 0, lhdmg_xor, lhzb3, igs_m027_state, init_lhdmg, ROT0, "IGS", "Long Hu Zhengba III", MACHINE_NOT_WORKING ) // 龙虎争霸Ⅲ
@ -2320,12 +2355,14 @@ GAMEL( 200?, jking02, 0, jking02_xor, jking02, igs_m027_state, init_j
GAME( 2003, mgzz, 0, mgzz_xor, mgzz, igs_m027_state, init_mgzz, ROT0, "IGS", "Man Guan Zhi Zun (V101CN)", MACHINE_NOT_WORKING )
GAME( 2000, mgzza, mgzz, mgzz_xor, mgzza, igs_m027_state, init_mgzz, ROT0, "IGS", "Man Guan Zhi Zun (V100CN)", MACHINE_NOT_WORKING )
GAME( 2007, mgcs3, 0, m027_xor, base, igs_m027_state, init_mgcs3, ROT0, "IGS", "Man Guan Caishen 3 (V101CN)", MACHINE_NOT_WORKING )
GAME( 1999, oceanpar, 0, oceanpar_xor, oceanpar, igs_m027_state, init_oceanpar, ROT0, "IGS", "Ocean Paradise (V105US)", MACHINE_NOT_WORKING ) // 1999 copyright in ROM
GAME( 1999, oceanpara, oceanpar, oceanpar_xor, oceanpar, igs_m027_state, init_oceanpar, ROT0, "IGS", "Ocean Paradise (V101US)", MACHINE_NOT_WORKING ) // 1999 copyright in ROM
GAMEL( 1999, oceanpar, 0, oceanpar_xor, oceanpar, igs_m027_state, init_oceanpar, ROT0, "IGS", "Ocean Paradise (V105US)", MACHINE_NOT_WORKING, layout_oceanpar ) // 1999 copyright in ROM
GAMEL( 1999, oceanpara, oceanpar, oceanpar_xor, oceanpara,igs_m027_state, init_oceanpar, ROT0, "IGS", "Ocean Paradise (V101US)", MACHINE_NOT_WORKING, layout_oceanpar ) // 1999 copyright in ROM
GAMEL( 1999, fruitpar, 0, oceanpar_xor, oceanpar, igs_m027_state, init_fruitpar, ROT0, "IGS", "Fruit Paradise (V214)", MACHINE_NOT_WORKING, layout_oceanpar )
GAMEL( 1999, fruitpara, fruitpar, oceanpar_xor, fruitpara,igs_m027_state, init_fruitpar, ROT0, "IGS", "Fruit Paradise (V206US)", MACHINE_NOT_WORKING, layout_oceanpar )
GAME( 200?, cjddz, 0, m027_xor, base, igs_m027_state, init_cjddz, ROT0, "IGS", "Chaoji Dou Dizhu", MACHINE_NOT_WORKING ) // 超级斗地主
GAME( 200?, extradrw, 0, extradraw, base, igs_m027_state, init_extradrw, ROT0, "IGS", "Extra Draw", MACHINE_NOT_WORKING )
// these have an IGS025 protection device instead of the 8255
GAME( 2002, chessc2, 0, m027_xor, base, igs_m027_state, init_chessc2, ROT0, "IGS", "Chess Challenge II", MACHINE_NOT_WORKING )
GAME( 2002, chessc2, 0, m027_xor, base, igs_m027_state, init_chessc2, ROT0, "IGS", "Chess Challenge II", MACHINE_NOT_WORKING )
// Incomplete dumps
GAME( 1999, amazonia, 0, m027, amazonia, igs_m027_state, init_amazonia, ROT0, "IGS", "Amazonia King (V104BR)", MACHINE_NOT_WORKING )

View File

@ -0,0 +1,208 @@
<?xml version="1.0"?>
<!--
license:CC0-1.0
copyright-holders:Vas Crabb
Ocean Paradise control panel
May or may not match arrangement/colour of real control panel
-->
<mamelayout version="2">
<element name="blank">
<rect />
</element>
<element name="bet" defstate="0">
<rect state="1">
<color red="0.0" green="1.0" blue="1.0" />
</rect>
<rect state="0">
<color red="0.0" green="0.15" blue="0.15" />
</rect>
<text string="PLAY">
<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.15" 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>
<element name="stop" defstate="0">
<rect state="1">
<color red="1.0" green="0.0" blue="0.0" />
</rect>
<rect state="0">
<color red="0.15" 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="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="stop1" defstate="0">
<rect state="1">
<color red="1.0" green="0.0" blue="0.0" />
</rect>
<rect state="0">
<color red="0.15" 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.15" 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="SMALL">
<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.15" 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="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_b" defstate="0">
<rect state="1">
<color red="0.0" green="0.7" blue="0.7" />
</rect>
<rect state="0">
<color red="0.0" green="0.1" blue="0.1" />
</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>
<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>
<view name="Button Lamps">
<screen index="0">
<bounds left="0" top="0" right="4" bottom="3" />
</screen>
<element ref="blank">
<bounds left="0" right="4" top="3" bottom="3.40" />
<color red="0.0" green="0.0" blue="0.0" />
</element>
<element ref="blank">
<bounds left="0" right="4" top="3.01" bottom="3.39" />
<color red="0.20" green="0.20" blue="0.20" />
</element>
<element ref="blank">
<bounds left="0" right="4" top="3.02" bottom="3.38" />
<color red="0.15" green="0.15" blue="0.15" />
</element>
<element ref="blank">
<bounds left="0" right="4" top="3.03" bottom="3.37" />
<color red="0.10" green="0.10" blue="0.10" />
</element>
<element ref="blank">
<bounds left="0" right="4" top="3.04" bottom="3.36" />
<color red="0.05" green="0.05" blue="0.05" />
</element>
<element ref="blank">
<bounds left="0" right="4" top="3.05" bottom="3.35" />
<color red="0.0" green="0.0" blue="0.0" />
</element>
<element ref="bet_b" name="lamp3" inputtag="PLAYER" inputmask="0x00000400">
<bounds x="0.10" y="3.08" width="0.50" height="0.24" />
</element>
<element ref="bet" name="lamp3" inputtag="PLAYER" inputmask="0x00000400">
<bounds x="0.12" y="3.10" width="0.46" height="0.20" />
</element>
<element ref="stop_b" name="lamp6" inputtag="PLAYER" inputmask="0x00000040">
<bounds x="0.85" y="3.08" width="0.50" height="0.24" />
</element>
<element ref="stop" name="lamp6" inputtag="PLAYER" inputmask="0x00000040">
<bounds x="0.87" y="3.10" width="0.46" height="0.20" />
</element>
<element ref="stop_b" name="lamp5" inputtag="PLAYER" inputmask="0x00000080">
<bounds x="1.45" y="3.08" width="0.50" height="0.24" />
</element>
<element ref="stop1" name="lamp5" inputtag="PLAYER" inputmask="0x00000080">
<bounds x="1.47" y="3.10" width="0.46" height="0.20" />
</element>
<element ref="stop_b" name="lamp2" inputtag="PLAYER" inputmask="0x00000100">
<bounds x="2.05" y="3.08" width="0.50" height="0.24" />
</element>
<element ref="stop2" name="lamp2" inputtag="PLAYER" inputmask="0x00000100">
<bounds x="2.07" y="3.10" width="0.46" height="0.20" />
</element>
<element ref="stop_b" name="lamp4" inputtag="PLAYER" inputmask="0x00000200">
<bounds x="2.65" y="3.08" width="0.50" height="0.24" />
</element>
<element ref="stop3" name="lamp4" inputtag="PLAYER" inputmask="0x00000200">
<bounds x="2.67" y="3.10" width="0.46" height="0.20" />
</element>
<element ref="start_b" name="lamp1" inputtag="PLAYER" inputmask="0x00000020">
<bounds x="3.40" y="3.08" width="0.50" height="0.24" />
</element>
<element ref="start" name="lamp1" inputtag="PLAYER" inputmask="0x00000020">
<bounds x="3.42" y="3.10" width="0.46" height="0.20" />
</element>
</view>
</mamelayout>