saitek*: support unofficial cpu frequency config in some drivers

New working systems
-------------------
Kasparov GK 2100 [hap, Berger]
Kasparov Centurion [hap, Berger]

New working clones
------------------
Kasparov Cougar [hap, Berger]
This commit is contained in:
hap 2024-06-28 23:42:07 +02:00
parent 13caa1ec64
commit 09db2d7fc3
11 changed files with 1636 additions and 52 deletions

View File

@ -608,7 +608,7 @@ bool missile_state::get_madsel()
{
madsel = (m_maincpu->total_cycles() - m_madsel_lastcycles) == 5;
/* reset the count until next time */
// reset the count until next time
if (madsel && !machine().side_effects_disabled())
m_madsel_lastcycles = 0;
}

View File

@ -0,0 +1,470 @@
<?xml version="1.0"?>
<!--
license:CC0-1.0
authors:hap
-->
<mamelayout version="2">
<!-- define elements -->
<element name="blackb"><rect><color red="0" green="0" blue="0" /></rect></element>
<element name="whitew"><rect><color red="1" green="1" blue="1" /></rect></element>
<element name="cgray"><rect><color red="0.61" green="0.6" blue="0.59" /></rect></element>
<element name="lcdm"><rect><color red="0.54" green="0.57" blue="0.58" /></rect></element>
<element name="led" defstate="0">
<rect state="0"><color red="0.1" green="0.01" blue="0.015" /></rect>
<rect state="1"><color red="1.0" green="0.1" blue="0.15" /></rect>
</element>
<element name="text_1"><text string="1"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_2"><text string="2"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_3"><text string="3"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_4"><text string="4"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_5"><text string="5"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_6"><text string="6"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_7"><text string="7"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_8"><text string="8"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_a"><text string="A"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_b"><text string="B"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_c"><text string="C"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_d"><text string="D"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_e"><text string="E"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_f"><text string="F"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_g"><text string="G"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_h"><text string="H"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<!-- sb board -->
<element name="cwhite"><rect><color red="0.81" green="0.8" blue="0.79" /></rect></element>
<element name="cblack"><rect><color red="0.41" green="0.4" blue="0.39" /></rect></element>
<element name="hlbb" defstate="0">
<text string=" "><bounds x="0" y="0" width="1" height="1" /></text>
<disk state="1">
<bounds x="0.12" y="0.12" width="0.76" height="0.76" />
<color red="0" green="0" blue="0" />
</disk>
</element>
<element name="piece" defstate="0">
<image file="chess/wp.svg" state="1"/>
<image file="chess/wn.svg" state="2"/>
<image file="chess/wb.svg" state="3"/>
<image file="chess/wr.svg" state="4"/>
<image file="chess/wq.svg" state="5"/>
<image file="chess/wk.svg" state="6"/>
<image file="chess/bp.svg" state="7"/>
<image file="chess/bn.svg" state="8"/>
<image file="chess/bb.svg" state="9"/>
<image file="chess/br.svg" state="10"/>
<image file="chess/bq.svg" state="11"/>
<image file="chess/bk.svg" state="12"/>
<!-- selected pieces -->
<image file="chess/wp.svg" state="13"><color alpha="0.5" /></image>
<image file="chess/wn.svg" state="14"><color alpha="0.5" /></image>
<image file="chess/wb.svg" state="15"><color alpha="0.5" /></image>
<image file="chess/wr.svg" state="16"><color alpha="0.5" /></image>
<image file="chess/wq.svg" state="17"><color alpha="0.5" /></image>
<image file="chess/wk.svg" state="18"><color alpha="0.5" /></image>
<image file="chess/bp.svg" state="19"><color alpha="0.5" /></image>
<image file="chess/bn.svg" state="20"><color alpha="0.5" /></image>
<image file="chess/bb.svg" state="21"><color alpha="0.5" /></image>
<image file="chess/br.svg" state="22"><color alpha="0.5" /></image>
<image file="chess/bq.svg" state="23"><color alpha="0.5" /></image>
<image file="chess/bk.svg" state="24"><color alpha="0.5" /></image>
</element>
<group name="sb_board">
<bounds x="0" y="0" width="80" height="80" />
<!-- squares (avoid seams) -->
<element ref="cwhite"><bounds x="0" y="0" width="11" height="11" /></element>
<element ref="cblack"><bounds x="10" y="0" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="20" y="0" width="11" height="11" /></element>
<element ref="cblack"><bounds x="30" y="0" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="40" y="0" width="11" height="11" /></element>
<element ref="cblack"><bounds x="50" y="0" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="60" y="0" width="11" height="11" /></element>
<element ref="cblack"><bounds x="70" y="0" width="10" height="11" /></element>
<element ref="cblack"><bounds x="0" y="10" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="10" y="10" width="11" height="11" /></element>
<element ref="cblack"><bounds x="20" y="10" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="30" y="10" width="11" height="11" /></element>
<element ref="cblack"><bounds x="40" y="10" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="50" y="10" width="11" height="11" /></element>
<element ref="cblack"><bounds x="60" y="10" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="70" y="10" width="10" height="11" /></element>
<element ref="cwhite"><bounds x="0" y="20" width="11" height="11" /></element>
<element ref="cblack"><bounds x="10" y="20" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="20" y="20" width="11" height="11" /></element>
<element ref="cblack"><bounds x="30" y="20" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="40" y="20" width="11" height="11" /></element>
<element ref="cblack"><bounds x="50" y="20" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="60" y="20" width="11" height="11" /></element>
<element ref="cblack"><bounds x="70" y="20" width="10" height="11" /></element>
<element ref="cblack"><bounds x="0" y="30" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="10" y="30" width="11" height="11" /></element>
<element ref="cblack"><bounds x="20" y="30" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="30" y="30" width="11" height="11" /></element>
<element ref="cblack"><bounds x="40" y="30" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="50" y="30" width="11" height="11" /></element>
<element ref="cblack"><bounds x="60" y="30" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="70" y="30" width="10" height="11" /></element>
<element ref="cwhite"><bounds x="0" y="40" width="11" height="11" /></element>
<element ref="cblack"><bounds x="10" y="40" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="20" y="40" width="11" height="11" /></element>
<element ref="cblack"><bounds x="30" y="40" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="40" y="40" width="11" height="11" /></element>
<element ref="cblack"><bounds x="50" y="40" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="60" y="40" width="11" height="11" /></element>
<element ref="cblack"><bounds x="70" y="40" width="10" height="11" /></element>
<element ref="cblack"><bounds x="0" y="50" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="10" y="50" width="11" height="11" /></element>
<element ref="cblack"><bounds x="20" y="50" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="30" y="50" width="11" height="11" /></element>
<element ref="cblack"><bounds x="40" y="50" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="50" y="50" width="11" height="11" /></element>
<element ref="cblack"><bounds x="60" y="50" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="70" y="50" width="10" height="11" /></element>
<element ref="cwhite"><bounds x="0" y="60" width="11" height="11" /></element>
<element ref="cblack"><bounds x="10" y="60" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="20" y="60" width="11" height="11" /></element>
<element ref="cblack"><bounds x="30" y="60" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="40" y="60" width="11" height="11" /></element>
<element ref="cblack"><bounds x="50" y="60" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="60" y="60" width="11" height="11" /></element>
<element ref="cblack"><bounds x="70" y="60" width="10" height="11" /></element>
<element ref="cblack"><bounds x="0" y="70" width="11" height="10" /></element>
<element ref="cwhite"><bounds x="10" y="70" width="11" height="10" /></element>
<element ref="cblack"><bounds x="20" y="70" width="11" height="10" /></element>
<element ref="cwhite"><bounds x="30" y="70" width="11" height="10" /></element>
<element ref="cblack"><bounds x="40" y="70" width="11" height="10" /></element>
<element ref="cwhite"><bounds x="50" y="70" width="11" height="10" /></element>
<element ref="cblack"><bounds x="60" y="70" width="11" height="10" /></element>
<element ref="cwhite"><bounds x="70" y="70" width="10" height="10" /></element>
<!-- sensors, pieces -->
<repeat count="8">
<param name="y" start="0" increment="10" />
<param name="i" start="8" increment="-1" />
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x01"><bounds x="0" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x02"><bounds x="10" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x04"><bounds x="20" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x08"><bounds x="30" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x10"><bounds x="40" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x20"><bounds x="50" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x40"><bounds x="60" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x80"><bounds x="70" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element name="piece_a~i~" ref="piece"><bounds x="0" y="~y~" width="10" height="10" /></element>
<element name="piece_b~i~" ref="piece"><bounds x="10" y="~y~" width="10" height="10" /></element>
<element name="piece_c~i~" ref="piece"><bounds x="20" y="~y~" width="10" height="10" /></element>
<element name="piece_d~i~" ref="piece"><bounds x="30" y="~y~" width="10" height="10" /></element>
<element name="piece_e~i~" ref="piece"><bounds x="40" y="~y~" width="10" height="10" /></element>
<element name="piece_f~i~" ref="piece"><bounds x="50" y="~y~" width="10" height="10" /></element>
<element name="piece_g~i~" ref="piece"><bounds x="60" y="~y~" width="10" height="10" /></element>
<element name="piece_h~i~" ref="piece"><bounds x="70" y="~y~" width="10" height="10" /></element>
</repeat>
</group>
<!-- sb ui -->
<element name="hlub" defstate="0">
<rect state="1"><color red="0" green="0" blue="0" /></rect>
</element>
<element name="text_uit1"><text string="S.BOARD"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uit2"><text string="INTERFACE"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uib1"><text string="BOARD:"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uib2"><text string="RESET"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uib3"><text string="CLEAR"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uis1"><text string="SPAWN:"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uih1"><text string="HAND:"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uih2"><text string="REMOVE"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uiu1"><text string="UNDO:"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uiu2a"><text string=" &lt;&lt;"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uiu2b"><text string=" &lt; "><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uiu2c"><text string=" &gt;"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uiu2d"><text string=" &gt;&gt;"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uiu3b"><text string="/"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uiu3a" defstate="0">
<simplecounter maxstate="999" digits="1" align="2">
<color red="0.81" green="0.8" blue="0.79" />
</simplecounter>
</element>
<element name="text_uiu3c" defstate="0">
<simplecounter maxstate="999" digits="1" align="1">
<color red="0.81" green="0.8" blue="0.79" />
</simplecounter>
</element>
<group name="sb_ui">
<bounds x="0" y="0" width="10" height="80" />
<element ref="cblack"><bounds x="0" y="0" width="10" height="1" /></element>
<element ref="cblack"><bounds x="0" y="7" width="10" height="1" /></element>
<element ref="cblack"><bounds x="0" y="79" width="10" height="1" /></element>
<element ref="text_uit1"><bounds x="0" y="2" width="10" height="2" /></element>
<element ref="text_uit2"><bounds x="0" y="4" width="10" height="2" /></element>
<!-- board -->
<element ref="text_uib1"><bounds x="0" y="9" width="10" height="2" /></element>
<element ref="cwhite"><bounds x="1" y="11.5" width="8" height="2.5" /></element>
<element ref="cwhite"><bounds x="1" y="15" width="8" height="2.5" /></element>
<element ref="text_uib2"><bounds x="1.5" y="11.75" width="7" height="2" /></element>
<element ref="text_uib3"><bounds x="1.5" y="15.25" width="7" height="2" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x200"><bounds x="1" y="11.5" width="8" height="2.5" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x100"><bounds x="1" y="15" width="8" height="2.5" /><color alpha="0.25" /></element>
<!-- spawn -->
<element ref="text_uis1"><bounds x="0" y="20.5" width="10" height="2" /></element>
<element ref="cwhite"><bounds x="1" y="23" width="8" height="12" /></element>
<element ref="cwhite"><bounds x="1" y="36" width="8" height="12" /></element>
<element name="piece_ui1" ref="piece"><bounds x="1" y="23" width="4" height="4" /></element>
<element name="piece_ui2" ref="piece"><bounds x="1" y="27" width="4" height="4" /></element>
<element name="piece_ui3" ref="piece"><bounds x="1" y="31" width="4" height="4" /></element>
<element name="piece_ui4" ref="piece"><bounds x="5" y="23" width="4" height="4" /></element>
<element name="piece_ui5" ref="piece"><bounds x="5" y="27" width="4" height="4" /></element>
<element name="piece_ui6" ref="piece"><bounds x="5" y="31" width="4" height="4" /></element>
<element name="piece_ui7" ref="piece"><bounds x="1" y="36" width="4" height="4" /></element>
<element name="piece_ui8" ref="piece"><bounds x="1" y="40" width="4" height="4" /></element>
<element name="piece_ui9" ref="piece"><bounds x="1" y="44" width="4" height="4" /></element>
<element name="piece_ui10" ref="piece"><bounds x="5" y="36" width="4" height="4" /></element>
<element name="piece_ui11" ref="piece"><bounds x="5" y="40" width="4" height="4" /></element>
<element name="piece_ui12" ref="piece"><bounds x="5" y="44" width="4" height="4" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0001"><bounds x="1" y="23" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0002"><bounds x="1" y="27" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0004"><bounds x="1" y="31" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0008"><bounds x="5" y="23" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0010"><bounds x="5" y="27" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0020"><bounds x="5" y="31" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0040"><bounds x="1" y="36" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0080"><bounds x="1" y="40" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0100"><bounds x="1" y="44" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0200"><bounds x="5" y="36" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0400"><bounds x="5" y="40" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0800"><bounds x="5" y="44" width="4" height="4" /><color alpha="0.25" /></element>
<!-- hand -->
<element ref="text_uih1"><bounds x="0" y="51" width="10" height="2" /></element>
<element ref="cblack"><bounds x="1" y="53.5" width="8" height="6" /></element>
<element name="piece_ui0" ref="piece"><bounds x="2" y="53.5" width="6" height="6" /></element>
<element ref="cwhite"><bounds x="1" y="60.5" width="8" height="2.5" /></element>
<element ref="text_uih2"><bounds x="1.5" y="60.75" width="7" height="2" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x08"><bounds x="1" y="60.5" width="8" height="2.5" /><color alpha="0.25" /></element>
<!-- undo -->
<element ref="text_uiu1"><bounds x="0" y="66" width="10" height="2" /></element>
<element ref="cwhite"><bounds x="1" y="68.5" width="1.7" height="6" /></element>
<element ref="cwhite"><bounds x="3.1" y="68.5" width="1.7" height="6" /></element>
<element ref="cwhite"><bounds x="5.2" y="68.5" width="1.7" height="6" /></element>
<element ref="cwhite"><bounds x="7.3" y="68.5" width="1.7" height="6" /></element>
<element ref="text_uiu2a"><bounds x="1" y="69.5" width="1.7" height="4" /></element>
<element ref="text_uiu2b"><bounds x="3.1" y="69.5" width="1.7" height="4" /></element>
<element ref="text_uiu2c"><bounds x="5.2" y="69.5" width="1.7" height="4" /></element>
<element ref="text_uiu2d"><bounds x="7.3" y="69.5" width="1.7" height="4" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x10"><bounds x="1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x20"><bounds x="3.1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x40"><bounds x="5.2" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x80"><bounds x="7.3" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element name="count_ui0" ref="text_uiu3a"><bounds x="0" y="75" width="4" height="2" /></element>
<element name="count_ui1" ref="text_uiu3c"><bounds x="6" y="75" width="4" height="2" /></element>
<element ref="text_uiu3b"><bounds x="4" y="75" width="2" height="2" /></element>
</group>
<!-- button panel -->
<element name="but" defstate="0">
<rect state="0"><color red="0.71" green="0.7" blue="0.69" /></rect>
<rect state="1"><color red="0.71" green="0.7" blue="0.69" alpha="0.78" /></rect>
</element>
<element name="nothing" defstate="0">
<rect><color alpha="0" /></rect>
</element>
<element name="text_b1"><text string=" "></text></element>
<element name="text_b2"><text string="OPTION"></text></element>
<element name="text_b3"><text string="INFO"></text></element>
<element name="text_b4"><text string="LEVEL"></text></element>
<element name="text_b5"><text string="STUDIES"></text></element>
<element name="text_b6"><text string="TAKE BACK"></text></element>
<element name="text_b7"><text string="POSITION"></text></element>
<element name="text_b8"><text string="&#x2190; / WHITE "></text></element> <!-- left arrow -->
<element name="text_b9"><text string=" BLACK / &#x2192;"></text></element> <!-- right arrow -->
<element name="text_b10"><text string="CLEAR"></text></element>
<element name="text_b11"><text string="ENTER"></text></element>
<element name="text_ng">
<rect>
<bounds xc="0" yc="0" width="8.5" height="2.166" />
<color red="0.8" green="0.7" blue="0.3" />
</rect>
<rect>
<bounds xc="0" yc="0" width="8.2" height="1.866" />
<color red="0" green="0" blue="0" />
</rect>
<text string=" NEW GAME">
<bounds xc="0" yc="0" width="8.2" height="1.866" />
<color red="0.8" green="0.7" blue="0.3" />
</text>
</element>
<element name="text_b1y">
<rect><color red="0.8" green="0.7" blue="0.3" /></rect>
<text string=" GO/STOP"><color red="0" green="0" blue="0" /></text>
</element>
<element name="text_p1"><image file="chess/wk.svg"/></element>
<element name="text_p2"><image file="chess/wq.svg"/></element>
<element name="text_p3"><image file="chess/wr.svg"/></element>
<element name="text_p4"><image file="chess/wb.svg"/></element>
<element name="text_p5"><image file="chess/wn.svg"/></element>
<element name="text_p6"><image file="chess/wp.svg"/></element>
<group name="buttons">
<bounds x="0" y="0" width="80" height="80" />
<element ref="whitew"><bounds xc="48.5" y="18.5" width="12.5" height="1.8" /></element>
<element ref="blackb"><bounds xc="48.5" y="18" width="9.4" height="1.8" /></element>
<element ref="blackb"><bounds xc="48.5" y="18.75" width="12.0" height="1.8" /></element>
<repeat count="5">
<param name="x" start="9" increment="10.8" />
<param name="i" start="1" increment="1" />
<element ref="text_b~i~"><bounds xc="~x~" y="7" width="15" height="1.866" /></element>
</repeat>
<repeat count="6">
<param name="x" start="8" increment="9" />
<param name="i" start="6" increment="1" />
<element ref="text_b~i~"><bounds xc="~x~" y="20.333" width="15" height="1.866" /></element>
</repeat>
<repeat count="6">
<param name="x" start="8" increment="9" />
<param name="i" start="1" increment="1" />
<element ref="text_p~i~"><bounds xc="~x~" y="32" width="4" height="4" /></element>
</repeat>
<element ref="cwhite" blend="multiply"><bounds x="3" y="5" width="60" height="40" /></element>
<element ref="text_b1y"><bounds xc="9" y="7" width="7.5" height="1.866" /></element>
<element ref="text_ng"><bounds xc="48.5" y="17.5" width="8.5" height="2.166" /></element>
<!-- hidden input above CLEAR/ENTER buttons to press both -->
<element ref="nothing" inputtag="IN.0" inputmask="0x40" clickthrough="yes"><bounds xc="48.5" y="17.5" width="8.5" height="2.166" /></element>
<element ref="nothing" inputtag="IN.0" inputmask="0x80" clickthrough="no"> <bounds xc="48.5" y="17.5" width="8.5" height="2.166" /></element>
<element ref="but" inputtag="IN.3" inputmask="0x10"><bounds xc="9" y="10" width="9.3" height="2" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x08"><bounds xc="19.8" y="10" width="9.3" height="2" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x10"><bounds xc="30.6" y="10" width="9.3" height="2" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x04"><bounds xc="41.4" y="10" width="9.3" height="2" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x01"><bounds xc="52.2" y="10" width="9.3" height="2" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x20"><bounds xc="8" y="23.333" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x02"><bounds xc="17" y="23.333" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x40"><bounds xc="26" y="23.333" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x80"><bounds xc="35" y="23.333" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x40"><bounds xc="44" y="23.333" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x80"><bounds xc="53" y="23.333" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x20"><bounds xc="8" y="36.666" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x10"><bounds xc="17" y="36.666" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x08"><bounds xc="26" y="36.666" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x04"><bounds xc="35" y="36.666" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x02"><bounds xc="44" y="36.666" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x01"><bounds xc="53" y="36.666" width="7.5" height="2" /></element>
</group>
<!-- build screen -->
<view name="Internal Layout">
<bounds left="1.3" right="148.5" top="-0.25" bottom="88.7" />
<element ref="cwhite"><bounds xc="61" yc="42" width="92" height="92" /></element>
<element ref="blackb"><bounds xc="61" yc="42" width="80.5" height="80.5" /></element>
<group ref="sb_board"><bounds x="21" y="2" width="80" height="80" /></group>
<!-- chessboard leds -->
<element name="0.7" ref="led"><bounds x="14.8" yc="7" width="3" height="0.9" /></element>
<element name="0.6" ref="led"><bounds x="14.8" yc="17" width="3" height="0.9" /></element>
<element name="0.5" ref="led"><bounds x="14.8" yc="27" width="3" height="0.9" /></element>
<element name="0.4" ref="led"><bounds x="14.8" yc="37" width="3" height="0.9" /></element>
<element name="0.3" ref="led"><bounds x="14.8" yc="47" width="3" height="0.9" /></element>
<element name="0.2" ref="led"><bounds x="14.8" yc="57" width="3" height="0.9" /></element>
<element name="0.1" ref="led"><bounds x="14.8" yc="67" width="3" height="0.9" /></element>
<element name="0.0" ref="led"><bounds x="14.8" yc="77" width="3" height="0.9" /></element>
<element name="1.0" ref="led"><bounds xc="26" y="85.2" width="0.9" height="3" /></element>
<element name="1.1" ref="led"><bounds xc="36" y="85.2" width="0.9" height="3" /></element>
<element name="1.2" ref="led"><bounds xc="46" y="85.2" width="0.9" height="3" /></element>
<element name="1.3" ref="led"><bounds xc="56" y="85.2" width="0.9" height="3" /></element>
<element name="1.4" ref="led"><bounds xc="66" y="85.2" width="0.9" height="3" /></element>
<element name="1.5" ref="led"><bounds xc="76" y="85.2" width="0.9" height="3" /></element>
<element name="1.6" ref="led"><bounds xc="86" y="85.2" width="0.9" height="3" /></element>
<element name="1.7" ref="led"><bounds xc="96" y="85.2" width="0.9" height="3" /></element>
<element ref="cgray"><bounds x="14.3" y="-1" width="1.5" height="89" /></element>
<element ref="cgray"><bounds x="14.3" y="87.2" width="100" height="1.5" /></element>
<element ref="blackb"><bounds x="0" y="-10" width="150" height="9.75" /></element>
<element ref="blackb"><bounds x="106.2" y="-10" width="50" height="150" /></element>
<group ref="sb_ui"><bounds x="2.8" y="2" width="10" height="80" /></group>
<!-- chessboard coords -->
<element ref="text_8"><bounds x="18.6" y="6" width="2" height="2" /></element>
<element ref="text_7"><bounds x="18.6" y="16" width="2" height="2" /></element>
<element ref="text_6"><bounds x="18.6" y="26" width="2" height="2" /></element>
<element ref="text_5"><bounds x="18.6" y="36" width="2" height="2" /></element>
<element ref="text_4"><bounds x="18.6" y="46" width="2" height="2" /></element>
<element ref="text_3"><bounds x="18.6" y="56" width="2" height="2" /></element>
<element ref="text_2"><bounds x="18.6" y="66" width="2" height="2" /></element>
<element ref="text_1"><bounds x="18.6" y="76" width="2" height="2" /></element>
<element ref="text_a"><bounds x="25" y="82.6" width="2" height="2" /></element>
<element ref="text_b"><bounds x="35" y="82.6" width="2" height="2" /></element>
<element ref="text_c"><bounds x="45" y="82.6" width="2" height="2" /></element>
<element ref="text_d"><bounds x="55" y="82.6" width="2" height="2" /></element>
<element ref="text_e"><bounds x="65" y="82.6" width="2" height="2" /></element>
<element ref="text_f"><bounds x="75" y="82.6" width="2" height="2" /></element>
<element ref="text_g"><bounds x="85" y="82.6" width="2" height="2" /></element>
<element ref="text_h"><bounds x="95" y="82.6" width="2" height="2" /></element>
<!-- right side -->
<group ref="buttons"><bounds x="104.5" y="28.75" width="60" height="60" /></group>
<screen index="0"><bounds xc="120" yc="17.95" width="19" height="7.955" /></screen>
<element ref="lcdm" blend="multiply"><bounds xc="120" yc="17.95" width="20" height="9" /></element>
<element ref="cwhite"><bounds x="107.8" y="24" width="39.4" height="0.25" /></element>
<element ref="cgray"><bounds x="106.45" y="-0.25" width="42.05" height="10.25" /></element>
<element ref="cgray"><bounds x="106.45" y="62" width="42.05" height="26.7" /></element>
<element ref="cgray"><bounds x="14.3" y="87.2" width="100" height="1.5" /></element>
</view>
</mamelayout>

