summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2020-07-18 17:11:06 +0200
committer hap <happppp@users.noreply.github.com>2020-07-18 17:11:20 +0200
commitb1587d4a5f01f65a50bfd1397ef537ea17069414 (patch)
treec4368525ae87b60624d5611ecbb8fa48f9074e1d
parentbcd68bc7a1c6a795739784739d2b8e23206e12cd (diff)
New working machines
-------------------- Chess Companion [hap, Berger, Achim]
-rw-r--r--scripts/target/mame/mess.lua1
-rw-r--r--src/devices/machine/mm74c922.cpp5
-rw-r--r--src/devices/machine/mm74c922.h2
-rw-r--r--src/mame/drivers/avrmax.cpp6
-rw-r--r--src/mame/drivers/fidel_csc.cpp11
-rw-r--r--src/mame/drivers/novag_micro.cpp23
-rw-r--r--src/mame/drivers/saitek_ccompan.cpp236
-rw-r--r--src/mame/drivers/saitek_intchess.cpp1
-rw-r--r--src/mame/layout/novag_micro.lay8
-rw-r--r--src/mame/layout/saitek_ccompan.lay627
-rw-r--r--src/mame/layout/saitek_intchess.lay19
-rw-r--r--src/mame/layout/saitek_schess.lay83
-rw-r--r--src/mame/mame.lst3
-rw-r--r--src/mame/mess.flt1
14 files changed, 972 insertions, 54 deletions
diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua
index d499acfa80e..f0601460e05 100644
--- a/scripts/target/mame/mess.lua
+++ b/scripts/target/mame/mess.lua
@@ -3377,6 +3377,7 @@ files {
createMESSProjects(_target, _subtarget, "saitek")
files {
+ MAME_DIR .. "src/mame/drivers/saitek_ccompan.cpp",
MAME_DIR .. "src/mame/drivers/saitek_chesstrv.cpp",
MAME_DIR .. "src/mame/drivers/saitek_cp2000.cpp",
MAME_DIR .. "src/mame/drivers/saitek_delta1.cpp",
diff --git a/src/devices/machine/mm74c922.cpp b/src/devices/machine/mm74c922.cpp
index a229b01a232..e9f3c9704ac 100644
--- a/src/devices/machine/mm74c922.cpp
+++ b/src/devices/machine/mm74c922.cpp
@@ -34,7 +34,7 @@ DEFINE_DEVICE_TYPE(MM74C923, mm74c923_device, "mm74c923", "MM74C923 20-Key Encod
mm74c922_device::mm74c922_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int max_y) :
device_t(mconfig, type, tag, owner, clock),
- m_write_da(*this), m_read_x(*this),
+ m_write_da(*this), m_read_x(*this), m_tristate_data(*this),
m_cap_osc(0), m_cap_debounce(0),
m_max_y(max_y),
m_inhibit(false),
@@ -66,6 +66,7 @@ void mm74c922_device::device_start()
// resolve callbacks
m_write_da.resolve_safe();
m_read_x.resolve_all_safe((1 << m_max_y) - 1);
+ m_tristate_data.resolve_safe((1 << m_max_y) - 1);
// set initial values
change_output_lines();
@@ -163,7 +164,7 @@ void mm74c922_device::detect_keypress()
// key released
m_inhibit = false;
m_next_da = false;
- m_next_data = (1 << m_max_y) - 1; // high-Z
+ m_next_data = m_tristate_data(); // high-Z
LOG("MM74C922 Key Released\n");
}
diff --git a/src/devices/machine/mm74c922.h b/src/devices/machine/mm74c922.h
index 01ada83c743..fd70c7871ae 100644
--- a/src/devices/machine/mm74c922.h
+++ b/src/devices/machine/mm74c922.h
@@ -56,6 +56,7 @@ public:
auto x2_rd_callback() { return m_read_x[1].bind(); }
auto x3_rd_callback() { return m_read_x[2].bind(); }
auto x4_rd_callback() { return m_read_x[3].bind(); }
+ auto data_tri_callback() { return m_tristate_data.bind(); }
uint8_t read();
@@ -75,6 +76,7 @@ private:
devcb_write_line m_write_da;
devcb_read8::array<4> m_read_x;
+ devcb_read8 m_tristate_data;
double m_cap_osc;
double m_cap_debounce;
diff --git a/src/mame/drivers/avrmax.cpp b/src/mame/drivers/avrmax.cpp
index bb46a96a3cc..10937b2b734 100644
--- a/src/mame/drivers/avrmax.cpp
+++ b/src/mame/drivers/avrmax.cpp
@@ -106,7 +106,7 @@ u8 avrmax_state::input_r()
{
u8 data = 0;
- // PB0-PB3: multiplexed inputs
+ // PB0-PB2: multiplexed inputs
for (int i = 0; i < 4; i++)
if (BIT(m_inp_mux, i))
data |= m_inputs[i]->read();
@@ -231,5 +231,5 @@ ROM_END
******************************************************************************/
// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
-CONS( 2009, avrmax, 0, 0, avrmax, avrmax, avrmax_state, empty_init, "Elektor", "AVR-Max Chess Computer", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_NO_SOUND_HW )
-CONS( 2009, avrmaxg, avrmax, 0, avrmax, avrmax, avrmax_state, empty_init, "Elektor", "AVR-Max-Schachzwerg", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_NO_SOUND_HW ) // German 'text'
+CONS( 2009, avrmax, 0, 0, avrmax, avrmax, avrmax_state, empty_init, "Elektor", "AVR-Max Chess Computer (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_NO_SOUND_HW )
+CONS( 2009, avrmaxg, avrmax, 0, avrmax, avrmax, avrmax_state, empty_init, "Elektor", "AVR-Max-Schachzwerg (German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_NO_SOUND_HW ) // German 'text'
diff --git a/src/mame/drivers/fidel_csc.cpp b/src/mame/drivers/fidel_csc.cpp
index eb707d0ff7f..6ad4d739336 100644
--- a/src/mame/drivers/fidel_csc.cpp
+++ b/src/mame/drivers/fidel_csc.cpp
@@ -12,6 +12,8 @@ Fidelity CSC(and derived) hardware
TODO:
- dump/add original csce
- hook up csce I/O properly, it doesn't have PIAs
+- IRQ Tlow duration, on csc it was measured and turned out to be 73.425us
+ but that's too long csce and super9cc
*******************************************************************************
@@ -25,17 +27,17 @@ Memory map:
0800-0FFF: 1K of RAM (note: mirrored twice)
1000-17FF: PIA 1 (display, TSI speech chip)
1800-1FFF: PIA 0 (keypad, LEDs)
-2000-3FFF: 101-64019 ROM*
+2000-3FFF: 101-64019 or 101-1025A04 ROM*
4000-7FFF: mirror of 0000-3FFF
8000-9FFF: not used
-A000-BFFF: 101-1025A03 ROM
+A000-BFFF: 101-1025A03 ROM (A12 tied high)
C000-DFFF: 101-1025A02 ROM
E000-FDFF: 101-1025A01 ROM
FE00-FFFF: 512 byte 74S474 PROM
*: 101-64019 is also used on the VSC(fidel_vsc.cpp). It contains the opening book
and "64 greatest games", as well as some Z80 code. Obviously the latter is unused
-on the CSC.
+on the CSC. Also seen with 101-1025A04 label, same ROM contents.
CPU is a 6502 running at 1.95MHz (3.9MHz resonator, divided by 2)
@@ -516,7 +518,8 @@ void csc_state::csc_map(address_map &map)
map(0x1000, 0x1003).mirror(0x47fc).rw(m_pia[1], FUNC(pia6821_device::read), FUNC(pia6821_device::write));
map(0x1800, 0x1803).mirror(0x47fc).rw(m_pia[0], FUNC(pia6821_device::read), FUNC(pia6821_device::write));
map(0x2000, 0x3fff).mirror(0x4000).rom();
- map(0xa000, 0xffff).rom();
+ map(0xa000, 0xafff).rom().region("maincpu", 0xb000);
+ map(0xb000, 0xffff).rom();
}
void csc_state::su9_map(address_map &map)
diff --git a/src/mame/drivers/novag_micro.cpp b/src/mame/drivers/novag_micro.cpp
index 67ab1062e8c..696d44603f0 100644
--- a/src/mame/drivers/novag_micro.cpp
+++ b/src/mame/drivers/novag_micro.cpp
@@ -12,7 +12,7 @@ Hardware notes:
- Mostek 3875/42 (4KB ROM, 64 bytes extra RAM)
- buzzer, button sensors chessboard, 16+4 leds
-MCU interrupts are unused. Its embedded extra RAM is battery-backed via MEM
+MCU interrupts are unused. MCU embedded extra RAM is battery-backed via MEM
switch tied to pin #4 (VSB: RAM standby power).
******************************************************************************/
@@ -109,18 +109,19 @@ u8 micro_state::input_r()
u8 data = 0;
// P10-P17: multiplexed inputs
- // read buttons
- if (m_control & 0x10)
- data |= m_inputs->read();
-
// read chessboard
u8 cb_mux = (m_inp_mux & 0xfc) | (m_control >> 5 & 3);
cb_mux = bitswap<8>(cb_mux,4,5,6,7,1,0,3,2);
+
for (int i = 0; i < 8; i++)
if (BIT(cb_mux, i))
- data |= m_board->read_file(i);
+ data |= bitswap<8>(m_board->read_file(i),4,5,6,7,3,2,1,0);
+
+ // read buttons
+ if (m_control & 0x10)
+ data |= m_inputs->read();
- return bitswap<8>(data,4,5,6,7,3,2,1,0);
+ return data;
}
void micro_state::control_w(u8 data)
@@ -182,10 +183,10 @@ static INPUT_PORTS_START( micro )
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("Sound / Queen")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("Take Back / King")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Go")
- PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("New Game / Knight")
- PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("Set Up / Rook")
- PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("Verify / Pawn")
- PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("B/W")
+ PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("B/W")
+ PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("Verify / Pawn")
+ PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("Set Up / Rook")
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("New Game / Knight")
INPUT_PORTS_END
diff --git a/src/mame/drivers/saitek_ccompan.cpp b/src/mame/drivers/saitek_ccompan.cpp
new file mode 100644
index 00000000000..7bb0a60e814
--- /dev/null
+++ b/src/mame/drivers/saitek_ccompan.cpp
@@ -0,0 +1,236 @@
+// license:BSD-3-Clause
+// copyright-holders:hap
+// thanks-to:Berger
+/******************************************************************************
+
+SciSys Chess Companion
+
+The 1st one (this) has a 6504, the 'sequels' II and III have a 6301.
+Not to be confused with Kasparov Chess Companion.
+
+Hardware notes:
+- PCB label: SciSys Y01 A
+- Synertek 6504 @ ~1MHz
+- Synertek SY6520/SY6820 PIA
+- 4KB ROM (2332N, chip manufacturer unknown)
+- 1KB RAM (2*HM472114P-4)
+- beeper, button sensors chessboard, 16+12 leds
+
+******************************************************************************/
+
+#include "emu.h"
+
+#include "cpu/m6502/m6504.h"
+#include "machine/6821pia.h"
+#include "machine/sensorboard.h"
+#include "sound/dac.h"
+#include "sound/volt_reg.h"
+#include "video/pwm.h"
+
+#include "speaker.h"
+
+// internal artwork
+#include "saitek_ccompan.lh" // clickable
+
+
+namespace {
+
+class ccompan_state : public driver_device
+{
+public:
+ ccompan_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_pia(*this, "pia"),
+ m_board(*this, "board"),
+ m_display(*this, "display"),
+ m_dac(*this, "dac"),
+ m_inputs(*this, "IN.%u", 0)
+ { }
+
+ void ccompan(machine_config &config);
+
+protected:
+ virtual void machine_start() override;
+
+private:
+ // devices/pointers
+ required_device<cpu_device> m_maincpu;
+ required_device<pia6821_device> m_pia;
+ required_device<sensorboard_device> m_board;
+ required_device<pwm_display_device> m_display;
+ required_device<dac_bit_interface> m_dac;
+ required_ioport_array<2> m_inputs;
+
+ // address maps
+ void main_map(address_map &map);
+
+ // I/O handlers
+ void update_display();
+ void control_w(u8 data);
+ u8 input_r();
+ void sled_w(int state);
+ void cled_w(int state);
+
+ u8 m_inp_mux = 0;
+ u8 m_led_data = 0;
+ u8 m_led_direct = 0;
+};
+
+void ccompan_state::machine_start()
+{
+ // register for savestates
+ save_item(NAME(m_inp_mux));
+ save_item(NAME(m_led_data));
+ save_item(NAME(m_led_direct));
+}
+
+
+
+/******************************************************************************
+ I/O
+******************************************************************************/
+
+void ccompan_state::update_display()
+{
+ m_display->matrix((1 << m_inp_mux & 0x3ff) | (m_led_direct << 10), m_led_data);
+}
+
+void ccompan_state::sled_w(int state)
+{
+ // CA2: "sides swapped" led
+ m_led_direct = (m_led_direct & ~2) | (state ? 2 : 0);
+ update_display();
+}
+
+void ccompan_state::cled_w(int state)
+{
+ // CB2: "color" led
+ m_led_direct = (m_led_direct & ~1) | (state ? 1 : 0);
+ update_display();
+}
+
+void ccompan_state::control_w(u8 data)
+{
+ // PB0-PB3: input mux, led select
+ m_inp_mux = data & 0xf;
+
+ // PB4-PB6: led data
+ m_led_data = ~data >> 4 & 7;
+ update_display();
+
+ // PB7: speaker out
+ m_dac->write(BIT(data, 7));
+}
+
+u8 ccompan_state::input_r()
+{
+ u8 data = 0;
+
+ // PA0-PA7: multiplexed inputs
+ // read chessboard sensors
+ if (m_inp_mux < 8)
+ data = m_board->read_file(m_inp_mux);
+
+ // read other buttons
+ else if (m_inp_mux < 10)
+ data = m_inputs[m_inp_mux - 8]->read();
+
+ return ~data;
+}
+
+
+
+/******************************************************************************
+ Address Maps
+******************************************************************************/
+
+void ccompan_state::main_map(address_map &map)
+{
+ map.global_mask(0x1fff);
+ map(0x0000, 0x03ff).ram();
+ map(0x0800, 0x0803).rw(m_pia, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
+ map(0x1000, 0x1fff).rom();
+}
+
+
+
+/******************************************************************************
+ Input Ports
+******************************************************************************/
+
+static INPUT_PORTS_START( ccompan )
+ PORT_START("IN.0")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("Pawn")
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("Knight")
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("Bishop")
+ PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("Queen")
+ PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("King")
+ PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_NAME("Swap Sides")
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_C) PORT_NAME("Color")
+
+ PORT_START("IN.1")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_N) PORT_NAME("New Game")
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("Rook")
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_O) PORT_NAME("Play")
+ PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_NAME("Clear Board")
+ PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("Take Back")
+ PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_M) PORT_NAME("Multi Move")
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_L) PORT_NAME("Change Level")
+INPUT_PORTS_END
+
+
+
+/******************************************************************************
+ Machine Configs
+******************************************************************************/
+
+void ccompan_state::ccompan(machine_config &config)
+{
+ /* basic machine hardware */
+ M6504(config, m_maincpu, 1000000); // approximation, no XTAL
+ m_maincpu->set_addrmap(AS_PROGRAM, &ccompan_state::main_map);
+
+ PIA6821(config, m_pia, 0);
+ m_pia->readpa_handler().set(FUNC(ccompan_state::input_r));
+ m_pia->writepb_handler().set(FUNC(ccompan_state::control_w));
+ m_pia->ca2_handler().set(FUNC(ccompan_state::sled_w));
+ m_pia->cb2_handler().set(FUNC(ccompan_state::cled_w));
+
+ SENSORBOARD(config, m_board).set_type(sensorboard_device::BUTTONS);
+ m_board->init_cb().set(m_board, FUNC(sensorboard_device::preset_chess));
+ m_board->set_delay(attotime::from_msec(150));
+
+ /* video hardware */
+ PWM_DISPLAY(config, m_display).set_size(10+2, 3);
+ config.set_default_layout(layout_saitek_ccompan);
+
+ /* sound hardware */
+ SPEAKER(config, "speaker").front_center();
+ DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
+ VOLTAGE_REGULATOR(config, "vref").add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
+}
+
+
+
+/******************************************************************************
+ ROM Definitions
+******************************************************************************/
+
+ROM_START( ccompan )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD("2332n_y01a", 0x1000, 0x1000, CRC(a715d51c) SHA1(3e1bd9dc119c914b502f1433ee2d6ce3f477b99a) ) // 2332
+ROM_END
+
+} // anonymous namespace
+
+
+
+/******************************************************************************
+ Drivers
+******************************************************************************/
+
+// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
+CONS( 1982, ccompan, 0, 0, ccompan, ccompan, ccompan_state, empty_init, "SciSys", "Chess Companion", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
diff --git a/src/mame/drivers/saitek_intchess.cpp b/src/mame/drivers/saitek_intchess.cpp
index 93f1a0bbf97..c49b4a4f3f1 100644
--- a/src/mame/drivers/saitek_intchess.cpp
+++ b/src/mame/drivers/saitek_intchess.cpp
@@ -317,6 +317,7 @@ void intchess_state::intchess(machine_config &config)
m_encoder->x2_rd_callback().set_ioport("X2");
m_encoder->x3_rd_callback().set_ioport("X3");
m_encoder->x4_rd_callback().set_ioport("X4");
+ m_encoder->data_tri_callback().set(m_encoder, FUNC(mm74c923_device::read));
// video hardware
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
diff --git a/src/mame/layout/novag_micro.lay b/src/mame/layout/novag_micro.lay
index 62795b06b11..3e7a9f57953 100644
--- a/src/mame/layout/novag_micro.lay
+++ b/src/mame/layout/novag_micro.lay
@@ -476,10 +476,10 @@ license:CC0
<element ref="white2"><bounds x="64.9" y="95.4" width="6.2" height="2.7" /></element>
<element ref="white2"><bounds x="74.9" y="95.4" width="6.2" height="2.7" /></element>
- <element ref="button" blend="multiply" inputtag="IN.0" inputmask="0x80"><bounds x="4.5" y="95" width="7" height="3.5" /></element>
- <element ref="button" blend="multiply" inputtag="IN.0" inputmask="0x40"><bounds x="14.5" y="95" width="7" height="3.5" /></element>
- <element ref="button" blend="multiply" inputtag="IN.0" inputmask="0x20"><bounds x="24.5" y="95" width="7" height="3.5" /></element>
- <element ref="button" blend="multiply" inputtag="IN.0" inputmask="0x10"><bounds x="34.5" y="95" width="7" height="3.5" /></element>
+ <element ref="button" blend="multiply" inputtag="IN.0" inputmask="0x10"><bounds x="4.5" y="95" width="7" height="3.5" /></element>
+ <element ref="button" blend="multiply" inputtag="IN.0" inputmask="0x20"><bounds x="14.5" y="95" width="7" height="3.5" /></element>
+ <element ref="button" blend="multiply" inputtag="IN.0" inputmask="0x40"><bounds x="24.5" y="95" width="7" height="3.5" /></element>
+ <element ref="button" blend="multiply" inputtag="IN.0" inputmask="0x80"><bounds x="34.5" y="95" width="7" height="3.5" /></element>
<element ref="button" blend="multiply" inputtag="IN.0" inputmask="0x01"><bounds x="44.5" y="95" width="7" height="3.5" /></element>
<element ref="button" blend="multiply" inputtag="IN.0" inputmask="0x02"><bounds x="54.5" y="95" width="7" height="3.5" /></element>
<element ref="button" blend="multiply" inputtag="IN.0" inputmask="0x04"><bounds x="64.5" y="95" width="7" height="3.5" /></element>
diff --git a/src/mame/layout/saitek_ccompan.lay b/src/mame/layout/saitek_ccompan.lay
new file mode 100644
index 00000000000..983fc42abb9
--- /dev/null
+++ b/src/mame/layout/saitek_ccompan.lay
@@ -0,0 +1,627 @@
+<?xml version="1.0"?>
+<!--
+license:CC0
+-->
+<mamelayout version="2">
+
+<!-- define elements -->
+
+ <element name="black"><rect><color red="0" green="0" blue="0" /></rect></element>
+ <element name="black2"><rect><color red="0.18" green="0.17" blue="0.17" /></rect></element>
+ <element name="white"><rect><color red="1" green="1" blue="1" /></rect></element>
+
+ <element name="hl" defstate="0">
+ <rect state="0"><color red="1" green="1" blue="1" /></rect>
+ <rect state="1"><color red="0.86" green="0.86" blue="0.86" /></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.2" green="0.02" blue="0.03" /></disk>
+ </element>
+
+ <element name="text_1">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="1"><color red="0.15" green="0.14" blue="0.14" /></text>
+ </element>
+ <element name="text_2">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="2"><color red="0.15" green="0.14" blue="0.14" /></text>
+ </element>
+ <element name="text_3">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="3"><color red="0.15" green="0.14" blue="0.14" /></text>
+ </element>
+ <element name="text_4">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="4"><color red="0.15" green="0.14" blue="0.14" /></text>
+ </element>
+ <element name="text_5">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="5"><color red="0.15" green="0.14" blue="0.14" /></text>
+ </element>
+ <element name="text_6">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="6"><color red="0.15" green="0.14" blue="0.14" /></text>
+ </element>
+ <element name="text_7">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="7"><color red="0.15" green="0.14" blue="0.14" /></text>
+ </element>
+ <element name="text_8">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="8"><color red="0.15" green="0.14" blue="0.14" /></text>
+ </element>
+
+ <element name="text_a">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="A"><color red="0.15" green="0.14" blue="0.14" /></text>
+ </element>
+ <element name="text_b">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="B"><color red="0.15" green="0.14" blue="0.14" /></text>
+ </element>
+ <element name="text_c">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="C"><color red="0.15" green="0.14" blue="0.14" /></text>
+ </element>
+ <element name="text_d">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="D"><color red="0.15" green="0.14" blue="0.14" /></text>
+ </element>
+ <element name="text_e">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="E"><color red="0.15" green="0.14" blue="0.14" /></text>
+ </element>
+ <element name="text_f">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="F"><color red="0.15" green="0.14" blue="0.14" /></text>
+ </element>
+ <element name="text_g">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="G"><color red="0.15" green="0.14" blue="0.14" /></text>
+ </element>
+ <element name="text_h">
+ <rect><color red="0.81" green="0.8" blue="0.79" /></rect>
+ <text string="H"><color red="0.15" green="0.14" blue="0.14" /></text>
+ </element>
+
+ <element name="text_l1">
+ <rect><color red="1" green="1" blue="1" /></rect>
+ <text string="COLOR" align="1"><color red="0.12" green="0.12" blue="0.12" /></text>
+ </element>
+ <element name="text_l2">
+ <rect><color red="1" green="1" blue="1" /></rect>
+ <text string="SIDES SWAPPED" align="1"><color red="0.12" green="0.12" blue="0.12" /></text>
+ </element>
+ <element name="text_l3">
+ <rect><color red="1" green="1" blue="1" /></rect>
+ <text string="MULTI MOVE" align="1"><color red="0.12" green="0.12" blue="0.12" /></text>
+ </element>
+ <element name="text_l4">
+ <rect><color red="1" green="1" blue="1" /></rect>
+ <text string="COMPUTING" align="1"><color red="0.12" green="0.12" blue="0.12" /></text>
+ </element>
+ <element name="text_l5">
+ <rect><color red="1" green="1" blue="1" /></rect>
+ <text string="CHECK" align="1"><color red="0.12" green="0.12" blue="0.12" /></text>
+ </element>
+ <element name="text_l6">
+ <rect><color red="1" green="1" blue="1" /></rect>
+ <text string="MATE" align="1"><color red="0.12" green="0.12" blue="0.12" /></text>
+ </element>
+
+ <element name="text_b1a">
+ <rect><color red="1" green="1" blue="1" /></rect>
+ <text string="CHANGE"><color red="0.12" green="0.12" blue="0.12" /></text>
+ </element>
+ <element name="text_b1b">
+ <rect><color red="1" green="1" blue="1" /></rect>
+ <text string="LEVEL"><color red="0.12" green="0.12" blue="0.12" /></text>
+ </element>
+ <element name="text_b2a">
+ <rect><color red="1" green="1" blue="1" /></rect>
+ <text string="MULTI"><color red="0.12" green="0.12" blue="0.12" /></text>
+ </element>
+ <element name="text_b2b">
+ <rect><color red="1" green="1" blue="1" /></rect>
+ <text string="MOVE"><color red="0.12" green="0.12" blue="0.12" /></text>
+ </element>
+ <element name="text_b3a">
+ <rect><color red="1" green="1" blue="1" /></rect>
+ <text string="TAKE"><color red="0.12" green="0.12" blue="0.12" /></text>
+ </element>
+ <element name="text_b3b">
+ <rect><color red="1" green="1" blue="1" /></rect>
+ <text string="BACK"><color red="0.12" green="0.12" blue="0.12" /></text>
+ </element>
+ <element name="text_b4b">
+ <rect><color red="1" green="1" blue="1" /></rect>
+ <text string="PLAY"><color red="0.12" green="0.12" blue="0.12" /></text>
+ </element>
+ <element name="text_b5b">
+ <rect><color red="1" green="1" blue="1" /></rect>
+ <text string="COLOR"><color red="0.12" green="0.12" blue="0.12" /></text>
+ </element>
+ <element name="text_b6a">
+ <rect><color red="1" green="1" blue="1" /></rect>
+ <text string="SWAP"><color red="0.12" green="0.12" blue="0.12" /></text>
+ </element>
+ <element name="text_b6b">
+ <rect><color red="1" green="1" blue="1" /></rect>
+ <text string="SIDES"><color red="0.12" green="0.12" blue="0.12" /></text>
+ </element>
+ <element name="text_b7a">
+ <rect><color red="1" green="1" blue="1" /></rect>
+ <text string="CLEAR"><color red="0.12" green="0.12" blue="0.12" /></text>
+ </element>
+ <element name="text_b7b">
+ <rect><color red="1" green="1" blue="1" /></rect>
+ <text string="BOARD"><color red="0.12" green="0.12" blue="0.12" /></text>
+ </element>
+ <element name="text_b8a">
+ <rect><color red="1" green="1" blue="1" /></rect>
+ <text string="NEW"><color red="0.12" green="0.12" blue="0.12" /></text>
+ </element>
+ <element name="text_b8b">
+ <rect><color red="1" green="1" blue="1" /></rect>
+ <text string="GAME"><color red="0.12" green="0.12" blue="0.12" /></text>
+ </element>
+
+ <element name="text_p1"><image file="chess/bk.png"/></element>
+ <element name="text_p2"><image file="chess/bq.png"/></element>
+ <element name="text_p3"><image file="chess/br.png"/></element>
+ <element name="text_p4"><image file="chess/bb.png"/></element>
+ <element name="text_p5"><image file="chess/bn.png"/></element>
+ <element name="text_p6"><image file="chess/bp.png"/></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.04" /></bezel>
+ <bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x02"><bounds x="10" y="~y~" width="10" height="10" /><color alpha="0.04" /></bezel>
+ <bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x04"><bounds x="20" y="~y~" width="10" height="10" /><color alpha="0.04" /></bezel>
+ <bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x08"><bounds x="30" y="~y~" width="10" height="10" /><color alpha="0.04" /></bezel>
+ <bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x10"><bounds x="40" y="~y~" width="10" height="10" /><color alpha="0.04" /></bezel>
+ <bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x20"><bounds x="50" y="~y~" width="10" height="10" /><color alpha="0.04" /></bezel>
+ <bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x40"><bounds x="60" y="~y~" width="10" height="10" /><color alpha="0.04" /></bezel>
+ <bezel element="hlbb" inputtag="board:RANK.~i~" inputmask="0x80"><bounds x="70" y="~y~" width="10" height="10" /><color alpha="0.04" /></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=" &lt;&lt;"><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=" &lt; "><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=" &gt;"><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=" &gt;&gt;"><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="0x200"><bounds x="1" y="11.5" width="8" height="2.5" /><color alpha="0.25" /></bezel>
+ <bezel element="hlub" inputtag="board:UI" inputmask="0x100"><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="0x08"><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="0x10"><bounds x="1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></bezel>
+ <bezel element="hlub" inputtag="board:UI" inputmask="0x20"><bounds x="3.1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></bezel>
+ <bezel element="hlub" inputtag="board:UI" inputmask="0x40"><bounds x="5.2" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></bezel>
+ <bezel element="hlub" inputtag="board:UI" inputmask="0x80"><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>
+
+
+<!-- right side panel -->
+
+ <group name="panel">
+ <bounds x="87" y="5" width="31" height="59" />
+ <element ref="white"><bounds x="87" y="5" width="31" height="59" /></element>
+
+ <element ref="text_p1"><bounds x="112.7" y="9.25" width="2.8" height="2.8" /></element>
+ <element ref="text_p2"><bounds x="112.7" y="12.25" width="2.8" height="2.8" /></element>
+ <element ref="text_p3"><bounds x="112.7" y="15.25" width="2.8" height="2.8" /></element>
+ <element ref="text_p4"><bounds x="112.7" y="18.25" width="2.8" height="2.8" /></element>
+ <element ref="text_p5"><bounds x="112.7" y="21.25" width="2.8" height="2.8" /></element>
+ <element ref="text_p6"><bounds x="112.7" y="24.25" width="2.8" height="2.8" /></element>
+
+ <element ref="black"><bounds x="88.7" y="9.1" width="27.6" height="0.3" /></element>
+ <element ref="black"><bounds x="88.7" y="12.1" width="27.6" height="0.3" /></element>
+ <element ref="black"><bounds x="88.7" y="15.1" width="27.6" height="0.3" /></element>
+ <element ref="black"><bounds x="88.7" y="18.1" width="27.6" height="0.3" /></element>
+ <element ref="black"><bounds x="88.7" y="21.1" width="27.6" height="0.3" /></element>
+ <element ref="black"><bounds x="88.7" y="24.1" width="27.6" height="0.3" /></element>
+ <element ref="black"><bounds x="88.7" y="27.1" width="27.6" height="0.3" /></element>
+ <element ref="white"><bounds x="101.3" y="8" width="2.4" height="25" /></element>
+
+ <element ref="black"><bounds x="88.7" y="29.7" width="5.1" height="5.6" /></element>
+ <element ref="black"><bounds x="96.2" y="29.7" width="5.1" height="5.6" /></element>
+ <element ref="black"><bounds x="103.7" y="29.7" width="5.1" height="5.6" /></element>
+ <element ref="black"><bounds x="111.0" y="29.5" width="5.5" height="6.0" /></element>
+ <element ref="black"><bounds x="88.7" y="37.7" width="5.1" height="5.6" /></element>
+ <element ref="black"><bounds x="96.2" y="37.7" width="5.1" height="5.6" /></element>
+ <element ref="black"><bounds x="103.7" y="37.7" width="5.1" height="5.6" /></element>
+ <element ref="black"><bounds x="111.0" y="37.5" width="5.5" height="6.0" /></element>
+
+ <element ref="black"><bounds x="88.7" y="45.7" width="7.6" height="5.6" /></element>
+ <element ref="black"><bounds x="98.7" y="45.7" width="7.6" height="5.6" /></element>
+ <element ref="black"><bounds x="108.7" y="45.7" width="7.6" height="5.6" /></element>
+ <element ref="black"><bounds x="88.7" y="53.7" width="7.6" height="5.6" /></element>
+ <element ref="black"><bounds x="98.7" y="53.7" width="7.6" height="5.6" /></element>
+ <element ref="black"><bounds x="108.7" y="53.7" width="7.6" height="5.6" /></element>
+
+ <element ref="white"><bounds x="89.0" y="30" width="4.5" height="5" /></element>
+ <element ref="white"><bounds x="96.5" y="30" width="4.5" height="5" /></element>
+ <element ref="white"><bounds x="104.0" y="30" width="4.5" height="5" /></element>
+ <element ref="white"><bounds x="111.5" y="30" width="4.5" height="5" /></element>
+ <element ref="white"><bounds x="89.0" y="38" width="4.5" height="5" /></element>
+ <element ref="white"><bounds x="96.5" y="38" width="4.5" height="5" /></element>
+ <element ref="white"><bounds x="104.0" y="38" width="4.5" height="5" /></element>
+ <element ref="white"><bounds x="111.5" y="38" width="4.5" height="5" /></element>
+
+ <element ref="white"><bounds x="89" y="46" width="7" height="5" /></element>
+ <element ref="white"><bounds x="99" y="46" width="7" height="5" /></element>
+ <element ref="white"><bounds x="109" y="46" width="7" height="5" /></element>
+ <element ref="white"><bounds x="89" y="54" width="7" height="5" /></element>
+ <element ref="white"><bounds x="99" y="54" width="7" height="5" /></element>
+ <element ref="white"><bounds x="109" y="54" width="7" height="5" /></element>
+
+ <element ref="text_p1"><bounds x="91.1" y="47" width="2.8" height="2.8" /></element>
+ <element ref="text_p2"><bounds x="101.1" y="47" width="2.8" height="2.8" /></element>
+ <element ref="text_p3"><bounds x="111.1" y="47" width="2.8" height="2.8" /></element>
+ <element ref="text_p4"><bounds x="91.1" y="55" width="2.8" height="2.8" /></element>
+ <element ref="text_p5"><bounds x="101.1" y="55" width="2.8" height="2.8" /></element>
+ <element ref="text_p6"><bounds x="111.1" y="55" width="2.8" height="2.8" /></element>
+
+ <element ref="black2" blend="add"><bounds x="87" y="5" width="31" height="59" /></element>
+
+ <element ref="text_l1"><bounds x="92.3" y="10.1" width="10" height="1.3" /></element>
+ <element ref="text_l2"><bounds x="92.3" y="13.1" width="10" height="1.3" /></element>
+ <element ref="text_l3"><bounds x="92.3" y="16.1" width="10" height="1.3" /></element>
+ <element ref="text_l4"><bounds x="92.3" y="19.1" width="10" height="1.3" /></element>
+ <element ref="text_l5"><bounds x="92.3" y="22.1" width="10" height="1.3" /></element>
+ <element ref="text_l6"><bounds x="92.3" y="25.1" width="10" height="1.3" /></element>
+
+ <element ref="text_b1a"><bounds x="89.0" y="32.2" width="4.5" height="1.3" /></element>
+ <element ref="text_b1b"><bounds x="89.0" y="33.4" width="4.5" height="1.3" /></element>
+ <element ref="text_b2a"><bounds x="96.5" y="32.2" width="4.5" height="1.3" /></element>
+ <element ref="text_b2b"><bounds x="96.5" y="33.4" width="4.5" height="1.3" /></element>
+ <element ref="text_b3a"><bounds x="104.0" y="32.2" width="4.5" height="1.3" /></element>
+ <element ref="text_b3b"><bounds x="104.0" y="33.4" width="4.5" height="1.3" /></element>
+ <element ref="text_b4b"><bounds x="111.5" y="33.4" width="4.5" height="1.3" /></element>
+
+ <element ref="text_b5b"><bounds x="89.0" y="41.4" width="4.5" height="1.3" /></element>
+ <element ref="text_b6a"><bounds x="96.5" y="40.2" width="4.5" height="1.3" /></element>
+ <element ref="text_b6b"><bounds x="96.5" y="41.4" width="4.5" height="1.3" /></element>
+ <element ref="text_b7a"><bounds x="104.0" y="40.2" width="4.5" height="1.3" /></element>
+ <element ref="text_b7b"><bounds x="104.0" y="41.4" width="4.5" height="1.3" /></element>
+ <element ref="text_b8a"><bounds x="111.5" y="40.2" width="4.5" height="1.3" /></element>
+ <element ref="text_b8b"><bounds x="111.5" y="41.4" width="4.5" height="1.3" /></element>
+
+ <element ref="cwhite" blend="multiply"><bounds x="87" y="5" width="31" height="59" /></element>
+
+ <element ref="hl" blend="multiply" inputtag="IN.1" inputmask="0x80"><bounds x="89.0" y="30" width="4.5" height="5" /></element>
+ <element ref="hl" blend="multiply" inputtag="IN.1" inputmask="0x40"><bounds x="96.5" y="30" width="4.5" height="5" /></element>
+ <element ref="hl" blend="multiply" inputtag="IN.1" inputmask="0x20"><bounds x="104.0" y="30" width="4.5" height="5" /></element>
+ <element ref="hl" blend="multiply" inputtag="IN.1" inputmask="0x08"><bounds x="111.5" y="30" width="4.5" height="5" /></element>
+ <element ref="hl" blend="multiply" inputtag="IN.0" inputmask="0x80"><bounds x="89.0" y="38" width="4.5" height="5" /></element>
+ <element ref="hl" blend="multiply" inputtag="IN.0" inputmask="0x40"><bounds x="96.5" y="38" width="4.5" height="5" /></element>
+ <element ref="hl" blend="multiply" inputtag="IN.1" inputmask="0x10"><bounds x="104.0" y="38" width="4.5" height="5" /></element>
+ <element ref="hl" blend="multiply" inputtag="IN.1" inputmask="0x02"><bounds x="111.5" y="38" width="4.5" height="5" /></element>
+
+ <element ref="hl" blend="multiply" inputtag="IN.0" inputmask="0x20"><bounds x="89" y="46" width="7" height="5" /></element>
+ <element ref="hl" blend="multiply" inputtag="IN.0" inputmask="0x10"><bounds x="99" y="46" width="7" height="5" /></element>
+ <element ref="hl" blend="multiply" inputtag="IN.1" inputmask="0x04"><bounds x="109" y="46" width="7" height="5" /></element>
+ <element ref="hl" blend="multiply" inputtag="IN.0" inputmask="0x08"><bounds x="89" y="54" width="7" height="5" /></element>
+ <element ref="hl" blend="multiply" inputtag="IN.0" inputmask="0x04"><bounds x="99" y="54" width="7" height="5" /></element>
+ <element ref="hl" blend="multiply" inputtag="IN.0" inputmask="0x02"><bounds x="109" y="54" width="7" height="5" /></element>
+
+ <element name="10.a" ref="led"><bounds x="90" y="10" width="1.5" height="1.5" /></element>
+ <element name="11.a" ref="led"><bounds x="90" y="13" width="1.5" height="1.5" /></element>
+ <element name="2.2" ref="led"><bounds x="90" y="16" width="1.5" height="1.5" /></element>
+ <element name="4.2" ref="led"><bounds x="90" y="19" width="1.5" height="1.5" /></element>
+ <element name="6.2" ref="led"><bounds x="90" y="22" width="1.5" height="1.5" /></element>
+ <element name="8.2" ref="led"><bounds x="90" y="25" width="1.5" height="1.5" /></element>
+
+ <element name="0.2" ref="led"><bounds x="105" y="10" width="1.5" height="1.5" /></element>
+ <element name="1.2" ref="led"><bounds x="105" y="13" width="1.5" height="1.5" /></element>
+ <element name="3.2" ref="led"><bounds x="105" y="16" width="1.5" height="1.5" /></element>
+ <element name="5.2" ref="led"><bounds x="105" y="19" width="1.5" height="1.5" /></element>
+ <element name="7.2" ref="led"><bounds x="105" y="22" width="1.5" height="1.5" /></element>
+ <element name="9.2" ref="led"><bounds x="105" y="25" width="1.5" height="1.5" /></element>
+ </group>
+
+
+<!-- build screen -->
+
+ <view name="Internal Layout">
+ <bounds left="-14" right="120" top="-1" bottom="88" />
+
+ <bezel element="black2"><bounds x="3.7" y="2.7" width="80.6" height="80.6" /></bezel>
+ <element ref="cwhite"><bounds x="-1" y="-1" width="88.5" height="89" /></element>
+ <group ref="sb_board"><bounds x="4" y="3" width="80" height="80" /></group>
+ <group ref="sb_ui"><bounds x="-12.5" y="3" width="10" height="80" /></group>
+
+ <element ref="cwhite"><bounds x="87" y="-1" width="33" height="89" /></element>
+ <group ref="panel"><bounds x="88" y="28.7" width="31" height="59" /></group>
+
+ <bezel element="text_8"><bounds x="-0.4" y="7" width="2" height="2" /></bezel>
+ <bezel element="text_7"><bounds x="-0.4" y="17" width="2" height="2" /></bezel>
+ <bezel element="text_6"><bounds x="-0.4" y="27" width="2" height="2" /></bezel>
+ <bezel element="text_5"><bounds x="-0.4" y="37" width="2" height="2" /></bezel>
+ <bezel element="text_4"><bounds x="-0.4" y="47" width="2" height="2" /></bezel>
+ <bezel element="text_3"><bounds x="-0.4" y="57" width="2" height="2" /></bezel>
+ <bezel element="text_2"><bounds x="-0.4" y="67" width="2" height="2" /></bezel>
+ <bezel element="text_1"><bounds x="-0.4" y="77" width="2" height="2" /></bezel>
+
+ <bezel element="text_a"><bounds x="8" y="85.6" width="2" height="2" /></bezel>
+ <bezel element="text_b"><bounds x="18" y="85.6" width="2" height="2" /></bezel>
+ <bezel element="text_c"><bounds x="28" y="85.6" width="2" height="2" /></bezel>
+ <bezel element="text_d"><bounds x="38" y="85.6" width="2" height="2" /></bezel>
+ <bezel element="text_e"><bounds x="48" y="85.6" width="2" height="2" /></bezel>
+ <bezel element="text_f"><bounds x="58" y="85.6" width="2" height="2" /></bezel>
+ <bezel element="text_g"><bounds x="68" y="85.6" width="2" height="2" /></bezel>
+ <bezel element="text_h"><bounds x="78" y="85.6" width="2" height="2" /></bezel>
+
+ <bezel name="7.1" element="led"><bounds x="1.6" y="7.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="6.1" element="led"><bounds x="1.6" y="17.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="5.1" element="led"><bounds x="1.6" y="27.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="4.1" element="led"><bounds x="1.6" y="37.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="3.1" element="led"><bounds x="1.6" y="47.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="2.1" element="led"><bounds x="1.6" y="57.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="1.1" element="led"><bounds x="1.6" y="67.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="0.1" element="led"><bounds x="1.6" y="77.25" width="1.5" height="1.5" /></bezel>
+
+ <bezel name="0.0" element="led"><bounds x="8.25" y="83.9" width="1.5" height="1.5" /></bezel>
+ <bezel name="1.0" element="led"><bounds x="18.25" y="83.9" width="1.5" height="1.5" /></bezel>
+ <bezel name="2.0" element="led"><bounds x="28.25" y="83.9" width="1.5" height="1.5" /></bezel>
+ <bezel name="3.0" element="led"><bounds x="38.25" y="83.9" width="1.5" height="1.5" /></bezel>
+ <bezel name="4.0" element="led"><bounds x="48.25" y="83.9" width="1.5" height="1.5" /></bezel>
+ <bezel name="5.0" element="led"><bounds x="58.25" y="83.9" width="1.5" height="1.5" /></bezel>
+ <bezel name="6.0" element="led"><bounds x="68.25" y="83.9" width="1.5" height="1.5" /></bezel>
+ <bezel name="7.0" element="led"><bounds x="78.25" y="83.9" width="1.5" height="1.5" /></bezel>
+ </view>
+</mamelayout>
diff --git a/src/mame/layout/saitek_intchess.lay b/src/mame/layout/saitek_intchess.lay
index 523cd834527..2ec6a41db85 100644
--- a/src/mame/layout/saitek_intchess.lay
+++ b/src/mame/layout/saitek_intchess.lay
@@ -64,11 +64,10 @@ license:CC0
<element name="text_p6"><image file="chess/bk.png" /></element>
-<!-- build screen -->
+<!-- chesscomputer -->
- <view name="Internal Layout">
+ <group name="main">
<bounds left="-2" right="48" top="46.5" bottom="124" />
- <screen index="0"><bounds x="-2" y="46.5" width="50" height="37.5" /></screen>
<bezel name="digit0" element="digit"><bounds x="15" y="88" width="4" height="6" /></bezel>
<bezel name="digit1" element="digit"><bounds x="19" y="88" width="4" height="6" /></bezel>
@@ -182,6 +181,20 @@ license:CC0
<bezel element="text_l24"><bounds x="22" y="105.5" width="8" height="1.1" /></bezel>
<bezel element="text_l25"><bounds x="34" y="105.5" width="8" height="1.1" /></bezel>
<bezel element="text_l26"><bounds x="40" y="105.5" width="8" height="1.1" /></bezel>
+ </group>
+
+
+<!-- build screen -->
+ <view name="Internal Layout (Full)">
+ <bounds left="-2" right="48" top="46.5" bottom="124" />
+ <group ref="main"><bounds left="-2" right="48" top="46.5" bottom="124" /></group>
+ <screen index="0"><bounds x="-2" y="46.5" width="50" height="37.5" /></screen>
</view>
+
+ <view name="Internal Layout (Main Unit)">
+ <bounds left="-2" right="48" top="87" bottom="124" />
+ <group ref="main"><bounds left="-2" right="48" top="46.5" bottom="124" /></group>
+ </view>
+
</mamelayout>
diff --git a/src/mame/layout/saitek_schess.lay b/src/mame/layout/saitek_schess.lay
index 2c84fe6a416..d65da846eb5 100644
--- a/src/mame/layout/saitek_schess.lay
+++ b/src/mame/layout/saitek_schess.lay
@@ -323,6 +323,7 @@ license:CC0
<!-- buttons -->
+ <element name="blackb"><rect><color red="0" green="0" blue="0" /></rect></element>
<element name="black"><rect><color red="0.21" green="0.2" blue="0.2" /></rect></element>
<element name="rmask"><rect><color red="0.73" green="0.03" blue="0.09" /></rect></element>
@@ -359,15 +360,42 @@ license:CC0
<element name="text_p6"><image file="chess/wp.png"></image></element>
<group name="buttons">
- <bounds x="-1" y="0" width="20" height="30" />
-
- <element ref="text_p1"><bounds x="1.6" y="0" width="1.8" height="1.8" /></element>
- <element ref="text_p2"><bounds x="7.6" y="0" width="1.8" height="1.8" /></element>
+ <bounds x="-1" y="-1" width="20" height="31" />
+
+ <element ref="blackb"><bounds x="-0.2" y="-0.2" width="5.4" height="3.4" /></element>
+ <element ref="blackb"><bounds x="5.8" y="-0.2" width="5.4" height="3.4" /></element>
+ <element ref="blackb"><bounds x="11.8" y="-0.2" width="5.4" height="3.4" /></element>
+ <element ref="blackb"><bounds x="-0.2" y="3.8" width="5.4" height="3.4" /></element>
+ <element ref="blackb"><bounds x="5.8" y="3.8" width="5.4" height="3.4" /></element>
+ <element ref="blackb"><bounds x="11.8" y="3.8" width="5.4" height="3.4" /></element>
+ <element ref="blackb"><bounds x="-0.2" y="7.8" width="5.4" height="3.4" /></element>
+ <element ref="blackb"><bounds x="5.8" y="7.8" width="5.4" height="3.4" /></element>
+ <element ref="blackb"><bounds x="11.8" y="7.8" width="5.4" height="3.4" /></element>
+ <element ref="blackb"><bounds x="-0.2" y="11.8" width="5.4" height="3.4" /></element>
+ <element ref="blackb"><bounds x="5.8" y="11.8" width="5.4" height="3.4" /></element>
+ <element ref="blackb"><bounds x="11.8" y="11.8" width="5.4" height="3.4" /></element>
+ <element ref="blackb"><bounds x="-0.2" y="15.8" width="5.4" height="3.4" /></element>
+ <element ref="blackb"><bounds x="5.8" y="15.8" width="5.4" height="3.4" /></element>
+ <element ref="blackb"><bounds x="11.8" y="15.8" width="5.4" height="3.4" /></element>
+ <element ref="blackb"><bounds x="-0.2" y="19.8" width="5.4" height="3.4" /></element>
+ <element ref="blackb"><bounds x="5.8" y="19.8" width="5.4" height="3.4" /></element>
+ <element ref="blackb"><bounds x="11.8" y="19.8" width="5.4" height="3.4" /></element>
+ <element ref="blackb"><bounds x="-0.2" y="25.55" width="5.4" height="3.4" /></element>
+ <element ref="blackb"><bounds x="11.6" y="25.35" width="5.8" height="3.8" /></element>
+
+ <element ref="text_p1"><bounds x="1.6" y="0" width="1.8" height="1.8" /></element>
+ <element ref="text_p2"><bounds x="7.6" y="0" width="1.8" height="1.8" /></element>
<element ref="text_p3"><bounds x="13.6" y="0" width="1.8" height="1.8" /></element>
- <element ref="text_p5"><bounds x="1.6" y="4" width="1.8" height="1.8" /></element>
- <element ref="text_p4"><bounds x="7.6" y="4" width="1.8" height="1.8" /></element>
+ <element ref="text_p5"><bounds x="1.6" y="4" width="1.8" height="1.8" /></element>
+ <element ref="text_p4"><bounds x="7.6" y="4" width="1.8" height="1.8" /></element>
<element ref="text_p6"><bounds x="13.6" y="4" width="1.8" height="1.8" /></element>
- <element ref="rmask" blend="multiply"><bounds x="0" y="0" width="20" height="20" /></element>
+
+ <element ref="rmask" blend="multiply"><bounds x="1.6" y="0" width="1.8" height="1.8" /></element>
+ <element ref="rmask" blend="multiply"><bounds x="7.6" y="0" width="1.8" height="1.8" /></element>
+ <element ref="rmask" blend="multiply"><bounds x="13.6" y="0" width="1.8" height="1.8" /></element>
+ <element ref="rmask" blend="multiply"><bounds x="1.6" y="4" width="1.8" height="1.8" /></element>
+ <element ref="rmask" blend="multiply"><bounds x="7.6" y="4" width="1.8" height="1.8" /></element>
+ <element ref="rmask" blend="multiply"><bounds x="13.6" y="4" width="1.8" height="1.8" /></element>
<element ref="text_l1"><bounds x="0" y="8.4" width="5" height="0.9" /></element>
<element ref="text_l2a"><bounds x="6" y="8" width="5" height="0.9" /></element>
@@ -430,25 +458,25 @@ license:CC0
<element name="9.1" ref="led"><bounds x="14.07" y="21.85" width="0.86" height="0.86" /></element>
<element name="9.0" ref="led"><bounds x="2.07" y="27.4" width="0.86" height="0.86" /></element>
- <element ref="hl" inputtag="IN.0" inputmask="0x80"><bounds x="0" y="0" width="5" height="3" /><color alpha="0.15" /></element>
- <element ref="hl" inputtag="IN.1" inputmask="0x80"><bounds x="6" y="0" width="5" height="3" /><color alpha="0.15" /></element>
- <element ref="hl" inputtag="IN.1" inputmask="0x40"><bounds x="12" y="0" width="5" height="3" /><color alpha="0.15" /></element>
- <element ref="hl" inputtag="IN.0" inputmask="0x40"><bounds x="0" y="4" width="5" height="3" /><color alpha="0.15" /></element>
- <element ref="hl" inputtag="IN.2" inputmask="0x80"><bounds x="6" y="4" width="5" height="3" /><color alpha="0.15" /></element>
- <element ref="hl" inputtag="IN.2" inputmask="0x40"><bounds x="12" y="4" width="5" height="3" /><color alpha="0.15" /></element>
- <element ref="hl" inputtag="IN.0" inputmask="0x20"><bounds x="0" y="8" width="5" height="3" /><color alpha="0.15" /></element>
- <element ref="hl" inputtag="IN.1" inputmask="0x10"><bounds x="6" y="8" width="5" height="3" /><color alpha="0.15" /></element>
- <element ref="hl" inputtag="IN.2" inputmask="0x20"><bounds x="12" y="8" width="5" height="3" /><color alpha="0.15" /></element>
- <element ref="hl" inputtag="IN.0" inputmask="0x10"><bounds x="0" y="12" width="5" height="3" /><color alpha="0.15" /></element>
- <element ref="hl" inputtag="IN.1" inputmask="0x20"><bounds x="6" y="12" width="5" height="3" /><color alpha="0.15" /></element>
- <element ref="hl" inputtag="IN.2" inputmask="0x10"><bounds x="12" y="12" width="5" height="3" /><color alpha="0.15" /></element>
- <element ref="hl" inputtag="IN.0" inputmask="0x08"><bounds x="0" y="16" width="5" height="3" /><color alpha="0.15" /></element>
- <element ref="hl" inputtag="IN.1" inputmask="0x08"><bounds x="6" y="16" width="5" height="3" /><color alpha="0.15" /></element>
- <element ref="hl" inputtag="IN.2" inputmask="0x08"><bounds x="12" y="16" width="5" height="3" /><color alpha="0.15" /></element>
- <element ref="hl" inputtag="IN.0" inputmask="0x04"><bounds x="0" y="20" width="5" height="3" /><color alpha="0.15" /></element>
- <element ref="hl" inputtag="IN.1" inputmask="0x04"><bounds x="6" y="20" width="5" height="3" /><color alpha="0.15" /></element>
- <element ref="hl" inputtag="IN.2" inputmask="0x04"><bounds x="12" y="20" width="5" height="3" /><color alpha="0.15" /></element>
- <element ref="hl" inputtag="IN.1" inputmask="0x02"><bounds x="12" y="25.75" width="5" height="3" /><color alpha="0.15" /></element>
+ <element ref="hl" inputtag="IN.0" inputmask="0x80"><bounds x="0" y="0" width="5" height="3" /><color alpha="0.1" /></element>
+ <element ref="hl" inputtag="IN.1" inputmask="0x80"><bounds x="6" y="0" width="5" height="3" /><color alpha="0.1" /></element>
+ <element ref="hl" inputtag="IN.1" inputmask="0x40"><bounds x="12" y="0" width="5" height="3" /><color alpha="0.1" /></element>
+ <element ref="hl" inputtag="IN.0" inputmask="0x40"><bounds x="0" y="4" width="5" height="3" /><color alpha="0.1" /></element>
+ <element ref="hl" inputtag="IN.2" inputmask="0x80"><bounds x="6" y="4" width="5" height="3" /><color alpha="0.1" /></element>
+ <element ref="hl" inputtag="IN.2" inputmask="0x40"><bounds x="12" y="4" width="5" height="3" /><color alpha="0.1" /></element>
+ <element ref="hl" inputtag="IN.0" inputmask="0x20"><bounds x="0" y="8" width="5" height="3" /><color alpha="0.1" /></element>
+ <element ref="hl" inputtag="IN.1" inputmask="0x10"><bounds x="6" y="8" width="5" height="3" /><color alpha="0.1" /></element>
+ <element ref="hl" inputtag="IN.2" inputmask="0x20"><bounds x="12" y="8" width="5" height="3" /><color alpha="0.1" /></element>
+ <element ref="hl" inputtag="IN.0" inputmask="0x10"><bounds x="0" y="12" width="5" height="3" /><color alpha="0.1" /></element>
+ <element ref="hl" inputtag="IN.1" inputmask="0x20"><bounds x="6" y="12" width="5" height="3" /><color alpha="0.1" /></element>
+ <element ref="hl" inputtag="IN.2" inputmask="0x10"><bounds x="12" y="12" width="5" height="3" /><color alpha="0.1" /></element>
+ <element ref="hl" inputtag="IN.0" inputmask="0x08"><bounds x="0" y="16" width="5" height="3" /><color alpha="0.1" /></element>
+ <element ref="hl" inputtag="IN.1" inputmask="0x08"><bounds x="6" y="16" width="5" height="3" /><color alpha="0.1" /></element>
+ <element ref="hl" inputtag="IN.2" inputmask="0x08"><bounds x="12" y="16" width="5" height="3" /><color alpha="0.1" /></element>
+ <element ref="hl" inputtag="IN.0" inputmask="0x04"><bounds x="0" y="20" width="5" height="3" /><color alpha="0.1" /></element>
+ <element ref="hl" inputtag="IN.1" inputmask="0x04"><bounds x="6" y="20" width="5" height="3" /><color alpha="0.1" /></element>
+ <element ref="hl" inputtag="IN.2" inputmask="0x04"><bounds x="12" y="20" width="5" height="3" /><color alpha="0.1" /></element>
+ <element ref="hl" inputtag="IN.1" inputmask="0x02"><bounds x="12" y="25.75" width="5" height="3" /><color alpha="0.1" /></element>
</group>
@@ -460,7 +488,8 @@ license:CC0
<group ref="sb_board"><bounds x="10" y="10" width="80" height="80" /></group>
<group ref="sb_ui"><bounds x="-4.5" y="10" width="10" height="80" /></group>
- <group ref="buttons"><bounds x="96" y="40" width="34.75" height="52.125" /></group>
+ <element ref="black"><bounds x="93" y="6" width="39" height="88" /></element>
+ <group ref="buttons"><bounds x="96" y="38.25" width="34.75" height="54" /></group>
<repeat count="8">
<param name="x" start="10" increment="10" />
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index fc77bb405cd..ac776a50e38 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -35367,6 +35367,9 @@ sag
@source:sage2.cpp
sage2
+@source:saitek_ccompan.cpp
+ccompan
+
@source:saitek_chesstrv.cpp
chesstrv
diff --git a/src/mame/mess.flt b/src/mame/mess.flt
index d0edb9fd453..ea4e340e0c5 100644
--- a/src/mame/mess.flt
+++ b/src/mame/mess.flt
@@ -824,6 +824,7 @@ rzone.cpp
sacstate.cpp
sag.cpp
sage2.cpp
+saitek_ccompan.cpp
saitek_chesstrv.cpp
saitek_corona.cpp
saitek_cp2000.cpp