From f914fc88540b7f057955296de21335b5930e044b Mon Sep 17 00:00:00 2001 From: hap Date: Sun, 4 Aug 2019 23:21:44 +0200 Subject: New working machine added -------------- Mephisto [hap, Berger] Mephisto II [hap, Berger] Mephisto III [hap, Berger] New working clone added --------------- Mephisto Amsterdam (older) [Berger] Mephisto London 16 Bit [Berger] --- hash/mephisto.xml | 6 +- hash/smondial2.xml | 2 +- scripts/target/mame/mess.lua | 1 + src/mame/drivers/ep64.cpp | 2 +- src/mame/drivers/fidel_chesster.cpp | 2 +- src/mame/drivers/fidel_phantom.cpp | 2 +- src/mame/drivers/mephisto_brikett.cpp | 484 ++++++++++++++++++++++++++ src/mame/drivers/mephisto_glasgow.cpp | 124 +++---- src/mame/drivers/mephisto_mm2.cpp | 58 ++-- src/mame/drivers/mephisto_modena.cpp | 2 +- src/mame/drivers/mephisto_modular.cpp | 118 ++++--- src/mame/drivers/mephisto_montec.cpp | 16 +- src/mame/drivers/mephisto_polgar.cpp | 14 +- src/mame/drivers/mephistp.cpp | 4 +- src/mame/drivers/saitek_risc2500.cpp | 4 +- src/mame/drivers/saitek_stratos.cpp | 2 +- src/mame/includes/saitek_stratos.h | 2 +- src/mame/layout/debutm.lay | 2 +- src/mame/layout/fidel_desdis.lay | 6 +- src/mame/layout/fidel_desdis_68kg.lay | 6 +- src/mame/layout/fidel_desdis_68kr.lay | 6 +- src/mame/layout/horseran.lay | 98 +++--- src/mame/layout/k28m2.lay | 2 +- src/mame/layout/mephisto_1.lay | 199 +++++++++++ src/mame/layout/mephisto_3.lay | 607 +++++++++++++++++++++++++++++++++ src/mame/layout/mephisto_amsterdam.lay | 80 ++--- src/mame/layout/mephisto_bup.lay | 53 +-- src/mame/layout/mephisto_glasgow.lay | 80 ++--- src/mame/layout/mephisto_megaiv.lay | 2 +- src/mame/layout/mephisto_mm2.lay | 63 ++-- src/mame/layout/mephisto_modena.lay | 2 +- src/mame/layout/mephisto_montec.lay | 2 +- src/mame/layout/mephisto_smondial2.lay | 2 +- src/mame/layout/novag_cforte.lay | 10 +- src/mame/layout/saitek_corona.lay | 6 +- src/mame/layout/saitek_stratos.lay | 6 +- src/mame/layout/saitek_tking.lay | 6 +- src/mame/mame.lst | 33 +- src/mame/mess.flt | 1 + 39 files changed, 1719 insertions(+), 396 deletions(-) create mode 100644 src/mame/drivers/mephisto_brikett.cpp create mode 100644 src/mame/layout/mephisto_1.lay create mode 100644 src/mame/layout/mephisto_3.lay diff --git a/hash/mephisto.xml b/hash/mephisto.xml index 2c6e9dc306d..e0a0e510222 100644 --- a/hash/mephisto.xml +++ b/hash/mephisto.xml @@ -4,7 +4,7 @@ Mephisto HG 240 Opening Library 1984 - Hegener & Glaser + Hegener + Glaser @@ -16,7 +16,7 @@ Mephisto HG 440 Opening Library 1987 - Hegener & Glaser + Hegener + Glaser @@ -28,7 +28,7 @@ Mephisto HG 550 Opening Library 1990 - Hegener & Glaser + Hegener + Glaser diff --git a/hash/smondial2.xml b/hash/smondial2.xml index d5672cdef81..49ce1ac73ce 100644 --- a/hash/smondial2.xml +++ b/hash/smondial2.xml @@ -4,7 +4,7 @@ College Module 1989 - Hegener & Glaser + Hegener + Glaser diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index 5eba7aecb5d..8110c60f3d2 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -2300,6 +2300,7 @@ files { createMESSProjects(_target, _subtarget, "hegener") files { + MAME_DIR .. "src/mame/drivers/mephisto_brikett.cpp", MAME_DIR .. "src/mame/drivers/mephisto_glasgow.cpp", MAME_DIR .. "src/mame/drivers/mephisto_mm2.cpp", MAME_DIR .. "src/mame/drivers/mephisto_modena.cpp", diff --git a/src/mame/drivers/ep64.cpp b/src/mame/drivers/ep64.cpp index f16b62b3cb2..0e4fa76c27e 100644 --- a/src/mame/drivers/ep64.cpp +++ b/src/mame/drivers/ep64.cpp @@ -688,5 +688,5 @@ ROM_END // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS COMP( 1985, ep64, 0, 0, ep64, ep64, ep64_state, empty_init, "Enterprise Computers", "Enterprise Sixty Four", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -COMP( 1985, phc64, ep64, 0, ep64, ep64, ep64_state, empty_init, "Hegener & Glaser", "Mephisto PHC 64 (Germany)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +COMP( 1985, phc64, ep64, 0, ep64, ep64, ep64_state, empty_init, "Hegener + Glaser", "Mephisto PHC 64 (Germany)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) COMP( 1986, ep128, ep64, 0, ep128, ep64, ep64_state, empty_init, "Enterprise Computers", "Enterprise One Two Eight", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) diff --git a/src/mame/drivers/fidel_chesster.cpp b/src/mame/drivers/fidel_chesster.cpp index 2c4214cee7b..323bcdc1a70 100644 --- a/src/mame/drivers/fidel_chesster.cpp +++ b/src/mame/drivers/fidel_chesster.cpp @@ -5,7 +5,7 @@ Fidelity Chesster Challenger -These were made after Hegener & Glaser took over Fidelity(design phase started +These were made after Hegener + Glaser took over Fidelity(design phase started before that). Kishon Chesster was released under both Fidelity, and Mephisto brands. ******************************************************************************* diff --git a/src/mame/drivers/fidel_phantom.cpp b/src/mame/drivers/fidel_phantom.cpp index a131c5e277b..745bb7bb6ee 100644 --- a/src/mame/drivers/fidel_phantom.cpp +++ b/src/mame/drivers/fidel_phantom.cpp @@ -6,7 +6,7 @@ Fidelity Phantom (model 6100) Fidelity licensed the design of the Milton/Phantom motorized chessboard and released their own version. It has a small LCD panel added, the rest looks nearly the same from -the outside. After Fidelity was taken over by H&G, it was rereleased in 1990 as the +the outside. After Fidelity was taken over by H+G, it was rereleased in 1990 as the Mephisto Phantom. This is assumed to be identical. Hardware notes: diff --git a/src/mame/drivers/mephisto_brikett.cpp b/src/mame/drivers/mephisto_brikett.cpp new file mode 100644 index 00000000000..08799e9131d --- /dev/null +++ b/src/mame/drivers/mephisto_brikett.cpp @@ -0,0 +1,484 @@ +// license:BSD-3-Clause +// copyright-holders:hap +// thanks-to:Berger +/****************************************************************************** + +Hegener + Glaser AG Mephisto (I)/1X/II/ESB II/III +The base device is nicknamed the "Brikett" + +Mephisto is the 1st chess computer by H+G, chess engine by Thomas Nitsche & Elmar Henne. +Initially, it didn't support an electronic chessboard. H+G released a dedicated ESB II +in 1981, and in 1982 they released ESB 3000 and ESB 6000 for use with ESB II/III programs. + +Hardware notes: + +1st model (Mephisto, Mephisto II 1981): +- 2 PCBs: DH 4001-C(computer), DH 4002-C(LCD/keypad) +- CDP1802CE @ 3.579MHz +- CDP1852CE (I/O port chip), external port +- 8*MWS5101L3 (256x4 RAM) +- 4-digit 7seg LCD +- piezo, TTL, 16-button keypad + +2nd model (Mephisto II 1982, Mephisto III): (listed differences) +- PCB label: DH 4005-101 01 +- CDP1802ACE @ 6.144MHz, later serials also seen with 1806 CPU +- 2 XTALs (3.579MHz and 6.144MHz), lower speed when running on battery +- 2*TC5514P (1KBx4 RAM), unpopulated on some Mephisto III + +Mephisto program module: +- PCB label: DF 4003-B +- 6*CDP1833CE (1KB ROM) + +Mephisto II program module: +- PCB label: HG 4005 02 301 00 +- 3*TC5334P (4KB ROM) +- 2*TC5514P (1KBx4 RAM) +- 2*CDP1859CE (4bit latch) + +Mephisto III program module: +- PCB label: HG 4005 02 401 00 +- 2*HN4827128G (16KB EPROM), also seen with HN613256P G81 (32KB ROM) +- 2*CDM6116E1 (2KB RAM) +- DM74LS373N (latch) +- HCF4556BE (chip select?) + +ESB 6000 chessboard: +- CD4017, 74373, 74374 +- 64 reed switches (magnet sensors) +- 64 leds + power led + +ESB 3000 hardware is probably same as ESB 6000. +There are no other known external port peripherals. + +TODO: +- beeper is noisy on mephisto/mephisto2, is it normal? caused by interrupts triggering mid-beep + (mephisto3 disables interrupts during beep) + +******************************************************************************/ + +#include "emu.h" +#include "cpu/cosmac/cosmac.h" +#include "machine/cdp1852.h" +#include "machine/sensorboard.h" +#include "machine/timer.h" +#include "sound/dac.h" +#include "sound/volt_reg.h" +#include "video/pwm.h" +#include "speaker.h" + +// internal artwork +#include "mephisto_1.lh" // clickable +#include "mephisto_3.lh" // clickable + + +namespace { + +class brikett_state : public driver_device +{ +public: + brikett_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), + m_extport(*this, "extport"), + m_board(*this, "board"), + m_display(*this, "display"), + m_dac(*this, "dac"), + m_speaker_off(*this, "speaker_off"), + m_inputs(*this, "IN.%u", 0) + { } + + DECLARE_INPUT_CHANGED_MEMBER(reset_button) { if (newval) machine_reset(); } + DECLARE_INPUT_CHANGED_MEMBER(switch_cpu_freq) { set_cpu_freq(); } + + // machine drivers + void mephisto(machine_config &config); + void mephisto2(machine_config &config); + void mephisto3(machine_config &config); + +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + +private: + // devices/pointers + required_device m_maincpu; + required_device m_extport; + optional_device m_board; + required_device m_display; + required_device m_dac; + required_device m_speaker_off; + optional_ioport_array<4+2> m_inputs; + + // address maps + void mephisto_map(address_map &map); + void mephisto2_map(address_map &map); + void mephisto3_map(address_map &map); + void mephisto_io(address_map &map); + + void set_cpu_freq(); + + // I/O handlers + INTERRUPT_GEN_MEMBER(interrupt); + DECLARE_READ_LINE_MEMBER(clear_r); + DECLARE_WRITE_LINE_MEMBER(q_w); + DECLARE_WRITE8_MEMBER(lcd_w); + DECLARE_READ8_MEMBER(input_r); + DECLARE_READ8_MEMBER(sound_r); + + DECLARE_WRITE8_MEMBER(esb_w); + DECLARE_READ_LINE_MEMBER(esb_r); + + TIMER_DEVICE_CALLBACK_MEMBER(speaker_off) { m_dac->write(0); } + + u8 m_lcd_mask; + u8 m_digit_idx; + u8 m_digit_data[4]; + bool m_reset; + + u8 m_esb_led; + u8 m_esb_row; + u8 m_esb_select; +}; + +void brikett_state::machine_start() +{ + // zerofill + m_lcd_mask = 0; + m_digit_idx = 0; + memset(m_digit_data, 0, sizeof(m_digit_data)); + + m_esb_led = 0; + m_esb_row = 0; + m_esb_select = 0; + + // register for savestates + save_item(NAME(m_lcd_mask)); + save_item(NAME(m_digit_idx)); + save_item(NAME(m_digit_data)); + + save_item(NAME(m_esb_led)); + save_item(NAME(m_esb_row)); + save_item(NAME(m_esb_select)); +} + +void brikett_state::machine_reset() +{ + m_reset = true; + m_digit_idx = 0; + + set_cpu_freq(); +} + +void brikett_state::set_cpu_freq() +{ + // 2nd hardware model has 2 XTALs, it will increase CPU voltage (and speed) when running on mains power + m_maincpu->set_unscaled_clock((m_inputs[4].read_safe(0) & 1) ? 6.144_MHz_XTAL : 3.579545_MHz_XTAL); +} + + + +/****************************************************************************** + I/O +******************************************************************************/ + +INTERRUPT_GEN_MEMBER(brikett_state::interrupt) +{ + m_maincpu->set_input_line(COSMAC_INPUT_LINE_INT, HOLD_LINE); +} + +READ_LINE_MEMBER(brikett_state::clear_r) +{ + // CLEAR low + RESET high resets cpu + int ret = (m_reset) ? 0 : 1; + m_reset = false; + return ret; +} + +WRITE_LINE_MEMBER(brikett_state::q_w) +{ + // Q: LCD digit data mask + m_lcd_mask = state ? 0xff : 0; +} + +WRITE8_MEMBER(brikett_state::lcd_w) +{ + // write/shift LCD digit (4*CD4015) + // note: last digit "dp" is the colon in the middle + m_digit_data[m_digit_idx] = (m_digit_data[m_digit_idx] & ~data) | (m_lcd_mask & data); + + m_display->write_row(m_digit_idx, m_digit_data[m_digit_idx]); + m_display->update(); + + m_digit_idx = (m_digit_idx + 1) & 3; +} + +READ8_MEMBER(brikett_state::sound_r) +{ + // port 1 read enables the speaker + if (!machine().side_effects_disabled()) + { + m_dac->write(1); + m_speaker_off->adjust(attotime::from_usec(25)); + } + + return 0xff; +} + +READ8_MEMBER(brikett_state::input_r) +{ + u8 data = 0; + + // a0-a3,d0-d3: read keypad + for (int i = 0; i < 4; i++) + if (BIT(~offset, i)) + data |= m_inputs[i]->read(); + + return data; +} + +WRITE8_MEMBER(brikett_state::esb_w) +{ + if (!m_inputs[5].read_safe(0)) + { + // chessboard disabled + m_display->matrix_partial(4, 8, 0, 0); + return; + } + + // CDP1852 SR clocks CD4017, goes to external port together with DO0-DO7 + // 4017 Q0: N/C + // 4017 Q1 + d0-d7: 74374 to led data + // 4017 Q2 + d0-d7: 74373 to row select + // 4017 Q2-Q9: column select + m_esb_select = (m_esb_select + 1) % 10; + + // d0-d7 ANDed together: 4017 reset + if (data == 0xff) + m_esb_select = 0; + + if (m_esb_select == 1) + m_esb_led = data; + + if (m_esb_select == 2) + m_esb_row = data; + + // update chessboard leds + m_display->matrix_partial(4, 8, ~m_esb_row, m_esb_led); +} + +READ_LINE_MEMBER(brikett_state::esb_r) +{ + // EF1: read chessboard sensor + if (m_board && m_inputs[5].read_safe(0)) + return (m_board->read_file(m_esb_select - 2) & ~m_esb_row) ? 0 : 1; + else + return 0; +} + + + +/****************************************************************************** + Address Maps +******************************************************************************/ + +void brikett_state::mephisto_map(address_map &map) +{ + map(0x0000, 0x17ff).rom(); + map(0xf400, 0xf7ff).ram(); + map(0xfb00, 0xfb00).mirror(0x00ff).w(FUNC(brikett_state::lcd_w)); + map(0xfff0, 0xffff).r(FUNC(brikett_state::input_r)); +} + +void brikett_state::mephisto2_map(address_map &map) +{ + mephisto_map(map); + map(0x0000, 0x2fff).rom(); + map(0xf000, 0xf3ff).ram(); +} + +void brikett_state::mephisto3_map(address_map &map) +{ + mephisto_map(map); + map(0x0000, 0x7fff).rom().nopw(); // dummy write with sound_r + map(0x8000, 0x8fff).ram(); +} + +void brikett_state::mephisto_io(address_map &map) +{ + map(0x01, 0x01).r(FUNC(brikett_state::sound_r)); + map(0x02, 0x02).w(m_extport, FUNC(cdp1852_device::write)); +} + + + +/****************************************************************************** + Input Ports +******************************************************************************/ + +static INPUT_PORTS_START( mephisto ) + PORT_START("IN.0") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_NAME("CL") + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("A / 1") + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("ENT") + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("B / 2 / Pawn") + + PORT_START("IN.1") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_SPACE) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("STA") // enter move + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("C / 3 / Knight") + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_L) PORT_NAME("LEV") + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_D) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("D / 4 / Bishop") + + PORT_START("IN.2") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_I) PORT_NAME("LIST") + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("E / 5 / Rook") + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("SW / 9") + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("F / 6 / Queen") + + PORT_START("IN.3") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_W) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("WS / 0") + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_G) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("G / 7 / King") + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_V) PORT_NAME("REV") + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("H / 8") + + PORT_START("RESET") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("RES") PORT_CHANGED_MEMBER(DEVICE_SELF, brikett_state, reset_button, nullptr) +INPUT_PORTS_END + +static INPUT_PORTS_START( mephisto2 ) + PORT_INCLUDE( mephisto ) + + PORT_START("IN.4") // 2 XTALs on PCB + PORT_CONFNAME( 0x01, 0x01, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, brikett_state, switch_cpu_freq, nullptr) + PORT_CONFSETTING( 0x00, "3.579MHz (Battery)" ) + PORT_CONFSETTING( 0x01, "6.144MHz (Mains)" ) +INPUT_PORTS_END + +static INPUT_PORTS_START( mephisto3 ) + PORT_INCLUDE( mephisto2 ) + + PORT_MODIFY("IN.1") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_I) PORT_NAME("INFO") + + PORT_MODIFY("IN.2") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_O) PORT_NAME("POS") + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_CODE(KEYCODE_LEFT) PORT_NAME("Left / Black / 9") + + PORT_MODIFY("IN.3") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("Right / White / 0") + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_M) PORT_NAME("MEM") + + PORT_START("IN.5") // optional + PORT_CONFNAME( 0x01, 0x01, "ESB 6000" ) + PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) + PORT_CONFSETTING( 0x01, DEF_STR( On ) ) +INPUT_PORTS_END + + + +/****************************************************************************** + Machine Drivers +******************************************************************************/ + +void brikett_state::mephisto(machine_config &config) +{ + /* basic machine hardware */ + CDP1802(config, m_maincpu, 3.579545_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &brikett_state::mephisto_map); + m_maincpu->set_addrmap(AS_IO, &brikett_state::mephisto_io); + m_maincpu->clear_cb().set(FUNC(brikett_state::clear_r)); + m_maincpu->q_cb().set(FUNC(brikett_state::q_w)); + m_maincpu->tpb_cb().set(m_extport, FUNC(cdp1852_device::clock_w)); + m_maincpu->ef1_cb().set_constant(0); // external port + m_maincpu->ef3_cb().set_constant(0); // external port, but unused + + const attotime irq_period = attotime::from_hz(3.579545_MHz_XTAL / 0x10000); // through SAJ300T + m_maincpu->set_periodic_int(FUNC(brikett_state::interrupt), irq_period); + + CDP1852(config, m_extport); + m_extport->mode_cb().set_constant(1); + m_extport->do_cb().set_nop(); + + /* video hardware */ + PWM_DISPLAY(config, m_display).set_size(4, 8); + m_display->set_segmask(0xf, 0x7f); + config.set_default_layout(layout_mephisto_1); + + /* 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); + + TIMER(config, m_speaker_off).configure_generic(FUNC(brikett_state::speaker_off)); +} + +void brikett_state::mephisto2(machine_config &config) +{ + mephisto(config); + + /* basic machine hardware */ + m_maincpu->set_clock(6.144_MHz_XTAL); // see set_cpu_freq + m_maincpu->set_addrmap(AS_PROGRAM, &brikett_state::mephisto2_map); +} + +void brikett_state::mephisto3(machine_config &config) +{ + mephisto2(config); + + /* basic machine hardware */ + m_maincpu->set_addrmap(AS_PROGRAM, &brikett_state::mephisto3_map); + m_maincpu->q_cb().set(FUNC(brikett_state::q_w)).invert(); + m_maincpu->ef1_cb().set(FUNC(brikett_state::esb_r)); + m_extport->do_cb().set(FUNC(brikett_state::esb_w)); + + SENSORBOARD(config, m_board).set_type(sensorboard_device::MAGNETS); + m_board->init_cb().set(m_board, FUNC(sensorboard_device::preset_chess)); + m_board->set_delay(attotime::from_msec(250)); + + m_display->set_size(4+8, 8); + config.set_default_layout(layout_mephisto_3); +} + + + +/****************************************************************************** + ROM Definitions +******************************************************************************/ + +ROM_START( mephisto ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD("89810", 0x0000, 0x0400, CRC(6816be9e) SHA1(f5f1d5084925fe239f5b2ecf4724751e0dc4fc51) ) // CDP1833CE + ROM_LOAD("89811", 0x0400, 0x0400, CRC(15febc73) SHA1(10353a7f021993f2cf7d509a928425617e1786fb) ) // " + ROM_LOAD("89812", 0x0800, 0x0400, CRC(5e45eb65) SHA1(9d46e5f405bd48705d1e29826917522595fc9768) ) // " + ROM_LOAD("89813", 0x0c00, 0x0400, CRC(62da3d89) SHA1(a7f9ada7037e0bd61420358c147b2f57ee47ebcb) ) // " + ROM_LOAD("89814", 0x1000, 0x0400, CRC(8e212d9c) SHA1(5df221ce8ca4fbb74f34f31738db4c2efee7fb01) ) // " + ROM_LOAD("89815", 0x1400, 0x0400, CRC(072e0b01) SHA1(5b1074932b3f21ab01392250061c093de4af3624) ) // " +ROM_END + + +ROM_START( mephisto2 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD("5619_03_351", 0x0000, 0x1000, CRC(5b13d7bf) SHA1(e1b7dee278a03f75e8a1554715fca4c7fbbc1cb8) ) // TC5334P + ROM_LOAD("5620_03_352", 0x1000, 0x1000, CRC(e93bf521) SHA1(42f9adce0d5e25b1b9d10217f8e3e0994d7b70d5) ) // " + ROM_LOAD("5621_03_353", 0x2000, 0x1000, CRC(430dac62) SHA1(a0e23fcb4cfa27778a9398bd4994a7792e4541d0) ) // " +ROM_END + + +ROM_START( mephisto3 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD("101", 0x0000, 0x4000, CRC(923de04f) SHA1(ca7cb3e29aeb3432a815c9d58bb0ed45e7302581) ) // HN4827128G-45 + ROM_LOAD("201", 0x4000, 0x4000, CRC(0c3cb8fa) SHA1(31449422142c19fc71474a057fc5d6af8a86be7d) ) // " +ROM_END + +} // anonymous namespace + + + +/****************************************************************************** + Drivers +******************************************************************************/ + +// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS +CONS( 1980, mephisto, 0, 0, mephisto, mephisto, brikett_state, empty_init, "Hegener + Glaser", "Mephisto", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1981, mephisto2, 0, 0, mephisto2, mephisto2, brikett_state, empty_init, "Hegener + Glaser", "Mephisto II", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1983, mephisto3, 0, 0, mephisto3, mephisto3, brikett_state, empty_init, "Hegener + Glaser", "Mephisto III", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/drivers/mephisto_glasgow.cpp b/src/mame/drivers/mephisto_glasgow.cpp index 3321ae73d0a..015740f5b55 100644 --- a/src/mame/drivers/mephisto_glasgow.cpp +++ b/src/mame/drivers/mephisto_glasgow.cpp @@ -8,7 +8,7 @@ sp_rinter@gmx.de 68000 CPU 64 KB ROM 16 KB RAM -4 Digit LC Display +4 Digit LCD 3* 74LS138 Decoder/Multiplexer 1*74LS74 Dual positive edge triggered D Flip Flop @@ -238,7 +238,6 @@ void glasgow_state::glasgow_mem(address_map &map) void amsterd_state::amsterd_mem(address_map &map) { - // ADDRESS_MAP_GLOBAL_MASK(0x7FFFF) map(0x000000, 0x00ffff).rom(); map(0x800002, 0x800002).w(FUNC(amsterd_state::write_lcd)); map(0x800008, 0x800008).w(FUNC(amsterd_state::write_lcd_flag)); @@ -252,7 +251,6 @@ void amsterd_state::amsterd_mem(address_map &map) void amsterd_state::dallas32_mem(address_map &map) { - // ADDRESS_MAP_GLOBAL_MASK(0x1FFFF) map(0x000000, 0x00ffff).rom(); map(0x010000, 0x01ffff).ram(); // 64KB map(0x800002, 0x800002).w(FUNC(amsterd_state::write_lcd32)); @@ -264,47 +262,47 @@ void amsterd_state::dallas32_mem(address_map &map) map(0x800088, 0x800088).w("board", FUNC(mephisto_board_device::led_w)); } -static INPUT_PORTS_START( new_keyboard ) //Amsterdam, Dallas 32, Roma, Roma 32 +static INPUT_PORTS_START( new_keyboard ) PORT_START("LINE0") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("A 1") PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("B 2") PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C 3") PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("D 4") PORT_CODE(KEYCODE_D) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("E 5") PORT_CODE(KEYCODE_E) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("F 6") PORT_CODE(KEYCODE_F) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("9") PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("A / 1") PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("B / 2 / Pawn") PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C / 3 / Knight") PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("D / 4 / Bishop") PORT_CODE(KEYCODE_D) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("E / 5 / Rook") PORT_CODE(KEYCODE_E) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("F / 6 / Queen") PORT_CODE(KEYCODE_F) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Left / Black / 9") PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_CODE(KEYCODE_LEFT) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Right / White / 0") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_CODE(KEYCODE_RIGHT) PORT_START("LINE1") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("INF") PORT_CODE(KEYCODE_I) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("INFO") PORT_CODE(KEYCODE_I) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("POS") PORT_CODE(KEYCODE_O) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("LEV") PORT_CODE(KEYCODE_L) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("MEM") PORT_CODE(KEYCODE_M) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CLR") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("G 7") PORT_CODE(KEYCODE_G) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H 8") PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("G / 7 / King") PORT_CODE(KEYCODE_G) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H / 8") PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) INPUT_PORTS_END -static INPUT_PORTS_START( old_keyboard ) //Glasgow,Dallas +static INPUT_PORTS_START( old_keyboard ) PORT_START("LINE0") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("9") PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Left / Black / 9") PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_CODE(KEYCODE_LEFT) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("C 3") PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("C / 3 / Knight") PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("D 4") PORT_CODE(KEYCODE_D) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("A 1") PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("F 6") PORT_CODE(KEYCODE_F) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("B 2") PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("D / 4 / Bishop") PORT_CODE(KEYCODE_D) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("A / 1") PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("F / 6 / Queen") PORT_CODE(KEYCODE_F) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("B / 2 / Pawn") PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_START("LINE1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("E 5") PORT_CODE(KEYCODE_E) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("INF") PORT_CODE(KEYCODE_I) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("E / 5 / Rook") PORT_CODE(KEYCODE_E) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("INFO") PORT_CODE(KEYCODE_I) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Right / White / 0") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_CODE(KEYCODE_RIGHT) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("POS") PORT_CODE(KEYCODE_O) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("H 8") PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("H / 8") PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("LEV") PORT_CODE(KEYCODE_L) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("G 7") PORT_CODE(KEYCODE_G) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("G / 7 / King") PORT_CODE(KEYCODE_G) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("MEM") PORT_CODE(KEYCODE_M) INPUT_PORTS_END @@ -358,44 +356,43 @@ void amsterd_state::dallas32(machine_config &config) ROM_START( glasgow ) ROM_REGION( 0x10000, "maincpu", 0 ) - //ROM_LOAD("glasgow.rom", 0x000000, 0x10000, CRC(3e73eff3) ) - ROM_LOAD16_BYTE("me3_3_1u.410",0x00000, 0x04000,CRC(bc8053ba) SHA1(57ea2d5652bfdd77b17d52ab1914de974bd6be12)) - ROM_LOAD16_BYTE("me3_1_1l.410",0x00001, 0x04000,CRC(d5263c39) SHA1(1bef1cf3fd96221eb19faecb6ec921e26ac10ac4)) - ROM_LOAD16_BYTE("me3_4_2u.410",0x08000, 0x04000,CRC(8dba504a) SHA1(6bfab03af835cdb6c98773164d32c76520937efe)) - ROM_LOAD16_BYTE("me3_2_2l.410",0x08001, 0x04000,CRC(b3f27827) SHA1(864ba897d24024592d08c4ae090aa70a2cc5f213)) + ROM_LOAD16_BYTE("me3_3_1u.410", 0x00000, 0x04000, CRC(bc8053ba) SHA1(57ea2d5652bfdd77b17d52ab1914de974bd6be12) ) + ROM_LOAD16_BYTE("me3_1_1l.410", 0x00001, 0x04000, CRC(d5263c39) SHA1(1bef1cf3fd96221eb19faecb6ec921e26ac10ac4) ) + ROM_LOAD16_BYTE("me3_4_2u.410", 0x08000, 0x04000, CRC(8dba504a) SHA1(6bfab03af835cdb6c98773164d32c76520937efe) ) + ROM_LOAD16_BYTE("me3_2_2l.410", 0x08001, 0x04000, CRC(b3f27827) SHA1(864ba897d24024592d08c4ae090aa70a2cc5f213) ) ROM_END ROM_START( amsterd ) ROM_REGION16_BE( 0x1000000, "maincpu", 0 ) - //ROM_LOAD16_BYTE("output.bin", 0x000000, 0x10000, CRC(3e73eff3) ) - ROM_LOAD16_BYTE("amsterda-u.bin",0x00000, 0x05a00,CRC(16cefe29) SHA1(9f8c2896e92fbfd47159a59cb5e87706092c86f4)) - ROM_LOAD16_BYTE("amsterda-l.bin",0x00001, 0x05a00,CRC(c859dfde) SHA1(b0bca6a8e698c322a8c597608db6735129d6cdf0)) + ROM_LOAD16_BYTE("amsterda-u.bin", 0x00000, 0x08000, CRC(0a75514e) SHA1(27daf78b0aba4d7a293b96b3c1fa92f6ee9bcb59) ) + ROM_LOAD16_BYTE("amsterda-l.bin", 0x00001, 0x08000, CRC(6e17d8fa) SHA1(e0f9e57aaa445f6ff7cbe868658ed7bcfa7e31fb) ) ROM_END +ROM_START( amsterda ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD16_BYTE("vr_1_1", 0x00000, 0x04000, CRC(a186cc81) SHA1(903f93243536de3c2778ba3d38dcf46ae568862d) ) + ROM_LOAD16_BYTE("vl_2_1", 0x00001, 0x04000, CRC(9b326226) SHA1(1b29319643d63a43ac84c1af08e02a4fc4fc6ffa) ) + ROM_LOAD16_BYTE("br_3_1", 0x08000, 0x04000, CRC(372fd7fe) SHA1(c7c11796450fe202e9641170cd0625461cee24af) ) + ROM_LOAD16_BYTE("bl_4_1", 0x08001, 0x04000, CRC(533e584a) SHA1(0e4510977dc627125c278920492bc137793a9554) ) +ROM_END -ROM_START( dallas ) - ROM_REGION16_BE( 0x1000000, "maincpu", 0 ) - ROM_LOAD16_BYTE("dal_g_pr.dat",0x00000, 0x04000,CRC(66deade9) SHA1(07ec6b923f2f053172737f1fc94aec84f3ea8da1)) - ROM_LOAD16_BYTE("dal_g_pl.dat",0x00001, 0x04000,CRC(c5b6171c) SHA1(663167a3839ed7508ecb44fd5a1b2d3d8e466763)) - ROM_LOAD16_BYTE("dal_g_br.dat",0x08000, 0x04000,CRC(e24d7ec7) SHA1(a936f6fcbe9bfa49bf455f2d8a8243d1395768c1)) - ROM_LOAD16_BYTE("dal_g_bl.dat",0x08001, 0x04000,CRC(144a15e2) SHA1(c4fcc23d55fa5262f5e01dbd000644a7feb78f32)) +ROM_START( dallas32 ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD("dallas32.epr", 0x000000, 0x10000, CRC(83b9ff3f) SHA1(97bf4cb3c61f8ec328735b3c98281bba44b30a28) ) ROM_END ROM_START( dallas16 ) ROM_REGION16_BE( 0x1000000, "maincpu", 0 ) - ROM_LOAD16_BYTE("dallas-u.bin",0x00000, 0x06f00,CRC(8c1462b4) SHA1(8b5f5a774a835446d08dceacac42357b9e74cfe8)) - ROM_LOAD16_BYTE("dallas-l.bin",0x00001, 0x06f00,CRC(f0d5bc03) SHA1(4b1b9a71663d5321820b4cf7da205e5fe5d3d001)) + ROM_LOAD16_BYTE("dallas-u.bin", 0x00000, 0x08000, CRC(70b741f7) SHA1(23d55ed0fea127b727d725c367ee1932ff5af39f) ) + ROM_LOAD16_BYTE("dallas-l.bin", 0x00001, 0x08000, CRC(69300ad3) SHA1(57ec1b955b1ddfe722011ff5da68a0cd71af9251) ) ROM_END -ROM_START( roma ) +ROM_START( dallas16a ) ROM_REGION16_BE( 0x1000000, "maincpu", 0 ) - ROM_LOAD16_BYTE("roma16-u.bin", 0x00000, 0x08000, CRC(111d030f) SHA1(e027f7e7018d28ab794e7730392506056809db6b)) - ROM_LOAD16_BYTE("roma16-l.bin", 0x00001, 0x08000, CRC(8245ddd2) SHA1(ab048b60fdc4358913a5d07b6fee863b66dd6734)) -ROM_END - -ROM_START( dallas32 ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD("dallas32.epr", 0x000000, 0x10000, CRC(83b9ff3f) SHA1(97bf4cb3c61f8ec328735b3c98281bba44b30a28) ) + ROM_LOAD16_BYTE("dal_g_pr", 0x00000, 0x04000, CRC(66deade9) SHA1(07ec6b923f2f053172737f1fc94aec84f3ea8da1) ) + ROM_LOAD16_BYTE("dal_g_pl", 0x00001, 0x04000, CRC(c5b6171c) SHA1(663167a3839ed7508ecb44fd5a1b2d3d8e466763) ) + ROM_LOAD16_BYTE("dal_g_br", 0x08000, 0x04000, CRC(e24d7ec7) SHA1(a936f6fcbe9bfa49bf455f2d8a8243d1395768c1) ) + ROM_LOAD16_BYTE("dal_g_bl", 0x08001, 0x04000, CRC(144a15e2) SHA1(c4fcc23d55fa5262f5e01dbd000644a7feb78f32) ) ROM_END ROM_START( roma32 ) @@ -403,16 +400,23 @@ ROM_START( roma32 ) ROM_LOAD("roma32.bin", 0x000000, 0x10000, CRC(587d03bf) SHA1(504e9ff958084700076d633f9c306fc7baf64ffd) ) ROM_END +ROM_START( roma16 ) + ROM_REGION16_BE( 0x1000000, "maincpu", 0 ) + ROM_LOAD16_BYTE("roma16-u.bin", 0x00000, 0x08000, CRC(111d030f) SHA1(e027f7e7018d28ab794e7730392506056809db6b) ) + ROM_LOAD16_BYTE("roma16-l.bin", 0x00001, 0x08000, CRC(8245ddd2) SHA1(ab048b60fdc4358913a5d07b6fee863b66dd6734) ) +ROM_END + /*************************************************************************** Game drivers ***************************************************************************/ -/* YEAR, NAME, PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -CONS( 1984, glasgow, 0, 0, glasgow, old_keyboard, glasgow_state, empty_init, "Hegener & Glaser", "Mephisto III-S Glasgow", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1985, amsterd, 0, 0, amsterd, new_keyboard, amsterd_state, empty_init, "Hegener & Glaser", "Mephisto Amsterdam", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1986, dallas, glasgow, 0, glasgow, old_keyboard, glasgow_state, empty_init, "Hegener & Glaser", "Mephisto Dallas", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1986, dallas16, amsterd, 0, amsterd, new_keyboard, amsterd_state, empty_init, "Hegener & Glaser", "Mephisto Dallas 16 Bit", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1986, dallas32, amsterd, 0, dallas32, new_keyboard, amsterd_state, empty_init, "Hegener & Glaser", "Mephisto Dallas 32 Bit", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1987, roma, amsterd, 0, amsterd, new_keyboard, amsterd_state, empty_init, "Hegener & Glaser", "Mephisto Roma", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1987, roma32, amsterd, 0, dallas32, new_keyboard, amsterd_state, empty_init, "Hegener & Glaser", "Mephisto Roma 32 Bit", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +/* YEAR, NAME, PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +CONS( 1984, glasgow, 0, 0, glasgow, old_keyboard, glasgow_state, empty_init, "Hegener + Glaser", "Mephisto III-S Glasgow", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1985, amsterd, 0, 0, amsterd, new_keyboard, amsterd_state, empty_init, "Hegener + Glaser", "Mephisto Amsterdam", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1985, amsterda, amsterd, 0, glasgow, old_keyboard, glasgow_state, empty_init, "Hegener + Glaser", "Mephisto Amsterdam (older)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1986, dallas32, 0, 0, dallas32, new_keyboard, amsterd_state, empty_init, "Hegener + Glaser", "Mephisto Dallas 68020", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1986, dallas16, dallas32, 0, amsterd, new_keyboard, amsterd_state, empty_init, "Hegener + Glaser", "Mephisto Dallas 68000", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1986, dallas16a, dallas32, 0, glasgow, old_keyboard, glasgow_state, empty_init, "Hegener + Glaser", "Mephisto Dallas 68000 (older)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1987, roma32, 0, 0, dallas32, new_keyboard, amsterd_state, empty_init, "Hegener + Glaser", "Mephisto Roma 68020", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1987, roma16, roma32, 0, amsterd, new_keyboard, amsterd_state, empty_init, "Hegener + Glaser", "Mephisto Roma 68000", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/drivers/mephisto_mm2.cpp b/src/mame/drivers/mephisto_mm2.cpp index bb3d8c4b660..fba62a0a70e 100644 --- a/src/mame/drivers/mephisto_mm2.cpp +++ b/src/mame/drivers/mephisto_mm2.cpp @@ -203,7 +203,7 @@ void mephisto_state::mm2_mem(address_map &map) static INPUT_PORTS_START( mephisto ) PORT_START("KEY1_0") //Port $2c00 - PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("CLEAR") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) + PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) PORT_START("KEY1_1") //Port $2c01 PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("POS") PORT_CODE(KEYCODE_O) PORT_START("KEY1_2") //Port $2c02 @@ -215,45 +215,45 @@ static INPUT_PORTS_START( mephisto ) PORT_START("KEY1_5") //Port $2c05 PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_START("KEY1_6") //Port $2c06 - PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) + PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Right / White / 0") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_CODE(KEYCODE_RIGHT) PORT_START("KEY1_7") //Port $2c07 - PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("9") PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) + PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Left / Black / 9") PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_CODE(KEYCODE_LEFT) PORT_START("KEY2_0") //Port $2c08 - PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("E 5") PORT_CODE(KEYCODE_E) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) + PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("E / 5 / Queen") PORT_CODE(KEYCODE_E) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_START("KEY2_1") //Port $2c09 - PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("F 6") PORT_CODE(KEYCODE_F) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) + PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("F / 6 / King") PORT_CODE(KEYCODE_F) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_START("KEY2_2") //Port $2c0a - PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("G 7") PORT_CODE(KEYCODE_G) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) + PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("G / 7") PORT_CODE(KEYCODE_G) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_START("KEY2_3") //Port $2c0b - PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("A 1") PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) + PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("A / 1 / Pawn") PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_START("KEY2_4") //Port $2c0c - PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("H 8") PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) + PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("H / 8") PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_START("KEY2_5") //Port $2c0d - PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("B 2") PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) + PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("B / 2 / Knight") PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_START("KEY2_6") //Port $2c0e - PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("C 3") PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) + PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("C / 3 / Bishop") PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_START("KEY2_7") //Port $2c0f - PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("D 4") PORT_CODE(KEYCODE_D) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) + PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("D / 4 / Rook") PORT_CODE(KEYCODE_D) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) INPUT_PORTS_END static INPUT_PORTS_START( bup ) PORT_START("KEY1_0") - PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("1") PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) + PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("1 / Pawn") PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_START("KEY1_1") - PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("2") PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) + PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("2 / Knight") PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_START("KEY1_2") - PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("3") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) + PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("3 / Bishop") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_START("KEY1_3") - PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("4") PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) + PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("4 / Rook") PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_START("KEY1_4") - PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("5") PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) + PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("5 / Queen") PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_START("KEY1_5") - PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("6") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) + PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("6 / King") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_START("KEY1_6") - PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("WHITE") PORT_CODE(KEYCODE_W) + PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("White") PORT_CODE(KEYCODE_W) PORT_START("KEY1_7") - PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("BLACK") PORT_CODE(KEYCODE_B) + PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Black") PORT_CODE(KEYCODE_B) PORT_START("KEY2_0") PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) @@ -395,16 +395,18 @@ ROM_END ROM_START(mm2) ROM_REGION(0x10000,"maincpu",0) - ROM_DEFAULT_BIOS("v2a") + ROM_DEFAULT_BIOS("v4") // no official versioning, chronological order is assumed here from hex compare ROM_SYSTEM_BIOS( 0, "v1", "V1" ) ROMX_LOAD("mm2_v1_1.bin", 0x8000, 0x4000, CRC(b91dab77) SHA1(67762304afe51fb8f1eb91259567b2451bf9bbfd), ROM_BIOS(0)) ROMX_LOAD("mm2_v1_2.bin", 0xc000, 0x4000, CRC(01143cc1) SHA1(f78474b410dbecb209aa23ef81e9f894e8b54942), ROM_BIOS(0)) ROM_SYSTEM_BIOS( 1, "v2", "V2" ) ROMX_LOAD("mm2_v2_1.bin", 0x8000, 0x4000, CRC(e2daac82) SHA1(c9fa59ca92362f8ee770733073bfa2ab8c7904ad), ROM_BIOS(1)) ROMX_LOAD("mm2_v2_2.bin", 0xc000, 0x4000, CRC(5e296939) SHA1(badd2a377259cf738cd076d8fb245c3dc284c24d), ROM_BIOS(1)) - ROM_SYSTEM_BIOS( 2, "v2a", "V2a" ) - ROMX_LOAD("mm2_1_v2a.bin", 0x8000, 0x4000, CRC(e9adcb8f) SHA1(498f48f96678f7bf429fd43e4f392ec6dd649fc6), ROM_BIOS(2)) - ROMX_LOAD("mm2_2_v2a.bin", 0xc000, 0x4000, CRC(d40cbfc2) SHA1(4e9b19b1a0ad97868b31d7a55143a1778110cc96), ROM_BIOS(2)) + ROM_SYSTEM_BIOS( 2, "v3", "V3" ) + ROMX_LOAD("300", 0x8000, 0x8000, CRC(60c777d4) SHA1(a77d678be60094073275558b4e8f0d34b43dd9ae), ROM_BIOS(2)) // D27C256D-20 + ROM_SYSTEM_BIOS( 3, "v4", "V4" ) + ROMX_LOAD("mm2_1_v2a.bin", 0x8000, 0x4000, CRC(e9adcb8f) SHA1(498f48f96678f7bf429fd43e4f392ec6dd649fc6), ROM_BIOS(3)) + ROMX_LOAD("mm2_2_v2a.bin", 0xc000, 0x4000, CRC(d40cbfc2) SHA1(4e9b19b1a0ad97868b31d7a55143a1778110cc96), ROM_BIOS(3)) ROM_END ROM_START(bup) @@ -445,9 +447,9 @@ ROM_END ***************************************************************************/ /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS */ -CONS( 1984, mm2, mm4, 0, mm2, mephisto, mephisto_state, empty_init, "Hegener & Glaser", "Mephisto MM II", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1985, bup, mm4, 0, bup, bup, mephisto_state, empty_init, "Hegener & Glaser", "Mephisto B&P", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1986, rebel5, mm4, 0, rebel5, mephisto, mephisto_state, empty_init, "Hegener & Glaser", "Mephisto Rebell 5.0", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1987, mm4, 0, 0, mephisto, mephisto, mephisto_state, empty_init, "Hegener & Glaser", "Mephisto MM IV", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1984, mm2, 0, 0, mm2, mephisto, mephisto_state, empty_init, "Hegener + Glaser", "Mephisto MM II", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1985, bup, 0, 0, bup, bup, mephisto_state, empty_init, "Hegener + Glaser", "Mephisto Blitz- und Problemloesungs-Modul", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1986, rebel5, 0, 0, rebel5, mephisto, mephisto_state, empty_init, "Hegener + Glaser", "Mephisto Rebell 5,0", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1987, mm4, 0, 0, mephisto, mephisto, mephisto_state, empty_init, "Hegener + Glaser", "Mephisto MM IV", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) CONS( 1987, mm4tk, mm4, 0, mm4tk, mephisto, mephisto_state, empty_init, "hack", "Mephisto MM IV (TurboKit)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1990, mm5, mm4, 0, mephisto, mephisto, mephisto_state, empty_init, "Hegener & Glaser", "Mephisto MM V", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1990, mm5, 0, 0, mephisto, mephisto, mephisto_state, empty_init, "Hegener + Glaser", "Mephisto MM V", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/drivers/mephisto_modena.cpp b/src/mame/drivers/mephisto_modena.cpp index 3f771f7bda7..bd7cba023fa 100644 --- a/src/mame/drivers/mephisto_modena.cpp +++ b/src/mame/drivers/mephisto_modena.cpp @@ -171,4 +171,4 @@ ROM_END ***************************************************************************/ /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -CONS( 1992, modena, 0, 0, modena, modena, mephisto_modena_state, empty_init, "Hegener & Glaser", "Mephisto Modena", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1992, modena, 0, 0, modena, modena, mephisto_modena_state, empty_init, "Hegener + Glaser", "Mephisto Modena", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/drivers/mephisto_modular.cpp b/src/mame/drivers/mephisto_modular.cpp index 259c8655739..6817a17f992 100644 --- a/src/mame/drivers/mephisto_modular.cpp +++ b/src/mame/drivers/mephisto_modular.cpp @@ -1,36 +1,45 @@ // license:LGPL-2.1+ // copyright-holders:Dirk Verwiebe, Cowering, Sandro Ronco /****************************************************************************** - Mephisto Chess Computers using plugin modules - - (most of the magnetic sensor versions with 680x0 family modules) - - Almeria 68000 12Mhz - Almeria 68020 12Mhz - Portorose 68000 12Mhz - Portorose 68020 12Mhz - Lyon 68000 12Mhz - Lyon 68020 12Mhz - Vancouver 68000 12Mhz - Vancouver 68020 12Mhz - Genius 68030 V4.00 33.333 Mhz - Genius 68030 V4.01 33.333 Mhz - Berlin Pro 68020 24.576 Mhz (not modular board, but otherwise close to milano) - Berlin Pro (London) 68020 24.576 Mhz (not modular board, but otherwise close to milano) - London 68030 V5.00k 33.333 Mhz (probably the Genius 3/4 update ROM) - - Notes by Cowering (2011) - - TODO: add Bavaria sensor support (unknown1,2,3 handlers in current driver) - proper 'bezel' for all games/cpuspeeds so 'Vancouver' does not say 'Almeria', etc - custom handler to read/write the Battery RAM so 68000 can share files with 020/030 (real modular machine can do this) - add the missing machines.. including the very rare overclocked 'TM' Tournament Machines - match I/S= diag speed test with real hardware (good test for proper waitstates) - remove gen32/lond030 ROM patch - - Undocumented buttons: holding ENTER and LEFT cursor on cold boot runs diagnostics on modular 680x0 boards - holding UP and RIGHT cursor will clear the Battery Backed RAM on modular 680x0 boards - holding CLEAR clears Battery Backed RAM on the Berlin (Pro) 68020 + +Hegener + Glaser Mephisto Chess Computers using plugin modules + +(most of the magnetic sensor versions with 680x0 family modules) +After Roma, H+G started naming the different versions 16 Bit/32 Bit instead of 68000/68020. +With Genius and the TM versions, they still applied "68030". + +Almeria 16 Bit 12Mhz +Almeria 32 Bit 12Mhz +Portorose 16 Bit 12Mhz +Portorose 32 Bit 12Mhz +Lyon 16 Bit 12Mhz +Lyon 32 Bit 12Mhz +Vancouver 16 Bit 12Mhz +Vancouver 32 Bit 12Mhz +Genius 68030 V4.00 33.333 Mhz +Genius 68030 V4.01 33.333 Mhz +Berlin Pro 68020 24.576 Mhz (not modular board, but otherwise close to milano) +Berlin Pro (London) 68020 24.576 Mhz (not modular board, but otherwise close to milano) +London 68030 V5.00k 33.333 Mhz (probably the Genius 3/4 update ROM) + +The London program (1994 competition) is not a dedicated module, but an EPROM upgrade +released by Richard Lang for Almeria, Lyon, Portorose and Vancouver modules, and also +available as upgrades for Berlin/Berlin Pro and Genius. +No Mephisto modules were released anymore after Saitek took over H+G, engine is assumed +to be same as Saitek's 1996 Mephisto London 68030 (limited release TM version). + +TODO: +- add Bavaria sensor support (unknown1,2,3 handlers in current driver) +- custom handler to read/write the Battery RAM so 68000 can share files with 020/030 (real modular machine can do this) +- add the missing machines.. including the very rare overclocked 'TM' Tournament Machines +- match I/S= diag speed test with real hardware (good test for proper waitstates) +- remove gen32/gen32l ROM patch +- move berlin to its own driver file + +Undocumented buttons: +- holding ENTER and LEFT cursor on cold boot runs diagnostics on modular 680x0 boards +- holding UP and RIGHT cursor will clear the Battery Backed RAM on modular 680x0 boards +- holding CLEAR clears Battery Backed RAM on the Berlin (Pro) 68020 ******************************************************************************/ @@ -379,6 +388,11 @@ ROM_START( gen32 ) ROMX_LOAD("gen32_4.bin", 0x00000, 0x40000, CRC(6cc4da88) SHA1(ea72acf9c67ed17c6ac8de56a165784aa629c4a1), ROM_BIOS(1)) ROM_END +ROM_START( gen32l ) + ROM_REGION32_BE( 0x40000, "maincpu", 0 ) + ROM_LOAD("gen32l.bin", 0x00000, 0x40000, CRC(853baa4e) SHA1(946951081d4e91e5bdd9e93d0769568a7fe79bad)) +ROM_END + ROM_START( van16 ) ROM_REGION16_BE( 0x40000, "maincpu", 0 ) ROM_LOAD16_BYTE("va16even.bin", 0x00000, 0x20000, CRC(e87602d5) SHA1(90cb2767b4ae9e1b265951eb2569b9956b9f7f44)) @@ -390,14 +404,15 @@ ROM_START( van32 ) ROM_LOAD("vanc32.bin", 0x00000, 0x40000, CRC(f872beb5) SHA1(9919f207264f74e2b634b723b048ae9ca2cefbc7)) ROM_END -ROM_START( lond020 ) - ROM_REGION32_BE( 0x40000, "maincpu", 0 ) - ROM_LOAD("lond020.bin", 0x00000, 0x40000, CRC(3225b8da) SHA1(fd8f6f4e9c03b6cdc86d8405e856c26041bfad12)) +ROM_START( lond16 ) + ROM_REGION16_BE( 0x40000, "maincpu", 0 ) + ROM_LOAD16_BYTE("london_program_68000_module_even", 0x00000, 0x20000, CRC(68cfc2de) SHA1(93b551180f01f8ed6991c082795cd9ead922179a)) + ROM_LOAD16_BYTE("london_program_68000_module_odd", 0x00001, 0x20000, CRC(2d75e2cf) SHA1(2ec9222c95f4be9667fb3b4be1b6f90fd4ad11c4)) ROM_END -ROM_START( lond030 ) +ROM_START( lond32 ) ROM_REGION32_BE( 0x40000, "maincpu", 0 ) - ROM_LOAD("lond030.bin", 0x00000, 0x40000, CRC(853baa4e) SHA1(946951081d4e91e5bdd9e93d0769568a7fe79bad)) + ROM_LOAD("london_program_68020_module", 0x00000, 0x40000, CRC(3225b8da) SHA1(fd8f6f4e9c03b6cdc86d8405e856c26041bfad12)) ROM_END ROM_START( lyon16 ) @@ -438,21 +453,22 @@ ROM_END Game driver(s) ***************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -CONS( 1988, alm16, 0, 0, alm16, alm16, mmodular_state, empty_init, "Hegener & Glaser", "Mephisto Almeria 68000", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1988, alm32, 0, 0, alm32, alm32, mmodular_state, empty_init, "Hegener & Glaser", "Mephisto Almeria 68020", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1989, port16, alm16, 0, alm16, alm16, mmodular_state, empty_init, "Hegener & Glaser", "Mephisto Portorose 68000", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1989, port32, alm32, 0, alm32, alm32, mmodular_state, empty_init, "Hegener & Glaser", "Mephisto Portorose 68020", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1990, lyon16, alm16, 0, alm16, alm16, mmodular_state, empty_init, "Hegener & Glaser", "Mephisto Lyon 68000", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1990, lyon32, alm32, 0, alm32, alm32, mmodular_state, empty_init, "Hegener & Glaser", "Mephisto Lyon 68020", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1991, van16, alm16, 0, van16, alm16, mmodular_state, empty_init, "Hegener & Glaser", "Mephisto Vancouver 68000", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1991, van32, alm32, 0, van32, alm32, mmodular_state, empty_init, "Hegener & Glaser", "Mephisto Vancouver 68020", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1993, gen32, 0, 0, gen32, gen32, mmodular_state, init_gen32, "Hegener & Glaser", "Mephisto Genius 68030", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1996, lond020, alm32, 0, van32, alm32, mmodular_state, empty_init, "Hegener & Glaser", "Mephisto London 68020", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1996, lond030, gen32, 0, gen32, gen32, mmodular_state, init_gen32, "Hegener & Glaser", "Mephisto Genius 68030 London Upgrade", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +CONS( 1988, alm32, 0, 0, alm32, alm32, mmodular_state, empty_init, "Hegener + Glaser", "Mephisto Almeria 32 Bit", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1988, alm16, alm32, 0, alm16, alm16, mmodular_state, empty_init, "Hegener + Glaser", "Mephisto Almeria 16 Bit", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1989, port32, 0, 0, alm32, alm32, mmodular_state, empty_init, "Hegener + Glaser", "Mephisto Portorose 32 Bit", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1989, port16, port32, 0, alm16, alm16, mmodular_state, empty_init, "Hegener + Glaser", "Mephisto Portorose 16 Bit", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1990, lyon32, 0, 0, alm32, alm32, mmodular_state, empty_init, "Hegener + Glaser", "Mephisto Lyon 32 Bit", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1990, lyon16, lyon32, 0, alm16, alm16, mmodular_state, empty_init, "Hegener + Glaser", "Mephisto Lyon 16 Bit", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1991, van32, 0, 0, van32, alm32, mmodular_state, empty_init, "Hegener + Glaser", "Mephisto Vancouver 32 Bit", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1991, van16, van32, 0, van16, alm16, mmodular_state, empty_init, "Hegener + Glaser", "Mephisto Vancouver 16 Bit", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1993, gen32, 0, 0, gen32, gen32, mmodular_state, init_gen32, "Hegener + Glaser", "Mephisto Genius 68030", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1996, gen32l, gen32, 0, gen32, gen32, mmodular_state, init_gen32, "Richard Lang", "Mephisto Genius 68030 (London upgrade)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1996, lond32, 0, 0, van32, alm32, mmodular_state, empty_init, "Richard Lang", "Mephisto London 32 Bit", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) // for alm32/port32/lyon32/van32 +CONS( 1996, lond16, lond32, 0, van16, alm16, mmodular_state, empty_init, "Richard Lang", "Mephisto London 16 Bit", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) // for alm16/port16/lyon16/van16 // not modular boards -CONS( 1992, berl16, 0, 0, berl16, berlinp, berlinp_state, empty_init, "Hegener & Glaser", "Mephisto Berlin 68000", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1994, berlinp, 0, 0, berlinp, berlinp, berlinp_state, empty_init, "Hegener & Glaser", "Mephisto Berlin Pro 68020", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1996, berl16l, berl16, 0, berl16, berlinp, berlinp_state, empty_init, "Hegener & Glaser", "Mephisto Berlin 68000 London Upgrade", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1996, bpl32, berlinp, 0, berlinp, berlinp, berlinp_state, empty_init, "Hegener & Glaser", "Mephisto Berlin Pro London Upgrade", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1992, berl16, 0, 0, berl16, berlinp, berlinp_state, empty_init, "Hegener + Glaser", "Mephisto Berlin 68000", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1994, berlinp, 0, 0, berlinp, berlinp, berlinp_state, empty_init, "Hegener + Glaser", "Mephisto Berlin Professional 68020", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1996, berl16l, berl16, 0, berl16, berlinp, berlinp_state, empty_init, "Richard Lang", "Mephisto Berlin 68000 (London upgrade)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1996, bpl32, berlinp, 0, berlinp, berlinp, berlinp_state, empty_init, "Richard Lang", "Mephisto Berlin Professional 68020 (London upgrade)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/drivers/mephisto_montec.cpp b/src/mame/drivers/mephisto_montec.cpp index 246a5697294..700abb676de 100644 --- a/src/mame/drivers/mephisto_montec.cpp +++ b/src/mame/drivers/mephisto_montec.cpp @@ -647,11 +647,11 @@ ROM_END /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -CONS( 1985, mondial, 0, 0, mondial, mondial2, mephisto_montec_state, empty_init, "Hegener & Glaser", "Mephisto Mondial", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1986, smondial, 0, 0, smondial, megaiv, mephisto_montec_state, empty_init, "Hegener & Glaser", "Mephisto Super Mondial (Ver A)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1986, smondialb, smondial, 0, megaiv, megaiv, mephisto_montec_state, empty_init, "Hegener & Glaser", "Mephisto Super Mondial (Ver B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1987, montec, 0, 0, montec, montec, mephisto_montec_state, empty_init, "Hegener & Glaser", "Mephisto Monte Carlo", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1987, mondial2, 0, 0, mondial2, mondial2, mephisto_montec_state, empty_init, "Hegener & Glaser", "Mephisto Mondial II", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1989, smondial2, 0, 0, smondial2, smondial2, mephisto_montec_state, empty_init, "Hegener & Glaser", "Mephisto Super Mondial II", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1989, megaiv, 0, 0, megaiv, megaiv, mephisto_montec_state, empty_init, "Hegener & Glaser", "Mephisto Mega IV", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1990, monteciv, montec, 0, monteciv, montec, mephisto_montec_state, empty_init, "Hegener & Glaser", "Mephisto Monte Carlo IV LE", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1985, mondial, 0, 0, mondial, mondial2, mephisto_montec_state, empty_init, "Hegener + Glaser", "Mephisto Mondial", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1986, smondial, 0, 0, smondial, megaiv, mephisto_montec_state, empty_init, "Hegener + Glaser", "Mephisto Super Mondial (Ver A)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1986, smondialb, smondial, 0, megaiv, megaiv, mephisto_montec_state, empty_init, "Hegener + Glaser", "Mephisto Super Mondial (Ver B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1987, montec, 0, 0, montec, montec, mephisto_montec_state, empty_init, "Hegener + Glaser", "Mephisto Monte Carlo", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1987, mondial2, 0, 0, mondial2, mondial2, mephisto_montec_state, empty_init, "Hegener + Glaser", "Mephisto Mondial II", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1989, smondial2, 0, 0, smondial2, smondial2, mephisto_montec_state, empty_init, "Hegener + Glaser", "Mephisto Super Mondial II", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1989, megaiv, 0, 0, megaiv, megaiv, mephisto_montec_state, empty_init, "Hegener + Glaser", "Mephisto Mega IV", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1990, monteciv, montec, 0, monteciv, montec, mephisto_montec_state, empty_init, "Hegener + Glaser", "Mephisto Monte Carlo IV LE", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/drivers/mephisto_polgar.cpp b/src/mame/drivers/mephisto_polgar.cpp index dbd7cede1aa..f270685a684 100644 --- a/src/mame/drivers/mephisto_polgar.cpp +++ b/src/mame/drivers/mephisto_polgar.cpp @@ -431,12 +431,12 @@ ROM_END ***************************************************************************/ /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -CONS( 1989, polgar, 0, 0, polgar, polgar, mephisto_polgar_state, empty_init, "Hegener & Glaser", "Mephisto Polgar", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1990, polgar10, polgar, 0, polgar10, polgar, mephisto_polgar_state, empty_init, "Hegener & Glaser", "Mephisto Polgar 10MHz", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1992, mrisc, 0, 0, mrisc, polgar, mephisto_risc_state, empty_init, "Hegener & Glaser", "Mephisto RISC 1MB", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1994, mrisc2, mrisc, 0, mrisc, polgar, mephisto_risc_state, empty_init, "Hegener & Glaser", "Mephisto RISC II", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1989, polgar, 0, 0, polgar, polgar, mephisto_polgar_state, empty_init, "Hegener + Glaser", "Mephisto Polgar", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1990, polgar10, polgar, 0, polgar10, polgar, mephisto_polgar_state, empty_init, "Hegener + Glaser", "Mephisto Polgar 10MHz", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1992, mrisc, 0, 0, mrisc, polgar, mephisto_risc_state, empty_init, "Hegener + Glaser", "Mephisto RISC 1MB", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1994, mrisc2, mrisc, 0, mrisc, polgar, mephisto_risc_state, empty_init, "Hegener + Glaser", "Mephisto RISC II", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // not modular boards -CONS( 1989, academy, 0, 0, academy, polgar, mephisto_academy_state, empty_init, "Hegener & Glaser", "Mephisto Academy", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1991, milano, 0, 0, milano, polgar, mephisto_milano_state, empty_init, "Hegener & Glaser", "Mephisto Milano", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1993, nshort, milano, 0, milano, polgar, mephisto_milano_state, empty_init, "Hegener & Glaser", "Mephisto Nigel Short", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1989, academy, 0, 0, academy, polgar, mephisto_academy_state, empty_init, "Hegener + Glaser", "Mephisto Academy", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1991, milano, 0, 0, milano, polgar, mephisto_milano_state, empty_init, "Hegener + Glaser", "Mephisto Milano", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1993, nshort, milano, 0, milano, polgar, mephisto_milano_state, empty_init, "Hegener + Glaser", "Mephisto Nigel Short", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/drivers/mephistp.cpp b/src/mame/drivers/mephistp.cpp index 25d927c0623..e671ba1195b 100644 --- a/src/mame/drivers/mephistp.cpp +++ b/src/mame/drivers/mephistp.cpp @@ -266,6 +266,6 @@ ROM_START(sport2k) ROM_LOAD("s511_512.bin", 0x40000, 0x10000, CRC(ca9afa80) SHA1(6f219bdc1ad06e340b2930610897b70369a43684)) ROM_END -GAME(1987, mephistp, 0, mephisto, mephisto, mephisto_pinball_state, empty_init, ROT0, "Stargame", "Mephisto (rev. 1.2)", MACHINE_IS_SKELETON_MECHANICAL) -GAME(1987, mephistp1, mephistp, mephisto, mephisto, mephisto_pinball_state, empty_init, ROT0, "Stargame", "Mephisto (rev. 1.1)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, mephistp, 0, mephisto, mephisto, mephisto_pinball_state, empty_init, ROT0, "Stargame", "Mephisto (Stargame) (rev. 1.2)", MACHINE_IS_SKELETON_MECHANICAL) +GAME(1987, mephistp1, mephistp, mephisto, mephisto, mephisto_pinball_state, empty_init, ROT0, "Stargame", "Mephisto (Stargame) (rev. 1.1)", MACHINE_IS_SKELETON_MECHANICAL) GAME(1988, sport2k, 0, sport2k, mephisto, mephisto_pinball_state, empty_init, ROT0, "Cirsa", "Sport 2000", MACHINE_IS_SKELETON_MECHANICAL) diff --git a/src/mame/drivers/saitek_risc2500.cpp b/src/mame/drivers/saitek_risc2500.cpp index 59a30a31718..53bb639e15d 100644 --- a/src/mame/drivers/saitek_risc2500.cpp +++ b/src/mame/drivers/saitek_risc2500.cpp @@ -6,7 +6,7 @@ Saitek RISC 2500, Mephisto Montreux The chess engine is also compatible with Tasc's The ChessMachine software. The hardware+software appears to have been subcontracted to Tasc. It has similarities -with Tasc R30, and the Montreux repair manual schematics footnotes say TASC23C. +with Tasc R30, PCB label and Montreux repair manual schematics footnotes say TASC23C. notes: - holding LEFT+RIGHT on boot load the QC TestMode @@ -323,4 +323,4 @@ ROM_END /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ CONS( 1992, risc2500, 0, 0, risc2500, risc2500, risc2500_state, empty_init, "Saitek", "Kasparov RISC 2500", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_SOUND ) -CONS( 1995, montreux, 0, 0, risc2500, risc2500, risc2500_state, empty_init, "Saitek", "Mephisto Montreux", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_SOUND ) // after Saitek bought Hegener & Glaser +CONS( 1995, montreux, 0, 0, risc2500, risc2500, risc2500_state, empty_init, "Saitek", "Mephisto Montreux", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_SOUND ) // after Saitek bought Hegener + Glaser diff --git a/src/mame/drivers/saitek_stratos.cpp b/src/mame/drivers/saitek_stratos.cpp index f955f3e4174..3c7912a30f7 100644 --- a/src/mame/drivers/saitek_stratos.cpp +++ b/src/mame/drivers/saitek_stratos.cpp @@ -456,7 +456,7 @@ INPUT_PORTS_START( saitek_stratos ) PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, saitek_stratos_state, acl_button, nullptr) PORT_NAME("ACL") PORT_START("FAKE") - PORT_CONFNAME( 0x03, 0x00, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, saitek_stratos_state, cpu_freq, nullptr) // factory set + PORT_CONFNAME( 0x03, 0x00, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, saitek_stratos_state, switch_cpu_freq, nullptr) // factory set PORT_CONFSETTING( 0x00, "5MHz" ) PORT_CONFSETTING( 0x01, "5.626MHz" ) PORT_CONFSETTING( 0x02, "5.67MHz" ) diff --git a/src/mame/includes/saitek_stratos.h b/src/mame/includes/saitek_stratos.h index 37748a506d7..63ae6146ea7 100644 --- a/src/mame/includes/saitek_stratos.h +++ b/src/mame/includes/saitek_stratos.h @@ -32,7 +32,7 @@ public: m_out_lcd(*this, "lcd%u.%u.%u", 0U, 0U, 0U) { } - DECLARE_INPUT_CHANGED_MEMBER(cpu_freq) { set_cpu_freq(); } + DECLARE_INPUT_CHANGED_MEMBER(switch_cpu_freq) { set_cpu_freq(); } DECLARE_INPUT_CHANGED_MEMBER(acl_button) { if (newval) power_off(); } DECLARE_INPUT_CHANGED_MEMBER(go_button); diff --git a/src/mame/layout/debutm.lay b/src/mame/layout/debutm.lay index 83eb8ac3f77..4bbfd804300 100644 --- a/src/mame/layout/debutm.lay +++ b/src/mame/layout/debutm.lay @@ -8,7 +8,7 @@ - + diff --git a/src/mame/layout/fidel_desdis.lay b/src/mame/layout/fidel_desdis.lay index 93177c50ce8..ad19ceb437e 100644 --- a/src/mame/layout/fidel_desdis.lay +++ b/src/mame/layout/fidel_desdis.lay @@ -11,11 +11,11 @@ - + - - + + diff --git a/src/mame/layout/fidel_desdis_68kg.lay b/src/mame/layout/fidel_desdis_68kg.lay index 742b0e7adb5..c5bc749033b 100644 --- a/src/mame/layout/fidel_desdis_68kg.lay +++ b/src/mame/layout/fidel_desdis_68kg.lay @@ -11,11 +11,11 @@ - + - - + + diff --git a/src/mame/layout/fidel_desdis_68kr.lay b/src/mame/layout/fidel_desdis_68kr.lay index 80244176113..8bc89a2ca40 100644 --- a/src/mame/layout/fidel_desdis_68kr.lay +++ b/src/mame/layout/fidel_desdis_68kr.lay @@ -10,11 +10,11 @@ - + - - + + diff --git a/src/mame/layout/horseran.lay b/src/mame/layout/horseran.lay index 49c4b39dad9..0e7b8edfcee 100644 --- a/src/mame/layout/horseran.lay +++ b/src/mame/layout/horseran.lay @@ -7,129 +7,129 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + diff --git a/src/mame/layout/k28m2.lay b/src/mame/layout/k28m2.lay index a2ec11abf42..e3eccf8a625 100644 --- a/src/mame/layout/k28m2.lay +++ b/src/mame/layout/k28m2.lay @@ -6,7 +6,7 @@ - + diff --git a/src/mame/layout/mephisto_1.lay b/src/mame/layout/mephisto_1.lay new file mode 100644 index 00000000000..d4c5ef7feaf --- /dev/null +++ b/src/mame/layout/mephisto_1.lay @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mame/layout/mephisto_3.lay b/src/mame/layout/mephisto_3.lay new file mode 100644 index 00000000000..4f99ea3da73 --- /dev/null +++ b/src/mame/layout/mephisto_3.lay @@ -0,0 +1,607 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mame/layout/mephisto_amsterdam.lay b/src/mame/layout/mephisto_amsterdam.lay index 5cb0125e210..49bd610dbda 100644 --- a/src/mame/layout/mephisto_amsterdam.lay +++ b/src/mame/layout/mephisto_amsterdam.lay @@ -4,7 +4,7 @@ - + @@ -359,49 +359,48 @@ - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -464,7 +463,8 @@ - + + diff --git a/src/mame/layout/mephisto_bup.lay b/src/mame/layout/mephisto_bup.lay index e4cbb99148e..1220c19ef35 100644 --- a/src/mame/layout/mephisto_bup.lay +++ b/src/mame/layout/mephisto_bup.lay @@ -5,7 +5,7 @@ - + @@ -393,35 +393,35 @@ - + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -472,7 +472,8 @@ - + + diff --git a/src/mame/layout/mephisto_glasgow.lay b/src/mame/layout/mephisto_glasgow.lay index acb34791ac5..0e389c5d42d 100644 --- a/src/mame/layout/mephisto_glasgow.lay +++ b/src/mame/layout/mephisto_glasgow.lay @@ -4,7 +4,7 @@ - + @@ -359,49 +359,48 @@ - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -462,7 +461,8 @@ - + + diff --git a/src/mame/layout/mephisto_megaiv.lay b/src/mame/layout/mephisto_megaiv.lay index ffd839a0100..d46e4d6e48e 100644 --- a/src/mame/layout/mephisto_megaiv.lay +++ b/src/mame/layout/mephisto_megaiv.lay @@ -3,7 +3,7 @@ - + diff --git a/src/mame/layout/mephisto_mm2.lay b/src/mame/layout/mephisto_mm2.lay index aaa250ad310..8b8e4bae9d1 100644 --- a/src/mame/layout/mephisto_mm2.lay +++ b/src/mame/layout/mephisto_mm2.lay @@ -5,7 +5,7 @@ - + @@ -393,40 +393,40 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -481,7 +481,8 @@ - + + diff --git a/src/mame/layout/mephisto_modena.lay b/src/mame/layout/mephisto_modena.lay index e63e1cecf63..28927c7cc84 100644 --- a/src/mame/layout/mephisto_modena.lay +++ b/src/mame/layout/mephisto_modena.lay @@ -7,7 +7,7 @@ - + diff --git a/src/mame/layout/mephisto_montec.lay b/src/mame/layout/mephisto_montec.lay index 2ee29b0e721..ec5cd2e4d19 100644 --- a/src/mame/layout/mephisto_montec.lay +++ b/src/mame/layout/mephisto_montec.lay @@ -3,7 +3,7 @@ - + diff --git a/src/mame/layout/mephisto_smondial2.lay b/src/mame/layout/mephisto_smondial2.lay index ec063bc24e7..b845d6a294f 100644 --- a/src/mame/layout/mephisto_smondial2.lay +++ b/src/mame/layout/mephisto_smondial2.lay @@ -3,7 +3,7 @@ - + diff --git a/src/mame/layout/novag_cforte.lay b/src/mame/layout/novag_cforte.lay index ee24fb5397c..c03e5e85d98 100644 --- a/src/mame/layout/novag_cforte.lay +++ b/src/mame/layout/novag_cforte.lay @@ -8,17 +8,17 @@ - + - - + + - - + + diff --git a/src/mame/layout/saitek_corona.lay b/src/mame/layout/saitek_corona.lay index fa3e97fbe05..cdb7d9538b4 100644 --- a/src/mame/layout/saitek_corona.lay +++ b/src/mame/layout/saitek_corona.lay @@ -8,11 +8,11 @@ - + - - + + diff --git a/src/mame/layout/saitek_stratos.lay b/src/mame/layout/saitek_stratos.lay index 59ba13f7459..c505d3ad268 100644 --- a/src/mame/layout/saitek_stratos.lay +++ b/src/mame/layout/saitek_stratos.lay @@ -8,11 +8,11 @@ - + - - + + diff --git a/src/mame/layout/saitek_tking.lay b/src/mame/layout/saitek_tking.lay index 59ba13f7459..c505d3ad268 100644 --- a/src/mame/layout/saitek_tking.lay +++ b/src/mame/layout/saitek_tking.lay @@ -8,11 +8,11 @@ - + - - + + diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 2fcb5ab68c5..e7510349ebf 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -12608,7 +12608,7 @@ klondkp // (c) 1999 Eolith @source:ep64.cpp ep128 // Enterprise 128 ep64 // Enterprise 64 -phc64 // Hegener & Glaser Mephisto PHC 64 +phc64 // Hegener + Glaser Mephisto PHC 64 @source:epic14e.cpp epic14e // @@ -21407,13 +21407,19 @@ meijinsn // (c) 1986 SNK @source:mekd2.cpp mekd2 // 1977 Motorola Evaluation Kit +@source:mephisto_brikett.cpp +mephisto +mephisto2 +mephisto3 + @source:mephisto_glasgow.cpp amsterd // Amsterdam -dallas // Dallas +amsterda // Amsterdam dallas16 // Dallas +dallas16a // Dallas dallas32 // Dallas glasgow // Glasgow -roma // Roma +roma16 // Roma roma32 // Roma @source:mephisto_mm2.cpp @@ -21428,17 +21434,18 @@ rebel5 // Mephisto Rebell 5.0 modena // 1992 Mephisto Modena @source:mephisto_modular.cpp -alm16 // 1988 Mephisto Almeria 68000 -alm32 // 1988 Mephisto Almeria 68020 -port16 // 1989 Mephisto Portorose 68000 -port32 // 1989 Mephisto Portorose 68020 -lyon16 // 1990 Mephisto Lyon 68000 -lyon32 // 1990 Mephisto Lyon 68020 -van16 // 1991 Mephisto Vancouver 68000 -van32 // 1991 Mephisto Vancouver 68020 +alm16 // 1988 Mephisto Almeria 16 Bit +alm32 // 1988 Mephisto Almeria 32 Bit +port16 // 1989 Mephisto Portorose 16 Bit +port32 // 1989 Mephisto Portorose 32 Bit +lyon16 // 1990 Mephisto Lyon 16 Bit +lyon32 // 1990 Mephisto Lyon 32 Bit +van16 // 1991 Mephisto Vancouver 16 Bit +van32 // 1991 Mephisto Vancouver 32 Bit gen32 // 1993 Mephisto Genius 68030 -lond020 // 1996 Mephisto London 68020 -lond030 // 1996 Mephisto Genius 68030 London Upgrade +gen32l // 1996 Mephisto Genius 68030 London Upgrade +lond16 // 1996 Mephisto London 16 Bit +lond32 // 1996 Mephisto London 32 Bit berl16 // 1992 Mephisto Berlin 68000 berlinp // 1994 Mephisto Berlin Pro 68020 berl16l // 1996 Mephisto Berlin 68000 London Upgrade diff --git a/src/mame/mess.flt b/src/mame/mess.flt index 4484334a622..34412a81660 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -458,6 +458,7 @@ mdisk.cpp megadriv.cpp megadriv_rad.cpp mekd2.cpp +mephisto_brikett.cpp mephisto_glasgow.cpp mephisto_mm2.cpp mephisto_modena.cpp -- cgit v1.2.3