View File

@ -0,0 +1,458 @@
<?xml version="1.0"?>
<!--
license:CC0-1.0
authors:hap
-->
<mamelayout version="2">
<!-- define elements -->
<element name="blackb"><rect><color red="0" green="0" blue="0" /></rect></element>
<element name="cgray"><rect><color red="0.61" green="0.6" blue="0.59" /></rect></element>
<element name="lcdm"><rect><color red="0.54" green="0.57" blue="0.58" /></rect></element>
<element name="led" defstate="0">
<rect state="0"><color red="0.1" green="0.01" blue="0.015" /></rect>
<rect state="1"><color red="1.0" green="0.1" blue="0.15" /></rect>
</element>
<element name="text_1"><text string="1"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_2"><text string="2"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_3"><text string="3"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_4"><text string="4"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_5"><text string="5"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_6"><text string="6"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_7"><text string="7"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_8"><text string="8"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_a"><text string="A"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_b"><text string="B"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_c"><text string="C"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_d"><text string="D"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_e"><text string="E"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_f"><text string="F"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_g"><text string="G"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_h"><text string="H"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<!-- sb board -->
<element name="cwhite"><rect><color red="0.81" green="0.8" blue="0.79" /></rect></element>
<element name="cblack"><rect><color red="0.41" green="0.4" blue="0.39" /></rect></element>
<element name="hlbb" defstate="0">
<text string=" "><bounds x="0" y="0" width="1" height="1" /></text>
<disk state="1">
<bounds x="0.12" y="0.12" width="0.76" height="0.76" />
<color red="0" green="0" blue="0" />
</disk>
</element>
<element name="piece" defstate="0">
<image file="chess/wp.svg" state="1"/>
<image file="chess/wn.svg" state="2"/>
<image file="chess/wb.svg" state="3"/>
<image file="chess/wr.svg" state="4"/>
<image file="chess/wq.svg" state="5"/>
<image file="chess/wk.svg" state="6"/>
<image file="chess/bp.svg" state="7"/>
<image file="chess/bn.svg" state="8"/>
<image file="chess/bb.svg" state="9"/>
<image file="chess/br.svg" state="10"/>
<image file="chess/bq.svg" state="11"/>
<image file="chess/bk.svg" state="12"/>
<!-- selected pieces -->
<image file="chess/wp.svg" state="13"><color alpha="0.5" /></image>
<image file="chess/wn.svg" state="14"><color alpha="0.5" /></image>
<image file="chess/wb.svg" state="15"><color alpha="0.5" /></image>
<image file="chess/wr.svg" state="16"><color alpha="0.5" /></image>
<image file="chess/wq.svg" state="17"><color alpha="0.5" /></image>
<image file="chess/wk.svg" state="18"><color alpha="0.5" /></image>
<image file="chess/bp.svg" state="19"><color alpha="0.5" /></image>
<image file="chess/bn.svg" state="20"><color alpha="0.5" /></image>
<image file="chess/bb.svg" state="21"><color alpha="0.5" /></image>
<image file="chess/br.svg" state="22"><color alpha="0.5" /></image>
<image file="chess/bq.svg" state="23"><color alpha="0.5" /></image>
<image file="chess/bk.svg" state="24"><color alpha="0.5" /></image>
</element>
<group name="sb_board">
<bounds x="0" y="0" width="80" height="80" />
<!-- squares (avoid seams) -->
<element ref="cwhite"><bounds x="0" y="0" width="11" height="11" /></element>
<element ref="cblack"><bounds x="10" y="0" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="20" y="0" width="11" height="11" /></element>
<element ref="cblack"><bounds x="30" y="0" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="40" y="0" width="11" height="11" /></element>
<element ref="cblack"><bounds x="50" y="0" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="60" y="0" width="11" height="11" /></element>
<element ref="cblack"><bounds x="70" y="0" width="10" height="11" /></element>
<element ref="cblack"><bounds x="0" y="10" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="10" y="10" width="11" height="11" /></element>
<element ref="cblack"><bounds x="20" y="10" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="30" y="10" width="11" height="11" /></element>
<element ref="cblack"><bounds x="40" y="10" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="50" y="10" width="11" height="11" /></element>
<element ref="cblack"><bounds x="60" y="10" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="70" y="10" width="10" height="11" /></element>
<element ref="cwhite"><bounds x="0" y="20" width="11" height="11" /></element>
<element ref="cblack"><bounds x="10" y="20" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="20" y="20" width="11" height="11" /></element>
<element ref="cblack"><bounds x="30" y="20" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="40" y="20" width="11" height="11" /></element>
<element ref="cblack"><bounds x="50" y="20" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="60" y="20" width="11" height="11" /></element>
<element ref="cblack"><bounds x="70" y="20" width="10" height="11" /></element>
<element ref="cblack"><bounds x="0" y="30" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="10" y="30" width="11" height="11" /></element>
<element ref="cblack"><bounds x="20" y="30" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="30" y="30" width="11" height="11" /></element>
<element ref="cblack"><bounds x="40" y="30" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="50" y="30" width="11" height="11" /></element>
<element ref="cblack"><bounds x="60" y="30" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="70" y="30" width="10" height="11" /></element>
<element ref="cwhite"><bounds x="0" y="40" width="11" height="11" /></element>
<element ref="cblack"><bounds x="10" y="40" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="20" y="40" width="11" height="11" /></element>
<element ref="cblack"><bounds x="30" y="40" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="40" y="40" width="11" height="11" /></element>
<element ref="cblack"><bounds x="50" y="40" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="60" y="40" width="11" height="11" /></element>
<element ref="cblack"><bounds x="70" y="40" width="10" height="11" /></element>
<element ref="cblack"><bounds x="0" y="50" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="10" y="50" width="11" height="11" /></element>
<element ref="cblack"><bounds x="20" y="50" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="30" y="50" width="11" height="11" /></element>
<element ref="cblack"><bounds x="40" y="50" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="50" y="50" width="11" height="11" /></element>
<element ref="cblack"><bounds x="60" y="50" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="70" y="50" width="10" height="11" /></element>
<element ref="cwhite"><bounds x="0" y="60" width="11" height="11" /></element>
<element ref="cblack"><bounds x="10" y="60" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="20" y="60" width="11" height="11" /></element>
<element ref="cblack"><bounds x="30" y="60" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="40" y="60" width="11" height="11" /></element>
<element ref="cblack"><bounds x="50" y="60" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="60" y="60" width="11" height="11" /></element>
<element ref="cblack"><bounds x="70" y="60" width="10" height="11" /></element>
<element ref="cblack"><bounds x="0" y="70" width="11" height="10" /></element>
<element ref="cwhite"><bounds x="10" y="70" width="11" height="10" /></element>
<element ref="cblack"><bounds x="20" y="70" width="11" height="10" /></element>
<element ref="cwhite"><bounds x="30" y="70" width="11" height="10" /></element>
<element ref="cblack"><bounds x="40" y="70" width="11" height="10" /></element>
<element ref="cwhite"><bounds x="50" y="70" width="11" height="10" /></element>
<element ref="cblack"><bounds x="60" y="70" width="11" height="10" /></element>
<element ref="cwhite"><bounds x="70" y="70" width="10" height="10" /></element>
<!-- sensors, pieces -->
<repeat count="8">
<param name="y" start="0" increment="10" />
<param name="i" start="8" increment="-1" />
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x01"><bounds x="0" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x02"><bounds x="10" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x04"><bounds x="20" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x08"><bounds x="30" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x10"><bounds x="40" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x20"><bounds x="50" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x40"><bounds x="60" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x80"><bounds x="70" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element name="piece_a~i~" ref="piece"><bounds x="0" y="~y~" width="10" height="10" /></element>
<element name="piece_b~i~" ref="piece"><bounds x="10" y="~y~" width="10" height="10" /></element>
<element name="piece_c~i~" ref="piece"><bounds x="20" y="~y~" width="10" height="10" /></element>
<element name="piece_d~i~" ref="piece"><bounds x="30" y="~y~" width="10" height="10" /></element>
<element name="piece_e~i~" ref="piece"><bounds x="40" y="~y~" width="10" height="10" /></element>
<element name="piece_f~i~" ref="piece"><bounds x="50" y="~y~" width="10" height="10" /></element>
<element name="piece_g~i~" ref="piece"><bounds x="60" y="~y~" width="10" height="10" /></element>
<element name="piece_h~i~" ref="piece"><bounds x="70" y="~y~" width="10" height="10" /></element>
</repeat>
</group>
<!-- sb ui -->
<element name="hlub" defstate="0">
<rect state="1"><color red="0" green="0" blue="0" /></rect>
</element>
<element name="text_uit1"><text string="S.BOARD"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uit2"><text string="INTERFACE"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uib1"><text string="BOARD:"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uib2"><text string="RESET"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uib3"><text string="CLEAR"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uis1"><text string="SPAWN:"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uih1"><text string="HAND:"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uih2"><text string="REMOVE"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uiu1"><text string="UNDO:"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uiu2a"><text string=" &lt;&lt;"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uiu2b"><text string=" &lt; "><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uiu2c"><text string=" &gt;"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uiu2d"><text string=" &gt;&gt;"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uiu3b"><text string="/"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uiu3a" defstate="0">
<simplecounter maxstate="999" digits="1" align="2">
<color red="0.81" green="0.8" blue="0.79" />
</simplecounter>
</element>
<element name="text_uiu3c" defstate="0">
<simplecounter maxstate="999" digits="1" align="1">
<color red="0.81" green="0.8" blue="0.79" />
</simplecounter>
</element>
<group name="sb_ui">
<bounds x="0" y="0" width="10" height="80" />
<element ref="cblack"><bounds x="0" y="0" width="10" height="1" /></element>
<element ref="cblack"><bounds x="0" y="7" width="10" height="1" /></element>
<element ref="cblack"><bounds x="0" y="79" width="10" height="1" /></element>
<element ref="text_uit1"><bounds x="0" y="2" width="10" height="2" /></element>
<element ref="text_uit2"><bounds x="0" y="4" width="10" height="2" /></element>
<!-- board -->
<element ref="text_uib1"><bounds x="0" y="9" width="10" height="2" /></element>
<element ref="cwhite"><bounds x="1" y="11.5" width="8" height="2.5" /></element>
<element ref="cwhite"><bounds x="1" y="15" width="8" height="2.5" /></element>
<element ref="text_uib2"><bounds x="1.5" y="11.75" width="7" height="2" /></element>
<element ref="text_uib3"><bounds x="1.5" y="15.25" width="7" height="2" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x200"><bounds x="1" y="11.5" width="8" height="2.5" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x100"><bounds x="1" y="15" width="8" height="2.5" /><color alpha="0.25" /></element>
<!-- spawn -->
<element ref="text_uis1"><bounds x="0" y="20.5" width="10" height="2" /></element>
<element ref="cwhite"><bounds x="1" y="23" width="8" height="12" /></element>
<element ref="cwhite"><bounds x="1" y="36" width="8" height="12" /></element>
<element name="piece_ui1" ref="piece"><bounds x="1" y="23" width="4" height="4" /></element>
<element name="piece_ui2" ref="piece"><bounds x="1" y="27" width="4" height="4" /></element>
<element name="piece_ui3" ref="piece"><bounds x="1" y="31" width="4" height="4" /></element>
<element name="piece_ui4" ref="piece"><bounds x="5" y="23" width="4" height="4" /></element>
<element name="piece_ui5" ref="piece"><bounds x="5" y="27" width="4" height="4" /></element>
<element name="piece_ui6" ref="piece"><bounds x="5" y="31" width="4" height="4" /></element>
<element name="piece_ui7" ref="piece"><bounds x="1" y="36" width="4" height="4" /></element>
<element name="piece_ui8" ref="piece"><bounds x="1" y="40" width="4" height="4" /></element>
<element name="piece_ui9" ref="piece"><bounds x="1" y="44" width="4" height="4" /></element>
<element name="piece_ui10" ref="piece"><bounds x="5" y="36" width="4" height="4" /></element>
<element name="piece_ui11" ref="piece"><bounds x="5" y="40" width="4" height="4" /></element>
<element name="piece_ui12" ref="piece"><bounds x="5" y="44" width="4" height="4" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0001"><bounds x="1" y="23" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0002"><bounds x="1" y="27" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0004"><bounds x="1" y="31" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0008"><bounds x="5" y="23" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0010"><bounds x="5" y="27" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0020"><bounds x="5" y="31" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0040"><bounds x="1" y="36" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0080"><bounds x="1" y="40" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0100"><bounds x="1" y="44" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0200"><bounds x="5" y="36" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0400"><bounds x="5" y="40" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0800"><bounds x="5" y="44" width="4" height="4" /><color alpha="0.25" /></element>
<!-- hand -->
<element ref="text_uih1"><bounds x="0" y="51" width="10" height="2" /></element>
<element ref="cblack"><bounds x="1" y="53.5" width="8" height="6" /></element>
<element name="piece_ui0" ref="piece"><bounds x="2" y="53.5" width="6" height="6" /></element>
<element ref="cwhite"><bounds x="1" y="60.5" width="8" height="2.5" /></element>
<element ref="text_uih2"><bounds x="1.5" y="60.75" width="7" height="2" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x08"><bounds x="1" y="60.5" width="8" height="2.5" /><color alpha="0.25" /></element>
<!-- undo -->
<element ref="text_uiu1"><bounds x="0" y="66" width="10" height="2" /></element>
<element ref="cwhite"><bounds x="1" y="68.5" width="1.7" height="6" /></element>
<element ref="cwhite"><bounds x="3.1" y="68.5" width="1.7" height="6" /></element>
<element ref="cwhite"><bounds x="5.2" y="68.5" width="1.7" height="6" /></element>
<element ref="cwhite"><bounds x="7.3" y="68.5" width="1.7" height="6" /></element>
<element ref="text_uiu2a"><bounds x="1" y="69.5" width="1.7" height="4" /></element>
<element ref="text_uiu2b"><bounds x="3.1" y="69.5" width="1.7" height="4" /></element>
<element ref="text_uiu2c"><bounds x="5.2" y="69.5" width="1.7" height="4" /></element>
<element ref="text_uiu2d"><bounds x="7.3" y="69.5" width="1.7" height="4" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x10"><bounds x="1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x20"><bounds x="3.1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x40"><bounds x="5.2" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x80"><bounds x="7.3" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element name="count_ui0" ref="text_uiu3a"><bounds x="0" y="75" width="4" height="2" /></element>
<element name="count_ui1" ref="text_uiu3c"><bounds x="6" y="75" width="4" height="2" /></element>
<element ref="text_uiu3b"><bounds x="4" y="75" width="2" height="2" /></element>
</group>
<!-- button panel -->
<element name="but" defstate="0">
<rect state="0"><color red="0.71" green="0.7" blue="0.69" /></rect>
<rect state="1"><color red="0.71" green="0.7" blue="0.69" alpha="0.78" /></rect>
</element>
<element name="text_b1"><text string=" "></text></element>
<element name="text_b2"><text string="OPTION"></text></element>
<element name="text_b3"><text string="INFO"></text></element>
<element name="text_b4"><text string="LEVEL"></text></element>
<element name="text_b5"><text string="TAKE BACK"></text></element>
<element name="text_b6"><text string=" "></text></element>
<element name="text_b7"><text string="POSITION"></text></element>
<element name="text_b8"><text string="CLEAR"></text></element>
<element name="text_b9"><text string="&#x2190; / WHITE "></text></element> <!-- left arrow -->
<element name="text_b10"><text string=" BLACK / &#x2192;"></text></element> <!-- right arrow -->
<element name="text_b11"><text string="ENTER"></text></element>
<element name="text_ng">
<rect>
<bounds xc="0" yc="0" width="8.5" height="2.166" />
<color red="0.8" green="0.7" blue="0.3" />
</rect>
<rect>
<bounds xc="0" yc="0" width="8.2" height="1.866" />
<color red="0" green="0" blue="0" />
</rect>
<text string=" NEW GAME">
<bounds xc="0" yc="0" width="8.2" height="1.866" />
<color red="0.8" green="0.7" blue="0.3" />
</text>
</element>
<element name="text_b1y">
<rect><color red="0.8" green="0.7" blue="0.3" /></rect>
<text string=" GO/STOP"><color red="0" green="0" blue="0" /></text>
</element>
<element name="text_p1"><image file="chess/wk.svg"/></element>
<element name="text_p2"><image file="chess/wq.svg"/></element>
<element name="text_p3"><image file="chess/wr.svg"/></element>
<element name="text_p4"><image file="chess/wb.svg"/></element>
<element name="text_p5"><image file="chess/wn.svg"/></element>
<element name="text_p6"><image file="chess/wp.svg"/></element>
<group name="buttons">
<bounds x="0" y="0" width="80" height="80" />
<repeat count="5">
<param name="x" start="9" increment="10.8" />
<param name="i" start="1" increment="1" />
<element ref="text_b~i~"><bounds xc="~x~" y="7" width="15" height="1.866" /></element>
</repeat>
<repeat count="6">
<param name="x" start="8" increment="9" />
<param name="i" start="6" increment="1" />
<element ref="text_b~i~"><bounds xc="~x~" y="20.333" width="15" height="1.866" /></element>
</repeat>
<repeat count="6">
<param name="x" start="8" increment="9" />
<param name="i" start="1" increment="1" />
<element ref="text_p~i~"><bounds xc="~x~" y="32" width="4" height="4" /></element>
</repeat>
<element ref="cwhite" blend="multiply"><bounds x="3" y="5" width="60" height="40" /></element>
<element ref="text_b1y"><bounds xc="9" y="7" width="7.5" height="1.866" /></element>
<element ref="text_ng"><bounds xc="8" yc="21.266" width="8.5" height="2.166" /></element>
<element ref="but" inputtag="IN.3" inputmask="0x10"><bounds xc="9" y="10" width="9.3" height="2" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x08"><bounds xc="19.8" y="10" width="9.3" height="2" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x10"><bounds xc="30.6" y="10" width="9.3" height="2" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x04"><bounds xc="41.4" y="10" width="9.3" height="2" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x20"><bounds xc="52.2" y="10" width="9.3" height="2" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x01"><bounds xc="8" y="23.333" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x02"><bounds xc="17" y="23.333" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x40"><bounds xc="26" y="23.333" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x40"><bounds xc="35" y="23.333" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x80"><bounds xc="44" y="23.333" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x80"><bounds xc="53" y="23.333" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x20"><bounds xc="8" y="36.666" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x10"><bounds xc="17" y="36.666" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x08"><bounds xc="26" y="36.666" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x04"><bounds xc="35" y="36.666" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x02"><bounds xc="44" y="36.666" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x01"><bounds xc="53" y="36.666" width="7.5" height="2" /></element>
</group>
<!-- build screen -->
<view name="Internal Layout">
<bounds left="1.3" right="156.7" top="-0.25" bottom="88.7" />
<element ref="cgray"><bounds xc="61" yc="42" width="92" height="92" /></element>
<element ref="blackb"><bounds xc="61" yc="42" width="80.5" height="80.5" /></element>
<group ref="sb_board"><bounds x="21" y="2" width="80" height="80" /></group>
<!-- chessboard leds -->
<element name="0.7" ref="led"><bounds x="14.8" yc="7" width="3" height="0.9" /></element>
<element name="0.6" ref="led"><bounds x="14.8" yc="17" width="3" height="0.9" /></element>
<element name="0.5" ref="led"><bounds x="14.8" yc="27" width="3" height="0.9" /></element>
<element name="0.4" ref="led"><bounds x="14.8" yc="37" width="3" height="0.9" /></element>
<element name="0.3" ref="led"><bounds x="14.8" yc="47" width="3" height="0.9" /></element>
<element name="0.2" ref="led"><bounds x="14.8" yc="57" width="3" height="0.9" /></element>
<element name="0.1" ref="led"><bounds x="14.8" yc="67" width="3" height="0.9" /></element>
<element name="0.0" ref="led"><bounds x="14.8" yc="77" width="3" height="0.9" /></element>
<element name="1.0" ref="led"><bounds xc="26" y="85.2" width="0.9" height="3" /></element>
<element name="1.1" ref="led"><bounds xc="36" y="85.2" width="0.9" height="3" /></element>
<element name="1.2" ref="led"><bounds xc="46" y="85.2" width="0.9" height="3" /></element>
<element name="1.3" ref="led"><bounds xc="56" y="85.2" width="0.9" height="3" /></element>
<element name="1.4" ref="led"><bounds xc="66" y="85.2" width="0.9" height="3" /></element>
<element name="1.5" ref="led"><bounds xc="76" y="85.2" width="0.9" height="3" /></element>
<element name="1.6" ref="led"><bounds xc="86" y="85.2" width="0.9" height="3" /></element>
<element name="1.7" ref="led"><bounds xc="96" y="85.2" width="0.9" height="3" /></element>
<element ref="cgray"><bounds x="14.3" y="-1" width="1.5" height="89" /></element>
<element ref="cgray"><bounds x="14.3" y="87.2" width="100" height="1.5" /></element>
<element ref="blackb"><bounds x="0" y="-10" width="150" height="9.75" /></element>
<element ref="blackb"><bounds x="106.2" y="-10" width="50" height="150" /></element>
<group ref="sb_ui"><bounds x="2.8" y="2" width="10" height="80" /></group>
<!-- chessboard coords -->
<element ref="text_8"><bounds x="18.6" y="6" width="2" height="2" /></element>
<element ref="text_7"><bounds x="18.6" y="16" width="2" height="2" /></element>
<element ref="text_6"><bounds x="18.6" y="26" width="2" height="2" /></element>
<element ref="text_5"><bounds x="18.6" y="36" width="2" height="2" /></element>
<element ref="text_4"><bounds x="18.6" y="46" width="2" height="2" /></element>
<element ref="text_3"><bounds x="18.6" y="56" width="2" height="2" /></element>
<element ref="text_2"><bounds x="18.6" y="66" width="2" height="2" /></element>
<element ref="text_1"><bounds x="18.6" y="76" width="2" height="2" /></element>
<element ref="text_a"><bounds x="25" y="82.6" width="2" height="2" /></element>
<element ref="text_b"><bounds x="35" y="82.6" width="2" height="2" /></element>
<element ref="text_c"><bounds x="45" y="82.6" width="2" height="2" /></element>
<element ref="text_d"><bounds x="55" y="82.6" width="2" height="2" /></element>
<element ref="text_e"><bounds x="65" y="82.6" width="2" height="2" /></element>
<element ref="text_f"><bounds x="75" y="82.6" width="2" height="2" /></element>
<element ref="text_g"><bounds x="85" y="82.6" width="2" height="2" /></element>
<element ref="text_h"><bounds x="95" y="82.6" width="2" height="2" /></element>
<!-- right side -->
<group ref="buttons"><bounds x="109.5" y="38.75" width="60" height="60" /></group>
<screen index="0"><bounds xc="125" yc="17.95" width="19" height="7.955" /></screen>
<element ref="lcdm" blend="multiply"><bounds xc="125" yc="17.95" width="20" height="9" /></element>
<element ref="cwhite"><bounds x="112.8" y="24" width="39.4" height="0.25" /></element>
<element ref="cgray"><bounds x="106.45" y="-0.25" width="50.25" height="10.25" /></element>
<element ref="cgray"><bounds x="106.45" y="72" width="50.25" height="16.7" /></element>
<element ref="cgray"><bounds x="106.45" y="5" width="2" height="80" /></element>
<element ref="cgray"><bounds x="14.3" y="87.2" width="100" height="1.5" /></element>
</view>
</mamelayout>

