New working systems

-------------------
Gammonmaster II [hap, Sean Riddle]
Omar [hap, Sean Riddle]
Electronic Chess (Tryom) [hap, Sean Riddle]
Punch Your Lights Out [hap, Sean Riddle, Frank Palazzolo]
This commit is contained in:
hap 2023-03-09 20:39:52 +01:00
parent 9006ed9c92
commit 9f7c351826
14 changed files with 2096 additions and 4 deletions

View File

@ -82,7 +82,7 @@ protected:
virtual void device_reset() override;
// device_execute_interface overrides
virtual uint64_t execute_clocks_to_cycles(uint64_t clocks) const noexcept override { return (clocks + m_divider - 1) / 2; }
virtual uint64_t execute_clocks_to_cycles(uint64_t clocks) const noexcept override { return (clocks + m_divider - 1) / m_divider; }
virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const noexcept override { return (cycles * m_divider); }
virtual uint32_t execute_min_cycles() const noexcept override { return 5; }
virtual uint32_t execute_max_cycles() const noexcept override { return 49; }

View File

@ -12,7 +12,6 @@ for new game, B for empty board, or C for continue.
TODO:
- cncchess sound is wrong, it should be a long dual-tone alarm sound
- is Tryom CC-700 a hack of cmpchess? it does the L, bP thing at start too
BTANB:
- cmpchess/cmpchess2 accepts illegal moves (Conic fixed that)

View File

