funtech.cpp: Use recommended button layout/labels from manual in

fts2in1, also fixed coin/credit counter outputs.
[Vas Crabb, Ioannis Bampoulas]
This commit is contained in:
Vas Crabb 2020-07-17 21:06:37 +10:00
parent 85eabc1952
commit 7e50747849
2 changed files with 246 additions and 181 deletions

View File

@ -64,7 +64,7 @@ private:
required_device<cpu_device> m_maincpu;
required_device<ticket_dispenser_device> m_hopper;
required_device<gfxdecode_device> m_gfxdecode;
output_finder<8> m_lamps;
output_finder<6> m_lamps;
uint8_t m_vreg;
@ -225,32 +225,25 @@ void fun_tech_corp_state::funtech_map(address_map &map)
void fun_tech_corp_state::lamps_w(uint8_t data)
{
for (int i = 0; i < 8; i++)
for (int i = 0; i < 6; i++)
m_lamps[i] = BIT(data, i);
// bit 6 (0x40) is set when displaying a hand in poker, but there are only six lamp outputs
// bit 7 (0x80) is always set
}
void fun_tech_corp_state::coins_w(uint8_t data)
{
if (data & 0x01) logerror("coins_w %02x\n", data);
// 80 = hopper motor?
machine().bookkeeping().coin_counter_w(4, BIT(data, 1)); // COUNTER HOPPER
machine().bookkeeping().coin_counter_w(0, BIT(data, 2)); // COUNTER A (coin A)
machine().bookkeeping().coin_counter_w(1, BIT(data, 3)); // COUNTER B (keyin B)
machine().bookkeeping().coin_counter_w(2, BIT(data, 4)); // COUNTER C (coin C)
machine().bookkeeping().coin_counter_w(3, BIT(data, 5)); // COUNTER D (coin D)
machine().bookkeeping().coin_counter_w(5, BIT(data, 6)); // COUNTER CREDIT OUT
m_hopper->motor_w(BIT(data, 7));
// 40 = ? sometimes
// 20 = coin 3 counter
machine().bookkeeping().coin_counter_w(2, data & 0x20 );
// 10 = coin 2 counter
machine().bookkeeping().coin_counter_w(1, data & 0x10 );
// 08 = coin 4 counter
machine().bookkeeping().coin_counter_w(3, data & 0x08 );
// 04 = coin 1 counter
machine().bookkeeping().coin_counter_w(0, data & 0x04 );
// 02 = used when hopper is used (coin out counter?)
}
void fun_tech_corp_state::vreg_w(uint8_t data)
@ -295,8 +288,8 @@ static INPUT_PORTS_START( funtech )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_NAME("Coin A")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_NAME("Coin C")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 ) PORT_NAME("Coin D")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Hold 1, Take Score, Odds, Left Stop") // manual suggests Double Up and Odds are same line
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Hold 4, Double-Up")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Hold 1, Take Score, Odds, Left Stop") // shows odds in 8-liner game
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Hold 4, Double-Up") // manual suggests this shows odds, but it doesn't
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Hold 3, Small, Right Stop")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Hold 2, Big, Center Stop")

View File