View File

@ -0,0 +1,459 @@
<?xml version="1.0"?>
<!--
license:CC0-1.0
authors:hap
-->
<mamelayout version="2">
<!-- define elements -->
<element name="blackb"><rect><color red="0" green="0" blue="0" /></rect></element>
<element name="black2"><rect><color red="0.2" green="0.2" blue="0.2" /></rect></element>
<element name="black3"><rect><color red="0.1" green="0.1" blue="0.1" /></rect></element>
<element name="red"><rect><color red="0.8" green="0.1" blue="0.1" /></rect></element>
<element name="lcdm"><rect><color red="0.54" green="0.57" blue="0.58" /></rect></element>
<element name="led" defstate="0">
<rect state="1"><color red="1.0" green="0.1" blue="0.15" /></rect>
<rect state="0"><color red="1.0" green="0.1" blue="0.15" alpha="0.17" /></rect>
</element>
<element name="text_1"><text string="1"></text></element>
<element name="text_2"><text string="2"></text></element>
<element name="text_3"><text string="3"></text></element>
<element name="text_4"><text string="4"></text></element>
<element name="text_5"><text string="5"></text></element>
<element name="text_6"><text string="6"></text></element>
<element name="text_7"><text string="7"></text></element>
<element name="text_8"><text string="8"></text></element>
<element name="text_a"><text string="A"></text></element>
<element name="text_b"><text string="B"></text></element>
<element name="text_c"><text string="C"></text></element>
<element name="text_d"><text string="D"></text></element>
<element name="text_e"><text string="E"></text></element>
<element name="text_f"><text string="F"></text></element>
<element name="text_g"><text string="G"></text></element>
<element name="text_h"><text string="H"></text></element>
<!-- sb board -->
<element name="cwhite"><rect><color red="0.81" green="0.8" blue="0.79" /></rect></element>
<element name="cblack"><rect><color red="0.41" green="0.4" blue="0.39" /></rect></element>
<element name="hlbb" defstate="0">
<text string=" "><bounds x="0" y="0" width="1" height="1" /></text>
<disk state="1">
<bounds x="0.12" y="0.12" width="0.76" height="0.76" />
<color red="0" green="0" blue="0" />
</disk>
</element>
<element name="piece" defstate="0">
<image file="chess/wp.svg" state="1"/>
<image file="chess/wn.svg" state="2"/>
<image file="chess/wb.svg" state="3"/>
<image file="chess/wr.svg" state="4"/>
<image file="chess/wq.svg" state="5"/>
<image file="chess/wk.svg" state="6"/>
<image file="chess/bp.svg" state="7"/>
<image file="chess/bn.svg" state="8"/>
<image file="chess/bb.svg" state="9"/>
<image file="chess/br.svg" state="10"/>
<image file="chess/bq.svg" state="11"/>
<image file="chess/bk.svg" state="12"/>
<!-- selected pieces -->
<image file="chess/wp.svg" state="13"><color alpha="0.5" /></image>
<image file="chess/wn.svg" state="14"><color alpha="0.5" /></image>
<image file="chess/wb.svg" state="15"><color alpha="0.5" /></image>
<image file="chess/wr.svg" state="16"><color alpha="0.5" /></image>
<image file="chess/wq.svg" state="17"><color alpha="0.5" /></image>
<image file="chess/wk.svg" state="18"><color alpha="0.5" /></image>
<image file="chess/bp.svg" state="19"><color alpha="0.5" /></image>
<image file="chess/bn.svg" state="20"><color alpha="0.5" /></image>
<image file="chess/bb.svg" state="21"><color alpha="0.5" /></image>
<image file="chess/br.svg" state="22"><color alpha="0.5" /></image>
<image file="chess/bq.svg" state="23"><color alpha="0.5" /></image>
<image file="chess/bk.svg" state="24"><color alpha="0.5" /></image>
</element>
<group name="sb_board">
<bounds x="0" y="0" width="80" height="80" />
<!-- squares (avoid seams) -->
<element ref="cwhite"><bounds x="0" y="0" width="11" height="11" /></element>
<element ref="cblack"><bounds x="10" y="0" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="20" y="0" width="11" height="11" /></element>
<element ref="cblack"><bounds x="30" y="0" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="40" y="0" width="11" height="11" /></element>
<element ref="cblack"><bounds x="50" y="0" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="60" y="0" width="11" height="11" /></element>
<element ref="cblack"><bounds x="70" y="0" width="10" height="11" /></element>
<element ref="cblack"><bounds x="0" y="10" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="10" y="10" width="11" height="11" /></element>
<element ref="cblack"><bounds x="20" y="10" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="30" y="10" width="11" height="11" /></element>
<element ref="cblack"><bounds x="40" y="10" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="50" y="10" width="11" height="11" /></element>
<element ref="cblack"><bounds x="60" y="10" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="70" y="10" width="10" height="11" /></element>
<element ref="cwhite"><bounds x="0" y="20" width="11" height="11" /></element>
<element ref="cblack"><bounds x="10" y="20" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="20" y="20" width="11" height="11" /></element>
<element ref="cblack"><bounds x="30" y="20" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="40" y="20" width="11" height="11" /></element>
<element ref="cblack"><bounds x="50" y="20" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="60" y="20" width="11" height="11" /></element>
<element ref="cblack"><bounds x="70" y="20" width="10" height="11" /></element>
<element ref="cblack"><bounds x="0" y="30" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="10" y="30" width="11" height="11" /></element>
<element ref="cblack"><bounds x="20" y="30" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="30" y="30" width="11" height="11" /></element>
<element ref="cblack"><bounds x="40" y="30" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="50" y="30" width="11" height="11" /></element>
<element ref="cblack"><bounds x="60" y="30" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="70" y="30" width="10" height="11" /></element>
<element ref="cwhite"><bounds x="0" y="40" width="11" height="11" /></element>
<element ref="cblack"><bounds x="10" y="40" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="20" y="40" width="11" height="11" /></element>
<element ref="cblack"><bounds x="30" y="40" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="40" y="40" width="11" height="11" /></element>
<element ref="cblack"><bounds x="50" y="40" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="60" y="40" width="11" height="11" /></element>
<element ref="cblack"><bounds x="70" y="40" width="10" height="11" /></element>
<element ref="cblack"><bounds x="0" y="50" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="10" y="50" width="11" height="11" /></element>
<element ref="cblack"><bounds x="20" y="50" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="30" y="50" width="11" height="11" /></element>
<element ref="cblack"><bounds x="40" y="50" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="50" y="50" width="11" height="11" /></element>
<element ref="cblack"><bounds x="60" y="50" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="70" y="50" width="10" height="11" /></element>
<element ref="cwhite"><bounds x="0" y="60" width="11" height="11" /></element>
<element ref="cblack"><bounds x="10" y="60" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="20" y="60" width="11" height="11" /></element>
<element ref="cblack"><bounds x="30" y="60" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="40" y="60" width="11" height="11" /></element>
<element ref="cblack"><bounds x="50" y="60" width="11" height="11" /></element>
<element ref="cwhite"><bounds x="60" y="60" width="11" height="11" /></element>
<element ref="cblack"><bounds x="70" y="60" width="10" height="11" /></element>
<element ref="cblack"><bounds x="0" y="70" width="11" height="10" /></element>
<element ref="cwhite"><bounds x="10" y="70" width="11" height="10" /></element>
<element ref="cblack"><bounds x="20" y="70" width="11" height="10" /></element>
<element ref="cwhite"><bounds x="30" y="70" width="11" height="10" /></element>
<element ref="cblack"><bounds x="40" y="70" width="11" height="10" /></element>
<element ref="cwhite"><bounds x="50" y="70" width="11" height="10" /></element>
<element ref="cblack"><bounds x="60" y="70" width="11" height="10" /></element>
<element ref="cwhite"><bounds x="70" y="70" width="10" height="10" /></element>
<!-- sensors, pieces -->
<repeat count="8">
<param name="y" start="0" increment="10" />
<param name="i" start="8" increment="-1" />
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x01"><bounds x="0" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x02"><bounds x="10" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x04"><bounds x="20" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x08"><bounds x="30" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x10"><bounds x="40" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x20"><bounds x="50" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x40"><bounds x="60" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x80"><bounds x="70" y="~y~" width="10" height="10" /><color alpha="0.04" /></element>
<element name="piece_a~i~" ref="piece"><bounds x="0" y="~y~" width="10" height="10" /></element>
<element name="piece_b~i~" ref="piece"><bounds x="10" y="~y~" width="10" height="10" /></element>
<element name="piece_c~i~" ref="piece"><bounds x="20" y="~y~" width="10" height="10" /></element>
<element name="piece_d~i~" ref="piece"><bounds x="30" y="~y~" width="10" height="10" /></element>
<element name="piece_e~i~" ref="piece"><bounds x="40" y="~y~" width="10" height="10" /></element>
<element name="piece_f~i~" ref="piece"><bounds x="50" y="~y~" width="10" height="10" /></element>
<element name="piece_g~i~" ref="piece"><bounds x="60" y="~y~" width="10" height="10" /></element>
<element name="piece_h~i~" ref="piece"><bounds x="70" y="~y~" width="10" height="10" /></element>
</repeat>
</group>
<!-- sb ui -->
<element name="hlub" defstate="0">
<rect state="1"><color red="0" green="0" blue="0" /></rect>
</element>
<element name="text_uit1"><text string="S.BOARD"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uit2"><text string="INTERFACE"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uib1"><text string="BOARD:"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uib2"><text string="RESET"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uib3"><text string="CLEAR"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uis1"><text string="SPAWN:"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uih1"><text string="HAND:"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uih2"><text string="REMOVE"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uiu1"><text string="UNDO:"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uiu2a"><text string=" &lt;&lt;"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uiu2b"><text string=" &lt; "><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uiu2c"><text string=" &gt;"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uiu2d"><text string=" &gt;&gt;"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_uiu3b"><text string="/"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_uiu3a" defstate="0">
<simplecounter maxstate="999" digits="1" align="2">
<color red="0.81" green="0.8" blue="0.79" />
</simplecounter>
</element>
<element name="text_uiu3c" defstate="0">
<simplecounter maxstate="999" digits="1" align="1">
<color red="0.81" green="0.8" blue="0.79" />
</simplecounter>
</element>
<group name="sb_ui">
<bounds x="0" y="0" width="10" height="80" />
<element ref="cblack"><bounds x="0" y="0" width="10" height="1" /></element>
<element ref="cblack"><bounds x="0" y="7" width="10" height="1" /></element>
<element ref="cblack"><bounds x="0" y="79" width="10" height="1" /></element>
<element ref="text_uit1"><bounds x="0" y="2" width="10" height="2" /></element>
<element ref="text_uit2"><bounds x="0" y="4" width="10" height="2" /></element>
<!-- board -->
<element ref="text_uib1"><bounds x="0" y="9" width="10" height="2" /></element>
<element ref="cwhite"><bounds x="1" y="11.5" width="8" height="2.5" /></element>
<element ref="cwhite"><bounds x="1" y="15" width="8" height="2.5" /></element>
<element ref="text_uib2"><bounds x="1.5" y="11.75" width="7" height="2" /></element>
<element ref="text_uib3"><bounds x="1.5" y="15.25" width="7" height="2" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x200"><bounds x="1" y="11.5" width="8" height="2.5" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x100"><bounds x="1" y="15" width="8" height="2.5" /><color alpha="0.25" /></element>
<!-- spawn -->
<element ref="text_uis1"><bounds x="0" y="20.5" width="10" height="2" /></element>
<element ref="cwhite"><bounds x="1" y="23" width="8" height="12" /></element>
<element ref="cwhite"><bounds x="1" y="36" width="8" height="12" /></element>
<element name="piece_ui1" ref="piece"><bounds x="1" y="23" width="4" height="4" /></element>
<element name="piece_ui2" ref="piece"><bounds x="1" y="27" width="4" height="4" /></element>
<element name="piece_ui3" ref="piece"><bounds x="1" y="31" width="4" height="4" /></element>
<element name="piece_ui4" ref="piece"><bounds x="5" y="23" width="4" height="4" /></element>
<element name="piece_ui5" ref="piece"><bounds x="5" y="27" width="4" height="4" /></element>
<element name="piece_ui6" ref="piece"><bounds x="5" y="31" width="4" height="4" /></element>
<element name="piece_ui7" ref="piece"><bounds x="1" y="36" width="4" height="4" /></element>
<element name="piece_ui8" ref="piece"><bounds x="1" y="40" width="4" height="4" /></element>
<element name="piece_ui9" ref="piece"><bounds x="1" y="44" width="4" height="4" /></element>
<element name="piece_ui10" ref="piece"><bounds x="5" y="36" width="4" height="4" /></element>
<element name="piece_ui11" ref="piece"><bounds x="5" y="40" width="4" height="4" /></element>
<element name="piece_ui12" ref="piece"><bounds x="5" y="44" width="4" height="4" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0001"><bounds x="1" y="23" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0002"><bounds x="1" y="27" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0004"><bounds x="1" y="31" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0008"><bounds x="5" y="23" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0010"><bounds x="5" y="27" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0020"><bounds x="5" y="31" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0040"><bounds x="1" y="36" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0080"><bounds x="1" y="40" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0100"><bounds x="1" y="44" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0200"><bounds x="5" y="36" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0400"><bounds x="5" y="40" width="4" height="4" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:SPAWN" inputmask="0x0800"><bounds x="5" y="44" width="4" height="4" /><color alpha="0.25" /></element>
<!-- hand -->
<element ref="text_uih1"><bounds x="0" y="51" width="10" height="2" /></element>
<element ref="cblack"><bounds x="1" y="53.5" width="8" height="6" /></element>
<element name="piece_ui0" ref="piece"><bounds x="2" y="53.5" width="6" height="6" /></element>
<element ref="cwhite"><bounds x="1" y="60.5" width="8" height="2.5" /></element>
<element ref="text_uih2"><bounds x="1.5" y="60.75" width="7" height="2" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x08"><bounds x="1" y="60.5" width="8" height="2.5" /><color alpha="0.25" /></element>
<!-- undo -->
<element ref="text_uiu1"><bounds x="0" y="66" width="10" height="2" /></element>
<element ref="cwhite"><bounds x="1" y="68.5" width="1.7" height="6" /></element>
<element ref="cwhite"><bounds x="3.1" y="68.5" width="1.7" height="6" /></element>
<element ref="cwhite"><bounds x="5.2" y="68.5" width="1.7" height="6" /></element>
<element ref="cwhite"><bounds x="7.3" y="68.5" width="1.7" height="6" /></element>
<element ref="text_uiu2a"><bounds x="1" y="69.5" width="1.7" height="4" /></element>
<element ref="text_uiu2b"><bounds x="3.1" y="69.5" width="1.7" height="4" /></element>
<element ref="text_uiu2c"><bounds x="5.2" y="69.5" width="1.7" height="4" /></element>
<element ref="text_uiu2d"><bounds x="7.3" y="69.5" width="1.7" height="4" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x10"><bounds x="1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x20"><bounds x="3.1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x40"><bounds x="5.2" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element ref="hlub" inputtag="board:UI" inputmask="0x80"><bounds x="7.3" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element>
<element name="count_ui0" ref="text_uiu3a"><bounds x="0" y="75" width="4" height="2" /></element>
<element name="count_ui1" ref="text_uiu3c"><bounds x="6" y="75" width="4" height="2" /></element>
<element ref="text_uiu3b"><bounds x="4" y="75" width="2" height="2" /></element>
</group>
<!-- button panel -->
<element name="but" defstate="0">
<rect state="0"><color red="0.2" green="0.2" blue="0.2" /></rect>
<rect state="1"><color red="0.35" green="0.35" blue="0.35" /></rect>
</element>
<element name="text_b1"><text string="GO/STOP"></text></element>
<element name="text_b2"><text string="TAKE BACK"></text></element>
<element name="text_b3"><text string="CLEAR"></text></element>
<element name="text_b4"><text string="LEVEL"></text></element>
<element name="text_b5"><text string="ENTER"></text></element>
<element name="text_b6"><text string="NEW GAME"></text></element>
<element name="text_b7"><text string="OPTION"></text></element>
<element name="text_b8"><text string="INFO"></text></element>
<element name="text_b9"><text string="POSITION"></text></element>
<element name="text_b10"><text string="-" align="1"></text></element>
<element name="text_b11"><text string="+" align="1"></text></element>
<element name="text_p1"><image file="chess/wk.svg"/></element>
<element name="text_p2"><image file="chess/wq.svg"/></element>
<element name="text_p3"><image file="chess/wr.svg"/></element>
<element name="text_p4"><image file="chess/wb.svg"/></element>
<element name="text_p5"><image file="chess/wn.svg"/></element>
<element name="text_p6"><image file="chess/wp.svg"/></element>
<element name="whiter"><rect><color red="1" green="1" blue="1" /></rect></element>
<element name="blackr">
<rect>
<bounds x="0" y="0" width="10" height="10" />
<color red="1" green="1" blue="1" />
</rect>
<rect>
<bounds x="1" y="1" width="8" height="8" />
<color red="0" green="0" blue="0" />
</rect>
</element>
<group name="buttons1">
<bounds x="0" y="0" width="80" height="80" />
<repeat count="5">
<param name="x" start="9" increment="10.8" />
<param name="i" start="1" increment="1" />
<element ref="text_b~i~"><bounds xc="~x~" y="7" width="15" height="1.866" /></element>
</repeat>
<repeat count="4">
<param name="x" start="8" increment="9" />
<param name="i" start="6" increment="1" />
<element ref="text_b~i~"><bounds xc="~x~" y="20.333" width="15" height="1.866" /></element>
</repeat>
<repeat count="6">
<param name="x" start="8" increment="9" />
<param name="i" start="1" increment="1" />
<element ref="text_p~i~"><bounds xc="~x~" y="32" width="4" height="4" /></element>
</repeat>
<element ref="text_b10"><bounds x="44.5" yc="21.2" width="10" height="3" /></element>
<element ref="text_b11"><bounds x="53.5" yc="21.2" width="10" height="2.4" /></element>
<element ref="whiter"><bounds x="42.55" y="20.65" width="1.4" height="1.4" /></element>
<element ref="blackr"><bounds x="51.55" y="20.65" width="1.4" height="1.4" /></element>
</group>
<group name="buttons2">
<bounds x="0" y="0" width="80" height="80" />
<element ref="but" inputtag="IN.3" inputmask="0x10"><bounds xc="9" y="10" width="9.3" height="2" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x20"><bounds xc="19.8" y="10" width="9.3" height="2" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x40"><bounds xc="30.6" y="10" width="9.3" height="2" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x04"><bounds xc="41.4" y="10" width="9.3" height="2" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x80"><bounds xc="52.2" y="10" width="9.3" height="2" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x01"><bounds xc="8" y="23.333" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x08"><bounds xc="17" y="23.333" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x10"><bounds xc="26" y="23.333" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x02"><bounds xc="35" y="23.333" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x40"><bounds xc="44" y="23.333" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x80"><bounds xc="53" y="23.333" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x20"><bounds xc="8" y="36.666" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x10"><bounds xc="17" y="36.666" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x08"><bounds xc="26" y="36.666" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x04"><bounds xc="35" y="36.666" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x02"><bounds xc="44" y="36.666" width="7.5" height="2" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x01"><bounds xc="53" y="36.666" width="7.5" height="2" /></element>
</group>
<!-- build screen -->
<view name="Internal Layout">
<bounds left="3" right="151.875" top="-0.25" bottom="89" />
<!-- chessboard coords -->
<element ref="text_8"><bounds x="18.7" y="6" width="2" height="2" /></element>
<element ref="text_7"><bounds x="18.7" y="16" width="2" height="2" /></element>
<element ref="text_6"><bounds x="18.7" y="26" width="2" height="2" /></element>
<element ref="text_5"><bounds x="18.7" y="36" width="2" height="2" /></element>
<element ref="text_4"><bounds x="18.7" y="46" width="2" height="2" /></element>
<element ref="text_3"><bounds x="18.7" y="56" width="2" height="2" /></element>
<element ref="text_2"><bounds x="18.7" y="66" width="2" height="2" /></element>
<element ref="text_1"><bounds x="18.7" y="76" width="2" height="2" /></element>
<element ref="text_a"><bounds x="25" y="82.6" width="2" height="2" /></element>
<element ref="text_b"><bounds x="35" y="82.6" width="2" height="2" /></element>
<element ref="text_c"><bounds x="45" y="82.6" width="2" height="2" /></element>
<element ref="text_d"><bounds x="55" y="82.6" width="2" height="2" /></element>
<element ref="text_e"><bounds x="65" y="82.6" width="2" height="2" /></element>
<element ref="text_f"><bounds x="75" y="82.6" width="2" height="2" /></element>
<element ref="text_g"><bounds x="85" y="82.6" width="2" height="2" /></element>
<element ref="text_h"><bounds x="95" y="82.6" width="2" height="2" /></element>
<!-- right side -->
<group ref="buttons1"><bounds x="103.675" y="38.75" width="60" height="60" /></group>
<element ref="cwhite" blend="multiply"><bounds x="0" y="0" width="170" height="90" /></element>
<group ref="buttons2"><bounds x="103.675" y="38.75" width="60" height="60" /></group>
<element ref="cwhite"><bounds x="107" y="12" width="39.2" height="12" /></element>
<repeat count="60">
<param name="y" start="12" increment="0.2" />
<element ref="red"><bounds x="107" y="~y~" width="39.2" height="11.8" /><color alpha="0.03" /></element>
</repeat>
<repeat count="9">
<param name="y" start="12.5" increment="1.2" />
<element ref="black3"><bounds x="107" y="~y~" width="39.2" height="0.25" /></element>
</repeat>
<element ref="black2"><bounds xc="119" yc="17.5" width="19.3" height="8.255" /></element>
<screen index="0"><bounds xc="119" yc="17.5" width="19" height="7.955" /></screen>
<element ref="lcdm" blend="multiply"><bounds xc="119" yc="17.5" width="19.3" height="8.255" /></element>
<element ref="blackb"><bounds x="106" y="23" width="41.2" height="18" /></element>
<element ref="black3"><bounds x="107" y="23" width="39.2" height="2.5" /></element>
<!-- chessboard leds -->
<element name="0.7" ref="led"><bounds x="15.9" yc="7" width="2" height="0.9" /></element>
<element name="0.6" ref="led"><bounds x="15.9" yc="17" width="2" height="0.9" /></element>
<element name="0.5" ref="led"><bounds x="15.9" yc="27" width="2" height="0.9" /></element>
<element name="0.4" ref="led"><bounds x="15.9" yc="37" width="2" height="0.9" /></element>
<element name="0.3" ref="led"><bounds x="15.9" yc="47" width="2" height="0.9" /></element>
<element name="0.2" ref="led"><bounds x="15.9" yc="57" width="2" height="0.9" /></element>
<element name="0.1" ref="led"><bounds x="15.9" yc="67" width="2" height="0.9" /></element>
<element name="0.0" ref="led"><bounds x="15.9" yc="77" width="2" height="0.9" /></element>
<element name="1.0" ref="led"><bounds xc="26" y="85.2" width="0.9" height="2" /></element>
<element name="1.1" ref="led"><bounds xc="36" y="85.2" width="0.9" height="2" /></element>
<element name="1.2" ref="led"><bounds xc="46" y="85.2" width="0.9" height="2" /></element>
<element name="1.3" ref="led"><bounds xc="56" y="85.2" width="0.9" height="2" /></element>
<element name="1.4" ref="led"><bounds xc="66" y="85.2" width="0.9" height="2" /></element>
<element name="1.5" ref="led"><bounds xc="76" y="85.2" width="0.9" height="2" /></element>
<element name="1.6" ref="led"><bounds xc="86" y="85.2" width="0.9" height="2" /></element>
<element name="1.7" ref="led"><bounds xc="96" y="85.2" width="0.9" height="2" /></element>
<group ref="sb_board"><bounds x="21" y="2" width="80" height="80" /></group>
<group ref="sb_ui"><bounds x="4.5" y="2" width="10" height="80" /></group>
</view>
</mamelayout>