@ -367,4 +367,4 @@ CONS( 1982, conc, 0, 0, conc, conchess, conchess_state, empt
CONS( 1984, concgla, 0, 0, concgla, conchess, conchess_state, empty_init, "Systemhuset / Loproc", "Conchess Princhess Glasgow", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1985, concams5, 0, 0, concams5, conchess, conchess_state, empty_init, "Systemhuset / Loproc", "Conchess Plymate Amsterdam 5.5MHz", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1985, concams8, concams5, 0, concams8, conchess, conchess_state, empty_init, "Systemhuset / Loproc", "Conchess Plymate Amsterdam 8.0MHz", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1989, concvicp, 0, 0, concvicp, conchess, conchess_state, empty_init, "Systemhuset / Loproc", "Conchess Plymate Victoria (prototype)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
CONS( 1990, concvicp, 0, 0, concvicp, conchess, conchess_state, empty_init, "Systemhuset / Loproc", "Conchess Plymate Victoria (prototype)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )

View File

@ -2577,7 +2577,7 @@ static INPUT_PORTS_START( lilcomp )
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POWER_OFF )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("Go")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("Code 5")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_CODE(KEYCODE_X)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("IN.2") // L2 port G
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("Code 1")

View File

@ -0,0 +1,263 @@
<?xml version="1.0"?>
<!--
license:CC0-1.0
-->
<mamelayout version="2">
<!-- define elements -->
<element name="blackb"><rect><color red="0" green="0" blue="0" /></rect></element>
<element name="black"><rect><color red="0.19" green="0.12" blue="0.11" /></rect></element>
<element name="white"><rect><color red="0.85" green="0.85" blue="0.85" /></rect></element>
<element name="hlw" defstate="0">
<rect state="0"><color alpha="0" /></rect>
<rect state="1"><color red="1" green="1" blue="1" /></rect>
</element>
<element name="text_l1"><text string="DOUBLER"><color red="0.85" green="0.85" blue="0.85" /></text></element>
<element name="text_l2"><text string="GM II SCORE"><color red="0.85" green="0.85" blue="0.85" /></text></element>
<element name="text_l3"><text string="YOUR SCORE"><color red="0.85" green="0.85" blue="0.85" /></text></element>
<element name="text_l4"><text string="FROM"><color red="0.85" green="0.85" blue="0.85" /></text></element>
<element name="text_l5"><text string="GM II"><color red="0.85" green="0.85" blue="0.85" /></text></element>
<element name="text_l6"><text string="YOUR"><color red="0.85" green="0.85" blue="0.85" /></text></element>
<element name="text_l7"><text string="TO"><color red="0.85" green="0.85" blue="0.85" /></text></element>
<element name="text_l8"><text string="Δ"><color red="0.85" green="0.85" blue="0.85" /></text></element>
<element name="text_b1">
<rect><color red="0.19" green="0.12" blue="0.11" /></rect>
<text string="ST"><color red="0.85" green="0.85" blue="0.85" /></text>
</element>
<element name="text_b2">
<rect><color red="0.19" green="0.12" blue="0.11" /></rect>
<text string="CL"><color red="0.85" green="0.85" blue="0.85" /></text>
</element>
<element name="text_b3">
<rect><color red="0.19" green="0.12" blue="0.11" /></rect>
<text string="EN"><color red="0.85" green="0.85" blue="0.85" /></text>
</element>
<element name="text_b4">
<rect><color red="0.19" green="0.12" blue="0.11" /></rect>
<text string="Δ"><color red="0.85" green="0.85" blue="0.85" /></text>
</element>
<element name="text_b5">
<rect><color red="0.19" green="0.12" blue="0.11" /></rect>
<text string="1"><color red="0.85" green="0.85" blue="0.85" /></text>
</element>
<element name="text_b6">
<rect><color red="0.19" green="0.12" blue="0.11" /></rect>
<text string="2"><color red="0.85" green="0.85" blue="0.85" /></text>
</element>
<element name="text_b7">
<rect><color red="0.19" green="0.12" blue="0.11" /></rect>
<text string="3"><color red="0.85" green="0.85" blue="0.85" /></text>
</element>
<element name="text_b8">
<rect><color red="0.19" green="0.12" blue="0.11" /></rect>
<text string="4"><color red="0.85" green="0.85" blue="0.85" /></text>
</element>
<element name="text_b9">
<rect><color red="0.19" green="0.12" blue="0.11" /></rect>
<text string="5"><color red="0.85" green="0.85" blue="0.85" /></text>
</element>
<element name="text_b10">
<rect><color red="0.19" green="0.12" blue="0.11" /></rect>
<text string="6"><color red="0.85" green="0.85" blue="0.85" /></text>
</element>
<element name="text_b11">
<rect><color red="0.19" green="0.12" blue="0.11" /></rect>
<text string="7"><color red="0.85" green="0.85" blue="0.85" /></text>
</element>
<element name="text_b12">
<rect><color red="0.19" green="0.12" blue="0.11" /></rect>
<text string="8"><color red="0.85" green="0.85" blue="0.85" /></text>
</element>
<element name="text_b13">
<rect><color red="0.19" green="0.12" blue="0.11" /></rect>
<text string="9"><color red="0.85" green="0.85" blue="0.85" /></text>
</element>
<element name="text_b14">
<rect><color red="0.19" green="0.12" blue="0.11" /></rect>
<text string="10"><color red="0.85" green="0.85" blue="0.85" /></text>
</element>
<element name="text_b15">
<rect><color red="0.19" green="0.12" blue="0.11" /></rect>
<text string="11"><color red="0.85" green="0.85" blue="0.85" /></text>
</element>
<element name="text_b16">
<rect><color red="0.19" green="0.12" blue="0.11" /></rect>
<text string="12"><color red="0.85" green="0.85" blue="0.85" /></text>
</element>
<element name="text_b17">
<rect><color red="0.19" green="0.12" blue="0.11" /></rect>
<text string="BA"><color red="0.85" green="0.85" blue="0.85" /></text>
</element>
<element name="text_b18">
<rect><color red="0.19" green="0.12" blue="0.11" /></rect>
<text string="BO"><color red="0.85" green="0.85" blue="0.85" /></text>
</element>
<element name="text_b19">
<rect><color red="0.19" green="0.12" blue="0.11" /></rect>
<text string="VR"><color red="0.85" green="0.85" blue="0.85" /></text>
</element>
<element name="text_b20">
<rect><color red="0.19" green="0.12" blue="0.11" /></rect>
<text string="Δ"><color red="0.85" green="0.85" blue="0.85" /></text>
</element>
<element name="text_u1">
<rect><color red="0.19" green="0.12" blue="0.11" /></rect>
<text string="REF"><color red="0.85" green="0.85" blue="0.85" /></text>
</element>
<element name="text_u2">
<rect><color red="0.19" green="0.12" blue="0.11" /></rect>
<text string="DBL"><color red="0.85" green="0.85" blue="0.85" /></text>
</element>
<element name="text_u3">
<rect><color red="0.19" green="0.12" blue="0.11" /></rect>
<text string="ACC"><color red="0.85" green="0.85" blue="0.85" /></text>
</element>
<!-- dice display -->
<element name="led" defstate="0">
<disk state="0"><color red="0.1" green="0.01" blue="0.015" /></disk>
<disk state="1"><color red="1.0" green="0.1" blue="0.15" /></disk>
</element>
<group name="dice1">
<element name="6.0" ref="led"><bounds xc="0" yc="0" width="0.6" height="0.6" /></element>
<element name="6.1" ref="led"><bounds xc="0" yc="1" width="0.6" height="0.6" /></element>
<element name="6.2" ref="led"><bounds xc="0" yc="2" width="0.6" height="0.6" /></element>
<element name="6.3" ref="led"><bounds xc="1" yc="1" width="0.6" height="0.6" /></element>
<element name="6.2" ref="led"><bounds xc="2" yc="0" width="0.6" height="0.6" /></element>
<element name="6.1" ref="led"><bounds xc="2" yc="1" width="0.6" height="0.6" /></element>
<element name="6.0" ref="led"><bounds xc="2" yc="2" width="0.6" height="0.6" /></element>
</group>
<group name="dice2">
<element name="5.0" ref="led"><bounds xc="0" yc="0" width="0.6" height="0.6" /></element>
<element name="5.1" ref="led"><bounds xc="0" yc="1" width="0.6" height="0.6" /></element>
<element name="5.2" ref="led"><bounds xc="0" yc="2" width="0.6" height="0.6" /></element>
<element name="5.3" ref="led"><bounds xc="1" yc="1" width="0.6" height="0.6" /></element>
<element name="5.2" ref="led"><bounds xc="2" yc="0" width="0.6" height="0.6" /></element>
<element name="5.1" ref="led"><bounds xc="2" yc="1" width="0.6" height="0.6" /></element>
<element name="5.0" ref="led"><bounds xc="2" yc="2" width="0.6" height="0.6" /></element>
</group>
<!-- 7seg display -->
<element name="digit" defstate="0">
<led7seg><color red="1.0" green="0.1" blue="0.15" /></led7seg>
</element>
<group name="digits">
<element name="digit0" ref="digit"><bounds x="0" y="0" width="0.8" height="1" /></element>
<element name="digit1" ref="digit"><bounds x="1" y="0" width="0.8" height="1" /></element>
<element name="digit2" ref="digit"><bounds x="2.4" y="0" width="0.8" height="1" /></element>
<element name="digit3" ref="digit"><bounds x="3.4" y="0" width="0.8" height="1" /></element>
</group>
<!-- build screen -->
<view name="Internal Layout">
<bounds left="8" right="55" top="2.5" bottom="111.5" />
<group ref="dice1"><bounds x="12" y="11.5" width="14.5" height="14" /></group>
<group ref="dice2"><bounds x="36.5" y="11.5" width="14.5" height="14" /></group>
<group ref="digits"><bounds x="9" y="39" width="45" height="12" /></group>
<!-- misc. labels -->
<element ref="text_l1"><bounds x="8" y="5.5" width="47" height="2.8" /></element>
<element ref="text_l2"><bounds x="11" y="29" width="14.5" height="2.1" /></element>
<element ref="text_l3"><bounds x="37.5" y="29" width="14.5" height="2.1" /></element>
<element ref="text_l4"><bounds x="14" y="36.5" width="10" height="2.1" /></element>
<element ref="text_l7"><bounds x="39.5" y="36.5" width="10" height="2.1" /></element>
<element ref="text_l5"><bounds x="31" y="34.0" width="10" height="2.1" /></element>
<element ref="text_l6"><bounds x="31" y="36.5" width="10" height="2.1" /></element>
<element ref="white"><bounds x="33.6" y="36.3" width="4.8" height="0.2" /></element>
<element ref="text_l8" blend="add"><bounds x="8.0" y="38" width="5" height="3" /></element>
<element ref="text_l8" blend="add"><bounds x="33.8" y="38" width="5" height="3" /></element>
<element ref="text_l8" blend="add"><bounds x="7.2" y="49" width="5" height="3" /><orientation rotate="180" /></element>
<element ref="text_l8" blend="add"><bounds x="33.0" y="49" width="5" height="3" /><orientation rotate="180" /></element>
<!-- button panel -->
<element ref="black"><bounds x="8" y="55" width="47" height="56.5" /></element>
<element ref="text_u1"><bounds x="16" y="55" width="7" height="4" /></element>
<element ref="text_u2"><bounds x="24" y="55" width="7" height="4" /></element>
<element ref="text_u3"><bounds x="32" y="55" width="7" height="4" /></element>
<element ref="blackb"><bounds x="15" y="59" width="33" height="48.5" /></element>
<element ref="black"><bounds x="16" y="60.0" width="7" height="8.5" /></element>
<element ref="black"><bounds x="24" y="60.0" width="7" height="8.5" /></element>
<element ref="black"><bounds x="32" y="60.0" width="7" height="8.5" /></element>
<element ref="black"><bounds x="40" y="60.0" width="7" height="8.5" /></element>
<element ref="black"><bounds x="16" y="69.5" width="7" height="8.5" /></element>
<element ref="black"><bounds x="24" y="69.5" width="7" height="8.5" /></element>
<element ref="black"><bounds x="32" y="69.5" width="7" height="8.5" /></element>
<element ref="black"><bounds x="40" y="69.5" width="7" height="8.5" /></element>
<element ref="black"><bounds x="16" y="79.0" width="7" height="8.5" /></element>
<element ref="black"><bounds x="24" y="79.0" width="7" height="8.5" /></element>
<element ref="black"><bounds x="32" y="79.0" width="7" height="8.5" /></element>
<element ref="black"><bounds x="40" y="79.0" width="7" height="8.5" /></element>
<element ref="black"><bounds x="16" y="88.5" width="7" height="8.5" /></element>
<element ref="black"><bounds x="24" y="88.5" width="7" height="8.5" /></element>
<element ref="black"><bounds x="32" y="88.5" width="7" height="8.5" /></element>
<element ref="black"><bounds x="40" y="88.5" width="7" height="8.5" /></element>
<element ref="black"><bounds x="16" y="98.0" width="7" height="8.5" /></element>
<element ref="black"><bounds x="24" y="98.0" width="7" height="8.5" /></element>
<element ref="black"><bounds x="32" y="98.0" width="7" height="8.5" /></element>
<element ref="black"><bounds x="40" y="98.0" width="7" height="8.5" /></element>
<element ref="text_b1"><bounds xc="19.5" yc="64.2" width="6.0" height="7.5" /></element>
<element ref="text_b2"><bounds xc="27.5" yc="64.2" width="6.0" height="7.5" /></element>
<element ref="text_b3"><bounds xc="35.5" yc="64.2" width="6.0" height="7.5" /></element>
<element ref="text_b4"><bounds xc="43.5" yc="64.2" width="6.0" height="7.5" /></element>
<element ref="text_b5"><bounds xc="19.5" yc="73.7" width="6.0" height="7.5" /></element>
<element ref="text_b6"><bounds xc="27.5" yc="73.7" width="6.0" height="7.5" /></element>
<element ref="text_b7"><bounds xc="35.5" yc="73.7" width="6.0" height="7.5" /></element>
<element ref="text_b8"><bounds xc="43.5" yc="73.7" width="6.0" height="7.5" /></element>
<element ref="text_b9"><bounds xc="19.5" yc="83.2" width="6.0" height="7.5" /></element>
<element ref="text_b10"><bounds xc="27.5" yc="83.2" width="6.0" height="7.5" /></element>
<element ref="text_b11"><bounds xc="35.5" yc="83.2" width="6.0" height="7.5" /></element>
<element ref="text_b12"><bounds xc="43.5" yc="83.2" width="6.0" height="7.5" /></element>
<element ref="text_b13"><bounds xc="19.5" yc="92.7" width="6.0" height="7.5" /></element>
<element ref="text_b14"><bounds xc="27.5" yc="92.7" width="6.0" height="7.5" /></element>
<element ref="text_b15"><bounds xc="35.5" yc="92.7" width="6.0" height="7.5" /></element>
<element ref="text_b16"><bounds xc="43.5" yc="92.7" width="6.0" height="7.5" /></element>
<element ref="text_b17"><bounds xc="19.5" yc="102.2" width="6.0" height="7.5" /></element>
<element ref="text_b18"><bounds xc="27.5" yc="102.2" width="6.0" height="7.5" /></element>
<element ref="text_b19"><bounds xc="35.5" yc="102.2" width="6.0" height="7.5" /></element>
<element ref="text_b20"><bounds xc="43.5" yc="102.4" width="6.0" height="7.5" /><orientation rotate="180" /></element>
<element ref="hlw" inputtag="IN.0" inputmask="0x01"><bounds x="16" y="60.0" width="7" height="8.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.0" inputmask="0x02"><bounds x="24" y="60.0" width="7" height="8.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.0" inputmask="0x04"><bounds x="32" y="60.0" width="7" height="8.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.0" inputmask="0x08"><bounds x="40" y="60.0" width="7" height="8.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.4" inputmask="0x01"><bounds x="16" y="69.5" width="7" height="8.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.4" inputmask="0x02"><bounds x="24" y="69.5" width="7" height="8.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.4" inputmask="0x04"><bounds x="32" y="69.5" width="7" height="8.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.4" inputmask="0x08"><bounds x="40" y="69.5" width="7" height="8.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.3" inputmask="0x01"><bounds x="16" y="79.0" width="7" height="8.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.3" inputmask="0x02"><bounds x="24" y="79.0" width="7" height="8.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.3" inputmask="0x04"><bounds x="32" y="79.0" width="7" height="8.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.3" inputmask="0x08"><bounds x="40" y="79.0" width="7" height="8.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.2" inputmask="0x01"><bounds x="16" y="88.5" width="7" height="8.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.2" inputmask="0x02"><bounds x="24" y="88.5" width="7" height="8.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.2" inputmask="0x04"><bounds x="32" y="88.5" width="7" height="8.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.2" inputmask="0x08"><bounds x="40" y="88.5" width="7" height="8.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.1" inputmask="0x01"><bounds x="16" y="98.0" width="7" height="8.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.1" inputmask="0x02"><bounds x="24" y="98.0" width="7" height="8.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.1" inputmask="0x04"><bounds x="32" y="98.0" width="7" height="8.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.1" inputmask="0x08"><bounds x="40" y="98.0" width="7" height="8.5" /><color alpha="0.08" /></element>
</view>
</mamelayout>

254
src/mame/layout/omar.lay Normal file
View File

@ -0,0 +1,254 @@
<?xml version="1.0"?>
<!--
license:CC0-1.0
-->
<mamelayout version="2">
<!-- define elements -->
<element name="black"><rect><color red="0.17" green="0.17" blue="0.17" /></rect></element>
<element name="white"><rect><color red="0.85" green="0.85" blue="0.85" /></rect></element>
<element name="hlb" defstate="0">
<rect state="0"><color alpha="0" /></rect>
<rect state="1"><color red="0" green="0" blue="0" /></rect>
</element>
<element name="hlw" defstate="0">
<rect state="0"><color alpha="0" /></rect>
<rect state="1"><color red="1" green="1" blue="1" /></rect>
</element>
<element name="dice">
<rect>
<bounds x="0" y="0" width="10" height="10" />
<color red="0.1" green="0.1" blue="0.1" />
</rect>
<rect>
<bounds xc="5" yc="5" width="8.6" height="8.6" />
<color red="0.85" green="0.85" blue="0.85" />
</rect>
<disk>
<bounds xc="5" yc="5" width="1.9" height="1.9" />
<color red="0.1" green="0.1" blue="0.1" />
</disk>
<disk>
<bounds xc="2.5" yc="2.5" width="1.9" height="1.9" />
<color red="0.1" green="0.1" blue="0.1" />
</disk>
<disk>
<bounds xc="2.5" yc="7.5" width="1.9" height="1.9" />
<color red="0.1" green="0.1" blue="0.1" />
</disk>
<disk>
<bounds xc="7.5" yc="2.5" width="1.9" height="1.9" />
<color red="0.1" green="0.1" blue="0.1" />
</disk>
<disk>
<bounds xc="7.5" yc="7.5" width="1.9" height="1.9" />
<color red="0.1" green="0.1" blue="0.1" />
</disk>
</element>
<element name="text_b2">
<rect><color red="0.85" green="0.85" blue="0.85" /></rect>
<text string="CUB"><color red="0.1" green="0.1" blue="0.1" /></text>
</element>
<element name="text_b4">
<rect><color red="0.85" green="0.85" blue="0.85" /></rect>
<text string="CLR"><color red="0.1" green="0.1" blue="0.1" /></text>
</element>
<element name="text_b5">
<rect><color red="0.85" green="0.85" blue="0.85" /></rect>
<text string="BAR"><color red="0.1" green="0.1" blue="0.1" /></text>
</element>
<element name="text_b10">
<rect><color red="0.85" green="0.85" blue="0.85" /></rect>
<text string="Δ"><color red="0.1" green="0.1" blue="0.1" /></text>
</element>
<element name="text_b15">
<rect><color red="0.85" green="0.85" blue="0.85" /></rect>
<text string="E&#x2009;N"><color red="0.1" green="0.1" blue="0.1" /></text> <!-- thin space -->
</element>
<element name="text_b20">
<rect><color red="0.85" green="0.85" blue="0.85" /></rect>
<text string="Δ"><color red="0.1" green="0.1" blue="0.1" /></text>
</element>
<element name="text_b21">
<rect><color red="0.85" green="0.85" blue="0.85" /></rect>
<text string="S&#x2009;T"><color red="0.1" green="0.1" blue="0.1" /></text> <!-- thin space -->
</element>
<element name="text_b22">
<rect><color red="0.85" green="0.85" blue="0.85" /></rect>
<text string="ACC"><color red="0.1" green="0.1" blue="0.1" /></text>
</element>
<element name="text_b23">
<rect><color red="0.85" green="0.85" blue="0.85" /></rect>
<text string="DBL"><color red="0.1" green="0.1" blue="0.1" /></text>
</element>
<element name="text_b24">
<rect><color red="0.85" green="0.85" blue="0.85" /></rect>
<text string="V&#x2009;R"><color red="0.1" green="0.1" blue="0.1" /></text> <!-- thin space -->
</element>
<element name="text_b25">
<rect><color red="0.85" green="0.85" blue="0.85" /></rect>
<text string="B&#x2009;O"><color red="0.1" green="0.1" blue="0.1" /></text> <!-- thin space -->
</element>
<element name="text_b6">
<rect><color red="0.17" green="0.17" blue="0.17" /></rect>
<text string="1"><color red="0.87" green="0.87" blue="0.87" /></text>
</element>
<element name="text_b7">
<rect><color red="0.17" green="0.17" blue="0.17" /></rect>
<text string="2"><color red="0.87" green="0.87" blue="0.87" /></text>
</element>
<element name="text_b8">
<rect><color red="0.17" green="0.17" blue="0.17" /></rect>
<text string="3"><color red="0.87" green="0.87" blue="0.87" /></text>
</element>
<element name="text_b9">
<rect><color red="0.17" green="0.17" blue="0.17" /></rect>
<text string="4"><color red="0.87" green="0.87" blue="0.87" /></text>
</element>
<element name="text_b11">
<rect><color red="0.17" green="0.17" blue="0.17" /></rect>
<text string="5"><color red="0.87" green="0.87" blue="0.87" /></text>
</element>
<element name="text_b12">
<rect><color red="0.17" green="0.17" blue="0.17" /></rect>
<text string="6"><color red="0.87" green="0.87" blue="0.87" /></text>
</element>
<element name="text_b13">
<rect><color red="0.17" green="0.17" blue="0.17" /></rect>
<text string="7"><color red="0.87" green="0.87" blue="0.87" /></text>
</element>
<element name="text_b14">
<rect><color red="0.17" green="0.17" blue="0.17" /></rect>
<text string="8"><color red="0.87" green="0.87" blue="0.87" /></text>
</element>
<element name="text_b16">
<rect><color red="0.17" green="0.17" blue="0.17" /></rect>
<text string="9"><color red="0.87" green="0.87" blue="0.87" /></text>
</element>
<element name="text_b17">
<rect><color red="0.17" green="0.17" blue="0.17" /></rect>
<text string="10"><color red="0.87" green="0.87" blue="0.87" /></text>
</element>
<element name="text_b18">
<rect><color red="0.17" green="0.17" blue="0.17" /></rect>
<text string="11"><color red="0.87" green="0.87" blue="0.87" /></text>
</element>
<element name="text_b19">
<rect><color red="0.17" green="0.17" blue="0.17" /></rect>
<text string="12"><color red="0.87" green="0.87" blue="0.87" /></text>
</element>
<!-- 7seg display -->
<element name="digit" defstate="0">
<led7seg><color red="1.0" green="0.1" blue="0.15" /></led7seg>
</element>
<group name="display">
<element ref="digit"><bounds x="0" y="0" width="0.66" height="1" /></element> <!-- N/C -->
<element name="digit0" ref="digit"><bounds x="1" y="0" width="0.66" height="1" /></element>
<element name="digit1" ref="digit"><bounds x="2" y="0" width="0.66" height="1" /></element>
<element name="digit2" ref="digit"><bounds x="3" y="0" width="0.66" height="1" /></element>
<element name="digit3" ref="digit"><bounds x="4" y="0" width="0.66" height="1" /></element>
<element ref="digit"><bounds x="5" y="0" width="0.66" height="1" /></element> <!-- N/C -->
<element name="digit4" ref="digit"><bounds x="6" y="0" width="0.66" height="1" /></element>
<element name="digit5" ref="digit"><bounds x="7" y="0" width="0.66" height="1" /></element>
<element ref="digit"><bounds x="8" y="0" width="0.66" height="1" /></element> <!-- N/C -->
</group>
<!-- build screen -->
<view name="Internal Layout">
<bounds left="9" right="35.5" top="1.5" bottom="37.25" />
<group ref="display"><bounds x="10" y="4.5" width="24.5" height="2.75" /></group>
<element ref="white"><bounds x="10" y="10" width="4.5" height="4.5" /></element> <!-- ON switch is here -->
<element ref="white"><bounds x="15" y="10" width="4.5" height="4.5" /></element>
<element ref="white"><bounds x="20" y="10" width="4.5" height="4.5" /></element>
<element ref="white"><bounds x="25" y="10" width="4.5" height="4.5" /></element>
<element ref="white"><bounds x="30" y="10" width="4.5" height="4.5" /></element>
<element ref="black"><bounds x="10" y="15" width="4.5" height="4.5" /></element>
<element ref="black"><bounds x="15" y="15" width="4.5" height="4.5" /></element>
<element ref="black"><bounds x="20" y="15" width="4.5" height="4.5" /></element>
<element ref="black"><bounds x="25" y="15" width="4.5" height="4.5" /></element>
<element ref="white"><bounds x="30" y="15" width="4.5" height="4.5" /></element>
<element ref="black"><bounds x="10" y="20" width="4.5" height="4.5" /></element>
<element ref="black"><bounds x="15" y="20" width="4.5" height="4.5" /></element>
<element ref="black"><bounds x="20" y="20" width="4.5" height="4.5" /></element>
<element ref="black"><bounds x="25" y="20" width="4.5" height="4.5" /></element>
<element ref="white"><bounds x="30" y="20" width="4.5" height="4.5" /></element>
<element ref="black"><bounds x="10" y="25" width="4.5" height="4.5" /></element>
<element ref="black"><bounds x="15" y="25" width="4.5" height="4.5" /></element>
<element ref="black"><bounds x="20" y="25" width="4.5" height="4.5" /></element>
<element ref="black"><bounds x="25" y="25" width="4.5" height="4.5" /></element>
<element ref="white"><bounds x="30" y="25" width="4.5" height="4.5" /></element>
<element ref="white"><bounds x="10" y="30" width="4.5" height="4.5" /></element>
<element ref="white"><bounds x="15" y="30" width="4.5" height="4.5" /></element>
<element ref="white"><bounds x="20" y="30" width="4.5" height="4.5" /></element>
<element ref="white"><bounds x="25" y="30" width="4.5" height="4.5" /></element>
<element ref="white"><bounds x="30" y="30" width="4.5" height="4.5" /></element>
<element ref="text_b2"><bounds x="15.25" y="10.5" width="4" height="3.5" /></element>
<element ref="dice"><bounds xc="22.25" yc="12.25" width="2.7" height="2.7" /></element>
<element ref="text_b4"><bounds x="25.25" y="10.5" width="4" height="3.5" /></element>
<element ref="text_b5"><bounds x="30.25" y="10.5" width="4" height="3.5" /></element>
<element ref="text_b6"><bounds x="10.25" y="15.5" width="4" height="3.5" /></element>
<element ref="text_b7"><bounds x="15.25" y="15.5" width="4" height="3.5" /></element>
<element ref="text_b8"><bounds x="20.25" y="15.5" width="4" height="3.5" /></element>
<element ref="text_b9"><bounds x="25.25" y="15.5" width="4" height="3.5" /></element>
<element ref="text_b10"><bounds x="30.25" y="15.5" width="4" height="3.5" /></element>
<element ref="text_b11"><bounds x="10.25" y="20.5" width="4" height="3.5" /></element>
<element ref="text_b12"><bounds x="15.25" y="20.5" width="4" height="3.5" /></element>
<element ref="text_b13"><bounds x="20.25" y="20.5" width="4" height="3.5" /></element>
<element ref="text_b14"><bounds x="25.25" y="20.5" width="4" height="3.5" /></element>
<element ref="text_b15"><bounds x="30.25" y="20.5" width="4" height="3.5" /></element>
<element ref="text_b16"><bounds x="10.25" y="25.5" width="4" height="3.5" /></element>
<element ref="text_b17"><bounds x="15.25" y="25.5" width="4" height="3.5" /></element>
<element ref="text_b18"><bounds x="20.25" y="25.5" width="4" height="3.5" /></element>
<element ref="text_b19"><bounds x="25.25" y="25.5" width="4" height="3.5" /></element>
<element ref="text_b20"><bounds x="30.25" y="25.6" width="4" height="3.5" /><orientation rotate="180" /></element>
<element ref="text_b21"><bounds x="10.25" y="30.5" width="4" height="3.5" /></element>
<element ref="text_b22"><bounds x="15.25" y="30.5" width="4" height="3.5" /></element>
<element ref="text_b23"><bounds x="20.25" y="30.5" width="4" height="3.5" /></element>
<element ref="text_b24"><bounds x="25.25" y="30.5" width="4" height="3.5" /></element>
<element ref="text_b25"><bounds x="30.25" y="30.5" width="4" height="3.5" /></element>
<element ref="hlb" inputtag="IN.4" inputmask="0x08"><bounds x="15" y="10" width="4.5" height="4.5" /><color alpha="0.25" /></element>
<element ref="hlb" inputtag="IN.4" inputmask="0x04"><bounds x="20" y="10" width="4.5" height="4.5" /><color alpha="0.25" /></element>
<element ref="hlb" inputtag="IN.4" inputmask="0x02"><bounds x="25" y="10" width="4.5" height="4.5" /><color alpha="0.25" /></element>
<element ref="hlb" inputtag="IN.4" inputmask="0x01"><bounds x="30" y="10" width="4.5" height="4.5" /><color alpha="0.25" /></element>
<element ref="hlw" inputtag="IN.3" inputmask="0x10"><bounds x="10" y="15" width="4.5" height="4.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.3" inputmask="0x08"><bounds x="15" y="15" width="4.5" height="4.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.3" inputmask="0x04"><bounds x="20" y="15" width="4.5" height="4.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.3" inputmask="0x02"><bounds x="25" y="15" width="4.5" height="4.5" /><color alpha="0.08" /></element>
<element ref="hlb" inputtag="IN.3" inputmask="0x01"><bounds x="30" y="15" width="4.5" height="4.5" /><color alpha="0.25" /></element>
<element ref="hlw" inputtag="IN.2" inputmask="0x10"><bounds x="10" y="20" width="4.5" height="4.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.2" inputmask="0x08"><bounds x="15" y="20" width="4.5" height="4.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.2" inputmask="0x04"><bounds x="20" y="20" width="4.5" height="4.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.2" inputmask="0x02"><bounds x="25" y="20" width="4.5" height="4.5" /><color alpha="0.08" /></element>
<element ref="hlb" inputtag="IN.2" inputmask="0x01"><bounds x="30" y="20" width="4.5" height="4.5" /><color alpha="0.25" /></element>
<element ref="hlw" inputtag="IN.1" inputmask="0x10"><bounds x="10" y="25" width="4.5" height="4.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.1" inputmask="0x08"><bounds x="15" y="25" width="4.5" height="4.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.1" inputmask="0x04"><bounds x="20" y="25" width="4.5" height="4.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.1" inputmask="0x02"><bounds x="25" y="25" width="4.5" height="4.5" /><color alpha="0.08" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x01"><bounds x="30" y="25" width="4.5" height="4.5" /><color alpha="0.25" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x10"><bounds x="10" y="30" width="4.5" height="4.5" /><color alpha="0.25" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x08"><bounds x="15" y="30" width="4.5" height="4.5" /><color alpha="0.25" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x04"><bounds x="20" y="30" width="4.5" height="4.5" /><color alpha="0.25" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x02"><bounds x="25" y="30" width="4.5" height="4.5" /><color alpha="0.25" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x01"><bounds x="30" y="30" width="4.5" height="4.5" /><color alpha="0.25" /></element>
</view>
</mamelayout>

404
src/mame/layout/pylo.lay Normal file
View File

@ -0,0 +1,404 @@
<?xml version="1.0"?>
<!--
license:CC0-1.0
-->
<mamelayout version="2">
<!-- define elements -->
<element name="black"><rect><color red="0" green="0" blue="0" /></rect></element>
<element name="white"><rect><color red="0.86" green="0.86" blue="0.88" /></rect></element>
<element name="whited"><disk><color red="0.86" green="0.86" blue="0.88" /></disk></element>
<element name="grey"><rect><color red="0.6" green="0.6" blue="0.61" /></rect></element>
<element name="switch_game" defstate="0">
<rect>
<bounds x="0" y="0" width="29" height="10" />
<color red="0.6" green="0.6" blue="0.61" />
</rect>
<rect>
<bounds x="0.5" y="0.5" width="28" height="9" />
<color red="0.86" green="0.86" blue="0.88" />
</rect>
<text state="0x01" string="GAME 1" align="1">
<bounds x="2" y="0.5" width="26" height="9" />
<color red="0.1" green="0.25" blue="0.85" />
</text>
<text state="0x02" string="GAME 2" align="1">
<bounds x="2" y="0.5" width="26" height="9" />
<color red="0.1" green="0.25" blue="0.85" />
</text>
<text state="0x04" string="GAME 3" align="1">
<bounds x="2" y="0.5" width="26" height="9" />
<color red="0.1" green="0.25" blue="0.85" />
</text>
</element>
<element name="text_p1">
<rect><color red="0.86" green="0.86" blue="0.88" /></rect>
<text string="PLAYER 1"><color red="0.6" green="0.6" blue="0.61" /></text>
</element>
<element name="text_p2">
<rect><color red="0.86" green="0.86" blue="0.88" /></rect>
<text string="PLAYER 2"><color red="0.6" green="0.6" blue="0.61" /></text>
</element>
<element name="text_v">
<rect><color red="0.86" green="0.86" blue="0.88" /></rect>
<text string="v"><color red="0.6" green="0.6" blue="0.61" /></text>
</element>
<element name="led" defstate="0">
<disk state="0"><color red="0.3" green="0.03" blue="0.045" /></disk>
<disk state="1"><color red="1.0" green="0.1" blue="0.15" /></disk>
</element>
<element name="diskr">
<disk>
<bounds xc="0" yc="0" width="10" height="10" />
<color red="0.8" green="0.15" blue="0.15" />
</disk>
<disk>
<bounds xc="0" yc="0" width="8.4" height="8.4" />
<color red="0.86" green="0.86" blue="0.88" />
</disk>
</element>
<element name="butb" defstate="0">
<disk state="0"><color red="0.1" green="0.25" blue="0.85" /></disk>
<disk state="1"><color red="0.08" green="0.2" blue="0.68" /></disk>
</element>
<element name="hlb" defstate="0">
<rect>
<bounds xc="0" yc="0" width="10" height="10" />
<color alpha="0" />
</rect>
<rect state="1">
<bounds xc="0" yc="0" width="9" height="9" />
<color red="0" green="0" blue="0" />
</rect>
</element>
<element name="but1">
<rect>
<bounds xc="0" yc="0" width="10" height="10" />
<color red="0.6" green="0.6" blue="0.61" />
</rect>
<rect>
<bounds xc="0" yc="0" width="9" height="9" />
<color red="0.86" green="0.86" blue="0.88" />
</rect>
<text string="1">
<bounds xc="0" yc="0" width="9" height="9" />
<color red="0.1" green="0.25" blue="0.85" />
</text>
</element>
<element name="but2">
<rect>
<bounds xc="0" yc="0" width="10" height="10" />
<color red="0.6" green="0.6" blue="0.61" />
</rect>
<rect>
<bounds xc="0" yc="0" width="9" height="9" />
<color red="0.86" green="0.86" blue="0.88" />
</rect>
<text string="2">
<bounds xc="0" yc="0" width="9" height="9" />
<color red="0.1" green="0.25" blue="0.85" />
</text>
</element>
<element name="but3">
<rect>
<bounds xc="0" yc="0" width="10" height="10" />
<color red="0.6" green="0.6" blue="0.61" />
</rect>
<rect>
<bounds xc="0" yc="0" width="9" height="9" />
<color red="0.86" green="0.86" blue="0.88" />
</rect>
<text string="3">
<bounds xc="0" yc="0" width="9" height="9" />
<color red="0.1" green="0.25" blue="0.85" />
</text>
</element>
<element name="but4">
<rect>
<bounds xc="0" yc="0" width="10" height="10" />
<color red="0.6" green="0.6" blue="0.61" />
</rect>
<rect>
<bounds xc="0" yc="0" width="9" height="9" />
<color red="0.86" green="0.86" blue="0.88" />
</rect>
<text string="4">
<bounds xc="0" yc="0" width="9" height="9" />
<color red="0.1" green="0.25" blue="0.85" />
</text>
</element>
<element name="but5">
<rect>
<bounds xc="0" yc="0" width="10" height="10" />
<color red="0.6" green="0.6" blue="0.61" />
</rect>
<rect>
<bounds xc="0" yc="0" width="9" height="9" />
<color red="0.86" green="0.86" blue="0.88" />
</rect>
<text string="5">
<bounds xc="0" yc="0" width="9" height="9" />
<color red="0.1" green="0.25" blue="0.85" />
</text>
</element>
<element name="but6">
<rect>
<bounds xc="0" yc="0" width="10" height="10" />
<color red="0.6" green="0.6" blue="0.61" />
</rect>
<rect>
<bounds xc="0" yc="0" width="9" height="9" />
<color red="0.86" green="0.86" blue="0.88" />
</rect>
<text string="6">
<bounds xc="0" yc="0" width="9" height="9" />
<color red="0.1" green="0.25" blue="0.85" />
</text>
</element>
<element name="but7">
<rect>
<bounds xc="0" yc="0" width="10" height="10" />
<color red="0.6" green="0.6" blue="0.61" />
</rect>
<rect>
<bounds xc="0" yc="0" width="9" height="9" />
<color red="0.86" green="0.86" blue="0.88" />
</rect>
<text string="7">
<bounds xc="0" yc="0" width="9" height="9" />
<color red="0.1" green="0.25" blue="0.85" />
</text>
</element>
<element name="but8">
<rect>
<bounds xc="0" yc="0" width="10" height="10" />
<color red="0.6" green="0.6" blue="0.61" />
</rect>
<rect>
<bounds xc="0" yc="0" width="9" height="9" />
<color red="0.86" green="0.86" blue="0.88" />
</rect>
<text string="8">
<bounds xc="0" yc="0" width="9" height="9" />
<color red="0.1" green="0.25" blue="0.85" />
</text>
</element>
<element name="but9">
<rect>
<bounds xc="0" yc="0" width="10" height="10" />
<color red="0.6" green="0.6" blue="0.61" />
</rect>
<rect>
<bounds xc="0" yc="0" width="9" height="9" />
<color red="0.86" green="0.86" blue="0.88" />
</rect>
<text string="9">
<bounds xc="0" yc="0" width="9" height="9" />
<color red="0.1" green="0.25" blue="0.85" />
</text>
</element>
<element name="but10">
<rect>
<bounds xc="0" yc="0" width="10" height="10" />
<color red="0.6" green="0.6" blue="0.61" />
</rect>
<rect>
<bounds xc="0" yc="0" width="9" height="9" />
<color red="0.86" green="0.86" blue="0.88" />
</rect>
<text string="10">
<bounds xc="0" yc="0" width="9" height="9" />
<color red="0.1" green="0.25" blue="0.85" />
</text>
</element>
<element name="but11">
<rect>
<bounds xc="0" yc="0" width="10" height="10" />
<color red="0.6" green="0.6" blue="0.61" />
</rect>
<rect>
<bounds xc="0" yc="0" width="9" height="9" />
<color red="0.86" green="0.86" blue="0.88" />
</rect>
<text string="11">
<bounds xc="0" yc="0" width="9" height="9" />
<color red="0.1" green="0.25" blue="0.85" />
</text>
</element>
<element name="but12">
<rect>
<bounds xc="0" yc="0" width="10" height="10" />
<color red="0.6" green="0.6" blue="0.61" />
</rect>
<rect>
<bounds xc="0" yc="0" width="9" height="9" />
<color red="0.86" green="0.86" blue="0.88" />
</rect>
<text string="12">
<bounds xc="0" yc="0" width="9" height="9" />
<color red="0.1" green="0.25" blue="0.85" />
</text>
</element>
<!-- p1 buttons -->
<group name="buttons1">
<element ref="white"><bounds x="-0.5" y="-0.5" width="18" height="9" /></element>
<element name="0.7" ref="led"><bounds xc="1" yc="1" width="0.7" height="0.7" /></element>
<element name="0.8" ref="led"><bounds xc="4" yc="1" width="0.7" height="0.7" /></element>
<element name="0.9" ref="led"><bounds xc="7" yc="1" width="0.7" height="0.7" /></element>
<element name="0.10" ref="led"><bounds xc="10" yc="1" width="0.7" height="0.7" /></element>
<element name="1.7" ref="led"><bounds xc="13" yc="1" width="0.7" height="0.7" /></element>
<element name="1.8" ref="led"><bounds xc="16" yc="1" width="0.7" height="0.7" /></element>
<element name="1.9" ref="led"><bounds xc="1" yc="5" width="0.7" height="0.7" /></element>
<element name="1.10" ref="led"><bounds xc="4" yc="5" width="0.7" height="0.7" /></element>
<element name="0.12" ref="led"><bounds xc="7" yc="5" width="0.7" height="0.7" /></element>
<element name="1.12" ref="led"><bounds xc="10" yc="5" width="0.7" height="0.7" /></element>
<element name="2.12" ref="led"><bounds xc="13" yc="5" width="0.7" height="0.7" /></element>
<element name="3.12" ref="led"><bounds xc="16" yc="5" width="0.7" height="0.7" /></element>
<element ref="but1"><bounds x="0" y="2" width="2" height="2" /></element>
<element ref="but2"><bounds x="3" y="2" width="2" height="2" /></element>
<element ref="but3"><bounds x="6" y="2" width="2" height="2" /></element>
<element ref="but4"><bounds x="9" y="2" width="2" height="2" /></element>
<element ref="but5"><bounds x="12" y="2" width="2" height="2" /></element>
<element ref="but6"><bounds x="15" y="2" width="2" height="2" /></element>
<element ref="but7"><bounds x="0" y="6" width="2" height="2" /></element>
<element ref="but8"><bounds x="3" y="6" width="2" height="2" /></element>
<element ref="but9"><bounds x="6" y="6" width="2" height="2" /></element>
<element ref="but10"><bounds x="9" y="6" width="2" height="2" /></element>
<element ref="but11"><bounds x="12" y="6" width="2" height="2" /></element>
<element ref="but12"><bounds x="15" y="6" width="2" height="2" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x10"><bounds x="0" y="2" width="2" height="2" /><color alpha="0.1" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x20"><bounds x="3" y="2" width="2" height="2" /><color alpha="0.1" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x40"><bounds x="6" y="2" width="2" height="2" /><color alpha="0.1" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x80"><bounds x="9" y="2" width="2" height="2" /><color alpha="0.1" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x10"><bounds x="12" y="2" width="2" height="2" /><color alpha="0.1" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x20"><bounds x="15" y="2" width="2" height="2" /><color alpha="0.1" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x40"><bounds x="0" y="6" width="2" height="2" /><color alpha="0.1" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x80"><bounds x="3" y="6" width="2" height="2" /><color alpha="0.1" /></element>
<element ref="hlb" inputtag="IN.2" inputmask="0x10"><bounds x="6" y="6" width="2" height="2" /><color alpha="0.1" /></element>
<element ref="hlb" inputtag="IN.2" inputmask="0x20"><bounds x="9" y="6" width="2" height="2" /><color alpha="0.1" /></element>
<element ref="hlb" inputtag="IN.2" inputmask="0x40"><bounds x="12" y="6" width="2" height="2" /><color alpha="0.1" /></element>
<element ref="hlb" inputtag="IN.2" inputmask="0x80"><bounds x="15" y="6" width="2" height="2" /><color alpha="0.1" /></element>
</group>
<!-- p2 buttons -->
<group name="buttons2">
<element ref="white"><bounds x="-0.5" y="-0.5" width="18" height="9" /></element>
<element name="2.7" ref="led"><bounds xc="1" yc="1" width="0.7" height="0.7" /></element>
<element name="2.8" ref="led"><bounds xc="4" yc="1" width="0.7" height="0.7" /></element>
<element name="2.9" ref="led"><bounds xc="7" yc="1" width="0.7" height="0.7" /></element>
<element name="2.10" ref="led"><bounds xc="10" yc="1" width="0.7" height="0.7" /></element>
<element name="3.7" ref="led"><bounds xc="13" yc="1" width="0.7" height="0.7" /></element>
<element name="3.8" ref="led"><bounds xc="16" yc="1" width="0.7" height="0.7" /></element>
<element name="3.9" ref="led"><bounds xc="1" yc="5" width="0.7" height="0.7" /></element>
<element name="3.10" ref="led"><bounds xc="4" yc="5" width="0.7" height="0.7" /></element>
<element name="0.11" ref="led"><bounds xc="7" yc="5" width="0.7" height="0.7" /></element>
<element name="1.11" ref="led"><bounds xc="10" yc="5" width="0.7" height="0.7" /></element>
<element name="2.11" ref="led"><bounds xc="13" yc="5" width="0.7" height="0.7" /></element>
<element name="3.11" ref="led"><bounds xc="16" yc="5" width="0.7" height="0.7" /></element>
<element ref="but1"><bounds x="0" y="2" width="2" height="2" /></element>
<element ref="but2"><bounds x="3" y="2" width="2" height="2" /></element>
<element ref="but3"><bounds x="6" y="2" width="2" height="2" /></element>
<element ref="but4"><bounds x="9" y="2" width="2" height="2" /></element>
<element ref="but5"><bounds x="12" y="2" width="2" height="2" /></element>
<element ref="but6"><bounds x="15" y="2" width="2" height="2" /></element>
<element ref="but7"><bounds x="0" y="6" width="2" height="2" /></element>
<element ref="but8"><bounds x="3" y="6" width="2" height="2" /></element>
<element ref="but9"><bounds x="6" y="6" width="2" height="2" /></element>
<element ref="but10"><bounds x="9" y="6" width="2" height="2" /></element>
<element ref="but11"><bounds x="12" y="6" width="2" height="2" /></element>
<element ref="but12"><bounds x="15" y="6" width="2" height="2" /></element>
<element ref="hlb" inputtag="IN.3" inputmask="0x10"><bounds x="0" y="2" width="2" height="2" /><color alpha="0.1" /></element>
<element ref="hlb" inputtag="IN.3" inputmask="0x20"><bounds x="3" y="2" width="2" height="2" /><color alpha="0.1" /></element>
<element ref="hlb" inputtag="IN.3" inputmask="0x40"><bounds x="6" y="2" width="2" height="2" /><color alpha="0.1" /></element>
<element ref="hlb" inputtag="IN.3" inputmask="0x80"><bounds x="9" y="2" width="2" height="2" /><color alpha="0.1" /></element>
<element ref="hlb" inputtag="IN.4" inputmask="0x10"><bounds x="12" y="2" width="2" height="2" /><color alpha="0.1" /></element>
<element ref="hlb" inputtag="IN.4" inputmask="0x20"><bounds x="15" y="2" width="2" height="2" /><color alpha="0.1" /></element>
<element ref="hlb" inputtag="IN.4" inputmask="0x40"><bounds x="0" y="6" width="2" height="2" /><color alpha="0.1" /></element>
<element ref="hlb" inputtag="IN.4" inputmask="0x80"><bounds x="3" y="6" width="2" height="2" /><color alpha="0.1" /></element>
<element ref="hlb" inputtag="IN.5" inputmask="0x10"><bounds x="6" y="6" width="2" height="2" /><color alpha="0.1" /></element>
<element ref="hlb" inputtag="IN.5" inputmask="0x20"><bounds x="9" y="6" width="2" height="2" /><color alpha="0.1" /></element>
<element ref="hlb" inputtag="IN.5" inputmask="0x40"><bounds x="12" y="6" width="2" height="2" /><color alpha="0.1" /></element>
<element ref="hlb" inputtag="IN.5" inputmask="0x80"><bounds x="15" y="6" width="2" height="2" /><color alpha="0.1" /></element>
</group>
<!-- 7seg display -->
<element name="digit" defstate="0">
<led7seg><color red="1.0" green="0.1" blue="0.15" /></led7seg>
</element>
<group name="digits">
<element name="digit3" ref="digit"><bounds x="0" y="0" width="0.75" height="1" /></element>
<element name="digit2" ref="digit"><bounds x="1" y="0" width="0.75" height="1" /></element>
<element name="digit1" ref="digit"><bounds x="2" y="0" width="0.75" height="1" /></element>
<element name="digit0" ref="digit"><bounds x="3" y="0" width="0.75" height="1" /></element>
</group>
<!-- build screen -->
<view name="Internal Layout">
<bounds left="14.5" right="85.5" top="4.5" bottom="101.5" />
<element ref="white"><bounds x="0" y="0" width="100" height="110" /></element>
<element ref="diskr"><bounds xc="28" yc="65" width="24" height="24" /></element>
<element ref="diskr"><bounds xc="72" yc="41" width="24" height="24" /></element>
<element ref="white"><bounds x="8" y="65" width="40" height="20" /></element>
<element ref="white"><bounds x="52" y="21" width="40" height="20" /></element>
<element ref="whited"><bounds x="26" y="53" width="60" height="40" /></element>
<element ref="whited"><bounds x="14" y="13" width="60" height="40" /></element>
<element ref="butb" inputtag="IN.1" inputmask="0x01"><bounds xc="28" yc="65" width="19" height="19" /></element>
<element ref="butb" inputtag="IN.2" inputmask="0x01"><bounds xc="72" yc="41" width="19" height="19" /></element>
<group ref="buttons1"><bounds x="28" y="79" width="44" height="22" /></group>
<group ref="buttons2"><bounds x="28" y="5" width="44" height="22" /><orientation rotate="180" /></group>
<element ref="grey"><bounds x="0" y="27" width="100" height="0.25" /></element>
<element ref="grey"><bounds x="0" y="78.75" width="100" height="0.25" /></element>
<element ref="black"><bounds x="-5" y="-5.5" width="110" height="10" /></element>
<element ref="black"><bounds x="-5" y="101.5" width="110" height="10" /></element>
<element ref="black"><bounds x="-5.5" y="-5" width="20" height="120" /></element>
<element ref="black"><bounds x="85.5" y="-5" width="20" height="120" /></element>
<element ref="text_p1"><bounds x="50.5" y="57" width="10" height="2" /></element>
<element ref="text_v"><bounds x="50.5" y="59" width="10" height="2" /></element>
<element ref="text_p2"><bounds x="39.5" y="47" width="10" height="2" /><orientation rotate="180" /></element>
<element ref="text_v"><bounds x="39.5" y="45" width="10" height="2" /><orientation rotate="180" /></element>
<element ref="switch_game" inputtag="IN.0" inputmask="0x0e" inputraw="yes"><bounds xc="28" y="46.5" width="14.21" height="4.9" /></element>
<element ref="black"><bounds x="38" y="49" width="24" height="8" /></element>
<group ref="digits"><bounds x="40" y="50.25" width="20" height="5.5" /><orientation rotate="180" /></group>
</view>
</mamelayout>

203
src/mame/layout/tchess.lay Normal file
View File

@ -0,0 +1,203 @@
<?xml version="1.0"?>
<!--
license:CC0-1.0
-->
<mamelayout version="2">
<!-- NOTE: no chesspieces simulation here -->
<!-- define elements -->
<element name="black"><rect><color red="0.17" green="0.17" blue="0.17" /></rect></element>
<element name="white"><rect><color red="0.85" green="0.85" blue="0.85" /></rect></element>
<element name="hlb" defstate="0">
<rect state="0"><color alpha="0" /></rect>
<rect state="1"><color red="0" green="0" blue="0" /></rect>
</element>
<element name="hlw" defstate="0">
<rect state="0"><color alpha="0" /></rect>
<rect state="1"><color red="1" green="1" blue="1" /></rect>
</element>
<element name="text_b2">
<rect><color red="0.85" green="0.85" blue="0.85" /></rect>
<text string="XMV"><color red="0.1" green="0.1" blue="0.1" /></text>
</element>
<element name="text_b3">
<rect><color red="0.85" green="0.85" blue="0.85" /></rect>
<text string="FP"><color red="0.1" green="0.1" blue="0.1" /></text>
</element>
<element name="text_b4">
<rect><color red="0.85" green="0.85" blue="0.85" /></rect>
<text string="EP"><color red="0.1" green="0.1" blue="0.1" /></text>
</element>
<element name="text_b5">
<rect><color red="0.85" green="0.85" blue="0.85" /></rect>
<text string="PLY"><color red="0.1" green="0.1" blue="0.1" /></text>
</element>
<element name="text_b6">
<rect><color red="0.85" green="0.85" blue="0.85" /></rect>
<text string="RST"><color red="0.1" green="0.1" blue="0.1" /></text>
</element>
<element name="text_b11">
<rect><color red="0.85" green="0.85" blue="0.85" /></rect>
<text string="WSD"><color red="0.1" green="0.1" blue="0.1" /></text>
</element>
<element name="text_b16">
<rect><color red="0.85" green="0.85" blue="0.85" /></rect>
<text string="BSD"><color red="0.1" green="0.1" blue="0.1" /></text>
</element>
<element name="text_b21">
<rect><color red="0.85" green="0.85" blue="0.85" /></rect>
<text string="CE"><color red="0.1" green="0.1" blue="0.1" /></text>
</element>
<element name="text_b7a"><text string="A"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_b7b"><text string="WK"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_b8a"><text string="B"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_b8b"><text string="WQ"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_b9a"><text string="C"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_b9b"><text string="WB"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_b10a"><text string="D"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_b10b"><text string="WN"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_b12a"><text string="E"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_b12b"><text string="WR"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_b13a"><text string="F"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_b13b"><text string="WP"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_b14a"><text string="G"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_b15a"><text string="H"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_b17a"><text string="1"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_b17b"><text string="BK"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_b18a"><text string="2"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_b18b"><text string="BQ"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_b19a"><text string="3"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_b19b"><text string="BB"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_b20a"><text string="4"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_b20b"><text string="BN"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_b22a"><text string="5"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_b22b"><text string="BR"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_b23a"><text string="6"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_b23b"><text string="BP"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_b24a"><text string="7"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<element name="text_b25a"><text string="8"><color red="0.7" green="0.7" blue="0.7" /></text></element>
<!-- 7seg display -->
<element name="digit" defstate="0">
<led7seg><color red="1.0" green="0.1" blue="0.15" /></led7seg>
</element>
<group name="display">
<element ref="digit"><bounds x="0" y="0" width="0.66" height="1" /></element> <!-- N/C -->
<element name="digit0" ref="digit"><bounds x="1" y="0" width="0.66" height="1" /></element>
<element name="digit1" ref="digit"><bounds x="2" y="0" width="0.66" height="1" /></element>
<element name="digit2" ref="digit"><bounds x="3" y="0" width="0.66" height="1" /></element>
<element name="digit3" ref="digit"><bounds x="4" y="0" width="0.66" height="1" /></element>
<element ref="digit"><bounds x="5" y="0" width="0.66" height="1" /></element> <!-- N/C -->
<element name="digit4" ref="digit"><bounds x="6" y="0" width="0.66" height="1" /></element>
<element name="digit5" ref="digit"><bounds x="7" y="0" width="0.66" height="1" /></element>
<element ref="digit"><bounds x="8" y="0" width="0.66" height="1" /></element> <!-- N/C -->
</group>
<!-- build screen -->
<view name="Internal Layout">
<bounds left="9" right="35.5" top="1.5" bottom="37.25" />
<group ref="display"><bounds x="10" y="4.5" width="24.5" height="2.75" /></group>
<element ref="white"><bounds x="10" y="10" width="4.5" height="4.5" /></element> <!-- ON switch is here -->
<element ref="white"><bounds x="15" y="10" width="4.5" height="4.5" /></element>
<element ref="white"><bounds x="20" y="10" width="4.5" height="4.5" /></element>
<element ref="white"><bounds x="25" y="10" width="4.5" height="4.5" /></element>
<element ref="white"><bounds x="30" y="10" width="4.5" height="4.5" /></element>
<element ref="white"><bounds x="10" y="15" width="4.5" height="4.5" /></element>
<element ref="black"><bounds x="15" y="15" width="4.5" height="4.5" /></element>
<element ref="black"><bounds x="20" y="15" width="4.5" height="4.5" /></element>
<element ref="black"><bounds x="25" y="15" width="4.5" height="4.5" /></element>
<element ref="black"><bounds x="30" y="15" width="4.5" height="4.5" /></element>
<element ref="white"><bounds x="10" y="20" width="4.5" height="4.5" /></element>
<element ref="black"><bounds x="15" y="20" width="4.5" height="4.5" /></element>
<element ref="black"><bounds x="20" y="20" width="4.5" height="4.5" /></element>
<element ref="black"><bounds x="25" y="20" width="4.5" height="4.5" /></element>
<element ref="black"><bounds x="30" y="20" width="4.5" height="4.5" /></element>
<element ref="white"><bounds x="10" y="25" width="4.5" height="4.5" /></element>
<element ref="black"><bounds x="15" y="25" width="4.5" height="4.5" /></element>
<element ref="black"><bounds x="20" y="25" width="4.5" height="4.5" /></element>
<element ref="black"><bounds x="25" y="25" width="4.5" height="4.5" /></element>
<element ref="black"><bounds x="30" y="25" width="4.5" height="4.5" /></element>
<element ref="white"><bounds x="10" y="30" width="4.5" height="4.5" /></element>
<element ref="black"><bounds x="15" y="30" width="4.5" height="4.5" /></element>
<element ref="black"><bounds x="20" y="30" width="4.5" height="4.5" /></element>
<element ref="black"><bounds x="25" y="30" width="4.5" height="4.5" /></element>
<element ref="black"><bounds x="30" y="30" width="4.5" height="4.5" /></element>
<element ref="text_b2"><bounds x="15" y="11" width="4.5" height="2.5" /></element>
<element ref="text_b3"><bounds x="20" y="11" width="4.5" height="2.5" /></element>
<element ref="text_b4"><bounds x="25" y="11" width="4.5" height="2.5" /></element>
<element ref="text_b5"><bounds x="30" y="11" width="4.5" height="2.5" /></element>
<element ref="text_b6"><bounds x="10" y="16" width="4.5" height="2.5" /></element>
<element ref="text_b11"><bounds x="10" y="21" width="4.5" height="2.5" /></element>
<element ref="text_b16"><bounds x="10" y="26" width="4.5" height="2.5" /></element>
<element ref="text_b21"><bounds x="10" y="31" width="4.5" height="2.5" /></element>
<element ref="text_b7a" blend="add"><bounds x="15" y="15" width="4.5" height="2.5" /></element>
<element ref="text_b7b" blend="add"><bounds x="15" y="17" width="4.5" height="2.5" /></element>
<element ref="text_b8a" blend="add"><bounds x="20" y="15" width="4.5" height="2.5" /></element>
<element ref="text_b8b" blend="add"><bounds x="20" y="17" width="4.5" height="2.5" /></element>
<element ref="text_b9a" blend="add"><bounds x="25" y="15" width="4.5" height="2.5" /></element>
<element ref="text_b9b" blend="add"><bounds x="25" y="17" width="4.5" height="2.5" /></element>
<element ref="text_b10a" blend="add"><bounds x="30" y="15" width="4.5" height="2.5" /></element>
<element ref="text_b10b" blend="add"><bounds x="30" y="17" width="4.5" height="2.5" /></element>
<element ref="text_b12a" blend="add"><bounds x="15" y="20" width="4.5" height="2.5" /></element>
<element ref="text_b12b" blend="add"><bounds x="15" y="22" width="4.5" height="2.5" /></element>
<element ref="text_b13a" blend="add"><bounds x="20" y="20" width="4.5" height="2.5" /></element>
<element ref="text_b13b" blend="add"><bounds x="20" y="22" width="4.5" height="2.5" /></element>
<element ref="text_b14a" blend="add"><bounds x="25" y="20" width="4.5" height="2.5" /></element>
<element ref="text_b15a" blend="add"><bounds x="30" y="20" width="4.5" height="2.5" /></element>
<element ref="text_b17a" blend="add"><bounds x="15" y="25" width="4.5" height="2.5" /></element>
<element ref="text_b17b" blend="add"><bounds x="15" y="27" width="4.5" height="2.5" /></element>
<element ref="text_b18a" blend="add"><bounds x="20" y="25" width="4.5" height="2.5" /></element>
<element ref="text_b18b" blend="add"><bounds x="20" y="27" width="4.5" height="2.5" /></element>
<element ref="text_b19a" blend="add"><bounds x="25" y="25" width="4.5" height="2.5" /></element>
<element ref="text_b19b" blend="add"><bounds x="25" y="27" width="4.5" height="2.5" /></element>
<element ref="text_b20a" blend="add"><bounds x="30" y="25" width="4.5" height="2.5" /></element>
<element ref="text_b20b" blend="add"><bounds x="30" y="27" width="4.5" height="2.5" /></element>
<element ref="text_b22a" blend="add"><bounds x="15" y="30" width="4.5" height="2.5" /></element>
<element ref="text_b22b" blend="add"><bounds x="15" y="32" width="4.5" height="2.5" /></element>
<element ref="text_b23a" blend="add"><bounds x="20" y="30" width="4.5" height="2.5" /></element>
<element ref="text_b23b" blend="add"><bounds x="20" y="32" width="4.5" height="2.5" /></element>
<element ref="text_b24a" blend="add"><bounds x="25" y="30" width="4.5" height="2.5" /></element>
<element ref="text_b25a" blend="add"><bounds x="30" y="30" width="4.5" height="2.5" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x02"><bounds x="15" y="10" width="4.5" height="4.5" /><color alpha="0.25" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x04"><bounds x="20" y="10" width="4.5" height="4.5" /><color alpha="0.25" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x08"><bounds x="25" y="10" width="4.5" height="4.5" /><color alpha="0.25" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x10"><bounds x="30" y="10" width="4.5" height="4.5" /><color alpha="0.25" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x01"><bounds x="10" y="15" width="4.5" height="4.5" /><color alpha="0.25" /></element>
<element ref="hlw" inputtag="IN.1" inputmask="0x02"><bounds x="15" y="15" width="4.5" height="4.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.1" inputmask="0x04"><bounds x="20" y="15" width="4.5" height="4.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.1" inputmask="0x08"><bounds x="25" y="15" width="4.5" height="4.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.1" inputmask="0x10"><bounds x="30" y="15" width="4.5" height="4.5" /><color alpha="0.08" /></element>
<element ref="hlb" inputtag="IN.2" inputmask="0x01"><bounds x="10" y="20" width="4.5" height="4.5" /><color alpha="0.25" /></element>
<element ref="hlw" inputtag="IN.2" inputmask="0x02"><bounds x="15" y="20" width="4.5" height="4.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.2" inputmask="0x04"><bounds x="20" y="20" width="4.5" height="4.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.2" inputmask="0x08"><bounds x="25" y="20" width="4.5" height="4.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.2" inputmask="0x10"><bounds x="30" y="20" width="4.5" height="4.5" /><color alpha="0.08" /></element>
<element ref="hlb" inputtag="IN.3" inputmask="0x01"><bounds x="10" y="25" width="4.5" height="4.5" /><color alpha="0.25" /></element>
<element ref="hlw" inputtag="IN.3" inputmask="0x02"><bounds x="15" y="25" width="4.5" height="4.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.3" inputmask="0x04"><bounds x="20" y="25" width="4.5" height="4.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.3" inputmask="0x08"><bounds x="25" y="25" width="4.5" height="4.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.3" inputmask="0x10"><bounds x="30" y="25" width="4.5" height="4.5" /><color alpha="0.08" /></element>
<element ref="hlb" inputtag="IN.4" inputmask="0x01"><bounds x="10" y="30" width="4.5" height="4.5" /><color alpha="0.25" /></element>
<element ref="hlw" inputtag="IN.4" inputmask="0x02"><bounds x="15" y="30" width="4.5" height="4.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.4" inputmask="0x04"><bounds x="20" y="30" width="4.5" height="4.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.4" inputmask="0x08"><bounds x="25" y="30" width="4.5" height="4.5" /><color alpha="0.08" /></element>
<element ref="hlw" inputtag="IN.4" inputmask="0x10"><bounds x="30" y="30" width="4.5" height="4.5" /><color alpha="0.08" /></element>
</view>
</mamelayout>

View File

@ -43506,6 +43506,9 @@ k28
@source:tiger/k28m2.cpp
k28m2
@source:tiger/pylo.cpp
pylo
@source:tigertel/gizmondo.cpp
gizmondo //
@ -43841,6 +43844,15 @@ cp500 // Prologica CP500
@source:trs/vis.cpp
vis
@source:tryom/chess.cpp
tchess
@source:tryom/gammonm.cpp
gammonm2
@source:tryom/omar.cpp
omar
@source:tvgames/actions_atj2279b.cpp
rbitgen

View File

@ -1090,6 +1090,7 @@ ti/tm990189.cpp
tiger/gamecom.cpp
tiger/k28.cpp
tiger/k28m2.cpp
tiger/pylo.cpp
tigertel/gizmondo.cpp
tiki/tiki100.cpp
tomy/tomy_princ.cpp
@ -1128,6 +1129,9 @@ trs/trs80dt1.cpp
trs/trs80m2.cpp
trs/trs80m3.cpp
trs/vis.cpp
tryom/chess.cpp
tryom/gammonm.cpp
tryom/omar.cpp
tvgames/actions_atj2279b.cpp
tvgames/elan_ep3a19a.cpp
tvgames/elan_eu3a05.cpp

226
src/mame/tiger/pylo.cpp Normal file
View File

@ -0,0 +1,226 @@
// license:BSD-3-Clause
// copyright-holders:hap
// thanks-to:Sean Riddle, Frank Palazzolo
/*******************************************************************************
Tiger Punch Your Lights Out (model 7-571)
Hardware notes:
- PCB label: 7-571A
- TI TMS70C40 @ 4MHz, custom label but decap shows it's a TMS70C40F with
ROM serial C61013, 4KB internal ROM is half empty
- 4 7segs, 4*6 other leds, piezo
There's also a version with a Toshiba TMP47C200.
*******************************************************************************/
#include "emu.h"
#include "cpu/tms7000/tms7000.h"
#include "sound/spkrdev.h"
#include "video/pwm.h"
#include "speaker.h"
#include "pylo.lh" // clickable
namespace {
class pylo_state : public driver_device
{
public:
pylo_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_display(*this, "display"),
m_speaker(*this, "speaker"),
m_inputs(*this, "IN.%u", 0)
{ }
void pylo(machine_config &config);
protected:
virtual void machine_start() override;
private:
// devices/pointers
required_device<tms70c40_device> m_maincpu;
required_device<pwm_display_device> m_display;
required_device<speaker_sound_device> m_speaker;
required_ioport_array<6> m_inputs;
void update_display();
u8 input_r();
void input_w(u8 data);
void digit_w(u8 data);
void led_w(u8 data);
u8 m_inp_mux = 0;
u8 m_digit_data = 0;
u8 m_led_data = 0;
};
void pylo_state::machine_start()
{
// register for savestates
save_item(NAME(m_inp_mux));
save_item(NAME(m_digit_data));
save_item(NAME(m_led_data));
}
/*******************************************************************************
I/O
*******************************************************************************/
void pylo_state::update_display()
{
m_display->matrix(m_inp_mux >> 2, m_led_data << 7 | m_digit_data);
}
u8 pylo_state::input_r()
{
u8 data = 0;
// A0-A7: multiplexed inputs
for (int i = 0; i < 6; i++)
if (BIT(m_inp_mux, i))
data |= m_inputs[i]->read();
return data;
}
void pylo_state::input_w(u8 data)
{
// B0-B5: input mux
// B2-B5: digit/led select
// B6,B7: N/C
m_inp_mux = data & 0x3f;
update_display();
}
void pylo_state::digit_w(u8 data)
{
// C0-C6: digit segments
// C7: N/C
m_digit_data = ~data & 0x7f;
update_display();
}
void pylo_state::led_w(u8 data)
{
// D0-D5: led data
m_led_data = ~data & 0x3f;
update_display();
// D6: N/C
// D7: speaker out
m_speaker->level_w(BIT(~data, 7));
}
/*******************************************************************************
Input Ports
*******************************************************************************/
static INPUT_PORTS_START( pylo )
PORT_START("IN.0")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_CONFNAME( 0x0e, 0x02, "Game" )
PORT_CONFSETTING( 0x02, "1" )
PORT_CONFSETTING( 0x04, "2" )
PORT_CONFSETTING( 0x08, "3" )
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_BUTTON1)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_BUTTON2)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_BUTTON3)
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_BUTTON4)
PORT_START("IN.1")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_START1)
PORT_BIT(0x0e, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_BUTTON5)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_BUTTON6)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_BUTTON7)
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_BUTTON8)
PORT_START("IN.2")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_START2)
PORT_BIT(0x0e, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_BUTTON9)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_BUTTON10)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_BUTTON11)
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_BUTTON12)
PORT_START("IN.3")
PORT_BIT(0x0f, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_COCKTAIL
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_COCKTAIL
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_COCKTAIL
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_COCKTAIL
PORT_START("IN.4")
PORT_BIT(0x0f, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_COCKTAIL
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_BUTTON6) PORT_COCKTAIL
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_BUTTON7) PORT_COCKTAIL
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_BUTTON8) PORT_COCKTAIL
PORT_START("IN.5")
PORT_BIT(0x0f, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_BUTTON9) PORT_COCKTAIL
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_BUTTON10) PORT_COCKTAIL
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_BUTTON11) PORT_COCKTAIL
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_BUTTON12) PORT_COCKTAIL
INPUT_PORTS_END
/*******************************************************************************
Machine Configs
*******************************************************************************/
void pylo_state::pylo(machine_config &config)
{
// basic machine hardware
TMS70C40(config, m_maincpu, 4_MHz_XTAL);
m_maincpu->in_porta().set(FUNC(pylo_state::input_r));
m_maincpu->out_portb().set(FUNC(pylo_state::input_w));
m_maincpu->out_portc().set(FUNC(pylo_state::digit_w));
m_maincpu->out_portd().set(FUNC(pylo_state::led_w));
// video hardware
PWM_DISPLAY(config, m_display).set_size(4, 13);
m_display->set_segmask(0xf, 0x7f);
config.set_default_layout(layout_pylo);
// sound hardware
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker);
m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
}
/*******************************************************************************
ROM Definitions
*******************************************************************************/
ROM_START( pylo )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD("1-7571a1-2.u1", 0x0000, 0x1000, CRC(0cb01059) SHA1(68a422cef6513e8eed2d83d492e2be11d049d183) )
ROM_END
} // anonymous namespace
/*******************************************************************************
Drivers
*******************************************************************************/
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
CONS( 1988, pylo, 0, 0, pylo, pylo, pylo_state, empty_init, "Tiger", "Punch Your Lights Out", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )

