diff options
author | hap <happppp@users.noreply.github.com> | 2021-04-10 17:20:56 +0200 |
---|---|---|
committer | hap <happppp@users.noreply.github.com> | 2021-04-10 17:21:14 +0200 |
commit | e56f56d624e2ce4b5ef663eb9e78971a8ed1eee0 (patch) | |
tree | 61b92a1ffeed05621e2af186b2f8956da72622a2 | |
parent | 67823bf726cccd656bdbb5481c18e7520e652a04 (diff) |
added device for 1st version of mephisto display module
43 files changed, 977 insertions, 847 deletions
diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index 67a3de1f14c..1cb299e8302 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -2551,6 +2551,8 @@ files { MAME_DIR .. "src/mame/drivers/mephisto_risc.cpp", MAME_DIR .. "src/mame/machine/mmboard.cpp", MAME_DIR .. "src/mame/machine/mmboard.h", + MAME_DIR .. "src/mame/video/mmdisplay1.cpp", + MAME_DIR .. "src/mame/video/mmdisplay1.h", MAME_DIR .. "src/mame/video/mmdisplay2.cpp", MAME_DIR .. "src/mame/video/mmdisplay2.h", } diff --git a/src/mame/drivers/fidel_csc.cpp b/src/mame/drivers/fidel_csc.cpp index 3c99441987c..4aa2a0519c4 100644 --- a/src/mame/drivers/fidel_csc.cpp +++ b/src/mame/drivers/fidel_csc.cpp @@ -823,7 +823,7 @@ ROM_END // YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS CONS( 1981, csc, 0, 0, csc, csc, csc_state, empty_init, "Fidelity Electronics", "Champion Sensory Chess Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1981, csce, 0, 0, csce, csc, csc_state, empty_init, "Fidelity Electronics", u8"Elite Champion Challenger (Travemünde version)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1981, csce, 0, 0, csce, csc, csc_state, empty_init, "Fidelity Electronics", u8"Elite Champion Challenger (Travemünde TM version)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) CONS( 1983, super9cc, 0, 0, su9, su9, su9_state, empty_init, "Fidelity Electronics", "Super \"9\" Sensory Chess Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/drivers/galivan.cpp b/src/mame/drivers/galivan.cpp index f4f89f09b6a..0e5dcb70bcf 100644 --- a/src/mame/drivers/galivan.cpp +++ b/src/mame/drivers/galivan.cpp @@ -868,10 +868,10 @@ ROM_START( ninjemak ) ROM_LOAD( "ninjemak.pr1", 0x0000, 0x0100, CRC(8a62d4e4) SHA1(99ca4da01ea1b5585f6e3ebf162c3f988ab317e5) ) /* red */ ROM_LOAD( "ninjemak.pr2", 0x0100, 0x0100, CRC(2ccf976f) SHA1(b804ee761793697087fbe3372352f301a22feeab) ) /* green */ ROM_LOAD( "ninjemak.pr3", 0x0200, 0x0100, CRC(16b2a7a4) SHA1(53c410b439c8a835447f15f2ab250b363b3f7888) ) /* blue */ - ROM_LOAD( "yncp-2d.bin", 0x0300, 0x0100, BAD_DUMP CRC(23bade78) SHA1(7e2de5eb08d888f97830807b6dbe85d09bb3b7f8) ) /* sprite lookup table */ + ROM_LOAD( "yncp-2d.bin", 0x0300, 0x0100, CRC(23bade78) SHA1(7e2de5eb08d888f97830807b6dbe85d09bb3b7f8) ) /* sprite lookup table */ ROM_REGION( 0x0100, "user1", 0 ) - ROM_LOAD( "yncp-7f.bin", 0x0000, 0x0100, BAD_DUMP CRC(262d0809) SHA1(a67281af02cef082023c0d7d57e3824aeef67450) ) /* sprite palette bank */ + ROM_LOAD( "yncp-7f.bin", 0x0000, 0x0100, CRC(262d0809) SHA1(a67281af02cef082023c0d7d57e3824aeef67450) ) /* sprite palette bank */ ROM_END ROM_START( youma ) diff --git a/src/mame/drivers/mephisto_academy.cpp b/src/mame/drivers/mephisto_academy.cpp index 4ffff24d3d5..41222786920 100644 --- a/src/mame/drivers/mephisto_academy.cpp +++ b/src/mame/drivers/mephisto_academy.cpp @@ -108,14 +108,14 @@ void academy_state::main_map(address_map &map) static INPUT_PORTS_START( academy ) PORT_START("KEY") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("TRAIN") PORT_CODE(KEYCODE_T) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("INFO") PORT_CODE(KEYCODE_I) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("MEM") PORT_CODE(KEYCODE_M) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("POS") PORT_CODE(KEYCODE_O) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("LEV") PORT_CODE(KEYCODE_L) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("FCT") PORT_CODE(KEYCODE_F) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_F1) // combine for NEW GAME - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_F1) // " + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("TRAIN") PORT_CODE(KEYCODE_T) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("INFO") PORT_CODE(KEYCODE_I) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("MEM") PORT_CODE(KEYCODE_M) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("POS") PORT_CODE(KEYCODE_O) + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("LEV") PORT_CODE(KEYCODE_L) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("FCT") PORT_CODE(KEYCODE_F) + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_F1) // combine for NEW GAME + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_F1) // " INPUT_PORTS_END @@ -129,7 +129,7 @@ void academy_state::academy(machine_config &config) M65C02(config, m_maincpu, 4.9152_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &academy_state::main_map); - const attotime nmi_period = attotime::from_hz(4.9152_MHz_XTAL / (1 << 13)); + const attotime nmi_period = attotime::from_hz(4.9152_MHz_XTAL / 0x2000); m_maincpu->set_periodic_int(FUNC(academy_state::nmi_line_pulse), nmi_period); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); diff --git a/src/mame/drivers/mephisto_berlin.cpp b/src/mame/drivers/mephisto_berlin.cpp index 5567e78800f..fcf8f29a648 100644 --- a/src/mame/drivers/mephisto_berlin.cpp +++ b/src/mame/drivers/mephisto_berlin.cpp @@ -1,5 +1,5 @@ // license:BSD-3-Clause -// copyright-holders:Sandro Ronco +// copyright-holders:Sandro Ronco, hap /****************************************************************************** Mephisto Berlin 68000 / Berlin Professional 68020 @@ -41,16 +41,16 @@ public: void berlinp(machine_config &config); private: - u8 input_r(); + required_device<cpu_device> m_maincpu; + required_device<mephisto_board_device> m_board; + required_device<mephisto_display2_device> m_display; + required_ioport m_keys; void berlin_mem(address_map &map); void berlinp_mem(address_map &map); void nvram_map(address_map &map); - required_device<cpu_device> m_maincpu; - required_device<mephisto_board_device> m_board; - required_device<mephisto_display_module2_device> m_display; - required_ioport m_keys; + u8 input_r(); }; @@ -85,8 +85,8 @@ void berlin_state::berlin_mem(address_map &map) map(0x900000, 0x903fff).m("nvram_map", FUNC(address_map_bank_device::amap8)).umask16(0xff00); map(0xa00000, 0xa00000).r(FUNC(berlin_state::input_r)); map(0xb00000, 0xb00000).w(m_board, FUNC(mephisto_board_device::mux_w)); - map(0xc00000, 0xc00000).w(m_display, FUNC(mephisto_display_module2_device::latch_w)); - map(0xd00008, 0xd00008).w(m_display, FUNC(mephisto_display_module2_device::io_w)); + map(0xc00000, 0xc00000).w(m_display, FUNC(mephisto_display2_device::latch_w)); + map(0xd00008, 0xd00008).w(m_display, FUNC(mephisto_display2_device::io_w)); map(0xe00000, 0xe00000).w(m_board, FUNC(mephisto_board_device::led_w)); } @@ -97,8 +97,8 @@ void berlin_state::berlinp_mem(address_map &map) map(0x800000, 0x800000).r(FUNC(berlin_state::input_r)); map(0x900000, 0x900000).w(m_board, FUNC(mephisto_board_device::mux_w)); map(0xa00000, 0xa00000).w(m_board, FUNC(mephisto_board_device::led_w)); - map(0xb00000, 0xb00000).w(m_display, FUNC(mephisto_display_module2_device::io_w)); - map(0xc00000, 0xc00000).w(m_display, FUNC(mephisto_display_module2_device::latch_w)); + map(0xb00000, 0xb00000).w(m_display, FUNC(mephisto_display2_device::io_w)); + map(0xc00000, 0xc00000).w(m_display, FUNC(mephisto_display2_device::latch_w)); map(0xd00000, 0xd07fff).m("nvram_map", FUNC(address_map_bank_device::amap8)).umask32(0xff000000); } diff --git a/src/mame/drivers/mephisto_brikett.cpp b/src/mame/drivers/mephisto_brikett.cpp index 575b1e6ba9c..e398ab9e2cc 100644 --- a/src/mame/drivers/mephisto_brikett.cpp +++ b/src/mame/drivers/mephisto_brikett.cpp @@ -69,12 +69,15 @@ is completely different, based on a 68000. ******************************************************************************/ #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 "video/mmdisplay1.h" #include "video/pwm.h" + #include "speaker.h" // internal artwork @@ -95,6 +98,7 @@ public: m_extport(*this, "extport"), m_board(*this, "board"), m_display(*this, "display"), + m_led_pwm(*this, "led_pwm"), m_dac(*this, "dac"), m_speaker_off(*this, "speaker_off"), m_inputs(*this, "IN.%u", 0) @@ -119,7 +123,8 @@ private: required_device<cdp1802_device> m_maincpu; optional_device<cdp1852_device> m_extport; optional_device<sensorboard_device> m_board; - required_device<pwm_display_device> m_display; + required_device<mephisto_display1_device> m_display; + optional_device<pwm_display_device> m_led_pwm; required_device<dac_bit_interface> m_dac; required_device<timer_device> m_speaker_off; optional_ioport_array<4+2> m_inputs; @@ -138,8 +143,6 @@ private: // I/O handlers INTERRUPT_GEN_MEMBER(interrupt); DECLARE_READ_LINE_MEMBER(clear_r); - DECLARE_WRITE_LINE_MEMBER(q_w); - void lcd_w(u8 data); u8 input_r(offs_t offset); u8 sound_r(); @@ -148,34 +151,16 @@ private: TIMER_DEVICE_CALLBACK_MEMBER(speaker_off) { m_dac->write(0); } - bool m_reset; - u8 m_lcd_mask; - u8 m_digit_idx; - u8 m_digit_data[4]; - - u8 m_esb_led; - u8 m_esb_row; - u8 m_esb_select; + bool m_reset = false; + u8 m_esb_led = 0; + u8 m_esb_row = 0; + u8 m_esb_select = 0; }; void brikett_state::machine_start() { - // zerofill - m_reset = false; - 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_reset)); - 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)); @@ -184,8 +169,6 @@ void brikett_state::machine_start() void brikett_state::machine_reset() { m_reset = true; - m_digit_idx = 0; - set_cpu_freq(); } @@ -222,28 +205,6 @@ READ_LINE_MEMBER(brikett_state::clear_r) return ret; } -WRITE_LINE_MEMBER(brikett_state::q_w) -{ - // Q: LCD digit data mask - // also assume LCD update on rising edge - if (state && !m_lcd_mask) - { - for (int i = 0; i < 4; i++) - m_display->write_row(i, m_digit_data[i]); - m_display->update(); - } - - m_lcd_mask = state ? 0xff : 0; -} - -void brikett_state::lcd_w(u8 data) -{ - // d0-d7: write/shift LCD digit (4*CD4015) - // note: last digit "dp" is the colon in the middle - m_digit_data[m_digit_idx] = data ^ m_lcd_mask; - m_digit_idx = (m_digit_idx + 1) & 3; -} - u8 brikett_state::sound_r() { // port 1 read enables the speaker @@ -274,7 +235,7 @@ void brikett_state::esb_w(u8 data) if (!m_inputs[5].read_safe(0)) { // chessboard disabled - m_display->matrix_partial(4, 8, 0, 0); + m_led_pwm->clear(); return; } @@ -296,7 +257,7 @@ void brikett_state::esb_w(u8 data) m_esb_row = data; // update chessboard leds - m_display->matrix_partial(4, 8, ~m_esb_row, m_esb_led); + m_led_pwm->matrix(~m_esb_row, m_esb_led); } READ_LINE_MEMBER(brikett_state::esb_r) @@ -318,7 +279,7 @@ 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(0xfb00, 0xfb00).mirror(0x00ff).w(m_display, FUNC(mephisto_display1_device::data_w)); map(0xfff0, 0xffff).r(FUNC(brikett_state::input_r)); } @@ -459,14 +420,13 @@ void brikett_state::mephistoj(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &brikett_state::mephistoj_map); m_maincpu->set_addrmap(AS_IO, &brikett_state::mephistoj_io); m_maincpu->clear_cb().set(FUNC(brikett_state::clear_r)); - m_maincpu->q_cb().set(FUNC(brikett_state::q_w)).invert(); + m_maincpu->q_cb().set(m_display, FUNC(mephisto_display1_device::strobe_w)).invert(); const attotime irq_period = attotime::from_hz(4.194304_MHz_XTAL / 0x10000); // through SAJ300T m_maincpu->set_periodic_int(FUNC(brikett_state::interrupt), irq_period); /* video hardware */ - PWM_DISPLAY(config, m_display).set_size(4, 8); - m_display->set_segmask(0xf, 0x7f); + MEPHISTO_DISPLAY_MODULE1(config, m_display); // internal config.set_default_layout(layout_mephisto_junior); /* sound hardware */ @@ -519,7 +479,7 @@ void brikett_state::mephisto2e(machine_config &config) 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); + PWM_DISPLAY(config, m_led_pwm).set_size(8, 8); config.set_default_layout(layout_mephisto_esb2); } @@ -530,7 +490,7 @@ void brikett_state::mephisto3(machine_config &config) /* basic machine hardware */ m_maincpu->set_clock(6.144_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &brikett_state::mephisto3_map); - m_maincpu->q_cb().set(FUNC(brikett_state::q_w)); + m_maincpu->q_cb().set(m_display, FUNC(mephisto_display1_device::strobe_w)); config.set_default_layout(layout_mephisto_3); } diff --git a/src/mame/drivers/mephisto_glasgow.cpp b/src/mame/drivers/mephisto_glasgow.cpp index 6fd353da8a7..794fa4da8db 100644 --- a/src/mame/drivers/mephisto_glasgow.cpp +++ b/src/mame/drivers/mephisto_glasgow.cpp @@ -1,6 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Dirk Verwiebe, Cowering /*************************************************************************** + Mephisto Glasgow 3 S chess computer Dirk V. sp_rinter@gmx.de @@ -35,7 +36,8 @@ How to play (quick guide) TODO: - add waitstates(applies to glasgow, amsterd, others?), CPU is 12MHz but with DTACK waitstates for slow EPROMs, effective speed is less than 10MHz -- LCD module is 8.8.:8.8 like mephisto_brikett/mm1 (so, add ":" in the middle) +- use mmdisplay1 device +- split driver (glasgow/amsterdam) ***************************************************************************/ @@ -90,7 +92,6 @@ protected: u8 m_key_select; }; - class amsterd_state : public glasgow_state { public: @@ -121,7 +122,7 @@ void glasgow_state::glasgow_lcd_w(u8 data) if (m_led7 == 0) m_digits[m_lcd_shift_counter] = data; - m_lcd_shift_counter--; + m_lcd_shift_counter++; m_lcd_shift_counter &= 3; } @@ -161,7 +162,7 @@ void amsterd_state::write_lcd(u8 data) if (m_lcd_shift_counter & 4) m_digits[m_lcd_shift_counter & 3] = data; - m_lcd_shift_counter--; + m_lcd_shift_counter++; m_lcd_shift_counter &= 7; } @@ -200,10 +201,9 @@ void glasgow_state::machine_start() save_item(NAME(m_key_select)); } - void glasgow_state::machine_reset() { - m_lcd_shift_counter = 3; + m_lcd_shift_counter = 0; m_key_select = 0; m_led7 = 0; } @@ -230,8 +230,8 @@ void amsterd_state::amsterd_mem(address_map &map) { map(0x000000, 0x00ffff).rom(); map(0x800002, 0x800002).w(FUNC(amsterd_state::write_lcd)); - map(0x800008, 0x800008).w(FUNC(amsterd_state::write_lcd_flag)); map(0x800004, 0x800004).w(FUNC(amsterd_state::write_beeper)); + map(0x800008, 0x800008).w(FUNC(amsterd_state::write_lcd_flag)); map(0x800010, 0x800010).w(FUNC(amsterd_state::write_board)); map(0x800020, 0x800020).r("board", FUNC(mephisto_board_device::input_r)); map(0x800040, 0x800040).r(FUNC(amsterd_state::read_newkeys)); diff --git a/src/mame/drivers/mephisto_milano.cpp b/src/mame/drivers/mephisto_milano.cpp index ea5851f9f0a..c1385fa3d47 100644 --- a/src/mame/drivers/mephisto_milano.cpp +++ b/src/mame/drivers/mephisto_milano.cpp @@ -50,7 +50,7 @@ protected: private: required_device<cpu_device> m_maincpu; required_device<sensorboard_device> m_board; - required_device<mephisto_display_module2_device> m_display; + required_device<mephisto_display2_device> m_display; required_device<pwm_display_device> m_led_pwm; required_ioport m_keys; @@ -125,7 +125,7 @@ u8 milano_state::keys_r(offs_t offset) void milano_state::milano_mem(address_map &map) { map(0x0000, 0x1fbf).ram().share("nvram"); - map(0x1fc0, 0x1fc0).w(m_display, FUNC(mephisto_display_module2_device::latch_w)); + map(0x1fc0, 0x1fc0).w(m_display, FUNC(mephisto_display2_device::latch_w)); map(0x1fd0, 0x1fd0).w(FUNC(milano_state::board_w)); map(0x1fe0, 0x1fe0).r(FUNC(milano_state::board_r)); map(0x1fe8, 0x1fef).w("outlatch", FUNC(hc259_device::write_d7)).nopr(); @@ -142,14 +142,14 @@ void milano_state::milano_mem(address_map &map) static INPUT_PORTS_START( milano ) PORT_START("KEY") - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Training / Pawn") PORT_CODE(KEYCODE_T) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Info / Knight") PORT_CODE(KEYCODE_I) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Memory / Bishop") PORT_CODE(KEYCODE_M) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Position / Rook") PORT_CODE(KEYCODE_O) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Level / Queen") PORT_CODE(KEYCODE_L) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Function / King") PORT_CODE(KEYCODE_F) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Enter / New Game") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_F1) // combine for NEW GAME - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Clear / New Game") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_F1) // " + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Training / Pawn") PORT_CODE(KEYCODE_T) + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Info / Knight") PORT_CODE(KEYCODE_I) + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Memory / Bishop") PORT_CODE(KEYCODE_M) + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Position / Rook") PORT_CODE(KEYCODE_O) + PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Level / Queen") PORT_CODE(KEYCODE_L) + PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Function / King") PORT_CODE(KEYCODE_F) + PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Enter / New Game") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_F1) // combine for NEW GAME + PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Clear / New Game") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_F1) // " INPUT_PORTS_END @@ -163,7 +163,9 @@ void milano_state::milano(machine_config &config) /* basic machine hardware */ R65C02(config, m_maincpu, 4.9152_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &milano_state::milano_mem); - m_maincpu->set_periodic_int(FUNC(milano_state::nmi_line_pulse), attotime::from_hz(4.9152_MHz_XTAL / (1 << 13))); + + const attotime nmi_period = attotime::from_hz(4.9152_MHz_XTAL / 0x2000); + m_maincpu->set_periodic_int(FUNC(milano_state::nmi_line_pulse), nmi_period); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); diff --git a/src/mame/drivers/mephisto_mm1.cpp b/src/mame/drivers/mephisto_mm1.cpp index ff23d7891c9..7464f87d0c3 100644 --- a/src/mame/drivers/mephisto_mm1.cpp +++ b/src/mame/drivers/mephisto_mm1.cpp @@ -16,7 +16,9 @@ Hardware notes: - 32KB ROM (2*D27128, or HN613256P) - 4KB RAM (2*HM6116LP-3) - CDP1853CE, CD4011BE, 3*40373BP, 4556BE -- modular slot, 18-button keypad, beeper +- Mephisto modular display module +- Mephisto modular chessboard +- 18-button keypad, beeper It supports the HG 170 opening book module. LCD module is assumed to be same as MM II and others. @@ -38,12 +40,12 @@ TODO: #include "emu.h" -#include "cpu/cosmac/cosmac.h" -#include "machine/sensorboard.h" -#include "sound/dac.h" -#include "video/pwm.h" #include "bus/generic/slot.h" #include "bus/generic/carts.h" +#include "cpu/cosmac/cosmac.h" +#include "machine/mmboard.h" +#include "sound/dac.h" +#include "video/mmdisplay1.h" #include "softlist.h" #include "speaker.h" @@ -62,7 +64,6 @@ public: 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) { } @@ -80,8 +81,7 @@ protected: private: // devices/pointers required_device<cdp1806_device> m_maincpu; - required_device<sensorboard_device> m_board; - required_device<pwm_display_device> m_display; + required_device<mephisto_board_device> m_board; required_device<dac_bit_interface> m_dac; required_ioport_array<8> m_inputs; @@ -94,53 +94,25 @@ private: INTERRUPT_GEN_MEMBER(interrupt); void update_display(); DECLARE_READ_LINE_MEMBER(clear_r); - DECLARE_WRITE_LINE_MEMBER(q_w); void sound_w(u8 data); void unknown_w(u8 data); - void lcd_w(u8 data); - void board_w(u8 data); - void led_w(u8 data); void keypad_w(u8 data); - u8 board_r(); template<int P> DECLARE_READ_LINE_MEMBER(keypad_r); - bool m_reset; - u8 m_lcd_mask; - u8 m_digit_idx; - u8 m_digit_data[4]; - - u8 m_kp_mux; - u8 m_cb_mux; - u8 m_led_data; + bool m_reset = false; + u8 m_kp_mux = 0; }; void mm1_state::machine_start() { - // zerofill - m_reset = false; - m_lcd_mask = 0; - m_digit_idx = 0; - memset(m_digit_data, 0, sizeof(m_digit_data)); - - m_kp_mux = 0; - m_cb_mux = 0; - m_led_data = 0; - // register for savestates save_item(NAME(m_reset)); - save_item(NAME(m_lcd_mask)); - save_item(NAME(m_digit_idx)); - save_item(NAME(m_digit_data)); - save_item(NAME(m_kp_mux)); - save_item(NAME(m_cb_mux)); - save_item(NAME(m_led_data)); } void mm1_state::machine_reset() { m_reset = true; - m_digit_idx = 0; } @@ -162,28 +134,6 @@ READ_LINE_MEMBER(mm1_state::clear_r) return ret; } -WRITE_LINE_MEMBER(mm1_state::q_w) -{ - // Q: LCD digit data mask - // also assume LCD update on rising edge - if (state && !m_lcd_mask) - { - for (int i = 0; i < 4; i++) - m_display->write_row(i, m_digit_data[i]); - m_display->update(); - } - - m_lcd_mask = state ? 0xff : 0; -} - -void mm1_state::lcd_w(u8 data) -{ - // d0-d7: write/shift LCD digit (4*CD4015) - // note: last digit "dp" is the colon in the middle - m_digit_data[m_digit_idx] = data ^ m_lcd_mask; - m_digit_idx = (m_digit_idx + 1) & 3; -} - void mm1_state::sound_w(u8 data) { // d0: speaker out @@ -195,38 +145,6 @@ void mm1_state::unknown_w(u8 data) // mmirage: unused serial device? } -void mm1_state::update_display() -{ - // 64 chessboard leds - m_display->matrix_partial(4, 8, m_cb_mux, m_led_data); -} - -void mm1_state::led_w(u8 data) -{ - // d0-d7: chessboard led data - m_led_data = data; - update_display(); -} - -void mm1_state::board_w(u8 data) -{ - // d0-d7: chessboard input/led mux - m_cb_mux = ~data; - update_display(); -} - -u8 mm1_state::board_r() -{ - u8 data = 0; - - // d0-d7: multiplexed inputs (chessboard) - for (int i = 0; i < 8; i++) - if (BIT(m_cb_mux, i)) - data |= m_board->read_rank(i); - - return ~data; -} - void mm1_state::keypad_w(u8 data) { // d0-d7: keypad input mux @@ -269,10 +187,10 @@ void mm1_state::mm1_io(address_map &map) { map(0x01, 0x01).w(FUNC(mm1_state::sound_w)); map(0x02, 0x02).w(FUNC(mm1_state::keypad_w)); - map(0x03, 0x03).r(FUNC(mm1_state::board_r)); - map(0x04, 0x04).w(FUNC(mm1_state::board_w)); - map(0x05, 0x05).w(FUNC(mm1_state::led_w)); - map(0x06, 0x06).w(FUNC(mm1_state::lcd_w)); + map(0x03, 0x03).r(m_board, FUNC(mephisto_board_device::input_r)); + map(0x04, 0x04).w(m_board, FUNC(mephisto_board_device::mux_w)); + map(0x05, 0x05).w(m_board, FUNC(mephisto_board_device::led_w)); + map(0x06, 0x06).w("display", FUNC(mephisto_display1_device::data_w)); map(0x07, 0x07).w(FUNC(mm1_state::unknown_w)); } @@ -357,7 +275,7 @@ INPUT_PORTS_END INPUT_CHANGED_MEMBER(mm1_state::mirage_switch_sensor_type) { - m_board->set_type(newval ? sensorboard_device::MAGNETS : sensorboard_device::BUTTONS); + m_board->get()->set_type(newval ? sensorboard_device::MAGNETS : sensorboard_device::BUTTONS); } @@ -373,7 +291,7 @@ void mm1_state::mirage(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &mm1_state::mirage_map); m_maincpu->set_addrmap(AS_IO, &mm1_state::mm1_io); m_maincpu->clear_cb().set(FUNC(mm1_state::clear_r)); - m_maincpu->q_cb().set(FUNC(mm1_state::q_w)).invert(); + m_maincpu->q_cb().set("display", FUNC(mephisto_display1_device::strobe_w)).invert(); m_maincpu->ef3_cb().set(FUNC(mm1_state::keypad_r<0>)); m_maincpu->ef4_cb().set(FUNC(mm1_state::keypad_r<1>)); @@ -381,13 +299,11 @@ void mm1_state::mirage(machine_config &config) const attotime irq_period = attotime::from_ticks(8 * 32 * 0x71, 8_MHz_XTAL); // LDC = 0x71 m_maincpu->set_periodic_int(FUNC(mm1_state::interrupt), irq_period); - SENSORBOARD(config, m_board).set_type(sensorboard_device::BUTTONS); - m_board->init_cb().set(m_board, FUNC(sensorboard_device::preset_chess)); + MEPHISTO_BUTTONS_BOARD(config, m_board); // see mirage_switch_sensor_type m_board->set_delay(attotime::from_msec(200)); /* video hardware */ - PWM_DISPLAY(config, m_display).set_size(4+8, 8); - m_display->set_segmask(0xf, 0x7f); + MEPHISTO_DISPLAY_MODULE1(config, "display"); config.set_default_layout(layout_mephisto_mirage); /* sound hardware */ @@ -401,13 +317,14 @@ void mm1_state::mm1(machine_config &config) /* basic machine hardware */ m_maincpu->set_addrmap(AS_PROGRAM, &mm1_state::mm1_map); - m_maincpu->q_cb().set(FUNC(mm1_state::q_w)); + m_maincpu->q_cb().set("display", FUNC(mephisto_display1_device::strobe_w)); // wrong! uses internal timer interrupt const attotime irq_period = attotime::from_ticks(8 * 32 * 0xfa, 8_MHz_XTAL); // LDC = 0xFA m_maincpu->set_periodic_int(FUNC(mm1_state::interrupt), irq_period); - m_board->set_type(sensorboard_device::MAGNETS); + MEPHISTO_SENSORS_BOARD(config.replace(), m_board); + m_board->set_delay(attotime::from_msec(200)); config.set_default_layout(layout_mephisto_mm1); diff --git a/src/mame/drivers/mephisto_mm2.cpp b/src/mame/drivers/mephisto_mm2.cpp index 89409b9a5c9..d6f5768d7d1 100644 --- a/src/mame/drivers/mephisto_mm2.cpp +++ b/src/mame/drivers/mephisto_mm2.cpp @@ -1,16 +1,17 @@ // license:BSD-3-Clause -// copyright-holders:Dirk Verwiebe, Cowering +// copyright-holders:Dirk Verwiebe, Cowering, hap /****************************************************************************** - Mephisto 4 + 5 Chess Computer - 2007 Dirk V. -CPU 65C02 P4 (also seen: R65C02P3, G65SC02P-4) -Clock 4.9152 MHz -NMI CLK 600 Hz +Mephisto 4 + 5 Chess Computer +2007 Dirk V. + +CPU: G65SC02P-4 or R65C02P3 +Clock: 4.9152 MHz +NMI CLK: 600 Hz IRQ Line is set to VSS -8 KByte SRAM Sony CXK5864-15l +8 KByte SRAM Sony CXK5864-15L -1-CD74HC4060E 14 Bit Counter +1-CD74HC4060E: 14 Bit Counter 1-CD74HC166E 1-CD74HC251E 1-SN74HC138N TI @@ -25,7 +26,7 @@ PCB label HGS 10 122 01 1-CD4011 4-CD4015 -$0000-$1fff S-RAM +$0000-$1fff S-RAM $2000 LCD 4 Byte Shift Register writeonly right to left every 2nd char xor'd by $FF @@ -73,19 +74,18 @@ MM VI (Saitek, 1994) is on different hardware, H8 CPU. TODO: - need to emulate TurboKit properly, also for mm5p (it's not as simple as a CPU overclock plus ROM patch) -- LCD module is 8.8.:8.8 like mephisto_brikett/mm1 (so, add ":" in the middle) ******************************************************************************/ #include "emu.h" -#include "cpu/m6502/m65c02.h" +#include "bus/generic/slot.h" +#include "bus/generic/carts.h" +#include "cpu/m6502/m65sc02.h" #include "machine/74259.h" #include "machine/mmboard.h" -#include "machine/timer.h" #include "sound/dac.h" -#include "bus/generic/slot.h" -#include "bus/generic/carts.h" +#include "video/mmdisplay1.h" #include "softlist.h" #include "speaker.h" @@ -104,10 +104,9 @@ public: : driver_device(mconfig, type, tag) , m_maincpu(*this, "maincpu") , m_outlatch(*this, "outlatch") + , m_display(*this, "display") , m_dac(*this, "dac") - , m_key1(*this, "KEY1_%u", 0U) - , m_key2(*this, "KEY2_%u", 0U) - , m_digits(*this, "digit%u", 0U) + , m_keys(*this, "KEY.%u", 0) { } DECLARE_INPUT_CHANGED_MEMBER(reset_button); @@ -120,104 +119,64 @@ public: void mm2(machine_config &config); void bup(machine_config &config); +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + private: - required_device<m65c02_device> m_maincpu; + required_device<cpu_device> m_maincpu; required_device<hc259_device> m_outlatch; + required_device<mephisto_display1_device> m_display; required_device<dac_bit_interface> m_dac; - required_ioport_array<8> m_key1; - required_ioport_array<8> m_key2; - output_finder<4> m_digits; - - void write_lcd(u8 data); - void mephisto_nmi_w(u8 data); - u8 read_keys(offs_t offset); - DECLARE_WRITE_LINE_MEMBER(write_led7); - u8 m_lcd_shift_counter; - u8 m_led7; - u8 m_allowNMI; - virtual void machine_start() override; - virtual void machine_reset() override; - TIMER_DEVICE_CALLBACK_MEMBER(update_nmi); - TIMER_DEVICE_CALLBACK_MEMBER(update_nmi_r5); + required_ioport_array<2> m_keys; void bup_mem(address_map &map); void mm2_mem(address_map &map); void mm4_mem(address_map &map); void mm5p_mem(address_map &map); void rebel5_mem(address_map &map); + + void lcd_irqack_w(u8 data); + u8 keys_r(offs_t offset); }; void mm2_state::machine_start() { - m_digits.resolve(); - - save_item(NAME(m_lcd_shift_counter)); - save_item(NAME(m_led7)); - save_item(NAME(m_allowNMI)); } void mm2_state::machine_reset() { - m_lcd_shift_counter = 3; - m_allowNMI = 1; - m_led7 = 0xff; + m_display->reset(); + m_maincpu->set_input_line(0, CLEAR_LINE); } - - -/****************************************************************************** - I/O -******************************************************************************/ - -TIMER_DEVICE_CALLBACK_MEMBER(mm2_state::update_nmi) +INPUT_CHANGED_MEMBER(mm2_state::reset_button) { - if (m_allowNMI) + // RES buttons in serial tied to CPU RESET + if (ioport("RESET")->read() == 3) { - m_allowNMI = 0; - m_maincpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero); + m_maincpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero); + machine_reset(); } } -TIMER_DEVICE_CALLBACK_MEMBER(mm2_state::update_nmi_r5) -{ - m_maincpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero); -} - -void mm2_state::write_lcd(u8 data) -{ - if (m_led7 == 0) - m_digits[m_lcd_shift_counter] = data; // 0x109 MM IV // 0x040 MM V - m_lcd_shift_counter--; - m_lcd_shift_counter &= 3; - m_maincpu->set_input_line(0, CLEAR_LINE); -} - -void mm2_state::mephisto_nmi_w(u8 data) -{ - m_allowNMI = 1; -} +/****************************************************************************** + I/O +******************************************************************************/ -u8 mm2_state::read_keys(offs_t offset) +void mm2_state::lcd_irqack_w(u8 data) { - u8 data = 0; - - if (!m_outlatch->q7_r()) - { - data = m_key1[offset]->read(); - } - else - { - data = m_key2[offset]->read(); - } + m_display->data_w(data); - return data | 0x7f; + // writing to 0x2800 also clears irq + m_maincpu->set_input_line(0, CLEAR_LINE); } -WRITE_LINE_MEMBER(mm2_state::write_led7) +u8 mm2_state::keys_r(offs_t offset) { - m_led7 = state ? 0x00 : 0xff; + return ~(BIT(m_keys[m_outlatch->q7_r()]->read(), offset) << 7); } @@ -230,9 +189,9 @@ void mm2_state::bup_mem(address_map &map) { map(0x0000, 0x0fff).ram(); map(0x1000, 0x1007).w("outlatch", FUNC(hc259_device::write_d7)); - map(0x1800, 0x1807).r(FUNC(mm2_state::read_keys)); + map(0x1800, 0x1807).r(FUNC(mm2_state::keys_r)); map(0x2000, 0x2000).r("board", FUNC(mephisto_board_device::input_r)); - map(0x2800, 0x2800).w(FUNC(mm2_state::write_lcd)); + map(0x2800, 0x2800).w(FUNC(mm2_state::lcd_irqack_w)); map(0x3000, 0x3000).w("board", FUNC(mephisto_board_device::led_w)); map(0x3800, 0x3800).w("board", FUNC(mephisto_board_device::mux_w)); map(0x8000, 0xffff).rom(); @@ -249,8 +208,8 @@ void mm2_state::rebel5_mem(address_map &map) map(0x0000, 0x1fff).ram(); map(0x2000, 0x2007).w("outlatch", FUNC(hc259_device::write_d7)); map(0x3000, 0x4000).r("board", FUNC(mephisto_board_device::input_r)); - map(0x3000, 0x3007).r(FUNC(mm2_state::read_keys)); - map(0x5000, 0x5000).w(FUNC(mm2_state::write_lcd)); + map(0x3000, 0x3007).r(FUNC(mm2_state::keys_r)); + map(0x5000, 0x5000).w(m_display, FUNC(mephisto_display1_device::data_w)); map(0x6000, 0x6000).w("board", FUNC(mephisto_board_device::led_w)); map(0x7000, 0x7000).w("board", FUNC(mephisto_board_device::mux_w)); map(0x8000, 0xffff).rom(); @@ -259,13 +218,13 @@ void mm2_state::rebel5_mem(address_map &map) void mm2_state::mm5p_mem(address_map &map) { map(0x0000, 0x1fff).ram(); - map(0x2000, 0x2000).w(FUNC(mm2_state::write_lcd)); + map(0x2000, 0x2000).w(m_display, FUNC(mephisto_display1_device::data_w)); map(0x2400, 0x2407).w("board", FUNC(mephisto_board_device::led_w)).nopr(); map(0x2800, 0x2800).w("board", FUNC(mephisto_board_device::mux_w)); - map(0x2c00, 0x2c07).r(FUNC(mm2_state::read_keys)); + map(0x2c00, 0x2c07).r(FUNC(mm2_state::keys_r)); map(0x3000, 0x3000).r("board", FUNC(mephisto_board_device::input_r)); map(0x3400, 0x3407).w("outlatch", FUNC(hc259_device::write_d7)).nopr(); - map(0x3800, 0x3800).w(FUNC(mm2_state::mephisto_nmi_w)); + map(0x3800, 0x3800).nopw(); // N/C map(0x4000, 0xffff).rom(); } @@ -281,40 +240,26 @@ void mm2_state::mm4_mem(address_map &map) Input Ports ******************************************************************************/ -static INPUT_PORTS_START( mephisto ) - PORT_START("KEY1_0") //Port $2c00 - 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 - PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("MEM") PORT_CODE(KEYCODE_M) - PORT_START("KEY1_3") //Port $2c03 - PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("INFO") PORT_CODE(KEYCODE_I) - PORT_START("KEY1_4") //Port $2c04 - PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("LEV") PORT_CODE(KEYCODE_L) - 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("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("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 / 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 / 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_START("KEY2_3") //Port $2c0b - 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_START("KEY2_5") //Port $2c0d - 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 / 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 / Rook") PORT_CODE(KEYCODE_D) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) +static INPUT_PORTS_START( mm2 ) + PORT_START("KEY.0") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) + 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("MEM") PORT_CODE(KEYCODE_M) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("INFO") PORT_CODE(KEYCODE_I) + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("LEV") PORT_CODE(KEYCODE_L) + 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("Right / White / 0") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_CODE(KEYCODE_RIGHT) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Left / Black / 9") PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_CODE(KEYCODE_LEFT) + + PORT_START("KEY.1") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("E / 5 / Queen") PORT_CODE(KEYCODE_E) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("F / 6 / King") PORT_CODE(KEYCODE_F) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("G / 7") PORT_CODE(KEYCODE_G) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("A / 1 / Pawn") PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H / 8") PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("B / 2 / Knight") PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C / 3 / Bishop") PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("D / 4 / Rook") PORT_CODE(KEYCODE_D) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_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, mm2_state, reset_button, 0) @@ -322,55 +267,31 @@ static INPUT_PORTS_START( mephisto ) INPUT_PORTS_END static INPUT_PORTS_START( bup ) - PORT_START("KEY1_0") - 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 / 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 / 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 / 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 / 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 / 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_START("KEY1_7") - 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) - PORT_START("KEY2_1") - PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) - PORT_START("KEY2_2") - PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("BEST") PORT_CODE(KEYCODE_S) - PORT_START("KEY2_3") - PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("INFO") PORT_CODE(KEYCODE_I) - PORT_START("KEY2_4") - PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("MON") PORT_CODE(KEYCODE_N) - PORT_START("KEY2_5") - PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("POS") PORT_CODE(KEYCODE_O) - PORT_START("KEY2_6") - PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("LEV") PORT_CODE(KEYCODE_L) - PORT_START("KEY2_7") - PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("MEM") PORT_CODE(KEYCODE_M) + PORT_START("KEY.0") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("1 / Pawn") PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("2 / Knight") PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("3 / Bishop") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("4 / Rook") PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("5 / Queen") PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("6 / King") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("White") PORT_CODE(KEYCODE_W) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Black") PORT_CODE(KEYCODE_B) + + PORT_START("KEY.1") + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("BEST") PORT_CODE(KEYCODE_S) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("INFO") PORT_CODE(KEYCODE_I) + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("MON") PORT_CODE(KEYCODE_N) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("POS") PORT_CODE(KEYCODE_O) + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("LEV") PORT_CODE(KEYCODE_L) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("MEM") PORT_CODE(KEYCODE_M) 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, mm2_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, mm2_state, reset_button, 0) INPUT_PORTS_END -INPUT_CHANGED_MEMBER(mm2_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(); - } -} - /****************************************************************************** @@ -380,10 +301,11 @@ INPUT_CHANGED_MEMBER(mm2_state::reset_button) void mm2_state::rebel5(machine_config &config) { /* basic machine hardware */ - M65C02(config, m_maincpu, 9.8304_MHz_XTAL / 2); + M65SC02(config, m_maincpu, 9.8304_MHz_XTAL / 2); m_maincpu->set_addrmap(AS_PROGRAM, &mm2_state::rebel5_mem); - TIMER(config, "nmi_timer").configure_periodic(FUNC(mm2_state::update_nmi_r5), attotime::from_hz(600)); + const attotime nmi_period = attotime::from_hz(9.8304_MHz_XTAL / 2 / 0x2000); // 600Hz + m_maincpu->set_periodic_int(FUNC(mm2_state::nmi_line_pulse), nmi_period); HC259(config, m_outlatch); m_outlatch->q_out_cb<0>().set_output("led100"); @@ -393,9 +315,10 @@ void mm2_state::rebel5(machine_config &config) m_outlatch->q_out_cb<4>().set_output("led104"); m_outlatch->q_out_cb<5>().set_output("led105"); m_outlatch->q_out_cb<6>().set(m_dac, FUNC(dac_bit_interface::write)); - m_outlatch->q_out_cb<7>().set(FUNC(mm2_state::write_led7)); + m_outlatch->q_out_cb<7>().set(m_display, FUNC(mephisto_display1_device::strobe_w)).invert(); MEPHISTO_SENSORS_BOARD(config, "board"); + MEPHISTO_DISPLAY_MODULE1(config, m_display); config.set_default_layout(layout_mephisto_mm2); /* sound hardware */ @@ -411,7 +334,8 @@ void mm2_state::mm5p(machine_config &config) m_maincpu->set_clock(4.9152_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &mm2_state::mm5p_mem); - TIMER(config.replace(), "nmi_timer").configure_periodic(FUNC(mm2_state::update_nmi), attotime::from_hz(600)); + const attotime nmi_period = attotime::from_hz(4.9152_MHz_XTAL / 0x2000); // 600Hz + m_maincpu->set_periodic_int(FUNC(mm2_state::nmi_line_pulse), nmi_period); } void mm2_state::mm4(machine_config &config) @@ -445,11 +369,10 @@ void mm2_state::bup(machine_config &config) m_maincpu->set_clock(7.3728_MHz_XTAL / 2); m_maincpu->set_addrmap(AS_PROGRAM, &mm2_state::bup_mem); - config.device_remove("nmi_timer"); const attotime irq_period = attotime::from_hz(7.3728_MHz_XTAL / 2 / 0x2000); // 450Hz from 4020 Q13 m_maincpu->set_periodic_int(FUNC(mm2_state::irq0_line_assert), irq_period); - m_outlatch->q_out_cb<7>().set(FUNC(mm2_state::write_led7)).invert(); + m_outlatch->q_out_cb<7>().set(m_display, FUNC(mephisto_display1_device::strobe_w)); config.set_default_layout(layout_mephisto_bup); } @@ -571,24 +494,24 @@ ROM_END Drivers ******************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS */ -CONS( 1984, mm2, 0, 0, mm2, mephisto, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM II (set 1, v4.00 1 EPROM)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1984, mm2a, mm2, 0, mm2, mephisto, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM II (set 2, v4.00 2 EPROMs)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1984, mm2b, mm2, 0, mm2, mephisto, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM II (set 3, v3.00)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1984, mm2c, mm2, 0, mm2, mephisto, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM II (set 4)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1984, mm2d, mm2, 0, mm2, mephisto, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM II (set 5)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS */ +CONS( 1984, mm2, 0, 0, mm2, mm2, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM II (set 1, v4.00 1 EPROM)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1984, mm2a, mm2, 0, mm2, mm2, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM II (set 2, v4.00 2 EPROMs)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1984, mm2b, mm2, 0, mm2, mm2, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM II (set 3, v3.00)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1984, mm2c, mm2, 0, mm2, mm2, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM II (set 4)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1984, mm2d, mm2, 0, mm2, mm2, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM II (set 5)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1985, bup, 0, 0, bup, bup, mm2_state, empty_init, "Hegener + Glaser", u8"Mephisto Blitz- und Problemlösungs-Modul (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1985, bupa, bup, 0, bup, bup, mm2_state, empty_init, "Hegener + Glaser", u8"Mephisto Blitz- und Problemlösungs-Modul (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1985, bup, 0, 0, bup, bup, mm2_state, empty_init, "Hegener + Glaser", u8"Mephisto Blitz- und Problemlösungs-Modul (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1985, bupa, bup, 0, bup, bup, mm2_state, empty_init, "Hegener + Glaser", u8"Mephisto Blitz- und Problemlösungs-Modul (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1986, rebel5, 0, 0, rebel5, mephisto, mm2_state, empty_init, "Hegener + Glaser", "Mephisto Rebell 5,0 (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // aka MM III -CONS( 1986, rebel5a, rebel5, 0, rebel5, mephisto, mm2_state, empty_init, "Hegener + Glaser", "Mephisto Rebell 5,0 (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1986, rebel5, 0, 0, rebel5, mm2, mm2_state, empty_init, "Hegener + Glaser", "Mephisto Rebell 5,0 (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // aka MM III +CONS( 1986, rebel5a, rebel5, 0, rebel5, mm2, mm2_state, empty_init, "Hegener + Glaser", "Mephisto Rebell 5,0 (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1987, mm4, 0, 0, mm4, mephisto, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM IV (v7.10)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1987, mm4a, mm4, 0, mm4, mephisto, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM IV (v7.00)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1987, mm4b, mm4, 0, mm4, mephisto, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM IV (v6.00)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1987, mm4tk, mm4, 0, mm4tk, mephisto, mm2_state, empty_init, "hack", "Mephisto MM IV (TurboKit)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_TIMING ) +CONS( 1987, mm4, 0, 0, mm4, mm2, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM IV (v7.10)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1987, mm4a, mm4, 0, mm4, mm2, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM IV (v7.00)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1987, mm4b, mm4, 0, mm4, mm2, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM IV (v6.00)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1987, mm4tk, mm4, 0, mm4tk, mm2, mm2_state, empty_init, "hack", "Mephisto MM IV (TurboKit)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_TIMING ) -CONS( 1990, mm5, 0, 0, mm5, mephisto, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM V (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1990, mm5a, mm5, 0, mm5, mephisto, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM V (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1989, mm5p, mm5, 0, mm5p, mephisto, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM V (prototype)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_TIMING ) +CONS( 1990, mm5, 0, 0, mm5, mm2, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM V (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1990, mm5a, mm5, 0, mm5, mm2, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM V (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1989, mm5p, mm5, 0, mm5p, mm2, mm2_state, empty_init, "Hegener + Glaser", "Mephisto MM V (Portorose TM version)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_TIMING ) diff --git a/src/mame/drivers/mephisto_modena.cpp b/src/mame/drivers/mephisto_modena.cpp index 2d2fc59804e..c073b7bb31a 100644 --- a/src/mame/drivers/mephisto_modena.cpp +++ b/src/mame/drivers/mephisto_modena.cpp @@ -12,7 +12,7 @@ Hardware notes: - PCB label: MODENA-A-2 - W65C02SP or RP65C02G @ 4.19MHz - 8KB RAM (battery-backed), 32KB ROM -- 8*8 chessboard buttons, 16+6 leds, piezo +- 8*8 chessboard buttons, 16+6 leds, 7seg lcd, piezo **************************************************************************************************/ @@ -24,6 +24,7 @@ Hardware notes: #include "machine/sensorboard.h" #include "machine/timer.h" #include "sound/dac.h" +#include "video/mmdisplay1.h" #include "video/pwm.h" #include "speaker.h" @@ -42,9 +43,9 @@ public: , m_maincpu(*this, "maincpu") , m_board(*this, "board") , m_display(*this, "display") + , m_led_pwm(*this, "led_pwm") , m_dac(*this, "dac") , m_keys(*this, "KEY") - , m_digits(*this, "digit%u", 0U) { } void modena(machine_config &config); @@ -55,30 +56,25 @@ protected: private: required_device<cpu_device> m_maincpu; required_device<sensorboard_device> m_board; - required_device<pwm_display_device> m_display; + required_device<mephisto_display1_device> m_display; + required_device<pwm_display_device> m_led_pwm; required_device<dac_bit_interface> m_dac; required_ioport m_keys; - output_finder<4> m_digits; void modena_mem(address_map &map); u8 input_r(); - void digits_w(u8 data); void io_w(u8 data); void led_w(u8 data); void update_display(); u8 m_board_mux = 0; - u8 m_digits_idx = 0; u8 m_io_ctrl = 0; }; void modena_state::machine_start() { - m_digits.resolve(); - save_item(NAME(m_board_mux)); - save_item(NAME(m_digits_idx)); save_item(NAME(m_io_ctrl)); } @@ -90,7 +86,7 @@ void modena_state::machine_start() void modena_state::update_display() { - m_display->matrix(m_io_ctrl >> 1 & 7, m_board_mux); + m_led_pwm->matrix(m_io_ctrl >> 1 & 7, m_board_mux); } u8 modena_state::input_r() @@ -120,17 +116,14 @@ void modena_state::io_w(u8 data) { // d0: button select // d1-d3: led select - // d4: lcd polarity - // d6: speaker out m_io_ctrl = data; update_display(); - m_dac->write(BIT(data, 6)); -} -void modena_state::digits_w(u8 data) -{ - m_digits[m_digits_idx] = data ^ ((m_io_ctrl & 0x10) ? 0xff : 0x00); - m_digits_idx = (m_digits_idx + 1) & 3; + // d4: lcd strobe + m_display->strobe_w(BIT(data, 4)); + + // d6: speaker out + m_dac->write(BIT(data, 6)); } @@ -142,7 +135,7 @@ void modena_state::digits_w(u8 data) void modena_state::modena_mem(address_map &map) { map(0x0000, 0x1fff).ram().share("nvram"); - map(0x4000, 0x4000).w(FUNC(modena_state::digits_w)); + map(0x4000, 0x4000).w(m_display, FUNC(mephisto_display1_device::data_w)); map(0x5000, 0x5000).w(FUNC(modena_state::led_w)); map(0x6000, 0x6000).w(FUNC(modena_state::io_w)); map(0x7000, 0x7000).r(FUNC(modena_state::input_r)); @@ -158,14 +151,14 @@ void modena_state::modena_mem(address_map &map) static INPUT_PORTS_START( modena ) PORT_START("KEY") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Book / Pawn") PORT_CODE(KEYCODE_B) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Info / Knight") PORT_CODE(KEYCODE_I) - PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Memory / Bishop") PORT_CODE(KEYCODE_M) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Position / Rook") PORT_CODE(KEYCODE_O) - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Level / Queen") PORT_CODE(KEYCODE_L) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Function / King") PORT_CODE(KEYCODE_F) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Enter / New Game") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_F1) // combine for NEW GAME - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Clear / New Game") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_F1) // " + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Book / Pawn") PORT_CODE(KEYCODE_B) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Info / Knight") PORT_CODE(KEYCODE_I) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Memory / Bishop") PORT_CODE(KEYCODE_M) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Position / Rook") PORT_CODE(KEYCODE_O) + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Level / Queen") PORT_CODE(KEYCODE_L) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Function / King") PORT_CODE(KEYCODE_F) + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Enter / New Game") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_F1) // combine for NEW GAME + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Clear / New Game") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_F1) // " INPUT_PORTS_END @@ -180,7 +173,7 @@ void modena_state::modena(machine_config &config) M65C02(config, m_maincpu, 4.194304_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &modena_state::modena_mem); - clock_device &nmi_clock(CLOCK(config, "nmi_clock", 4.194304_MHz_XTAL / (1 << 13))); // active for 975us + clock_device &nmi_clock(CLOCK(config, "nmi_clock", 4.194304_MHz_XTAL / 0x2000)); // active for 975us nmi_clock.signal_handler().set_inputline(m_maincpu, INPUT_LINE_NMI); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -191,7 +184,8 @@ void modena_state::modena(machine_config &config) m_board->set_nvram_enable(true); /* video hardware */ - PWM_DISPLAY(config, m_display).set_size(3, 8); + MEPHISTO_DISPLAY_MODULE1(config, m_display); // internal + PWM_DISPLAY(config, m_led_pwm).set_size(3, 8); config.set_default_layout(layout_mephisto_modena); /* sound hardware */ diff --git a/src/mame/drivers/mephisto_modular.cpp b/src/mame/drivers/mephisto_modular.cpp index 0114d305ad4..6ae4c9bcdf0 100644 --- a/src/mame/drivers/mephisto_modular.cpp +++ b/src/mame/drivers/mephisto_modular.cpp @@ -252,8 +252,8 @@ void mmodular_state::alm16_mem(address_map &map) map(0xf00000, 0xf00003).portr("KEY1"); map(0xf00004, 0xf00007).portr("KEY2"); map(0xf00008, 0xf0000b).portr("KEY3"); - map(0xd80000, 0xd80000).w("display", FUNC(mephisto_display_module2_device::latch_w)); - map(0xd80008, 0xd80008).w("display", FUNC(mephisto_display_module2_device::io_w)); + map(0xd80000, 0xd80000).w("display", FUNC(mephisto_display2_device::latch_w)); + map(0xd80008, 0xd80008).w("display", FUNC(mephisto_display2_device::io_w)); } void mmodular_state::port16_mem(address_map &map) @@ -283,8 +283,8 @@ void mmodular_state::alm32_mem(address_map &map) map(0x800000fc, 0x800000fc).r("board", FUNC(mephisto_board_device::input_r)); map(0x88000000, 0x88000007).w("board", FUNC(mephisto_board_device::mux_w)).umask32(0xff000000); map(0x90000000, 0x90000007).w("board", FUNC(mephisto_board_device::led_w)).umask32(0xff000000); - map(0xa0000000, 0xa0000000).w("display", FUNC(mephisto_display_module2_device::latch_w)); - map(0xa0000010, 0xa0000010).w("display", FUNC(mephisto_display_module2_device::io_w)); + map(0xa0000000, 0xa0000000).w("display", FUNC(mephisto_display2_device::latch_w)); + map(0xa0000010, 0xa0000010).w("display", FUNC(mephisto_display2_device::io_w)); map(0xa8000000, 0xa8007fff).m("nvram_map", FUNC(address_map_bank_device::amap8)).umask32(0xff000000); } @@ -318,8 +318,8 @@ void mmodular_state::gen32_mem(address_map &map) map(0xd8000004, 0xd8000004).r(FUNC(mmodular_state::bavaria1_r)); map(0xd8000008, 0xd8000008).w(FUNC(mmodular_state::bavaria_w)); map(0xd800000c, 0xd800000c).r(FUNC(mmodular_state::bavaria2_r)); - map(0xe0000000, 0xe0000000).w("display", FUNC(mephisto_display_module2_device::latch_w)); - map(0xe0000010, 0xe0000010).w("display", FUNC(mephisto_display_module2_device::io_w)); + map(0xe0000000, 0xe0000000).w("display", FUNC(mephisto_display2_device::latch_w)); + map(0xe0000010, 0xe0000010).w("display", FUNC(mephisto_display2_device::io_w)); map(0xe8000000, 0xe8007fff).m("nvram_map", FUNC(address_map_bank_device::amap8)).umask32(0xff000000); map(0xf0000004, 0xf0000007).portr("KEY1"); map(0xf0000008, 0xf000000b).portr("KEY2"); diff --git a/src/mame/drivers/mephisto_modular_tm.cpp b/src/mame/drivers/mephisto_modular_tm.cpp index d485d7cf5a7..fadca7622bb 100644 --- a/src/mame/drivers/mephisto_modular_tm.cpp +++ b/src/mame/drivers/mephisto_modular_tm.cpp @@ -147,8 +147,8 @@ void mmtm_state::mmtm_2m_map(address_map &map) map(0xfc020004, 0xfc020007).portr("KEY1"); map(0xfc020008, 0xfc02000b).portr("KEY2"); map(0xfc020010, 0xfc020013).portr("KEY3"); - map(0xfc040000, 0xfc040000).w("display", FUNC(mephisto_display_module2_device::latch_w)); - map(0xfc060000, 0xfc060000).w("display", FUNC(mephisto_display_module2_device::io_w)); + map(0xfc040000, 0xfc040000).w("display", FUNC(mephisto_display2_device::latch_w)); + map(0xfc060000, 0xfc060000).w("display", FUNC(mephisto_display2_device::io_w)); map(0xfc080000, 0xfc080000).w("board", FUNC(mephisto_board_device::mux_w)); map(0xfc0a0000, 0xfc0a0000).w("board", FUNC(mephisto_board_device::led_w)); map(0xfc0c0000, 0xfc0c0000).r("board", FUNC(mephisto_board_device::input_r)); diff --git a/src/mame/drivers/mephisto_mondial.cpp b/src/mame/drivers/mephisto_mondial.cpp index 8142dc91e7f..71338294db7 100644 --- a/src/mame/drivers/mephisto_mondial.cpp +++ b/src/mame/drivers/mephisto_mondial.cpp @@ -7,12 +7,13 @@ Mephisto Mondial Hardware notes: - G65SC02-1 @ 2MHz - 2KB RAM(TC5517AP), 16KB ROM +- expansion slot at underside - 8*8 chessboard buttons, 24 leds, active buzzer TODO: - verify XTAL (or maybe RC or LC circuit), 2MHz is correct - unknown read from 0x2000 -- add MM 1000 module +- dump/add MM 1000 module ******************************************************************************/ @@ -156,7 +157,9 @@ void mondial_state::mondial(machine_config &config) /* basic machine hardware */ M65SC02(config, m_maincpu, 2000000); m_maincpu->set_addrmap(AS_PROGRAM, &mondial_state::mondial_mem); - m_maincpu->set_periodic_int(FUNC(mondial_state::irq0_line_hold), attotime::from_hz(2000000 / (1 << 12))); + + const attotime irq_period = attotime::from_hz(2000000 / 0x1000); + m_maincpu->set_periodic_int(FUNC(mondial_state::irq0_line_hold), irq_period); SENSORBOARD(config, m_board).set_type(sensorboard_device::BUTTONS); m_board->init_cb().set(m_board, FUNC(sensorboard_device::preset_chess)); diff --git a/src/mame/drivers/mephisto_mondial2.cpp b/src/mame/drivers/mephisto_mondial2.cpp index b7a64f5945d..42621bb3f43 100644 --- a/src/mame/drivers/mephisto_mondial2.cpp +++ b/src/mame/drivers/mephisto_mondial2.cpp @@ -8,6 +8,7 @@ Mephisto Mondial II Hardware notes: - G65SC02 @ 2MHz (unsure about rating) - 2KB RAM, 32KB ROM +- expansion slot at underside (not used) - 8*8 chessboard buttons, 24 leds, piezo ******************************************************************************/ @@ -177,7 +178,9 @@ void mondial2_state::mondial2(machine_config &config) /* basic machine hardware */ M65SC02(config, m_maincpu, 2_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &mondial2_state::mondial2_mem); - m_maincpu->set_periodic_int(FUNC(mondial2_state::nmi_line_pulse), attotime::from_hz(2_MHz_XTAL / (1 << 12))); + + const attotime nmi_period = attotime::from_hz(2_MHz_XTAL / 0x1000); + m_maincpu->set_periodic_int(FUNC(mondial2_state::nmi_line_pulse), nmi_period); SENSORBOARD(config, m_board).set_type(sensorboard_device::BUTTONS); m_board->init_cb().set(m_board, FUNC(sensorboard_device::preset_chess)); diff --git a/src/mame/drivers/mephisto_montec.cpp b/src/mame/drivers/mephisto_montec.cpp index e2cb1923872..6b4d5a5bc90 100644 --- a/src/mame/drivers/mephisto_montec.cpp +++ b/src/mame/drivers/mephisto_montec.cpp @@ -190,7 +190,7 @@ void mephisto_montec_state::montec_mem(address_map &map) map(0x2400, 0x2400).r(FUNC(mephisto_montec_state::montec_input_r)); map(0x2800, 0x2800).w(m_board, FUNC(mephisto_board_device::mux_w)); map(0x2c00, 0x2c00).w(m_board, FUNC(mephisto_board_device::led_w)); - map(0x3000, 0x3007).w(m_muxlatch, FUNC(hc259_device::write_d7)); + map(0x3000, 0x3007).w(m_muxlatch, FUNC(hc259_device::write_d7)).nopr(); map(0x3400, 0x3400).w(FUNC(mephisto_montec_state::montec_led_w)); map(0x8000, 0xffff).rom(); } diff --git a/src/mame/drivers/mephisto_polgar.cpp b/src/mame/drivers/mephisto_polgar.cpp index 97c23edfd21..9cafe14136c 100644 --- a/src/mame/drivers/mephisto_polgar.cpp +++ b/src/mame/drivers/mephisto_polgar.cpp @@ -1,5 +1,5 @@ // license:BSD-3-Clause -// copyright-holders:Sandro Ronco +// copyright-holders:Sandro Ronco, hap /****************************************************************************** Mephisto Polgar @@ -8,7 +8,7 @@ Hardware notes: - RP65C02G @ 4.91MHz - 64KB ROM (25% unused) - Mephisto modular display module -- Mephisto Exclusive/Muenchen chessboard +- Mephisto modular chessboard The 10MHz version has a W65C02P-8 @ 9.83MHz. @@ -58,7 +58,7 @@ private: u8 polgar_state::keys_r(offs_t offset) { - return (BIT(m_keys->read(), offset) << 7) | 0x7f; + return ~(BIT(m_keys->read(), offset) << 7); } @@ -70,8 +70,8 @@ u8 polgar_state::keys_r(offs_t offset) void polgar_state::polgar_mem(address_map &map) { map(0x0000, 0x1fff).ram().share("nvram"); - map(0x2000, 0x2000).w("display", FUNC(mephisto_display_module2_device::latch_w)); - map(0x2004, 0x2004).w("display", FUNC(mephisto_display_module2_device::io_w)); + map(0x2000, 0x2000).w("display", FUNC(mephisto_display2_device::latch_w)); + map(0x2004, 0x2004).w("display", FUNC(mephisto_display2_device::io_w)); map(0x2400, 0x2400).w("board", FUNC(mephisto_board_device::led_w)); map(0x2800, 0x2800).w("board", FUNC(mephisto_board_device::mux_w)); map(0x2c00, 0x2c07).r(FUNC(polgar_state::keys_r)); @@ -88,14 +88,14 @@ void polgar_state::polgar_mem(address_map &map) static INPUT_PORTS_START( polgar ) PORT_START("KEY") - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("TRN / Pawn") PORT_CODE(KEYCODE_T) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("INFO / Knight") PORT_CODE(KEYCODE_I) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("MEM / Bishop") PORT_CODE(KEYCODE_M) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("POS / Rook") PORT_CODE(KEYCODE_O) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("LEV / Queen") PORT_CODE(KEYCODE_L) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("FCT / King") PORT_CODE(KEYCODE_F) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("ENT / New Game") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_F1) // combine for NEW GAME - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("CL / New Game") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_F1) // " + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("TRN / Pawn") PORT_CODE(KEYCODE_T) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("INFO / Knight") PORT_CODE(KEYCODE_I) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("MEM / Bishop") PORT_CODE(KEYCODE_M) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("POS / Rook") PORT_CODE(KEYCODE_O) + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("LEV / Queen") PORT_CODE(KEYCODE_L) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("FCT / King") PORT_CODE(KEYCODE_F) + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENT / New Game") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_F1) // combine for NEW GAME + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL / New Game") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_F1) // " INPUT_PORTS_END @@ -108,7 +108,9 @@ void polgar_state::polgar(machine_config &config) { R65C02(config, m_maincpu, 4.9152_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &polgar_state::polgar_mem); - m_maincpu->set_periodic_int(FUNC(polgar_state::nmi_line_pulse), attotime::from_hz(4.9152_MHz_XTAL / (1 << 13))); + + const attotime nmi_period = attotime::from_hz(4.9152_MHz_XTAL / 0x2000); + m_maincpu->set_periodic_int(FUNC(polgar_state::nmi_line_pulse), nmi_period); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -131,7 +133,9 @@ void polgar_state::polgar10(machine_config &config) M65C02(config.replace(), m_maincpu, 9.8304_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &polgar_state::polgar_mem); - m_maincpu->set_periodic_int(FUNC(polgar_state::nmi_line_pulse), attotime::from_hz(9.8304_MHz_XTAL / (1 << 13))); + + const attotime nmi_period = attotime::from_hz(9.8304_MHz_XTAL / 0x2000); + m_maincpu->set_periodic_int(FUNC(polgar_state::nmi_line_pulse), nmi_period); } diff --git a/src/mame/drivers/mephisto_risc.cpp b/src/mame/drivers/mephisto_risc.cpp index d4e07536f3b..7c1483fbede 100644 --- a/src/mame/drivers/mephisto_risc.cpp +++ b/src/mame/drivers/mephisto_risc.cpp @@ -12,7 +12,7 @@ Hardware notes: - 128KB ROM - Tasc ChessMachine EC PCB - Mephisto modular display module -- Mephisto Exclusive/Muenchen chessboard +- Mephisto modular chessboard ******************************************************************************/ @@ -73,7 +73,7 @@ void risc_state::machine_start() u8 risc_state::keys_r(offs_t offset) { - return (BIT(m_keys->read(), offset) << 7) | 0x7f; + return ~(BIT(m_keys->read(), offset) << 7); } u8 risc_state::chessm_r() @@ -102,8 +102,8 @@ void risc_state::mrisc_mem(address_map &map) { map.unmap_value_high(); map(0x0000, 0x1fff).ram().share("nvram"); - map(0x2000, 0x2000).w("display", FUNC(mephisto_display_module2_device::latch_w)); - map(0x2004, 0x2004).w("display", FUNC(mephisto_display_module2_device::io_w)); + map(0x2000, 0x2000).w("display", FUNC(mephisto_display2_device::latch_w)); + map(0x2004, 0x2004).w("display", FUNC(mephisto_display2_device::io_w)); map(0x2c00, 0x2c07).r(FUNC(risc_state::keys_r)); map(0x2400, 0x2400).w("board", FUNC(mephisto_board_device::led_w)); map(0x2800, 0x2800).w("board", FUNC(mephisto_board_device::mux_w)); @@ -123,14 +123,14 @@ void risc_state::mrisc_mem(address_map &map) static INPUT_PORTS_START( mrisc ) PORT_START("KEY") - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("TRN / Pawn") PORT_CODE(KEYCODE_T) - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("INFO / Knight") PORT_CODE(KEYCODE_I) - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("MEM / Bishop") PORT_CODE(KEYCODE_M) - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("POS / Rook") PORT_CODE(KEYCODE_O) - PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("LEV / Queen") PORT_CODE(KEYCODE_L) - PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("FCT / King") PORT_CODE(KEYCODE_F) - PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("ENT / New Game") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_F1) // combine for NEW GAME - PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("CL / New Game") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_F1) // " + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("TRN / Pawn") PORT_CODE(KEYCODE_T) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("INFO / Knight") PORT_CODE(KEYCODE_I) + PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("MEM / Bishop") PORT_CODE(KEYCODE_M) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("POS / Rook") PORT_CODE(KEYCODE_O) + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("LEV / Queen") PORT_CODE(KEYCODE_L) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("FCT / King") PORT_CODE(KEYCODE_F) + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENT / New Game") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_F1) // combine for NEW GAME + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL / New Game") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_F1) // " INPUT_PORTS_END @@ -143,7 +143,9 @@ void risc_state::mrisc(machine_config &config) { M65SC02(config, m_maincpu, 10_MHz_XTAL / 4); m_maincpu->set_addrmap(AS_PROGRAM, &risc_state::mrisc_mem); - m_maincpu->set_periodic_int(FUNC(risc_state::irq0_line_hold), attotime::from_hz(10_MHz_XTAL / (1 << 14))); + + const attotime irq_period = attotime::from_hz(10_MHz_XTAL / 0x4000); + m_maincpu->set_periodic_int(FUNC(risc_state::irq0_line_hold), irq_period); CHESSMACHINE(config, m_chessm, 14'000'000); // Mephisto manual says 14MHz (no XTAL) config.set_perfect_quantum(m_maincpu); diff --git a/src/mame/layout/mephisto_1.lay b/src/mame/layout/mephisto_1.lay index 19643f73e97..c093656d5be 100644 --- a/src/mame/layout/mephisto_1.lay +++ b/src/mame/layout/mephisto_1.lay @@ -47,13 +47,14 @@ license:CC0 <!-- display --> <element name="lcd_bg"><rect><color red="0.54" green="0.57" blue="0.58" /></rect></element> + <element name="ldot_hide"><disk><color red="0.54" green="0.57" blue="0.58" /></disk></element> <element name="digit" defstate="0"> <led7seg><color red="0.2" green="0.16" blue="0.16" /></led7seg> </element> - <element name="ldot" defstate="0"> - <rect state="1"><color red="0.2" green="0.16" blue="0.16" /></rect> - <rect state="0"><color red="0.49412" green="0.51765" blue="0.51765" /></rect> + <element name="ldot"> + <rect><color red="0.49412" green="0.51765" blue="0.51765" /></rect> + <rect statemask="0x80"><color red="0.2" green="0.16" blue="0.16" /></rect> </element> <group name="display"> @@ -66,12 +67,18 @@ license:CC0 <element name="digit1" ref="digit"><bounds x="43" y="91" width="4" height="6" /></element> <element name="digit0" ref="digit"><bounds x="48.5" y="91" width="4" height="6" /></element> - <element name="3.7" ref="ldot"><bounds x="36.25" y="96.42" width="0.6" height="0.6" /></element> - <element name="2.7" ref="ldot"><bounds x="41.75" y="96.42" width="0.6" height="0.6" /></element> - <element name="1.7" ref="ldot"><bounds x="47.25" y="96.42" width="0.6" height="0.6" /></element> + <!-- digits DP are different from normal 7seg --> + <element ref="ldot_hide"><bounds x="35.3" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="40.8" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="46.3" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="51.8" y="96.3" width="0.85" height="0.85" /></element> - <element name="0.7" ref="ldot"><bounds x="42.16" y="92.75" width="0.6" height="0.6" /></element> - <element name="0.7" ref="ldot"><bounds x="41.94" y="94.55" width="0.6" height="0.6" /></element> + <element name="digit3" ref="ldot"><bounds x="36.22" y="96.42" width="0.6" height="0.6" /></element> + <element name="digit2" ref="ldot"><bounds x="41.72" y="96.42" width="0.6" height="0.6" /></element> + <element name="digit1" ref="ldot"><bounds x="47.22" y="96.42" width="0.6" height="0.6" /></element> + + <element name="digit0" ref="ldot"><bounds x="42.07" y="92.75" width="0.6" height="0.6" /></element> + <element name="digit0" ref="ldot"><bounds x="41.92" y="94.55" width="0.6" height="0.6" /></element> </group> diff --git a/src/mame/layout/mephisto_3.lay b/src/mame/layout/mephisto_3.lay index 922297fbef6..61432fceea5 100644 --- a/src/mame/layout/mephisto_3.lay +++ b/src/mame/layout/mephisto_3.lay @@ -205,7 +205,7 @@ license:CC0 <!-- leds --> <repeat count="8"> <param name="y" start="8.3" increment="10" /> - <param name="i1" start="11" increment="-1" /> + <param name="i1" start="7" increment="-1" /> <repeat count="8"> <param name="x" start="8.3" increment="10" /> @@ -423,13 +423,14 @@ license:CC0 <!-- display --> <element name="lcd_bg"><rect><color red="0.54" green="0.57" blue="0.58" /></rect></element> + <element name="ldot_hide"><disk><color red="0.54" green="0.57" blue="0.58" /></disk></element> <element name="digit" defstate="0"> <led7seg><color red="0.2" green="0.16" blue="0.16" /></led7seg> </element> - <element name="ldot" defstate="0"> - <rect state="1"><color red="0.2" green="0.16" blue="0.16" /></rect> - <rect state="0"><color red="0.49412" green="0.51765" blue="0.51765" /></rect> + <element name="ldot"> + <rect><color red="0.49412" green="0.51765" blue="0.51765" /></rect> + <rect statemask="0x80"><color red="0.2" green="0.16" blue="0.16" /></rect> </element> <group name="display"> @@ -442,12 +443,18 @@ license:CC0 <element name="digit1" ref="digit"><bounds x="43" y="91" width="4" height="6" /></element> <element name="digit0" ref="digit"><bounds x="48.5" y="91" width="4" height="6" /></element> - <element name="3.7" ref="ldot"><bounds x="36.25" y="96.42" width="0.6" height="0.6" /></element> - <element name="2.7" ref="ldot"><bounds x="41.75" y="96.42" width="0.6" height="0.6" /></element> - <element name="1.7" ref="ldot"><bounds x="47.25" y="96.42" width="0.6" height="0.6" /></element> + <!-- digits DP are different from normal 7seg --> + <element ref="ldot_hide"><bounds x="35.3" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="40.8" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="46.3" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="51.8" y="96.3" width="0.85" height="0.85" /></element> - <element name="0.7" ref="ldot"><bounds x="42.16" y="92.75" width="0.6" height="0.6" /></element> - <element name="0.7" ref="ldot"><bounds x="41.94" y="94.55" width="0.6" height="0.6" /></element> + <element name="digit3" ref="ldot"><bounds x="36.22" y="96.42" width="0.6" height="0.6" /></element> + <element name="digit2" ref="ldot"><bounds x="41.72" y="96.42" width="0.6" height="0.6" /></element> + <element name="digit1" ref="ldot"><bounds x="47.22" y="96.42" width="0.6" height="0.6" /></element> + + <element name="digit0" ref="ldot"><bounds x="42.07" y="92.75" width="0.6" height="0.6" /></element> + <element name="digit0" ref="ldot"><bounds x="41.92" y="94.55" width="0.6" height="0.6" /></element> </group> diff --git a/src/mame/layout/mephisto_academy.lay b/src/mame/layout/mephisto_academy.lay index faaf5de2340..fabca06d644 100644 --- a/src/mame/layout/mephisto_academy.lay +++ b/src/mame/layout/mephisto_academy.lay @@ -47,44 +47,44 @@ license:CC0 </rect> </element> - <element name="background"><rect><color red="0.59" green="0.39" blue="0.20" /></rect></element> - <element name="white"><rect><color red="0.80" green="0.73" blue="0.63" /></rect></element> - - <element name="text_1"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="1"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_2"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="2"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_3"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="3"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_4"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="4"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_5"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="5"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_6"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="6"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_7"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="7"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_8"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="8"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_a"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="A"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_b"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="B"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_c"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="C"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_d"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="D"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_e"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="E"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_f"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="F"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_g"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="G"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_h"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="H"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - - <element name="text_black"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="□"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_white"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="■"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_train"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="TRAIN"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_info"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="INFO"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_mem"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="MEM"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_pos"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="POS"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_lev"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="LEV"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_fct"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="FCT"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_ent"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="ENT"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_cl"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="CL"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_newgame"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="NEW GAME"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_p1"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="[K]"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_p2"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="[Q]"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_p3"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="[R]"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_p4"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="[B]"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_p5"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="[N]"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_p6"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="[P]"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_lcd"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="MULTI INFO LCD"><color red="1" green="1" blue="1" /></text> </element> + <element name="background"><rect><color red="0.56" green="0.33" blue="0.12" /></rect></element> + <element name="white"><rect><color red="0.84" green="0.75" blue="0.50" /></rect></element> + + <element name="text_1"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="1"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_2"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="2"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_3"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="3"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_4"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="4"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_5"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="5"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_6"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="6"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_7"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="7"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_8"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="8"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_a"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="A"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_b"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="B"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_c"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="C"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_d"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="D"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_e"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="E"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_f"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="F"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_g"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="G"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_h"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="H"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + + <element name="text_black"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="□"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_white"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="■"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_train"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="TRAIN"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_info"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="INFO"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_mem"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="MEM"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_pos"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="POS"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_lev"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="LEV"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_fct"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="FCT"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_ent"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="ENT"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_cl"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="CL"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_newgame"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="NEW GAME"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_p1"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="[K]"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_p2"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="[Q]"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_p3"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="[R]"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_p4"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="[B]"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_p5"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="[N]"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_p6"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="[P]"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_lcd"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="MULTI INFO LCD"><color red="1" green="1" blue="1" /></text> </element> <element name="piece" defstate="0"> @@ -121,8 +121,8 @@ license:CC0 <!-- sb board --> - <element name="cblack"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect></element> - <element name="cwhite"> <rect><color red="0.80" green="0.73" blue="0.63" /></rect></element> + <element name="cblack"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect></element> + <element name="cwhite"> <rect><color red="0.84" green="0.75" blue="0.50" /></rect></element> <element name="hlbb" defstate="0"> <text string=" "><bounds x="0" y="0" width="1" height="1" /></text> @@ -210,7 +210,7 @@ license:CC0 <!-- chessboard leds --> <repeat count="8"> - <param name="x" start="8.2" increment="10" /> + <param name="x" start="8.3" increment="10" /> <param name="la" start="0" increment="1" /> <param name="lb" start="8" increment="1" /> <param name="lc" start="16" increment="1" /> @@ -266,34 +266,34 @@ license:CC0 <element name="text_uit2"><text string="INTERFACE"><color red="0.81" green="0.8" blue="0.79" /></text></element> <element name="text_uib1"><text string="BOARD:"><color red="0.81" green="0.8" blue="0.79" /></text></element> <element name="text_uib2"> - <rect><color red="0.80" green="0.73" blue="0.63" /></rect> + <rect><color red="0.84" green="0.75" blue="0.50" /></rect> <text string="RESET"><color red="0.01" green="0.01" blue="0.01" /></text> </element> <element name="text_uib3"> - <rect><color red="0.80" green="0.73" blue="0.63" /></rect> + <rect><color red="0.84" green="0.75" blue="0.50" /></rect> <text string="CLEAR"><color red="0.01" green="0.01" blue="0.01" /></text> </element> <element name="text_uis1"><text string="SPAWN:"><color red="0.81" green="0.8" blue="0.79" /></text></element> <element name="text_uih1"><text string="HAND:"><color red="0.81" green="0.8" blue="0.79" /></text></element> <element name="text_uih2"> - <rect><color red="0.80" green="0.73" blue="0.63" /></rect> + <rect><color red="0.84" green="0.75" blue="0.50" /></rect> <text string="REMOVE"><color red="0.01" green="0.01" blue="0.01" /></text> </element> <element name="text_uiu1"><text string="UNDO:"><color red="0.81" green="0.8" blue="0.79" /></text></element> <element name="text_uiu2a"> - <rect><color red="0.80" green="0.73" blue="0.63" /></rect> + <rect><color red="0.84" green="0.75" blue="0.50" /></rect> <text string=" <<"><color red="0.01" green="0.01" blue="0.01" /></text> </element> <element name="text_uiu2b"> - <rect><color red="0.80" green="0.73" blue="0.63" /></rect> + <rect><color red="0.84" green="0.75" blue="0.50" /></rect> <text string=" < "><color red="0.01" green="0.01" blue="0.01" /></text> </element> <element name="text_uiu2c"> - <rect><color red="0.80" green="0.73" blue="0.63" /></rect> + <rect><color red="0.84" green="0.75" blue="0.50" /></rect> <text string=" >"><color red="0.01" green="0.01" blue="0.01" /></text> </element> <element name="text_uiu2d"> - <rect><color red="0.80" green="0.73" blue="0.63" /></rect> + <rect><color red="0.84" green="0.75" blue="0.50" /></rect> <text string=" >>"><color red="0.01" green="0.01" blue="0.01" /></text> </element> <element name="text_uiu3a" defstate="0"> diff --git a/src/mame/layout/mephisto_alm16.lay b/src/mame/layout/mephisto_alm16.lay index 255e64639e8..e74f8ca549b 100644 --- a/src/mame/layout/mephisto_alm16.lay +++ b/src/mame/layout/mephisto_alm16.lay @@ -181,7 +181,7 @@ license:CC0 <!-- chessboard leds --> <repeat count="8"> - <param name="x" start="8.2" increment="10" /> + <param name="x" start="8.3" increment="10" /> <param name="la" start="0" increment="1" /> <param name="lb" start="8" increment="1" /> <param name="lc" start="16" increment="1" /> diff --git a/src/mame/layout/mephisto_alm32.lay b/src/mame/layout/mephisto_alm32.lay index b690df7f65b..e141fc81c1c 100644 --- a/src/mame/layout/mephisto_alm32.lay +++ b/src/mame/layout/mephisto_alm32.lay @@ -181,7 +181,7 @@ license:CC0 <!-- chessboard leds --> <repeat count="8"> - <param name="x" start="8.2" increment="10" /> + <param name="x" start="8.3" increment="10" /> <param name="la" start="0" increment="1" /> <param name="lb" start="8" increment="1" /> <param name="lc" start="16" increment="1" /> diff --git a/src/mame/layout/mephisto_amsterdam.lay b/src/mame/layout/mephisto_amsterdam.lay index 8e94c4f3b04..1e75b7afcb6 100644 --- a/src/mame/layout/mephisto_amsterdam.lay +++ b/src/mame/layout/mephisto_amsterdam.lay @@ -4,11 +4,7 @@ license:CC0 --> <mamelayout version="2"> - <element name="lcd_bg"><rect><color red="0.54" green="0.57" blue="0.58" /></rect></element> - - <element name="digit" defstate="0"> - <led7seg><color red="0.2" green="0.16" blue="0.16" /></led7seg> - </element> +<!-- define elements --> <element name="led" defstate="0"> <disk state="0"> @@ -169,7 +165,7 @@ license:CC0 <!-- chessboard leds --> <repeat count="8"> - <param name="x" start="8.2" increment="10" /> + <param name="x" start="8.3" increment="10" /> <param name="la" start="0" increment="1" /> <param name="lb" start="8" increment="1" /> <param name="lc" start="16" increment="1" /> @@ -348,14 +344,41 @@ license:CC0 </group> -<!-- 7seg panel --> +<!-- display --> + + <element name="lcd_bg"><rect><color red="0.54" green="0.57" blue="0.58" /></rect></element> + <element name="ldot_hide"><disk><color red="0.54" green="0.57" blue="0.58" /></disk></element> + + <element name="digit" defstate="0"> + <led7seg><color red="0.2" green="0.16" blue="0.16" /></led7seg> + </element> + <element name="ldot"> + <rect><color red="0.49412" green="0.51765" blue="0.51765" /></rect> + <rect statemask="0x80"><color red="0.2" green="0.16" blue="0.16" /></rect> + </element> - <group name="panel"> - <element ref="lcd_bg"><bounds x="0" y="0" width="35" height="15" /></element> - <element name="digit0" ref="digit"><bounds x="4" y="2.5" width="6" height="10" /></element> - <element name="digit1" ref="digit"><bounds x="11" y="2.5" width="6" height="10" /></element> - <element name="digit2" ref="digit"><bounds x="18" y="2.5" width="6" height="10" /></element> - <element name="digit3" ref="digit"><bounds x="25" y="2.5" width="6" height="10" /></element> + <group name="display"> + <bounds x="31" y="90.3" width="22.5" height="7.4" /> + + <element ref="lcd_bg"><bounds x="31" y="90.3" width="22.5" height="7.4" /></element> + + <element name="digit3" ref="digit"><bounds x="32" y="91" width="4" height="6" /></element> + <element name="digit2" ref="digit"><bounds x="37.5" y="91" width="4" height="6" /></element> + <element name="digit1" ref="digit"><bounds x="43" y="91" width="4" height="6" /></element> + <element name="digit0" ref="digit"><bounds x="48.5" y="91" width="4" height="6" /></element> + + <!-- digits DP are different from normal 7seg --> + <element ref="ldot_hide"><bounds x="35.3" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="40.8" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="46.3" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="51.8" y="96.3" width="0.85" height="0.85" /></element> + + <element name="digit3" ref="ldot"><bounds x="36.22" y="96.42" width="0.6" height="0.6" /></element> + <element name="digit2" ref="ldot"><bounds x="41.72" y="96.42" width="0.6" height="0.6" /></element> + <element name="digit1" ref="ldot"><bounds x="47.22" y="96.42" width="0.6" height="0.6" /></element> + + <element name="digit0" ref="ldot"><bounds x="42.07" y="92.75" width="0.6" height="0.6" /></element> + <element name="digit0" ref="ldot"><bounds x="41.92" y="94.55" width="0.6" height="0.6" /></element> </group> @@ -531,15 +554,10 @@ license:CC0 <element ref="cblack"><bounds x="13" y="-2" width="89" height="89" /></element> <element ref="cwhite"><bounds x="17" y="2" width="81" height="81" /></element> - <group ref="panel"><bounds x="37.5" y="91" width="20" height="8" /></group> - - <group ref="buttons"><bounds x="67.5" y="88.5" width="29" height="14" /></group> - <group ref="sb_board"><bounds x="17.5" y="2.5" width="80" height="80" /></group> <group ref="sb_ui"><bounds x="1.5" y="3" width="10" height="80" /></group> - <!-- chessboard coords --> - + <!-- chessboard coords --> <element ref="text_8"><bounds x="14.2" y="6.5" width="2" height="2" /></element> <element ref="text_7"><bounds x="14.2" y="16.5" width="2" height="2" /></element> <element ref="text_6"><bounds x="14.2" y="26.5" width="2" height="2" /></element> @@ -557,6 +575,11 @@ license:CC0 <element ref="text_f"><bounds x="71.5" y="84" width="2" height="2" /></element> <element ref="text_g"><bounds x="81.5" y="84" width="2" height="2" /></element> <element ref="text_h"><bounds x="91.5" y="84" width="2" height="2" /></element> + + <!-- bottom side --> + <element ref="lcd_bg"><bounds x="37.5" y="91.5" width="20" height="8" /></element> + <group ref="display"><bounds x="38" y="92.3" width="19" height="6.4" /></group> + <group ref="buttons"><bounds x="67.5" y="88.5" width="29" height="14" /></group> </view> </mamelayout> diff --git a/src/mame/layout/mephisto_bup.lay b/src/mame/layout/mephisto_bup.lay index c00c6086a52..8b718a333e7 100644 --- a/src/mame/layout/mephisto_bup.lay +++ b/src/mame/layout/mephisto_bup.lay @@ -3,13 +3,8 @@ license:CC0 --> <mamelayout version="2"> -<!-- define elements --> - - <element name="lcd_bg"><rect><color red="0.54" green="0.57" blue="0.58" /></rect></element> - <element name="digit" defstate="0"> - <led7seg><color red="0.2" green="0.16" blue="0.16" /></led7seg> - </element> +<!-- define elements --> <element name="led" defstate="0"> <disk state="0"> @@ -170,7 +165,7 @@ license:CC0 <!-- chessboard leds --> <repeat count="8"> - <param name="x" start="8.2" increment="10" /> + <param name="x" start="8.3" increment="10" /> <param name="la" start="0" increment="1" /> <param name="lb" start="8" increment="1" /> <param name="lc" start="16" increment="1" /> @@ -349,14 +344,41 @@ license:CC0 </group> -<!-- 7seg panel --> +<!-- display --> - <group name="panel1"> - <element ref="lcd_bg"><bounds x="0" y="0" width="35" height="15" /></element> - <element name="digit0" ref="digit"><bounds x="4" y="2.5" width="6" height="10" /></element> - <element name="digit1" ref="digit"><bounds x="11" y="2.5" width="6" height="10" /></element> - <element name="digit2" ref="digit"><bounds x="18" y="2.5" width="6" height="10" /></element> - <element name="digit3" ref="digit"><bounds x="25" y="2.5" width="6" height="10" /></element> + <element name="lcd_bg"><rect><color red="0.54" green="0.57" blue="0.58" /></rect></element> + <element name="ldot_hide"><disk><color red="0.54" green="0.57" blue="0.58" /></disk></element> + + <element name="digit" defstate="0"> + <led7seg><color red="0.2" green="0.16" blue="0.16" /></led7seg> + </element> + <element name="ldot"> + <rect><color red="0.49412" green="0.51765" blue="0.51765" /></rect> + <rect statemask="0x80"><color red="0.2" green="0.16" blue="0.16" /></rect> + </element> + + <group name="display"> + <bounds x="31" y="90.3" width="22.5" height="7.4" /> + + <element ref="lcd_bg"><bounds x="31" y="90.3" width="22.5" height="7.4" /></element> + + <element name="digit3" ref="digit"><bounds x="32" y="91" width="4" height="6" /></element> + <element name="digit2" ref="digit"><bounds x="37.5" y="91" width="4" height="6" /></element> + <element name="digit1" ref="digit"><bounds x="43" y="91" width="4" height="6" /></element> + <element name="digit0" ref="digit"><bounds x="48.5" y="91" width="4" height="6" /></element> + + <!-- digits DP are different from normal 7seg --> + <element ref="ldot_hide"><bounds x="35.3" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="40.8" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="46.3" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="51.8" y="96.3" width="0.85" height="0.85" /></element> + + <element name="digit3" ref="ldot"><bounds x="36.22" y="96.42" width="0.6" height="0.6" /></element> + <element name="digit2" ref="ldot"><bounds x="41.72" y="96.42" width="0.6" height="0.6" /></element> + <element name="digit1" ref="ldot"><bounds x="47.22" y="96.42" width="0.6" height="0.6" /></element> + + <element name="digit0" ref="ldot"><bounds x="42.07" y="92.75" width="0.6" height="0.6" /></element> + <element name="digit0" ref="ldot"><bounds x="41.92" y="94.55" width="0.6" height="0.6" /></element> </group> @@ -371,7 +393,7 @@ license:CC0 <element name="led_end"> <text string="End" align="1"> <color red="0.8" green="0.8" blue="0.8" /></text> </element> <element name="led_plus"><text string="+" align="1"> <color red="0.8" green="0.8" blue="0.8" /></text> </element> - <group name="panel2"> + <group name="leds"> <bounds x="69.1" y="89.9" width="29" height="1.5" /> <element ref="dwhite"><bounds x="70.7" y="89.9" width="1.4" height="1.4" /></element> @@ -479,41 +501,41 @@ license:CC0 <element ref="gray"><bounds x="90.55" y="104.7" width="0.9" height="0.9" /></element> <element ref="white"><bounds x="95.35" y="104.5" width="1.3" height="1.3" /></element> - <element ref="keys" inputtag="KEY1_0" inputmask="0x80"> <!-- 1 --> + <element ref="keys" inputtag="KEY.0" inputmask="0x01"> <!-- 1 --> <bounds x="69" y="93" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY1_1" inputmask="0x80"> <!-- 2 --> + <element ref="keys" inputtag="KEY.0" inputmask="0x02"> <!-- 2 --> <bounds x="74" y="93" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY1_2" inputmask="0x80"> <!-- 3 --> + <element ref="keys" inputtag="KEY.0" inputmask="0x04"> <!-- 3 --> <bounds x="79" y="93" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY1_3" inputmask="0x80"> <!-- 4 --> + <element ref="keys" inputtag="KEY.0" inputmask="0x08"> <!-- 4 --> <bounds x="84" y="93" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY1_4" inputmask="0x80"> <!-- 5 --> + <element ref="keys" inputtag="KEY.0" inputmask="0x10"> <!-- 5 --> <bounds x="89" y="93" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY1_5" inputmask="0x80"> <!-- 6 --> + <element ref="keys" inputtag="KEY.0" inputmask="0x20"> <!-- 6 --> <bounds x="94" y="93" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY2_3" inputmask="0x80"> <!-- INFO --> + <element ref="keys" inputtag="KEY.1" inputmask="0x08"> <!-- INFO --> <bounds x="69" y="98" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY2_5" inputmask="0x80"> <!-- POS --> + <element ref="keys" inputtag="KEY.1" inputmask="0x20"> <!-- POS --> <bounds x="74" y="98" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY2_6" inputmask="0x80"> <!-- LEV --> + <element ref="keys" inputtag="KEY.1" inputmask="0x40"> <!-- LEV --> <bounds x="79" y="98" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY2_7" inputmask="0x80"> <!-- MEM --> + <element ref="keys" inputtag="KEY.1" inputmask="0x80"> <!-- MEM --> <bounds x="84" y="98" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY2_0" inputmask="0x80"> <!-- CL --> + <element ref="keys" inputtag="KEY.1" inputmask="0x01"> <!-- CL --> <bounds x="89" y="98" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY2_1" inputmask="0x80"> <!-- ENT --> + <element ref="keys" inputtag="KEY.1" inputmask="0x02"> <!-- ENT --> <bounds x="94" y="98" width="4" height="4" /><color alpha="0.25" /> </element> @@ -523,16 +545,16 @@ license:CC0 <element ref="keys" inputtag="RESET" inputmask="0x02"> <!-- RES --> <bounds x="74" y="103" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY2_2" inputmask="0x80"> <!-- BEST --> + <element ref="keys" inputtag="KEY.1" inputmask="0x04"> <!-- BEST --> <bounds x="79" y="103" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY2_4" inputmask="0x80"> <!-- MON --> + <element ref="keys" inputtag="KEY.1" inputmask="0x10"> <!-- MON --> <bounds x="84" y="103" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY1_7" inputmask="0x80"> <!-- BLACK --> + <element ref="keys" inputtag="KEY.0" inputmask="0x80"> <!-- BLACK --> <bounds x="89" y="103" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY1_6" inputmask="0x80"> <!-- WHITE --> + <element ref="keys" inputtag="KEY.0" inputmask="0x40"> <!-- WHITE --> <bounds x="94" y="103" width="4" height="4" /><color alpha="0.25" /> </element> </group> @@ -545,15 +567,10 @@ license:CC0 <element ref="cblack"><bounds x="13" y="-2" width="89" height="89" /></element> <element ref="cwhite"><bounds x="17" y="2" width="81" height="81" /></element> - <group ref="panel1"><bounds x="37.5" y="91" width="20" height="8" /></group> - <group ref="panel2"><bounds x="67.5" y="88.25" width="29" height="1.5" /></group> - <group ref="buttons"><bounds x="67.5" y="91" width="29" height="14" /></group> - <group ref="sb_board"><bounds x="17.5" y="2.5" width="80" height="80" /></group> <group ref="sb_ui"><bounds x="1.5" y="3" width="10" height="80" /></group> - <!-- chessboard coords --> - + <!-- chessboard coords --> <element ref="text_8"><bounds x="14.2" y="6.5" width="2" height="2" /></element> <element ref="text_7"><bounds x="14.2" y="16.5" width="2" height="2" /></element> <element ref="text_6"><bounds x="14.2" y="26.5" width="2" height="2" /></element> @@ -571,6 +588,13 @@ license:CC0 <element ref="text_f"><bounds x="71.5" y="84" width="2" height="2" /></element> <element ref="text_g"><bounds x="81.5" y="84" width="2" height="2" /></element> <element ref="text_h"><bounds x="91.5" y="84" width="2" height="2" /></element> + + <!-- bottom side --> + <element ref="lcd_bg"><bounds x="37.5" y="91" width="20" height="8" /></element> + <group ref="display"><bounds x="38" y="91.8" width="19" height="6.4" /></group> + + <group ref="leds"><bounds x="67.5" y="88.25" width="29" height="1.5" /></group> + <group ref="buttons"><bounds x="67.5" y="91" width="29" height="14" /></group> </view> </mamelayout> diff --git a/src/mame/layout/mephisto_esb2.lay b/src/mame/layout/mephisto_esb2.lay index 80db84a285d..92f7261edad 100644 --- a/src/mame/layout/mephisto_esb2.lay +++ b/src/mame/layout/mephisto_esb2.lay @@ -205,7 +205,7 @@ license:CC0 <!-- leds --> <repeat count="8"> <param name="y" start="8.3" increment="10" /> - <param name="i1" start="11" increment="-1" /> + <param name="i1" start="7" increment="-1" /> <repeat count="8"> <param name="x" start="8.3" increment="10" /> @@ -423,13 +423,14 @@ license:CC0 <!-- display --> <element name="lcd_bg"><rect><color red="0.54" green="0.57" blue="0.58" /></rect></element> + <element name="ldot_hide"><disk><color red="0.54" green="0.57" blue="0.58" /></disk></element> <element name="digit" defstate="0"> <led7seg><color red="0.2" green="0.16" blue="0.16" /></led7seg> </element> - <element name="ldot" defstate="0"> - <rect state="1"><color red="0.2" green="0.16" blue="0.16" /></rect> - <rect state="0"><color red="0.49412" green="0.51765" blue="0.51765" /></rect> + <element name="ldot"> + <rect><color red="0.49412" green="0.51765" blue="0.51765" /></rect> + <rect statemask="0x80"><color red="0.2" green="0.16" blue="0.16" /></rect> </element> <group name="display"> @@ -442,12 +443,18 @@ license:CC0 <element name="digit1" ref="digit"><bounds x="43" y="91" width="4" height="6" /></element> <element name="digit0" ref="digit"><bounds x="48.5" y="91" width="4" height="6" /></element> - <element name="3.7" ref="ldot"><bounds x="36.25" y="96.42" width="0.6" height="0.6" /></element> - <element name="2.7" ref="ldot"><bounds x="41.75" y="96.42" width="0.6" height="0.6" /></element> - <element name="1.7" ref="ldot"><bounds x="47.25" y="96.42" width="0.6" height="0.6" /></element> + <!-- digits DP are different from normal 7seg --> + <element ref="ldot_hide"><bounds x="35.3" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="40.8" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="46.3" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="51.8" y="96.3" width="0.85" height="0.85" /></element> - <element name="0.7" ref="ldot"><bounds x="42.16" y="92.75" width="0.6" height="0.6" /></element> - <element name="0.7" ref="ldot"><bounds x="41.94" y="94.55" width="0.6" height="0.6" /></element> + <element name="digit3" ref="ldot"><bounds x="36.22" y="96.42" width="0.6" height="0.6" /></element> + <element name="digit2" ref="ldot"><bounds x="41.72" y="96.42" width="0.6" height="0.6" /></element> + <element name="digit1" ref="ldot"><bounds x="47.22" y="96.42" width="0.6" height="0.6" /></element> + + <element name="digit0" ref="ldot"><bounds x="42.07" y="92.75" width="0.6" height="0.6" /></element> + <element name="digit0" ref="ldot"><bounds x="41.92" y="94.55" width="0.6" height="0.6" /></element> </group> diff --git a/src/mame/layout/mephisto_gen32.lay b/src/mame/layout/mephisto_gen32.lay index d3255899625..498fbecc855 100644 --- a/src/mame/layout/mephisto_gen32.lay +++ b/src/mame/layout/mephisto_gen32.lay @@ -181,7 +181,7 @@ license:CC0 <!-- chessboard leds --> <repeat count="8"> - <param name="x" start="8.2" increment="10" /> + <param name="x" start="8.3" increment="10" /> <param name="la" start="0" increment="1" /> <param name="lb" start="8" increment="1" /> <param name="lc" start="16" increment="1" /> diff --git a/src/mame/layout/mephisto_glasgow.lay b/src/mame/layout/mephisto_glasgow.lay index 459436a977f..f3a94062cef 100644 --- a/src/mame/layout/mephisto_glasgow.lay +++ b/src/mame/layout/mephisto_glasgow.lay @@ -4,11 +4,7 @@ license:CC0 --> <mamelayout version="2"> - <element name="lcd_bg"><rect><color red="0.54" green="0.57" blue="0.58" /></rect></element> - - <element name="digit" defstate="0"> - <led7seg><color red="0.2" green="0.16" blue="0.16" /></led7seg> - </element> +<!-- define elements --> <element name="led" defstate="0"> <disk state="0"> @@ -169,7 +165,7 @@ license:CC0 <!-- chessboard leds --> <repeat count="8"> - <param name="x" start="8.2" increment="10" /> + <param name="x" start="8.3" increment="10" /> <param name="la" start="0" increment="1" /> <param name="lb" start="8" increment="1" /> <param name="lc" start="16" increment="1" /> @@ -348,14 +344,41 @@ license:CC0 </group> -<!-- Display panel --> +<!-- display --> + + <element name="lcd_bg"><rect><color red="0.54" green="0.57" blue="0.58" /></rect></element> + <element name="ldot_hide"><disk><color red="0.54" green="0.57" blue="0.58" /></disk></element> + + <element name="digit" defstate="0"> + <led7seg><color red="0.2" green="0.16" blue="0.16" /></led7seg> + </element> + <element name="ldot"> + <rect><color red="0.49412" green="0.51765" blue="0.51765" /></rect> + <rect statemask="0x80"><color red="0.2" green="0.16" blue="0.16" /></rect> + </element> - <group name="panel"> - <element ref="lcd_bg"><bounds x="0" y="0" width="35" height="15" /></element> - <element name="digit0" ref="digit"><bounds x="4" y="2.5" width="6" height="10" /></element> - <element name="digit1" ref="digit"><bounds x="11" y="2.5" width="6" height="10" /></element> - <element name="digit2" ref="digit"><bounds x="18" y="2.5" width="6" height="10" /></element> - <element name="digit3" ref="digit"><bounds x="25" y="2.5" width="6" height="10" /></element> + <group name="display"> + <bounds x="31" y="90.3" width="22.5" height="7.4" /> + + <element ref="lcd_bg"><bounds x="31" y="90.3" width="22.5" height="7.4" /></element> + + <element name="digit3" ref="digit"><bounds x="32" y="91" width="4" height="6" /></element> + <element name="digit2" ref="digit"><bounds x="37.5" y="91" width="4" height="6" /></element> + <element name="digit1" ref="digit"><bounds x="43" y="91" width="4" height="6" /></element> + <element name="digit0" ref="digit"><bounds x="48.5" y="91" width="4" height="6" /></element> + + <!-- digits DP are different from normal 7seg --> + <element ref="ldot_hide"><bounds x="35.3" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="40.8" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="46.3" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="51.8" y="96.3" width="0.85" height="0.85" /></element> + + <element name="digit3" ref="ldot"><bounds x="36.22" y="96.42" width="0.6" height="0.6" /></element> + <element name="digit2" ref="ldot"><bounds x="41.72" y="96.42" width="0.6" height="0.6" /></element> + <element name="digit1" ref="ldot"><bounds x="47.22" y="96.42" width="0.6" height="0.6" /></element> + + <element name="digit0" ref="ldot"><bounds x="42.07" y="92.75" width="0.6" height="0.6" /></element> + <element name="digit0" ref="ldot"><bounds x="41.92" y="94.55" width="0.6" height="0.6" /></element> </group> @@ -529,8 +552,10 @@ license:CC0 <element ref="cblack"><bounds x="13" y="-2" width="89" height="89" /></element> <element ref="cwhite"><bounds x="17" y="2" width="81" height="81" /></element> - <!-- chessboard coords --> + <group ref="sb_board"><bounds x="17.5" y="2.5" width="80" height="80" /></group> + <group ref="sb_ui"><bounds x="1.5" y="3" width="10" height="80" /></group> + <!-- chessboard coords --> <element ref="text_8"><bounds x="14.2" y="6.5" width="2" height="2" /></element> <element ref="text_7"><bounds x="14.2" y="16.5" width="2" height="2" /></element> <element ref="text_6"><bounds x="14.2" y="26.5" width="2" height="2" /></element> @@ -549,11 +574,9 @@ license:CC0 <element ref="text_g"><bounds x="81.5" y="84" width="2" height="2" /></element> <element ref="text_h"><bounds x="91.5" y="84" width="2" height="2" /></element> - <group ref="panel"><bounds x="37.5" y="91.5" width="20" height="8" /></group> - + <!-- bottom side --> + <element ref="lcd_bg"><bounds x="37.5" y="91.5" width="20" height="8" /></element> + <group ref="display"><bounds x="38" y="92.3" width="19" height="6.4" /></group> <group ref="buttons"><bounds x="67.5" y="88.5" width="29" height="14" /></group> - - <group ref="sb_board"><bounds x="17.5" y="2.5" width="80" height="80" /></group> - <group ref="sb_ui"><bounds x="1.5" y="3" width="10" height="80" /></group> </view> </mamelayout> diff --git a/src/mame/layout/mephisto_junior.lay b/src/mame/layout/mephisto_junior.lay index 2c0d9c8d294..a12e1f2bc50 100644 --- a/src/mame/layout/mephisto_junior.lay +++ b/src/mame/layout/mephisto_junior.lay @@ -47,13 +47,14 @@ license:CC0 <!-- display --> <element name="lcd_bg"><rect><color red="0.54" green="0.57" blue="0.58" /></rect></element> + <element name="ldot_hide"><disk><color red="0.54" green="0.57" blue="0.58" /></disk></element> <element name="digit" defstate="0"> <led7seg><color red="0.2" green="0.16" blue="0.16" /></led7seg> </element> - <element name="ldot" defstate="0"> - <rect state="1"><color red="0.2" green="0.16" blue="0.16" /></rect> - <rect state="0"><color red="0.49412" green="0.51765" blue="0.51765" /></rect> + <element name="ldot"> + <rect><color red="0.49412" green="0.51765" blue="0.51765" /></rect> + <rect statemask="0x80"><color red="0.2" green="0.16" blue="0.16" /></rect> </element> <group name="display"> @@ -66,12 +67,18 @@ license:CC0 <element name="digit1" ref="digit"><bounds x="43" y="91" width="4" height="6" /></element> <element name="digit0" ref="digit"><bounds x="48.5" y="91" width="4" height="6" /></element> - <element name="3.7" ref="ldot"><bounds x="36.25" y="96.42" width="0.6" height="0.6" /></element> - <element name="2.7" ref="ldot"><bounds x="41.75" y="96.42" width="0.6" height="0.6" /></element> - <element name="1.7" ref="ldot"><bounds x="47.25" y="96.42" width="0.6" height="0.6" /></element> + <!-- digits DP are different from normal 7seg --> + <element ref="ldot_hide"><bounds x="35.3" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="40.8" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="46.3" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="51.8" y="96.3" width="0.85" height="0.85" /></element> - <element name="0.7" ref="ldot"><bounds x="42.16" y="92.75" width="0.6" height="0.6" /></element> - <element name="0.7" ref="ldot"><bounds x="41.94" y="94.55" width="0.6" height="0.6" /></element> + <element name="digit3" ref="ldot"><bounds x="36.22" y="96.42" width="0.6" height="0.6" /></element> + <element name="digit2" ref="ldot"><bounds x="41.72" y="96.42" width="0.6" height="0.6" /></element> + <element name="digit1" ref="ldot"><bounds x="47.22" y="96.42" width="0.6" height="0.6" /></element> + + <element name="digit0" ref="ldot"><bounds x="42.07" y="92.75" width="0.6" height="0.6" /></element> + <element name="digit0" ref="ldot"><bounds x="41.92" y="94.55" width="0.6" height="0.6" /></element> </group> diff --git a/src/mame/layout/mephisto_mirage.lay b/src/mame/layout/mephisto_mirage.lay index b79ea6dac30..3fbda7f1e4e 100644 --- a/src/mame/layout/mephisto_mirage.lay +++ b/src/mame/layout/mephisto_mirage.lay @@ -161,26 +161,36 @@ license:CC0 <param name="y" start="0" increment="10" /> <param name="i" start="8" increment="-1" /> - <element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x01"><bounds x="0" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> - <element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x02"><bounds x="10" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> - <element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x04"><bounds x="20" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> - <element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x08"><bounds x="30" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> - <element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x10"><bounds x="40" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> - <element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x20"><bounds x="50" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> - <element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x40"><bounds x="60" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> - <element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x80"><bounds x="70" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> + <element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x01"><bounds x="0" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> + <element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x02"><bounds x="10" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> + <element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x04"><bounds x="20" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> + <element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x08"><bounds x="30" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> + <element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x10"><bounds x="40" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> + <element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x20"><bounds x="50" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> + <element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x40"><bounds x="60" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> + <element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x80"><bounds x="70" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> </repeat> <!-- leds --> <repeat count="8"> - <param name="y" start="8.3" increment="10" /> - <param name="i1" start="11" increment="-1" /> - - <repeat count="8"> - <param name="x" start="8.3" increment="10" /> - <param name="i2" start="0" increment="1" /> - <element name="~i1~.~i2~" ref="led"><bounds x="~x~" y="~y~" width="1.5" height="1.5" /></element> - </repeat> + <param name="x" start="8.3" increment="10" /> + <param name="la" start="0" increment="1" /> + <param name="lb" start="8" increment="1" /> + <param name="lc" start="16" increment="1" /> + <param name="ld" start="24" increment="1" /> + <param name="le" start="32" increment="1" /> + <param name="lf" start="40" increment="1" /> + <param name="lg" start="48" increment="1" /> + <param name="lh" start="56" increment="1" /> + + <element name="led~la~" ref="led"><bounds x="~x~" y="78.3" width="1.5" height="1.5" /></element> + <element name="led~lb~" ref="led"><bounds x="~x~" y="68.3" width="1.5" height="1.5" /></element> + <element name="led~lc~" ref="led"><bounds x="~x~" y="58.3" width="1.5" height="1.5" /></element> + <element name="led~ld~" ref="led"><bounds x="~x~" y="48.3" width="1.5" height="1.5" /></element> + <element name="led~le~" ref="led"><bounds x="~x~" y="38.3" width="1.5" height="1.5" /></element> + <element name="led~lf~" ref="led"><bounds x="~x~" y="28.3" width="1.5" height="1.5" /></element> + <element name="led~lg~" ref="led"><bounds x="~x~" y="18.3" width="1.5" height="1.5" /></element> + <element name="led~lh~" ref="led"><bounds x="~x~" y="8.3" width="1.5" height="1.5" /></element> </repeat> <repeat count="4"> @@ -289,8 +299,8 @@ license:CC0 <element ref="text_uib2"><bounds x="1.5" y="11.75" width="7" height="2" /></element> <element ref="text_uib3"><bounds x="1.5" y="15.25" width="7" height="2" /></element> - <element ref="hlub" inputtag="board:UI" inputmask="0x200"><bounds x="1" y="11.5" width="8" height="2.5" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:UI" inputmask="0x100"><bounds x="1" y="15" width="8" height="2.5" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:UI" inputmask="0x200"><bounds x="1" y="11.5" width="8" height="2.5" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:UI" inputmask="0x100"><bounds x="1" y="15" width="8" height="2.5" /><color alpha="0.25" /></element> <!-- spawn --> <element ref="text_uis1"><bounds x="0" y="20.5" width="10" height="2" /></element> @@ -310,18 +320,18 @@ license:CC0 <element name="piece_ui11" ref="piece"><bounds x="5" y="40" width="4" height="4" /></element> <element name="piece_ui12" ref="piece"><bounds x="5" y="44" width="4" height="4" /></element> - <element ref="hlub" inputtag="board:SPAWN" inputmask="0x0001"><bounds x="1" y="23" width="4" height="4" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:SPAWN" inputmask="0x0002"><bounds x="1" y="27" width="4" height="4" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:SPAWN" inputmask="0x0004"><bounds x="1" y="31" width="4" height="4" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:SPAWN" inputmask="0x0008"><bounds x="5" y="23" width="4" height="4" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:SPAWN" inputmask="0x0010"><bounds x="5" y="27" width="4" height="4" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:SPAWN" inputmask="0x0020"><bounds x="5" y="31" width="4" height="4" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:SPAWN" inputmask="0x0040"><bounds x="1" y="36" width="4" height="4" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:SPAWN" inputmask="0x0080"><bounds x="1" y="40" width="4" height="4" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:SPAWN" inputmask="0x0100"><bounds x="1" y="44" width="4" height="4" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:SPAWN" inputmask="0x0200"><bounds x="5" y="36" width="4" height="4" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:SPAWN" inputmask="0x0400"><bounds x="5" y="40" width="4" height="4" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:SPAWN" inputmask="0x0800"><bounds x="5" y="44" width="4" height="4" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0001"><bounds x="1" y="23" width="4" height="4" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0002"><bounds x="1" y="27" width="4" height="4" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0004"><bounds x="1" y="31" width="4" height="4" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0008"><bounds x="5" y="23" width="4" height="4" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0010"><bounds x="5" y="27" width="4" height="4" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0020"><bounds x="5" y="31" width="4" height="4" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0040"><bounds x="1" y="36" width="4" height="4" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0080"><bounds x="1" y="40" width="4" height="4" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0100"><bounds x="1" y="44" width="4" height="4" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0200"><bounds x="5" y="36" width="4" height="4" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0400"><bounds x="5" y="40" width="4" height="4" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0800"><bounds x="5" y="44" width="4" height="4" /><color alpha="0.25" /></element> <!-- hand --> <element ref="text_uih1"><bounds x="0" y="51" width="10" height="2" /></element> @@ -330,7 +340,7 @@ license:CC0 <element ref="cwhite"><bounds x="1" y="60.5" width="8" height="2.5" /></element> <element ref="text_uih2"><bounds x="1.5" y="60.75" width="7" height="2" /></element> - <element ref="hlub" inputtag="board:UI" inputmask="0x08"><bounds x="1" y="60.5" width="8" height="2.5" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:UI" inputmask="0x08"><bounds x="1" y="60.5" width="8" height="2.5" /><color alpha="0.25" /></element> <!-- undo --> <element ref="text_uiu1"><bounds x="0" y="66" width="10" height="2" /></element> @@ -343,10 +353,10 @@ license:CC0 <element ref="text_uiu2c"><bounds x="5.2" y="69.5" width="1.7" height="4" /></element> <element ref="text_uiu2d"><bounds x="7.3" y="69.5" width="1.7" height="4" /></element> - <element ref="hlub" inputtag="board:UI" inputmask="0x10"><bounds x="1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:UI" inputmask="0x20"><bounds x="3.1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:UI" inputmask="0x40"><bounds x="5.2" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:UI" inputmask="0x80"><bounds x="7.3" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:UI" inputmask="0x10"><bounds x="1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:UI" inputmask="0x20"><bounds x="3.1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:UI" inputmask="0x40"><bounds x="5.2" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:UI" inputmask="0x80"><bounds x="7.3" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element> <element name="count_ui0" ref="text_uiu3a"><bounds x="0" y="75" width="4" height="2" /></element> <element name="count_ui1" ref="text_uiu3c"><bounds x="6" y="75" width="4" height="2" /></element> @@ -357,13 +367,14 @@ license:CC0 <!-- display --> <element name="lcd_bg"><rect><color red="0.54" green="0.57" blue="0.58" /></rect></element> + <element name="ldot_hide"><disk><color red="0.54" green="0.57" blue="0.58" /></disk></element> <element name="digit" defstate="0"> <led7seg><color red="0.2" green="0.16" blue="0.16" /></led7seg> </element> - <element name="ldot" defstate="0"> - <rect state="1"><color red="0.2" green="0.16" blue="0.16" /></rect> - <rect state="0"><color red="0.49412" green="0.51765" blue="0.51765" /></rect> + <element name="ldot"> + <rect><color red="0.49412" green="0.51765" blue="0.51765" /></rect> + <rect statemask="0x80"><color red="0.2" green="0.16" blue="0.16" /></rect> </element> <group name="display"> @@ -376,12 +387,18 @@ license:CC0 <element name="digit1" ref="digit"><bounds x="43" y="91" width="4" height="6" /></element> <element name="digit0" ref="digit"><bounds x="48.5" y="91" width="4" height="6" /></element> - <element name="3.7" ref="ldot"><bounds x="36.25" y="96.42" width="0.6" height="0.6" /></element> - <element name="2.7" ref="ldot"><bounds x="41.75" y="96.42" width="0.6" height="0.6" /></element> - <element name="1.7" ref="ldot"><bounds x="47.25" y="96.42" width="0.6" height="0.6" /></element> + <!-- digits DP are different from normal 7seg --> + <element ref="ldot_hide"><bounds x="35.3" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="40.8" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="46.3" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="51.8" y="96.3" width="0.85" height="0.85" /></element> + + <element name="digit3" ref="ldot"><bounds x="36.22" y="96.42" width="0.6" height="0.6" /></element> + <element name="digit2" ref="ldot"><bounds x="41.72" y="96.42" width="0.6" height="0.6" /></element> + <element name="digit1" ref="ldot"><bounds x="47.22" y="96.42" width="0.6" height="0.6" /></element> - <element name="0.7" ref="ldot"><bounds x="42.16" y="92.75" width="0.6" height="0.6" /></element> - <element name="0.7" ref="ldot"><bounds x="41.94" y="94.55" width="0.6" height="0.6" /></element> + <element name="digit0" ref="ldot"><bounds x="42.07" y="92.75" width="0.6" height="0.6" /></element> + <element name="digit0" ref="ldot"><bounds x="41.92" y="94.55" width="0.6" height="0.6" /></element> </group> diff --git a/src/mame/layout/mephisto_mm1.lay b/src/mame/layout/mephisto_mm1.lay index 47becf67cb4..1d7b4c35f14 100644 --- a/src/mame/layout/mephisto_mm1.lay +++ b/src/mame/layout/mephisto_mm1.lay @@ -200,14 +200,24 @@ license:CC0 <!-- leds --> <repeat count="8"> - <param name="y" start="8.3" increment="10" /> - <param name="i1" start="11" increment="-1" /> - - <repeat count="8"> - <param name="x" start="8.3" increment="10" /> - <param name="i2" start="0" increment="1" /> - <element name="~i1~.~i2~" ref="led"><bounds x="~x~" y="~y~" width="1.5" height="1.5" /></element> - </repeat> + <param name="x" start="8.3" increment="10" /> + <param name="la" start="0" increment="1" /> + <param name="lb" start="8" increment="1" /> + <param name="lc" start="16" increment="1" /> + <param name="ld" start="24" increment="1" /> + <param name="le" start="32" increment="1" /> + <param name="lf" start="40" increment="1" /> + <param name="lg" start="48" increment="1" /> + <param name="lh" start="56" increment="1" /> + + <element name="led~la~" ref="led"><bounds x="~x~" y="78.3" width="1.5" height="1.5" /></element> + <element name="led~lb~" ref="led"><bounds x="~x~" y="68.3" width="1.5" height="1.5" /></element> + <element name="led~lc~" ref="led"><bounds x="~x~" y="58.3" width="1.5" height="1.5" /></element> + <element name="led~ld~" ref="led"><bounds x="~x~" y="48.3" width="1.5" height="1.5" /></element> + <element name="led~le~" ref="led"><bounds x="~x~" y="38.3" width="1.5" height="1.5" /></element> + <element name="led~lf~" ref="led"><bounds x="~x~" y="28.3" width="1.5" height="1.5" /></element> + <element name="led~lg~" ref="led"><bounds x="~x~" y="18.3" width="1.5" height="1.5" /></element> + <element name="led~lh~" ref="led"><bounds x="~x~" y="8.3" width="1.5" height="1.5" /></element> </repeat> <!-- sensors, pieces --> @@ -215,14 +225,14 @@ license:CC0 <param name="y" start="0" increment="10" /> <param name="i" start="8" increment="-1" /> - <element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x01"><bounds x="0" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> - <element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x02"><bounds x="10" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> - <element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x04"><bounds x="20" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> - <element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x08"><bounds x="30" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> - <element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x10"><bounds x="40" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> - <element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x20"><bounds x="50" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> - <element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x40"><bounds x="60" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> - <element ref="hlbb" inputtag="board:RANK.~i~" inputmask="0x80"><bounds x="70" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> + <element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x01"><bounds x="0" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> + <element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x02"><bounds x="10" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> + <element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x04"><bounds x="20" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> + <element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x08"><bounds x="30" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> + <element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x10"><bounds x="40" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> + <element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x20"><bounds x="50" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> + <element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x40"><bounds x="60" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> + <element ref="hlbb" inputtag="board:board:RANK.~i~" inputmask="0x80"><bounds x="70" y="~y~" width="10" height="10" /><color alpha="0.04" /></element> <element name="piece_a~i~" ref="piece"><bounds x="0" y="~y~" width="10" height="10" /></element> <element name="piece_b~i~" ref="piece"><bounds x="10" y="~y~" width="10" height="10" /></element> @@ -304,8 +314,8 @@ license:CC0 <element ref="text_uib2"><bounds x="1.5" y="11.75" width="7" height="2" /></element> <element ref="text_uib3"><bounds x="1.5" y="15.25" width="7" height="2" /></element> - <element ref="hlub" inputtag="board:UI" inputmask="0x200"><bounds x="1" y="11.5" width="8" height="2.5" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:UI" inputmask="0x100"><bounds x="1" y="15" width="8" height="2.5" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:UI" inputmask="0x200"><bounds x="1" y="11.5" width="8" height="2.5" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:UI" inputmask="0x100"><bounds x="1" y="15" width="8" height="2.5" /><color alpha="0.25" /></element> <!-- spawn --> <element ref="text_uis1"><bounds x="0" y="20.5" width="10" height="2" /></element> @@ -325,18 +335,18 @@ license:CC0 <element name="piece_ui11" ref="piece"><bounds x="5" y="40" width="4" height="4" /></element> <element name="piece_ui12" ref="piece"><bounds x="5" y="44" width="4" height="4" /></element> - <element ref="hlub" inputtag="board:SPAWN" inputmask="0x0001"><bounds x="1" y="23" width="4" height="4" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:SPAWN" inputmask="0x0002"><bounds x="1" y="27" width="4" height="4" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:SPAWN" inputmask="0x0004"><bounds x="1" y="31" width="4" height="4" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:SPAWN" inputmask="0x0008"><bounds x="5" y="23" width="4" height="4" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:SPAWN" inputmask="0x0010"><bounds x="5" y="27" width="4" height="4" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:SPAWN" inputmask="0x0020"><bounds x="5" y="31" width="4" height="4" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:SPAWN" inputmask="0x0040"><bounds x="1" y="36" width="4" height="4" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:SPAWN" inputmask="0x0080"><bounds x="1" y="40" width="4" height="4" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:SPAWN" inputmask="0x0100"><bounds x="1" y="44" width="4" height="4" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:SPAWN" inputmask="0x0200"><bounds x="5" y="36" width="4" height="4" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:SPAWN" inputmask="0x0400"><bounds x="5" y="40" width="4" height="4" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:SPAWN" inputmask="0x0800"><bounds x="5" y="44" width="4" height="4" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0001"><bounds x="1" y="23" width="4" height="4" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0002"><bounds x="1" y="27" width="4" height="4" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0004"><bounds x="1" y="31" width="4" height="4" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0008"><bounds x="5" y="23" width="4" height="4" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0010"><bounds x="5" y="27" width="4" height="4" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0020"><bounds x="5" y="31" width="4" height="4" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0040"><bounds x="1" y="36" width="4" height="4" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0080"><bounds x="1" y="40" width="4" height="4" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0100"><bounds x="1" y="44" width="4" height="4" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0200"><bounds x="5" y="36" width="4" height="4" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0400"><bounds x="5" y="40" width="4" height="4" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:SPAWN" inputmask="0x0800"><bounds x="5" y="44" width="4" height="4" /><color alpha="0.25" /></element> <!-- hand --> <element ref="text_uih1"><bounds x="0" y="51" width="10" height="2" /></element> @@ -345,7 +355,7 @@ license:CC0 <element ref="cwhite"><bounds x="1" y="60.5" width="8" height="2.5" /></element> <element ref="text_uih2"><bounds x="1.5" y="60.75" width="7" height="2" /></element> - <element ref="hlub" inputtag="board:UI" inputmask="0x08"><bounds x="1" y="60.5" width="8" height="2.5" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:UI" inputmask="0x08"><bounds x="1" y="60.5" width="8" height="2.5" /><color alpha="0.25" /></element> <!-- undo --> <element ref="text_uiu1"><bounds x="0" y="66" width="10" height="2" /></element> @@ -358,10 +368,10 @@ license:CC0 <element ref="text_uiu2c"><bounds x="5.2" y="69.5" width="1.7" height="4" /></element> <element ref="text_uiu2d"><bounds x="7.3" y="69.5" width="1.7" height="4" /></element> - <element ref="hlub" inputtag="board:UI" inputmask="0x10"><bounds x="1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:UI" inputmask="0x20"><bounds x="3.1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:UI" inputmask="0x40"><bounds x="5.2" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element> - <element ref="hlub" inputtag="board:UI" inputmask="0x80"><bounds x="7.3" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:UI" inputmask="0x10"><bounds x="1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:UI" inputmask="0x20"><bounds x="3.1" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:UI" inputmask="0x40"><bounds x="5.2" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element> + <element ref="hlub" inputtag="board:board:UI" inputmask="0x80"><bounds x="7.3" y="68.5" width="1.7" height="6" /><color alpha="0.25" /></element> <element name="count_ui0" ref="text_uiu3a"><bounds x="0" y="75" width="4" height="2" /></element> <element name="count_ui1" ref="text_uiu3c"><bounds x="6" y="75" width="4" height="2" /></element> @@ -372,13 +382,14 @@ license:CC0 <!-- display --> <element name="lcd_bg"><rect><color red="0.54" green="0.57" blue="0.58" /></rect></element> + <element name="ldot_hide"><disk><color red="0.54" green="0.57" blue="0.58" /></disk></element> <element name="digit" defstate="0"> <led7seg><color red="0.2" green="0.16" blue="0.16" /></led7seg> </element> - <element name="ldot" defstate="0"> - <rect state="1"><color red="0.2" green="0.16" blue="0.16" /></rect> - <rect state="0"><color red="0.49412" green="0.51765" blue="0.51765" /></rect> + <element name="ldot"> + <rect><color red="0.49412" green="0.51765" blue="0.51765" /></rect> + <rect statemask="0x80"><color red="0.2" green="0.16" blue="0.16" /></rect> </element> <group name="display"> @@ -391,12 +402,18 @@ license:CC0 <element name="digit1" ref="digit"><bounds x="43" y="91" width="4" height="6" /></element> <element name="digit0" ref="digit"><bounds x="48.5" y="91" width="4" height="6" /></element> - <element name="3.7" ref="ldot"><bounds x="36.25" y="96.42" width="0.6" height="0.6" /></element> - <element name="2.7" ref="ldot"><bounds x="41.75" y="96.42" width="0.6" height="0.6" /></element> - <element name="1.7" ref="ldot"><bounds x="47.25" y="96.42" width="0.6" height="0.6" /></element> + <!-- digits DP are different from normal 7seg --> + <element ref="ldot_hide"><bounds x="35.3" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="40.8" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="46.3" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="51.8" y="96.3" width="0.85" height="0.85" /></element> - <element name="0.7" ref="ldot"><bounds x="42.16" y="92.75" width="0.6" height="0.6" /></element> - <element name="0.7" ref="ldot"><bounds x="41.94" y="94.55" width="0.6" height="0.6" /></element> + <element name="digit3" ref="ldot"><bounds x="36.22" y="96.42" width="0.6" height="0.6" /></element> + <element name="digit2" ref="ldot"><bounds x="41.72" y="96.42" width="0.6" height="0.6" /></element> + <element name="digit1" ref="ldot"><bounds x="47.22" y="96.42" width="0.6" height="0.6" /></element> + + <element name="digit0" ref="ldot"><bounds x="42.07" y="92.75" width="0.6" height="0.6" /></element> + <element name="digit0" ref="ldot"><bounds x="41.92" y="94.55" width="0.6" height="0.6" /></element> </group> @@ -545,10 +562,7 @@ license:CC0 <group ref="sb_board"><bounds x="3.5" y="3" width="80" height="80" /></group> <group ref="sb_ui"><bounds x="-12.5" y="3" width="10" height="80" /></group> - <element ref="lcd_bg"><bounds x="23.5" y="92" width="20" height="8" /></element> - <group ref="display"><bounds x="24" y="92.8" width="19" height="6.4" /></group> - <group ref="buttons"><bounds x="53.5" y="89" width="29" height="14" /></group> - + <!-- chessboard coords --> <element ref="text_8"><bounds x="0.2" y="7" width="2" height="2" /></element> <element ref="text_7"><bounds x="0.2" y="17" width="2" height="2" /></element> <element ref="text_6"><bounds x="0.2" y="27" width="2" height="2" /></element> @@ -566,5 +580,10 @@ license:CC0 <element ref="text_f"><bounds x="57.5" y="84.5" width="2" height="2" /></element> <element ref="text_g"><bounds x="67.5" y="84.5" width="2" height="2" /></element> <element ref="text_h"><bounds x="77.5" y="84.5" width="2" height="2" /></element> + + <!-- bottom side --> + <element ref="lcd_bg"><bounds x="23.5" y="92" width="20" height="8" /></element> + <group ref="display"><bounds x="24" y="92.8" width="19" height="6.4" /></group> + <group ref="buttons"><bounds x="53.5" y="89" width="29" height="14" /></group> </view> </mamelayout> diff --git a/src/mame/layout/mephisto_mm2.lay b/src/mame/layout/mephisto_mm2.lay index 4ac73ef50c6..4d76871cb0d 100644 --- a/src/mame/layout/mephisto_mm2.lay +++ b/src/mame/layout/mephisto_mm2.lay @@ -3,13 +3,8 @@ license:CC0 --> <mamelayout version="2"> -<!-- define elements --> - - <element name="lcd_bg"><rect><color red="0.54" green="0.57" blue="0.58" /></rect></element> - <element name="digit" defstate="0"> - <led7seg><color red="0.2" green="0.16" blue="0.16" /></led7seg> - </element> +<!-- define elements --> <element name="led" defstate="0"> <disk state="0"> @@ -170,7 +165,7 @@ license:CC0 <!-- chessboard leds --> <repeat count="8"> - <param name="x" start="8.2" increment="10" /> + <param name="x" start="8.3" increment="10" /> <param name="la" start="0" increment="1" /> <param name="lb" start="8" increment="1" /> <param name="lc" start="16" increment="1" /> @@ -349,14 +344,41 @@ license:CC0 </group> -<!-- 7seg panel --> +<!-- display --> - <group name="panel1"> - <element ref="lcd_bg"><bounds x="0" y="0" width="35" height="15" /></element> - <element name="digit0" ref="digit"><bounds x="4" y="2.5" width="6" height="10" /></element> - <element name="digit1" ref="digit"><bounds x="11" y="2.5" width="6" height="10" /></element> - <element name="digit2" ref="digit"><bounds x="18" y="2.5" width="6" height="10" /></element> - <element name="digit3" ref="digit"><bounds x="25" y="2.5" width="6" height="10" /></element> + <element name="lcd_bg"><rect><color red="0.54" green="0.57" blue="0.58" /></rect></element> + <element name="ldot_hide"><disk><color red="0.54" green="0.57" blue="0.58" /></disk></element> + + <element name="digit" defstate="0"> + <led7seg><color red="0.2" green="0.16" blue="0.16" /></led7seg> + </element> + <element name="ldot"> + <rect><color red="0.49412" green="0.51765" blue="0.51765" /></rect> + <rect statemask="0x80"><color red="0.2" green="0.16" blue="0.16" /></rect> + </element> + + <group name="display"> + <bounds x="31" y="90.3" width="22.5" height="7.4" /> + + <element ref="lcd_bg"><bounds x="31" y="90.3" width="22.5" height="7.4" /></element> + + <element name="digit3" ref="digit"><bounds x="32" y="91" width="4" height="6" /></element> + <element name="digit2" ref="digit"><bounds x="37.5" y="91" width="4" height="6" /></element> + <element name="digit1" ref="digit"><bounds x="43" y="91" width="4" height="6" /></element> + <element name="digit0" ref="digit"><bounds x="48.5" y="91" width="4" height="6" /></element> + + <!-- digits DP are different from normal 7seg --> + <element ref="ldot_hide"><bounds x="35.3" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="40.8" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="46.3" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="51.8" y="96.3" width="0.85" height="0.85" /></element> + + <element name="digit3" ref="ldot"><bounds x="36.22" y="96.42" width="0.6" height="0.6" /></element> + <element name="digit2" ref="ldot"><bounds x="41.72" y="96.42" width="0.6" height="0.6" /></element> + <element name="digit1" ref="ldot"><bounds x="47.22" y="96.42" width="0.6" height="0.6" /></element> + + <element name="digit0" ref="ldot"><bounds x="42.07" y="92.75" width="0.6" height="0.6" /></element> + <element name="digit0" ref="ldot"><bounds x="41.92" y="94.55" width="0.6" height="0.6" /></element> </group> @@ -371,7 +393,7 @@ license:CC0 <element name="led_pos"> <text string="POS" align="1"> <color red="0.8" green="0.8" blue="0.8" /></text> </element> <element name="led_mem"> <text string="MEM" align="1"> <color red="0.8" green="0.8" blue="0.8" /></text> </element> - <group name="panel2"> + <group name="leds"> <bounds x="69.1" y="89.9" width="29" height="1.5" /> <element ref="led_play"><bounds x="70.7" y="89.9" width="3.2" height="1.5" /></element> @@ -488,41 +510,41 @@ license:CC0 <element ref="gray"><bounds x="89.7" y="105.3" width="0.9" height="0.9" /></element> <element ref="white"><bounds x="94.5" y="105.1" width="1.3" height="1.3" /></element> - <element ref="keys" inputtag="KEY1_0" inputmask="0x80"> <!-- CL --> + <element ref="keys" inputtag="KEY.0" inputmask="0x01"> <!-- CL --> <bounds x="69" y="93" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY1_1" inputmask="0x80"> <!-- POS --> + <element ref="keys" inputtag="KEY.0" inputmask="0x02"> <!-- POS --> <bounds x="74" y="93" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY1_2" inputmask="0x80"> <!-- MEM --> + <element ref="keys" inputtag="KEY.0" inputmask="0x04"> <!-- MEM --> <bounds x="79" y="93" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY1_3" inputmask="0x80"> <!-- INFO --> + <element ref="keys" inputtag="KEY.0" inputmask="0x08"> <!-- INFO --> <bounds x="84" y="93" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY1_4" inputmask="0x80"> <!-- LEV --> + <element ref="keys" inputtag="KEY.0" inputmask="0x10"> <!-- LEV --> <bounds x="89" y="93" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY1_5" inputmask="0x80"> <!-- ENT --> + <element ref="keys" inputtag="KEY.0" inputmask="0x20"> <!-- ENT --> <bounds x="94" y="93" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY2_3" inputmask="0x80"> <!-- A1 --> + <element ref="keys" inputtag="KEY.1" inputmask="0x08"> <!-- A1 --> <bounds x="69" y="98" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY2_5" inputmask="0x80"> <!-- B2 --> + <element ref="keys" inputtag="KEY.1" inputmask="0x20"> <!-- B2 --> <bounds x="74" y="98" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY2_6" inputmask="0x80"> <!-- C3 --> + <element ref="keys" inputtag="KEY.1" inputmask="0x40"> <!-- C3 --> <bounds x="79" y="98" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY2_7" inputmask="0x80"> <!-- D4 --> + <element ref="keys" inputtag="KEY.1" inputmask="0x80"> <!-- D4 --> <bounds x="84" y="98" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY2_0" inputmask="0x80"> <!-- E5 --> + <element ref="keys" inputtag="KEY.1" inputmask="0x01"> <!-- E5 --> <bounds x="89" y="98" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY2_1" inputmask="0x80"> <!-- F6 --> + <element ref="keys" inputtag="KEY.1" inputmask="0x02"> <!-- F6 --> <bounds x="94" y="98" width="4" height="4" /><color alpha="0.25" /> </element> @@ -532,16 +554,16 @@ license:CC0 <element ref="keys" inputtag="RESET" inputmask="0x02"> <!-- RES --> <bounds x="74" y="103" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY2_2" inputmask="0x80"> <!-- G7 --> + <element ref="keys" inputtag="KEY.1" inputmask="0x04"> <!-- G7 --> <bounds x="79" y="103" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY2_4" inputmask="0x80"> <!-- H8 --> + <element ref="keys" inputtag="KEY.1" inputmask="0x10"> <!-- H8 --> <bounds x="84" y="103" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY1_7" inputmask="0x80"> <!-- 9 --> + <element ref="keys" inputtag="KEY.0" inputmask="0x80"> <!-- 9 --> <bounds x="89" y="103" width="4" height="4" /><color alpha="0.25" /> </element> - <element ref="keys" inputtag="KEY1_6" inputmask="0x80"> <!-- 0 --> + <element ref="keys" inputtag="KEY.0" inputmask="0x40"> <!-- 0 --> <bounds x="94" y="103" width="4" height="4" /><color alpha="0.25" /> </element> </group> @@ -554,15 +576,10 @@ license:CC0 <element ref="cblack"><bounds x="13" y="-2" width="89" height="89" /></element> <element ref="cwhite"><bounds x="17" y="2" width="81" height="81" /></element> - <group ref="panel1"><bounds x="37.5" y="91" width="20" height="8" /></group> - <group ref="panel2"><bounds x="67.5" y="88.25" width="29" height="1.5" /></group> - <group ref="buttons"><bounds x="67.5" y="91" width="29" height="14" /></group> - <group ref="sb_board"><bounds x="17.5" y="2.5" width="80" height="80" /></group> <group ref="sb_ui"><bounds x="1.5" y="3" width="10" height="80" /></group> - <!-- chessboard coords --> - + <!-- chessboard coords --> <element ref="text_8"><bounds x="14.2" y="6.5" width="2" height="2" /></element> <element ref="text_7"><bounds x="14.2" y="16.5" width="2" height="2" /></element> <element ref="text_6"><bounds x="14.2" y="26.5" width="2" height="2" /></element> @@ -580,6 +597,13 @@ license:CC0 <element ref="text_f"><bounds x="71.5" y="84" width="2" height="2" /></element> <element ref="text_g"><bounds x="81.5" y="84" width="2" height="2" /></element> <element ref="text_h"><bounds x="91.5" y="84" width="2" height="2" /></element> + + <!-- bottom side --> + <element ref="lcd_bg"><bounds x="37.5" y="91" width="20" height="8" /></element> + <group ref="display"><bounds x="38" y="91.8" width="19" height="6.4" /></group> + + <group ref="leds"><bounds x="67.5" y="88.25" width="29" height="1.5" /></group> + <group ref="buttons"><bounds x="67.5" y="91" width="29" height="14" /></group> </view> </mamelayout> diff --git a/src/mame/layout/mephisto_modena.lay b/src/mame/layout/mephisto_modena.lay index 4157e98de34..dd0b91f0903 100644 --- a/src/mame/layout/mephisto_modena.lay +++ b/src/mame/layout/mephisto_modena.lay @@ -3,15 +3,11 @@ license:CC0 --> <mamelayout version="2"> + <!-- define elements --> <element name="white"><rect><color red="1" green="1" blue="1" /></rect></element> <element name="blackb"><rect><color red="0" green="0" blue="0" /></rect></element> - <element name="lcd_bg"><rect><color red="0.54" green="0.57" blue="0.58" /></rect></element> - - <element name="digit" defstate="0"> - <led7seg><color red="0.2" green="0.16" blue="0.16" /></led7seg> - </element> <element name="led" defstate="0"> <disk state="0"> @@ -353,17 +349,47 @@ license:CC0 </group> -<!-- lcd/button panel --> +<!-- display --> + + <element name="lcd_bg"><rect><color red="0.54" green="0.57" blue="0.58" /></rect></element> + <element name="ldot_hide"><disk><color red="0.54" green="0.57" blue="0.58" /></disk></element> + + <element name="digit" defstate="0"> + <led7seg><color red="0.2" green="0.16" blue="0.16" /></led7seg> + </element> + <element name="ldot"> + <rect><color red="0.49412" green="0.51765" blue="0.51765" /></rect> + <rect statemask="0x80"><color red="0.2" green="0.16" blue="0.16" /></rect> + </element> + + <group name="display"> + <bounds x="31" y="90.3" width="22.5" height="7.4" /> + + <element ref="lcd_bg"><bounds x="31" y="90.3" width="22.5" height="7.4" /></element> + + <element name="digit3" ref="digit"><bounds x="32" y="91" width="4" height="6" /></element> + <element name="digit2" ref="digit"><bounds x="37.5" y="91" width="4" height="6" /></element> + <element name="digit1" ref="digit"><bounds x="43" y="91" width="4" height="6" /></element> + <element name="digit0" ref="digit"><bounds x="48.5" y="91" width="4" height="6" /></element> + + <!-- digits DP are different from normal 7seg --> + <element ref="ldot_hide"><bounds x="35.3" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="40.8" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="46.3" y="96.3" width="0.85" height="0.85" /></element> + <element ref="ldot_hide"><bounds x="51.8" y="96.3" width="0.85" height="0.85" /></element> + + <element name="digit3" ref="ldot"><bounds x="36.22" y="96.42" width="0.6" height="0.6" /></element> + <element name="digit2" ref="ldot"><bounds x="41.72" y="96.42" width="0.6" height="0.6" /></element> + <element name="digit1" ref="ldot"><bounds x="47.22" y="96.42" width="0.6" height="0.6" /></element> - <group name="panel1"> - <element ref="lcd_bg"><bounds x="0" y="0" width="31" height="14" /></element> - <element name="digit3" ref="digit"><bounds x="2" y="2" width="6" height="10" /></element> - <element name="digit2" ref="digit"><bounds x="9" y="2" width="6" height="10" /></element> - <element name="digit1" ref="digit"><bounds x="16" y="2" width="6" height="10" /></element> - <element name="digit0" ref="digit"><bounds x="23" y="2" width="6" height="10" /></element> + <element name="digit0" ref="ldot"><bounds x="42.07" y="92.75" width="0.6" height="0.6" /></element> + <element name="digit0" ref="ldot"><bounds x="41.92" y="94.55" width="0.6" height="0.6" /></element> </group> - <group name="panel2"> + +<!-- button panel --> + + <group name="buttons"> <bounds left="0" right="24" top="7" bottom="24" /> <element ref="white"><bounds x="13.2" y="21.4" width="9.6" height="0.8" /> </element> @@ -408,8 +434,11 @@ license:CC0 <view name="Internal Layout"> <bounds left="1" right="129" top="0.5" bottom="90" /> - <!-- chessboard coords --> + <element ref="cwhite"><bounds x="19.5" y="2.5" width="81" height="81" /></element> + <group ref="sb_board"><bounds x="20" y="3" width="80" height="80" /></group> + <group ref="sb_ui"><bounds x="2.5" y="3" width="10" height="80" /></group> + <!-- chessboard coords --> <element ref="text_8"><bounds x="14.2" y="7" width="2" height="2" /></element> <element ref="text_7"><bounds x="14.2" y="17" width="2" height="2" /></element> <element ref="text_6"><bounds x="14.2" y="27" width="2" height="2" /></element> @@ -428,9 +457,7 @@ license:CC0 <element ref="text_g"><bounds x="84" y="86.5" width="2" height="2" /></element> <element ref="text_h"><bounds x="94" y="86.5" width="2" height="2" /></element> - <element ref="cwhite"><bounds x="19.5" y="2.5" width="81" height="81" /></element> - - <!-- chessboard leds --> + <!-- chessboard leds --> <element name="1.0" ref="ledr"><bounds x="24" y="85" width="2" height="1" /></element> <element name="1.1" ref="ledr"><bounds x="34" y="85" width="2" height="1" /></element> <element name="1.2" ref="ledr"><bounds x="44" y="85" width="2" height="1" /></element> @@ -449,11 +476,9 @@ license:CC0 <element name="2.6" ref="ledr"><bounds x="16.5" y="17.5" width="2" height="1" /></element> <element name="2.7" ref="ledr"><bounds x="16.5" y="7.5" width="2" height="1" /></element> - <!-- LCD panel --> - <group ref="panel1"><bounds x="107.5" y="59" width="15" height="6" /></group> - <group ref="panel2"><bounds x="103" y="69" width="24" height="17" /></group> - - <group ref="sb_board"><bounds x="20" y="3" width="80" height="80" /></group> - <group ref="sb_ui"><bounds x="2.5" y="3" width="10" height="80" /></group> + <!-- side panel --> + <element ref="lcd_bg"><bounds x="106.2" y="56.3" width="17.6" height="6.7" /></element> + <group ref="display"><bounds x="106.5" y="56.8" width="17" height="5.7" /></group> + <group ref="buttons"><bounds x="103" y="69" width="24" height="17" /></group> </view> </mamelayout> diff --git a/src/mame/layout/mephisto_modular_tm.lay b/src/mame/layout/mephisto_modular_tm.lay index bc0d5748edd..6eb92e690e0 100644 --- a/src/mame/layout/mephisto_modular_tm.lay +++ b/src/mame/layout/mephisto_modular_tm.lay @@ -155,7 +155,7 @@ license:CC0 <!-- chessboard leds --> <repeat count="8"> - <param name="x" start="8.2" increment="10" /> + <param name="x" start="8.3" increment="10" /> <param name="la" start="0" increment="1" /> <param name="lb" start="8" increment="1" /> <param name="lc" start="16" increment="1" /> diff --git a/src/mame/layout/mephisto_montec.lay b/src/mame/layout/mephisto_montec.lay index 94921db26c0..d86b683554d 100644 --- a/src/mame/layout/mephisto_montec.lay +++ b/src/mame/layout/mephisto_montec.lay @@ -40,48 +40,48 @@ license:CC0 </element> <element name="led7seg_background"><rect><color red="0.54" green="0.57" blue="0.58" /> </rect></element> - <element name="background"><rect><color red="0.59" green="0.39" blue="0.20" /></rect></element> - <element name="white"><rect><color red="0.80" green="0.73" blue="0.63" /></rect></element> - - <element name="text_1"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="1"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_2"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="2"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_3"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="3"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_4"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="4"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_5"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="5"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_6"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="6"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_7"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="7"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_8"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="8"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_a"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="A"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_b"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="B"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_c"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="C"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_d"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="D"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_e"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="E"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_f"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="F"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_g"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="G"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - <element name="text_h"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="H"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> - - <element name="text_book"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="BOOK"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_pos"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="POS"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_mem"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="MEM"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_info"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="INFO"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_err"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="ERR"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_lev"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="LEV"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_black"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="□"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_white"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="■"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_b1"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="[P] 1"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_b2"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="[N] 2"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_b3"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="[B] 3"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_b4"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="[R] 4"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_b5"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="[Q] 5"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_b6"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="[K] 6"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_b7"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="□ 7 ◄"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_b8"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="■ 8 ►"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_book9"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="BOOK 9"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_pos0"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="POS 0"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_cl"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="CL"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_ent"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="ENT"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_res"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="RES"> <color red="1" green="1" blue="1" /></text> </element> - <element name="text_lcd"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect> <text string="MULTI INFO LCD"> <color red="1" green="1" blue="1" /></text> </element> + <element name="background"><rect><color red="0.56" green="0.33" blue="0.12" /></rect></element> + <element name="white"><rect><color red="0.84" green="0.75" blue="0.50" /></rect></element> + + <element name="text_1"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="1"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_2"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="2"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_3"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="3"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_4"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="4"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_5"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="5"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_6"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="6"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_7"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="7"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_8"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="8"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_a"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="A"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_b"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="B"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_c"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="C"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_d"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="D"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_e"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="E"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_f"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="F"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_g"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="G"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + <element name="text_h"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="H"> <color red="0.87" green="0.87" blue="0.84" /></text> </element> + + <element name="text_book"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="BOOK"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_pos"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="POS"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_mem"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="MEM"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_info"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="INFO"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_err"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="ERR"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_lev"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="LEV"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_black"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="□"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_white"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="■"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_b1"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="[P] 1"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_b2"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="[N] 2"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_b3"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="[B] 3"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_b4"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="[R] 4"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_b5"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="[Q] 5"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_b6"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="[K] 6"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_b7"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="□ 7 ◄"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_b8"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="■ 8 ►"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_book9"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="BOOK 9"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_pos0"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="POS 0"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_cl"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="CL"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_ent"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="ENT"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_res"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="RES"> <color red="1" green="1" blue="1" /></text> </element> + <element name="text_lcd"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect> <text string="MULTI INFO LCD"> <color red="1" green="1" blue="1" /></text> </element> <element name="piece" defstate="0"> <image file="chess/wp.svg" state="1"/> @@ -117,8 +117,8 @@ license:CC0 <!-- sb board --> - <element name="cblack"> <rect><color red="0.59" green="0.39" blue="0.20" /></rect></element> - <element name="cwhite"> <rect><color red="0.80" green="0.73" blue="0.63" /></rect></element> + <element name="cblack"> <rect><color red="0.56" green="0.33" blue="0.12" /></rect></element> + <element name="cwhite"> <rect><color red="0.84" green="0.75" blue="0.50" /></rect></element> <element name="hlbb" defstate="0"> <text string=" "><bounds x="0" y="0" width="1" height="1" /></text> @@ -206,7 +206,7 @@ license:CC0 <!-- chessboard leds --> <repeat count="8"> - <param name="x" start="8.2" increment="10" /> + <param name="x" start="8.3" increment="10" /> <param name="la" start="0" increment="1" /> <param name="lb" start="8" increment="1" /> <param name="lc" start="16" increment="1" /> @@ -262,34 +262,34 @@ license:CC0 <element name="text_uit2"><text string="INTERFACE"><color red="0.81" green="0.8" blue="0.79" /></text></element> <element name="text_uib1"><text string="BOARD:"><color red="0.81" green="0.8" blue="0.79" /></text></element> <element name="text_uib2"> - <rect><color red="0.80" green="0.73" blue="0.63" /></rect> + <rect><color red="0.84" green="0.75" blue="0.50" /></rect> <text string="RESET"><color red="0.01" green="0.01" blue="0.01" /></text> </element> <element name="text_uib3"> - <rect><color red="0.80" green="0.73" blue="0.63" /></rect> + <rect><color red="0.84" green="0.75" blue="0.50" /></rect> <text string="CLEAR"><color red="0.01" green="0.01" blue="0.01" /></text> </element> <element name="text_uis1"><text string="SPAWN:"><color red="0.81" green="0.8" blue="0.79" /></text></element> <element name="text_uih1"><text string="HAND:"><color red="0.81" green="0.8" blue="0.79" /></text></element> <element name="text_uih2"> - <rect><color red="0.80" green="0.73" blue="0.63" /></rect> + <rect><color red="0.84" green="0.75" blue="0.50" /></rect> <text string="REMOVE"><color red="0.01" green="0.01" blue="0.01" /></text> </element> <element name="text_uiu1"><text string="UNDO:"><color red="0.81" green="0.8" blue="0.79" /></text></element> <element name="text_uiu2a"> - <rect><color red="0.80" green="0.73" blue="0.63" /></rect> + <rect><color red="0.84" green="0.75" blue="0.50" /></rect> <text string=" <<"><color red="0.01" green="0.01" blue="0.01" /></text> </element> <element name="text_uiu2b"> - <rect><color red="0.80" green="0.73" blue="0.63" /></rect> + <rect><color red="0.84" green="0.75" blue="0.50" /></rect> <text string=" < "><color red="0.01" green="0.01" blue="0.01" /></text> </element> <element name="text_uiu2c"> - <rect><color red="0.80" green="0.73" blue="0.63" /></rect> + <rect><color red="0.84" green="0.75" blue="0.50" /></rect> <text string=" >"><color red="0.01" green="0.01" blue="0.01" /></text> </element> <element name="text_uiu2d"> - <rect><color red="0.80" green="0.73" blue="0.63" /></rect> + <rect><color red="0.84" green="0.75" blue="0.50" /></rect> <text string=" >>"><color red="0.01" green="0.01" blue="0.01" /></text> </element> <element name="text_uiu3a" defstate="0"> diff --git a/src/mame/layout/mephisto_polgar.lay b/src/mame/layout/mephisto_polgar.lay index 5a953ab4d17..e45d884e6b9 100644 --- a/src/mame/layout/mephisto_polgar.lay +++ b/src/mame/layout/mephisto_polgar.lay @@ -187,7 +187,7 @@ license:CC0 <!-- chessboard leds --> <repeat count="8"> - <param name="x" start="8.2" increment="10" /> + <param name="x" start="8.3" increment="10" /> <param name="la" start="0" increment="1" /> <param name="lb" start="8" increment="1" /> <param name="lc" start="16" increment="1" /> diff --git a/src/mame/layout/mephisto_risc.lay b/src/mame/layout/mephisto_risc.lay index 5a953ab4d17..e45d884e6b9 100644 --- a/src/mame/layout/mephisto_risc.lay +++ b/src/mame/layout/mephisto_risc.lay @@ -187,7 +187,7 @@ license:CC0 <!-- chessboard leds --> <repeat count="8"> - <param name="x" start="8.2" increment="10" /> + <param name="x" start="8.3" increment="10" /> <param name="la" start="0" increment="1" /> <param name="lb" start="8" increment="1" /> <param name="lc" start="16" increment="1" /> diff --git a/src/mame/machine/mmboard.cpp b/src/mame/machine/mmboard.cpp index abb794b8fcb..6e916aeae8b 100644 --- a/src/mame/machine/mmboard.cpp +++ b/src/mame/machine/mmboard.cpp @@ -76,6 +76,9 @@ void mephisto_board_device::device_start() { m_led_out.resolve(); + m_mux = 0xff; + m_led_data = 0; + save_item(NAME(m_mux)); save_item(NAME(m_led_data)); diff --git a/src/mame/machine/mmboard.h b/src/mame/machine/mmboard.h index 6c77b2109cb..3b4bd828e14 100644 --- a/src/mame/machine/mmboard.h +++ b/src/mame/machine/mmboard.h @@ -2,7 +2,7 @@ // copyright-holders:Sandro Ronco /********************************************************************** - Mephisto Sensors Board + Mephisto Modular Sensors Board *********************************************************************/ diff --git a/src/mame/video/mmdisplay1.cpp b/src/mame/video/mmdisplay1.cpp new file mode 100644 index 00000000000..09346fb2b67 --- /dev/null +++ b/src/mame/video/mmdisplay1.cpp @@ -0,0 +1,92 @@ +// license:BSD-3-Clause +// copyright-holders:hap +/********************************************************************** + +Hegener + Glaser Mephisto Display Module for modular chesscomputers, +the 1st version with a 4*7seg LCD. There is no LCD chip, it's handled +with 4 4015 dual shift registers. + +*********************************************************************/ + +#include "emu.h" + +#include "mmdisplay1.h" + + +DEFINE_DEVICE_TYPE(MEPHISTO_DISPLAY_MODULE1, mephisto_display1_device, "mdisplay1", "Mephisto Display Module 1") + +//------------------------------------------------- +// constructor +//------------------------------------------------- + +mephisto_display1_device::mephisto_display1_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : + device_t(mconfig, MEPHISTO_DISPLAY_MODULE1, tag, owner, clock), + m_digits(*this, "digit%u", 0U), + m_output_digit(*this) +{ } + + +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- + +void mephisto_display1_device::device_start() +{ + m_output_digit.resolve(); + if (m_output_digit.isnull()) + m_digits.resolve(); + + // register for savestates + save_item(NAME(m_strobe)); + save_item(NAME(m_digit_idx)); + save_item(NAME(m_digit_data)); +} + + +//------------------------------------------------- +// device_reset - device-specific reset +//------------------------------------------------- + +void mephisto_display1_device::device_reset() +{ + m_strobe = 0; + m_digit_idx = 0; + + // clear display + for (int i = 0; i < 4; i++) + m_digit_data[i] = 0; + update_lcd(); +} + + +//------------------------------------------------- +// I/O handlers +//------------------------------------------------- + +void mephisto_display1_device::update_lcd() +{ + for (int i = 0; i < 4; i++) + { + if (m_output_digit.isnull()) + m_digits[i] = m_digit_data[i]; + else + m_output_digit(i, m_digit_data[i]); + } +} + +void mephisto_display1_device::strobe_w(int state) +{ + state = state ? 1 : 0; + + // update lcd on rising edge + if (state && ~m_strobe) + update_lcd(); + + m_strobe = state; +} + +void mephisto_display1_device::data_w(u8 data) +{ + m_digit_data[m_digit_idx] = m_strobe ? ~data : data; + m_digit_idx = (m_digit_idx + 1) & 3; +} diff --git a/src/mame/video/mmdisplay1.h b/src/mame/video/mmdisplay1.h new file mode 100644 index 00000000000..4dab1527955 --- /dev/null +++ b/src/mame/video/mmdisplay1.h @@ -0,0 +1,45 @@ +// license:BSD-3-Clause +// copyright-holders:hap +/********************************************************************** + + Mephisto Modular Display Module (1st version) + +*********************************************************************/ + +#ifndef MAME_VIDEO_MMDISPLAY1_H +#define MAME_VIDEO_MMDISPLAY1_H + +#pragma once + + +class mephisto_display1_device : public device_t +{ +public: + mephisto_display1_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock = 0); + + // callback is optional, it will output to digitx when not used + auto output_digit() { return m_output_digit.bind(); } + + void strobe_w(int state); + void data_w(u8 data); + +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + +private: + output_finder<4> m_digits; + devcb_write8 m_output_digit; + + void update_lcd(); + + int m_strobe = 0; + u8 m_digit_idx = 0; + u8 m_digit_data[4] = { 0, 0, 0, 0 }; +}; + + +DECLARE_DEVICE_TYPE(MEPHISTO_DISPLAY_MODULE1, mephisto_display1_device) + +#endif // MAME_VIDEO_MMDISPLAY1_H diff --git a/src/mame/video/mmdisplay2.cpp b/src/mame/video/mmdisplay2.cpp index 2171c571680..0692c5d9c30 100644 --- a/src/mame/video/mmdisplay2.cpp +++ b/src/mame/video/mmdisplay2.cpp @@ -6,9 +6,6 @@ Hegener + Glaser Mephisto Display Module for modular chesscomputers, the 2nd version with 2 LCD lines. The 16/32bit module also includes 8KB NVRAM, but that part is emulated in the driver. -TODO: -- add mmdisplay1.cpp, the one with shift registers and 4-digit lcd - *********************************************************************/ #include "emu.h" @@ -16,13 +13,13 @@ TODO: #include "mmdisplay2.h" -DEFINE_DEVICE_TYPE(MEPHISTO_DISPLAY_MODULE2, mephisto_display_module2_device, "mdisplay2", "Mephisto Display Module 2") +DEFINE_DEVICE_TYPE(MEPHISTO_DISPLAY_MODULE2, mephisto_display2_device, "mdisplay2", "Mephisto Display Module 2") //------------------------------------------------- // constructor //------------------------------------------------- -mephisto_display_module2_device::mephisto_display_module2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) +mephisto_display2_device::mephisto_display2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, MEPHISTO_DISPLAY_MODULE2, tag, owner, clock) , m_lcd(*this, "hd44780") , m_dac(*this, "dac") @@ -34,7 +31,7 @@ mephisto_display_module2_device::mephisto_display_module2_device(const machine_c // device_add_mconfig //------------------------------------------------- -void mephisto_display_module2_device::device_add_mconfig(machine_config &config) +void mephisto_display2_device::device_add_mconfig(machine_config &config) { /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); @@ -45,25 +42,25 @@ void mephisto_display_module2_device::device_add_mconfig(machine_config &config) screen.set_screen_update("hd44780", FUNC(hd44780_device::screen_update)); screen.set_palette("palette"); - PALETTE(config, "palette", FUNC(mephisto_display_module2_device::lcd_palette), 3); + PALETTE(config, "palette", FUNC(mephisto_display2_device::lcd_palette), 3); HD44780(config, m_lcd, 0); m_lcd->set_lcd_size(2, 16); - m_lcd->set_pixel_update_cb(FUNC(mephisto_display_module2_device::lcd_pixel_update)); + m_lcd->set_pixel_update_cb(FUNC(mephisto_display2_device::lcd_pixel_update)); /* sound hardware */ SPEAKER(config, "speaker").front_center(); DAC_2BIT_BINARY_WEIGHTED_ONES_COMPLEMENT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25); } -void mephisto_display_module2_device::lcd_palette(palette_device &palette) const +void mephisto_display2_device::lcd_palette(palette_device &palette) const { palette.set_pen_color(0, rgb_t(0xff, 0xff, 0xff)); // background palette.set_pen_color(1, rgb_t(0x00, 0x00, 0x00)); // lcd pixel on palette.set_pen_color(2, rgb_t(0xe8, 0xe8, 0xe8)); // lcd pixel off } -HD44780_PIXEL_UPDATE(mephisto_display_module2_device::lcd_pixel_update) +HD44780_PIXEL_UPDATE(mephisto_display2_device::lcd_pixel_update) { if (x < 5 && y < 8 && line < 2 && pos < 16) bitmap.pix(line*9 + 1 + y, 1 + pos*6 + x) = state ? 1 : 2; @@ -74,7 +71,7 @@ HD44780_PIXEL_UPDATE(mephisto_display_module2_device::lcd_pixel_update) // device_start - device-specific startup //------------------------------------------------- -void mephisto_display_module2_device::device_start() +void mephisto_display2_device::device_start() { save_item(NAME(m_latch)); save_item(NAME(m_ctrl)); @@ -85,7 +82,7 @@ void mephisto_display_module2_device::device_start() // device_reset - device-specific reset //------------------------------------------------- -void mephisto_display_module2_device::device_reset() +void mephisto_display2_device::device_reset() { m_latch = 0; m_ctrl = 0; @@ -96,12 +93,12 @@ void mephisto_display_module2_device::device_reset() // I/O handlers //------------------------------------------------- -void mephisto_display_module2_device::latch_w(uint8_t data) +void mephisto_display2_device::latch_w(uint8_t data) { m_latch = data; } -void mephisto_display_module2_device::io_w(uint8_t data) +void mephisto_display2_device::io_w(uint8_t data) { if (BIT(data, 1) && !BIT(m_ctrl, 1)) m_lcd->write(BIT(data, 0), m_latch); diff --git a/src/mame/video/mmdisplay2.h b/src/mame/video/mmdisplay2.h index 03f16ea2e07..b4d188d898c 100644 --- a/src/mame/video/mmdisplay2.h +++ b/src/mame/video/mmdisplay2.h @@ -2,7 +2,7 @@ // copyright-holders:Sandro Ronco /********************************************************************** - Mephisto Display Module (2nd version) + Mephisto Modular Display Module (2nd version) *********************************************************************/ @@ -19,13 +19,13 @@ #include "speaker.h" -// ======================> mephisto_display_module2_device +// ======================> mephisto_display2_device -class mephisto_display_module2_device : public device_t +class mephisto_display2_device : public device_t { public: // construction/destruction - mephisto_display_module2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); + mephisto_display2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); hd44780_device *get() { return m_lcd; } @@ -46,12 +46,12 @@ private: void lcd_palette(palette_device &palette) const; HD44780_PIXEL_UPDATE(lcd_pixel_update); - uint8_t m_latch; - uint8_t m_ctrl; + uint8_t m_latch = 0; + uint8_t m_ctrl = 0; }; // device type definition -DECLARE_DEVICE_TYPE(MEPHISTO_DISPLAY_MODULE2, mephisto_display_module2_device) +DECLARE_DEVICE_TYPE(MEPHISTO_DISPLAY_MODULE2, mephisto_display2_device) #endif // MAME_VIDEO_MMDISPLAY2_H |