g627: fixed rota_115 and rota_101

by6803: fixed typo
by17, by35: slight improvement in display
This commit is contained in:
Robbbert 2014-08-02 10:57:37 +00:00
parent 18962d5cfb
commit f2163cd56b
4 changed files with 50 additions and 21 deletions

View File

@ -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;
}
}
}

View File

@ -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;
}
}
}

View File

@ -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:

View File

@ -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<cpu_device> m_maincpu;
private:
UINT8 m_seg[6];
UINT8 m_portc;
UINT8 m_motor;
bool m_type;
required_device<cpu_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 )