@ -1,190 +1,262 @@
<?xml version="1.0"?>
<!--
license:CC0
-->
copyright-holders:Vas Crabb
Super Two in One control panel
Based on recommended button layout in manual
-->
<mamelayout version="2">
<element name="bluelamp" defstate="0">
<!-- define button-lamps -->
<element name="hold1" defstate="0">
<rect state="1">
<color red="0.2" green="0.2" blue="1.0" />
<color red="1.0" green="0.5" blue="0.0" />
</rect>
<rect state="0">
<color red="0.04" green="0.04" blue="0.20" />
<color red="0.15" green="0.075" blue="0.0" />
</rect>
<text string="LEFT STOP">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.1" width="1" height="0.25" />
</text>
<text string="TAKE SCORE">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.375" width="1" height="0.25" />
</text>
<text string="HOLD 1">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.65" width="1" height="0.25" />
</text>
</element>
<element name="hold2" defstate="0">
<rect state="1">
<color red="1.0" green="0.5" blue="0.0" />
</rect>
<rect state="0">
<color red="0.15" green="0.075" blue="0.0" />
</rect>
<text string="CENTER STOP">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.1" width="1" height="0.25" />
</text>
<text string="BIG">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.375" width="1" height="0.25" />
</text>
<text string="HOLD 2">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.65" width="1" height="0.25" />
</text>
</element>
<element name="hold3" defstate="0">
<rect state="1">
<color red="1.0" green="0.5" blue="0.0" />
</rect>
<rect state="0">
<color red="0.15" green="0.075" blue="0.0" />
</rect>
<text string="RIGHT STOP">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.1" width="1" height="0.25" />
</text>
<text string="SMALL">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.375" width="1" height="0.25" />
</text>
<text string="HOLD 3">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.65" width="1" height="0.25" />
</text>
</element>
<element name="hold4" defstate="0">
<rect state="1">
<color red="1.0" green="0.5" blue="0.0" />
</rect>
<rect state="0">
<color red="0.15" green="0.075" blue="0.0" />
</rect>
<text string="DOUBLE-UP">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.375" width="1" height="0.25" />
</text>
<text string="HOLD 4">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.65" width="1" height="0.25" />
</text>
</element>
<element name="hold5" defstate="0">
<rect state="1">
<color red="1.0" green="0.5" blue="0.0" />
</rect>
<rect state="0">
<color red="0.15" green="0.075" blue="0.0" />
</rect>
<text string="BET">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.375" width="1" height="0.25" />
</text>
<text string="HOLD 5">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.65" width="1" height="0.25" />
</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="ALL STOP">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.1" width="1" height="0.25" />
</text>
<text string="START">
<color red="0.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.375" width="1" height="0.25" />
</text>
</element>
<!-- define basic elements -->
<element name="cpanel">
<rect>
<color red="0.0" green="0.0" blue="0.0" />
</rect>
</element>
<element name="stop1" defstate="0">
<rect state="1">
<color red="0.2" green="0.2" blue="1.0" />
</rect>
<rect state="0">
<color red="0.04" green="0.04" blue="0.20" />
</rect>
<element name="hold_b" defstate="0">
<rect state="1">
<color red="0.7" green="0.35" blue="0.0" />
</rect>
<rect state="0">
<color red="0.1" green="0.05" blue="0.0" />
</rect>
</element>
<text string="HOLD 1">
<color red="1.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.05" width="1" height="0.25" />
</text>
<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>
<text string="STOP 1">
<color red="1.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.35" width="1" height="0.25" />
</text>
<text string="TAKE">
<color red="1.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.65" width="1" height="0.25" />
</text>
</element>
<!-- define cpanel degradee elements -->
<element name="stop2" defstate="0">
<rect state="1">
<color red="0.2" green="0.2" blue="1.0" />
</rect>
<rect state="0">
<color red="0.04" green="0.04" blue="0.20" />
</rect>
<element name="cpanel1">
<rect>
<color red="0.20" green="0.20" blue="0.20" />
</rect>
</element>
<text string="HOLD 2">
<color red="1.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.05" width="1" height="0.25" />
</text>
<element name="cpanel2">
<rect>
<color red="0.15" green="0.15" blue="0.15" />
</rect>
</element>
<text string="STOP 2">
<color red="1.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.35" width="1" height="0.25" />
</text>
<element name="cpanel3">
<rect>
<color red="0.10" green="0.10" blue="0.10" />
</rect>
</element>
<text string="BIG">
<color red="1.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.65" width="1" height="0.25" />
</text>
</element>
<element name="cpanel4">
<rect>
<color red="0.05" green="0.05" blue="0.05" />
</rect>
</element>
<element name="stop3" defstate="0">
<rect state="1">
<color red="0.2" green="0.2" blue="1.0" />
</rect>
<rect state="0">
<color red="0.04" green="0.04" blue="0.20" />
</rect>
<text string="HOLD 3">
<color red="1.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.05" width="1" height="0.25" />
</text>
<text string="STOP 3">
<color red="1.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.35" width="1" height="0.25" />
</text>
<text string="SMALL">
<color red="1.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.65" width="1" height="0.25" />
</text>
</element>
<element name="hold4" defstate="0">
<rect state="1">
<color red="0.2" green="0.2" blue="1.0" />
</rect>
<rect state="0">
<color red="0.04" green="0.04" blue="0.20" />
</rect>
<text string="HOLD 4">
<color red="1.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.05" width="1" height="0.25" />
</text>
<text string="DOUBLE">
<color red="1.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.65" width="1" height="0.25" />
</text>
</element>
<element name="hold5" defstate="0">
<rect state="1">
<color red="0.2" green="0.2" blue="1.0" />
</rect>
<rect state="0">
<color red="0.04" green="0.04" blue="0.20" />
</rect>
<text string="HOLD 5">
<color red="1.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.05" width="1" height="0.25" />
</text>
<text string="BET">
<color red="1.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.65" width="1" height="0.25" />
</text>
</element>
<element name="start1" defstate="0">
<rect state="1">
<color red="0.2" green="0.2" blue="1.0" />
</rect>
<rect state="0">
<color red="0.04" green="0.04" blue="0.20" />
</rect>
<text string="START">
<color red="1.0" green="0.0" blue="0.0" />
<bounds x="0" y="0.05" width="1" height="0.25" />
</text>
</element>
<view name="Simple Artwork">
<bounds left="0" right="400" top="0" bottom="330" />
<view name="Button Lamps">
<screen index="0">
<bounds left="0" right="400" top="0" bottom="300" />
<bounds left="0" top="0" right="4" bottom="3" />
</screen>
<!-- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 ) (port IN1) -->
<bezel name="lamp1" element="start1" inputtag="IN1" inputmask="0x40">
<bounds x="10" y="312" width="16" height="16" />
<bezel element="cpanel">
<bounds left="0" right="4" top="3" bottom="3.40" />
</bezel>
<!-- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Hold 1, Take, Odds, Stop 1") -->
<bezel name="lamp5" element="stop1" inputtag="IN0" inputmask="0x10">
<bounds x="30" y="312" width="16" height="16" />
</bezel>
<!-- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Hold 2, Big, Stop 2") -->
<bezel name="lamp3" element="stop2" inputtag="IN0" inputmask="0x80">
<bounds x="50" y="312" width="16" height="16" />
</bezel>
<!-- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Hold 3, Small, Stop 3") -->
<bezel name="lamp2" element="stop3" inputtag="IN0" inputmask="0x40">
<bounds x="70" y="312" width="16" height="16" />
</bezel>
<!-- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Hold 4, Double") -->
<bezel name="lamp4" element="hold4" inputtag="IN0" inputmask="0x20">
<bounds x="90" y="312" width="16" height="16" />
</bezel>
<!-- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Hold 5, Bet") -->
<bezel name="lamp0" element="hold5" inputtag="IN0" inputmask="0x01" >
<bounds x="110" y="312" width="16" height="16" />
</bezel>
<!-- gets set when displaying a hand in poker, doesn't seem button related -->
<!--
<bezel name="lamp6" element="bluelamp">
<bounds x="130" y="312" width="16" height="16" />
<bezel element="cpanel1">
<bounds left="0" right="4" top="3.01" bottom="3.39" />
</bezel>
-->
<!-- always set, maybe cabinet marquee or just global enable? -->
<!--
<bezel name="lamp7" element="bluelamp">
<bounds x="150" y="312" width="16" height="16" />
<bezel element="cpanel2">
<bounds left="0" right="4" top="3.02" bottom="3.38" />
</bezel>
-->
<bezel element="cpanel3">
<bounds left="0" right="4" top="3.03" bottom="3.37" />
</bezel>
<bezel element="cpanel4">
<bounds left="0" right="4" top="3.04" bottom="3.36" />
</bezel>
<bezel element="cpanel">
<bounds left="0" right="4" top="3.05" bottom="3.35" />
</bezel>
<!-- define lamps -->
<bezel name="lamp5" element="hold_b" inputtag="IN0" inputmask="0x10">
<bounds x="0.05" y="3.08" width="0.50" height="0.24" />
</bezel>
<bezel name="lamp5" element="hold1" inputtag="IN0" inputmask="0x10">
<bounds x="0.07" y="3.10" width="0.46" height="0.20" />
</bezel>
<bezel name="lamp3" element="hold_b" inputtag="IN0" inputmask="0x80">
<bounds x="0.72" y="3.08" width="0.50" height="0.24" />
</bezel>
<bezel name="lamp3" element="hold2" inputtag="IN0" inputmask="0x80">
<bounds x="0.74" y="3.10" width="0.46" height="0.20" />
</bezel>
<bezel name="lamp2" element="hold_b" inputtag="IN0" inputmask="0x40">
<bounds x="1.39" y="3.08" width="0.50" height="0.24" />
</bezel>
<bezel name="lamp2" element="hold3" inputtag="IN0" inputmask="0x40">
<bounds x="1.41" y="3.10" width="0.46" height="0.20" />
</bezel>
<bezel name="lamp4" element="hold_b" inputtag="IN0" inputmask="0x20">
<bounds x="2.06" y="3.08" width="0.50" height="0.24" />
</bezel>
<bezel name="lamp4" element="hold4" inputtag="IN0" inputmask="0x20">
<bounds x="2.08" y="3.10" width="0.46" height="0.20" />
</bezel>
<bezel name="lamp0" element="hold_b" inputtag="IN0" inputmask="0x01">
<bounds x="2.73" y="3.08" width="0.50" height="0.24" />
</bezel>
<bezel name="lamp0" element="hold5" inputtag="IN0" inputmask="0x01">
<bounds x="2.75" y="3.10" width="0.46" height="0.20" />
</bezel>
<bezel name="lamp1" element="start_b" inputtag="IN1" inputmask="0x40">
<bounds x="3.45" y="3.08" width="0.50" height="0.24" />
</bezel>
<bezel name="lamp1" element="start" inputtag="IN1" inputmask="0x40">
<bounds x="3.47" y="3.10" width="0.46" height="0.20" />
</bezel>
</view>
</mamelayout>