New working systems

-------------------
Regency [hap, Berger]
This commit is contained in:
hap 2024-05-30 19:01:12 +02:00
parent 10839c6046
commit b27007942d
7 changed files with 864 additions and 44 deletions

View File

@ -0,0 +1,347 @@
// license:BSD-3-Clause
// copyright-holders:hap
// thanks-to:Berger
/*******************************************************************************
Krypton Regency (model 933)
It was manufactured by Timorite, Ltd. (Eric White's company), the chess engine is
by Gyula Horváth, similar to the one in CXG Sphinx Legend.
Hardware notes (Systema Challenge fitted with Regency MCU):
- PCB label: LCD CHESS 938, JAN.1994, REV.1, EB-093801-01
- Hitachi H8/3256 MCU, 20MHz XTAL
- LCD with 5 7segs and custom segments
- piezo, 16 LEDs (optional), button sensors chessboard
A26 MCU was used in:
- Krypton Regency (with or without LEDs)
- Excalibur Legend III (suspected, Excalibur brand Regency)
- Systema Challenge (1996 version)
TODO:
- CXG Sphinx Legend may be on the same hardware? if so, move driver to cxg folder
- is Krypton a product brand, or a company alias for the Chinese factory behind it?
- 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
*******************************************************************************/
#include "emu.h"
#include "cpu/h8/h8325.h"
#include "machine/sensorboard.h"
#include "sound/dac.h"
#include "video/pwm.h"
#include "screen.h"
#include "speaker.h"
// internal artwork
#include "krypton_regency.lh"
namespace {
class regency_state : public driver_device
{
public:
regency_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_board(*this, "board"),
m_led_pwm(*this, "led_pwm"),
m_lcd_pwm(*this, "lcd_pwm"),
m_dac(*this, "dac"),
m_inputs(*this, "IN.%u", 0),
m_out_lcd(*this, "s%u.%u", 0U, 0U)
{ }
void regency(machine_config &config);
DECLARE_INPUT_CHANGED_MEMBER(in1_changed) { update_irq2(); }
protected:
virtual void machine_start() override;
private:
// devices/pointers
required_device<h83256_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;
required_device<dac_1bit_device> m_dac;
required_ioport_array<3> m_inputs;
output_finder<2, 24> m_out_lcd;
u16 m_inp_mux = 0;
u8 m_inp_mux2 = 0;
u32 m_lcd_segs = 0;
u8 m_lcd_com = 0;
// I/O handlers
void lcd_pwm_w(offs_t offset, u8 data);
void update_lcd();
template <int N> void lcd_segs_w(u8 data);
void standby(int state);
int update_irq2();
void p2_w(u8 data);
void p5_w(offs_t offset, u8 data, u8 mem_mask);
u8 p6_r();
void p6_w(offs_t offset, u8 data, u8 mem_mask);
u8 p7_r();
void p7_w(u8 data);
};
void regency_state::machine_start()
{
m_out_lcd.resolve();
// register for savestates
save_item(NAME(m_inp_mux));
save_item(NAME(m_inp_mux2));
save_item(NAME(m_lcd_segs));
save_item(NAME(m_lcd_com));
}
/*******************************************************************************
I/O
*******************************************************************************/
// power
void regency_state::standby(int state)
{
// clear display
if (state)
{
m_lcd_pwm->clear();
m_led_pwm->clear();
}
}
int regency_state::update_irq2()
{
// 2nd button row is tied to IRQ2 (used for on/off button)
int state = (m_inp_mux2 & m_inputs[1]->read()) ? ASSERT_LINE : CLEAR_LINE;
m_maincpu->set_input_line(INPUT_LINE_IRQ2, state);
return state;
}
// LCD
void regency_state::lcd_pwm_w(offs_t offset, u8 data)
{
m_out_lcd[offset & 0x3f][offset >> 6] = data;
}
void regency_state::update_lcd()
{
u32 lcd_segs = bitswap<24>(m_lcd_segs,1,0, 15,14,13,12,11,10,9,8, 16,17,23,22,21,20,19,18, 25,26,27,28,29,31);
for (int i = 0; i < 2; i++)
{
// LCD common is 0/1/Hi-Z
const u32 data = BIT(m_lcd_com, i + 2) ? (BIT(m_lcd_com, i) ? ~lcd_segs : lcd_segs) : 0;
m_lcd_pwm->write_row(i, data);
}
}
template <int N>
void regency_state::lcd_segs_w(u8 data)
{
// P1x, P3x, P4x, P6x: LCD segments
const u8 shift = 8 * N;
m_lcd_segs = (m_lcd_segs & ~(0xff << shift)) | (data << shift);
update_lcd();
}
// misc
void regency_state::p2_w(u8 data)
{
// P20-P27: input mux (chessboard), LED data
m_inp_mux = (m_inp_mux & 0x300) | (data ^ 0xff);
m_led_pwm->write_mx(~data);
}
void regency_state::p5_w(offs_t offset, u8 data, u8 mem_mask)
{
// P50: LCD common 2
m_lcd_com = (m_lcd_com & 5) | (data << 1 & 2) | (mem_mask << 3 & 8);
update_lcd();
// P51: speaker out
m_dac->write(BIT(~data, 1));
// P52: input mux part
m_inp_mux = (m_inp_mux & 0x2ff) | (BIT(~data, 2) << 8);
// P54,P55: LED select
m_led_pwm->write_my(~data >> 4 & 3);
}
u8 regency_state::p6_r()
{
// P65: battery status
u8 data = m_inputs[2]->read() << 5 & 0x20;
// P66: IRQ2 pin
if (!machine().side_effects_disabled() && update_irq2())
data |= 0x40;
return ~data;
}
void regency_state::p6_w(offs_t offset, u8 data, u8 mem_mask)
{
// P60,P61: LCD segs
lcd_segs_w<0>(data & 3);
// P62: LCD common 1
m_lcd_com = (m_lcd_com & 0xa) | (BIT(data, 2)) | (mem_mask & 4);
update_lcd();
// P66: input mux part
m_inp_mux = (m_inp_mux & 0x1ff) | (BIT(~data, 6) << 9);
}
u8 regency_state::p7_r()
{
// P70-P77: multiplexed inputs
u8 data = 0;
// read buttons
for (int i = 0; i < 2; i++)
if (BIT(m_inp_mux, i + 8))
data |= m_inputs[i]->read();
// read chessboard
for (int i = 0; i < 8; i++)
if (BIT(m_inp_mux, i))
data |= m_board->read_file(i ^ 7);
return ~data;
}
void regency_state::p7_w(u8 data)
{
// P70-P77: input mux (other way around)
m_inp_mux2 = ~data;
update_irq2();
}
/*******************************************************************************
Input Ports
*******************************************************************************/
#define PORT_CHANGED_IN1() \
PORT_CHANGED_MEMBER(DEVICE_SELF, regency_state, in1_changed, 0)
static INPUT_PORTS_START( regency )
PORT_START("IN.0")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("Knight / Lose")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("Queen")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_NAME("Set-Up / Features")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_L) PORT_NAME("Level")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F) PORT_NAME("Step Forward")
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_U) PORT_NAME("Multi-Move / Analysis")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("Rook / Win")
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("Pawn / Rating")
PORT_START("IN.1")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CHANGED_IN1() PORT_CODE(KEYCODE_F1) PORT_NAME("On / Off")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CHANGED_IN1() PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("King")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CHANGED_IN1() PORT_CODE(KEYCODE_M) PORT_NAME("Move / Swap Board")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CHANGED_IN1() PORT_CODE(KEYCODE_O) PORT_NAME("Sound / Style")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CHANGED_IN1() PORT_CODE(KEYCODE_T) PORT_NAME("Take Back")
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CHANGED_IN1() PORT_CODE(KEYCODE_H) PORT_NAME("Hint / Info")
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CHANGED_IN1() PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("Bishop / Draw")
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CHANGED_IN1() PORT_CODE(KEYCODE_N) PORT_NAME("New Game / Clear Board")
PORT_START("IN.2")
PORT_CONFNAME( 0x01, 0x01, "Battery Status" )
PORT_CONFSETTING( 0x00, "Low" )
PORT_CONFSETTING( 0x01, DEF_STR( Normal ) )
INPUT_PORTS_END
/*******************************************************************************
Machine Configs
*******************************************************************************/
void regency_state::regency(machine_config &config)
{
// basic machine hardware
H83256(config, m_maincpu, 20_MHz_XTAL);
m_maincpu->nvram_enable_backup(true);
m_maincpu->standby_cb().set(m_maincpu, FUNC(h83256_device::nvram_set_battery));
m_maincpu->standby_cb().append(FUNC(regency_state::standby));
m_maincpu->write_port1().set(FUNC(regency_state::lcd_segs_w<2>));
m_maincpu->read_port2().set_constant(0xef); // hardware config?
m_maincpu->write_port2().set(FUNC(regency_state::p2_w));
m_maincpu->write_port3().set(FUNC(regency_state::lcd_segs_w<1>));
m_maincpu->write_port4().set(FUNC(regency_state::lcd_segs_w<3>));
m_maincpu->read_port5().set_constant(0xff);
m_maincpu->write_port5().set(FUNC(regency_state::p5_w));
m_maincpu->read_port6().set(FUNC(regency_state::p6_r));
m_maincpu->write_port6().set(FUNC(regency_state::p6_w));
m_maincpu->read_port7().set(FUNC(regency_state::p7_r));
m_maincpu->write_port7().set(FUNC(regency_state::p7_w));
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));
//m_board->set_nvram_enable(true);
// video hardware
PWM_DISPLAY(config, m_lcd_pwm).set_size(2, 24);
m_lcd_pwm->output_x().set(FUNC(regency_state::lcd_pwm_w));
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG));
screen.set_refresh_hz(60);
screen.set_size(1920/5, 697/5);
screen.set_visarea_full();
PWM_DISPLAY(config, m_led_pwm).set_size(2, 8);
config.set_default_layout(layout_krypton_regency);
// sound hardware
SPEAKER(config, "speaker").front_center();
DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
}
/*******************************************************************************
ROM Definitions
*******************************************************************************/
ROM_START( regency )
ROM_REGION16_BE( 0xc000, "maincpu", 0 )
ROM_LOAD("1996_933_timorite_hd6433256a26p.ic1", 0x0000, 0xc000, CRC(72eb3f2b) SHA1(30e4166e351210475cf9709b0feb717d9d3ac747) )
ROM_REGION( 109652, "screen", 0 )
ROM_LOAD("regency.svg", 0, 109652, CRC(6840c49e) SHA1(a9c91143c5bea5ab41fe323e719da4a46ab9d631) )
ROM_END
} // anonymous namespace
/*******************************************************************************
Drivers
*******************************************************************************/
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
SYST( 1996, regency, 0, 0, regency, regency, regency_state, empty_init, "Krypton / Timorite", "Regency", MACHINE_SUPPORTS_SAVE )