View File

@ -419,7 +419,7 @@ authors:hap
<!-- build screen -->
<view name="Internal Layout">
<bounds left="2.8" right="148.6" top="-3.2" bottom="87.2" />
<bounds left="2.8" right="148.6" top="-0.25" bottom="87.2" />
<element ref="cwhite"><bounds xc="61" yc="42" width="95" height="95" /></element>
<element ref="blackb"><bounds xc="61" yc="42" width="80.5" height="80.5" /></element>
@ -445,6 +445,8 @@ authors:hap
<element name="1.7" ref="led"><bounds xc="96" y="85.2" width="0.9" height="3" /></element>
<element ref="cb_mask" blend="multiply"><bounds xc="61" yc="42" width="100" height="100" /></element>
<element ref="blackb"><bounds x="0" y="-10" width="150" height="9.75" /></element>
<group ref="sb_ui"><bounds x="4.3" y="2" width="10" height="80" /></group>
<!-- chessboard coords -->

View File

@ -38794,7 +38794,10 @@ edames
exechess
@source:saitek/gk2000.cpp
centurion
cougar
gk2000
gk2100
@source:saitek/intchess.cpp
intchess

View File

@ -236,8 +236,10 @@ static INPUT_PORTS_START( edames ) // see comments for French version labels
PORT_START("IN.3")
PORT_CONFNAME( 0x03, 0x02, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, edames_state, change_cpu_freq, 0) // factory set
PORT_CONFSETTING( 0x02, "8MHz (original)" )
PORT_CONFSETTING( 0x00, "12MHz (newer)" )
PORT_CONFSETTING( 0x03, "6MHz (unofficial)" )
PORT_CONFSETTING( 0x02, "8MHz (original version)" )
PORT_CONFSETTING( 0x01, "10MHz (unofficial)" )
PORT_CONFSETTING( 0x00, "12MHz (newer version)" )
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("Swap Side") // Tourne Damier
PORT_START("RESET")

