mirror of
https://github.com/holub/mame
synced 2025-04-16 13:34:55 +03:00
New working machines
-------------------- Kasparov Simultano (ver. C) [hap, Achim]
This commit is contained in:
parent
4e7244f77d
commit
bb7b5fa97d
@ -3360,6 +3360,7 @@ files {
|
||||
MAME_DIR .. "src/mame/drivers/saitek_renaissance.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/saitek_risc2500.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/saitek_schess.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/saitek_simultano.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/saitek_ssystem3.cpp",
|
||||
MAME_DIR .. "src/mame/includes/saitek_stratos.h",
|
||||
MAME_DIR .. "src/mame/drivers/saitek_stratos.cpp",
|
||||
|
@ -10,7 +10,7 @@ panel design, the 2nd version has rectangular buttons. See fidel_sc6.cpp for
|
||||
the 2nd version.
|
||||
|
||||
Hardware notes:
|
||||
- Z8 MCU(custom label, probably Z8601), 8MHz XTAL
|
||||
- Zilog Z8 MCU(custom label, probably Z8601), 8MHz XTAL
|
||||
- buzzer, 18 leds, 8*8 chessboard buttons, module slot
|
||||
|
||||
released modules, * denotes not dumped yet:
|
||||
|
@ -50,6 +50,16 @@ Gambit(v3) hardware notes:
|
||||
MCU ports I/O again identical to SC6.
|
||||
The same MCU+ROM was also used in Designer 1500(PCB label 510.1131A01).
|
||||
|
||||
Gambit Voice hardware notes:
|
||||
- TMP80C50AP-6-9311 MCU, 4KB internal ROM, 6MHz XTAL
|
||||
- 510.1117A01 sound PCB, the one from Excel Voice, but with 2332 ROM
|
||||
- speaker, 16 leds, 8*8 chessboard buttons
|
||||
|
||||
To summarize, known MCU chip ROM serials+year:
|
||||
- 100-1020B01 (1989), The Gambit
|
||||
- 100-1020B02 (1987), The Classic
|
||||
- 100-1020C01 (1987), Gambit Voice
|
||||
|
||||
******************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
@ -306,7 +316,7 @@ void sc6_state::msc(machine_config &config)
|
||||
|
||||
void sc6_state::sc6(machine_config &config)
|
||||
{
|
||||
msc(config);
|
||||
gambit(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
I8040(config.replace(), m_maincpu, 11_MHz_XTAL);
|
||||
@ -322,8 +332,8 @@ void sc6_state::sc6(machine_config &config)
|
||||
config.set_default_layout(layout_fidel_sc6);
|
||||
|
||||
/* cartridge */
|
||||
GENERIC_CARTSLOT(config.replace(), "cartslot", generic_plain_slot, "fidel_sc6").set_must_be_loaded(true);
|
||||
SOFTWARE_LIST(config.replace(), "cart_list").set_original("fidel_sc6");
|
||||
GENERIC_CARTSLOT(config, "cartslot", generic_plain_slot, "fidel_sc6").set_must_be_loaded(true);
|
||||
SOFTWARE_LIST(config, "cart_list").set_original("fidel_sc6");
|
||||
}
|
||||
|
||||
|
||||
|
@ -19,6 +19,8 @@ different compared to Stratos/Turbo King.
|
||||
#include "machine/sensorboard.h"
|
||||
#include "sound/dac.h"
|
||||
#include "sound/volt_reg.h"
|
||||
#include "bus/generic/slot.h"
|
||||
#include "bus/generic/carts.h"
|
||||
|
||||
#include "softlist.h"
|
||||
#include "speaker.h"
|
||||
@ -119,11 +121,11 @@ void corona_state::machine_reset()
|
||||
void corona_state::update_leds()
|
||||
{
|
||||
// button leds
|
||||
m_display->matrix_partial(0, 2, 1 << (m_control1 >> 5 & 1), (~m_led_data1 & 0xff), false);
|
||||
m_display->matrix_partial(0, 2, 1 << (m_control1 >> 5 & 1), ~m_led_data1 & 0xff, false);
|
||||
m_display->write_row(2, ~m_select1 >> 4 & 0xf);
|
||||
|
||||
// chessboard leds
|
||||
m_display->matrix_partial(3, 8, 1 << (m_select1 & 0xf), m_led_data2);
|
||||
m_display->matrix_partial(3, 8, 1 << (m_select1 & 0xf), m_led_data2, true);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(corona_state::leds1_w)
|
||||
@ -192,7 +194,7 @@ READ8_MEMBER(corona_state::control1_r)
|
||||
// d6: FREQ. SEL related?
|
||||
|
||||
// d7: battery low
|
||||
data |= m_inputs[8]->read();
|
||||
data |= m_inputs[8]->read() << 7;
|
||||
|
||||
return data;
|
||||
}
|
||||
@ -245,7 +247,7 @@ void corona_state::rombank_map(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map(0x00000, 0x0ffff).rom().region("maincpu", 0);
|
||||
map(0x10000, 0x17fff).r(m_extrom, FUNC(generic_slot_device::read_rom));
|
||||
map(0x10000, 0x17fff).r("extrom", FUNC(generic_slot_device::read_rom));
|
||||
}
|
||||
|
||||
|
||||
@ -292,9 +294,7 @@ void corona_state::corona(machine_config &config)
|
||||
VOLTAGE_REGULATOR(config, "vref").add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
|
||||
|
||||
/* extension rom */
|
||||
GENERIC_CARTSLOT(config, m_extrom, generic_plain_slot, "saitek_egr", "bin");
|
||||
m_extrom->set_device_load(FUNC(corona_state::extrom_load));
|
||||
|
||||
GENERIC_CARTSLOT(config, "extrom", generic_plain_slot, "saitek_egr");
|
||||
SOFTWARE_LIST(config, "cart_list").set_original("saitek_egr");
|
||||
}
|
||||
|
||||
|
@ -477,7 +477,7 @@ ROM_START( ccmk5 )
|
||||
ROM_LOAD("c47027_syp_2364-3-y5d", 0xe000, 0x2000, CRC(7c0f7bd8) SHA1(68b4566f0501005f6b1739bb24a4bec990421a6f) ) // "
|
||||
|
||||
ROM_REGION( 1887415, "screen", 0)
|
||||
ROM_LOAD( "ccmk5.svg", 0, 1887415, CRC(656a2263) SHA1(4557979c62b1240f7a0d813ec5f4d54b8a27218e) )
|
||||
ROM_LOAD("ccmk5.svg", 0, 1887415, CRC(656a2263) SHA1(4557979c62b1240f7a0d813ec5f4d54b8a27218e) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( ccmk6 )
|
||||
@ -491,7 +491,7 @@ ROM_START( ccmk6 )
|
||||
ROM_LOAD("d2732c-e.u1", 0x0000, 0x1000, CRC(93221b4c) SHA1(8561b52c80cab7c04d30eaa14f9520a362d7f822) ) // no label, identical halves
|
||||
|
||||
ROM_REGION( 1887415, "screen", 0)
|
||||
ROM_LOAD( "ccmk5.svg", 0, 1887415, CRC(656a2263) SHA1(4557979c62b1240f7a0d813ec5f4d54b8a27218e) )
|
||||
ROM_LOAD("ccmk5.svg", 0, 1887415, CRC(656a2263) SHA1(4557979c62b1240f7a0d813ec5f4d54b8a27218e) )
|
||||
ROM_END
|
||||
|
||||
} // anonymous namespace
|
||||
|
@ -12,7 +12,7 @@ Hardware notes:
|
||||
- 6301Y0(mode 1) or HD6303YP MCU @ 10MHz
|
||||
- 8KB RAM, 32KB ROM
|
||||
- "HELIOS" I/O (NEC gate array)
|
||||
- Seiko Epson SED1502F, LCD screen
|
||||
- Epson SED1502F, LCD screen
|
||||
- magnet sensors chessboard with 81 leds
|
||||
|
||||
The 6301Y0 seen on one of them, was a SX8A 6301Y0G84P, this is in fact the
|
||||
@ -54,7 +54,9 @@ public:
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_board(*this, "board"),
|
||||
m_display(*this, "display%u", 0),
|
||||
m_display(*this, "display"),
|
||||
m_lcd_pwm(*this, "lcd_pwm"),
|
||||
m_lcd(*this, "lcd"),
|
||||
m_dac(*this, "dac"),
|
||||
m_inputs(*this, "IN.%u", 0),
|
||||
m_out_lcd(*this, "s%u.%u", 0U, 0U)
|
||||
@ -70,7 +72,9 @@ private:
|
||||
// devices/pointers
|
||||
required_device<hd6303y_cpu_device> m_maincpu;
|
||||
required_device<sensorboard_device> m_board;
|
||||
required_device_array<pwm_display_device, 2> m_display;
|
||||
required_device<pwm_display_device> m_display;
|
||||
required_device<pwm_display_device> m_lcd_pwm;
|
||||
required_device<sed1502_device> m_lcd;
|
||||
optional_device<dac_bit_interface> m_dac;
|
||||
required_ioport_array<8+1> m_inputs;
|
||||
output_finder<16, 34> m_out_lcd;
|
||||
@ -120,7 +124,7 @@ void ren_state::lcd_pwm_w(offs_t offset, u8 data)
|
||||
|
||||
void ren_state::lcd_output_w(offs_t offset, u64 data)
|
||||
{
|
||||
m_display[1]->write_row(offset, data);
|
||||
m_lcd_pwm->write_row(offset, data);
|
||||
}
|
||||
|
||||
|
||||
@ -128,8 +132,8 @@ void ren_state::lcd_output_w(offs_t offset, u64 data)
|
||||
|
||||
void ren_state::update_display()
|
||||
{
|
||||
m_display[0]->matrix_partial(0, 9, 1 << (m_inp_mux & 0xf), (m_inp_mux << 4 & 0x100) | m_led_data[0], false);
|
||||
m_display[0]->matrix_partial(9, 1, 1, (m_inp_mux >> 2 & 0x30) | m_led_data[1], true);
|
||||
m_display->matrix_partial(0, 9, 1 << (m_inp_mux & 0xf), (m_inp_mux << 4 & 0x100) | m_led_data[0], false);
|
||||
m_display->matrix_partial(9, 1, 1, (m_inp_mux >> 2 & 0x30) | m_led_data[1], true);
|
||||
}
|
||||
|
||||
void ren_state::mux_w(u8 data)
|
||||
@ -313,17 +317,17 @@ void ren_state::ren(machine_config &config)
|
||||
m_board->set_delay(attotime::from_msec(150));
|
||||
|
||||
/* video hardware */
|
||||
PWM_DISPLAY(config, m_display[0]).set_size(9+1, 9);
|
||||
|
||||
SED1502(config, "lcd", 32768).write_segs().set(FUNC(ren_state::lcd_output_w));
|
||||
PWM_DISPLAY(config, m_display[1]).set_size(16, 34);
|
||||
m_display[1]->output_x().set(FUNC(ren_state::lcd_pwm_w));
|
||||
SED1502(config, m_lcd, 32768).write_segs().set(FUNC(ren_state::lcd_output_w));
|
||||
PWM_DISPLAY(config, m_lcd_pwm).set_size(16, 34);
|
||||
m_lcd_pwm->set_refresh(attotime::from_hz(30));
|
||||
m_lcd_pwm->output_x().set(FUNC(ren_state::lcd_pwm_w));
|
||||
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG));
|
||||
screen.set_refresh_hz(60);
|
||||
screen.set_size(873/2, 1080/2);
|
||||
screen.set_visarea_full();
|
||||
|
||||
PWM_DISPLAY(config, m_display).set_size(9+1, 9);
|
||||
config.set_default_layout(layout_saitek_renaissance);
|
||||
|
||||
/* sound hardware */
|
||||
@ -343,7 +347,7 @@ ROM_START( renaissa )
|
||||
ROM_LOAD("sw7_518d_u3.u3", 0x8000, 0x8000, CRC(21d2405f) SHA1(6ddcf9bdd30aa446fcaeab919a8f950dc3428365) ) // HN27C256AG-10
|
||||
|
||||
ROM_REGION( 795951, "screen", 0 )
|
||||
ROM_LOAD("renaissa.svg", 0, 795951, CRC(ac9942bb) SHA1(f9252e5bf7b8af698a403c3f8f5ea9e475e0bf0b) )
|
||||
ROM_LOAD("simultano.svg", 0, 795951, CRC(ac9942bb) SHA1(f9252e5bf7b8af698a403c3f8f5ea9e475e0bf0b) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( renaissaa )
|
||||
@ -351,7 +355,7 @@ ROM_START( renaissaa )
|
||||
ROM_LOAD("sx7_518b.u3", 0x8000, 0x8000, CRC(a0c3ffe8) SHA1(fa170a6d4d54d41de77e0bb72f969219e6f376af) ) // MBM27C256H-10
|
||||
|
||||
ROM_REGION( 795951, "screen", 0 )
|
||||
ROM_LOAD("renaissa.svg", 0, 795951, CRC(ac9942bb) SHA1(f9252e5bf7b8af698a403c3f8f5ea9e475e0bf0b) )
|
||||
ROM_LOAD("simultano.svg", 0, 795951, CRC(ac9942bb) SHA1(f9252e5bf7b8af698a403c3f8f5ea9e475e0bf0b) )
|
||||
ROM_END
|
||||
|
||||
} // anonymous namespace
|
||||
|
360
src/mame/drivers/saitek_simultano.cpp
Normal file
360
src/mame/drivers/saitek_simultano.cpp
Normal file
@ -0,0 +1,360 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:hap
|
||||
// thanks-to:Achim
|
||||
/***************************************************************************
|
||||
|
||||
Saitek Simultano, it is related to Saitek Stratos, see saitek_stratos.cpp
|
||||
But it's not similar enough to be a subdriver of it.
|
||||
|
||||
Two versions are known: "B" from 1988, and "C" from 1989.
|
||||
|
||||
Hardware notes:
|
||||
- WDC W65C02P @ 5MHz
|
||||
- 64KB ROM (2*AMI 27256), 8KB RAM (SRM2264LC) battery-backed
|
||||
- "HELIOS" NEC gate array
|
||||
- Epson SED1502F, LCD screen
|
||||
- piezo, 16+3 leds, button sensors chessboard
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
|
||||
#include "cpu/m6502/m65c02.h"
|
||||
#include "machine/bankdev.h"
|
||||
#include "machine/nvram.h"
|
||||
#include "machine/sensorboard.h"
|
||||
#include "sound/dac.h"
|
||||
#include "sound/volt_reg.h"
|
||||
#include "video/pwm.h"
|
||||
#include "video/sed1500.h"
|
||||
#include "bus/generic/slot.h"
|
||||
#include "bus/generic/carts.h"
|
||||
|
||||
#include "screen.h"
|
||||
#include "softlist.h"
|
||||
#include "speaker.h"
|
||||
|
||||
// internal artwork
|
||||
#include "saitek_simultano.lh" // clickable
|
||||
|
||||
|
||||
namespace {
|
||||
|
||||
class simultano_state : public driver_device
|
||||
{
|
||||
public:
|
||||
simultano_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_rombank(*this, "rombank"),
|
||||
m_board(*this, "board"),
|
||||
m_display(*this, "display"),
|
||||
m_lcd_pwm(*this, "lcd_pwm"),
|
||||
m_lcd(*this, "lcd"),
|
||||
m_dac(*this, "dac"),
|
||||
m_inputs(*this, "IN.%u", 0),
|
||||
m_out_lcd(*this, "s%u.%u", 0U, 0U)
|
||||
{ }
|
||||
|
||||
DECLARE_INPUT_CHANGED_MEMBER(acl_button) { if (newval) power_off(); }
|
||||
DECLARE_INPUT_CHANGED_MEMBER(go_button);
|
||||
|
||||
void simultano(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
private:
|
||||
// devices/pointers
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<address_map_bank_device> m_rombank;
|
||||
required_device<sensorboard_device> m_board;
|
||||
required_device<pwm_display_device> m_display;
|
||||
required_device<pwm_display_device> m_lcd_pwm;
|
||||
required_device<sed1502_device> m_lcd;
|
||||
required_device<dac_bit_interface> m_dac;
|
||||
required_ioport_array<8+1> m_inputs;
|
||||
output_finder<16, 34> m_out_lcd;
|
||||
|
||||
void main_map(address_map &map);
|
||||
void rombank_map(address_map &map);
|
||||
|
||||
void power_off();
|
||||
void lcd_pwm_w(offs_t offset, u8 data);
|
||||
void lcd_output_w(offs_t offset, u64 data);
|
||||
|
||||
DECLARE_WRITE8_MEMBER(select_w);
|
||||
DECLARE_READ8_MEMBER(chessboard_r);
|
||||
DECLARE_WRITE8_MEMBER(sound_w);
|
||||
DECLARE_READ8_MEMBER(control_r);
|
||||
DECLARE_WRITE8_MEMBER(control_w);
|
||||
|
||||
bool m_power = false;
|
||||
u8 m_select = 0;
|
||||
u8 m_control = 0;
|
||||
};
|
||||
|
||||
void simultano_state::machine_start()
|
||||
{
|
||||
m_out_lcd.resolve();
|
||||
|
||||
// register for savestates
|
||||
save_item(NAME(m_power));
|
||||
save_item(NAME(m_select));
|
||||
save_item(NAME(m_control));
|
||||
}
|
||||
|
||||
void simultano_state::machine_reset()
|
||||
{
|
||||
m_power = true;
|
||||
m_rombank->set_bank(0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
I/O
|
||||
******************************************************************************/
|
||||
|
||||
// soft power on/off
|
||||
|
||||
INPUT_CHANGED_MEMBER(simultano_state::go_button)
|
||||
{
|
||||
if (newval && !m_power)
|
||||
{
|
||||
m_maincpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
|
||||
machine_reset();
|
||||
}
|
||||
}
|
||||
|
||||
void simultano_state::power_off()
|
||||
{
|
||||
m_power = false;
|
||||
m_maincpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
|
||||
|
||||
// clear display
|
||||
for (int i = 0; i < 0x80; i++)
|
||||
m_lcd->write(i, 0);
|
||||
|
||||
m_display->clear();
|
||||
m_lcd_pwm->clear();
|
||||
}
|
||||
|
||||
|
||||
// LCD
|
||||
|
||||
void simultano_state::lcd_pwm_w(offs_t offset, u8 data)
|
||||
{
|
||||
m_out_lcd[offset & 0x3f][offset >> 6] = data;
|
||||
}
|
||||
|
||||
void simultano_state::lcd_output_w(offs_t offset, u64 data)
|
||||
{
|
||||
if (m_power)
|
||||
m_lcd_pwm->write_row(offset, data);
|
||||
}
|
||||
|
||||
|
||||
// HELIOS
|
||||
|
||||
WRITE8_MEMBER(simultano_state::sound_w)
|
||||
{
|
||||
m_dac->write(1);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(simultano_state::select_w)
|
||||
{
|
||||
m_dac->write(0); // guessed
|
||||
|
||||
// d0-d3: input/chessboard mux
|
||||
// d6,d7: side panel led mux
|
||||
// d4,d5: led data
|
||||
m_display->matrix_partial(0, 2, data >> 4 & 3, 1 << (data & 0xf), false);
|
||||
m_display->matrix_partial(2, 2, data >> 6 & 3, ~data >> 4 & 3, true);
|
||||
m_select = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(simultano_state::chessboard_r)
|
||||
{
|
||||
// d0-d7: chessboard sensors
|
||||
return ~m_board->read_file(m_select & 0xf);
|
||||
}
|
||||
|
||||
READ8_MEMBER(simultano_state::control_r)
|
||||
{
|
||||
u8 data = 0;
|
||||
u8 sel = m_select & 0xf;
|
||||
|
||||
// read button panel
|
||||
if (sel < 9)
|
||||
data |= m_inputs[sel]->read() << 5;
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(simultano_state::control_w)
|
||||
{
|
||||
u8 prev = m_control;
|
||||
m_control = data;
|
||||
|
||||
// d0,d1: rombank
|
||||
m_rombank->set_bank(bitswap<2>(data,0,1));
|
||||
|
||||
// d6 falling edge: power-off request
|
||||
if (~data & prev & 0x40)
|
||||
power_off();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Address Maps
|
||||
******************************************************************************/
|
||||
|
||||
void simultano_state::main_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x1fff).ram().share("nvram");
|
||||
map(0x2000, 0x2000).w(FUNC(simultano_state::select_w));
|
||||
map(0x2200, 0x2200).w(FUNC(simultano_state::sound_w));
|
||||
map(0x2400, 0x2400).r(FUNC(simultano_state::chessboard_r));
|
||||
map(0x2600, 0x2600).rw(FUNC(simultano_state::control_r), FUNC(simultano_state::control_w));
|
||||
//map(0x4000, 0x5fff).noprw(); // tries to access RAM, unpopulated on PCB
|
||||
map(0x6000, 0x607f).rw("lcd", FUNC(sed1502_device::read), FUNC(sed1502_device::write));
|
||||
map(0x8000, 0xffff).m(m_rombank, FUNC(address_map_bank_device::amap8));
|
||||
}
|
||||
|
||||
void simultano_state::rombank_map(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map(0x00000, 0x0ffff).rom().region("maincpu", 0);
|
||||
map(0x10000, 0x17fff).r("extrom", FUNC(generic_slot_device::read_rom));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Input Ports
|
||||
******************************************************************************/
|
||||
|
||||
static INPUT_PORTS_START( simultano )
|
||||
PORT_START("IN.0")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_W) PORT_NAME("Set Up")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_L) PORT_NAME("Level")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_CUSTOM) // freq sel
|
||||
|
||||
PORT_START("IN.1")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_G) PORT_NAME("Sound")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_NAME("Stop")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_NAME("New Game")
|
||||
|
||||
PORT_START("IN.2")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("Rook")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_N) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("Pawn")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_V) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("Bishop")
|
||||
|
||||
PORT_START("IN.3")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_X) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("Queen")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("Knight")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Z) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("King")
|
||||
|
||||
PORT_START("IN.4")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_NAME("Play")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_NAME("Tab / Color")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F) PORT_CODE(KEYCODE_MINUS) PORT_CODE(KEYCODE_MINUS_PAD) PORT_NAME("-")
|
||||
|
||||
PORT_START("IN.5")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_D) PORT_CODE(KEYCODE_EQUALS) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("+")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_NAME("Function")
|
||||
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_CUSTOM) // freq sel
|
||||
|
||||
PORT_START("IN.6")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) PORT_NAME("Library")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("Info")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_CUSTOM) // freq sel
|
||||
|
||||
PORT_START("IN.7")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_NAME("Analysis")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Q) PORT_NAME("Normal")
|
||||
|
||||
PORT_START("IN.8")
|
||||
PORT_CONFNAME( 0x01, 0x01, "Battery Status" )
|
||||
PORT_CONFSETTING( 0x00, "Low" )
|
||||
PORT_CONFSETTING( 0x01, DEF_STR( Normal ) )
|
||||
|
||||
PORT_START("RESET")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_CHANGED_MEMBER(DEVICE_SELF, simultano_state, go_button, 0) PORT_NAME("Go")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, simultano_state, acl_button, 0) PORT_NAME("ACL")
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Machine Configs
|
||||
******************************************************************************/
|
||||
|
||||
void simultano_state::simultano(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
M65C02(config, m_maincpu, 5_MHz_XTAL);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &simultano_state::main_map);
|
||||
m_maincpu->set_periodic_int(FUNC(simultano_state::irq0_line_hold), attotime::from_hz(76));
|
||||
|
||||
ADDRESS_MAP_BANK(config, "rombank").set_map(&simultano_state::rombank_map).set_options(ENDIANNESS_LITTLE, 8, 17, 0x8000);
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
||||
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(350));
|
||||
|
||||
/* video hardware */
|
||||
SED1502(config, m_lcd, 32768).write_segs().set(FUNC(simultano_state::lcd_output_w));
|
||||
PWM_DISPLAY(config, m_lcd_pwm).set_size(16, 34);
|
||||
m_lcd_pwm->set_refresh(attotime::from_hz(30));
|
||||
m_lcd_pwm->output_x().set(FUNC(simultano_state::lcd_pwm_w));
|
||||
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG));
|
||||
screen.set_refresh_hz(60);
|
||||
screen.set_size(873/2, 1080/2);
|
||||
screen.set_visarea_full();
|
||||
|
||||
PWM_DISPLAY(config, m_display).set_size(2+2, 8);
|
||||
config.set_default_layout(layout_saitek_simultano);
|
||||
|
||||
/* 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);
|
||||
|
||||
/* extension rom */
|
||||
GENERIC_CARTSLOT(config, "extrom", generic_plain_slot, "saitek_egr");
|
||||
SOFTWARE_LIST(config, "cart_list").set_original("saitek_egr");
|
||||
}
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
ROM Definitions
|
||||
******************************************************************************/
|
||||
|
||||
ROM_START( simultano )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD("y01h_c12e_u3.u3", 0x0000, 0x8000, CRC(d583fdb4) SHA1(4be242691215ab1635a5d672441d339596f719c6) ) // AMI 27256
|
||||
ROM_LOAD("by01h_c13b_u4.u4", 0x8000, 0x8000, CRC(c607b421) SHA1(b0c784b570dfd1fcbe3da68bcfbae2dae2957a74) ) // "
|
||||
|
||||
ROM_REGION( 795951, "screen", 0 )
|
||||
ROM_LOAD("simultano.svg", 0, 795951, CRC(ac9942bb) SHA1(f9252e5bf7b8af698a403c3f8f5ea9e475e0bf0b) )
|
||||
ROM_END
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Drivers
|
||||
******************************************************************************/
|
||||
|
||||
/* YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS */
|
||||
CONS( 1989, simultano, 0, 0, simultano, simultano, simultano_state, empty_init, "Saitek", "Kasparov Simultano (ver. C)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
|
@ -8,10 +8,8 @@ SciSys/Saitek Stratos chesscomputer family (1987-1990)
|
||||
|
||||
- Stratos
|
||||
- Turbo King
|
||||
- Corona --> it's in saitek_corona.cpp
|
||||
- *Simultano
|
||||
|
||||
*: not dumped yet
|
||||
- Corona --> saitek_corona.cpp
|
||||
- Simultano --> saitek_simultano.cpp
|
||||
|
||||
IMPORTANT: The user is expected to press the STOP button to turn off the computer.
|
||||
When not using -autosave, press that button before exiting MAME, or NVRAM can get corrupt.
|
||||
@ -60,6 +58,8 @@ very few bytes difference between revisions. The first Corona is engine version
|
||||
#include "machine/sensorboard.h"
|
||||
#include "sound/dac.h"
|
||||
#include "sound/volt_reg.h"
|
||||
#include "bus/generic/slot.h"
|
||||
#include "bus/generic/carts.h"
|
||||
|
||||
#include "softlist.h"
|
||||
#include "speaker.h"
|
||||
@ -77,6 +77,7 @@ public:
|
||||
m_nvram(*this, "nvram.u7"),
|
||||
m_rombank(*this, "rombank"),
|
||||
m_nvrambank(*this, "nvrambank"),
|
||||
m_extrom(*this, "extrom"),
|
||||
m_board(*this, "board"),
|
||||
m_dac(*this, "dac"),
|
||||
m_inputs(*this, "IN.%u", 0)
|
||||
@ -98,6 +99,7 @@ private:
|
||||
required_device<nvram_device> m_nvram;
|
||||
required_memory_bank m_rombank;
|
||||
required_memory_bank m_nvrambank;
|
||||
required_device<generic_slot_device> m_extrom;
|
||||
required_device<sensorboard_device> m_board;
|
||||
required_device<dac_bit_interface> m_dac;
|
||||
required_ioport_array<8+2> m_inputs;
|
||||
@ -224,32 +226,6 @@ void saitek_stratos_state::power_off()
|
||||
}
|
||||
|
||||
|
||||
// Endgame ROM
|
||||
|
||||
DEVICE_IMAGE_LOAD_MEMBER(saitek_stratos_state::extrom_load)
|
||||
{
|
||||
u32 size = m_extrom->common_get_size("rom");
|
||||
|
||||
// 32KB ROM only?
|
||||
if (size != 0x8000)
|
||||
{
|
||||
image.seterror(IMAGE_ERROR_UNSPECIFIED, "Invalid file size");
|
||||
return image_init_result::FAIL;
|
||||
}
|
||||
|
||||
m_extrom->rom_alloc(size, GENERIC_ROM8_WIDTH, ENDIANNESS_LITTLE);
|
||||
m_extrom->common_load_rom(m_extrom->get_rom_base(), size, "rom");
|
||||
|
||||
return image_init_result::PASS;
|
||||
}
|
||||
|
||||
READ8_MEMBER(stratos_state::extrom_r)
|
||||
{
|
||||
u16 bank = BIT(m_control, 1) * 0x4000;
|
||||
return (m_extrom->exists()) ? m_extrom->read_rom(offset | bank) : 0xff;
|
||||
}
|
||||
|
||||
|
||||
// LCD HLE
|
||||
|
||||
void saitek_stratos_state::update_lcd()
|
||||
@ -350,7 +326,7 @@ READ8_MEMBER(stratos_state::control_r)
|
||||
m_lcd_ready = false;
|
||||
|
||||
// d7: battery low
|
||||
data |= m_inputs[8]->read();
|
||||
data |= m_inputs[8]->read() << 7;
|
||||
}
|
||||
|
||||
// read button panel
|
||||
@ -380,6 +356,12 @@ WRITE8_MEMBER(stratos_state::control_w)
|
||||
power_off();
|
||||
}
|
||||
|
||||
READ8_MEMBER(stratos_state::extrom_r)
|
||||
{
|
||||
u16 bank = BIT(m_control, 1) * 0x4000;
|
||||
return (m_extrom->exists()) ? m_extrom->read_rom(offset | bank) : 0xff;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
@ -447,9 +429,9 @@ INPUT_PORTS_START( saitek_stratos )
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Q) PORT_NAME("Normal")
|
||||
|
||||
PORT_START("IN.8")
|
||||
PORT_CONFNAME( 0x80, 0x80, "Battery Status" )
|
||||
PORT_CONFNAME( 0x01, 0x01, "Battery Status" )
|
||||
PORT_CONFSETTING( 0x00, "Low" )
|
||||
PORT_CONFSETTING( 0x80, DEF_STR( Normal ) )
|
||||
PORT_CONFSETTING( 0x01, DEF_STR( Normal ) )
|
||||
|
||||
PORT_START("RESET")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_CHANGED_MEMBER(DEVICE_SELF, saitek_stratos_state, go_button, 0) PORT_NAME("Go")
|
||||
@ -512,9 +494,7 @@ void stratos_state::stratos(machine_config &config)
|
||||
VOLTAGE_REGULATOR(config, "vref").add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
|
||||
|
||||
/* extension rom */
|
||||
GENERIC_CARTSLOT(config, m_extrom, generic_plain_slot, "saitek_egr");
|
||||
m_extrom->set_device_load(FUNC(stratos_state::extrom_load));
|
||||
|
||||
GENERIC_CARTSLOT(config, "extrom", generic_plain_slot, "saitek_egr");
|
||||
SOFTWARE_LIST(config, "cart_list").set_original("saitek_egr");
|
||||
}
|
||||
|
||||
|
@ -12,10 +12,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "machine/timer.h"
|
||||
#include "video/pwm.h"
|
||||
#include "bus/generic/slot.h"
|
||||
#include "bus/generic/carts.h"
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
@ -27,7 +24,6 @@ public:
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_display(*this, "display"),
|
||||
m_extrom(*this, "extrom"),
|
||||
m_out_digit(*this, "digit%u", 0U),
|
||||
m_out_lcd(*this, "lcd%u.%u.%u", 0U, 0U, 0U)
|
||||
{ }
|
||||
@ -44,7 +40,6 @@ protected:
|
||||
// devices/pointers
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<pwm_display_device> m_display;
|
||||
required_device<generic_slot_device> m_extrom;
|
||||
output_finder<8+1> m_out_digit;
|
||||
output_finder<4, 16, 4> m_out_lcd;
|
||||
|
||||
@ -53,8 +48,6 @@ protected:
|
||||
void update_lcd();
|
||||
void power_off();
|
||||
void set_cpu_freq();
|
||||
|
||||
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(extrom_load);
|
||||
void lcd_data_w(u8 data);
|
||||
|
||||
bool m_power;
|
||||
|
@ -388,6 +388,61 @@ license:CC0
|
||||
</group>
|
||||
|
||||
|
||||
<!-- display -->
|
||||
|
||||
<element name="whitew"><rect><color red="1" green="1" blue="1" /></rect></element>
|
||||
<element name="lcd_bg1"><rect><color red="0.9" green="0.9" blue="0.45" /></rect></element>
|
||||
<element name="lcd_bg2"><rect><color red="0.58" green="0.61" blue="0.62" /></rect></element>
|
||||
|
||||
<element name="lcd_cb">
|
||||
<rect><bounds x="0" y="0" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="10" y="0" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="20" y="0" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="30" y="0" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="5" y="5" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="15" y="5" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="25" y="5" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="35" y="5" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
|
||||
<rect><bounds x="0" y="10" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="10" y="10" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="20" y="10" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="30" y="10" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="5" y="15" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="15" y="15" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="25" y="15" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="35" y="15" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
|
||||
<rect><bounds x="0" y="20" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="10" y="20" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="20" y="20" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="30" y="20" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="5" y="25" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="15" y="25" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="25" y="25" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="35" y="25" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
|
||||
<rect><bounds x="0" y="30" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="10" y="30" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="20" y="30" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="30" y="30" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="5" y="35" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="15" y="35" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="25" y="35" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="35" y="35" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
</element>
|
||||
|
||||
<group name="display">
|
||||
<bounds x="9.4" y="10" width="101.1" height="128.5" /> <!-- A/R 0.78677 -->
|
||||
<element ref="whitew"><bounds x="9.4" y="10" width="101.1" height="128.5" /></element>
|
||||
<element ref="lcd_bg1"><bounds x="9.4" y="10" width="101.1" height="102.3" /></element>
|
||||
<element ref="lcd_cb"><bounds x="9.4" y="10" width="101.1" height="101.3" /></element>
|
||||
|
||||
<screen index="0" blend="multiply"><bounds x="10" y="10" width="100" height="123.711" /></screen>
|
||||
<element ref="lcd_bg2" blend="multiply"><bounds x="0" y="0" width="120" height="140" /></element>
|
||||
</group>
|
||||
|
||||
|
||||
<!-- build screen -->
|
||||
|
||||
<view name="Internal Layout">
|
||||
@ -399,7 +454,7 @@ license:CC0
|
||||
|
||||
<group ref="sb_ui"><bounds x="-12" y="3" width="10" height="80" /></group>
|
||||
|
||||
<screen index="0"><bounds x="33" y="90" width="25" height="30.93" /></screen>
|
||||
<group ref="display"><bounds x="33" y="90" width="23.6" height="30" /></group>
|
||||
|
||||
<!-- chessboard coords -->
|
||||
<bezel element="text_8"><bounds x="0.2" y="7" width="2" height="2" /></bezel>
|
||||
|
531
src/mame/layout/saitek_simultano.lay
Normal file
531
src/mame/layout/saitek_simultano.lay
Normal file
@ -0,0 +1,531 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
license:CC0
|
||||
-->
|
||||
<mamelayout version="2">
|
||||
|
||||
<!-- define elements -->
|
||||
|
||||
<element name="ledr" defstate="0">
|
||||
<rect state="0"><color red="0.15" green="0" blue="0" /></rect>
|
||||
<rect state="1"><color red="1" green="0" blue="0" /></rect>
|
||||
</element>
|
||||
|
||||
<element name="ledro">
|
||||
<rect><color red="0.1" green="0.1" blue="0.1" /></rect>
|
||||
</element>
|
||||
<element name="ledrr" defstate="0">
|
||||
<rect state="0"><color red="0" green="0" blue="0" /></rect>
|
||||
<rect state="1"><color red="1" green="0" blue="0" /></rect>
|
||||
</element>
|
||||
<element name="ledrg" defstate="0">
|
||||
<rect state="0"><color red="0" green="0" blue="0" /></rect>
|
||||
<rect state="1"><color red="0" green="1" blue="0" /></rect>
|
||||
</element>
|
||||
|
||||
<element name="button" defstate="0">
|
||||
<rect state="0"><color red="0.21" green="0.2" blue="0.2" /></rect>
|
||||
<rect state="1"><color red="0.33" green="0.31" blue="0.31" /></rect>
|
||||
</element>
|
||||
|
||||
<element name="text_1"><text string="1"><color red="0.41" green="0.4" blue="0.39" /></text></element>
|
||||
<element name="text_2"><text string="2"><color red="0.41" green="0.4" blue="0.39" /></text></element>
|
||||
<element name="text_3"><text string="3"><color red="0.41" green="0.4" blue="0.39" /></text></element>
|
||||
<element name="text_4"><text string="4"><color red="0.41" green="0.4" blue="0.39" /></text></element>
|
||||
<element name="text_5"><text string="5"><color red="0.41" green="0.4" blue="0.39" /></text></element>
|
||||
<element name="text_6"><text string="6"><color red="0.41" green="0.4" blue="0.39" /></text></element>
|
||||
<element name="text_7"><text string="7"><color red="0.41" green="0.4" blue="0.39" /></text></element>
|
||||
<element name="text_8"><text string="8"><color red="0.41" green="0.4" blue="0.39" /></text></element>
|
||||
|
||||
<element name="text_a"><text string="A"><color red="0.41" green="0.4" blue="0.39" /></text></element>
|
||||
<element name="text_b"><text string="B"><color red="0.41" green="0.4" blue="0.39" /></text></element>
|
||||
<element name="text_c"><text string="C"><color red="0.41" green="0.4" blue="0.39" /></text></element>
|
||||
<element name="text_d"><text string="D"><color red="0.41" green="0.4" blue="0.39" /></text></element>
|
||||
<element name="text_e"><text string="E"><color red="0.41" green="0.4" blue="0.39" /></text></element>
|
||||
<element name="text_f"><text string="F"><color red="0.41" green="0.4" blue="0.39" /></text></element>
|
||||
<element name="text_g"><text string="G"><color red="0.41" green="0.4" blue="0.39" /></text></element>
|
||||
<element name="text_h"><text string="H"><color red="0.41" green="0.4" blue="0.39" /></text></element>
|
||||
|
||||
<element name="text_r1"><text string="WHITE" align="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_r2"><text string="BLACK" align="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_r3"><text string="MODE" align="1"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
|
||||
<element name="text_b1"><text string="GO"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_b2"><text string="STOP"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_b3"><text string="LEVEL"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_b4"><text string="NEW GAME"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_b5"><text string="PLAY"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_b6"><text string="NORMAL"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_b7"><text string="SET UP"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_b8"><text string="LIBRARY"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_b9"><text string="ANALYSIS"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_b10"><text string="INFO"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_b11"><text string="FUNCTION"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_b12"><text string="TAB/COLOR"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_b13"><text string="+"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_b14"><text string="-"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
<element name="text_b15"><text string="SOUND"><color red="0.81" green="0.8" blue="0.79" /></text></element>
|
||||
|
||||
<element name="text_p1"><image file="chess/wk.png"></image></element>
|
||||
<element name="text_p2"><image file="chess/wq.png"></image></element>
|
||||
<element name="text_p3"><image file="chess/wr.png"></image></element>
|
||||
<element name="text_p4"><image file="chess/wb.png"></image></element>
|
||||
<element name="text_p5"><image file="chess/wn.png"></image></element>
|
||||
<element name="text_p6"><image file="chess/wp.png"></image></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=" <<"><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="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>
|
||||
|
||||
|
||||
<!-- display -->
|
||||
|
||||
<element name="whitew"><rect><color red="1" green="1" blue="1" /></rect></element>
|
||||
<element name="lcd_bg1"><rect><color red="0.9" green="0.9" blue="0.45" /></rect></element>
|
||||
<element name="lcd_bg2"><rect><color red="0.58" green="0.61" blue="0.62" /></rect></element>
|
||||
|
||||
<element name="lcd_cb">
|
||||
<rect><bounds x="0" y="0" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="10" y="0" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="20" y="0" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="30" y="0" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="5" y="5" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="15" y="5" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="25" y="5" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="35" y="5" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
|
||||
<rect><bounds x="0" y="10" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="10" y="10" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="20" y="10" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="30" y="10" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="5" y="15" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="15" y="15" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="25" y="15" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="35" y="15" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
|
||||
<rect><bounds x="0" y="20" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="10" y="20" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="20" y="20" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="30" y="20" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="5" y="25" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="15" y="25" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="25" y="25" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="35" y="25" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
|
||||
<rect><bounds x="0" y="30" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="10" y="30" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="20" y="30" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="30" y="30" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="5" y="35" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="15" y="35" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="25" y="35" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
<rect><bounds x="35" y="35" width="5" height="5" /><color red="1" green="1" blue="1" /></rect>
|
||||
</element>
|
||||
|
||||
<group name="display">
|
||||
<bounds x="9.4" y="10" width="101.1" height="128.5" /> <!-- A/R 0.78677 -->
|
||||
<element ref="whitew"><bounds x="9.4" y="10" width="101.1" height="128.5" /></element>
|
||||
<element ref="lcd_bg1"><bounds x="9.4" y="10" width="101.1" height="102.3" /></element>
|
||||
<element ref="lcd_cb"><bounds x="9.4" y="10" width="101.1" height="101.3" /></element>
|
||||
|
||||
<screen index="0" blend="multiply"><bounds x="10" y="10" width="100" height="123.711" /></screen>
|
||||
<element ref="lcd_bg2" blend="multiply"><bounds x="0" y="0" width="120" height="140" /></element>
|
||||
</group>
|
||||
|
||||
|
||||
<!-- build screen -->
|
||||
|
||||
<view name="Internal Layout (Full)">
|
||||
<bounds left="-13.5" right="132.5" top="-1" bottom="90" />
|
||||
|
||||
<group ref="sb_board"><bounds x="4" y="3" width="80" height="80" /></group>
|
||||
<group ref="sb_ui"><bounds x="-12" y="3" width="10" height="80" /></group>
|
||||
|
||||
<!-- chessboard coords -->
|
||||
|
||||
<bezel element="text_8"><bounds x="1.5" y="7" width="2" height="2" /></bezel>
|
||||
<bezel element="text_7"><bounds x="1.5" y="17" width="2" height="2" /></bezel>
|
||||
<bezel element="text_6"><bounds x="1.5" y="27" width="2" height="2" /></bezel>
|
||||
<bezel element="text_5"><bounds x="1.5" y="37" width="2" height="2" /></bezel>
|
||||
<bezel element="text_4"><bounds x="1.5" y="47" width="2" height="2" /></bezel>
|
||||
<bezel element="text_3"><bounds x="1.5" y="57" width="2" height="2" /></bezel>
|
||||
<bezel element="text_2"><bounds x="1.5" y="67" width="2" height="2" /></bezel>
|
||||
<bezel element="text_1"><bounds x="1.5" y="77" width="2" height="2" /></bezel>
|
||||
|
||||
<bezel element="text_a"><bounds x="8" y="83.5" width="2" height="2" /></bezel>
|
||||
<bezel element="text_b"><bounds x="18" y="83.5" width="2" height="2" /></bezel>
|
||||
<bezel element="text_c"><bounds x="28" y="83.5" width="2" height="2" /></bezel>
|
||||
<bezel element="text_d"><bounds x="38" y="83.5" width="2" height="2" /></bezel>
|
||||
<bezel element="text_e"><bounds x="48" y="83.5" width="2" height="2" /></bezel>
|
||||
<bezel element="text_f"><bounds x="58" y="83.5" width="2" height="2" /></bezel>
|
||||
<bezel element="text_g"><bounds x="68" y="83.5" width="2" height="2" /></bezel>
|
||||
<bezel element="text_h"><bounds x="78" y="83.5" width="2" height="2" /></bezel>
|
||||
|
||||
<!-- chessboard leds -->
|
||||
|
||||
<bezel name="0.7" element="ledr"><bounds x="-1" y="7.5" width="2" height="1" /></bezel>
|
||||
<bezel name="0.6" element="ledr"><bounds x="-1" y="17.5" width="2" height="1" /></bezel>
|
||||
<bezel name="0.5" element="ledr"><bounds x="-1" y="27.5" width="2" height="1" /></bezel>
|
||||
<bezel name="0.4" element="ledr"><bounds x="-1" y="37.5" width="2" height="1" /></bezel>
|
||||
<bezel name="0.3" element="ledr"><bounds x="-1" y="47.5" width="2" height="1" /></bezel>
|
||||
<bezel name="0.2" element="ledr"><bounds x="-1" y="57.5" width="2" height="1" /></bezel>
|
||||
<bezel name="0.1" element="ledr"><bounds x="-1" y="67.5" width="2" height="1" /></bezel>
|
||||
<bezel name="0.0" element="ledr"><bounds x="-1" y="77.5" width="2" height="1" /></bezel>
|
||||
|
||||
<bezel name="1.0" element="ledr"><bounds x="8.5" y="86" width="1" height="2" /></bezel>
|
||||
<bezel name="1.1" element="ledr"><bounds x="18.5" y="86" width="1" height="2" /></bezel>
|
||||
<bezel name="1.2" element="ledr"><bounds x="28.5" y="86" width="1" height="2" /></bezel>
|
||||
<bezel name="1.3" element="ledr"><bounds x="38.5" y="86" width="1" height="2" /></bezel>
|
||||
<bezel name="1.4" element="ledr"><bounds x="48.5" y="86" width="1" height="2" /></bezel>
|
||||
<bezel name="1.5" element="ledr"><bounds x="58.5" y="86" width="1" height="2" /></bezel>
|
||||
<bezel name="1.6" element="ledr"><bounds x="68.5" y="86" width="1" height="2" /></bezel>
|
||||
<bezel name="1.7" element="ledr"><bounds x="78.5" y="86" width="1" height="2" /></bezel>
|
||||
|
||||
<!-- right side -->
|
||||
|
||||
<group ref="display"><bounds x="96.5" y="13" width="23.6" height="30" /></group>
|
||||
|
||||
<bezel name="2.0" element="ledr"><bounds x="88.5" y="20.5" width="2" height="1" /></bezel>
|
||||
<bezel name="3.0" element="ledr"><bounds x="88.5" y="27.5" width="2" height="1" /></bezel>
|
||||
|
||||
<element ref="ledro"><bounds x="88.5" y="34.5" width="2" height="1" /></element>
|
||||
<element name="2.1" ref="ledrr" blend="add"><bounds x="88.5" y="34.5" width="2" height="1" /></element>
|
||||
<element name="3.1" ref="ledrg" blend="add"><bounds x="88.5" y="34.5" width="2" height="1" /></element>
|
||||
|
||||
<bezel element="text_r1"><bounds x="91" y="20.2" width="7" height="1.5" /></bezel>
|
||||
<bezel element="text_r2"><bounds x="91" y="27.2" width="7" height="1.5" /></bezel>
|
||||
<bezel element="text_r3"><bounds x="91" y="34.2" width="7" height="1.5" /></bezel>
|
||||
|
||||
<bezel element="text_b1"><bounds x="88.5" y="46.5" width="7.5" height="1.5" /></bezel>
|
||||
<bezel element="text_b2"><bounds x="96.5" y="46.5" width="7.5" height="1.5" /></bezel>
|
||||
<bezel element="text_b3"><bounds x="104.5" y="46.5" width="7.5" height="1.5" /></bezel>
|
||||
<bezel element="text_b4"><bounds x="111.5" y="46.5" width="9.5" height="1.5" /></bezel>
|
||||
<bezel element="text_b5"><bounds x="120.5" y="46.5" width="7.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel element="text_b6"><bounds x="88.5" y="54.75" width="7.5" height="1.5" /></bezel>
|
||||
<bezel element="text_b7"><bounds x="96.5" y="54.75" width="7.5" height="1.5" /></bezel>
|
||||
<bezel element="text_b8"><bounds x="104.5" y="54.75" width="7.5" height="1.5" /></bezel>
|
||||
<bezel element="text_b9"><bounds x="112.5" y="54.75" width="7.5" height="1.5" /></bezel>
|
||||
<bezel element="text_b10"><bounds x="120.5" y="54.75" width="7.5" height="1.5" /></bezel>
|
||||
|
||||
<bezel element="text_b11"><bounds x="88.5" y="63" width="7.5" height="1.5" /></bezel>
|
||||
<bezel element="text_b12"><bounds x="95.5" y="63" width="9.5" height="1.5" /></bezel>
|
||||
<bezel element="text_b13"><bounds x="104.5" y="62.6" width="7.5" height="2.1" /></bezel>
|
||||
<bezel element="text_b14"><bounds x="112.5" y="62.6" width="7.5" height="2.1" /></bezel>
|
||||
<bezel element="text_b15"><bounds x="120.5" y="63" width="7.5" height="1.5" /></bezel>
|
||||
|
||||
<element ref="text_p1"><bounds x="90.083" y="69.9" width="3" height="3" /></element>
|
||||
<element ref="text_p2"><bounds x="96.749" y="69.9" width="3" height="3" /></element>
|
||||
<element ref="text_p3"><bounds x="103.415" y="69.9" width="3" height="3" /></element>
|
||||
<element ref="text_p4"><bounds x="110.081" y="69.9" width="3" height="3" /></element>
|
||||
<element ref="text_p5"><bounds x="116.747" y="69.9" width="3" height="3" /></element>
|
||||
<element ref="text_p6"><bounds x="123.413" y="69.9" width="3" height="3" /></element>
|
||||
<element ref="cwhite" blend="multiply"><bounds x="90.083" y="69.9" width="40" height="3" /></element>
|
||||
|
||||
<bezel element="button" inputtag="RESET" inputmask="0x01"><bounds x="88.5" y="48.25" width="7.5" height="3" /></bezel>
|
||||
<bezel element="button" inputtag="IN.1" inputmask="0x02"><bounds x="96.5" y="48.25" width="7.5" height="3" /></bezel>
|
||||
<bezel element="button" inputtag="IN.0" inputmask="0x02"><bounds x="104.5" y="48.25" width="7.5" height="3" /></bezel>
|
||||
<bezel element="button" inputtag="IN.1" inputmask="0x04"><bounds x="112.5" y="48.25" width="7.5" height="3" /></bezel>
|
||||
<bezel element="button" inputtag="IN.4" inputmask="0x01"><bounds x="120.5" y="48.25" width="7.5" height="3" /></bezel>
|
||||
|
||||
<bezel element="button" inputtag="IN.7" inputmask="0x04"><bounds x="88.5" y="56.5" width="7.5" height="3" /></bezel>
|
||||
<bezel element="button" inputtag="IN.0" inputmask="0x01"><bounds x="96.5" y="56.5" width="7.5" height="3" /></bezel>
|
||||
<bezel element="button" inputtag="IN.6" inputmask="0x01"><bounds x="104.5" y="56.5" width="7.5" height="3" /></bezel>
|
||||
<bezel element="button" inputtag="IN.7" inputmask="0x02"><bounds x="112.5" y="56.5" width="7.5" height="3" /></bezel>
|
||||
<bezel element="button" inputtag="IN.6" inputmask="0x02"><bounds x="120.5" y="56.5" width="7.5" height="3" /></bezel>
|
||||
|
||||
<bezel element="button" inputtag="IN.5" inputmask="0x02"><bounds x="88.5" y="64.75" width="7.5" height="3" /></bezel>
|
||||
<bezel element="button" inputtag="IN.4" inputmask="0x02"><bounds x="96.5" y="64.75" width="7.5" height="3" /></bezel>
|
||||
<bezel element="button" inputtag="IN.5" inputmask="0x01"><bounds x="104.5" y="64.75" width="7.5" height="3" /></bezel>
|
||||
<bezel element="button" inputtag="IN.4" inputmask="0x04"><bounds x="112.5" y="64.75" width="7.5" height="3" /></bezel>
|
||||
<bezel element="button" inputtag="IN.1" inputmask="0x01"><bounds x="120.5" y="64.75" width="7.5" height="3" /></bezel>
|
||||
|
||||
<bezel element="button" inputtag="IN.3" inputmask="0x04"><bounds x="88.5" y="73" width="6.166" height="3" /></bezel>
|
||||
<bezel element="button" inputtag="IN.3" inputmask="0x01"><bounds x="95.166" y="73" width="6.166" height="3" /></bezel>
|
||||
<bezel element="button" inputtag="IN.2" inputmask="0x01"><bounds x="101.832" y="73" width="6.166" height="3" /></bezel>
|
||||
<bezel element="button" inputtag="IN.2" inputmask="0x04"><bounds x="108.498" y="73" width="6.166" height="3" /></bezel>
|
||||
<bezel element="button" inputtag="IN.3" inputmask="0x02"><bounds x="115.164" y="73" width="6.166" height="3" /></bezel>
|
||||
<bezel element="button" inputtag="IN.2" inputmask="0x02"><bounds x="121.83" y="73" width="6.166" height="3" /></bezel>
|
||||
</view>
|
||||
|
||||
<view name="Internal Layout (Screen)">
|
||||
<bounds x="0" y="0" width="101.1" height="128.5" />
|
||||
<group ref="display"><bounds x="0" y="0" width="101.1" height="128.5" /></group>
|
||||
</view>
|
||||
|
||||
</mamelayout>
|
@ -35246,6 +35246,9 @@ risc2500a
|
||||
@source:saitek_schess.cpp
|
||||
schess
|
||||
|
||||
@source:saitek_simultano.cpp
|
||||
simultano
|
||||
|
||||
@source:saitek_ssystem3.cpp
|
||||
ssystem3
|
||||
ssystem4
|
||||
|
@ -814,6 +814,7 @@ saitek_prschess.cpp
|
||||
saitek_renaissance.cpp
|
||||
saitek_risc2500.cpp
|
||||
saitek_schess.cpp
|
||||
saitek_simultano.cpp
|
||||
saitek_ssystem3.cpp
|
||||
saitek_stratos.cpp
|
||||
saitek_superstar.cpp
|
||||
|
Loading…
Reference in New Issue
Block a user