View File

@ -181,8 +181,9 @@ u8 igor_state::read_inputs()
data |= m_board->read_file(i, true);
// P64-P66 are also IRQ pins (the ON button is IRQ0)
for (int i = 0; i < 3; i++)
m_maincpu->set_input_line(INPUT_LINE_IRQ0 + i, BIT(data, i + 4) ? ASSERT_LINE : CLEAR_LINE);
if (!machine().side_effects_disabled())
for (int i = 0; i < 3; i++)
m_maincpu->set_input_line(INPUT_LINE_IRQ0 + i, BIT(data, i + 4) ? ASSERT_LINE : CLEAR_LINE);
return ~data;
}

View File

@ -197,8 +197,9 @@ u8 ivant_state::read_inputs()
data |= m_board->read_file(i, true);
// P64-P66 are also IRQ pins (the ON button is IRQ0)
for (int i = 0; i < 3; i++)
m_maincpu->set_input_line(INPUT_LINE_IRQ0 + i, BIT(data, i + 4) ? ASSERT_LINE : CLEAR_LINE);
if (!machine().side_effects_disabled())
for (int i = 0; i < 3; i++)
m_maincpu->set_input_line(INPUT_LINE_IRQ0 + i, BIT(data, i + 4) ? ASSERT_LINE : CLEAR_LINE);
return ~data;
}
@ -335,7 +336,7 @@ ROM_START( ivant )
ROM_LOAD("1996_701e_excalibur_ivan_t.ic2", 0x000000, 0x100000, CRC(f7c386a1) SHA1(357ca0b0c0b1409d33876b6fa00c5ad74b2643fc) )
ROM_REGION( 109652, "screen", 0 )
ROM_LOAD("emirage.svg", 0, 109652, CRC(6840c49e) SHA1(a9c91143c5bea5ab41fe323e719da4a46ab9d631) )
ROM_LOAD("regency.svg", 0, 109652, CRC(6840c49e) SHA1(a9c91143c5bea5ab41fe323e719da4a46ab9d631) )
ROM_END
} // anonymous namespace