View File

@ -1,37 +1,93 @@
// license:BSD-3-Clause
// copyright-holders:hap
// thanks-to:Sean Riddle
// thanks-to:Sean Riddle, Berger
/*******************************************************************************
Saitek Kasparov GK 2000
Saitek GK 2000 / Centurion
The chess engine is by Frans Morsch. According to schematics, GK 2100 is on the
same hardware.
These chess computers all have the same I/O and fit in the same driver. The chess
engine is by Frans Morsch.
TODO:
- is the H8/3212 V03 version on the same hardware?
- versions with the A20 ROM that don't officially support the extra options on
the 2nd row, can still access them when turning the computer on by simultaneously
pressing the Go/Stop button with the Option button. This doesn't work on MAME,
something with MCU standby stabilisation maybe?
- it does a cold boot at every reset, so nvram won't work properly unless MAME
adds some kind of auxillary autosave state feature at power-off
================================================================================
Saitek GK 2000 family
Hardware notes:
GK 2000 (H8/323 version):
- PCB label: ST12-PE-009 REV1
- Hitachi H8/323 MCU, 20MHz XTAL
- LCD with 5 7segs and custom segments
- piezo, 16 LEDs, button sensors chessboard
A13 MCU is used in:
Saitek GK 2100 is on the same hardware, but has a H8/325 instead of H8/323.
H8/323 A13 MCU is used in:
- Saitek GK 2000 (86071220X12)
- Saitek Travel Champion 2080 (86071220X12)
- Saitek Barracuda (suspected)
- Saitek Mephisto Mythos (86142221X34)
- Tandy (Radio Shack) Mega 2050X (86071221X12)
- Tandy (Radio Shack) Master 2200X (suspected)
- Tandy (Radio Shack) Chess Master (suspected)
Travel Champion 2080 and Tandy Mega 2050X are 14MHz instead of 20MHz.
TODO:
- it does a cold boot at every reset, so nvram won't work properly unless MAME
adds some kind of auxillary autosave state feature at power-off
================================================================================
Saitek Centurion family
This is the program with the infamous H8 bug, not named after the MCU, but after
the H8 square. The piece on H8 is moved immediately, regardless of playing level,
often resulting in blunders.
Hardware notes:
Centurion / Cougar:
- PCB label: ST42C/39A LOGIC PCB, SAITEK LTD, PN 51A125-01113 VER 3.0,
SCH ST42C-PE-000 REV 1.0, SCH ST39A-PE-002 VER 1.0
- Hitachi H8/3214 MCU, configuration diodes for XTAL a.o.
- same LCD and board hardware as GK 2000
Mephisto Explorer Pro:
- PCB label: 51CT12-01002, REV1.0 (smaller PCB)
- same MCU as Cougar, 16MHz XTAL
- LCD layout is slightly different, symbols are on the right side
For test mode, hold Enter after cold boot during the LCD test. It will say "TST",
press Enter again to see the diode configuration setting.
S = Studies button (if absent, this input functions as new game)
t = Teach mode (press a Symbol key after pressing Level)
L = LEDs enabled
n = 0/2/4/6 10+n MHz XTAL
b = Playing mode options on the 2nd row
All known chess computers with the A20 ROM have LEDs, and the S/t/b options are
either configured as either St, or b. So, none of them that have the Studies
button and teach mode officially support the extra options and vice versa.
H8/3214 A20 MCU is used in:
- Saitek Centurion (config: StL0_)
- Saitek Cosmos (config: __L0b)
- Saitek Cougar (config: __L6b)
- Saitek Mephisto Chess Challenger (config: StL0_)
- Saitek Mephisto Explorer Pro (config: StL6_)
- Saitek Mephisto Expert Travel Chess (config: __L0b)
- Saitek Mephisto Mystery (config: __L2b)
*******************************************************************************/
#include "emu.h"
#include "cpu/h8/h83217.h"
#include "cpu/h8/h8325.h"
#include "machine/sensorboard.h"
#include "sound/dac.h"
@ -41,7 +97,10 @@ TODO:
#include "speaker.h"
// internal artwork
#include "saitek_centurion.lh"
#include "saitek_cougar.lh"
#include "saitek_gk2000.lh"
#include "saitek_gk2100.lh"
namespace {
@ -60,17 +119,23 @@ public:
m_out_lcd(*this, "s%u.%u", 0U, 0U)
{ }
template <typename T> void cpu_config(T &maincpu);
void shared(machine_config &config);
void gk2000(machine_config &config);
void gk2100(machine_config &config);
void centurion(machine_config &config);
void cougar(machine_config &config);
DECLARE_INPUT_CHANGED_MEMBER(go_button);
DECLARE_INPUT_CHANGED_MEMBER(change_cpu_freq);
DECLARE_INPUT_CHANGED_MEMBER(gk2000_change_cpu_freq);
DECLARE_INPUT_CHANGED_MEMBER(centurion_change_cpu_freq);
protected:
virtual void machine_start() override;
private:
// devices/pointers
required_device<h8323_device> m_maincpu;
required_device<h8_device> m_maincpu;
required_device<sensorboard_device> m_board;
required_device<pwm_display_device> m_led_pwm;
required_device<pwm_display_device> m_lcd_pwm;
@ -105,7 +170,7 @@ void gk2000_state::machine_start()
save_item(NAME(m_lcd_com));
}
INPUT_CHANGED_MEMBER(gk2000_state::change_cpu_freq)
INPUT_CHANGED_MEMBER(gk2000_state::gk2000_change_cpu_freq)
{
// only 20MHz and 14MHz versions are known to exist, but the software supports others
static const int xm[9] = { 8, 20, 24, 28, 32, -1, -1, -1, 14 }; // XTAL in MHz (-1 is invalid)
@ -115,6 +180,13 @@ INPUT_CHANGED_MEMBER(gk2000_state::change_cpu_freq)
m_maincpu->set_unscaled_clock(mhz * 1'000'000);
}
INPUT_CHANGED_MEMBER(gk2000_state::centurion_change_cpu_freq)
{
// 14MHz version doesn't exist, but the software supports it
static const XTAL freq[4] = { 12_MHz_XTAL, 16_MHz_XTAL, 14_MHz_XTAL, 10_MHz_XTAL };
m_maincpu->set_unscaled_clock(freq[newval & 3]);
}
/*******************************************************************************
@ -241,38 +313,83 @@ static INPUT_PORTS_START( gk2000 )
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("Black / Right")
PORT_START("IN.2")
PORT_CONFNAME( 0xff, 0x02, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, gk2000_state, change_cpu_freq, 0) // factory set
PORT_CONFNAME( 0xff, 0x02, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, gk2000_state, gk2000_change_cpu_freq, 0) // factory set
PORT_CONFSETTING( 0x01, "8MHz (unofficial)" )
PORT_CONFSETTING( 0x00, "14MHz (Travel Champion 2080)" )
PORT_CONFSETTING( 0x02, "20MHz (GK 2000)" )
PORT_CONFSETTING( 0x02, "20MHz (GK 2000, GK 2100)" )
PORT_CONFSETTING( 0x04, "24MHz (unofficial)" )
PORT_CONFSETTING( 0x08, "28MHz (unofficial)" )
PORT_CONFSETTING( 0x10, "32MHz (unofficial)" )
PORT_START("IN.3")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_G) PORT_CHANGED_MEMBER(DEVICE_SELF, gk2000_state, go_button, 0) PORT_NAME("Go / Stop")
PORT_BIT(0xef, IP_ACTIVE_HIGH, IPT_UNUSED)
INPUT_PORTS_END
static INPUT_PORTS_START( gk2100 )
PORT_INCLUDE( gk2000 )
PORT_MODIFY("IN.1")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_W) PORT_CODE(KEYCODE_MINUS) PORT_CODE(KEYCODE_MINUS_PAD) PORT_NAME("White / -")
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_EQUALS) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("Black / +")
INPUT_PORTS_END
static INPUT_PORTS_START( cougar )
PORT_INCLUDE( gk2000 )
PORT_MODIFY("IN.2") // configuration diodes
PORT_BIT(0x27, 0x00, IPT_CUSTOM) // __Lnb
PORT_CONFNAME( 0x18, 0x08, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, gk2000_state, centurion_change_cpu_freq, 0)
PORT_CONFSETTING( 0x18, "10MHz (Centurion, Cosmos)" )
PORT_CONFSETTING( 0x00, "12MHz (Mephisto Mystery)" )
PORT_CONFSETTING( 0x10, "14MHz (unofficial)" )
PORT_CONFSETTING( 0x08, "16MHz (Cougar, Mephisto Explorer Pro)" )
PORT_BIT(0xc0, IP_ACTIVE_HIGH, IPT_UNUSED)
INPUT_PORTS_END
static INPUT_PORTS_START( centurion )
PORT_INCLUDE( cougar )
PORT_MODIFY("IN.0")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_NAME("Studies")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_F1) PORT_NAME("Clear") // combine for NEW GAME
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_CODE(KEYCODE_F1) PORT_NAME("Enter") // "
PORT_MODIFY("IN.2") // change defaults
PORT_BIT(0x27, 0x23, IPT_CUSTOM) // StLn_
PORT_CONFNAME( 0x18, 0x18, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, gk2000_state, centurion_change_cpu_freq, 0)
PORT_CONFSETTING( 0x18, "10MHz (Centurion, Cosmos)" )
PORT_CONFSETTING( 0x00, "12MHz (Mephisto Mystery)" )
PORT_CONFSETTING( 0x10, "14MHz (unofficial)" )
PORT_CONFSETTING( 0x08, "16MHz (Cougar, Mephisto Explorer Pro)" )
INPUT_PORTS_END
/*******************************************************************************
Machine Configs
*******************************************************************************/
void gk2000_state::gk2000(machine_config &config)
template <typename T>
void gk2000_state::cpu_config(T &maincpu)
{
maincpu.nvram_enable_backup(true);
maincpu.standby_cb().set(maincpu, FUNC(T::nvram_set_battery));
maincpu.standby_cb().append(FUNC(gk2000_state::standby));
maincpu.write_port1().set(FUNC(gk2000_state::lcd_segs_w<0>));
maincpu.write_port2().set(FUNC(gk2000_state::p2_w));
maincpu.write_port3().set(FUNC(gk2000_state::lcd_segs_w<1>));
maincpu.read_port4().set(FUNC(gk2000_state::p4_r));
maincpu.read_port5().set_constant(0xff);
maincpu.write_port5().set(FUNC(gk2000_state::p5_w));
maincpu.read_port6().set_ioport("IN.3").invert();
maincpu.write_port6().set(FUNC(gk2000_state::lcd_com_w));
maincpu.write_port7().set(FUNC(gk2000_state::lcd_segs_w<2>));
}
void gk2000_state::shared(machine_config &config)
{
// basic machine hardware
H8323(config, m_maincpu, 20_MHz_XTAL);
m_maincpu->nvram_enable_backup(true);
m_maincpu->standby_cb().set(m_maincpu, FUNC(h8323_device::nvram_set_battery));
m_maincpu->standby_cb().append(FUNC(gk2000_state::standby));
m_maincpu->write_port1().set(FUNC(gk2000_state::lcd_segs_w<0>));
m_maincpu->write_port2().set(FUNC(gk2000_state::p2_w));
m_maincpu->write_port3().set(FUNC(gk2000_state::lcd_segs_w<1>));
m_maincpu->read_port4().set(FUNC(gk2000_state::p4_r));
m_maincpu->read_port5().set_constant(0xff);
m_maincpu->write_port5().set(FUNC(gk2000_state::p5_w));
m_maincpu->read_port6().set_ioport("IN.3").invert();
m_maincpu->write_port6().set(FUNC(gk2000_state::lcd_com_w));
m_maincpu->write_port7().set(FUNC(gk2000_state::lcd_segs_w<2>));
SENSORBOARD(config, m_board).set_type(sensorboard_device::BUTTONS);
m_board->init_cb().set(m_board, FUNC(sensorboard_device::preset_chess));
m_board->set_delay(attotime::from_msec(150));
@ -295,6 +412,42 @@ void gk2000_state::gk2000(machine_config &config)
DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
}
void gk2000_state::gk2000(machine_config &config)
{
H8323(config, m_maincpu, 20_MHz_XTAL);
cpu_config<h8323_device>(downcast<h8323_device &>(*m_maincpu));
shared(config);
}
void gk2000_state::gk2100(machine_config &config)
{
H8325(config, m_maincpu, 20_MHz_XTAL);
cpu_config<h8325_device>(downcast<h8325_device &>(*m_maincpu));
shared(config);
config.set_default_layout(layout_saitek_gk2100);
}
void gk2000_state::centurion(machine_config &config)
{
H83214(config, m_maincpu, 10_MHz_XTAL);
cpu_config<h83214_device>(downcast<h83214_device &>(*m_maincpu));
shared(config);
config.set_default_layout(layout_saitek_centurion);
}
void gk2000_state::cougar(machine_config &config)
{
centurion(config);
m_maincpu->set_clock(16_MHz_XTAL);
config.set_default_layout(layout_saitek_cougar);
}
/*******************************************************************************
@ -309,6 +462,24 @@ ROM_START( gk2000 )
ROM_LOAD("gk2000.svg", 0, 68501, CRC(80554c49) SHA1(88f06ec8f403eaaf7cbce4cc84807b5742ce7108) )
ROM_END
ROM_START( gk2100 )
ROM_REGION( 0x8000, "maincpu", 0 )
ROM_LOAD("94_saitek_86100150110_3258b40p.u1", 0x0000, 0x8000, CRC(33823df6) SHA1(df528bbbf5eed985d05ced07fcb8f1cfb91a9f1b) )
ROM_REGION( 68501, "screen", 0 )
ROM_LOAD("gk2000.svg", 0, 68501, CRC(80554c49) SHA1(88f06ec8f403eaaf7cbce4cc84807b5742ce7108) )
ROM_END
ROM_START( centurion )
ROM_REGION( 0x8000, "maincpu", 0 )
ROM_LOAD("98_saitek_86171400305_hd6433214a20p.u1", 0x0000, 0x8000, CRC(31e35d22) SHA1(92cc3d90fc4e33f9634c0229fdb339dd0d8c5133) )
ROM_REGION( 68501, "screen", 0 )
ROM_LOAD("gk2000.svg", 0, 68501, CRC(80554c49) SHA1(88f06ec8f403eaaf7cbce4cc84807b5742ce7108) )
ROM_END
#define rom_cougar rom_centurion
} // anonymous namespace
@ -317,5 +488,10 @@ ROM_END
Drivers
*******************************************************************************/
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
SYST( 1992, gk2000, 0, 0, gk2000, gk2000, gk2000_state, empty_init, "Saitek", "Kasparov GK 2000", MACHINE_SUPPORTS_SAVE )
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
SYST( 1992, gk2000, 0, 0, gk2000, gk2000, gk2000_state, empty_init, "Saitek", "Kasparov GK 2000", MACHINE_SUPPORTS_SAVE )
SYST( 1994, gk2100, 0, 0, gk2100, gk2100, gk2000_state, empty_init, "Saitek", "Kasparov GK 2100", MACHINE_SUPPORTS_SAVE )
SYST( 1998, centurion, 0, 0, centurion, centurion, gk2000_state, empty_init, "Saitek", "Kasparov Centurion", MACHINE_SUPPORTS_SAVE )
SYST( 1998, cougar, centurion, 0, cougar, cougar, gk2000_state, empty_init, "Saitek", "Kasparov Cougar", MACHINE_SUPPORTS_SAVE )

