From f2163cd56bb6ec62e05b97f7bee6cee7ff98114e Mon Sep 17 00:00:00 2001 From: Robbbert Date: Sat, 2 Aug 2014 10:57:37 +0000 Subject: [PATCH] g627: fixed rota_115 and rota_101 by6803: fixed typo by17, by35: slight improvement in display --- src/mame/drivers/by17.c | 10 +++++++-- src/mame/drivers/by35.c | 15 ++++++++----- src/mame/drivers/by6803.c | 2 +- src/mame/drivers/g627.c | 44 +++++++++++++++++++++++++++------------ 4 files changed, 50 insertions(+), 21 deletions(-) diff --git a/src/mame/drivers/by17.c b/src/mame/drivers/by17.c index 4aed084b033..ccb60a71f00 100644 --- a/src/mame/drivers/by17.c +++ b/src/mame/drivers/by17.c @@ -65,6 +65,7 @@ private: UINT8 m_u10_b; UINT8 m_u11_a; UINT8 m_u11_b; + bool m_u10_ca2; bool m_u10_cb2; bool m_u10_timer; bool m_u11_timer; @@ -265,6 +266,7 @@ INPUT_CHANGED_MEMBER( by17_state::self_test ) WRITE_LINE_MEMBER( by17_state::u10_ca2_w ) { + m_u10_ca2 = state; } WRITE_LINE_MEMBER( by17_state::u10_cb2_w ) @@ -291,9 +293,12 @@ WRITE8_MEMBER( by17_state::u10_a_w ) m_segment = data >> 4; m_u10_a = data; m_u10 = (data & 15) | (BIT(m_u11_a, 0) << 4); - switch (m_u10) + + if (!m_u10_ca2) { - case 0x10: // wrong + switch (m_u10) + { + case 0x10: output_set_digit_value(m_digit, patterns[m_segment]); break; case 0x1d: @@ -310,6 +315,7 @@ WRITE8_MEMBER( by17_state::u10_a_w ) break; default: break; + } } } diff --git a/src/mame/drivers/by35.c b/src/mame/drivers/by35.c index df8fa6a3bde..beeea319258 100644 --- a/src/mame/drivers/by35.c +++ b/src/mame/drivers/by35.c @@ -62,6 +62,7 @@ private: UINT8 m_u10_b; UINT8 m_u11_a; UINT8 m_u11_b; + bool m_u10_ca2; bool m_u10_cb2; bool m_u10_timer; bool m_u11_timer; @@ -262,6 +263,7 @@ INPUT_CHANGED_MEMBER( by35_state::self_test ) WRITE_LINE_MEMBER( by35_state::u10_ca2_w ) { + m_u10_ca2 = state; } WRITE_LINE_MEMBER( by35_state::u10_cb2_w ) @@ -288,9 +290,11 @@ WRITE8_MEMBER( by35_state::u10_a_w ) m_segment = data >> 4; m_u10_a = data; m_u10 = (data & 15) | (BIT(m_u11_a, 0) << 4); - switch (m_u10) + if (!m_u10_ca2) { - case 0x10: // wrong + switch (m_u10) + { + case 0x10: output_set_digit_value(m_digit, patterns[m_segment]); break; case 0x1d: @@ -299,14 +303,15 @@ WRITE8_MEMBER( by35_state::u10_a_w ) case 0x1b: output_set_digit_value(16+m_digit, patterns[m_segment]); break; - case 0x07: + case 0x17: output_set_digit_value(24+m_digit, patterns[m_segment]); break; - case 0x0f: + case 0x1f: output_set_digit_value(32+m_digit, patterns[m_segment]); break; - default: + default://printf("%X ",m_u10); break; + } } } diff --git a/src/mame/drivers/by6803.c b/src/mame/drivers/by6803.c index e0b24497d1d..a2fb838f4ce 100644 --- a/src/mame/drivers/by6803.c +++ b/src/mame/drivers/by6803.c @@ -3,7 +3,7 @@ PINBALL Bally MPU A084-91786-AH06 (6803) -There are no dispswitches; everything is done with a numeric keypad located just inside the +There are no dipswitches; everything is done with a numeric keypad located just inside the door. The system responds with messages on the display. ToDo: diff --git a/src/mame/drivers/g627.c b/src/mame/drivers/g627.c index 3bb7c0dbcb5..fa00fabe040 100644 --- a/src/mame/drivers/g627.c +++ b/src/mame/drivers/g627.c @@ -1,6 +1,6 @@ /****************************************************************************** - Pinball + PINBALL Midway A084-91313-G627 A080-91313-G627 A082-91320-C000 @@ -48,25 +48,23 @@ class g627_state : public genpin_class { public: g627_state(const machine_config &mconfig, device_type type, const char *tag) - : genpin_class(mconfig, type, tag), - m_maincpu(*this, "maincpu") + : genpin_class(mconfig, type, tag) + , m_maincpu(*this, "maincpu") { } + DECLARE_DRIVER_INIT(v115); + DECLARE_DRIVER_INIT(v117); DECLARE_READ8_MEMBER(porta_r); DECLARE_READ8_MEMBER(portb_r); DECLARE_WRITE8_MEMBER(portc_w); DECLARE_WRITE8_MEMBER(disp_w); DECLARE_WRITE8_MEMBER(lamp_w); - -protected: - - // devices - required_device m_maincpu; - private: UINT8 m_seg[6]; UINT8 m_portc; UINT8 m_motor; + bool m_type; + required_device m_maincpu; }; @@ -165,6 +163,15 @@ static INPUT_PORTS_START( g627 ) PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("Test 8") PORT_CODE(KEYCODE_STOP) INPUT_PORTS_END +DRIVER_INIT_MEMBER( g627_state, v115 ) +{ + m_type = 0; +} + +DRIVER_INIT_MEMBER( g627_state, v117 ) +{ + m_type = 1; +} // inputs READ8_MEMBER( g627_state::porta_r ) @@ -197,7 +204,7 @@ READ8_MEMBER( g627_state::portb_r ) WRITE8_MEMBER( g627_state::portc_w ) { m_portc = data; - if (data < 6) + if ((m_type) && (data < 6)) { output_set_digit_value(data, m_seg[0]); output_set_digit_value(10 + data, m_seg[1]); @@ -205,6 +212,17 @@ WRITE8_MEMBER( g627_state::portc_w ) output_set_digit_value(30 + data, m_seg[3]); output_set_digit_value(50 + data, m_seg[5]); } + else + if ((!m_type) && (data)) + { + data--; + + output_set_digit_value(data, m_seg[0]); + output_set_digit_value(10 + data, m_seg[1]); + output_set_digit_value(20 + data, m_seg[2]); + output_set_digit_value(30 + data, m_seg[3]); + output_set_digit_value(50 + data, m_seg[5]); + } } // save segments until we can write the digits @@ -313,6 +331,6 @@ ROM_START(rota_101) ROM_LOAD("v101-c.bin", 0x1000, 0x0800, CRC(c7e85638) SHA1(b59805d8b558ab8f5ea5b4b9261e862afca4b9d3)) ROM_END -GAME(1978, rotation, 0, g627, g627, driver_device, 0, ROT0, "Midway", "Rotation VIII (v. 1.17)", GAME_MECHANICAL ) -GAME(1978, rota_115, rotation, g627, g627, driver_device, 0, ROT0, "Midway", "Rotation VIII (v. 1.15)", GAME_MECHANICAL ) -GAME(1978, rota_101, rotation, g627, g627, driver_device, 0, ROT0, "Midway", "Rotation VIII (v. 1.01)", GAME_MECHANICAL ) +GAME(1978, rotation, 0, g627, g627, g627_state, v117, ROT0, "Midway", "Rotation VIII (v. 1.17)", GAME_MECHANICAL ) +GAME(1978, rota_115, rotation, g627, g627, g627_state, v115, ROT0, "Midway", "Rotation VIII (v. 1.15)", GAME_MECHANICAL ) +GAME(1978, rota_101, rotation, g627, g627, g627_state, v115, ROT0, "Midway", "Rotation VIII (v. 1.01)", GAME_MECHANICAL )