View File

@ -35,6 +35,7 @@ BTANB:
- Motors gradually drift, causing it to place/pick up pieces off-center. It
recalibrates itself once in a while but it's not enough. MAME's sensorboard
device can't deal with it, so there's a workaround (see realign_magnet_pos).
Ron Nelson blamed it on the hardware engineer, but it's a software fault.
*******************************************************************************/
@ -611,7 +612,7 @@ ROM_START( emirage )
ROM_LOAD("1996_7012_excalibur_hd6433256a33p.ic1", 0x0000, 0xc000, CRC(41eed8ea) SHA1(8b5370814d2bfc2d5fcb4ee86c30d676517bcd3a) )
ROM_REGION( 109652, "screen", 0 )
ROM_LOAD("emirage.svg", 0, 109652, CRC(6840c49e) SHA1(a9c91143c5bea5ab41fe323e719da4a46ab9d631) )
ROM_LOAD("regency.svg", 0, 109652, CRC(6840c49e) SHA1(a9c91143c5bea5ab41fe323e719da4a46ab9d631) )
ROM_END
} // anonymous namespace

View File

@ -366,10 +366,6 @@ authors:hap
]]></data></image>
</element>
<element name="hlb" defstate="0">
<rect state="1"><color red="0" green="0" blue="0" /></rect>
</element>
<element name="but" defstate="0">
<rect>
<bounds xc="0" yc="0" width="6.5" height="1.7" />
@ -379,6 +375,10 @@ authors:hap
<bounds xc="0" yc="0" width="6" height="1.2" />
<color red="0.1" green="0.5" blue="0.7" />
</rect>
<rect state="1">
<bounds xc="0" yc="0" width="6.5" height="1.7" />
<color red="0" green="0" blue="0" alpha="0.18" />
</rect>
</element>
<group name="buttons">
@ -413,41 +413,23 @@ authors:hap
<element ref="cwhite" blend="multiply"><bounds xc="14.75" y="2" width="19" height="47" /><orientation rotate="90" /></element>
<element ref="but"><bounds xc="10" y="5.0" width="6.5" height="1.7" /></element>
<element ref="but"><bounds xc="10" y="10.5" width="6.5" height="1.7" /></element>
<element ref="but"><bounds xc="10" y="16.0" width="6.5" height="1.7" /></element>
<element ref="but"><bounds xc="10" y="21.5" width="6.5" height="1.7" /></element>
<element ref="but"><bounds xc="10" y="27.0" width="6.5" height="1.7" /></element>
<element ref="but"><bounds xc="10" y="32.5" width="6.5" height="1.7" /></element>
<element ref="but"><bounds xc="10" y="38.0" width="6.5" height="1.7" /></element>
<element ref="but"><bounds xc="10" y="43.5" width="6.5" height="1.7" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x10"><bounds xc="10" y="5.0" width="6.5" height="1.7" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x08"><bounds xc="10" y="10.5" width="6.5" height="1.7" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x02"><bounds xc="10" y="16.0" width="6.5" height="1.7" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x04"><bounds xc="10" y="21.5" width="6.5" height="1.7" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x04"><bounds xc="10" y="27.0" width="6.5" height="1.7" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x80"><bounds xc="10" y="32.5" width="6.5" height="1.7" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x40"><bounds xc="10" y="38.0" width="6.5" height="1.7" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x20"><bounds xc="10" y="43.5" width="6.5" height="1.7" /></element>
<element ref="but"><bounds xc="19.5" y="5.0" width="6.5" height="1.7" /></element>
<element ref="but"><bounds xc="19.5" y="10.5" width="6.5" height="1.7" /></element>
<element ref="but"><bounds xc="19.5" y="16.0" width="6.5" height="1.7" /></element>
<element ref="but"><bounds xc="19.5" y="21.5" width="6.5" height="1.7" /></element>
<element ref="but"><bounds xc="19.5" y="27.0" width="6.5" height="1.7" /></element>
<element ref="but"><bounds xc="19.5" y="32.5" width="6.5" height="1.7" /></element>
<element ref="but"><bounds xc="19.5" y="38.0" width="6.5" height="1.7" /></element>
<element ref="but"><bounds xc="19.5" y="43.5" width="6.5" height="1.7" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x10"><bounds xc="10" y="5.0" width="6.5" height="1.7" /><color alpha="0.18" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x08"><bounds xc="10" y="10.5" width="6.5" height="1.7" /><color alpha="0.18" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x02"><bounds xc="10" y="16.0" width="6.5" height="1.7" /><color alpha="0.18" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x04"><bounds xc="10" y="21.5" width="6.5" height="1.7" /><color alpha="0.18" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x04"><bounds xc="10" y="27.0" width="6.5" height="1.7" /><color alpha="0.18" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x80"><bounds xc="10" y="32.5" width="6.5" height="1.7" /><color alpha="0.18" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x40"><bounds xc="10" y="38.0" width="6.5" height="1.7" /><color alpha="0.18" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x20"><bounds xc="10" y="43.5" width="6.5" height="1.7" /><color alpha="0.18" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x10"><bounds xc="19.5" y="5.0" width="6.5" height="1.7" /><color alpha="0.18" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x08"><bounds xc="19.5" y="10.5" width="6.5" height="1.7" /><color alpha="0.18" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x02"><bounds xc="19.5" y="16.0" width="6.5" height="1.7" /><color alpha="0.18" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x20"><bounds xc="19.5" y="21.5" width="6.5" height="1.7" /><color alpha="0.18" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x40"><bounds xc="19.5" y="27.0" width="6.5" height="1.7" /><color alpha="0.18" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x80"><bounds xc="19.5" y="32.5" width="6.5" height="1.7" /><color alpha="0.18" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x01"><bounds xc="19.5" y="38.0" width="6.5" height="1.7" /><color alpha="0.18" /></element>
<element ref="hlb" inputtag="IN.1" inputmask="0x01"><bounds xc="19.5" y="43.5" width="6.5" height="1.7" /><color alpha="0.18" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x10"><bounds xc="19.5" y="5.0" width="6.5" height="1.7" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x08"><bounds xc="19.5" y="10.5" width="6.5" height="1.7" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x02"><bounds xc="19.5" y="16.0" width="6.5" height="1.7" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x20"><bounds xc="19.5" y="21.5" width="6.5" height="1.7" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x40"><bounds xc="19.5" y="27.0" width="6.5" height="1.7" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x80"><bounds xc="19.5" y="32.5" width="6.5" height="1.7" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x01"><bounds xc="19.5" y="38.0" width="6.5" height="1.7" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x01"><bounds xc="19.5" y="43.5" width="6.5" height="1.7" /></element>
</group>

