mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +03:00
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:
parent
9006ed9c92
commit
9f7c351826
@ -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; }
|
||||
|
@ -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)
|
||||
|
@ -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 )
|
||||
|
@ -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")
|
||||
|
263
src/mame/layout/gammonm2.lay
Normal file
263
src/mame/layout/gammonm2.lay
Normal 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
254
src/mame/layout/omar.lay
Normal 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 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 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 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 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
404
src/mame/layout/pylo.lay
Normal 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
203
src/mame/layout/tchess.lay
Normal 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>
|
@ -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
|
||||
|
||||
|
@ -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
226
src/mame/tiger/pylo.cpp
Normal 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
281
src/mame/tryom/chess.cpp
Normal 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
201
src/mame/tryom/gammonm.cpp
Normal 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
245
src/mame/tryom/omar.cpp
Normal 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 )
|
Loading…
Reference in New Issue
Block a user