281
src/mame/tryom/chess.cpp Normal file
View File

@ -0,0 +1,281 @@
// license:BSD-3-Clause
// copyright-holders:hap
// thanks-to:Sean Riddle
/*******************************************************************************
Tryom Electronic Chess (model CC-700)
Hardware notes:
- PCB label: 170-313-01, JAB, TRYOM
- Fairchild 3870 MCU, label SL90453
- 256x4 RAM (SCM5101E-8)
- 9-digit 7seg led panel (3 unused), piezo
The hardware has similarities with Omar.
The user interface resembles CompuChess. At the "L" prompt, enter level (1-8).
At "bP", press A for new game, B for empty board, C to continue. At "0", press
1-4 for an opening book, or 5 to select one at random.
*******************************************************************************/
#include "emu.h"
#include "cpu/f8/f8.h"
#include "machine/f3853.h"
#include "sound/dac.h"
#include "video/pwm.h"
#include "speaker.h"
#include "tchess.lh" // clickable
namespace {
class chess_state : public driver_device
{
public:
chess_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_display(*this, "display"),
m_dac(*this, "dac"),
m_inputs(*this, "IN.%u", 0)
{ }
void tchess(machine_config &config);
protected:
virtual void machine_start() override;
private:
// devices/pointers
required_device<cpu_device> m_maincpu;
required_device<pwm_display_device> m_display;
required_device<dac_bit_interface> m_dac;
required_ioport_array<5> m_inputs;
void main_map(address_map &map);
void main_io(address_map &map);
u8 read_inputs();
void p0_w(u8 data);
u8 p0_r();
void p1_w(u8 data);
u8 p1_r();
void p4_w(u8 data);
u8 p4_r();
void p5_w(u8 data);
u8 p5_r();
std::unique_ptr<u8[]> m_ram;
u8 m_ram_address = 0;
u8 m_ram_data = 0;
u8 m_inp_mux = 0;
u8 m_digit_data = 0;
};
void chess_state::machine_start()
{
m_ram = make_unique_clear<u8[]>(0x100);
// register for savestates
save_pointer(NAME(m_ram), 0x100);
save_item(NAME(m_ram_address));
save_item(NAME(m_ram_data));
save_item(NAME(m_inp_mux));
save_item(NAME(m_digit_data));
}
/*******************************************************************************
I/O
*******************************************************************************/
u8 chess_state::read_inputs()
{
u8 data = 0;
for (int i = 0; i < 5; i++)
if (BIT(m_inp_mux, i))
data |= m_inputs[i]->read();
return data;
}
void chess_state::p0_w(u8 data)
{
// P00-P05: digit select, input mux
// P06: RAM CE1
m_display->write_my(~data & 0x3f);
m_inp_mux = data;
}
u8 chess_state::p0_r()
{
// P07: multiplexed inputs (high)
return (read_inputs() << 3 & 0x80) | m_inp_mux;
}
void chess_state::p1_w(u8 data)
{
// P10-P17: RAM address
m_ram_address = data;
}
u8 chess_state::p1_r()
{
return m_ram_address;
}
void chess_state::p4_w(u8 data)
{
// P40-P43: RAM DI
if (m_inp_mux & 0x40)
m_ram[m_ram_address] = data & 0xf;
m_ram_data = data;
}
u8 chess_state::p4_r()
{
// P44-P47: multiplexed inputs (low), RAM DO
u8 data = read_inputs();
if (m_inp_mux & 0x40)
data |= m_ram[m_ram_address];
return data << 4 | m_ram_data;
}
void chess_state::p5_w(u8 data)
{
// P50-P56: digit data
m_display->write_mx(bitswap<7>(~data,0,1,5,4,6,2,3));
m_digit_data = data;
// P57: speaker out
m_dac->write(BIT(data, 7));
}
u8 chess_state::p5_r()
{
return m_digit_data;
}
/*******************************************************************************
Address Maps
*******************************************************************************/
void chess_state::main_map(address_map &map)
{
map.global_mask(0x7ff);
map(0x0000, 0x07ff).rom();
}
void chess_state::main_io(address_map &map)
{
map(0x00, 0x00).rw(FUNC(chess_state::p0_r), FUNC(chess_state::p0_w));
map(0x01, 0x01).rw(FUNC(chess_state::p1_r), FUNC(chess_state::p1_w));
map(0x04, 0x07).rw("psu", FUNC(f38t56_device::read), FUNC(f38t56_device::write));
}
/*******************************************************************************
Input Ports
*******************************************************************************/
static INPUT_PORTS_START( tchess )
PORT_START("IN.0")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_X) PORT_NAME("XMV")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_N) PORT_NAME("FP")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_M) PORT_NAME("EP")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("PLY")
PORT_START("IN.1")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_NAME("RST")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_NAME("A / WK")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_NAME("B / WQ")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_C) PORT_NAME("C / WB")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_D) PORT_NAME("D / WN")
PORT_START("IN.2")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_W) PORT_NAME("WSD")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) PORT_NAME("E / WR")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F) PORT_NAME("F / WP")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_G) PORT_NAME("G")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_H) PORT_NAME("H")
PORT_START("IN.3")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_NAME("BSD")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("1 / BK")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("2 / BQ")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("3 / BB")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("4 / BN")
PORT_START("IN.4")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("CE")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("5 / BR")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("6 / BP")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("7")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("8")
INPUT_PORTS_END
/*******************************************************************************
Machine Configs
*******************************************************************************/
void chess_state::tchess(machine_config &config)
{
// basic machine hardware
F8(config, m_maincpu, 4500000/2); // approximation
m_maincpu->set_addrmap(AS_PROGRAM, &chess_state::main_map);
m_maincpu->set_addrmap(AS_IO, &chess_state::main_io);
m_maincpu->set_irq_acknowledge_callback("psu", FUNC(f38t56_device::int_acknowledge));
f38t56_device &psu(F38T56(config, "psu", 4500000/2));
psu.set_int_vector(0x20);
psu.int_req_callback().set_inputline("maincpu", F8_INPUT_LINE_INT_REQ);
psu.read_a().set(FUNC(chess_state::p4_r));
psu.write_a().set(FUNC(chess_state::p4_w));
psu.read_b().set(FUNC(chess_state::p5_r));
psu.write_b().set(FUNC(chess_state::p5_w));
// video hardware
PWM_DISPLAY(config, m_display).set_size(6, 7);
m_display->set_segmask(0x3f, 0x7f);
config.set_default_layout(layout_tchess);
// sound hardware
SPEAKER(config, "speaker").front_center();
DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
}
/*******************************************************************************
ROM Definitions
*******************************************************************************/
ROM_START( tchess )
ROM_REGION( 0x0800, "maincpu", 0 )
ROM_LOAD("sl90453", 0x0000, 0x0800, CRC(f7fbe9b0) SHA1(d79ae43acfdf733908bc57b1fcca2563a2fdf48e) )
ROM_END
} // anonymous namespace
/*******************************************************************************
Drivers
*******************************************************************************/
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
CONS( 1981, tchess, 0, 0, tchess, tchess, chess_state, empty_init, "Tryom", "Electronic Chess (Tryom)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )

201
src/mame/tryom/gammonm.cpp Normal file
View File

@ -0,0 +1,201 @@
// license:BSD-3-Clause
// copyright-holders:hap
// thanks-to:Sean Riddle
/*******************************************************************************
Tryom Gammon Master series, backgammon computer
Gammon Master (published by Cardinal) (not dumped yet)
Gammonmaster II (standard model and Doubler model)
According to the manual, the two GM II have the same housing. GM II has labels
intended for The Doubler, but they don't apply to this model.
Hardware notes:
- PCB label: AN0178 REV I, JRH
- Motorola MC6800P @ ~0.85MHz (no XTAL, main clock and NMI are from a 74124)
- 512 bytes RAM (4*NEC D2111AL-4), 4KB+2KB ROM
- DL-4507 4-digit 7seg panel + other leds for dice and status
- no sound, non-electronic backgammon board is attached
To start a game, press ST twice, then EN. Read the manual for more information.
For test mode, press BO after boot, followed by a number.
TODO:
- what is IN.5 0x04 for? maybe just for led strobe timing (reads it at PC=E1BB,
sets a counter in RAM offset E3)
- it locks up when holding the 1 key at boot (happens on real machine too),
what's the purpose of checking this key at power on?
*******************************************************************************/
#include "emu.h"
#include "cpu/m6800/m6800.h"
#include "video/pwm.h"
#include "gammonm2.lh" // clickable
namespace {
class gammonm_state : public driver_device
{
public:
gammonm_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_display(*this, "display"),
m_inputs(*this, "IN.%u", 0)
{ }
void gammonm2(machine_config &config);
private:
// devices/pointers
required_device<cpu_device> m_maincpu;
required_device<pwm_display_device> m_display;
required_ioport_array<6> m_inputs;
void main_map(address_map &map);
void led_w(offs_t offset, u8 data);
void digit_w(offs_t offset, u8 data);
u8 input_r(offs_t offset);
};
/*******************************************************************************
I/O
*******************************************************************************/
void gammonm_state::led_w(offs_t offset, u8 data)
{
// a0-a3 + data: misc leds
m_display->matrix_partial(4, 4, offset, ~data);
}
void gammonm_state::digit_w(offs_t offset, u8 data)
{
// a0-a3 + data: 7seg leds
m_display->matrix_partial(0, 4, offset, bitswap<8>(~data,4,6,3,5,2,7,1,0));
}
u8 gammonm_state::input_r(offs_t offset)
{
u8 data = 0x0f;
// read multiplexed inputs
for (int i = 0; i < 5; i++)
if (!BIT(offset, i))
data &= m_inputs[i]->read();
return data | m_inputs[5]->read() << 4;
}
/*******************************************************************************
Address Maps
*******************************************************************************/
void gammonm_state::main_map(address_map &map)
{
map(0x0000, 0x01ff).ram();
map(0x4000, 0x400f).mirror(0x1ff0).w(FUNC(gammonm_state::led_w));
map(0x6000, 0x601f).mirror(0x1fe0).r(FUNC(gammonm_state::input_r));
map(0x8000, 0x800f).mirror(0x1ff0).w(FUNC(gammonm_state::digit_w));
map(0xe000, 0xe7ff).rom();
map(0xf000, 0xffff).rom();
}
/*******************************************************************************
Input Ports
*******************************************************************************/
static INPUT_PORTS_START( gammonm2 )
PORT_START("IN.0")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_NAME("ST")
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("CL")
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("EN")
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_UP) PORT_NAME("Up")
PORT_START("IN.1")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_NAME("BA")
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_O) PORT_NAME("BO")
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_V) PORT_NAME("VR")
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_DOWN) PORT_NAME("Down")
PORT_START("IN.2")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("9")
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("10")
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_MINUS) PORT_NAME("11")
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("12")
PORT_START("IN.3")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("5")
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("6")
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("7")
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("8")
PORT_START("IN.4")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("1")
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("2")
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("3")
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("4")
PORT_START("IN.5")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN)
PORT_CONFNAME( 0x08, 0x00, "Version" ) // factory-set
PORT_CONFSETTING( 0x08, "Standard" )
PORT_CONFSETTING( 0x00, "The Doubler" )
INPUT_PORTS_END
/*******************************************************************************
Machine Configs
*******************************************************************************/
void gammonm_state::gammonm2(machine_config &config)
{
// basic machine hardware
M6800(config, m_maincpu, 850000); // measured
m_maincpu->set_addrmap(AS_PROGRAM, &gammonm_state::main_map);
const attotime nmi_period = attotime::from_hz(262); // measured
m_maincpu->set_periodic_int(FUNC(gammonm_state::nmi_line_pulse), nmi_period);
// video hardware
PWM_DISPLAY(config, m_display).set_size(8, 8);
m_display->set_segmask(0xf, 0x7f);
config.set_default_layout(layout_gammonm2);
}
/*******************************************************************************
ROM Definitions
*******************************************************************************/
ROM_START( gammonm2 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("c38083_bc3.0-s3", 0xe000, 0x0800, CRC(5a82df02) SHA1(dbad870b0fc69c1af892441aa5a851366c7b04a6) )
ROM_LOAD("d2332c_027", 0xf000, 0x1000, CRC(407e015e) SHA1(09900a672e8cc6f280253544511e6e08a1c78a02) )
ROM_END
} // anonymous namespace
/*******************************************************************************
Drivers
*******************************************************************************/
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
CONS( 1978, gammonm2, 0, 0, gammonm2, gammonm2, gammonm_state, empty_init, "Tryom", "Gammonmaster II", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW | MACHINE_CLICKABLE_ARTWORK )

