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 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 |= 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(); - // 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); - - 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 m_maincpu; + required_device m_pia; + required_device m_board; + required_device m_display; + required_device 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 - - - - + + + + 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 - + - + - @@ -182,6 +181,20 @@ license:CC0 + + + + + + + + + + + + + + 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 + @@ -359,15 +360,42 @@ license:CC0 - + - - + + + + + + + + + + + + + + + + + + + + + + + - - + + - + + + + + + + @@ -430,25 +458,25 @@ license:CC0 - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -460,7 +488,8 @@ license:CC0 - + + 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