View File

@ -0,0 +1,485 @@
<?xml version="1.0"?>
<!--
license:CC0-1.0
authors:hap
-->
<mamelayout version="2">
<!-- define elements -->
<element name="whitew"><rect><color red="1" green="1" blue="1" /></rect></element>
<element name="cyan"><rect><color red="0.1" green="0.5" blue="0.7" /></rect></element>
<element name="lcdm"><rect><color red="0.7" green="0.71" blue="0.72" /></rect></element>
<element name="led" defstate="0">
<disk state="1"><color red="1.0" green="0.1" blue="0.15" /></disk>
<disk state="0"><color red="1.0" green="0.1" blue="0.15" alpha="0.17" /></disk>
</element>
<element name="text_cl00"><text string="A" align="2"><color red="0.41" green="0.4" blue="0.39" /></text></element>
<element name="text_cl01"><text string="B" align="2"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_cl02"><text string="C" align="2"><color red="0.41" green="0.4" blue="0.39" /></text></element>
<element name="text_cl03"><text string="D" align="2"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_cl04"><text string="E" align="2"><color red="0.41" green="0.4" blue="0.39" /></text></element>
<element name="text_cl05"><text string="F" align="2"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_cl06"><text string="G" align="2"><color red="0.41" green="0.4" blue="0.39" /></text></element>
<element name="text_cl07"><text string="H" align="2"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_cl10"><text string="A" align="2"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_cl11"><text string="B" align="2"><color red="0.41" green="0.4" blue="0.39" /></text></element>
<element name="text_cl12"><text string="C" align="2"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_cl13"><text string="D" align="2"><color red="0.41" green="0.4" blue="0.39" /></text></element>
<element name="text_cl14"><text string="E" align="2"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_cl15"><text string="F" align="2"><color red="0.41" green="0.4" blue="0.39" /></text></element>
<element name="text_cl16"><text string="G" align="2"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_cl17"><text string="H" align="2"><color red="0.41" green="0.4" blue="0.39" /></text></element>
<element name="text_cn00"><text string="8" align="1"><color red="0.41" green="0.4" blue="0.39" /></text></element>
<element name="text_cn01"><text string="7" align="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_cn02"><text string="6" align="1"><color red="0.41" green="0.4" blue="0.39" /></text></element>
<element name="text_cn03"><text string="5" align="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_cn04"><text string="4" align="1"><color red="0.41" green="0.4" blue="0.39" /></text></element>
<element name="text_cn05"><text string="3" align="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_cn06"><text string="2" align="1"><color red="0.41" green="0.4" blue="0.39" /></text></element>
<element name="text_cn07"><text string="1" align="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_cn10"><text string="8" align="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_cn11"><text string="7" align="1"><color red="0.41" green="0.4" blue="0.39" /></text></element>
<element name="text_cn12"><text string="6" align="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_cn13"><text string="5" align="1"><color red="0.41" green="0.4" blue="0.39" /></text></element>
<element name="text_cn14"><text string="4" align="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_cn15"><text string="3" align="1"><color red="0.41" green="0.4" blue="0.39" /></text></element>
<element name="text_cn16"><text string="2" align="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_cn17"><text string="1" align="1"><color red="0.41" green="0.4" blue="0.39" /></text></element>
<!-- sb board -->
<element name="cblack"><rect><color red="0.41" green="0.4" blue="0.39" /></rect></element>
<element name="cwhite"><rect><color red="0.81" green="0.8" blue="0.79" /></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.25" y="-0.25" width="80.5" height="80.5" />
<element ref="cyan"><bounds x="-0.25" y="-0.25" width="80.5" height="80.5" /></element>
<!-- 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>
<!-- coords -->
<repeat count="4">
<param name="y1" start="8.3" increment="20" />
<param name="y2" start="18.3" increment="20" />
<repeat count="8">
<param name="i" start="0" increment="1" />
<param name="x" start="8" increment="10" />
<element ref="text_cl0~i~"><bounds x="~x~" y="~y1~" width="1" height="1.7" /></element>
<element ref="text_cl1~i~"><bounds x="~x~" y="~y2~" width="1" height="1.7" /></element>
</repeat>
</repeat>
<repeat count="4">
<param name="x1" start="9" increment="20" />
<param name="x2" start="19" increment="20" />
<repeat count="8">
<param name="i" start="0" increment="1" />
<param name="y" start="8.3" increment="10" />
<element ref="text_cn0~i~"><bounds x="~x1~" y="~y~" width="1" height="1.7" /></element>
<element ref="text_cn1~i~"><bounds x="~x2~" y="~y~" width="1" height="1.7" /></element>
</repeat>
</repeat>
<!-- 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>
<!-- buttons -->
<element name="text_a1"><text string="WIN"></text></element>
<element name="text_a2"><text string="DRAW"></text></element>
<element name="text_a3"><text string="LOSE"></text></element>
<element name="text_a4"><text string="RATING"></text></element>
<element name="text_b1a"><text string="NEW GAME"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_b2a"><text string="SET-UP"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_b3a"><text string="MULTI-MOVE"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_b4a"><text string="HINT"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_b5"><text string="STEP FORWARD&#x25ba;" align="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_b6"><text string="&#x25c4;TAKE BACK" align="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_b7a"><text string="MOVE"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_b8a"><text string="SOUND"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_b9"><text string="LEVEL"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_b10"><text string="ON/OFF"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_b1b"><text string="CLEAR BOARD"><color red="0.86" green="0.8" blue="0.1" /></text></element>
<element name="text_b2b"><text string="FEATURES"><color red="0.86" green="0.8" blue="0.1" /></text></element>
<element name="text_b3b"><text string="ANALYSIS"><color red="0.86" green="0.8" blue="0.1" /></text></element>
<element name="text_b4b"><text string="INFO"><color red="0.86" green="0.8" blue="0.1" /></text></element>
<element name="text_b7b"><text string="SWAP BOARD"><color red="0.86" green="0.8" blue="0.1" /></text></element>
<element name="text_b8b"><text string="STYLE"><color red="0.86" green="0.8" blue="0.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="but" defstate="0">
<rect>
<bounds xc="0" yc="0" width="8.5" height="1.5" />
<color red="0.81" green="0.8" blue="0.79" />
</rect>
<rect>
<bounds xc="0" yc="0" width="8.0" height="1.0" />
<color red="0.1" green="0.5" blue="0.7" />
</rect>
<rect state="1">
<bounds xc="0" yc="0" width="8.5" height="1.5" />
<color red="0" green="0" blue="0" alpha="0.18" />
</rect>
</element>
<element name="butd" defstate="0">
<disk>
<bounds x="0" y="0" width="1" height="1" />
<color red="0.81" green="0.8" blue="0.79" />
</disk>
<rect state="1">
<bounds x="0" y="0" width="1" height="1" />
<color red="0" green="0" blue="0" alpha="0.18" />
</rect>
</element>
<group name="buttons">
<bounds x="0" y="0" width="40" height="80" />
<element ref="text_p1"><bounds xc="7.5" y="11.75" width="3.5" height="3.5" /></element>
<element ref="text_p2"><bounds xc="13.75" y="11.75" width="3.5" height="3.5" /></element>
<element ref="text_p3"><bounds xc="20.0" y="11.75" width="3.5" height="3.5" /></element>
<element ref="text_p4"><bounds xc="7.5" y="20.5" width="3.5" height="3.5" /></element>
<element ref="text_p5"><bounds xc="13.75" y="20.5" width="3.5" height="3.5" /></element>
<element ref="text_p6"><bounds xc="20.0" y="20.5" width="3.5" height="3.5" /></element>
<element ref="whitew"><bounds xc="20.0" y="15.0" width="3" height="0.2" /></element>
<element ref="whitew"><bounds xc="7.5" y="23.75" width="3" height="0.2" /></element>
<element ref="whitew"><bounds xc="13.75" y="23.75" width="3" height="0.2" /></element>
<element ref="whitew"><bounds xc="20.0" y="23.75" width="3" height="0.2" /></element>
<element ref="text_a1"><bounds xc="20.0" y="15.25" width="6" height="1.1" /></element>
<element ref="text_a2"><bounds xc="7.5" y="24.0" width="6" height="1.1" /></element>
<element ref="text_a3"><bounds xc="13.75" y="24.0" width="6" height="1.1" /></element>
<element ref="text_a4"><bounds xc="20.0" y="24.0" width="6" height="1.1" /></element>
<element ref="cwhite" blend="multiply"><bounds x="5" y="10" width="20" height="20" /></element>
<element ref="butd" inputtag="IN.1" inputmask="0x02"><bounds xc="7.5" y="16.5" width="3" height="3" /></element>
<element ref="butd" inputtag="IN.0" inputmask="0x02"><bounds xc="13.75" y="16.5" width="3" height="3" /></element>
<element ref="butd" inputtag="IN.0" inputmask="0x40"><bounds xc="20.0" y="16.5" width="3" height="3" /></element>
<element ref="butd" inputtag="IN.1" inputmask="0x40"><bounds xc="7.5" y="25.25" width="3" height="3" /></element>
<element ref="butd" inputtag="IN.0" inputmask="0x01"><bounds xc="13.75" y="25.25" width="3" height="3" /></element>
<element ref="butd" inputtag="IN.0" inputmask="0x80"><bounds xc="20.0" y="25.25" width="3" height="3" /></element>
<element ref="text_b1a"><bounds x="12.8" y="30.7" width="12" height="1.35" /></element>
<element ref="text_b1b"><bounds x="12.8" y="32.45" width="12" height="1.35" /></element>
<element ref="text_b2a"><bounds x="12.8" y="35.2" width="12" height="1.35" /></element>
<element ref="text_b2b"><bounds x="12.8" y="36.95" width="12" height="1.35" /></element>
<element ref="text_b3a"><bounds x="12.8" y="39.7" width="12" height="1.35" /></element>
<element ref="text_b3b"><bounds x="12.8" y="41.45" width="12" height="1.35" /></element>
<element ref="text_b4a"><bounds x="12.8" y="44.2" width="12" height="1.35" /></element>
<element ref="text_b4b"><bounds x="12.8" y="45.95" width="12" height="1.35" /></element>
<element ref="text_b7a"><bounds x="12.8" y="57.7" width="12" height="1.35" /></element>
<element ref="text_b7b"><bounds x="12.8" y="59.45" width="12" height="1.35" /></element>
<element ref="text_b8a"><bounds x="12.8" y="62.2" width="12" height="1.35" /></element>
<element ref="text_b8b"><bounds x="12.8" y="63.95" width="12" height="1.35" /></element>
<element ref="text_b5"><bounds x="15.1" y="49.575" width="12" height="1.35" /></element>
<element ref="text_b6"><bounds x="15.1" y="54.075" width="12" height="1.35" /></element>
<element ref="text_b9"><bounds x="12.8" y="67.575" width="12" height="1.35" /></element>
<element ref="text_b10"><bounds x="12.8" y="72.075" width="12" height="1.35" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x80"><bounds x="6" y="31.5" width="8.5" height="1.5" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x04"><bounds x="6" y="36.0" width="8.5" height="1.5" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x20"><bounds x="6" y="40.5" width="8.5" height="1.5" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x20"><bounds x="6" y="45.0" width="8.5" height="1.5" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x10"><bounds x="6" y="49.5" width="8.5" height="1.5" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x10"><bounds x="6" y="54.0" width="8.5" height="1.5" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x04"><bounds x="6" y="58.5" width="8.5" height="1.5" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x08"><bounds x="6" y="63.0" width="8.5" height="1.5" /></element>
<element ref="but" inputtag="IN.0" inputmask="0x08"><bounds x="6" y="67.5" width="8.5" height="1.5" /></element>
<element ref="but" inputtag="IN.1" inputmask="0x01"><bounds x="6" y="72.0" width="8.5" height="1.5" /></element>
</group>
<!-- build screen -->
<view name="Internal Layout">
<bounds left="-15.5" right="102.5" top="-2.5" bottom="83" />
<group ref="sb_board"><bounds x="0" y="0" width="80.5" height="80.5" /></group>
<group ref="sb_ui"><bounds x="-14" y="0.25" width="10" height="80" /></group>
<group ref="buttons"><bounds x="77" y="5.0" width="40" height="80" /></group>
<screen index="0"><bounds x="83" y="4.623" width="15.5" height="5.627" /></screen>
<element ref="lcdm" blend="multiply"><bounds x="82" y="3" width="20" height="10" /></element>
<!-- chessboard leds -->
<repeat count="8">
<param name="y" start="5.25" increment="10" />
<param name="i" start="7" increment="-1" />
<element name="0.~i~" ref="led"><bounds x="-2" yc="~y~" width="1.5" height="1.5" /></element>
</repeat>
<repeat count="8">
<param name="x" start="5.25" increment="10" />
<param name="i" start="7" increment="-1" />
<element name="1.~i~" ref="led"><bounds xc="~x~" y="81" width="1.5" height="1.5" /></element>
</repeat>
</view>
</mamelayout>

View File

@ -16146,6 +16146,9 @@ cncchess2
@source:chess/conic_cchess3.cpp
cncchess3
@source:chess/krypton_regency.cpp
regency
@source:chess/regence.cpp
regence