245
src/mame/tryom/omar.cpp Normal file
View File

@ -0,0 +1,245 @@
// license:BSD-3-Clause
// copyright-holders:hap
// thanks-to:Sean Riddle
/*******************************************************************************
Tryom Omar, handheld backgammon computer
Hardware notes:
- PCB label: AP0379 REV.8, PC103, JRH
- Fairchild 3870 MCU, custom label
- 9-digit 7seg led panel (3 unused), piezo
Omar II has an LCD instead of 7segs. PCB label is AN2379 REV.6, PC101.
There are more 'sequels', but assumed to be the same game. The newer ones didn't
include a backgammon board.
LED versions: Omar(I), Omar IV, Electronic Backgammon (Cardinal)
LCD versions: Omar II, Omar III, Omar V, Computerized Backgammon (Tandy)
BTANB:
- piezo buzzes when you hold down a button
*******************************************************************************/
#include "emu.h"
#include "cpu/f8/f8.h"
#include "machine/f3853.h"
#include "sound/dac.h"
#include "video/pwm.h"
#include "speaker.h"
#include "omar.lh" // clickable
namespace {
class omar_state : public driver_device
{
public:
omar_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_display(*this, "display"),
m_dac(*this, "dac"),
m_inputs(*this, "IN.%u", 0)
{ }
void omar(machine_config &config);
protected:
virtual void machine_start() override;
private:
// devices/pointers
required_device<cpu_device> m_maincpu;
required_device<pwm_display_device> m_display;
required_device<dac_bit_interface> m_dac;
required_ioport_array<5> m_inputs;
void main_map(address_map &map);
void main_io(address_map &map);
void p0_w(u8 data);
void p1_w(u8 data);
void p4_w(u8 data);
u8 p4_r();
void p5_w(u8 data);
u8 m_inp_mux = 0;
};
void omar_state::machine_start()
{
// register for savestates
save_item(NAME(m_inp_mux));
}
/*******************************************************************************
I/O
*******************************************************************************/
void omar_state::p0_w(u8 data)
{
// P00: input mux part
m_inp_mux = (m_inp_mux & ~2) | (data << 1 & 2);
// P01-P06: digit select
m_display->write_my(~data >> 1 & 0x3f);
// P07: speaker out
m_dac->write(BIT(~data, 7));
}
void omar_state::p1_w(u8 data)
{
// P10,P12-P17: digit data
m_display->write_mx(bitswap<7>(~data,4,5,7,3,0,6,2));
// P11: input mux part
m_inp_mux = (m_inp_mux & ~1) | (data >> 1 & 1);
}
void omar_state::p4_w(u8 data)
{
// P40,P41: input mux part
m_inp_mux = (m_inp_mux & ~0xc) | (data << 2 & 0xc);
}
u8 omar_state::p4_r()
{
u8 data = 0;
// P42-P46: multiplexed inputs
for (int i = 0; i < 5; i++)
if (BIT(m_inp_mux, i))
data |= m_inputs[i]->read();
return data << 2;
}
void omar_state::p5_w(u8 data)
{
// P55: input mux part
m_inp_mux = (m_inp_mux & ~0x10) | (data >> 1 & 0x10);
}
/*******************************************************************************
Address Maps
*******************************************************************************/
void omar_state::main_map(address_map &map)
{
map.global_mask(0x7ff);
map(0x0000, 0x07ff).rom();
}
void omar_state::main_io(address_map &map)
{
map(0x00, 0x00).w(FUNC(omar_state::p0_w));
map(0x01, 0x01).w(FUNC(omar_state::p1_w));
map(0x04, 0x07).rw("psu", FUNC(f38t56_device::read), FUNC(f38t56_device::write));
}
/*******************************************************************************
Input Ports
*******************************************************************************/
static INPUT_PORTS_START( omar )
PORT_START("IN.0")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_O) PORT_NAME("BO")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_V) PORT_NAME("VR")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_D) PORT_NAME("DBL")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_NAME("ACC")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_NAME("ST")
PORT_START("IN.1")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_DOWN) PORT_NAME("Down")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("12")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_MINUS) PORT_NAME("11")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("10")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("9")
PORT_START("IN.2")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("EN")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("8")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("7")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("6")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("5")
PORT_START("IN.3")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_UP) PORT_NAME("Up")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("4")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("3")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("2")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("1")
PORT_START("IN.4")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_NAME("BAR")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("CLR")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_X) PORT_NAME("Dice")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_C) PORT_NAME("CUB")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_UNUSED)
INPUT_PORTS_END
/*******************************************************************************
Machine Configs
*******************************************************************************/
void omar_state::omar(machine_config &config)
{
// basic machine hardware
F8(config, m_maincpu, 2700000/2); // approximation
m_maincpu->set_addrmap(AS_PROGRAM, &omar_state::main_map);
m_maincpu->set_addrmap(AS_IO, &omar_state::main_io);
m_maincpu->set_irq_acknowledge_callback("psu", FUNC(f38t56_device::int_acknowledge));
f38t56_device &psu(F38T56(config, "psu", 2700000/2));
psu.set_int_vector(0x20);
psu.int_req_callback().set_inputline("maincpu", F8_INPUT_LINE_INT_REQ);
psu.read_a().set(FUNC(omar_state::p4_r));
psu.write_a().set(FUNC(omar_state::p4_w));
psu.write_b().set(FUNC(omar_state::p5_w));
// video hardware
PWM_DISPLAY(config, m_display).set_size(6, 7);
m_display->set_segmask(0x3f, 0x7f);
config.set_default_layout(layout_omar);
// sound hardware
SPEAKER(config, "speaker").front_center();
DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
}
/*******************************************************************************
ROM Definitions
*******************************************************************************/
ROM_START( omar )
ROM_REGION( 0x0800, "maincpu", 0 )
ROM_LOAD("lom1ar279", 0x0000, 0x0800, CRC(e1bcee50) SHA1(658d6d8a0af3c1672610c651fea7d0289e4703f7) )
ROM_END
} // anonymous namespace
/*******************************************************************************
Drivers
*******************************************************************************/
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
CONS( 1979, omar, 0, 0, omar, omar, omar_state, empty_init, "Tryom", "Omar", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )