diff --git a/src/mame/drivers/chessmst.cpp b/src/mame/drivers/chessmst.cpp
index ea89b98d652..8d1a35d793b 100644
--- a/src/mame/drivers/chessmst.cpp
+++ b/src/mame/drivers/chessmst.cpp
@@ -10,6 +10,7 @@ BTANB:
- chessmst corner leds flicker sometimes
TODO:
+- split driver? much difference between chessmst/chessmstdm
- chessmsta isn't working, needs a redump of u2616. Program differences are
minor so it seems to boot fine if you take 064/065 from chessmst, but will
probably have some problems.
@@ -96,6 +97,7 @@ private:
uint16_t m_matrix = 0;
uint8_t m_led_data = 0;
+ uint8_t m_led_data2 = 0;
uint8_t m_digit_matrix = 0;
int m_digit_dot = 0;
uint16_t m_digit_data = 0;
@@ -108,6 +110,7 @@ void chessmst_state::machine_start()
save_item(NAME(m_matrix));
save_item(NAME(m_led_data));
+ save_item(NAME(m_led_data2));
save_item(NAME(m_digit_matrix));
save_item(NAME(m_digit_dot));
save_item(NAME(m_digit_data));
@@ -219,7 +222,7 @@ void chessmst_state::digits_w(uint8_t data)
void chessmst_state::update_leds()
{
- m_led_pwm->matrix(m_matrix, m_led_data);
+ m_led_pwm->matrix(m_matrix, m_led_data | m_led_data2);
}
void chessmst_state::pio1_port_a_w(uint8_t data)
@@ -231,11 +234,9 @@ void chessmst_state::pio1_port_a_w(uint8_t data)
void chessmst_state::pio1_port_b_w(uint8_t data)
{
m_matrix = (m_matrix & 0xff) | ((data & 0x03)<<8);
+ m_led_data2 = ~data >> 1 & 6;
update_leds();
- m_direct_led[0] = BIT(~data, 2); // check
- m_direct_led[1] = BIT(~data, 3); // cm
-
m_speaker->level_w(BIT(data, 6));
}
@@ -311,7 +312,7 @@ void chessmst_state::chessmst(machine_config &config)
SENSORBOARD(config, m_board);
m_board->set_type(sensorboard_device::MAGNETS);
m_board->init_cb().set(m_board, FUNC(sensorboard_device::preset_chess));
- m_board->set_delay(attotime::from_msec(100));
+ m_board->set_delay(attotime::from_msec(150));
// video hardware
PWM_DISPLAY(config, m_led_pwm).set_size(10, 8);
diff --git a/src/mame/drivers/poly880.cpp b/src/mame/drivers/poly880.cpp
index 106f7815e62..2acb24aac44 100644
--- a/src/mame/drivers/poly880.cpp
+++ b/src/mame/drivers/poly880.cpp
@@ -371,8 +371,8 @@ void poly880_state::poly880s(machine_config &config)
ROM_START( poly880 )
ROM_REGION( 0x4000, "maincpu", ROMREGION_ERASE00 )
- ROM_LOAD( "poly880.i5", 0x0000, 0x0400, CRC(b1c571e8) SHA1(85bfe53d39d6690e79999a1e1240789497e72db0) )
- ROM_LOAD( "poly880.i6", 0x1000, 0x0400, CRC(9efddf5b) SHA1(6ffa2f80b2c6f8ec9e22834f739c82f9754272b8) )
+ ROM_LOAD( "bm039.i5", 0x0000, 0x0400, CRC(b1c571e8) SHA1(85bfe53d39d6690e79999a1e1240789497e72db0) )
+ ROM_LOAD( "bm040.i6", 0x1000, 0x0400, CRC(9efddf5b) SHA1(6ffa2f80b2c6f8ec9e22834f739c82f9754272b8) )
ROM_END
ROM_START( poly880s )
diff --git a/src/mame/layout/chessmst.lay b/src/mame/layout/chessmst.lay
index f6637984d61..f0fc6ac7ea5 100644
--- a/src/mame/layout/chessmst.lay
+++ b/src/mame/layout/chessmst.lay
@@ -22,29 +22,9 @@ license:CC0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -484,18 +464,13 @@ license:CC0
-
-
-
-
-
-
-
+
+
+
-