From e7361160fdb68b6906ccaa99fc8751a96cf2b82b Mon Sep 17 00:00:00 2001 From: hap Date: Mon, 18 Sep 2023 20:05:43 +0200 Subject: New working systems ------------------- Mephisto Roma II [hap, anonymous] Mephisto Montreal 68000 [hap, anonymous] --- src/mame/hegenerglaser/academy.cpp | 5 +- src/mame/hegenerglaser/amsterdam.cpp | 13 +- src/mame/hegenerglaser/berlin.cpp | 5 +- src/mame/hegenerglaser/brikett.cpp | 3 +- src/mame/hegenerglaser/glasgow.cpp | 5 +- src/mame/hegenerglaser/milano.cpp | 3 +- src/mame/hegenerglaser/mm1.cpp | 5 +- src/mame/hegenerglaser/mm2.cpp | 5 +- src/mame/hegenerglaser/modena.cpp | 3 +- src/mame/hegenerglaser/modular.cpp | 5 +- src/mame/hegenerglaser/modular_tm.cpp | 5 +- src/mame/hegenerglaser/montec.cpp | 3 +- src/mame/hegenerglaser/polgar.cpp | 5 +- src/mame/hegenerglaser/risc.cpp | 5 +- src/mame/hegenerglaser/roma2.cpp | 271 ++++++++++++++++ src/mame/layout/mephisto_montreal.lay | 577 +++++++++++++++++++++++++++++++++ src/mame/layout/mephisto_roma2.lay | 584 ++++++++++++++++++++++++++++++++++ src/mame/mame.lst | 4 + 18 files changed, 1475 insertions(+), 31 deletions(-) create mode 100644 src/mame/hegenerglaser/roma2.cpp create mode 100644 src/mame/layout/mephisto_montreal.lay create mode 100644 src/mame/layout/mephisto_roma2.lay diff --git a/src/mame/hegenerglaser/academy.cpp b/src/mame/hegenerglaser/academy.cpp index 21c053e922d..006292c7e0b 100644 --- a/src/mame/hegenerglaser/academy.cpp +++ b/src/mame/hegenerglaser/academy.cpp @@ -22,11 +22,12 @@ Module PCB is the same as Super Mondial II College, label HGS 10 116 05. #include "emu.h" +#include "mmboard.h" +#include "mmdisplay2.h" + #include "cpu/m6502/m65c02.h" #include "machine/74259.h" #include "machine/nvram.h" -#include "mmboard.h" -#include "mmdisplay2.h" #include "video/pwm.h" // internal artwork diff --git a/src/mame/hegenerglaser/amsterdam.cpp b/src/mame/hegenerglaser/amsterdam.cpp index 6b6612e5dc6..c440448bc69 100644 --- a/src/mame/hegenerglaser/amsterdam.cpp +++ b/src/mame/hegenerglaser/amsterdam.cpp @@ -14,11 +14,12 @@ TODO: #include "emu.h" +#include "mmboard.h" +#include "mmdisplay1.h" + #include "cpu/m68000/m68000.h" #include "cpu/m68000/m68020.h" -#include "mmboard.h" #include "sound/dac.h" -#include "mmdisplay1.h" #include "speaker.h" @@ -47,7 +48,6 @@ public: protected: virtual void machine_start() override; - virtual void machine_reset() override; private: required_device m_maincpu; @@ -71,18 +71,13 @@ void amsterdam_state::machine_start() save_item(NAME(m_kp_select)); } -void amsterdam_state::machine_reset() -{ - m_display->reset(); -} - INPUT_CHANGED_MEMBER(amsterdam_state::reset_button) { // RES buttons in serial tied to CPU RESET if (ioport("RESET")->read() == 3) { m_maincpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero); - machine_reset(); + m_display->reset(); } } diff --git a/src/mame/hegenerglaser/berlin.cpp b/src/mame/hegenerglaser/berlin.cpp index 2263dc3cece..298413a5ee6 100644 --- a/src/mame/hegenerglaser/berlin.cpp +++ b/src/mame/hegenerglaser/berlin.cpp @@ -16,11 +16,12 @@ TODO: #include "emu.h" +#include "mmboard.h" +#include "mmdisplay2.h" + #include "cpu/m68000/m68000.h" #include "cpu/m68000/m68020.h" #include "machine/nvram.h" -#include "mmboard.h" -#include "mmdisplay2.h" // internal artwork #include "mephisto_berlin.lh" diff --git a/src/mame/hegenerglaser/brikett.cpp b/src/mame/hegenerglaser/brikett.cpp index e0d34c44f2f..2a8d2ed48cc 100644 --- a/src/mame/hegenerglaser/brikett.cpp +++ b/src/mame/hegenerglaser/brikett.cpp @@ -75,12 +75,13 @@ BTANB: #include "emu.h" +#include "mmdisplay1.h" + #include "cpu/cosmac/cosmac.h" #include "machine/cdp1852.h" #include "machine/sensorboard.h" #include "machine/timer.h" #include "sound/dac.h" -#include "mmdisplay1.h" #include "video/pwm.h" #include "speaker.h" diff --git a/src/mame/hegenerglaser/glasgow.cpp b/src/mame/hegenerglaser/glasgow.cpp index c1cfd6d1c07..52e3a79e8c2 100644 --- a/src/mame/hegenerglaser/glasgow.cpp +++ b/src/mame/hegenerglaser/glasgow.cpp @@ -35,11 +35,12 @@ Hardware notes: #include "emu.h" -#include "cpu/m68000/m68000.h" #include "mmboard.h" -#include "sound/dac.h" #include "mmdisplay1.h" +#include "cpu/m68000/m68000.h" +#include "sound/dac.h" + #include "speaker.h" // internal artwork diff --git a/src/mame/hegenerglaser/milano.cpp b/src/mame/hegenerglaser/milano.cpp index 73b0ad4cb64..339091116c3 100644 --- a/src/mame/hegenerglaser/milano.cpp +++ b/src/mame/hegenerglaser/milano.cpp @@ -17,11 +17,12 @@ Nigel Short is basically a Milano 2.00 #include "emu.h" +#include "mmdisplay2.h" + #include "cpu/m6502/r65c02.h" #include "machine/74259.h" #include "machine/nvram.h" #include "machine/sensorboard.h" -#include "mmdisplay2.h" #include "video/pwm.h" // internal artwork diff --git a/src/mame/hegenerglaser/mm1.cpp b/src/mame/hegenerglaser/mm1.cpp index 83c7f2541ac..67c31ec6948 100644 --- a/src/mame/hegenerglaser/mm1.cpp +++ b/src/mame/hegenerglaser/mm1.cpp @@ -39,12 +39,13 @@ TODO: #include "emu.h" +#include "mmboard.h" +#include "mmdisplay1.h" + #include "bus/generic/slot.h" #include "bus/generic/carts.h" #include "cpu/cosmac/cosmac.h" -#include "mmboard.h" #include "sound/dac.h" -#include "mmdisplay1.h" #include "softlist_dev.h" #include "speaker.h" diff --git a/src/mame/hegenerglaser/mm2.cpp b/src/mame/hegenerglaser/mm2.cpp index d7fa626659e..e5a495db941 100644 --- a/src/mame/hegenerglaser/mm2.cpp +++ b/src/mame/hegenerglaser/mm2.cpp @@ -98,13 +98,14 @@ $8000-$FFFF ROM #include "emu.h" +#include "mmboard.h" +#include "mmdisplay1.h" + #include "bus/generic/slot.h" #include "bus/generic/carts.h" #include "cpu/m6502/r65c02.h" #include "machine/74259.h" -#include "mmboard.h" #include "sound/dac.h" -#include "mmdisplay1.h" #include "softlist_dev.h" #include "speaker.h" diff --git a/src/mame/hegenerglaser/modena.cpp b/src/mame/hegenerglaser/modena.cpp index 81b5b7029b2..cba4e1e4862 100644 --- a/src/mame/hegenerglaser/modena.cpp +++ b/src/mame/hegenerglaser/modena.cpp @@ -18,13 +18,14 @@ Hardware notes: #include "emu.h" +#include "mmdisplay1.h" + #include "cpu/m6502/m65c02.h" #include "machine/clock.h" #include "machine/nvram.h" #include "machine/sensorboard.h" #include "machine/timer.h" #include "sound/dac.h" -#include "mmdisplay1.h" #include "video/pwm.h" #include "speaker.h" diff --git a/src/mame/hegenerglaser/modular.cpp b/src/mame/hegenerglaser/modular.cpp index 4d057e2a6da..66c3be31cde 100644 --- a/src/mame/hegenerglaser/modular.cpp +++ b/src/mame/hegenerglaser/modular.cpp @@ -85,13 +85,14 @@ Reminder: unsupported on Almeria and Portorose 1.01, this is not a bug. #include "emu.h" +#include "mmboard.h" +#include "mmdisplay2.h" + #include "cpu/m68000/m68000.h" #include "cpu/m68000/m68020.h" #include "cpu/m68000/m68030.h" #include "machine/nvram.h" #include "machine/timer.h" -#include "mmboard.h" -#include "mmdisplay2.h" // internal artwork #include "mephisto_alm16.lh" diff --git a/src/mame/hegenerglaser/modular_tm.cpp b/src/mame/hegenerglaser/modular_tm.cpp index c1fb6b4b53f..0e284fa4b76 100644 --- a/src/mame/hegenerglaser/modular_tm.cpp +++ b/src/mame/hegenerglaser/modular_tm.cpp @@ -42,11 +42,12 @@ After boot, it copies ROM to RAM, probably to circumvent waitstates on slow ROM. #include "emu.h" +#include "mmboard.h" +#include "mmdisplay2.h" + #include "cpu/m68000/m68030.h" #include "machine/nvram.h" #include "machine/timer.h" -#include "mmboard.h" -#include "mmdisplay2.h" // internal artwork #include "mephisto_modular_tm.lh" diff --git a/src/mame/hegenerglaser/montec.cpp b/src/mame/hegenerglaser/montec.cpp index 8bb155ae53c..a0a20329282 100644 --- a/src/mame/hegenerglaser/montec.cpp +++ b/src/mame/hegenerglaser/montec.cpp @@ -21,11 +21,12 @@ Hardware notes: #include "emu.h" +#include "mmboard.h" + #include "cpu/m6502/m65c02.h" #include "cpu/m6502/r65c02.h" #include "machine/74259.h" #include "machine/nvram.h" -#include "mmboard.h" #include "sound/dac.h" #include "video/pcf2100.h" #include "video/pwm.h" diff --git a/src/mame/hegenerglaser/polgar.cpp b/src/mame/hegenerglaser/polgar.cpp index 73df485d581..3594057a6b0 100644 --- a/src/mame/hegenerglaser/polgar.cpp +++ b/src/mame/hegenerglaser/polgar.cpp @@ -16,12 +16,13 @@ The 10MHz version has a W65C02P-8 @ 9.83MHz. #include "emu.h" +#include "mmboard.h" +#include "mmdisplay2.h" + #include "cpu/m6502/m65c02.h" #include "cpu/m6502/r65c02.h" #include "machine/74259.h" #include "machine/nvram.h" -#include "mmboard.h" -#include "mmdisplay2.h" // internal artwork #include "mephisto_polgar.lh" diff --git a/src/mame/hegenerglaser/risc.cpp b/src/mame/hegenerglaser/risc.cpp index e80b559e22e..83b69c57c5a 100644 --- a/src/mame/hegenerglaser/risc.cpp +++ b/src/mame/hegenerglaser/risc.cpp @@ -19,12 +19,13 @@ Hardware notes: #include "emu.h" +#include "mmboard.h" +#include "mmdisplay2.h" + #include "cpu/m6502/m65sc02.h" #include "machine/74259.h" #include "machine/nvram.h" -#include "mmboard.h" #include "machine/chessmachine.h" -#include "mmdisplay2.h" // internal artwork #include "mephisto_risc.lh" diff --git a/src/mame/hegenerglaser/roma2.cpp b/src/mame/hegenerglaser/roma2.cpp new file mode 100644 index 00000000000..fe66cfaaafa --- /dev/null +++ b/src/mame/hegenerglaser/roma2.cpp @@ -0,0 +1,271 @@ +// license:BSD-3-Clause +// copyright-holders:hap +/******************************************************************************* + +Mephisto Roma II + +Hardware notes: +- MC68HC000FN10 @ ~10MHz +- 64KB ROM (2*27C256), 16KB RAM (2*HY6264LP-10), piezo +- compatible with magnets chessboard or Mephisto Mobil, and 7seg LCD module + +Mephisto Montreal 68000 from 1993 is on similar hardware, but it is a standalone +chess computer (Roma II is a module). The chess engine is still the old 1987 Roma. + +TODO: +- verify XTAL (currently guessed from beeper pitch on videos) +- verify irq source and level +- does it have DTACK waitstates? + +*******************************************************************************/ + +#include "emu.h" + +#include "mmboard.h" +#include "mmdisplay1.h" + +#include "cpu/m68000/m68000.h" +#include "sound/dac.h" + +#include "speaker.h" + +// internal artwork +#include "mephisto_montreal.lh" +#include "mephisto_roma2.lh" + + +namespace { + +class roma2_state : public driver_device +{ +public: + roma2_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), + m_board(*this, "board"), + m_display(*this, "display"), + m_dac(*this, "dac"), + m_inputs(*this, "IN.%u", 0) + { } + + DECLARE_INPUT_CHANGED_MEMBER(reset_button); + + void roma2(machine_config &config); + void montreal(machine_config &config); + +protected: + virtual void machine_start() override; + +private: + required_device m_maincpu; + required_device m_board; + required_device m_display; + required_device m_dac; + required_ioport_array<4> m_inputs; + + void main_map(address_map &map); + + void strobe_w(u8 data); + void dac_w(offs_t offset, u8 data); + void input_w(offs_t offset, u8 data); + u8 input_r(); + + u8 m_dac_data = 0; + u8 m_inp_mux = 0xf; +}; + +void roma2_state::machine_start() +{ + // register for savestates + save_item(NAME(m_dac_data)); + save_item(NAME(m_inp_mux)); +} + +INPUT_CHANGED_MEMBER(roma2_state::reset_button) +{ + // RES buttons in serial tied to CPU RESET + if (ioport("RESET")->read() == 3) + { + m_maincpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero); + m_display->reset(); + } +} + + + +/******************************************************************************* + I/O +*******************************************************************************/ + +void roma2_state::strobe_w(u8 data) +{ + // d0: lcd strobe + m_display->strobe_w(data & 1); +} + +void roma2_state::dac_w(offs_t offset, u8 data) +{ + // a0,d0: dac data + u8 mask = 1 << offset; + m_dac_data = (m_dac_data & ~mask) | ((data & 1) ? mask : 0); + m_dac->write(m_dac_data); +} + +void roma2_state::input_w(offs_t offset, u8 data) +{ + // a0-a3,d0: input mux + u8 mask = 1 << offset; + m_inp_mux = (m_inp_mux & ~mask) | ((data & 1) ? mask : 0); +} + +u8 roma2_state::input_r() +{ + u8 data = 0; + + // read keypad + for (int i = 0; i < 4; i++) + if (!BIT(m_inp_mux, i)) + data |= m_inputs[i]->read(); + + return data; +} + + + +/******************************************************************************* + Address Maps +*******************************************************************************/ + +void roma2_state::main_map(address_map &map) +{ + map(0x000000, 0x00ffff).rom(); + map(0x900000, 0x900007).w(FUNC(roma2_state::input_w)).umask16(0xff00); + map(0x900008, 0x900008).w(FUNC(roma2_state::strobe_w)); + map(0x90000c, 0x90000f).w(FUNC(roma2_state::dac_w)).umask16(0xff00); + map(0xc00000, 0xc00000).w(m_board, FUNC(mephisto_board_device::mux_w)); + map(0xb00000, 0xb00000).w(m_board, FUNC(mephisto_board_device::led_w)); + map(0xd00000, 0xd00000).r(m_board, FUNC(mephisto_board_device::input_r)); + map(0xd00001, 0xd00001).r(FUNC(roma2_state::input_r)); + map(0xe00000, 0xe00000).w(m_display, FUNC(mephisto_display1_device::data_w)); + map(0x800000, 0x803fff).ram(); + + map(0x900000, 0x900009).nopr(); // st + map(0xc00000, 0xc00001).nopr(); // st +} + + + +/******************************************************************************* + Input Ports +*******************************************************************************/ + +static INPUT_PORTS_START( montreal ) + PORT_START("IN.0") + 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_START("IN.1") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_F1) // combine CL/ENT for NEW GAME + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_CODE(KEYCODE_F1) // " + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("A / 1") PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("B / 2 / Pawn") PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) + + PORT_START("IN.2") + PORT_BIT(0x01, 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(0x02, 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(0x04, 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(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("F / 6 / Queen") PORT_CODE(KEYCODE_F) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) + + PORT_START("IN.3") + PORT_BIT(0x01, 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(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H / 8") PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) + PORT_BIT(0x04, 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(0x08, 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("CLICKABLE") // helper for clickable artwork + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) +INPUT_PORTS_END + +static INPUT_PORTS_START( roma2 ) + PORT_INCLUDE( montreal ) + + PORT_MODIFY("IN.1") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) + + PORT_START("RESET") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RES 1") PORT_CODE(KEYCODE_Z) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, roma2_state, reset_button, 0) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RES 2") PORT_CODE(KEYCODE_X) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, roma2_state, reset_button, 0) +INPUT_PORTS_END + + + +/******************************************************************************* + Machine Configs +*******************************************************************************/ + +void roma2_state::roma2(machine_config &config) +{ + // basic machine hardware + M68000(config, m_maincpu, 9.8304_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &roma2_state::main_map); + + const attotime irq_period = attotime::from_hz(9.8304_MHz_XTAL / 0x14000); // 120Hz + m_maincpu->set_periodic_int(FUNC(roma2_state::irq5_line_hold), irq_period); + + MEPHISTO_SENSORS_BOARD(config, m_board); + m_board->set_delay(attotime::from_msec(200)); + + // video hardware + MEPHISTO_DISPLAY_MODULE1(config, m_display); + config.set_default_layout(layout_mephisto_roma2); + + // sound hardware + SPEAKER(config, "speaker").front_center(); + DAC_2BIT_ONES_COMPLEMENT(config, "dac").add_route(ALL_OUTPUTS, "speaker", 0.125); +} + +void roma2_state::montreal(machine_config &config) +{ + roma2(config); + + // basic machine hardware + m_maincpu->set_clock(12.288_MHz_XTAL); + + const attotime irq_period = attotime::from_hz(12.288_MHz_XTAL / 0x14000); // 150Hz + m_maincpu->set_periodic_int(FUNC(roma2_state::irq5_line_hold), irq_period); + + config.set_default_layout(layout_mephisto_montreal); +} + + + +/******************************************************************************* + ROM Definitions +*******************************************************************************/ + +ROM_START( roma2 ) + ROM_REGION16_BE( 0x10000, "maincpu", 0 ) + ROM_LOAD16_BYTE("roma2_u_v4.02", 0x00000, 0x08000, CRC(89e95f5f) SHA1(6c3992f35fba2c1cc08a93f50aa991d5ffda5bc3) ) + ROM_LOAD16_BYTE("roma2_l_v4.02", 0x00001, 0x08000, CRC(74b03889) SHA1(9d2a09b93f3b2dc483b4f30db134f83deb3aa951) ) +ROM_END + +ROM_START( montreal ) + ROM_REGION16_BE( 0x10000, "maincpu", 0 ) + ROM_LOAD16_BYTE("montreal_even_5.01", 0x00000, 0x08000, CRC(b32a5db4) SHA1(02a41732d80d91a984814acfae7fec0a8522c13d) ) + ROM_LOAD16_BYTE("montreal_odd_5.01", 0x00001, 0x08000, CRC(a60e2808) SHA1(8a2d404548a934573be125b0cdb91285569b8f72) ) +ROM_END + +} // anonymous namespace + + + +/******************************************************************************* + Drivers +*******************************************************************************/ + +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS +SYST( 1989, roma2, 0, 0, roma2, roma2, roma2_state, empty_init, "Hegener + Glaser", "Mephisto Roma II", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +SYST( 1993, montreal, 0, 0, montreal, montreal, roma2_state, empty_init, "Hegener + Glaser", "Mephisto Montreal 68000", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/layout/mephisto_montreal.lay b/src/mame/layout/mephisto_montreal.lay new file mode 100644 index 00000000000..17de5c8858d --- /dev/null +++ b/src/mame/layout/mephisto_montreal.lay @@ -0,0 +1,577 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mame/layout/mephisto_roma2.lay b/src/mame/layout/mephisto_roma2.lay new file mode 100644 index 00000000000..770330a2aa6 --- /dev/null +++ b/src/mame/layout/mephisto_roma2.lay @@ -0,0 +1,584 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mame/mame.lst b/src/mame/mame.lst index f89b9565b24..02664565841 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -19316,6 +19316,10 @@ polgar101 // 1990 Mephisto Polgar 10MHz mrisc // 1992 Mephisto RISC 1MB mrisc2 // 1994 Mephisto RISC II +@source:hegenerglaser/roma2.cpp +montreal // Montreal 68000 +roma2 // Roma II + @source:hegenerglaser/smondial.cpp mega4 // 1989 Mephisto Mega IV mega4a // 1989 Mephisto Mega IV -- cgit v1.2.3