View File

@ -267,8 +267,10 @@ static INPUT_PORTS_START( prisma )
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Q) PORT_NAME("New Game")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_CONFNAME( 0x81, 0x01, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, prisma_state, change_cpu_freq, 0) // factory set
PORT_CONFSETTING( 0x00, "16MHz (CC 2150L)" )
PORT_CONFSETTING( 0x81, "12MHz (unofficial)" )
PORT_CONFSETTING( 0x00, "16MHz (Chess Champion 2150L)" )
PORT_CONFSETTING( 0x01, "20MHz (Prisma)" )
PORT_CONFSETTING( 0x80, "24MHz (unofficial)" )
PORT_START("IN.1")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("Normal")

View File

@ -77,7 +77,7 @@ public:
void tatraina(machine_config &config);
DECLARE_INPUT_CHANGED_MEMBER(go_button);
DECLARE_INPUT_CHANGED_MEMBER(change_cpu_freq);
DECLARE_INPUT_CHANGED_MEMBER(tatraina_change_cpu_freq);
protected:
virtual void machine_start() override;
@ -105,7 +105,7 @@ void tatrain_state::machine_start()
save_item(NAME(m_inp_mux));
}
INPUT_CHANGED_MEMBER(tatrain_state::change_cpu_freq)
INPUT_CHANGED_MEMBER(tatrain_state::tatraina_change_cpu_freq)
{
// H8/323 16MHz and 24MHz versions don't exist, but the software supports it
static const XTAL freq[4] = { 20_MHz_XTAL, 16_MHz_XTAL, 14_MHz_XTAL, 24_MHz_XTAL };
@ -207,9 +207,11 @@ static INPUT_PORTS_START( tatraina )
PORT_INCLUDE( tatrain )
PORT_MODIFY("FREQ")
PORT_CONFNAME( 0x03, 0x00, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, tatrain_state, change_cpu_freq, 0) // factory set
PORT_CONFNAME( 0x03, 0x00, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, tatrain_state, tatraina_change_cpu_freq, 0) // factory set
PORT_CONFSETTING( 0x02, "14Mhz (Champion Advanced Trainer)" )
PORT_CONFSETTING( 0x00, "20Mhz (Turbo Advanced Trainer)" )
PORT_CONFSETTING( 0x01, "16MHz (unofficial)" )
PORT_CONFSETTING( 0x00, "20Mhz (Turbo Advanced Trainer, Virtuoso)" )
PORT_CONFSETTING( 0x03, "24MHz (unofficial)" )
INPUT_PORTS_END
@ -222,7 +224,7 @@ template <typename T>
void tatrain_state::cpu_config(T &maincpu)
{
maincpu.nvram_enable_backup(true);
maincpu.standby_cb().set(m_maincpu, FUNC(h8_device::nvram_set_battery));
maincpu.standby_cb().set(maincpu, FUNC(T::nvram_set_battery));
maincpu.standby_cb().append([this](int state) { if (state) m_display->clear(); });
maincpu.write_port1().set(FUNC(tatrain_state::leds_w<0>));
maincpu.write_port2().set(FUNC(tatrain_state::leds_w<1>));

View File

@ -340,17 +340,23 @@ static INPUT_PORTS_START( turbo16k )
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_G) PORT_CHANGED_MEMBER(DEVICE_SELF, turbo16k_state, go_button, 0) PORT_NAME("Go")
PORT_START("FREQ")
PORT_BIT(0x88, 0x80, IPT_CUSTOM) // 12MHz
PORT_CONFNAME( 0x88, 0x80, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, turbo16k_state, change_cpu_freq, 0) // factory set
PORT_CONFSETTING( 0x00, "4MHz (unofficial)" )
PORT_CONFSETTING( 0x08, "8MHz (Companion III, Express 16K)" )
PORT_CONFSETTING( 0x80, "12MHz (Turbo 16K, Astral)" )
PORT_CONFSETTING( 0x88, "16MHz (unofficial)" )
PORT_BIT(0x77, IP_ACTIVE_LOW, IPT_UNUSED)
INPUT_PORTS_END
static INPUT_PORTS_START( compan3 )
PORT_INCLUDE( turbo16k )
PORT_MODIFY("FREQ")
PORT_MODIFY("FREQ") // default to 8MHz
PORT_CONFNAME( 0x88, 0x08, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, turbo16k_state, change_cpu_freq, 0) // factory set
PORT_CONFSETTING( 0x08, "8MHz (Companion III)" )
PORT_CONFSETTING( 0x80, "12MHz (Astral)" )
PORT_CONFSETTING( 0x00, "4MHz (unofficial)" )
PORT_CONFSETTING( 0x08, "8MHz (Companion III, Express 16K)" )
PORT_CONFSETTING( 0x80, "12MHz (Turbo 16K, Astral)" )
PORT_CONFSETTING( 0x88, "16MHz (unofficial)" )
INPUT_PORTS_END
static INPUT_PORTS_START( conquist )
@ -375,17 +381,24 @@ static INPUT_PORTS_START( conquist )
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_U) PORT_NAME("Set Up")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_NAME("Stop")
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_I) PORT_NAME("Info")
PORT_MODIFY("FREQ")
PORT_CONFNAME( 0x88, 0x80, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, turbo16k_state, change_cpu_freq, 0) // factory set
PORT_CONFSETTING( 0x08, "8MHz (Team-Mate)" )
PORT_CONFSETTING( 0x80, "12MHz (Conquistador)" )
INPUT_PORTS_END
static INPUT_PORTS_START( tmate )
PORT_INCLUDE( conquist )
PORT_MODIFY("FREQ")
PORT_BIT(0x88, 0x08, IPT_CUSTOM) // 8MHz
PORT_MODIFY("FREQ") // default to 8MHz
PORT_CONFNAME( 0x88, 0x08, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, turbo16k_state, change_cpu_freq, 0) // factory set
PORT_CONFSETTING( 0x08, "8MHz (Team-Mate)" )
PORT_CONFSETTING( 0x80, "12MHz (Conquistador)" )
INPUT_PORTS_END
static INPUT_PORTS_START( t1850 )
PORT_INCLUDE( turbo16k )
PORT_INCLUDE( compan3 )
PORT_MODIFY("IN.0")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_NAME("Sound")
@ -396,9 +409,6 @@ static INPUT_PORTS_START( t1850 )
PORT_MODIFY("RESET")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_O) PORT_CHANGED_MEMBER(DEVICE_SELF, turbo16k_state, go_button, 0) PORT_NAME("Power On")
PORT_MODIFY("FREQ")
PORT_BIT(0x88, 0x08, IPT_CUSTOM) // 8MHz
INPUT_PORTS_END