mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +03:00
Revert "Revert preliminary sensorboard emulation to give it more time to stabilise before appearing in a release. (nw)"
This reverts commit edb62679cd
.
Reverting the revert to avoid a mess when merging to master.
This commit is contained in:
parent
1b969a8acb
commit
90508cc3ed
@ -60,6 +60,8 @@ files {
|
||||
MAME_DIR .. "src/devices/imagedev/snapquik.cpp",
|
||||
MAME_DIR .. "src/devices/imagedev/snapquik.h",
|
||||
}
|
||||
|
||||
|
||||
---------------------------------------------------
|
||||
--
|
||||
--@src/devices/machine/akiko.h,MACHINES["AKIKO"] = true
|
||||
@ -2661,18 +2663,6 @@ if (MACHINES["DUSCC"]~=null) then
|
||||
}
|
||||
end
|
||||
|
||||
---------------------------------------------------
|
||||
--
|
||||
--@src/devices/machine/serflash.h,MACHINES["SERFLASH"] = true
|
||||
---------------------------------------------------
|
||||
|
||||
if (MACHINES["SERFLASH"]~=null) then
|
||||
files {
|
||||
MAME_DIR .. "src/devices/machine/serflash.cpp",
|
||||
MAME_DIR .. "src/devices/machine/serflash.h",
|
||||
}
|
||||
end
|
||||
|
||||
---------------------------------------------------
|
||||
--
|
||||
--@src/devices/machine/sda2006.h,MACHINES["SDA2006"] = true
|
||||
@ -2685,6 +2675,30 @@ if (MACHINES["SDA2006"]~=null) then
|
||||
}
|
||||
end
|
||||
|
||||
---------------------------------------------------
|
||||
--
|
||||
--@src/devices/machine/sensorboard.h,MACHINES["SENSORBOARD"] = true
|
||||
---------------------------------------------------
|
||||
|
||||
if (MACHINES["SENSORBOARD"]~=null) then
|
||||
files {
|
||||
MAME_DIR .. "src/devices/machine/sensorboard.cpp",
|
||||
MAME_DIR .. "src/devices/machine/sensorboard.h",
|
||||
}
|
||||
end
|
||||
|
||||
---------------------------------------------------
|
||||
--
|
||||
--@src/devices/machine/serflash.h,MACHINES["SERFLASH"] = true
|
||||
---------------------------------------------------
|
||||
|
||||
if (MACHINES["SERFLASH"]~=null) then
|
||||
files {
|
||||
MAME_DIR .. "src/devices/machine/serflash.cpp",
|
||||
MAME_DIR .. "src/devices/machine/serflash.h",
|
||||
}
|
||||
end
|
||||
|
||||
---------------------------------------------------
|
||||
--
|
||||
--@src/devices/machine/smc91c9x.h,MACHINES["SMC91C9X"] = true
|
||||
|
@ -588,8 +588,9 @@ MACHINES["SATURN"] = true
|
||||
MACHINES["SCC68070"] = true
|
||||
MACHINES["SCSI"] = true
|
||||
MACHINES["SCUDSP"] = true
|
||||
--MACHINES["SECFLASH"] = true
|
||||
MACHINES["SDA2006"] = true
|
||||
--MACHINES["SECFLASH"] = true
|
||||
--MACHINES["SENSORBOARD"] = true
|
||||
MACHINES["SERFLASH"] = true
|
||||
MACHINES["SMC91C9X"] = true
|
||||
MACHINES["SEGA_SCU"] = true
|
||||
|
@ -599,6 +599,7 @@ MACHINES["SCC2698B"] = true
|
||||
MACHINES["SCUDSP"] = true
|
||||
MACHINES["SECFLASH"] = true
|
||||
MACHINES["SEIBU_COP"] = true
|
||||
MACHINES["SENSORBOARD"] = true
|
||||
--MACHINES["SERFLASH"] = true
|
||||
MACHINES["SMC91C9X"] = true
|
||||
MACHINES["SMIOC"] = true
|
||||
@ -1051,6 +1052,7 @@ function linkProjects_mame_mess(_target, _subtarget)
|
||||
"at",
|
||||
"atari",
|
||||
"att",
|
||||
"ave",
|
||||
"bally",
|
||||
"bandai",
|
||||
"banctec",
|
||||
@ -1713,6 +1715,11 @@ files {
|
||||
MAME_DIR .. "src/mame/drivers/unixpc.cpp",
|
||||
}
|
||||
|
||||
createMESSProjects(_target, _subtarget, "ave")
|
||||
files {
|
||||
MAME_DIR .. "src/mame/drivers/ave_arb.cpp",
|
||||
}
|
||||
|
||||
createMESSProjects(_target, _subtarget, "bally")
|
||||
files {
|
||||
MAME_DIR .. "src/mame/drivers/astrohome.cpp",
|
||||
@ -1885,7 +1892,6 @@ createMESSProjects(_target, _subtarget, "chess")
|
||||
files {
|
||||
MAME_DIR .. "src/mame/machine/chessbase.cpp",
|
||||
MAME_DIR .. "src/mame/includes/chessbase.h",
|
||||
MAME_DIR .. "src/mame/drivers/ave_arb.cpp",
|
||||
|
||||
MAME_DIR .. "src/mame/machine/fidelbase.cpp",
|
||||
MAME_DIR .. "src/mame/includes/fidelbase.h",
|
||||
|
701
src/devices/machine/sensorboard.cpp
Normal file
701
src/devices/machine/sensorboard.cpp
Normal file
@ -0,0 +1,701 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:hap
|
||||
/*
|
||||
|
||||
Generic sensorboard device, meant for tracking pieces, primarily made for
|
||||
electronic chessboards. It supports buttons, magnets, and inductive sensors
|
||||
(latter is not emulated in any driver yet but the device is ready for it).
|
||||
|
||||
Concept/idea by Ralph Schaefer, but his code got removed from MAME when he
|
||||
couldn't be reached for source relicensing. This device is made from scratch.
|
||||
It uses similar I/O methods as before: MAME keeps track of sensor clicks and
|
||||
whereabouts of board pieces, and the GUI is in a layout file. This means it
|
||||
can be made to look completely different with external artwork.
|
||||
|
||||
This device 'steals' the Shift and Ctrl keys, so don't use them in the driver.
|
||||
But if you must, these inputs can be disabled with set_mod_enable(false).
|
||||
In here, they're used for forcing sensor/piece inputs (a normal click activates
|
||||
both at the same time).
|
||||
|
||||
If you use this device in a slot, or add multiple of them, make sure to override
|
||||
the outputs with custom_output() to avoid collisions.
|
||||
|
||||
|
||||
TODO:
|
||||
- dynamically generate input defs instead of all those PORT_CONDITION, input ports
|
||||
need to be in the class first instead of static
|
||||
- increase board size when needed, theoretical maximum is 16*16, and even larger
|
||||
if input ports are modernized in MAME core
|
||||
|
||||
*/
|
||||
|
||||
#include "emu.h"
|
||||
#include "machine/sensorboard.h"
|
||||
|
||||
|
||||
DEFINE_DEVICE_TYPE(SENSORBOARD, sensorboard_device, "sensorboard", "Sensorboard")
|
||||
|
||||
//-------------------------------------------------
|
||||
// constructor
|
||||
//-------------------------------------------------
|
||||
|
||||
sensorboard_device::sensorboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
device_t(mconfig, SENSORBOARD, tag, owner, clock),
|
||||
m_out_piece(*this, "piece_%c%u", 0U + 'a', 1U),
|
||||
m_out_pui(*this, "piece_ui%u", 0U),
|
||||
m_out_count(*this, "count_ui%u", 0U),
|
||||
m_inp_rank(*this, "RANK.%u", 1),
|
||||
m_inp_ui(*this, "UI"),
|
||||
m_custom_init_cb(*this),
|
||||
m_custom_sensor_cb(*this),
|
||||
m_custom_spawn_cb(*this),
|
||||
m_custom_output_cb(*this)
|
||||
{
|
||||
m_sensordelay = attotime::from_msec(75);
|
||||
m_magnets = false;
|
||||
m_inductive = false;
|
||||
m_ui_enabled = 3;
|
||||
memset(m_inistate, 0, ARRAY_LENGTH(m_inistate));
|
||||
memset(m_spawnstate, 0, ARRAY_LENGTH(m_spawnstate));
|
||||
}
|
||||
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start / reset
|
||||
//-------------------------------------------------
|
||||
|
||||
void sensorboard_device::device_start()
|
||||
{
|
||||
// resolve handlers
|
||||
m_custom_init_cb.resolve_safe(0);
|
||||
m_custom_sensor_cb.resolve_safe(0);
|
||||
m_custom_spawn_cb.resolve();
|
||||
m_custom_output_cb.resolve();
|
||||
|
||||
if (m_custom_output_cb.isnull())
|
||||
{
|
||||
m_out_piece.resolve();
|
||||
m_out_pui.resolve();
|
||||
m_out_count.resolve();
|
||||
}
|
||||
|
||||
for (int i = 0; i < m_maxspawn; i++)
|
||||
m_spawnstate[i] = i + 1;
|
||||
|
||||
// custom init (meant for setting m_inistate)
|
||||
m_custom_init_cb();
|
||||
memcpy(m_curstate, m_inistate, m_height * m_width);
|
||||
memcpy(m_history[0], m_curstate, m_height * m_width);
|
||||
|
||||
// output spawn icons (done only once)
|
||||
for (int i = 0; i < m_maxspawn; i++)
|
||||
{
|
||||
if (m_custom_output_cb.isnull())
|
||||
m_out_pui[i + 1] = m_spawnstate[i];
|
||||
else
|
||||
m_custom_output_cb(i + 0x101, m_spawnstate[i]);
|
||||
}
|
||||
|
||||
m_undotimer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(sensorboard_device::undo_tick),this));
|
||||
m_sensortimer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(sensorboard_device::sensor_off),this));
|
||||
cancel_sensor();
|
||||
|
||||
u16 wmask = ~((1 << m_width) - 1);
|
||||
u16 hmask = ~((1 << m_height) - 1);
|
||||
m_bs_mask = hmask << 16 | wmask;
|
||||
m_ss_mask = ~((1 << m_maxspawn) - 1);
|
||||
|
||||
m_uselect = 0;
|
||||
m_upointer = 0;
|
||||
m_ufirst = 0;
|
||||
m_ulast = 0;
|
||||
m_usize = ARRAY_LENGTH(m_history);
|
||||
|
||||
// register for savestates
|
||||
save_item(NAME(m_history));
|
||||
save_item(NAME(m_curstate));
|
||||
save_item(NAME(m_inistate));
|
||||
save_item(NAME(m_spawnstate));
|
||||
|
||||
save_item(NAME(m_magnets));
|
||||
save_item(NAME(m_inductive));
|
||||
save_item(NAME(m_width));
|
||||
save_item(NAME(m_height));
|
||||
save_item(NAME(m_bs_mask));
|
||||
save_item(NAME(m_ss_mask));
|
||||
save_item(NAME(m_maxspawn));
|
||||
save_item(NAME(m_maxid));
|
||||
save_item(NAME(m_hand));
|
||||
save_item(NAME(m_handpos));
|
||||
save_item(NAME(m_droppos));
|
||||
save_item(NAME(m_sensorpos));
|
||||
save_item(NAME(m_ui_enabled));
|
||||
save_item(NAME(m_uselect));
|
||||
save_item(NAME(m_upointer));
|
||||
save_item(NAME(m_ufirst));
|
||||
save_item(NAME(m_ulast));
|
||||
save_item(NAME(m_usize));
|
||||
save_item(NAME(m_sensordelay));
|
||||
}
|
||||
|
||||
void sensorboard_device::init_preset(u8 preset)
|
||||
{
|
||||
// called at driver machine config
|
||||
m_magnets = (preset != CHESS_BUTTONS);
|
||||
m_inductive = (preset == CHESS_INDUCTIVE);
|
||||
set_size(8, 8);
|
||||
set_spawnpoints(12);
|
||||
|
||||
// 1 = white pawn 7 = black pawn
|
||||
// 2 = white knight 8 = black knight
|
||||
// 3 = white bishop 9 = black bishop
|
||||
// 4 = white rook 10 = black rook
|
||||
// 5 = white queen 11 = black queen
|
||||
// 6 = white king 12 = black king
|
||||
|
||||
// initial board state
|
||||
write_init(0, 0, 4);
|
||||
write_init(7, 0, 4);
|
||||
write_init(1, 0, 2);
|
||||
write_init(6, 0, 2);
|
||||
write_init(2, 0, 3);
|
||||
write_init(5, 0, 3);
|
||||
write_init(3, 0, 5);
|
||||
write_init(4, 0, 6);
|
||||
|
||||
for (int x = 0; x < 8; x++)
|
||||
{
|
||||
write_init(x, 1, 1);
|
||||
write_init(x, 6, 7);
|
||||
write_init(x, 7, read_init(x, 0) + 6);
|
||||
}
|
||||
|
||||
if (m_inductive)
|
||||
{
|
||||
set_sensordelay(attotime::never);
|
||||
set_max_id(0xff);
|
||||
}
|
||||
|
||||
// note that for inductive boards, 2 additional callbacks are needed:
|
||||
// custom_init() for reassigning the piece ids for initial board state
|
||||
// custom_spawn() for checking if a piece is available and reassigning the piece id
|
||||
}
|
||||
|
||||
void sensorboard_device::device_reset()
|
||||
{
|
||||
cancel_sensor();
|
||||
cancel_hand();
|
||||
refresh();
|
||||
}
|
||||
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// public handlers
|
||||
//-------------------------------------------------
|
||||
|
||||
u8 sensorboard_device::read_sensor(u8 x, u8 y)
|
||||
{
|
||||
if (x >= m_width || y >= m_height)
|
||||
return 0;
|
||||
|
||||
u8 live_state = BIT(m_inp_rank[y]->read(), x);
|
||||
int pos = (y << 4 & 0xf0) | (x & 0x0f);
|
||||
|
||||
if (m_magnets || m_inductive)
|
||||
{
|
||||
u8 piece = read_piece(x, y);
|
||||
u8 state = (piece != 0 && pos != m_handpos && pos != m_droppos) ? 1 : 0;
|
||||
|
||||
// piece recognition: return piece id
|
||||
if (m_inductive)
|
||||
return (state) ? piece : 0;
|
||||
|
||||
// invert state if sensor is forced
|
||||
else
|
||||
return state ^ (m_inp_ui->read() & live_state);
|
||||
}
|
||||
else
|
||||
{
|
||||
// buttons are blocked
|
||||
if (m_inp_ui->read() & 2)
|
||||
return 0;
|
||||
|
||||
// buttons are forced
|
||||
if (m_sensordelay == attotime::never || m_inp_ui->read() & 1)
|
||||
return live_state;
|
||||
|
||||
return (pos == m_sensorpos) ? 1 : 0;
|
||||
}
|
||||
}
|
||||
|
||||
u16 sensorboard_device::read_file(u8 x, bool reverse)
|
||||
{
|
||||
if (m_inductive || x >= m_width)
|
||||
return 0;
|
||||
|
||||
// read whole file(column) at once
|
||||
u16 data = 0;
|
||||
for (int y = 0; y < m_height; y++)
|
||||
data = data << 1 | read_sensor(x, (reverse) ? y : (m_height - 1 - y));
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
u16 sensorboard_device::read_rank(u8 y, bool reverse)
|
||||
{
|
||||
if (m_inductive || y >= m_height)
|
||||
return 0;
|
||||
|
||||
// read whole rank(row) at once
|
||||
u16 data = 0;
|
||||
for (int x = 0; x < m_width; x++)
|
||||
data = data << 1 | read_sensor((reverse) ? x : (m_width - 1 - x), y);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
void sensorboard_device::refresh()
|
||||
{
|
||||
bool custom_out = !m_custom_output_cb.isnull();
|
||||
|
||||
// output hand piece
|
||||
if (custom_out)
|
||||
m_custom_output_cb(0x100, m_hand);
|
||||
else
|
||||
m_out_pui[0] = m_hand;
|
||||
|
||||
// output board state
|
||||
for (int x = 0; x < m_width; x++)
|
||||
for (int y = 0; y < m_height; y++)
|
||||
{
|
||||
u8 piece = read_piece(x, y);
|
||||
int pos = (y << 4 & 0xf0) | (x & 0x0f);
|
||||
|
||||
// selected piece: m_maxid + piece id
|
||||
if (piece != 0 && pos == m_handpos)
|
||||
piece += m_maxid;
|
||||
|
||||
if (custom_out)
|
||||
m_custom_output_cb(pos, piece);
|
||||
else
|
||||
m_out_piece[x][y] = piece;
|
||||
}
|
||||
|
||||
// set new move on board state change
|
||||
if (memcmp(m_curstate, m_history[m_upointer], m_width * m_height))
|
||||
{
|
||||
m_upointer = (m_upointer + 1) % m_usize;
|
||||
m_ulast = m_upointer;
|
||||
memcpy(m_history[m_upointer], m_curstate, m_height * m_width);
|
||||
|
||||
// overflow
|
||||
if (m_ufirst == m_ulast)
|
||||
m_ufirst = (m_ufirst + 1) % m_usize;
|
||||
}
|
||||
|
||||
// output undo counter
|
||||
u32 last = m_ulast;
|
||||
u32 p = m_upointer;
|
||||
|
||||
if (last < m_ufirst)
|
||||
last += m_usize;
|
||||
if (p < m_ufirst)
|
||||
p += m_usize;
|
||||
|
||||
u32 c0 = p - m_ufirst;
|
||||
u32 c1 = last - m_ufirst;
|
||||
|
||||
if (custom_out)
|
||||
{
|
||||
m_custom_output_cb(0x200, c0);
|
||||
m_custom_output_cb(0x201, c1);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_out_count[0] = c0;
|
||||
m_out_count[1] = c1;
|
||||
}
|
||||
}
|
||||
|
||||
void sensorboard_device::cancel_hand()
|
||||
{
|
||||
// remove piece from hand (but don't remove it from the board)
|
||||
m_hand = 0;
|
||||
m_handpos = -1;
|
||||
}
|
||||
|
||||
void sensorboard_device::remove_hand()
|
||||
{
|
||||
// remove piece from hand, and if original place was board, remove it from there
|
||||
m_hand = 0;
|
||||
if (m_handpos != -1)
|
||||
{
|
||||
write_piece(m_handpos & 0xf, m_handpos >> 4 & 0xf, 0);
|
||||
m_handpos = -1;
|
||||
}
|
||||
}
|
||||
|
||||
bool sensorboard_device::drop_piece(u8 x, u8 y)
|
||||
{
|
||||
// drop piece from hand onto the board
|
||||
u8 piece = m_hand;
|
||||
if (piece != 0)
|
||||
{
|
||||
remove_hand();
|
||||
write_piece(x, y, piece);
|
||||
|
||||
// magnet boards: delay when capturing a piece
|
||||
if (m_sensordelay != attotime::never)
|
||||
m_droppos = (y << 4 & 0xf0) | (x & 0x0f);
|
||||
}
|
||||
|
||||
return piece != 0;
|
||||
}
|
||||
|
||||
bool sensorboard_device::pickup_piece(u8 x, u8 y)
|
||||
{
|
||||
// pick up piece from board, place in hand
|
||||
u8 piece = read_piece(x, y);
|
||||
if (piece != 0)
|
||||
{
|
||||
m_hand = piece;
|
||||
m_handpos = (y << 4 & 0xf0) | (x & 0x0f);
|
||||
}
|
||||
|
||||
return piece != 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// input handlers (internal use)
|
||||
//-------------------------------------------------
|
||||
|
||||
void sensorboard_device::cancel_sensor()
|
||||
{
|
||||
m_sensortimer->adjust(attotime::never);
|
||||
m_sensorpos = m_droppos = -1;
|
||||
}
|
||||
|
||||
INPUT_CHANGED_MEMBER(sensorboard_device::sensor)
|
||||
{
|
||||
if (!newval)
|
||||
return;
|
||||
|
||||
if (m_sensorpos != -1 || m_inp_ui->read() & 1)
|
||||
return;
|
||||
|
||||
u8 pos = (u8)(uintptr_t)param;
|
||||
u8 x = pos & 0xf;
|
||||
u8 y = pos >> 4 & 0xf;
|
||||
if (x >= m_width || y >= m_height)
|
||||
return;
|
||||
|
||||
// click delay
|
||||
if (m_sensordelay != attotime::never && (m_magnets || m_inductive || ~m_inp_ui->read() & 2))
|
||||
{
|
||||
m_sensorpos = pos;
|
||||
m_sensortimer->adjust(m_sensordelay);
|
||||
}
|
||||
|
||||
// optional custom handling:
|
||||
// return d0 = block drop piece
|
||||
// return d1 = block pick up piece
|
||||
u8 custom = m_custom_sensor_cb(pos);
|
||||
|
||||
// drop piece
|
||||
if (m_hand != 0)
|
||||
{
|
||||
if (~custom & 1)
|
||||
drop_piece(x, y);
|
||||
}
|
||||
|
||||
// pick up piece
|
||||
else if (~custom & 2)
|
||||
pickup_piece(x, y);
|
||||
|
||||
refresh();
|
||||
}
|
||||
|
||||
INPUT_CHANGED_MEMBER(sensorboard_device::ui_spawn)
|
||||
{
|
||||
if (!newval)
|
||||
return;
|
||||
|
||||
u8 pos = (u8)(uintptr_t)param;
|
||||
if (pos >= m_maxspawn)
|
||||
return;
|
||||
|
||||
cancel_sensor();
|
||||
m_hand = pos;
|
||||
m_handpos = -1;
|
||||
|
||||
// optional callback to change piece id
|
||||
if (!m_custom_spawn_cb.isnull())
|
||||
m_hand = m_custom_spawn_cb(pos);
|
||||
|
||||
refresh();
|
||||
}
|
||||
|
||||
INPUT_CHANGED_MEMBER(sensorboard_device::ui_hand)
|
||||
{
|
||||
if (!newval)
|
||||
return;
|
||||
|
||||
cancel_sensor();
|
||||
remove_hand();
|
||||
refresh();
|
||||
}
|
||||
|
||||
TIMER_CALLBACK_MEMBER(sensorboard_device::undo_tick)
|
||||
{
|
||||
if (m_ufirst == m_ulast)
|
||||
return;
|
||||
|
||||
u32 last = m_ulast;
|
||||
u32 p = m_upointer;
|
||||
|
||||
if (last < m_ufirst)
|
||||
last += m_usize;
|
||||
if (p < m_ufirst)
|
||||
p += m_usize;
|
||||
|
||||
switch (param)
|
||||
{
|
||||
case 0:
|
||||
p = m_ufirst;
|
||||
break;
|
||||
case 1:
|
||||
if (p > m_ufirst)
|
||||
p--;
|
||||
break;
|
||||
case 2:
|
||||
if (p < last)
|
||||
p++;
|
||||
break;
|
||||
case 3:
|
||||
p = last;
|
||||
break;
|
||||
}
|
||||
|
||||
p %= m_usize;
|
||||
if (p == m_upointer)
|
||||
return;
|
||||
|
||||
cancel_sensor();
|
||||
cancel_hand();
|
||||
|
||||
// set current state to undo point
|
||||
memcpy(m_curstate, m_history[p], m_height * m_width);
|
||||
m_upointer = p;
|
||||
refresh();
|
||||
|
||||
// schedule next timeout
|
||||
if (m_inp_ui->read() & 0x78)
|
||||
m_undotimer->adjust(attotime::from_msec(500), param);
|
||||
}
|
||||
|
||||
INPUT_CHANGED_MEMBER(sensorboard_device::ui_undo)
|
||||
{
|
||||
u8 select = (u8)(uintptr_t)param;
|
||||
|
||||
if (newval)
|
||||
{
|
||||
m_uselect = select;
|
||||
m_undotimer->adjust(attotime::zero, select);
|
||||
}
|
||||
else if ((m_inp_ui->read() & 0x78) == 0 || select == m_uselect)
|
||||
m_undotimer->adjust(attotime::never);
|
||||
}
|
||||
|
||||
INPUT_CHANGED_MEMBER(sensorboard_device::ui_init)
|
||||
{
|
||||
if (!newval)
|
||||
return;
|
||||
|
||||
u8 select = (u8)(uintptr_t)param;
|
||||
cancel_sensor();
|
||||
cancel_hand();
|
||||
|
||||
// clear board
|
||||
memset(m_curstate, 0, m_height * m_width);
|
||||
|
||||
// reset to initial position
|
||||
if (select)
|
||||
memcpy(m_curstate, m_inistate, m_height * m_width);
|
||||
|
||||
refresh();
|
||||
}
|
||||
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// input_ports - device-specific input ports
|
||||
//-------------------------------------------------
|
||||
|
||||
static INPUT_PORTS_START( sensorboard )
|
||||
PORT_START("RANK.1")
|
||||
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<16 | 1<<0, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x00) PORT_NAME("Board Sensor A1")
|
||||
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<16 | 1<<1, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x01) PORT_NAME("Board Sensor B1")
|
||||
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<16 | 1<<2, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x02) PORT_NAME("Board Sensor C1")
|
||||
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<16 | 1<<3, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x03) PORT_NAME("Board Sensor D1")
|
||||
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<16 | 1<<4, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x04) PORT_NAME("Board Sensor E1")
|
||||
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<16 | 1<<5, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x05) PORT_NAME("Board Sensor F1")
|
||||
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<16 | 1<<6, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x06) PORT_NAME("Board Sensor G1")
|
||||
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<16 | 1<<7, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x07) PORT_NAME("Board Sensor H1")
|
||||
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<16 | 1<<8, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x08) PORT_NAME("Board Sensor I1")
|
||||
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<16 | 1<<9, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x09) PORT_NAME("Board Sensor J1")
|
||||
|
||||
PORT_START("RANK.2")
|
||||
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<17 | 1<<0, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x10) PORT_NAME("Board Sensor A2")
|
||||
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<17 | 1<<1, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x11) PORT_NAME("Board Sensor B2")
|
||||
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<17 | 1<<2, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x12) PORT_NAME("Board Sensor C2")
|
||||
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<17 | 1<<3, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x13) PORT_NAME("Board Sensor D2")
|
||||
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<17 | 1<<4, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x14) PORT_NAME("Board Sensor E2")
|
||||
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<17 | 1<<5, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x15) PORT_NAME("Board Sensor F2")
|
||||
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<17 | 1<<6, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x16) PORT_NAME("Board Sensor G2")
|
||||
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<17 | 1<<7, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x17) PORT_NAME("Board Sensor H2")
|
||||
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<17 | 1<<8, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x18) PORT_NAME("Board Sensor I2")
|
||||
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<17 | 1<<9, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x19) PORT_NAME("Board Sensor J2")
|
||||
|
||||
PORT_START("RANK.3")
|
||||
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<18 | 1<<0, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x20) PORT_NAME("Board Sensor A3")
|
||||
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<18 | 1<<1, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x21) PORT_NAME("Board Sensor B3")
|
||||
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<18 | 1<<2, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x22) PORT_NAME("Board Sensor C3")
|
||||
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<18 | 1<<3, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x23) PORT_NAME("Board Sensor D3")
|
||||
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<18 | 1<<4, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x24) PORT_NAME("Board Sensor E3")
|
||||
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<18 | 1<<5, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x25) PORT_NAME("Board Sensor F3")
|
||||
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<18 | 1<<6, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x26) PORT_NAME("Board Sensor G3")
|
||||
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<18 | 1<<7, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x27) PORT_NAME("Board Sensor H3")
|
||||
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<18 | 1<<8, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x28) PORT_NAME("Board Sensor I3")
|
||||
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<18 | 1<<9, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x29) PORT_NAME("Board Sensor J3")
|
||||
|
||||
PORT_START("RANK.4")
|
||||
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<19 | 1<<0, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x30) PORT_NAME("Board Sensor A4")
|
||||
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<19 | 1<<1, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x31) PORT_NAME("Board Sensor B4")
|
||||
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<19 | 1<<2, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x32) PORT_NAME("Board Sensor C4")
|
||||
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<19 | 1<<3, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x33) PORT_NAME("Board Sensor D4")
|
||||
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<19 | 1<<4, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x34) PORT_NAME("Board Sensor E4")
|
||||
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<19 | 1<<5, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x35) PORT_NAME("Board Sensor F4")
|
||||
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<19 | 1<<6, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x36) PORT_NAME("Board Sensor G4")
|
||||
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<19 | 1<<7, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x37) PORT_NAME("Board Sensor H4")
|
||||
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<19 | 1<<8, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x38) PORT_NAME("Board Sensor I4")
|
||||
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<19 | 1<<9, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x39) PORT_NAME("Board Sensor J4")
|
||||
|
||||
PORT_START("RANK.5")
|
||||
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<20 | 1<<0, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x40) PORT_NAME("Board Sensor A5")
|
||||
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<20 | 1<<1, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x41) PORT_NAME("Board Sensor B5")
|
||||
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<20 | 1<<2, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x42) PORT_NAME("Board Sensor C5")
|
||||
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<20 | 1<<3, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x43) PORT_NAME("Board Sensor D5")
|
||||
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<20 | 1<<4, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x44) PORT_NAME("Board Sensor E5")
|
||||
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<20 | 1<<5, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x45) PORT_NAME("Board Sensor F5")
|
||||
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<20 | 1<<6, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x46) PORT_NAME("Board Sensor G5")
|
||||
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<20 | 1<<7, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x47) PORT_NAME("Board Sensor H5")
|
||||
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<20 | 1<<8, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x48) PORT_NAME("Board Sensor I5")
|
||||
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<20 | 1<<9, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x49) PORT_NAME("Board Sensor J5")
|
||||
|
||||
PORT_START("RANK.6")
|
||||
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<21 | 1<<0, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x50) PORT_NAME("Board Sensor A6")
|
||||
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<21 | 1<<1, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x51) PORT_NAME("Board Sensor B6")
|
||||
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<21 | 1<<2, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x52) PORT_NAME("Board Sensor C6")
|
||||
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<21 | 1<<3, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x53) PORT_NAME("Board Sensor D6")
|
||||
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<21 | 1<<4, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x54) PORT_NAME("Board Sensor E6")
|
||||
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<21 | 1<<5, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x55) PORT_NAME("Board Sensor F6")
|
||||
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<21 | 1<<6, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x56) PORT_NAME("Board Sensor G6")
|
||||
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<21 | 1<<7, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x57) PORT_NAME("Board Sensor H6")
|
||||
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<21 | 1<<8, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x58) PORT_NAME("Board Sensor I6")
|
||||
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<21 | 1<<9, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x59) PORT_NAME("Board Sensor J6")
|
||||
|
||||
PORT_START("RANK.7")
|
||||
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<22 | 1<<0, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x60) PORT_NAME("Board Sensor A7")
|
||||
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<22 | 1<<1, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x61) PORT_NAME("Board Sensor B7")
|
||||
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<22 | 1<<2, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x62) PORT_NAME("Board Sensor C7")
|
||||
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<22 | 1<<3, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x63) PORT_NAME("Board Sensor D7")
|
||||
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<22 | 1<<4, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x64) PORT_NAME("Board Sensor E7")
|
||||
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<22 | 1<<5, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x65) PORT_NAME("Board Sensor F7")
|
||||
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<22 | 1<<6, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x66) PORT_NAME("Board Sensor G7")
|
||||
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<22 | 1<<7, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x67) PORT_NAME("Board Sensor H7")
|
||||
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<22 | 1<<8, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x68) PORT_NAME("Board Sensor I7")
|
||||
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<22 | 1<<9, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x69) PORT_NAME("Board Sensor J7")
|
||||
|
||||
PORT_START("RANK.8")
|
||||
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<23 | 1<<0, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x70) PORT_NAME("Board Sensor A8")
|
||||
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<23 | 1<<1, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x71) PORT_NAME("Board Sensor B8")
|
||||
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<23 | 1<<2, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x72) PORT_NAME("Board Sensor C8")
|
||||
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<23 | 1<<3, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x73) PORT_NAME("Board Sensor D8")
|
||||
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<23 | 1<<4, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x74) PORT_NAME("Board Sensor E8")
|
||||
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<23 | 1<<5, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x75) PORT_NAME("Board Sensor F8")
|
||||
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<23 | 1<<6, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x76) PORT_NAME("Board Sensor G8")
|
||||
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<23 | 1<<7, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x77) PORT_NAME("Board Sensor H8")
|
||||
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<23 | 1<<8, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x78) PORT_NAME("Board Sensor I8")
|
||||
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<23 | 1<<9, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x79) PORT_NAME("Board Sensor J8")
|
||||
|
||||
PORT_START("RANK.9")
|
||||
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<24 | 1<<0, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x80) PORT_NAME("Board Sensor A9")
|
||||
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<24 | 1<<1, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x81) PORT_NAME("Board Sensor B9")
|
||||
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<24 | 1<<2, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x82) PORT_NAME("Board Sensor C9")
|
||||
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<24 | 1<<3, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x83) PORT_NAME("Board Sensor D9")
|
||||
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<24 | 1<<4, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x84) PORT_NAME("Board Sensor E9")
|
||||
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<24 | 1<<5, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x85) PORT_NAME("Board Sensor F9")
|
||||
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<24 | 1<<6, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x86) PORT_NAME("Board Sensor G9")
|
||||
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<24 | 1<<7, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x87) PORT_NAME("Board Sensor H9")
|
||||
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<24 | 1<<8, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x88) PORT_NAME("Board Sensor I9")
|
||||
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<24 | 1<<9, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x89) PORT_NAME("Board Sensor J9")
|
||||
|
||||
PORT_START("RANK.10")
|
||||
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<25 | 1<<0, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x90) PORT_NAME("Board Sensor A10")
|
||||
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<25 | 1<<1, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x91) PORT_NAME("Board Sensor B10")
|
||||
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<25 | 1<<2, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x92) PORT_NAME("Board Sensor C10")
|
||||
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<25 | 1<<3, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x93) PORT_NAME("Board Sensor D10")
|
||||
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<25 | 1<<4, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x94) PORT_NAME("Board Sensor E10")
|
||||
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<25 | 1<<5, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x95) PORT_NAME("Board Sensor F10")
|
||||
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<25 | 1<<6, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x96) PORT_NAME("Board Sensor G10")
|
||||
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<25 | 1<<7, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x97) PORT_NAME("Board Sensor H10")
|
||||
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<25 | 1<<8, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x98) PORT_NAME("Board Sensor I10")
|
||||
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("BS_CHECK", 1<<25 | 1<<9, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, sensor, 0x99) PORT_NAME("Board Sensor J10")
|
||||
|
||||
PORT_START("SPAWN")
|
||||
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("SS_CHECK", 1<<0, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, ui_spawn, 1) PORT_NAME("Spawn Piece 1")
|
||||
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("SS_CHECK", 1<<1, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, ui_spawn, 2) PORT_NAME("Spawn Piece 2")
|
||||
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("SS_CHECK", 1<<2, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, ui_spawn, 3) PORT_NAME("Spawn Piece 3")
|
||||
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("SS_CHECK", 1<<3, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, ui_spawn, 4) PORT_NAME("Spawn Piece 4")
|
||||
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("SS_CHECK", 1<<4, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, ui_spawn, 5) PORT_NAME("Spawn Piece 5")
|
||||
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("SS_CHECK", 1<<5, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, ui_spawn, 6) PORT_NAME("Spawn Piece 6")
|
||||
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("SS_CHECK", 1<<6, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, ui_spawn, 7) PORT_NAME("Spawn Piece 7")
|
||||
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("SS_CHECK", 1<<7, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, ui_spawn, 8) PORT_NAME("Spawn Piece 8")
|
||||
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("SS_CHECK", 1<<8, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, ui_spawn, 9) PORT_NAME("Spawn Piece 9")
|
||||
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("SS_CHECK", 1<<9, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, ui_spawn, 10) PORT_NAME("Spawn Piece 10")
|
||||
PORT_BIT(0x0400, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("SS_CHECK", 1<<10, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, ui_spawn, 11) PORT_NAME("Spawn Piece 11")
|
||||
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("SS_CHECK", 1<<11, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, ui_spawn, 12) PORT_NAME("Spawn Piece 12")
|
||||
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("SS_CHECK", 1<<12, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, ui_spawn, 13) PORT_NAME("Spawn Piece 13")
|
||||
PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("SS_CHECK", 1<<13, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, ui_spawn, 14) PORT_NAME("Spawn Piece 14")
|
||||
PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("SS_CHECK", 1<<14, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, ui_spawn, 15) PORT_NAME("Spawn Piece 15")
|
||||
PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("SS_CHECK", 1<<15, EQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, ui_spawn, 16) PORT_NAME("Spawn Piece 16")
|
||||
|
||||
PORT_START("UI")
|
||||
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("UI_CHECK", 1, NOTEQUALS, 0) PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_NAME("Modifier Force Sensor") // hold while clicking to force sensor (ignore piece)
|
||||
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("UI_CHECK", 1, NOTEQUALS, 0) PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_RCONTROL) PORT_NAME("Modifier Force Piece") // hold while clicking to force piece (ignore sensor)
|
||||
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("UI_CHECK", 2, NOTEQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, ui_hand, 0) PORT_NAME("Remove Piece")
|
||||
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("UI_CHECK", 2, NOTEQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, ui_undo, 0) PORT_NAME("Undo Buffer First")
|
||||
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("UI_CHECK", 2, NOTEQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, ui_undo, 1) PORT_NAME("Undo Buffer Previous")
|
||||
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("UI_CHECK", 2, NOTEQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, ui_undo, 2) PORT_NAME("Undo Buffer Next")
|
||||
PORT_BIT(0x0040, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("UI_CHECK", 2, NOTEQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, ui_undo, 3) PORT_NAME("Undo Buffer Last")
|
||||
PORT_BIT(0x0080, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("UI_CHECK", 2, NOTEQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, ui_init, 0) PORT_NAME("Board Clear")
|
||||
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CONDITION("UI_CHECK", 2, NOTEQUALS, 0) PORT_CHANGED_MEMBER(DEVICE_SELF, sensorboard_device, ui_init, 1) PORT_NAME("Board Reset")
|
||||
|
||||
PORT_START("BS_CHECK") // board size (internal use)
|
||||
PORT_BIT( 0xffffffff, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, sensorboard_device, check_bs_mask, nullptr)
|
||||
|
||||
PORT_START("SS_CHECK") // spawn size (internal use)
|
||||
PORT_BIT( 0xffffffff, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, sensorboard_device, check_ss_mask, nullptr)
|
||||
|
||||
PORT_START("UI_CHECK") // UI enabled (internal use)
|
||||
PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, sensorboard_device, check_ui_enabled, nullptr)
|
||||
INPUT_PORTS_END
|
||||
|
||||
ioport_constructor sensorboard_device::device_input_ports() const
|
||||
{
|
||||
return INPUT_PORTS_NAME(sensorboard);
|
||||
}
|
129
src/devices/machine/sensorboard.h
Normal file
129
src/devices/machine/sensorboard.h
Normal file
@ -0,0 +1,129 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:hap
|
||||
/*
|
||||
|
||||
Generic sensorboard device
|
||||
|
||||
*/
|
||||
|
||||
#ifndef MAME_MACHINE_SENSORBOARD_H
|
||||
#define MAME_MACHINE_SENSORBOARD_H
|
||||
|
||||
#pragma once
|
||||
|
||||
class sensorboard_device : public device_t
|
||||
{
|
||||
public:
|
||||
sensorboard_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock = 0);
|
||||
|
||||
enum
|
||||
{
|
||||
CHESS_BUTTONS = 0,
|
||||
CHESS_MAGNETS,
|
||||
CHESS_INDUCTIVE
|
||||
};
|
||||
|
||||
// configuration helpers
|
||||
sensorboard_device &set_preset(u8 preset) { init_preset(preset); return *this; } // device has presets for chess boards
|
||||
sensorboard_device &set_size(u8 width, u8 height) { m_width = width; m_height = height; return *this; } // board dimensions, max 10 * 10
|
||||
sensorboard_device &set_spawnpoints(u8 i) { m_maxspawn = i; m_maxid = i; return *this; } // number of piece spawnpoints, max 16
|
||||
sensorboard_device &set_max_id(u8 i) { m_maxid = i; return *this; } // maximum piece id (if larger than set_spawnpoints)
|
||||
sensorboard_device &set_sensordelay(attotime delay) { m_sensordelay = delay; return *this; } // delay when activating a sensor (like PORT_IMPULSE), set to attotime::never to disable
|
||||
sensorboard_device &set_ui_enable(bool b) { if (!b) m_maxspawn = 0; m_ui_enabled = (b) ? 3 : 0; return *this; } // enable UI inputs
|
||||
sensorboard_device &set_mod_enable(bool b) { if (b) m_ui_enabled |= 1; else m_ui_enabled &= 2; return *this; } // enable modifier keys
|
||||
|
||||
auto custom_init() { return m_custom_init_cb.bind(); }
|
||||
auto custom_sensor() { return m_custom_sensor_cb.bind(); } // x = offset & 0xf, y = offset >> 4 & 0xf
|
||||
auto custom_spawn() { return m_custom_spawn_cb.bind(); } // spawnpoint/piece = offset, retval = new piece id
|
||||
auto custom_output() { return m_custom_output_cb.bind(); } // pos = offset(A8 for ui/board, A9 for count), id = data
|
||||
|
||||
// read sensors
|
||||
u8 read_sensor(u8 x, u8 y);
|
||||
u16 read_file(u8 x, bool reverse = false);
|
||||
u16 read_rank(u8 y, bool reverse = false);
|
||||
|
||||
// handle board state
|
||||
u8 read_piece(u8 x, u8 y) { return m_curstate[y * m_width + x]; }
|
||||
void write_piece(u8 x, u8 y, u8 id) { m_curstate[y * m_width + x] = id; }
|
||||
u8 read_init(u8 x, u8 y) { return m_inistate[y * m_width + x]; }
|
||||
void write_init(u8 x, u8 y, u8 id) { m_inistate[y * m_width + x] = id; } // for setting initial board state
|
||||
|
||||
void refresh();
|
||||
|
||||
// handle pieces
|
||||
void cancel_hand();
|
||||
void remove_hand();
|
||||
bool drop_piece(u8 x, u8 y);
|
||||
bool pickup_piece(u8 x, u8 y);
|
||||
|
||||
// internal input handlers
|
||||
DECLARE_INPUT_CHANGED_MEMBER(sensor);
|
||||
DECLARE_INPUT_CHANGED_MEMBER(ui_spawn);
|
||||
DECLARE_INPUT_CHANGED_MEMBER(ui_hand);
|
||||
DECLARE_INPUT_CHANGED_MEMBER(ui_undo);
|
||||
DECLARE_INPUT_CHANGED_MEMBER(ui_init);
|
||||
|
||||
DECLARE_CUSTOM_INPUT_MEMBER(check_bs_mask) { return m_bs_mask; }
|
||||
DECLARE_CUSTOM_INPUT_MEMBER(check_ss_mask) { return m_ss_mask; }
|
||||
DECLARE_CUSTOM_INPUT_MEMBER(check_ui_enabled) { return m_ui_enabled; }
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
virtual void device_post_load() override { refresh(); }
|
||||
|
||||
virtual ioport_constructor device_input_ports() const override;
|
||||
|
||||
private:
|
||||
output_finder<0x10, 0x10> m_out_piece;
|
||||
output_finder<0x20+1> m_out_pui;
|
||||
output_finder<2> m_out_count;
|
||||
required_ioport_array<10> m_inp_rank;
|
||||
required_ioport m_inp_ui;
|
||||
|
||||
devcb_read_line m_custom_init_cb;
|
||||
devcb_read8 m_custom_sensor_cb;
|
||||
devcb_read8 m_custom_spawn_cb;
|
||||
devcb_write16 m_custom_output_cb;
|
||||
|
||||
u8 m_history[1000][0x100];
|
||||
u8 m_curstate[0x100];
|
||||
u8 m_inistate[0x100];
|
||||
u8 m_spawnstate[0x20];
|
||||
|
||||
bool m_magnets;
|
||||
bool m_inductive;
|
||||
u8 m_width;
|
||||
u8 m_height;
|
||||
u32 m_bs_mask;
|
||||
u32 m_ss_mask;
|
||||
u8 m_maxspawn;
|
||||
u8 m_maxid;
|
||||
u8 m_hand;
|
||||
int m_handpos;
|
||||
int m_droppos;
|
||||
int m_sensorpos;
|
||||
u8 m_ui_enabled;
|
||||
|
||||
u8 m_uselect;
|
||||
u32 m_upointer;
|
||||
u32 m_ufirst;
|
||||
u32 m_ulast;
|
||||
u32 m_usize;
|
||||
|
||||
emu_timer *m_undotimer;
|
||||
TIMER_CALLBACK_MEMBER(undo_tick);
|
||||
|
||||
attotime m_sensordelay;
|
||||
emu_timer *m_sensortimer;
|
||||
void cancel_sensor();
|
||||
TIMER_CALLBACK_MEMBER(sensor_off) { cancel_sensor(); }
|
||||
|
||||
void init_preset(u8 preset);
|
||||
};
|
||||
|
||||
|
||||
DECLARE_DEVICE_TYPE(SENSORBOARD, sensorboard_device)
|
||||
|
||||
#endif // MAME_MACHINE_SENSORBOARD_H
|
@ -73,15 +73,18 @@ ALLOW_SAVE_TYPE(attotime); // m_acc
|
||||
void pwm_display_device::device_start()
|
||||
{
|
||||
// resolve handlers
|
||||
m_out_x.resolve();
|
||||
m_out_a.resolve();
|
||||
m_out_digit.resolve();
|
||||
|
||||
bool cb1 = m_output_x_cb.resolve_safe();
|
||||
bool cb2 = m_output_a_cb.resolve_safe();
|
||||
bool cb3 = m_output_digit_cb.resolve_safe();
|
||||
m_external_output = cb1 || cb2 || cb3;
|
||||
|
||||
if (!m_external_output)
|
||||
{
|
||||
m_out_x.resolve();
|
||||
m_out_a.resolve();
|
||||
m_out_digit.resolve();
|
||||
}
|
||||
|
||||
// initialize
|
||||
std::fill_n(m_rowdata, ARRAY_LENGTH(m_rowdata), 0);
|
||||
std::fill_n(m_rowdata_prev, ARRAY_LENGTH(m_rowdata_prev), 0);
|
||||
|
@ -10,6 +10,7 @@ by Chafitz, and in Germany by Sandy Electronic.
|
||||
|
||||
TODO:
|
||||
- verify gms40 module memory layout
|
||||
- need to add checkers pieces and custom initial position when Avelan gets dumped
|
||||
|
||||
*******************************************************************************
|
||||
|
||||
@ -41,10 +42,10 @@ running at 16MHz.
|
||||
******************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "includes/chessbase.h"
|
||||
|
||||
#include "cpu/m6502/m6502.h"
|
||||
#include "cpu/m6502/m65c02.h"
|
||||
#include "video/pwm.h"
|
||||
#include "machine/sensorboard.h"
|
||||
#include "machine/6522via.h"
|
||||
#include "machine/nvram.h"
|
||||
#include "sound/dac.h"
|
||||
@ -60,19 +61,22 @@ running at 16MHz.
|
||||
|
||||
namespace {
|
||||
|
||||
class arb_state : public chessbase_state
|
||||
class arb_state : public driver_device
|
||||
{
|
||||
public:
|
||||
arb_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
chessbase_state(mconfig, type, tag),
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_display(*this, "display"),
|
||||
m_board(*this, "board"),
|
||||
m_via(*this, "via"),
|
||||
m_dac(*this, "dac"),
|
||||
m_cart(*this, "cartslot")
|
||||
m_cart(*this, "cartslot"),
|
||||
m_inputs(*this, "IN.%u", 0)
|
||||
{ }
|
||||
|
||||
// halt button is tied to NMI, reset button to RESET(but only if halt button is held)
|
||||
void update_reset() { m_maincpu->set_input_line(INPUT_LINE_RESET, (m_inp_matrix[9]->read() == 3) ? ASSERT_LINE : CLEAR_LINE); }
|
||||
void update_reset() { m_maincpu->set_input_line(INPUT_LINE_RESET, (m_inputs[1]->read() == 3) ? ASSERT_LINE : CLEAR_LINE); }
|
||||
DECLARE_INPUT_CHANGED_MEMBER(reset_button) { update_reset(); }
|
||||
DECLARE_INPUT_CHANGED_MEMBER(halt_button) { m_maincpu->set_input_line(M6502_NMI_LINE, newval ? ASSERT_LINE : CLEAR_LINE); update_reset(); }
|
||||
|
||||
@ -80,12 +84,18 @@ public:
|
||||
void arb(machine_config &config);
|
||||
void v2(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
|
||||
private:
|
||||
// devices/pointers
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<pwm_display_device> m_display;
|
||||
required_device<sensorboard_device> m_board;
|
||||
required_device<via6522_device> m_via;
|
||||
required_device<dac_bit_interface> m_dac;
|
||||
optional_device<generic_slot_device> m_cart;
|
||||
required_ioport_array<2> m_inputs;
|
||||
|
||||
// address maps
|
||||
void main_map(address_map &map);
|
||||
@ -101,8 +111,32 @@ private:
|
||||
DECLARE_WRITE8_MEMBER(leds_w);
|
||||
DECLARE_WRITE8_MEMBER(control_w);
|
||||
DECLARE_READ8_MEMBER(input_r);
|
||||
|
||||
u16 m_inp_mux;
|
||||
u16 m_led_select;
|
||||
u8 m_led_group;
|
||||
u8 m_led_latch;
|
||||
u16 m_led_data;
|
||||
};
|
||||
|
||||
void arb_state::machine_start()
|
||||
{
|
||||
// zerofill
|
||||
m_inp_mux = 0;
|
||||
m_led_select = 0;
|
||||
m_led_group = 0;
|
||||
m_led_latch = 0;
|
||||
m_led_data = 0;
|
||||
|
||||
// register for savestates
|
||||
save_item(NAME(m_inp_mux));
|
||||
save_item(NAME(m_led_select));
|
||||
save_item(NAME(m_led_group));
|
||||
save_item(NAME(m_led_latch));
|
||||
save_item(NAME(m_led_data));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Devices, I/O
|
||||
@ -137,11 +171,11 @@ void arb_state::update_display()
|
||||
{
|
||||
// 12 led column data lines via 3 7475
|
||||
u16 mask = 0;
|
||||
mask |= (m_led_select & 1) ? 0xf00 : 0;
|
||||
mask |= (m_led_select & 2) ? 0x0ff : 0;
|
||||
mask |= (m_led_group & 1) ? 0xf00 : 0;
|
||||
mask |= (m_led_group & 2) ? 0x0ff : 0;
|
||||
|
||||
m_led_data = (m_led_data & ~mask) | ((m_led_latch << 8 | m_led_latch) & mask);
|
||||
display_matrix(12, 9+1, m_led_data, m_inp_mux | 0x200);
|
||||
m_display->matrix(m_led_select | 0x200, m_led_data);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(arb_state::leds_w)
|
||||
@ -155,10 +189,11 @@ WRITE8_MEMBER(arb_state::control_w)
|
||||
{
|
||||
// PB0-PB3: 74145 A-D
|
||||
// 74145 0-8: input mux, led row select
|
||||
m_inp_mux = 1 << (data & 0xf) & 0x1ff;
|
||||
m_inp_mux = data & 0xf;
|
||||
m_led_select = 1 << (data & 0xf) & 0x1ff;
|
||||
|
||||
// PB4,PB5: led group select
|
||||
m_led_select = data >> 4 & 3;
|
||||
m_led_group = data >> 4 & 3;
|
||||
update_display();
|
||||
|
||||
// PB7: speaker out
|
||||
@ -167,8 +202,15 @@ WRITE8_MEMBER(arb_state::control_w)
|
||||
|
||||
READ8_MEMBER(arb_state::input_r)
|
||||
{
|
||||
u8 data = 0;
|
||||
|
||||
// PA0-PA7: multiplexed inputs
|
||||
return ~read_inputs(9);
|
||||
if (m_inp_mux < 8)
|
||||
data = m_board->read_file(m_inp_mux);
|
||||
else if (m_inp_mux < 9)
|
||||
data = m_inputs[m_inp_mux - 8]->read();
|
||||
|
||||
return ~data;
|
||||
}
|
||||
|
||||
|
||||
@ -199,9 +241,7 @@ void arb_state::v2_map(address_map &map)
|
||||
******************************************************************************/
|
||||
|
||||
static INPUT_PORTS_START( arb )
|
||||
PORT_INCLUDE( generic_cb_magnets )
|
||||
|
||||
PORT_START("IN.8")
|
||||
PORT_START("IN.0")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_7) PORT_NAME("Hint / Black")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_V) PORT_CODE(KEYCODE_6) PORT_NAME("Variable / Clear / White / 6")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_M) PORT_CODE(KEYCODE_5) PORT_NAME("Monitor / Take Back / King / 5")
|
||||
@ -211,7 +251,7 @@ static INPUT_PORTS_START( arb )
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_L) PORT_CODE(KEYCODE_1) PORT_NAME("Change Level / Knight / 1")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_N) PORT_CODE(KEYCODE_0) PORT_NAME("New Game / Options / Pawn / 0")
|
||||
|
||||
PORT_START("IN.9")
|
||||
PORT_START("IN.1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_CODE(KEYCODE_F2) PORT_NAME("Reset") PORT_CHANGED_MEMBER(DEVICE_SELF, arb_state, reset_button, nullptr)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_CODE(KEYCODE_F2) PORT_NAME("Halt") PORT_CHANGED_MEMBER(DEVICE_SELF, arb_state, halt_button, nullptr)
|
||||
INPUT_PORTS_END
|
||||
@ -236,7 +276,10 @@ void arb_state::v2(machine_config &config)
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
||||
TIMER(config, "display_decay").configure_periodic(FUNC(arb_state::display_decay_tick), attotime::from_msec(1));
|
||||
SENSORBOARD(config, m_board).set_preset(sensorboard_device::CHESS_MAGNETS);
|
||||
|
||||
/* video hardware */
|
||||
PWM_DISPLAY(config, m_display).set_size(9+1, 12);
|
||||
config.set_default_layout(layout_ave_arb);
|
||||
|
||||
/* sound hardware */
|
||||
@ -288,5 +331,5 @@ ROM_END
|
||||
******************************************************************************/
|
||||
|
||||
/* YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS */
|
||||
CONS( 1980, arb, 0, 0, arb, arb, arb_state, empty_init, "AVE Micro Systems", "Auto Response Board", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
|
||||
CONS( 2012, arbv2, arb, 0, v2, arb, arb_state, empty_init, "hack (Steve Braid)", "ARB V2 Sargon 4.0", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
|
||||
CONS( 1980, arb, 0, 0, arb, arb, arb_state, empty_init, "AVE Micro Systems", "Auto Response Board", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
CONS( 2012, arbv2, arb, 0, v2, arb, arb_state, empty_init, "hack (Steve Braid)", "ARB V2 Sargon 4.0", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
|
@ -19,6 +19,7 @@ TODO:
|
||||
#include "emu.h"
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "video/pwm.h"
|
||||
#include "machine/sensorboard.h"
|
||||
#include "machine/bankdev.h"
|
||||
#include "machine/timer.h"
|
||||
#include "sound/dac.h"
|
||||
@ -38,6 +39,7 @@ public:
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_display(*this, "display"),
|
||||
m_board(*this, "board"),
|
||||
m_irq_on(*this, "irq_on"),
|
||||
m_dac(*this, "dac"),
|
||||
m_mainmap(*this, "mainmap"),
|
||||
@ -56,10 +58,11 @@ private:
|
||||
// devices/pointers
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<pwm_display_device> m_display;
|
||||
required_device<sensorboard_device> m_board;
|
||||
required_device<timer_device> m_irq_on;
|
||||
required_device<dac_2bit_binary_weighted_ones_complement_device> m_dac;
|
||||
required_device<address_map_bank_device> m_mainmap;
|
||||
required_ioport_array<10> m_inputs;
|
||||
required_ioport_array<2> m_inputs;
|
||||
|
||||
// periodic interrupts
|
||||
template<int Line> TIMER_DEVICE_CALLBACK_MEMBER(irq_on) { m_maincpu->set_input_line(Line, ASSERT_LINE); }
|
||||
@ -75,7 +78,7 @@ private:
|
||||
u8 input_r();
|
||||
void control_w(u8 data);
|
||||
|
||||
u8 m_inp_mux;
|
||||
u16 m_inp_mux;
|
||||
};
|
||||
|
||||
void master_state::machine_start()
|
||||
@ -109,8 +112,14 @@ void master_state::control_w(u8 data)
|
||||
|
||||
u8 master_state::input_r()
|
||||
{
|
||||
u8 data = 0;
|
||||
|
||||
// d0-d7: multiplexed inputs
|
||||
u8 data = (m_inp_mux < 10) ? m_inputs[m_inp_mux]->read() : 0;
|
||||
if (m_inp_mux < 8)
|
||||
data = m_board->read_file(m_inp_mux, true);
|
||||
else if (m_inp_mux < 10)
|
||||
data = m_inputs[m_inp_mux - 8]->read();
|
||||
|
||||
return ~data;
|
||||
}
|
||||
|
||||
@ -178,86 +187,6 @@ void master_state::main_trampoline(address_map &map)
|
||||
|
||||
static INPUT_PORTS_START( master )
|
||||
PORT_START("IN.0")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.1")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.2")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.3")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.4")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.5")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.6")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.7")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.8")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_NAME("Change Position")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_NAME("Clear Board")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_NAME("New Game")
|
||||
@ -267,7 +196,7 @@ static INPUT_PORTS_START( master )
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_7) PORT_NAME("Rook")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
|
||||
PORT_START("IN.9")
|
||||
PORT_START("IN.1")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_8) PORT_NAME("Bishop")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_9) PORT_NAME("Knight")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_0) PORT_NAME("Pawn")
|
||||
@ -296,13 +225,15 @@ void master_state::master(machine_config &config)
|
||||
m_irq_on->set_start_delay(irq_period - attotime::from_nsec(22870)); // active for 22.87us
|
||||
TIMER(config, "irq_off").configure_periodic(FUNC(master_state::irq_off<INPUT_LINE_IRQ0>), irq_period);
|
||||
|
||||
SENSORBOARD(config, m_board).set_preset(sensorboard_device::CHESS_BUTTONS);
|
||||
|
||||
/* video hardware */
|
||||
PWM_DISPLAY(config, m_display).set_size(9, 2);
|
||||
config.set_default_layout(layout_ck_master);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
DAC_2BIT_BINARY_WEIGHTED_ONES_COMPLEMENT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
|
||||
DAC_2BIT_BINARY_WEIGHTED_ONES_COMPLEMENT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.125);
|
||||
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
|
||||
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
|
||||
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
|
||||
@ -328,4 +259,4 @@ ROM_END
|
||||
******************************************************************************/
|
||||
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
|
||||
CONS( 1984, ckmaster, 0, 0, master, master, master_state, init_master, "Chess King", "Master (Chess King)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
|
||||
CONS( 1984, ckmaster, 0, 0, master, master, master_state, init_master, "Chess King", "Master (Chess King)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
|
@ -13,6 +13,7 @@ CXG Chess 2001 overview:
|
||||
#include "emu.h"
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "video/pwm.h"
|
||||
#include "machine/sensorboard.h"
|
||||
#include "machine/timer.h"
|
||||
#include "sound/dac.h"
|
||||
#include "sound/volt_reg.h"
|
||||
@ -31,6 +32,7 @@ public:
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_display(*this, "display"),
|
||||
m_board(*this, "board"),
|
||||
m_irq_on(*this, "irq_on"),
|
||||
m_dac(*this, "dac"),
|
||||
m_speaker_off(*this, "speaker_off"),
|
||||
@ -47,10 +49,11 @@ private:
|
||||
// devices/pointers
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<pwm_display_device> m_display;
|
||||
required_device<sensorboard_device> m_board;
|
||||
required_device<timer_device> m_irq_on;
|
||||
required_device<dac_bit_interface> m_dac;
|
||||
required_device<timer_device> m_speaker_off;
|
||||
required_ioport_array<10> m_inputs;
|
||||
required_ioport_array<2> m_inputs;
|
||||
|
||||
// periodic interrupts
|
||||
template<int Line> TIMER_DEVICE_CALLBACK_MEMBER(irq_on) { m_maincpu->set_input_line(Line, ASSERT_LINE); }
|
||||
@ -66,7 +69,7 @@ private:
|
||||
DECLARE_WRITE8_MEMBER(leds_w);
|
||||
DECLARE_READ8_MEMBER(input_r);
|
||||
|
||||
u8 m_inp_mux;
|
||||
u16 m_inp_mux;
|
||||
};
|
||||
|
||||
void ch2001_state::machine_start()
|
||||
@ -107,8 +110,14 @@ WRITE8_MEMBER(ch2001_state::leds_w)
|
||||
|
||||
READ8_MEMBER(ch2001_state::input_r)
|
||||
{
|
||||
u8 data = 0;
|
||||
|
||||
// d0-d7: multiplexed inputs
|
||||
u8 data = (m_inp_mux < 10) ? m_inputs[m_inp_mux]->read() : 0;
|
||||
if (m_inp_mux < 8)
|
||||
data = m_board->read_file(m_inp_mux, true);
|
||||
else if (m_inp_mux < 10)
|
||||
data = m_inputs[m_inp_mux - 8]->read();
|
||||
|
||||
return ~data;
|
||||
}
|
||||
|
||||
@ -134,86 +143,6 @@ void ch2001_state::main_map(address_map &map)
|
||||
|
||||
static INPUT_PORTS_START( ch2001 )
|
||||
PORT_START("IN.0")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.1")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.2")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.3")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.4")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.5")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.6")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.7")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_TOGGLE PORT_NAME("Board Sensor")
|
||||
|
||||
PORT_START("IN.8")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("Black")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_NAME("King")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_NAME("Queen")
|
||||
@ -223,7 +152,7 @@ static INPUT_PORTS_START( ch2001 )
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_NAME("Pawn")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_NAME("White")
|
||||
|
||||
PORT_START("IN.9")
|
||||
PORT_START("IN.1")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_NAME("Set up")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Q) PORT_NAME("New Game")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_U) PORT_NAME("Take Back")
|
||||
@ -251,6 +180,8 @@ void ch2001_state::ch2001(machine_config &config)
|
||||
m_irq_on->set_start_delay(irq_period - attotime::from_nsec(18300)); // active for 18.3us
|
||||
TIMER(config, "irq_off").configure_periodic(FUNC(ch2001_state::irq_off<INPUT_LINE_IRQ0>), irq_period);
|
||||
|
||||
SENSORBOARD(config, m_board).set_preset(sensorboard_device::CHESS_MAGNETS);
|
||||
|
||||
/* video hardware */
|
||||
PWM_DISPLAY(config, m_display).set_size(10, 8);
|
||||
config.set_default_layout(layout_cxg_ch2001);
|
||||
@ -283,4 +214,4 @@ ROM_END
|
||||
******************************************************************************/
|
||||
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
|
||||
CONS( 1984, ch2001, 0, 0, ch2001, ch2001, ch2001_state, empty_init, "CXG", "Chess 2001", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
|
||||
CONS( 1984, ch2001, 0, 0, ch2001, ch2001, ch2001_state, empty_init, "CXG", "Chess 2001", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
||||
|
@ -3,6 +3,10 @@
|
||||
|
||||
<!-- define elements -->
|
||||
|
||||
<element name="black"><rect><color red="0.17" green="0.15" blue="0.15" /></rect></element>
|
||||
<element name="white"><rect><color red="0.81" green="0.8" blue="0.79" /></rect></element>
|
||||
<element name="disk_black"><disk><color red="0.17" green="0.15" blue="0.15" /></disk></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="0.1" green="0.01" blue="0.015" /></disk>
|
||||
@ -26,21 +30,6 @@
|
||||
<disk state="1"><color red="0.34" green="0.3" blue="0.3" /></disk>
|
||||
</element>
|
||||
|
||||
<element name="hl" defstate="0">
|
||||
<text string=" ">
|
||||
<bounds x="0.0" y="0.0" width="1.0" height="1.0" />
|
||||
<color red="0.0" green="0.0" blue="0.0" />
|
||||
</text>
|
||||
<disk state="1">
|
||||
<bounds x="0.12" y="0.12" width="0.76" height="0.76" />
|
||||
<color red="1.0" green="1.0" blue="1.0" />
|
||||
</disk>
|
||||
</element>
|
||||
|
||||
<element name="black"><rect><color red="0.17" green="0.15" blue="0.15" /></rect></element>
|
||||
<element name="white"><rect><color red="0.81" green="0.8" blue="0.79" /></rect></element>
|
||||
<element name="disk_black"><disk><color red="0.17" green="0.15" blue="0.15" /></disk></element>
|
||||
|
||||
<element name="text_1">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="1"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
@ -146,12 +135,307 @@
|
||||
<element name="text_r43"><text string="Change Board" align="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
|
||||
|
||||
<!-- sb board -->
|
||||
|
||||
<element name="cblack"><rect><color red="0.5" green="0.37" blue="0.3" /></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.png" state="1"/>
|
||||
<image file="chess/wn.png" state="2"/>
|
||||
<image file="chess/wb.png" state="3"/>
|
||||
<image file="chess/wr.png" state="4"/>
|
||||
<image file="chess/wq.png" state="5"/>
|
||||
<image file="chess/wk.png" state="6"/>
|
||||
|
||||
<image file="chess/bp.png" state="7"/>
|
||||
<image file="chess/bn.png" state="8"/>
|
||||
<image file="chess/bb.png" state="9"/>
|
||||
<image file="chess/br.png" state="10"/>
|
||||
<image file="chess/bq.png" state="11"/>
|
||||
<image file="chess/bk.png" state="12"/>
|
||||
|
||||
<!-- selected pieces -->
|
||||
<image file="chess/wp.png" state="13"><color alpha="0.5" /></image>
|
||||
<image file="chess/wn.png" state="14"><color alpha="0.5" /></image>
|
||||
<image file="chess/wb.png" state="15"><color alpha="0.5" /></image>
|
||||
<image file="chess/wr.png" state="16"><color alpha="0.5" /></image>
|
||||
<image file="chess/wq.png" state="17"><color alpha="0.5" /></image>
|
||||
<image file="chess/wk.png" state="18"><color alpha="0.5" /></image>
|
||||
|
||||
<image file="chess/bp.png" state="19"><color alpha="0.5" /></image>
|
||||
<image file="chess/bn.png" state="20"><color alpha="0.5" /></image>
|
||||
<image file="chess/bb.png" state="21"><color alpha="0.5" /></image>
|
||||
<image file="chess/br.png" state="22"><color alpha="0.5" /></image>
|
||||
<image file="chess/bq.png" state="23"><color alpha="0.5" /></image>
|
||||
<image file="chess/bk.png" state="24"><color alpha="0.5" /></image>
|
||||
</element>
|
||||
|
||||
<group name="sb_board">
|
||||
<bounds x="0" y="0" width="80" height="80" />
|
||||
|
||||
<!-- squares (avoid seams) -->
|
||||
<bezel element="cwhite"><bounds x="0" y="0" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="10" y="0" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="20" y="0" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="30" y="0" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="40" y="0" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="50" y="0" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="60" y="0" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="70" y="0" width="10" height="11" /></bezel>
|
||||
|
||||
<bezel element="cblack"><bounds x="0" y="10" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="10" y="10" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="20" y="10" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="30" y="10" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="40" y="10" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="50" y="10" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="60" y="10" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="70" y="10" width="10" height="11" /></bezel>
|
||||
|
||||
<bezel element="cwhite"><bounds x="0" y="20" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="10" y="20" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="20" y="20" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="30" y="20" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="40" y="20" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="50" y="20" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="60" y="20" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="70" y="20" width="10" height="11" /></bezel>
|
||||
|
||||
<bezel element="cblack"><bounds x="0" y="30" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="10" y="30" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="20" y="30" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="30" y="30" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="40" y="30" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="50" y="30" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="60" y="30" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="70" y="30" width="10" height="11" /></bezel>
|
||||
|
||||
<bezel element="cwhite"><bounds x="0" y="40" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="10" y="40" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="20" y="40" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="30" y="40" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="40" y="40" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="50" y="40" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="60" y="40" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="70" y="40" width="10" height="11" /></bezel>
|
||||
|
||||
<bezel element="cblack"><bounds x="0" y="50" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="10" y="50" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="20" y="50" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="30" y="50" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="40" y="50" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="50" y="50" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="60" y="50" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="70" y="50" width="10" height="11" /></bezel>
|
||||
|
||||
<bezel element="cwhite"><bounds x="0" y="60" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="10" y="60" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="20" y="60" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="30" y="60" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="40" y="60" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="50" y="60" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="60" y="60" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="70" y="60" width="10" height="11" /></bezel>
|
||||
|
||||
<bezel element="cblack"><bounds x="0" y="70" width="11" height="10" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="10" y="70" width="11" height="10" /></bezel>
|
||||
<bezel element="cblack"><bounds x="20" y="70" width="11" height="10" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="30" y="70" width="11" height="10" /></bezel>
|
||||
<bezel element="cblack"><bounds x="40" y="70" width="11" height="10" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="50" y="70" width="11" height="10" /></bezel>
|
||||
<bezel element="cblack"><bounds x="60" y="70" width="11" height="10" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="70" y="70" width="10" height="10" /></bezel>
|
||||
|
||||
<!-- leds -->
|
||||
<repeat count="8">
|
||||
<param name="y" start="8.3" increment="10" />
|
||||
<param name="i2" start="7" increment="-1" />
|
||||
|
||||
<repeat count="8">
|
||||
<param name="x" start="8.3" increment="10" />
|
||||
<param name="i1" start="0" increment="1" />
|
||||
<bezel name="~i1~.~i2~" element="led"><bounds x="~x~" y="~y~" width="1.5" height="1.5" /></bezel>
|
||||
</repeat>
|
||||
</repeat>
|
||||
|
||||
<!-- sensors, pieces -->
|
||||
<repeat count="8">
|
||||
<param name="y" start="0" increment="10" />
|
||||
<param name="i" start="8" increment="-1" />
|
||||
|
||||
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x01"><bounds x="0" y="~y~" width="10" height="10" /><color alpha="0.1" /></bezel>
|
||||
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x02"><bounds x="10" y="~y~" width="10" height="10" /><color alpha="0.1" /></bezel>
|
||||
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x04"><bounds x="20" y="~y~" width="10" height="10" /><color alpha="0.1" /></bezel>
|
||||
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x08"><bounds x="30" y="~y~" width="10" height="10" /><color alpha="0.1" /></bezel>
|
||||
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x10"><bounds x="40" y="~y~" width="10" height="10" /><color alpha="0.1" /></bezel>
|
||||
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x20"><bounds x="50" y="~y~" width="10" height="10" /><color alpha="0.1" /></bezel>
|
||||
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x40"><bounds x="60" y="~y~" width="10" height="10" /><color alpha="0.1" /></bezel>
|
||||
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x80"><bounds x="70" y="~y~" width="10" height="10" /><color alpha="0.1" /></bezel>
|
||||
|
||||
<bezel name="piece_a~i~" element="piece"><bounds x="0" y="~y~" width="10" height="10" /></bezel>
|
||||
<bezel name="piece_b~i~" element="piece"><bounds x="10" y="~y~" width="10" height="10" /></bezel>
|
||||
<bezel name="piece_c~i~" element="piece"><bounds x="20" y="~y~" width="10" height="10" /></bezel>
|
||||
<bezel name="piece_d~i~" element="piece"><bounds x="30" y="~y~" width="10" height="10" /></bezel>
|
||||
<bezel name="piece_e~i~" element="piece"><bounds x="40" y="~y~" width="10" height="10" /></bezel>
|
||||
<bezel name="piece_f~i~" element="piece"><bounds x="50" y="~y~" width="10" height="10" /></bezel>
|
||||
<bezel name="piece_g~i~" element="piece"><bounds x="60" y="~y~" width="10" height="10" /></bezel>
|
||||
<bezel name="piece_h~i~" element="piece"><bounds x="70" y="~y~" width="10" height="10" /></bezel>
|
||||
</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">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="RESET"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_uib3">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<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">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<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">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string=" <<"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_uiu2b">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string=" < "><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_uiu2c">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string=" >"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_uiu2d">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string=" >>"><color red="0.01" green="0.01" blue="0.01" /></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_uiu3b"><text string="/"><color red="0.81" green="0.8" blue="0.79" /></text></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" />
|
||||
<bezel element="cblack"><bounds x="0" y="0" width="10" height="1" /></bezel>
|
||||
<bezel element="cblack"><bounds x="0" y="7" width="10" height="1" /></bezel>
|
||||
<bezel element="cblack"><bounds x="0" y="79" width="10" height="1" /></bezel>
|
||||
<bezel element="text_uit1"><bounds x="0" y="2" width="10" height="2" /></bezel>
|
||||
<bezel element="text_uit2"><bounds x="0" y="4" width="10" height="2" /></bezel>
|
||||
|
||||
<!-- board -->
|
||||
<bezel element="text_uib1"><bounds x="0" y="9" width="10" height="2" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="1" y="11.5" width="8" height="2.5" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="1" y="15" width="8" height="2.5" /></bezel>
|
||||
|
||||
<bezel element="text_uib2"><bounds x="1.5" y="11.75" width="7" height="2" /></bezel>
|
||||
<bezel element="text_uib3"><bounds x="1.5" y="15.25" width="7" height="2" /></bezel>
|
||||
|
||||
<bezel element="hlub" inputtag="board:UI" inputmask="0x100"><bounds x="1" y="11.5" width="8" height="2.5" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:UI" inputmask="0x80"><bounds x="1" y="15" width="8" height="2.5" /><color alpha="0.25" /></bezel>
|
||||
|
||||
<!-- spawn -->
|
||||
<bezel element="text_uis1"><bounds x="0" y="20.5" width="10" height="2" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="1" y="23" width="8" height="12" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="1" y="36" width="8" height="12" /></bezel>
|
||||
|
||||
<bezel name="piece_ui1" element="piece"><bounds x="1" y="23" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui2" element="piece"><bounds x="1" y="27" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui3" element="piece"><bounds x="1" y="31" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui4" element="piece"><bounds x="5" y="23" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui5" element="piece"><bounds x="5" y="27" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui6" element="piece"><bounds x="5" y="31" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui7" element="piece"><bounds x="1" y="36" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui8" element="piece"><bounds x="1" y="40" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui9" element="piece"><bounds x="1" y="44" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui10" element="piece"><bounds x="5" y="36" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui11" element="piece"><bounds x="5" y="40" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui12" element="piece"><bounds x="5" y="44" width="4" height="4" /></bezel>
|
||||
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0001"><bounds x="1" y="23" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0002"><bounds x="1" y="27" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0004"><bounds x="1" y="31" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0008"><bounds x="5" y="23" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0010"><bounds x="5" y="27" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0020"><bounds x="5" y="31" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0040"><bounds x="1" y="36" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0080"><bounds x="1" y="40" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0100"><bounds x="1" y="44" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0200"><bounds x="5" y="36" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0400"><bounds x="5" y="40" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0800"><bounds x="5" y="44" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
|
||||
<!-- hand -->
|
||||
<bezel element="text_uih1"><bounds x="0" y="51" width="10" height="2" /></bezel>
|
||||
<bezel element="cblack"><bounds x="1" y="53.5" width="8" height="6" /></bezel>
|
||||
<bezel name="piece_ui0" element="piece"><bounds x="2" y="53.5" width="6" height="6" /></bezel>
|
||||
|
||||
<bezel element="cwhite"><bounds x="1" y="60.5" width="8" height="2.5" /></bezel>
|
||||
<bezel element="text_uih2"><bounds x="1.5" y="60.75" width="7" height="2" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:UI" inputmask="0x04"><bounds x="1" y="60.5" width="8" height="2.5" /><color alpha="0.25" /></bezel>
|
||||
|
||||
<!-- undo -->
|
||||
<bezel element="text_uiu1"><bounds x="0" y="66" width="10" height="2" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="1" y="68.5" width="1.7" height="6" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="3.1" y="68.5" width="1.7" height="6" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="5.2" y="68.5" width="1.7" height="6" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="7.3" y="68.5" width="1.7" height="6" /></bezel>
|
||||
<bezel element="text_uiu2a"><bounds x="1" y="69.5" width="1.7" height="4" /></bezel>
|
||||
<bezel element="text_uiu2b"><bounds x="3.1" y="69.5" width="1.7" height="4" /></bezel>
|
||||
<bezel element="text_uiu2c"><bounds x="5.2" y="69.5" width="1.7" height="4" /></bezel>
|
||||
<bezel element="text_uiu2d"><bounds x="7.3" y="69.5" width="1.7" height="4" /></bezel>
|
||||
|
||||
<bezel element="hlub" inputtag="board:UI" inputmask="0x08"><bounds x="1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:UI" inputmask="0x10"><bounds x="3.1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:UI" inputmask="0x20"><bounds x="5.2" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:UI" inputmask="0x40"><bounds x="7.3" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></bezel>
|
||||
|
||||
<bezel name="count_ui0" element="text_uiu3a"><bounds x="0" y="75" width="4" height="2" /></bezel>
|
||||
<bezel name="count_ui1" element="text_uiu3c"><bounds x="6" y="75" width="4" height="2" /></bezel>
|
||||
<bezel element="text_uiu3b"><bounds x="4" y="75" width="2" height="2" /></bezel>
|
||||
</group>
|
||||
|
||||
|
||||
<!-- build screen -->
|
||||
|
||||
<view name="Internal Layout">
|
||||
<bounds left="-2" right="106.5" top="-2" bottom="88" />
|
||||
<bounds left="-14" right="106.5" top="-2" bottom="88" />
|
||||
|
||||
<bezel element="white"><bounds x="-2.5" y="-2.5" width="90.5" height="91" /></bezel>
|
||||
<bezel element="white"><bounds x="-2" y="-2" width="90" height="90" /></bezel>
|
||||
<bezel element="black"><bounds x="2" y="2" width="82" height="82" /></bezel>
|
||||
<group ref="sb_board"><bounds x="3" y="3" width="80" height="80" /></group>
|
||||
|
||||
<group ref="sb_ui"><bounds x="-13" y="3" width="10" height="80" /></group>
|
||||
|
||||
<!-- chessboard coords -->
|
||||
|
||||
@ -173,199 +457,6 @@
|
||||
<bezel element="text_g"><bounds x="67" y="85" width="2" height="2" /></bezel>
|
||||
<bezel element="text_h"><bounds x="77" y="85" width="2" height="2" /></bezel>
|
||||
|
||||
<!-- chessboard bezel -->
|
||||
|
||||
<bezel element="black"><bounds x="2" y="2" width="82" height="82" /></bezel>
|
||||
<bezel element="white"><bounds x="3" y="3" width="80" height="80" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="13" y="2.5" width="10" height="10.5" /></bezel>
|
||||
<bezel element="black"><bounds x="33" y="2.5" width="10" height="10.5" /></bezel>
|
||||
<bezel element="black"><bounds x="53" y="2.5" width="10" height="10.5" /></bezel>
|
||||
<bezel element="black"><bounds x="73" y="2.5" width="10.5" height="10.5" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="2.5" y="13" width="10.5" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="23" y="13" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="43" y="13" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="63" y="13" width="10" height="10" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="13" y="23" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="33" y="23" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="53" y="23" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="73" y="23" width="10.5" height="10" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="2.5" y="33" width="10.5" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="23" y="33" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="43" y="33" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="63" y="33" width="10" height="10" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="13" y="43" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="33" y="43" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="53" y="43" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="73" y="43" width="10.5" height="10" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="2.5" y="53" width="10.5" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="23" y="53" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="43" y="53" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="63" y="53" width="10" height="10" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="13" y="63" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="33" y="63" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="53" y="63" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="73" y="63" width="10.5" height="10" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="2.5" y="73" width="10.5" height="10.5" /></bezel>
|
||||
<bezel element="black"><bounds x="23" y="73" width="10" height="10.5" /></bezel>
|
||||
<bezel element="black"><bounds x="43" y="73" width="10" height="10.5" /></bezel>
|
||||
<bezel element="black"><bounds x="63" y="73" width="10" height="10.5" /></bezel>
|
||||
|
||||
<!-- chessboard leds -->
|
||||
|
||||
<bezel name="0.7" element="led"><bounds x="11.3" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.7" element="led"><bounds x="21.3" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.7" element="led"><bounds x="31.3" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.7" element="led"><bounds x="41.3" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.7" element="led"><bounds x="51.3" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.7" element="led"><bounds x="61.3" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.7" element="led"><bounds x="71.3" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.7" element="led"><bounds x="81.3" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel name="0.6" element="led"><bounds x="11.3" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.6" element="led"><bounds x="21.3" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.6" element="led"><bounds x="31.3" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.6" element="led"><bounds x="41.3" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.6" element="led"><bounds x="51.3" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.6" element="led"><bounds x="61.3" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.6" element="led"><bounds x="71.3" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.6" element="led"><bounds x="81.3" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel name="0.5" element="led"><bounds x="11.3" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.5" element="led"><bounds x="21.3" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.5" element="led"><bounds x="31.3" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.5" element="led"><bounds x="41.3" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.5" element="led"><bounds x="51.3" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.5" element="led"><bounds x="61.3" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.5" element="led"><bounds x="71.3" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.5" element="led"><bounds x="81.3" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel name="0.4" element="led"><bounds x="11.3" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.4" element="led"><bounds x="21.3" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.4" element="led"><bounds x="31.3" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.4" element="led"><bounds x="41.3" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.4" element="led"><bounds x="51.3" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.4" element="led"><bounds x="61.3" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.4" element="led"><bounds x="71.3" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.4" element="led"><bounds x="81.3" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel name="0.3" element="led"><bounds x="11.3" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.3" element="led"><bounds x="21.3" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.3" element="led"><bounds x="31.3" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.3" element="led"><bounds x="41.3" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.3" element="led"><bounds x="51.3" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.3" element="led"><bounds x="61.3" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.3" element="led"><bounds x="71.3" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.3" element="led"><bounds x="81.3" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel name="0.2" element="led"><bounds x="11.3" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.2" element="led"><bounds x="21.3" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.2" element="led"><bounds x="31.3" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.2" element="led"><bounds x="41.3" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.2" element="led"><bounds x="51.3" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.2" element="led"><bounds x="61.3" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.2" element="led"><bounds x="71.3" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.2" element="led"><bounds x="81.3" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel name="0.1" element="led"><bounds x="11.3" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.1" element="led"><bounds x="21.3" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.1" element="led"><bounds x="31.3" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.1" element="led"><bounds x="41.3" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.1" element="led"><bounds x="51.3" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.1" element="led"><bounds x="61.3" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.1" element="led"><bounds x="71.3" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.1" element="led"><bounds x="81.3" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel name="0.0" element="led"><bounds x="11.3" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.0" element="led"><bounds x="21.3" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.0" element="led"><bounds x="31.3" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.0" element="led"><bounds x="41.3" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.0" element="led"><bounds x="51.3" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.0" element="led"><bounds x="61.3" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.0" element="led"><bounds x="71.3" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.0" element="led"><bounds x="81.3" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<!-- chessboard sensors -->
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x80"><bounds x="3" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x80"><bounds x="13" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x80"><bounds x="23" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x80"><bounds x="33" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x80"><bounds x="43" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x80"><bounds x="53" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x80"><bounds x="63" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x80"><bounds x="73" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x40"><bounds x="3" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x40"><bounds x="13" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x40"><bounds x="23" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x40"><bounds x="33" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x40"><bounds x="43" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x40"><bounds x="53" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x40"><bounds x="63" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x40"><bounds x="73" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x20"><bounds x="3" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x20"><bounds x="13" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x20"><bounds x="23" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x20"><bounds x="33" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x20"><bounds x="43" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x20"><bounds x="53" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x20"><bounds x="63" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x20"><bounds x="73" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x10"><bounds x="3" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x10"><bounds x="13" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x10"><bounds x="23" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x10"><bounds x="33" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x10"><bounds x="43" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x10"><bounds x="53" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x10"><bounds x="63" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x10"><bounds x="73" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x08"><bounds x="3" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x08"><bounds x="13" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x08"><bounds x="23" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x08"><bounds x="33" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x08"><bounds x="43" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x08"><bounds x="53" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x08"><bounds x="63" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x08"><bounds x="73" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x04"><bounds x="3" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x04"><bounds x="13" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x04"><bounds x="23" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x04"><bounds x="33" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x04"><bounds x="43" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x04"><bounds x="53" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x04"><bounds x="63" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x04"><bounds x="73" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x02"><bounds x="3" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x02"><bounds x="13" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x02"><bounds x="23" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x02"><bounds x="33" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x02"><bounds x="43" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x02"><bounds x="53" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x02"><bounds x="63" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x02"><bounds x="73" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x01"><bounds x="3" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x01"><bounds x="13" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x01"><bounds x="23" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x01"><bounds x="33" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x01"><bounds x="43" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x01"><bounds x="53" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x01"><bounds x="63" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x01"><bounds x="73" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
|
||||
<!-- right side -->
|
||||
|
||||
<bezel element="text_l0"><bounds x="88.6" y="22.65" width="2.5" height="1.5" /></bezel>
|
||||
@ -421,17 +512,17 @@
|
||||
<bezel name="9.9" element="led2"><bounds x="91" y="60.25" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="9.8" element="led2"><bounds x="91" y="63.25" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel element="bt" inputtag="IN.9" inputmask="0x01"><bounds x="95" y="13" width="2" height="2" /></bezel>
|
||||
<bezel element="bt" inputtag="IN.9" inputmask="0x02"><bounds x="95" y="17" width="2" height="2" /></bezel>
|
||||
<bezel element="bt" inputtag="IN.1" inputmask="0x01"><bounds x="95" y="13" width="2" height="2" /></bezel>
|
||||
<bezel element="bt" inputtag="IN.1" inputmask="0x02"><bounds x="95" y="17" width="2" height="2" /></bezel>
|
||||
|
||||
<bezel element="bt" inputtag="IN.8" inputmask="0x80"><bounds x="95" y="22.5" width="2" height="2" /></bezel>
|
||||
<bezel element="bt" inputtag="IN.8" inputmask="0x40"><bounds x="95" y="25.5" width="2" height="2" /></bezel>
|
||||
<bezel element="bt" inputtag="IN.8" inputmask="0x20"><bounds x="95" y="28.5" width="2" height="2" /></bezel>
|
||||
<bezel element="bt" inputtag="IN.8" inputmask="0x10"><bounds x="95" y="31.5" width="2" height="2" /></bezel>
|
||||
<bezel element="bt" inputtag="IN.8" inputmask="0x08"><bounds x="95" y="34.5" width="2" height="2" /></bezel>
|
||||
<bezel element="bt" inputtag="IN.8" inputmask="0x04"><bounds x="95" y="37.5" width="2" height="2" /></bezel>
|
||||
<bezel element="bt" inputtag="IN.8" inputmask="0x02"><bounds x="95" y="43" width="2" height="2" /></bezel>
|
||||
<bezel element="bt" inputtag="IN.8" inputmask="0x01"><bounds x="95" y="46" width="2" height="2" /></bezel>
|
||||
<bezel element="bt" inputtag="IN.0" inputmask="0x80"><bounds x="95" y="22.5" width="2" height="2" /></bezel>
|
||||
<bezel element="bt" inputtag="IN.0" inputmask="0x40"><bounds x="95" y="25.5" width="2" height="2" /></bezel>
|
||||
<bezel element="bt" inputtag="IN.0" inputmask="0x20"><bounds x="95" y="28.5" width="2" height="2" /></bezel>
|
||||
<bezel element="bt" inputtag="IN.0" inputmask="0x10"><bounds x="95" y="31.5" width="2" height="2" /></bezel>
|
||||
<bezel element="bt" inputtag="IN.0" inputmask="0x08"><bounds x="95" y="34.5" width="2" height="2" /></bezel>
|
||||
<bezel element="bt" inputtag="IN.0" inputmask="0x04"><bounds x="95" y="37.5" width="2" height="2" /></bezel>
|
||||
<bezel element="bt" inputtag="IN.0" inputmask="0x02"><bounds x="95" y="43" width="2" height="2" /></bezel>
|
||||
<bezel element="bt" inputtag="IN.0" inputmask="0x01"><bounds x="95" y="46" width="2" height="2" /></bezel>
|
||||
|
||||
</view>
|
||||
</mamelayout>
|
||||
|
@ -3,6 +3,9 @@
|
||||
|
||||
<!-- define elements -->
|
||||
|
||||
<element name="black"><rect><color red="0.17" green="0.15" blue="0.15" /></rect></element>
|
||||
<element name="white"><rect><color red="0.81" green="0.8" blue="0.79" /></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="0.1" green="0.01" blue="0.015" /></disk>
|
||||
@ -12,16 +15,6 @@
|
||||
<disk state="0"><color red="0.015" green="0.1" blue="0.01" /></disk>
|
||||
</element>
|
||||
|
||||
<element name="hl" defstate="0">
|
||||
<text string=" ">
|
||||
<bounds x="0.0" y="0.0" width="1.0" height="1.0" />
|
||||
<color red="0.0" green="0.0" blue="0.0" />
|
||||
</text>
|
||||
<disk state="1">
|
||||
<bounds x="0.12" y="0.12" width="0.76" height="0.76" />
|
||||
<color red="1.0" green="1.0" blue="1.0" />
|
||||
</disk>
|
||||
</element>
|
||||
<element name="hlb" defstate="0">
|
||||
<text string=" ">
|
||||
<bounds x="0.0" y="0.0" width="1.0" height="1.0" />
|
||||
@ -33,9 +26,6 @@
|
||||
</rect>
|
||||
</element>
|
||||
|
||||
<element name="black"><rect><color red="0.17" green="0.15" blue="0.15" /></rect></element>
|
||||
<element name="white"><rect><color red="0.81" green="0.8" blue="0.79" /></rect></element>
|
||||
|
||||
<element name="text_l1">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="CHANGE POSITION"><color red="0.17" green="0.15" blue="0.15" /></text>
|
||||
@ -91,10 +81,294 @@
|
||||
</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.png" state="1"/>
|
||||
<image file="chess/wn.png" state="2"/>
|
||||
<image file="chess/wb.png" state="3"/>
|
||||
<image file="chess/wr.png" state="4"/>
|
||||
<image file="chess/wq.png" state="5"/>
|
||||
<image file="chess/wk.png" state="6"/>
|
||||
|
||||
<image file="chess/bp.png" state="7"/>
|
||||
<image file="chess/bn.png" state="8"/>
|
||||
<image file="chess/bb.png" state="9"/>
|
||||
<image file="chess/br.png" state="10"/>
|
||||
<image file="chess/bq.png" state="11"/>
|
||||
<image file="chess/bk.png" state="12"/>
|
||||
|
||||
<!-- selected pieces -->
|
||||
<image file="chess/wp.png" state="13"><color alpha="0.5" /></image>
|
||||
<image file="chess/wn.png" state="14"><color alpha="0.5" /></image>
|
||||
<image file="chess/wb.png" state="15"><color alpha="0.5" /></image>
|
||||
<image file="chess/wr.png" state="16"><color alpha="0.5" /></image>
|
||||
<image file="chess/wq.png" state="17"><color alpha="0.5" /></image>
|
||||
<image file="chess/wk.png" state="18"><color alpha="0.5" /></image>
|
||||
|
||||
<image file="chess/bp.png" state="19"><color alpha="0.5" /></image>
|
||||
<image file="chess/bn.png" state="20"><color alpha="0.5" /></image>
|
||||
<image file="chess/bb.png" state="21"><color alpha="0.5" /></image>
|
||||
<image file="chess/br.png" state="22"><color alpha="0.5" /></image>
|
||||
<image file="chess/bq.png" state="23"><color alpha="0.5" /></image>
|
||||
<image file="chess/bk.png" state="24"><color alpha="0.5" /></image>
|
||||
</element>
|
||||
|
||||
<group name="sb_board">
|
||||
<bounds x="0" y="0" width="80" height="80" />
|
||||
|
||||
<!-- squares (avoid seams) -->
|
||||
<bezel element="cwhite"><bounds x="0" y="0" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="10" y="0" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="20" y="0" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="30" y="0" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="40" y="0" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="50" y="0" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="60" y="0" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="70" y="0" width="10" height="11" /></bezel>
|
||||
|
||||
<bezel element="cblack"><bounds x="0" y="10" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="10" y="10" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="20" y="10" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="30" y="10" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="40" y="10" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="50" y="10" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="60" y="10" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="70" y="10" width="10" height="11" /></bezel>
|
||||
|
||||
<bezel element="cwhite"><bounds x="0" y="20" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="10" y="20" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="20" y="20" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="30" y="20" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="40" y="20" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="50" y="20" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="60" y="20" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="70" y="20" width="10" height="11" /></bezel>
|
||||
|
||||
<bezel element="cblack"><bounds x="0" y="30" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="10" y="30" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="20" y="30" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="30" y="30" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="40" y="30" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="50" y="30" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="60" y="30" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="70" y="30" width="10" height="11" /></bezel>
|
||||
|
||||
<bezel element="cwhite"><bounds x="0" y="40" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="10" y="40" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="20" y="40" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="30" y="40" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="40" y="40" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="50" y="40" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="60" y="40" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="70" y="40" width="10" height="11" /></bezel>
|
||||
|
||||
<bezel element="cblack"><bounds x="0" y="50" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="10" y="50" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="20" y="50" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="30" y="50" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="40" y="50" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="50" y="50" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="60" y="50" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="70" y="50" width="10" height="11" /></bezel>
|
||||
|
||||
<bezel element="cwhite"><bounds x="0" y="60" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="10" y="60" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="20" y="60" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="30" y="60" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="40" y="60" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="50" y="60" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="60" y="60" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="70" y="60" width="10" height="11" /></bezel>
|
||||
|
||||
<bezel element="cblack"><bounds x="0" y="70" width="11" height="10" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="10" y="70" width="11" height="10" /></bezel>
|
||||
<bezel element="cblack"><bounds x="20" y="70" width="11" height="10" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="30" y="70" width="11" height="10" /></bezel>
|
||||
<bezel element="cblack"><bounds x="40" y="70" width="11" height="10" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="50" y="70" width="11" height="10" /></bezel>
|
||||
<bezel element="cblack"><bounds x="60" y="70" width="11" height="10" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="70" y="70" width="10" height="10" /></bezel>
|
||||
|
||||
<!-- sensors, pieces -->
|
||||
<repeat count="8">
|
||||
<param name="y" start="0" increment="10" />
|
||||
<param name="i" start="8" increment="-1" />
|
||||
|
||||
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x01"><bounds x="0" y="~y~" width="10" height="10" /><color alpha="0.1" /></bezel>
|
||||
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x02"><bounds x="10" y="~y~" width="10" height="10" /><color alpha="0.1" /></bezel>
|
||||
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x04"><bounds x="20" y="~y~" width="10" height="10" /><color alpha="0.1" /></bezel>
|
||||
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x08"><bounds x="30" y="~y~" width="10" height="10" /><color alpha="0.1" /></bezel>
|
||||
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x10"><bounds x="40" y="~y~" width="10" height="10" /><color alpha="0.1" /></bezel>
|
||||
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x20"><bounds x="50" y="~y~" width="10" height="10" /><color alpha="0.1" /></bezel>
|
||||
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x40"><bounds x="60" y="~y~" width="10" height="10" /><color alpha="0.1" /></bezel>
|
||||
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x80"><bounds x="70" y="~y~" width="10" height="10" /><color alpha="0.1" /></bezel>
|
||||
|
||||
<bezel name="piece_a~i~" element="piece"><bounds x="0" y="~y~" width="10" height="10" /></bezel>
|
||||
<bezel name="piece_b~i~" element="piece"><bounds x="10" y="~y~" width="10" height="10" /></bezel>
|
||||
<bezel name="piece_c~i~" element="piece"><bounds x="20" y="~y~" width="10" height="10" /></bezel>
|
||||
<bezel name="piece_d~i~" element="piece"><bounds x="30" y="~y~" width="10" height="10" /></bezel>
|
||||
<bezel name="piece_e~i~" element="piece"><bounds x="40" y="~y~" width="10" height="10" /></bezel>
|
||||
<bezel name="piece_f~i~" element="piece"><bounds x="50" y="~y~" width="10" height="10" /></bezel>
|
||||
<bezel name="piece_g~i~" element="piece"><bounds x="60" y="~y~" width="10" height="10" /></bezel>
|
||||
<bezel name="piece_h~i~" element="piece"><bounds x="70" y="~y~" width="10" height="10" /></bezel>
|
||||
</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">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="RESET"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_uib3">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<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">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<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">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string=" <<"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_uiu2b">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string=" < "><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_uiu2c">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string=" >"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_uiu2d">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string=" >>"><color red="0.01" green="0.01" blue="0.01" /></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_uiu3b"><text string="/"><color red="0.81" green="0.8" blue="0.79" /></text></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" />
|
||||
<bezel element="cblack"><bounds x="0" y="0" width="10" height="1" /></bezel>
|
||||
<bezel element="cblack"><bounds x="0" y="7" width="10" height="1" /></bezel>
|
||||
<bezel element="cblack"><bounds x="0" y="79" width="10" height="1" /></bezel>
|
||||
<bezel element="text_uit1"><bounds x="0" y="2" width="10" height="2" /></bezel>
|
||||
<bezel element="text_uit2"><bounds x="0" y="4" width="10" height="2" /></bezel>
|
||||
|
||||
<!-- board -->
|
||||
<bezel element="text_uib1"><bounds x="0" y="9" width="10" height="2" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="1" y="11.5" width="8" height="2.5" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="1" y="15" width="8" height="2.5" /></bezel>
|
||||
|
||||
<bezel element="text_uib2"><bounds x="1.5" y="11.75" width="7" height="2" /></bezel>
|
||||
<bezel element="text_uib3"><bounds x="1.5" y="15.25" width="7" height="2" /></bezel>
|
||||
|
||||
<bezel element="hlub" inputtag="board:UI" inputmask="0x100"><bounds x="1" y="11.5" width="8" height="2.5" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:UI" inputmask="0x80"><bounds x="1" y="15" width="8" height="2.5" /><color alpha="0.25" /></bezel>
|
||||
|
||||
<!-- spawn -->
|
||||
<bezel element="text_uis1"><bounds x="0" y="20.5" width="10" height="2" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="1" y="23" width="8" height="12" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="1" y="36" width="8" height="12" /></bezel>
|
||||
|
||||
<bezel name="piece_ui1" element="piece"><bounds x="1" y="23" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui2" element="piece"><bounds x="1" y="27" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui3" element="piece"><bounds x="1" y="31" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui4" element="piece"><bounds x="5" y="23" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui5" element="piece"><bounds x="5" y="27" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui6" element="piece"><bounds x="5" y="31" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui7" element="piece"><bounds x="1" y="36" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui8" element="piece"><bounds x="1" y="40" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui9" element="piece"><bounds x="1" y="44" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui10" element="piece"><bounds x="5" y="36" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui11" element="piece"><bounds x="5" y="40" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui12" element="piece"><bounds x="5" y="44" width="4" height="4" /></bezel>
|
||||
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0001"><bounds x="1" y="23" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0002"><bounds x="1" y="27" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0004"><bounds x="1" y="31" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0008"><bounds x="5" y="23" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0010"><bounds x="5" y="27" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0020"><bounds x="5" y="31" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0040"><bounds x="1" y="36" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0080"><bounds x="1" y="40" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0100"><bounds x="1" y="44" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0200"><bounds x="5" y="36" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0400"><bounds x="5" y="40" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0800"><bounds x="5" y="44" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
|
||||
<!-- hand -->
|
||||
<bezel element="text_uih1"><bounds x="0" y="51" width="10" height="2" /></bezel>
|
||||
<bezel element="cblack"><bounds x="1" y="53.5" width="8" height="6" /></bezel>
|
||||
<bezel name="piece_ui0" element="piece"><bounds x="2" y="53.5" width="6" height="6" /></bezel>
|
||||
|
||||
<bezel element="cwhite"><bounds x="1" y="60.5" width="8" height="2.5" /></bezel>
|
||||
<bezel element="text_uih2"><bounds x="1.5" y="60.75" width="7" height="2" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:UI" inputmask="0x04"><bounds x="1" y="60.5" width="8" height="2.5" /><color alpha="0.25" /></bezel>
|
||||
|
||||
<!-- undo -->
|
||||
<bezel element="text_uiu1"><bounds x="0" y="66" width="10" height="2" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="1" y="68.5" width="1.7" height="6" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="3.1" y="68.5" width="1.7" height="6" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="5.2" y="68.5" width="1.7" height="6" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="7.3" y="68.5" width="1.7" height="6" /></bezel>
|
||||
<bezel element="text_uiu2a"><bounds x="1" y="69.5" width="1.7" height="4" /></bezel>
|
||||
<bezel element="text_uiu2b"><bounds x="3.1" y="69.5" width="1.7" height="4" /></bezel>
|
||||
<bezel element="text_uiu2c"><bounds x="5.2" y="69.5" width="1.7" height="4" /></bezel>
|
||||
<bezel element="text_uiu2d"><bounds x="7.3" y="69.5" width="1.7" height="4" /></bezel>
|
||||
|
||||
<bezel element="hlub" inputtag="board:UI" inputmask="0x08"><bounds x="1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:UI" inputmask="0x10"><bounds x="3.1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:UI" inputmask="0x20"><bounds x="5.2" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:UI" inputmask="0x40"><bounds x="7.3" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></bezel>
|
||||
|
||||
<bezel name="count_ui0" element="text_uiu3a"><bounds x="0" y="75" width="4" height="2" /></bezel>
|
||||
<bezel name="count_ui1" element="text_uiu3c"><bounds x="6" y="75" width="4" height="2" /></bezel>
|
||||
<bezel element="text_uiu3b"><bounds x="4" y="75" width="2" height="2" /></bezel>
|
||||
</group>
|
||||
|
||||
|
||||
<!-- build screen -->
|
||||
|
||||
<view name="Internal Layout">
|
||||
<bounds left="-2.5" right="106.5" top="-2.5" bottom="88.5" />
|
||||
<bounds left="-14" right="106.5" top="-2.5" bottom="88.5" />
|
||||
|
||||
<bezel element="black"><bounds x="2" y="2" width="82" height="82" /></bezel>
|
||||
<group ref="sb_board"><bounds x="3" y="3" width="80" height="80" /></group>
|
||||
|
||||
<group ref="sb_ui"><bounds x="-13" y="3" width="10" height="80" /></group>
|
||||
|
||||
<!-- chessboard leds -->
|
||||
|
||||
@ -136,125 +410,6 @@
|
||||
|
||||
<bezel name="8.1" element="ledg"><bounds x="85.5" y="3.5" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<!-- chessboard bezel -->
|
||||
|
||||
<bezel element="black"><bounds x="2" y="2" width="82" height="82" /></bezel>
|
||||
<bezel element="white"><bounds x="3" y="3" width="80" height="80" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="13" y="2.5" width="10" height="10.5" /></bezel>
|
||||
<bezel element="black"><bounds x="33" y="2.5" width="10" height="10.5" /></bezel>
|
||||
<bezel element="black"><bounds x="53" y="2.5" width="10" height="10.5" /></bezel>
|
||||
<bezel element="black"><bounds x="73" y="2.5" width="10.5" height="10.5" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="2.5" y="13" width="10.5" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="23" y="13" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="43" y="13" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="63" y="13" width="10" height="10" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="13" y="23" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="33" y="23" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="53" y="23" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="73" y="23" width="10.5" height="10" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="2.5" y="33" width="10.5" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="23" y="33" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="43" y="33" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="63" y="33" width="10" height="10" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="13" y="43" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="33" y="43" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="53" y="43" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="73" y="43" width="10.5" height="10" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="2.5" y="53" width="10.5" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="23" y="53" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="43" y="53" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="63" y="53" width="10" height="10" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="13" y="63" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="33" y="63" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="53" y="63" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="73" y="63" width="10.5" height="10" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="2.5" y="73" width="10.5" height="10.5" /></bezel>
|
||||
<bezel element="black"><bounds x="23" y="73" width="10" height="10.5" /></bezel>
|
||||
<bezel element="black"><bounds x="43" y="73" width="10" height="10.5" /></bezel>
|
||||
<bezel element="black"><bounds x="63" y="73" width="10" height="10.5" /></bezel>
|
||||
|
||||
<!-- chessboard sensors -->
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x01"><bounds x="3" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x01"><bounds x="13" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x01"><bounds x="23" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x01"><bounds x="33" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x01"><bounds x="43" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x01"><bounds x="53" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x01"><bounds x="63" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x01"><bounds x="73" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x02"><bounds x="3" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x02"><bounds x="13" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x02"><bounds x="23" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x02"><bounds x="33" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x02"><bounds x="43" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x02"><bounds x="53" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x02"><bounds x="63" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x02"><bounds x="73" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x04"><bounds x="3" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x04"><bounds x="13" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x04"><bounds x="23" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x04"><bounds x="33" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x04"><bounds x="43" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x04"><bounds x="53" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x04"><bounds x="63" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x04"><bounds x="73" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x08"><bounds x="3" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x08"><bounds x="13" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x08"><bounds x="23" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x08"><bounds x="33" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x08"><bounds x="43" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x08"><bounds x="53" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x08"><bounds x="63" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x08"><bounds x="73" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x10"><bounds x="3" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x10"><bounds x="13" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x10"><bounds x="23" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x10"><bounds x="33" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x10"><bounds x="43" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x10"><bounds x="53" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x10"><bounds x="63" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x10"><bounds x="73" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x20"><bounds x="3" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x20"><bounds x="13" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x20"><bounds x="23" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x20"><bounds x="33" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x20"><bounds x="43" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x20"><bounds x="53" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x20"><bounds x="63" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x20"><bounds x="73" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x40"><bounds x="3" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x40"><bounds x="13" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x40"><bounds x="23" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x40"><bounds x="33" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x40"><bounds x="43" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x40"><bounds x="53" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x40"><bounds x="63" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x40"><bounds x="73" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x80"><bounds x="3" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x80"><bounds x="13" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x80"><bounds x="23" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x80"><bounds x="33" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x80"><bounds x="43" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x80"><bounds x="53" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x80"><bounds x="63" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x80"><bounds x="73" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
|
||||
<!-- right side -->
|
||||
|
||||
<bezel element="white"><bounds x="88.5" y="-2.5" width="18" height="91" /></bezel>
|
||||
@ -295,21 +450,21 @@
|
||||
<bezel element="white"><bounds x="96.5" y="58" width="2.0" height="2.0" /></bezel>
|
||||
<bezel element="black"><bounds x="96.25" y="63.083" width="2.5" height="2.5" /></bezel>
|
||||
|
||||
<bezel element="hlb" inputtag="IN.8" inputmask="0x01"><bounds x="91" y="3.166" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hlb" inputtag="IN.8" inputmask="0x02"><bounds x="91" y="8.500" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hlb" inputtag="IN.8" inputmask="0x04"><bounds x="91" y="13.833" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hlb" inputtag="IN.8" inputmask="0x08"><bounds x="91" y="19.166" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hlb" inputtag="IN.8" inputmask="0x10"><bounds x="91" y="24.500" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hlb" inputtag="IN.8" inputmask="0x20"><bounds x="91" y="29.833" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hlb" inputtag="IN.8" inputmask="0x40"><bounds x="91" y="35.166" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hlb" inputtag="IN.9" inputmask="0x01"><bounds x="91" y="40.500" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hlb" inputtag="IN.9" inputmask="0x02"><bounds x="91" y="45.833" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hlb" inputtag="IN.9" inputmask="0x04"><bounds x="91" y="51.166" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hlb" inputtag="IN.9" inputmask="0x08"><bounds x="91" y="56.500" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hlb" inputtag="IN.9" inputmask="0x10"><bounds x="91" y="61.833" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hlb" inputtag="IN.9" inputmask="0x20"><bounds x="91" y="67.166" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hlb" inputtag="IN.9" inputmask="0x40"><bounds x="91" y="72.500" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hlb" inputtag="IN.9" inputmask="0x80"><bounds x="91" y="77.833" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hlb" inputtag="IN.0" inputmask="0x01"><bounds x="91" y="3.166" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hlb" inputtag="IN.0" inputmask="0x02"><bounds x="91" y="8.500" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hlb" inputtag="IN.0" inputmask="0x04"><bounds x="91" y="13.833" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hlb" inputtag="IN.0" inputmask="0x08"><bounds x="91" y="19.166" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hlb" inputtag="IN.0" inputmask="0x10"><bounds x="91" y="24.500" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hlb" inputtag="IN.0" inputmask="0x20"><bounds x="91" y="29.833" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hlb" inputtag="IN.0" inputmask="0x40"><bounds x="91" y="35.166" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hlb" inputtag="IN.1" inputmask="0x01"><bounds x="91" y="40.500" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hlb" inputtag="IN.1" inputmask="0x02"><bounds x="91" y="45.833" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hlb" inputtag="IN.1" inputmask="0x04"><bounds x="91" y="51.166" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hlb" inputtag="IN.1" inputmask="0x08"><bounds x="91" y="56.500" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hlb" inputtag="IN.1" inputmask="0x10"><bounds x="91" y="61.833" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hlb" inputtag="IN.1" inputmask="0x20"><bounds x="91" y="67.166" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hlb" inputtag="IN.1" inputmask="0x40"><bounds x="91" y="72.500" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hlb" inputtag="IN.1" inputmask="0x80"><bounds x="91" y="77.833" width="13" height="5" /><color alpha="0.4" /></bezel>
|
||||
|
||||
</view>
|
||||
</mamelayout>
|
||||
|
@ -3,7 +3,11 @@
|
||||
|
||||
<!-- define elements -->
|
||||
|
||||
<element name="static_black"><rect><color red="0" green="0" blue="0" /></rect></element>
|
||||
<element name="blackb"><rect><color red="0" green="0" blue="0" /></rect></element>
|
||||
<element name="black"><rect><color red="0.17" green="0.15" blue="0.15" /></rect></element>
|
||||
<element name="white"><rect><color red="0.81" green="0.8" blue="0.79" /></rect></element>
|
||||
<element name="disk_black"><disk><color red="0.17" green="0.15" blue="0.15" /></disk></element>
|
||||
<element name="disk_white"><disk><color red="0.81" green="0.8" blue="0.79" /></disk></element>
|
||||
|
||||
<element name="led" defstate="0">
|
||||
<disk state="1"><color red="1.0" green="0.1" blue="0.15" /></disk>
|
||||
@ -14,16 +18,6 @@
|
||||
<disk state="0"><color red="0.14" green="0.014" blue="0.02" /></disk>
|
||||
</element>
|
||||
|
||||
<element name="hl" defstate="0">
|
||||
<text string=" ">
|
||||
<bounds x="0.0" y="0.0" width="1.0" height="1.0" />
|
||||
<color red="0.0" green="0.0" blue="0.0" />
|
||||
</text>
|
||||
<disk state="1">
|
||||
<bounds x="0.12" y="0.12" width="0.76" height="0.76" />
|
||||
<color red="1.0" green="1.0" blue="1.0" />
|
||||
</disk>
|
||||
</element>
|
||||
<element name="butd" defstate="0">
|
||||
<disk state="0"><color red="0.17" green="0.15" blue="0.15" /></disk>
|
||||
<disk state="1"><color red="0.34" green="0.3" blue="0.3" /></disk>
|
||||
@ -33,11 +27,6 @@
|
||||
<rect state="1"><color red="0.34" green="0.3" blue="0.3" /></rect>
|
||||
</element>
|
||||
|
||||
<element name="black"><rect><color red="0.17" green="0.15" blue="0.15" /></rect></element>
|
||||
<element name="white"><rect><color red="0.81" green="0.8" blue="0.79" /></rect></element>
|
||||
<element name="disk_black"><disk><color red="0.17" green="0.15" blue="0.15" /></disk></element>
|
||||
<element name="disk_white"><disk><color red="0.81" green="0.8" blue="0.79" /></disk></element>
|
||||
|
||||
<element name="text_1">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="1"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
@ -148,12 +137,307 @@
|
||||
<element name="text_b8"><text string="Move"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
|
||||
|
||||
<!-- sb board -->
|
||||
|
||||
<element name="cblack"><rect><color red="0.5" green="0.22" blue="0.3" /></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.png" state="1"/>
|
||||
<image file="chess/wn.png" state="2"/>
|
||||
<image file="chess/wb.png" state="3"/>
|
||||
<image file="chess/wr.png" state="4"/>
|
||||
<image file="chess/wq.png" state="5"/>
|
||||
<image file="chess/wk.png" state="6"/>
|
||||
|
||||
<image file="chess/bp.png" state="7"/>
|
||||
<image file="chess/bn.png" state="8"/>
|
||||
<image file="chess/bb.png" state="9"/>
|
||||
<image file="chess/br.png" state="10"/>
|
||||
<image file="chess/bq.png" state="11"/>
|
||||
<image file="chess/bk.png" state="12"/>
|
||||
|
||||
<!-- selected pieces -->
|
||||
<image file="chess/wp.png" state="13"><color alpha="0.5" /></image>
|
||||
<image file="chess/wn.png" state="14"><color alpha="0.5" /></image>
|
||||
<image file="chess/wb.png" state="15"><color alpha="0.5" /></image>
|
||||
<image file="chess/wr.png" state="16"><color alpha="0.5" /></image>
|
||||
<image file="chess/wq.png" state="17"><color alpha="0.5" /></image>
|
||||
<image file="chess/wk.png" state="18"><color alpha="0.5" /></image>
|
||||
|
||||
<image file="chess/bp.png" state="19"><color alpha="0.5" /></image>
|
||||
<image file="chess/bn.png" state="20"><color alpha="0.5" /></image>
|
||||
<image file="chess/bb.png" state="21"><color alpha="0.5" /></image>
|
||||
<image file="chess/br.png" state="22"><color alpha="0.5" /></image>
|
||||
<image file="chess/bq.png" state="23"><color alpha="0.5" /></image>
|
||||
<image file="chess/bk.png" state="24"><color alpha="0.5" /></image>
|
||||
</element>
|
||||
|
||||
<group name="sb_board">
|
||||
<bounds x="0" y="0" width="80" height="80" />
|
||||
|
||||
<!-- squares (avoid seams) -->
|
||||
<bezel element="cwhite"><bounds x="0" y="0" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="10" y="0" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="20" y="0" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="30" y="0" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="40" y="0" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="50" y="0" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="60" y="0" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="70" y="0" width="10" height="11" /></bezel>
|
||||
|
||||
<bezel element="cblack"><bounds x="0" y="10" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="10" y="10" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="20" y="10" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="30" y="10" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="40" y="10" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="50" y="10" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="60" y="10" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="70" y="10" width="10" height="11" /></bezel>
|
||||
|
||||
<bezel element="cwhite"><bounds x="0" y="20" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="10" y="20" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="20" y="20" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="30" y="20" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="40" y="20" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="50" y="20" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="60" y="20" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="70" y="20" width="10" height="11" /></bezel>
|
||||
|
||||
<bezel element="cblack"><bounds x="0" y="30" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="10" y="30" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="20" y="30" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="30" y="30" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="40" y="30" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="50" y="30" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="60" y="30" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="70" y="30" width="10" height="11" /></bezel>
|
||||
|
||||
<bezel element="cwhite"><bounds x="0" y="40" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="10" y="40" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="20" y="40" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="30" y="40" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="40" y="40" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="50" y="40" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="60" y="40" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="70" y="40" width="10" height="11" /></bezel>
|
||||
|
||||
<bezel element="cblack"><bounds x="0" y="50" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="10" y="50" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="20" y="50" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="30" y="50" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="40" y="50" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="50" y="50" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="60" y="50" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="70" y="50" width="10" height="11" /></bezel>
|
||||
|
||||
<bezel element="cwhite"><bounds x="0" y="60" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="10" y="60" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="20" y="60" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="30" y="60" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="40" y="60" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="50" y="60" width="11" height="11" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="60" y="60" width="11" height="11" /></bezel>
|
||||
<bezel element="cblack"><bounds x="70" y="60" width="10" height="11" /></bezel>
|
||||
|
||||
<bezel element="cblack"><bounds x="0" y="70" width="11" height="10" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="10" y="70" width="11" height="10" /></bezel>
|
||||
<bezel element="cblack"><bounds x="20" y="70" width="11" height="10" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="30" y="70" width="11" height="10" /></bezel>
|
||||
<bezel element="cblack"><bounds x="40" y="70" width="11" height="10" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="50" y="70" width="11" height="10" /></bezel>
|
||||
<bezel element="cblack"><bounds x="60" y="70" width="11" height="10" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="70" y="70" width="10" height="10" /></bezel>
|
||||
|
||||
<!-- leds -->
|
||||
<repeat count="8">
|
||||
<param name="y" start="8.3" increment="10" />
|
||||
<param name="i2" start="0" increment="1" />
|
||||
|
||||
<repeat count="8">
|
||||
<param name="x" start="8.3" increment="10" />
|
||||
<param name="i1" start="0" increment="1" />
|
||||
<bezel name="~i1~.~i2~" element="led"><bounds x="~x~" y="~y~" width="1.5" height="1.5" /></bezel>
|
||||
</repeat>
|
||||
</repeat>
|
||||
|
||||
<!-- sensors, pieces -->
|
||||
<repeat count="8">
|
||||
<param name="y" start="0" increment="10" />
|
||||
<param name="i" start="8" increment="-1" />
|
||||
|
||||
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x01"><bounds x="0" y="~y~" width="10" height="10" /><color alpha="0.1" /></bezel>
|
||||
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x02"><bounds x="10" y="~y~" width="10" height="10" /><color alpha="0.1" /></bezel>
|
||||
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x04"><bounds x="20" y="~y~" width="10" height="10" /><color alpha="0.1" /></bezel>
|
||||
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x08"><bounds x="30" y="~y~" width="10" height="10" /><color alpha="0.1" /></bezel>
|
||||
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x10"><bounds x="40" y="~y~" width="10" height="10" /><color alpha="0.1" /></bezel>
|
||||
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x20"><bounds x="50" y="~y~" width="10" height="10" /><color alpha="0.1" /></bezel>
|
||||
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x40"><bounds x="60" y="~y~" width="10" height="10" /><color alpha="0.1" /></bezel>
|
||||
<bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x80"><bounds x="70" y="~y~" width="10" height="10" /><color alpha="0.1" /></bezel>
|
||||
|
||||
<bezel name="piece_a~i~" element="piece"><bounds x="0" y="~y~" width="10" height="10" /></bezel>
|
||||
<bezel name="piece_b~i~" element="piece"><bounds x="10" y="~y~" width="10" height="10" /></bezel>
|
||||
<bezel name="piece_c~i~" element="piece"><bounds x="20" y="~y~" width="10" height="10" /></bezel>
|
||||
<bezel name="piece_d~i~" element="piece"><bounds x="30" y="~y~" width="10" height="10" /></bezel>
|
||||
<bezel name="piece_e~i~" element="piece"><bounds x="40" y="~y~" width="10" height="10" /></bezel>
|
||||
<bezel name="piece_f~i~" element="piece"><bounds x="50" y="~y~" width="10" height="10" /></bezel>
|
||||
<bezel name="piece_g~i~" element="piece"><bounds x="60" y="~y~" width="10" height="10" /></bezel>
|
||||
<bezel name="piece_h~i~" element="piece"><bounds x="70" y="~y~" width="10" height="10" /></bezel>
|
||||
</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">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string="RESET"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_uib3">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<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">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<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">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string=" <<"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_uiu2b">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string=" < "><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_uiu2c">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string=" >"><color red="0.01" green="0.01" blue="0.01" /></text>
|
||||
</element>
|
||||
<element name="text_uiu2d">
|
||||
<rect><color red="0.81" green="0.8" blue="0.79" /></rect>
|
||||
<text string=" >>"><color red="0.01" green="0.01" blue="0.01" /></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_uiu3b"><text string="/"><color red="0.81" green="0.8" blue="0.79" /></text></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" />
|
||||
<bezel element="cblack"><bounds x="0" y="0" width="10" height="1" /></bezel>
|
||||
<bezel element="cblack"><bounds x="0" y="7" width="10" height="1" /></bezel>
|
||||
<bezel element="cblack"><bounds x="0" y="79" width="10" height="1" /></bezel>
|
||||
<bezel element="text_uit1"><bounds x="0" y="2" width="10" height="2" /></bezel>
|
||||
<bezel element="text_uit2"><bounds x="0" y="4" width="10" height="2" /></bezel>
|
||||
|
||||
<!-- board -->
|
||||
<bezel element="text_uib1"><bounds x="0" y="9" width="10" height="2" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="1" y="11.5" width="8" height="2.5" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="1" y="15" width="8" height="2.5" /></bezel>
|
||||
|
||||
<bezel element="text_uib2"><bounds x="1.5" y="11.75" width="7" height="2" /></bezel>
|
||||
<bezel element="text_uib3"><bounds x="1.5" y="15.25" width="7" height="2" /></bezel>
|
||||
|
||||
<bezel element="hlub" inputtag="board:UI" inputmask="0x100"><bounds x="1" y="11.5" width="8" height="2.5" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:UI" inputmask="0x80"><bounds x="1" y="15" width="8" height="2.5" /><color alpha="0.25" /></bezel>
|
||||
|
||||
<!-- spawn -->
|
||||
<bezel element="text_uis1"><bounds x="0" y="20.5" width="10" height="2" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="1" y="23" width="8" height="12" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="1" y="36" width="8" height="12" /></bezel>
|
||||
|
||||
<bezel name="piece_ui1" element="piece"><bounds x="1" y="23" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui2" element="piece"><bounds x="1" y="27" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui3" element="piece"><bounds x="1" y="31" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui4" element="piece"><bounds x="5" y="23" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui5" element="piece"><bounds x="5" y="27" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui6" element="piece"><bounds x="5" y="31" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui7" element="piece"><bounds x="1" y="36" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui8" element="piece"><bounds x="1" y="40" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui9" element="piece"><bounds x="1" y="44" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui10" element="piece"><bounds x="5" y="36" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui11" element="piece"><bounds x="5" y="40" width="4" height="4" /></bezel>
|
||||
<bezel name="piece_ui12" element="piece"><bounds x="5" y="44" width="4" height="4" /></bezel>
|
||||
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0001"><bounds x="1" y="23" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0002"><bounds x="1" y="27" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0004"><bounds x="1" y="31" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0008"><bounds x="5" y="23" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0010"><bounds x="5" y="27" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0020"><bounds x="5" y="31" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0040"><bounds x="1" y="36" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0080"><bounds x="1" y="40" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0100"><bounds x="1" y="44" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0200"><bounds x="5" y="36" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0400"><bounds x="5" y="40" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:SPAWN" inputmask="0x0800"><bounds x="5" y="44" width="4" height="4" /><color alpha="0.25" /></bezel>
|
||||
|
||||
<!-- hand -->
|
||||
<bezel element="text_uih1"><bounds x="0" y="51" width="10" height="2" /></bezel>
|
||||
<bezel element="cblack"><bounds x="1" y="53.5" width="8" height="6" /></bezel>
|
||||
<bezel name="piece_ui0" element="piece"><bounds x="2" y="53.5" width="6" height="6" /></bezel>
|
||||
|
||||
<bezel element="cwhite"><bounds x="1" y="60.5" width="8" height="2.5" /></bezel>
|
||||
<bezel element="text_uih2"><bounds x="1.5" y="60.75" width="7" height="2" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:UI" inputmask="0x04"><bounds x="1" y="60.5" width="8" height="2.5" /><color alpha="0.25" /></bezel>
|
||||
|
||||
<!-- undo -->
|
||||
<bezel element="text_uiu1"><bounds x="0" y="66" width="10" height="2" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="1" y="68.5" width="1.7" height="6" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="3.1" y="68.5" width="1.7" height="6" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="5.2" y="68.5" width="1.7" height="6" /></bezel>
|
||||
<bezel element="cwhite"><bounds x="7.3" y="68.5" width="1.7" height="6" /></bezel>
|
||||
<bezel element="text_uiu2a"><bounds x="1" y="69.5" width="1.7" height="4" /></bezel>
|
||||
<bezel element="text_uiu2b"><bounds x="3.1" y="69.5" width="1.7" height="4" /></bezel>
|
||||
<bezel element="text_uiu2c"><bounds x="5.2" y="69.5" width="1.7" height="4" /></bezel>
|
||||
<bezel element="text_uiu2d"><bounds x="7.3" y="69.5" width="1.7" height="4" /></bezel>
|
||||
|
||||
<bezel element="hlub" inputtag="board:UI" inputmask="0x08"><bounds x="1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:UI" inputmask="0x10"><bounds x="3.1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:UI" inputmask="0x20"><bounds x="5.2" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></bezel>
|
||||
<bezel element="hlub" inputtag="board:UI" inputmask="0x40"><bounds x="7.3" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></bezel>
|
||||
|
||||
<bezel name="count_ui0" element="text_uiu3a"><bounds x="0" y="75" width="4" height="2" /></bezel>
|
||||
<bezel name="count_ui1" element="text_uiu3c"><bounds x="6" y="75" width="4" height="2" /></bezel>
|
||||
<bezel element="text_uiu3b"><bounds x="4" y="75" width="2" height="2" /></bezel>
|
||||
</group>
|
||||
|
||||
|
||||
<!-- build screen -->
|
||||
|
||||
<view name="Internal Layout">
|
||||
<bounds left="-2" right="88" top="-2" bottom="108.8" />
|
||||
<bounds left="-14" right="88" top="-2" bottom="108.8" />
|
||||
|
||||
<bezel element="white"><bounds x="-2.5" y="-2.5" width="91" height="90.5" /></bezel>
|
||||
<bezel element="white"><bounds x="-2" y="-2" width="90" height="90" /></bezel>
|
||||
<bezel element="black"><bounds x="2" y="2" width="82" height="82" /></bezel>
|
||||
<group ref="sb_board"><bounds x="3" y="3" width="80" height="80" /></group>
|
||||
|
||||
<group ref="sb_ui"><bounds x="-13" y="3" width="10" height="80" /></group>
|
||||
|
||||
<!-- chessboard coords -->
|
||||
|
||||
@ -175,273 +459,80 @@
|
||||
<bezel element="text_g"><bounds x="67" y="85" width="2" height="2" /></bezel>
|
||||
<bezel element="text_h"><bounds x="77" y="85" width="2" height="2" /></bezel>
|
||||
|
||||
<!-- chessboard bezel -->
|
||||
|
||||
<bezel element="black"><bounds x="2" y="2" width="82" height="82" /></bezel>
|
||||
<bezel element="white"><bounds x="3" y="3" width="80" height="80" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="13" y="2.5" width="10" height="10.5" /></bezel>
|
||||
<bezel element="black"><bounds x="33" y="2.5" width="10" height="10.5" /></bezel>
|
||||
<bezel element="black"><bounds x="53" y="2.5" width="10" height="10.5" /></bezel>
|
||||
<bezel element="black"><bounds x="73" y="2.5" width="10.5" height="10.5" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="2.5" y="13" width="10.5" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="23" y="13" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="43" y="13" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="63" y="13" width="10" height="10" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="13" y="23" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="33" y="23" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="53" y="23" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="73" y="23" width="10.5" height="10" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="2.5" y="33" width="10.5" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="23" y="33" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="43" y="33" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="63" y="33" width="10" height="10" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="13" y="43" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="33" y="43" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="53" y="43" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="73" y="43" width="10.5" height="10" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="2.5" y="53" width="10.5" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="23" y="53" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="43" y="53" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="63" y="53" width="10" height="10" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="13" y="63" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="33" y="63" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="53" y="63" width="10" height="10" /></bezel>
|
||||
<bezel element="black"><bounds x="73" y="63" width="10.5" height="10" /></bezel>
|
||||
|
||||
<bezel element="black"><bounds x="2.5" y="73" width="10.5" height="10.5" /></bezel>
|
||||
<bezel element="black"><bounds x="23" y="73" width="10" height="10.5" /></bezel>
|
||||
<bezel element="black"><bounds x="43" y="73" width="10" height="10.5" /></bezel>
|
||||
<bezel element="black"><bounds x="63" y="73" width="10" height="10.5" /></bezel>
|
||||
|
||||
<!-- chessboard leds -->
|
||||
|
||||
<bezel name="0.0" element="led"><bounds x="11.3" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.0" element="led"><bounds x="21.3" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.0" element="led"><bounds x="31.3" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.0" element="led"><bounds x="41.3" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.0" element="led"><bounds x="51.3" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.0" element="led"><bounds x="61.3" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.0" element="led"><bounds x="71.3" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.0" element="led"><bounds x="81.3" y="11.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel name="0.1" element="led"><bounds x="11.3" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.1" element="led"><bounds x="21.3" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.1" element="led"><bounds x="31.3" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.1" element="led"><bounds x="41.3" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.1" element="led"><bounds x="51.3" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.1" element="led"><bounds x="61.3" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.1" element="led"><bounds x="71.3" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.1" element="led"><bounds x="81.3" y="21.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel name="0.2" element="led"><bounds x="11.3" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.2" element="led"><bounds x="21.3" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.2" element="led"><bounds x="31.3" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.2" element="led"><bounds x="41.3" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.2" element="led"><bounds x="51.3" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.2" element="led"><bounds x="61.3" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.2" element="led"><bounds x="71.3" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.2" element="led"><bounds x="81.3" y="31.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel name="0.3" element="led"><bounds x="11.3" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.3" element="led"><bounds x="21.3" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.3" element="led"><bounds x="31.3" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.3" element="led"><bounds x="41.3" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.3" element="led"><bounds x="51.3" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.3" element="led"><bounds x="61.3" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.3" element="led"><bounds x="71.3" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.3" element="led"><bounds x="81.3" y="41.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel name="0.4" element="led"><bounds x="11.3" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.4" element="led"><bounds x="21.3" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.4" element="led"><bounds x="31.3" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.4" element="led"><bounds x="41.3" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.4" element="led"><bounds x="51.3" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.4" element="led"><bounds x="61.3" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.4" element="led"><bounds x="71.3" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.4" element="led"><bounds x="81.3" y="51.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel name="0.5" element="led"><bounds x="11.3" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.5" element="led"><bounds x="21.3" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.5" element="led"><bounds x="31.3" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.5" element="led"><bounds x="41.3" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.5" element="led"><bounds x="51.3" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.5" element="led"><bounds x="61.3" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.5" element="led"><bounds x="71.3" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.5" element="led"><bounds x="81.3" y="61.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel name="0.6" element="led"><bounds x="11.3" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.6" element="led"><bounds x="21.3" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.6" element="led"><bounds x="31.3" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.6" element="led"><bounds x="41.3" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.6" element="led"><bounds x="51.3" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.6" element="led"><bounds x="61.3" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.6" element="led"><bounds x="71.3" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.6" element="led"><bounds x="81.3" y="71.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel name="0.7" element="led"><bounds x="11.3" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="1.7" element="led"><bounds x="21.3" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="2.7" element="led"><bounds x="31.3" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="3.7" element="led"><bounds x="41.3" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="4.7" element="led"><bounds x="51.3" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="5.7" element="led"><bounds x="61.3" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="6.7" element="led"><bounds x="71.3" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
<bezel name="7.7" element="led"><bounds x="81.3" y="81.3" width="1.5" height="1.5" /></bezel>
|
||||
|
||||
<!-- chessboard sensors -->
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x01"><bounds x="3" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x01"><bounds x="13" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x01"><bounds x="23" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x01"><bounds x="33" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x01"><bounds x="43" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x01"><bounds x="53" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x01"><bounds x="63" y="3" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x01"><bounds x="73" y="3" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x02"><bounds x="3" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x02"><bounds x="13" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x02"><bounds x="23" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x02"><bounds x="33" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x02"><bounds x="43" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x02"><bounds x="53" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x02"><bounds x="63" y="13" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x02"><bounds x="73" y="13" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x04"><bounds x="3" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x04"><bounds x="13" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x04"><bounds x="23" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x04"><bounds x="33" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x04"><bounds x="43" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x04"><bounds x="53" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x04"><bounds x="63" y="23" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x04"><bounds x="73" y="23" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x08"><bounds x="3" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x08"><bounds x="13" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x08"><bounds x="23" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x08"><bounds x="33" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x08"><bounds x="43" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x08"><bounds x="53" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x08"><bounds x="63" y="33" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x08"><bounds x="73" y="33" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x10"><bounds x="3" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x10"><bounds x="13" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x10"><bounds x="23" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x10"><bounds x="33" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x10"><bounds x="43" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x10"><bounds x="53" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x10"><bounds x="63" y="43" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x10"><bounds x="73" y="43" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x20"><bounds x="3" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x20"><bounds x="13" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x20"><bounds x="23" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x20"><bounds x="33" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x20"><bounds x="43" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x20"><bounds x="53" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x20"><bounds x="63" y="53" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x20"><bounds x="73" y="53" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x40"><bounds x="3" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x40"><bounds x="13" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x40"><bounds x="23" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x40"><bounds x="33" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x40"><bounds x="43" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x40"><bounds x="53" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x40"><bounds x="63" y="63" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x40"><bounds x="73" y="63" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
|
||||
<bezel element="hl" inputtag="IN.0" inputmask="0x80"><bounds x="3" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.1" inputmask="0x80"><bounds x="13" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.2" inputmask="0x80"><bounds x="23" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.3" inputmask="0x80"><bounds x="33" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.4" inputmask="0x80"><bounds x="43" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.5" inputmask="0x80"><bounds x="53" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.6" inputmask="0x80"><bounds x="63" y="73" width="10" height="10" /><color alpha="0.2" /></bezel>
|
||||
<bezel element="hl" inputtag="IN.7" inputmask="0x80"><bounds x="73" y="73" width="10" height="10" /><color alpha="0.4" /></bezel>
|
||||
|
||||
<!-- bottom side -->
|
||||
|
||||
<bezel name="9.0" element="led2"><bounds x="12.25" y="90" width="1.5" height="1.5" /></bezel>
|
||||
<bezel element="text_b1"><bounds x="7" y="91.9" width="12" height="1.8" /></bezel>
|
||||
<bezel element="butr" inputtag="IN.9" inputmask="0x01"><bounds x="10" y="94.3" width="6" height="2" /></bezel>
|
||||
<bezel element="butr" inputtag="IN.1" inputmask="0x01"><bounds x="10" y="94.3" width="6" height="2" /></bezel>
|
||||
<bezel element="text_b2"><bounds x="7" y="101.4" width="12" height="1.8" /></bezel>
|
||||
<bezel element="butr" inputtag="IN.9" inputmask="0x02"><bounds x="10" y="103.8" width="6" height="2" /></bezel>
|
||||
<bezel element="butr" inputtag="IN.1" inputmask="0x02"><bounds x="10" y="103.8" width="6" height="2" /></bezel>
|
||||
|
||||
<bezel element="white"><bounds x="20.2" y="89.2" width="7.6" height="9" /></bezel>
|
||||
<bezel element="static_black"><bounds x="20.5" y="89.5" width="7" height="8.4" /></bezel>
|
||||
<bezel element="blackb"><bounds x="20.5" y="89.5" width="7" height="8.4" /></bezel>
|
||||
<bezel name="8.1" element="led2"><bounds x="23.25" y="90" width="1.5" height="1.5" /></bezel>
|
||||
<bezel element="white"><bounds x="21" y="91.8" width="6" height="2" /></bezel>
|
||||
<bezel element="text_p1"><bounds x="21" y="91.9" width="6" height="1.5" /></bezel>
|
||||
<bezel element="butr" inputtag="IN.8" inputmask="0x02"><bounds x="21" y="94.3" width="6" height="2" /></bezel>
|
||||
<bezel element="butr" inputtag="IN.0" inputmask="0x02"><bounds x="21" y="94.3" width="6" height="2" /></bezel>
|
||||
|
||||
<bezel element="white"><bounds x="28.2" y="89.2" width="7.6" height="9" /></bezel>
|
||||
<bezel element="static_black"><bounds x="28.5" y="89.5" width="7" height="8.4" /></bezel>
|
||||
<bezel element="blackb"><bounds x="28.5" y="89.5" width="7" height="8.4" /></bezel>
|
||||
<bezel name="8.2" element="led2"><bounds x="31.25" y="90" width="1.5" height="1.5" /></bezel>
|
||||
<bezel element="white"><bounds x="29" y="91.8" width="6" height="2" /></bezel>
|
||||
<bezel element="text_p2"><bounds x="29" y="91.9" width="6" height="1.5" /></bezel>
|
||||
<bezel element="butr" inputtag="IN.8" inputmask="0x04"><bounds x="29" y="94.3" width="6" height="2" /></bezel>
|
||||
<bezel element="butr" inputtag="IN.0" inputmask="0x04"><bounds x="29" y="94.3" width="6" height="2" /></bezel>
|
||||
|
||||
<bezel element="white"><bounds x="36.2" y="89.2" width="7.6" height="9" /></bezel>
|
||||
<bezel element="static_black"><bounds x="36.5" y="89.5" width="7" height="8.4" /></bezel>
|
||||
<bezel element="blackb"><bounds x="36.5" y="89.5" width="7" height="8.4" /></bezel>
|
||||
<bezel name="8.3" element="led2"><bounds x="39.25" y="90" width="1.5" height="1.5" /></bezel>
|
||||
<bezel element="white"><bounds x="37" y="91.8" width="6" height="2" /></bezel>
|
||||
<bezel element="text_p3"><bounds x="37" y="91.9" width="6" height="1.5" /></bezel>
|
||||
<bezel element="butr" inputtag="IN.8" inputmask="0x08"><bounds x="37" y="94.3" width="6" height="2" /></bezel>
|
||||
<bezel element="butr" inputtag="IN.0" inputmask="0x08"><bounds x="37" y="94.3" width="6" height="2" /></bezel>
|
||||
|
||||
<bezel element="white"><bounds x="20.2" y="98.7" width="7.6" height="9" /></bezel>
|
||||
<bezel element="static_black"><bounds x="20.5" y="99" width="7" height="8.4" /></bezel>
|
||||
<bezel element="blackb"><bounds x="20.5" y="99" width="7" height="8.4" /></bezel>
|
||||
<bezel name="8.4" element="led2"><bounds x="23.25" y="99.5" width="1.5" height="1.5" /></bezel>
|
||||
<bezel element="white"><bounds x="21" y="101.3" width="6" height="2" /></bezel>
|
||||
<bezel element="text_p4"><bounds x="21" y="101.4" width="6" height="1.5" /></bezel>
|
||||
<bezel element="butr" inputtag="IN.8" inputmask="0x10"><bounds x="21" y="103.8" width="6" height="2" /></bezel>
|
||||
<bezel element="butr" inputtag="IN.0" inputmask="0x10"><bounds x="21" y="103.8" width="6" height="2" /></bezel>
|
||||
|
||||
<bezel element="white"><bounds x="28.2" y="98.7" width="7.6" height="9" /></bezel>
|
||||
<bezel element="static_black"><bounds x="28.5" y="99" width="7" height="8.4" /></bezel>
|
||||
<bezel element="blackb"><bounds x="28.5" y="99" width="7" height="8.4" /></bezel>
|
||||
<bezel name="8.5" element="led2"><bounds x="31.25" y="99.5" width="1.5" height="1.5" /></bezel>
|
||||
<bezel element="white"><bounds x="29" y="101.3" width="6" height="2" /></bezel>
|
||||
<bezel element="text_p5"><bounds x="29" y="101.4" width="6" height="1.5" /></bezel>
|
||||
<bezel element="butr" inputtag="IN.8" inputmask="0x20"><bounds x="29" y="103.8" width="6" height="2" /></bezel>
|
||||
<bezel element="butr" inputtag="IN.0" inputmask="0x20"><bounds x="29" y="103.8" width="6" height="2" /></bezel>
|
||||
|
||||
<bezel element="white"><bounds x="36.2" y="98.7" width="7.6" height="9" /></bezel>
|
||||
<bezel element="static_black"><bounds x="36.5" y="99" width="7" height="8.4" /></bezel>
|
||||
<bezel element="blackb"><bounds x="36.5" y="99" width="7" height="8.4" /></bezel>
|
||||
<bezel name="8.6" element="led2"><bounds x="39.25" y="99.5" width="1.5" height="1.5" /></bezel>
|
||||
<bezel element="white"><bounds x="37" y="101.3" width="6" height="2" /></bezel>
|
||||
<bezel element="text_p6"><bounds x="37" y="101.4" width="6" height="1.5" /></bezel>
|
||||
<bezel element="butr" inputtag="IN.8" inputmask="0x40"><bounds x="37" y="103.8" width="6" height="2" /></bezel>
|
||||
<bezel element="butr" inputtag="IN.0" inputmask="0x40"><bounds x="37" y="103.8" width="6" height="2" /></bezel>
|
||||
|
||||
<bezel element="white"><bounds x="46.5" y="89.2" width="7" height="9" /></bezel>
|
||||
<bezel element="static_black"><bounds x="46.8" y="89.5" width="6.4" height="8.4" /></bezel>
|
||||
<bezel element="blackb"><bounds x="46.8" y="89.5" width="6.4" height="8.4" /></bezel>
|
||||
<bezel name="8.7" element="led2"><bounds x="49.25" y="90" width="1.5" height="1.5" /></bezel>
|
||||
<bezel element="text_white"><bounds x="48" y="91.8" width="4" height="1.5" /></bezel>
|
||||
<bezel element="butd" inputtag="IN.8" inputmask="0x80"><bounds x="48.5" y="94" width="3" height="3" /></bezel>
|
||||
<bezel element="butd" inputtag="IN.0" inputmask="0x80"><bounds x="48.5" y="94" width="3" height="3" /></bezel>
|
||||
|
||||
<bezel element="white"><bounds x="46.5" y="98.7" width="7" height="9" /></bezel>
|
||||
<bezel element="static_black"><bounds x="46.8" y="99" width="6.4" height="8.4" /></bezel>
|
||||
<bezel element="blackb"><bounds x="46.8" y="99" width="6.4" height="8.4" /></bezel>
|
||||
<bezel name="8.0" element="led2"><bounds x="49.25" y="99.5" width="1.5" height="1.5" /></bezel>
|
||||
<bezel element="text_black"><bounds x="48" y="101.3" width="4" height="1.5" /></bezel>
|
||||
<bezel element="butd" inputtag="IN.8" inputmask="0x01"><bounds x="48.5" y="103.5" width="3" height="3" /></bezel>
|
||||
<bezel element="butd" inputtag="IN.0" inputmask="0x01"><bounds x="48.5" y="103.5" width="3" height="3" /></bezel>
|
||||
|
||||
<bezel element="text_b3"><bounds x="52" y="89.2" width="12" height="1.8" /></bezel>
|
||||
<bezel element="butr" inputtag="IN.9" inputmask="0x10"><bounds x="57" y="91.5" width="2" height="6" /></bezel>
|
||||
<bezel element="butr" inputtag="IN.1" inputmask="0x10"><bounds x="57" y="91.5" width="2" height="6" /></bezel>
|
||||
<bezel element="text_b4"><bounds x="60" y="89.2" width="12" height="1.8" /></bezel>
|
||||
<bezel element="butr" inputtag="IN.9" inputmask="0x80"><bounds x="65" y="91.5" width="2" height="6" /></bezel>
|
||||
<bezel element="butr" inputtag="IN.1" inputmask="0x80"><bounds x="65" y="91.5" width="2" height="6" /></bezel>
|
||||
<bezel element="text_b5"><bounds x="68" y="89.2" width="12" height="1.8" /></bezel>
|
||||
<bezel element="butr" inputtag="IN.9" inputmask="0x40"><bounds x="73" y="91.5" width="2" height="6" /></bezel>
|
||||
<bezel element="butr" inputtag="IN.1" inputmask="0x40"><bounds x="73" y="91.5" width="2" height="6" /></bezel>
|
||||
<bezel element="text_b6"><bounds x="52" y="98.7" width="12" height="1.8" /></bezel>
|
||||
<bezel element="butr" inputtag="IN.9" inputmask="0x08"><bounds x="57" y="101" width="2" height="6" /></bezel>
|
||||
<bezel element="butr" inputtag="IN.1" inputmask="0x08"><bounds x="57" y="101" width="2" height="6" /></bezel>
|
||||
<bezel element="text_b7"><bounds x="60" y="98.7" width="12" height="1.8" /></bezel>
|
||||
<bezel element="butr" inputtag="IN.9" inputmask="0x04"><bounds x="65" y="101" width="2" height="6" /></bezel>
|
||||
<bezel element="butr" inputtag="IN.1" inputmask="0x04"><bounds x="65" y="101" width="2" height="6" /></bezel>
|
||||
<bezel element="text_b8"><bounds x="68" y="98.7" width="12" height="1.8" /></bezel>
|
||||
<bezel element="butr" inputtag="IN.9" inputmask="0x20"><bounds x="73" y="101" width="2" height="6" /></bezel>
|
||||
<bezel element="butr" inputtag="IN.1" inputmask="0x20"><bounds x="73" y="101" width="2" height="6" /></bezel>
|
||||
|
||||
<bezel element="white"><bounds x="61.85" y="89.2" width="0.3" height="18.5" /></bezel>
|
||||
<bezel element="white"><bounds x="69.85" y="89.2" width="0.3" height="18.5" /></bezel>
|
||||
|
@ -218,19 +218,19 @@
|
||||
<image file="chess/wp.png" state="12"/>
|
||||
|
||||
<!-- selected pieces -->
|
||||
<image file="chess/bk.png" state="17"><color alpha="0.6" /></image>
|
||||
<image file="chess/bq.png" state="18"><color alpha="0.6" /></image>
|
||||
<image file="chess/br.png" state="19"><color alpha="0.6" /></image>
|
||||
<image file="chess/bb.png" state="20"><color alpha="0.6" /></image>
|
||||
<image file="chess/bn.png" state="21"><color alpha="0.6" /></image>
|
||||
<image file="chess/bp.png" state="22"><color alpha="0.6" /></image>
|
||||
<image file="chess/bk.png" state="17"><color alpha="0.5" /></image>
|
||||
<image file="chess/bq.png" state="18"><color alpha="0.5" /></image>
|
||||
<image file="chess/br.png" state="19"><color alpha="0.5" /></image>
|
||||
<image file="chess/bb.png" state="20"><color alpha="0.5" /></image>
|
||||
<image file="chess/bn.png" state="21"><color alpha="0.5" /></image>
|
||||
<image file="chess/bp.png" state="22"><color alpha="0.5" /></image>
|
||||
|
||||
<image file="chess/wk.png" state="23"><color alpha="0.6" /></image>
|
||||
<image file="chess/wq.png" state="24"><color alpha="0.6" /></image>
|
||||
<image file="chess/wr.png" state="25"><color alpha="0.6" /></image>
|
||||
<image file="chess/wb.png" state="26"><color alpha="0.6" /></image>
|
||||
<image file="chess/wn.png" state="27"><color alpha="0.6" /></image>
|
||||
<image file="chess/wp.png" state="28"><color alpha="0.6" /></image>
|
||||
<image file="chess/wk.png" state="23"><color alpha="0.5" /></image>
|
||||
<image file="chess/wq.png" state="24"><color alpha="0.5" /></image>
|
||||
<image file="chess/wr.png" state="25"><color alpha="0.5" /></image>
|
||||
<image file="chess/wb.png" state="26"><color alpha="0.5" /></image>
|
||||
<image file="chess/wn.png" state="27"><color alpha="0.5" /></image>
|
||||
<image file="chess/wp.png" state="28"><color alpha="0.5" /></image>
|
||||
</element>
|
||||
|
||||
<!-- build screen -->
|
||||
|
Loading…
Reference in New Issue
Block a user