mirror of
https://github.com/holub/mame
synced 2025-06-18 18:28:57 +03:00
by6803.cpp: added a layout for Gen 2 machines.
This commit is contained in:
parent
e115a7d07c
commit
f02e37489f
@ -2,20 +2,25 @@
|
|||||||
// copyright-holders:Robbbert
|
// copyright-holders:Robbbert
|
||||||
/********************************************************************************************
|
/********************************************************************************************
|
||||||
|
|
||||||
PINBALL
|
PINBALL
|
||||||
Bally MPU A084-91786-AH06 (6803)
|
Bally MPU A084-91786-AH06 (6803)
|
||||||
|
|
||||||
There are no dipswitches; everything is done with a numeric keypad located just inside the
|
The characteristic 6803 pinball has 4x 7-digit displays lined up along the bottom of the
|
||||||
door. The system responds with messages on the display.
|
backbox. They show scores, moving messages, and anything else that's needed.
|
||||||
|
|
||||||
|
Schematic has a number of mistakes.
|
||||||
|
|
||||||
|
Status:
|
||||||
|
- 2nd gen games boot up and display, some can coin up, but cannot start due to balls missing
|
||||||
|
|
||||||
ToDo:
|
ToDo:
|
||||||
- Everything
|
- Outputs
|
||||||
- Fails PIA test
|
- 1st gen display
|
||||||
- Artwork
|
- Commas are missing from the display.
|
||||||
|
- Code has provision for a round LED, to be added to layout.
|
||||||
- Operator keypad
|
- Operator keypad
|
||||||
- Various sound boards
|
- Various sound boards
|
||||||
- Inputs, Solenoids vary per game
|
- Inputs, Solenoids vary per game
|
||||||
- Mechanical
|
|
||||||
|
|
||||||
*********************************************************************************************/
|
*********************************************************************************************/
|
||||||
|
|
||||||
@ -29,7 +34,7 @@ ToDo:
|
|||||||
#include "machine/6821pia.h"
|
#include "machine/6821pia.h"
|
||||||
#include "machine/timer.h"
|
#include "machine/timer.h"
|
||||||
|
|
||||||
//#include "by6803.lh"
|
#include "by6803.lh"
|
||||||
|
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
@ -43,12 +48,12 @@ public:
|
|||||||
, m_pia0(*this, "pia0")
|
, m_pia0(*this, "pia0")
|
||||||
, m_pia1(*this, "pia1")
|
, m_pia1(*this, "pia1")
|
||||||
, m_io_test(*this, "TEST")
|
, m_io_test(*this, "TEST")
|
||||||
, m_io_x(*this, "X%u", 0U)
|
, m_io_keyboard(*this, "X%d", 0U)
|
||||||
, m_digits(*this, "digit%u", 0U)
|
, m_digits(*this, "digit%d", 0U)
|
||||||
, m_leds(*this, "led%u", 0U)
|
, m_leds(*this, "led%d", 0U)
|
||||||
|
, m_io_outputs(*this, "out%d", 0U)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
void init_by6803();
|
|
||||||
void by6803(machine_config &config);
|
void by6803(machine_config &config);
|
||||||
|
|
||||||
DECLARE_INPUT_CHANGED_MEMBER(activity_test);
|
DECLARE_INPUT_CHANGED_MEMBER(activity_test);
|
||||||
@ -59,17 +64,17 @@ protected:
|
|||||||
virtual void machine_reset() override;
|
virtual void machine_reset() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
uint8_t port1_r();
|
u8 port1_r();
|
||||||
void port1_w(uint8_t data);
|
void port1_w(u8 data);
|
||||||
uint8_t port2_r();
|
u8 port2_r();
|
||||||
void port2_w(uint8_t data);
|
void port2_w(u8 data);
|
||||||
uint8_t pia0_a_r();
|
u8 pia0_a_r();
|
||||||
void pia0_a_w(uint8_t data);
|
void pia0_a_w(u8 data);
|
||||||
uint8_t pia0_b_r();
|
u8 pia0_b_r();
|
||||||
void pia0_b_w(uint8_t data);
|
void pia0_b_w(u8 data);
|
||||||
uint8_t pia1_a_r();
|
u8 pia1_a_r();
|
||||||
void pia1_a_w(uint8_t data);
|
void pia1_a_w(u8 data);
|
||||||
void pia1_b_w(uint8_t data);
|
void pia1_b_w(u8 data);
|
||||||
DECLARE_WRITE_LINE_MEMBER(pia0_ca2_w);
|
DECLARE_WRITE_LINE_MEMBER(pia0_ca2_w);
|
||||||
DECLARE_WRITE_LINE_MEMBER(pia0_cb2_w);
|
DECLARE_WRITE_LINE_MEMBER(pia0_cb2_w);
|
||||||
DECLARE_WRITE_LINE_MEMBER(pia1_cb2_w);
|
DECLARE_WRITE_LINE_MEMBER(pia1_cb2_w);
|
||||||
@ -77,22 +82,23 @@ private:
|
|||||||
|
|
||||||
void by6803_map(address_map &map);
|
void by6803_map(address_map &map);
|
||||||
|
|
||||||
uint8_t m_pia0_a;
|
u8 m_pia0_a = 0;
|
||||||
uint8_t m_pia0_b;
|
u8 m_pia0_b = 0;
|
||||||
uint8_t m_pia1_a;
|
u8 m_pia1_a = 0;
|
||||||
uint8_t m_pia1_b;
|
u8 m_pia1_b = 0;
|
||||||
bool m_pia0_cb2;
|
bool m_pia0_cb2 = 0;
|
||||||
bool m_pia0_timer;
|
bool m_pia0_timer = 0;
|
||||||
uint8_t m_port1, m_port2;
|
u8 m_port1, m_port2 = 0;
|
||||||
//uint8_t m_digit;
|
u8 m_digit = 0;
|
||||||
uint8_t m_segment;
|
u8 m_segment[2]{};
|
||||||
required_device<m6803_cpu_device> m_maincpu;
|
required_device<m6803_cpu_device> m_maincpu;
|
||||||
required_device<pia6821_device> m_pia0;
|
required_device<pia6821_device> m_pia0;
|
||||||
required_device<pia6821_device> m_pia1;
|
required_device<pia6821_device> m_pia1;
|
||||||
required_ioport m_io_test;
|
required_ioport m_io_test;
|
||||||
required_ioport_array<5> m_io_x;
|
required_ioport_array<6> m_io_keyboard;
|
||||||
output_finder<40> m_digits;
|
output_finder<40> m_digits;
|
||||||
output_finder<1> m_leds;
|
output_finder<1> m_leds;
|
||||||
|
output_finder<112> m_io_outputs; // 16 solenoids + 96 lamps
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -110,52 +116,65 @@ static INPUT_PORTS_START( by6803 )
|
|||||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Activity") PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, by6803_state, activity_test, 0)
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Activity") PORT_IMPULSE(1) PORT_CHANGED_MEMBER(DEVICE_SELF, by6803_state, activity_test, 0)
|
||||||
|
|
||||||
PORT_START("X0")
|
PORT_START("X0")
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER )
|
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) PORT_NAME("INP01")
|
||||||
PORT_BIT( 0x0a, IP_ACTIVE_HIGH, IPT_UNUSED )
|
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_B) PORT_NAME("INP02")
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START2 )
|
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_C) PORT_NAME("INP03")
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER )
|
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) PORT_NAME("INP04")
|
||||||
|
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_NAME("INP05")
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 )
|
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 )
|
||||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_TILT )
|
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_NAME("INP07")
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Outhole") PORT_CODE(KEYCODE_X)
|
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_X) PORT_NAME("Outhole")
|
||||||
|
|
||||||
PORT_START("X1")
|
PORT_START("X1")
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 )
|
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 )
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 )
|
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 )
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 )
|
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 )
|
||||||
PORT_BIT( 0x38, IP_ACTIVE_HIGH, IPT_UNUSED )
|
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_G) PORT_NAME("INP12")
|
||||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER )
|
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_H) PORT_NAME("INP13")
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_TILT1 ) PORT_NAME("Slam Tilt")
|
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_9) PORT_NAME("Tilt")
|
||||||
|
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_0) PORT_NAME("Slam Tilt")
|
||||||
|
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_I) PORT_NAME("INP16")
|
||||||
|
|
||||||
// from here, vary per game
|
// from here, vary per game
|
||||||
PORT_START("X2")
|
PORT_START("X2")
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_A)
|
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_J) PORT_NAME("INP17")
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_S)
|
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_K) PORT_NAME("INP18")
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_D)
|
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_L) PORT_NAME("INP19")
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_F)
|
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_M) PORT_NAME("INP20")
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_G)
|
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_N) PORT_NAME("INP21")
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_H)
|
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_O) PORT_NAME("INP22")
|
||||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_J)
|
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_P) PORT_NAME("INP23")
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_K)
|
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_NAME("INP24")
|
||||||
|
|
||||||
PORT_START("X3")
|
PORT_START("X3")
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Q)
|
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("INP25")
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_W)
|
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("INP26")
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_E)
|
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("INP27")
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_R)
|
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_U) PORT_NAME("INP28")
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Y)
|
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) PORT_NAME("INP29")
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_U)
|
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("INP30")
|
||||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_I)
|
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) PORT_NAME("INP31")
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_O)
|
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) PORT_NAME("INP32")
|
||||||
|
|
||||||
PORT_START("X4")
|
PORT_START("X4")
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_Z)
|
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_COMMA) PORT_NAME("INP33")
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_C)
|
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_STOP) PORT_NAME("INP34")
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_V)
|
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH) PORT_NAME("INP35")
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_B)
|
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_COLON) PORT_NAME("INP36")
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_N)
|
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_QUOTE) PORT_NAME("INP37")
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_M)
|
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("INP38")
|
||||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA)
|
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("INP39")
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_STOP)
|
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_NAME("INP40")
|
||||||
|
|
||||||
|
PORT_START("X5")
|
||||||
|
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_NAME("INP41")
|
||||||
|
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("INP42")
|
||||||
|
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("INP43")
|
||||||
|
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("INP44")
|
||||||
|
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_UP) PORT_NAME("INP45")
|
||||||
|
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_LEFT) PORT_NAME("INP46")
|
||||||
|
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("INP47")
|
||||||
|
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_DOWN) PORT_NAME("INP48")
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
INPUT_CHANGED_MEMBER( by6803_state::activity_test )
|
INPUT_CHANGED_MEMBER( by6803_state::activity_test )
|
||||||
@ -169,18 +188,18 @@ INPUT_CHANGED_MEMBER( by6803_state::self_test )
|
|||||||
m_pia0->ca1_w(newval);
|
m_pia0->ca1_w(newval);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t by6803_state::port1_r()
|
u8 by6803_state::port1_r()
|
||||||
{
|
{
|
||||||
return m_port1;
|
return m_port1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// P10-17 - goes to peripheral bus
|
// P10-17 - goes to peripheral bus
|
||||||
void by6803_state::port1_w(uint8_t data)
|
void by6803_state::port1_w(u8 data)
|
||||||
{
|
{
|
||||||
m_port1 = data; // sound data = P10,11,12,13,24; P14-17 unknown
|
m_port1 = data; // sound data = P10,11,12,13,24; P14-17 unknown
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t by6803_state::port2_r()
|
u8 by6803_state::port2_r()
|
||||||
{
|
{
|
||||||
return m_port2;
|
return m_port2;
|
||||||
}
|
}
|
||||||
@ -190,7 +209,7 @@ uint8_t by6803_state::port2_r()
|
|||||||
// P22 - LED, connects to reset circuit, could be a watchdog
|
// P22 - LED, connects to reset circuit, could be a watchdog
|
||||||
// P23 - high
|
// P23 - high
|
||||||
// P24 - sound strobe
|
// P24 - sound strobe
|
||||||
void by6803_state::port2_w(uint8_t data)
|
void by6803_state::port2_w(u8 data)
|
||||||
{
|
{
|
||||||
m_port2 = data;
|
m_port2 = data;
|
||||||
m_leds[0] = BIT(data, 2); // P22 drives LED
|
m_leds[0] = BIT(data, 2); // P22 drives LED
|
||||||
@ -199,19 +218,29 @@ void by6803_state::port2_w(uint8_t data)
|
|||||||
// display latch strobes; display blanking
|
// display latch strobes; display blanking
|
||||||
WRITE_LINE_MEMBER( by6803_state::pia0_ca2_w )
|
WRITE_LINE_MEMBER( by6803_state::pia0_ca2_w )
|
||||||
{
|
{
|
||||||
|
//printf("CA02=%X ",state);
|
||||||
|
|
||||||
|
if (state)
|
||||||
|
{
|
||||||
|
// comma info is available in m_pia1_a at this time.
|
||||||
|
m_digits[m_digit] = m_segment[0];
|
||||||
|
m_digits[m_digit+16] = m_segment[1];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// lamp strobe 1 when high
|
// lamp strobe 1 when high
|
||||||
WRITE_LINE_MEMBER( by6803_state::pia0_cb2_w )
|
WRITE_LINE_MEMBER( by6803_state::pia0_cb2_w )
|
||||||
{
|
{
|
||||||
|
//printf("CB02=%X ",state);
|
||||||
}
|
}
|
||||||
|
|
||||||
// sol bank select (0 to enable sol selection)
|
// sol bank select (0 to enable sol selection)
|
||||||
WRITE_LINE_MEMBER( by6803_state::pia1_cb2_w )
|
WRITE_LINE_MEMBER( by6803_state::pia1_cb2_w )
|
||||||
{
|
{
|
||||||
|
//printf("CB12=%X ",state);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t by6803_state::pia0_a_r()
|
u8 by6803_state::pia0_a_r()
|
||||||
{
|
{
|
||||||
return m_pia0_a;
|
return m_pia0_a;
|
||||||
}
|
}
|
||||||
@ -221,65 +250,51 @@ uint8_t by6803_state::pia0_a_r()
|
|||||||
// d0-3 lamp rows & d5=0 & pia0:cb2=1 (1st lamp bank)
|
// d0-3 lamp rows & d5=0 & pia0:cb2=1 (1st lamp bank)
|
||||||
// d0-3 lamp rows & d6=0 & pia0:cb2=1 (2nd lamp bank)
|
// d0-3 lamp rows & d6=0 & pia0:cb2=1 (2nd lamp bank)
|
||||||
// d0-3 lamp rows & d7=0 & pia0:cb2=1 (3rd lamp bank)
|
// d0-3 lamp rows & d7=0 & pia0:cb2=1 (3rd lamp bank)
|
||||||
void by6803_state::pia0_a_w(uint8_t data)
|
void by6803_state::pia0_a_w(u8 data)
|
||||||
{
|
{
|
||||||
m_pia0_a = data;
|
m_pia0_a = data;
|
||||||
#if 0
|
if ((data & 15)==14)
|
||||||
// This is all wrong
|
|
||||||
switch (m_pia0_a)
|
|
||||||
{
|
{
|
||||||
case 0x10: // wrong
|
m_digit = data >> 4;
|
||||||
m_digits[m_digit] = m_segment;
|
m_segment[0] = bitswap<8>(m_pia1_a, 0, 7, 6, 5, 4, 3, 2, 1) ^ 0x80;
|
||||||
break;
|
}
|
||||||
case 0x1d:
|
else
|
||||||
m_digits[8+m_digit] = m_segment;
|
if ((data & 15)==13)
|
||||||
break;
|
{
|
||||||
case 0x1b:
|
m_segment[1] = bitswap<8>(m_pia1_a, 0, 7, 6, 5, 4, 3, 2, 1) ^ 0x80;
|
||||||
m_digits[16+m_digit] = m_segment;
|
|
||||||
break;
|
|
||||||
case 0x07:
|
|
||||||
m_digits[24+m_digit] = m_segment;
|
|
||||||
break;
|
|
||||||
case 0x0f:
|
|
||||||
m_digits[32+m_digit] m_segment;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// switch returns
|
// switch returns
|
||||||
uint8_t by6803_state::pia0_b_r()
|
u8 by6803_state::pia0_b_r()
|
||||||
{
|
{
|
||||||
uint8_t data = 0;
|
u8 data = 0;
|
||||||
|
|
||||||
for (unsigned i = 0; m_io_x.size() > i; ++i)
|
for (u8 i = 0; i < 6; i++)
|
||||||
if (BIT(m_pia0_a, i))
|
if (BIT(m_pia0_a, i))
|
||||||
data |= m_io_x[i]->read();
|
data |= m_io_keyboard[i]->read();
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
void by6803_state::pia0_b_w(uint8_t data)
|
void by6803_state::pia0_b_w(u8 data)
|
||||||
{
|
{
|
||||||
m_pia0_b = data;
|
m_pia0_b = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t by6803_state::pia1_a_r()
|
u8 by6803_state::pia1_a_r()
|
||||||
{
|
{
|
||||||
return m_pia1_a;
|
return m_pia1_a;
|
||||||
}
|
}
|
||||||
|
|
||||||
// segment data; d0 & pia0:ca2 = comma; passed to digits when PA0? is high (assume they mean pia0:pa0)
|
// segment data; d0 & pia0:ca2 = comma; passed to digits when PA0? is high (assume they mean pia0:pa0)
|
||||||
void by6803_state::pia1_a_w(uint8_t data)
|
void by6803_state::pia1_a_w(u8 data)
|
||||||
{
|
{
|
||||||
m_pia1_a = data;
|
m_pia1_a = data;
|
||||||
m_segment = data >> 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// solenoids, activated when pia1:cb2 is low
|
// solenoids, activated when pia1:cb2 is low
|
||||||
void by6803_state::pia1_b_w(uint8_t data)
|
void by6803_state::pia1_b_w(u8 data)
|
||||||
{
|
{
|
||||||
m_pia1_b = data;
|
m_pia1_b = data;
|
||||||
switch (data & 15)
|
switch (data & 15)
|
||||||
@ -333,12 +348,29 @@ void by6803_state::pia1_b_w(uint8_t data)
|
|||||||
|
|
||||||
void by6803_state::machine_start()
|
void by6803_state::machine_start()
|
||||||
{
|
{
|
||||||
|
genpin_class::machine_start();
|
||||||
|
m_io_outputs.resolve();
|
||||||
m_digits.resolve();
|
m_digits.resolve();
|
||||||
m_leds.resolve();
|
m_leds.resolve();
|
||||||
|
|
||||||
|
save_item(NAME(m_pia0_a));
|
||||||
|
save_item(NAME(m_pia0_b));
|
||||||
|
save_item(NAME(m_pia1_a));
|
||||||
|
save_item(NAME(m_pia1_b));
|
||||||
|
save_item(NAME(m_pia0_cb2));
|
||||||
|
save_item(NAME(m_pia0_timer));
|
||||||
|
save_item(NAME(m_port1));
|
||||||
|
save_item(NAME(m_port2));
|
||||||
|
save_item(NAME(m_digit));
|
||||||
|
save_item(NAME(m_segment));
|
||||||
}
|
}
|
||||||
|
|
||||||
void by6803_state::machine_reset()
|
void by6803_state::machine_reset()
|
||||||
{
|
{
|
||||||
|
genpin_class::machine_reset();
|
||||||
|
for (u8 i = 0; i < m_io_outputs.size(); i++)
|
||||||
|
m_io_outputs[i] = 0;
|
||||||
|
|
||||||
m_pia0_a = 0;
|
m_pia0_a = 0;
|
||||||
m_pia0_b = 0;
|
m_pia0_b = 0;
|
||||||
m_pia0_cb2 = 0;
|
m_pia0_cb2 = 0;
|
||||||
@ -347,10 +379,6 @@ void by6803_state::machine_reset()
|
|||||||
m_port2 = 2+8;
|
m_port2 = 2+8;
|
||||||
}
|
}
|
||||||
|
|
||||||
void by6803_state::init_by6803()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
// zero-cross detection
|
// zero-cross detection
|
||||||
TIMER_DEVICE_CALLBACK_MEMBER( by6803_state::pia0_timer )
|
TIMER_DEVICE_CALLBACK_MEMBER( by6803_state::pia0_timer )
|
||||||
{
|
{
|
||||||
@ -383,7 +411,7 @@ void by6803_state::by6803(machine_config &config)
|
|||||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||||
|
|
||||||
/* Video */
|
/* Video */
|
||||||
//config.set_default_layout(layout_by6803);
|
config.set_default_layout(layout_by6803);
|
||||||
|
|
||||||
/* Sound */
|
/* Sound */
|
||||||
genpin_audio(config);
|
genpin_audio(config);
|
||||||
@ -429,7 +457,7 @@ ROM_START(atlantip)
|
|||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
/*------------------------------------
|
/*------------------------------------
|
||||||
/ Beat the Clock #OC70
|
/ Beat the Clock #0C70
|
||||||
/------------------------------------*/
|
/------------------------------------*/
|
||||||
ROM_START(beatclck)
|
ROM_START(beatclck)
|
||||||
ROM_REGION(0x10000, "maincpu", 0)
|
ROM_REGION(0x10000, "maincpu", 0)
|
||||||
@ -456,7 +484,7 @@ ROM_END
|
|||||||
/------------------------------------*/
|
/------------------------------------*/
|
||||||
|
|
||||||
/*------------------------------------
|
/*------------------------------------
|
||||||
/ Black Belt #OE52
|
/ Black Belt #0E52
|
||||||
/------------------------------------*/
|
/------------------------------------*/
|
||||||
ROM_START(blackblt)
|
ROM_START(blackblt)
|
||||||
ROM_REGION(0x10000, "maincpu", 0)
|
ROM_REGION(0x10000, "maincpu", 0)
|
||||||
@ -478,7 +506,7 @@ ROM_START(blackblt2)
|
|||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
/*------------------------------------
|
/*------------------------------------
|
||||||
/ Blackwater 100 #OH07
|
/ Blackwater 100 #0H07
|
||||||
/------------------------------------*/
|
/------------------------------------*/
|
||||||
ROM_START(black100)
|
ROM_START(black100)
|
||||||
ROM_REGION(0x10000, "maincpu", 0)
|
ROM_REGION(0x10000, "maincpu", 0)
|
||||||
@ -503,7 +531,7 @@ ROM_START(black100s)
|
|||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
/*------------------------------------
|
/*------------------------------------
|
||||||
/ City Slicker #OE79
|
/ City Slicker #0E79
|
||||||
/------------------------------------*/
|
/------------------------------------*/
|
||||||
ROM_START(cityslck)
|
ROM_START(cityslck)
|
||||||
ROM_REGION(0x10000, "maincpu", 0)
|
ROM_REGION(0x10000, "maincpu", 0)
|
||||||
@ -514,7 +542,7 @@ ROM_START(cityslck)
|
|||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
/*------------------------------------
|
/*------------------------------------
|
||||||
/ Dungeons & Dragons #OH06
|
/ Dungeons & Dragons #0H06
|
||||||
/------------------------------------*/
|
/------------------------------------*/
|
||||||
ROM_START(dungdrag)
|
ROM_START(dungdrag)
|
||||||
ROM_REGION(0x10000, "maincpu", 0)
|
ROM_REGION(0x10000, "maincpu", 0)
|
||||||
@ -528,7 +556,7 @@ ROM_START(dungdrag)
|
|||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
/*------------------------------------
|
/*------------------------------------
|
||||||
/ Eight Ball Champ #OB38
|
/ Eight Ball Champ #0B38
|
||||||
/------------------------------------*/
|
/------------------------------------*/
|
||||||
ROM_START(eballchp)
|
ROM_START(eballchp)
|
||||||
ROM_REGION(0x10000, "maincpu", 0)
|
ROM_REGION(0x10000, "maincpu", 0)
|
||||||
@ -539,20 +567,8 @@ ROM_START(eballchp)
|
|||||||
ROM_LOAD("u5_snd.532", 0xf000, 0x1000, CRC(655441df) SHA1(9da5578856ded3dcdafed67679eb4c4134dc9f81))
|
ROM_LOAD("u5_snd.532", 0xf000, 0x1000, CRC(655441df) SHA1(9da5578856ded3dcdafed67679eb4c4134dc9f81))
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
#ifdef MISSING_GAME // same as above but with CPU2 roms as NO_DUMP
|
|
||||||
ROM_START(eballch2)
|
|
||||||
ROM_REGION(0x10000, "maincpu", 0)
|
|
||||||
ROM_LOAD( "u3_cpu.128", 0xc000, 0x4000, CRC(025f3008) SHA1(25d310f169b92ce6b348330816ddc3b5710e57da))
|
|
||||||
ROM_REGION(0x10000, "cpu2", 0)
|
|
||||||
ROM_LOAD("ebcu4.snd", 0x8000, 0x2000, NO_DUMP)
|
|
||||||
ROM_RELOAD(0xa000, 0x2000)
|
|
||||||
ROM_LOAD("ebcu3.snd", 0xc000, 0x2000, NO_DUMP)
|
|
||||||
ROM_RELOAD(0xe000, 0x2000)
|
|
||||||
ROM_END
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*------------------------------------------------
|
/*------------------------------------------------
|
||||||
/ Escape from the Lost World #OH05
|
/ Escape from the Lost World #0H05
|
||||||
/-----------------------------------------------*/
|
/-----------------------------------------------*/
|
||||||
ROM_START(esclwrld)
|
ROM_START(esclwrld)
|
||||||
ROM_REGION(0x10000, "maincpu", 0)
|
ROM_REGION(0x10000, "maincpu", 0)
|
||||||
@ -576,7 +592,7 @@ ROM_START(esclwrldg)
|
|||||||
ROM_LOAD16_BYTE("u13.512", 0x20000, 0x10000, CRC(b056842e) SHA1(7c67e5d69235a784b9c38cb31302d206278a3814))
|
ROM_LOAD16_BYTE("u13.512", 0x20000, 0x10000, CRC(b056842e) SHA1(7c67e5d69235a784b9c38cb31302d206278a3814))
|
||||||
ROM_END
|
ROM_END
|
||||||
/*------------------------------------
|
/*------------------------------------
|
||||||
/ Hardbody #OE94
|
/ Hardbody #0E94
|
||||||
/------------------------------------*/
|
/------------------------------------*/
|
||||||
ROM_START(hardbody)
|
ROM_START(hardbody)
|
||||||
ROM_REGION(0x10000, "maincpu", 0)
|
ROM_REGION(0x10000, "maincpu", 0)
|
||||||
@ -603,7 +619,7 @@ ROM_START(hardbodyg)
|
|||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
/*-----------------------------------------
|
/*-----------------------------------------
|
||||||
/ Heavy Metal Meltdown #OH03
|
/ Heavy Metal Meltdown #0H03
|
||||||
/-----------------------------------------*/
|
/-----------------------------------------*/
|
||||||
ROM_START(hvymetap)
|
ROM_START(hvymetap)
|
||||||
ROM_REGION(0x10000, "maincpu", 0)
|
ROM_REGION(0x10000, "maincpu", 0)
|
||||||
@ -624,7 +640,7 @@ ROM_START(hvymetapg)
|
|||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
/*------------------------------------
|
/*------------------------------------
|
||||||
/ Lady Luck #OE34
|
/ Lady Luck #0E34
|
||||||
/------------------------------------*/
|
/------------------------------------*/
|
||||||
ROM_START(ladyluck)
|
ROM_START(ladyluck)
|
||||||
ROM_REGION(0x10000, "maincpu", 0)
|
ROM_REGION(0x10000, "maincpu", 0)
|
||||||
@ -637,7 +653,7 @@ ROM_START(ladyluck)
|
|||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
/*--------------------------------
|
/*--------------------------------
|
||||||
/ MotorDome #OE14
|
/ MotorDome #0E14
|
||||||
/-------------------------------*/
|
/-------------------------------*/
|
||||||
ROM_START(motrdome)
|
ROM_START(motrdome)
|
||||||
ROM_REGION(0x10000, "maincpu", 0)
|
ROM_REGION(0x10000, "maincpu", 0)
|
||||||
@ -664,7 +680,7 @@ ROM_START(motrdomeg) // German version claims to be game #E69
|
|||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
/*--------------------------------
|
/*--------------------------------
|
||||||
/ Party Animal #OH01
|
/ Party Animal #0H01
|
||||||
/-------------------------------*/
|
/-------------------------------*/
|
||||||
ROM_START(prtyanim)
|
ROM_START(prtyanim)
|
||||||
ROM_REGION(0x10000, "maincpu", 0)
|
ROM_REGION(0x10000, "maincpu", 0)
|
||||||
@ -689,7 +705,7 @@ ROM_START(prtyanimg)
|
|||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
/*------------------------------------
|
/*------------------------------------
|
||||||
/ Special Force #OE47 - 1st Game to use Sounds Deluxe Sound Hardware
|
/ Special Force #0E47 - 1st Game to use Sounds Deluxe Sound Hardware
|
||||||
/------------------------------------*/
|
/------------------------------------*/
|
||||||
ROM_START(specforc)
|
ROM_START(specforc)
|
||||||
ROM_REGION(0x10000, "maincpu", 0)
|
ROM_REGION(0x10000, "maincpu", 0)
|
||||||
@ -703,7 +719,7 @@ ROM_START(specforc)
|
|||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
/*------------------------------------
|
/*------------------------------------
|
||||||
/ Strange Science #OE35
|
/ Strange Science #0E35
|
||||||
/------------------------------------*/
|
/------------------------------------*/
|
||||||
|
|
||||||
ROM_START(strngsci)
|
ROM_START(strngsci)
|
||||||
@ -764,32 +780,35 @@ ROM_END
|
|||||||
} // anonymous namespace
|
} // anonymous namespace
|
||||||
|
|
||||||
|
|
||||||
GAME( 1985, eballchp, 0, by6803, by6803, by6803_state, init_by6803, ROT0, "Bally", "Eight Ball Champ", MACHINE_IS_SKELETON_MECHANICAL)
|
// 1st gen
|
||||||
GAME( 1985, beatclck, 0, by6803, by6803, by6803_state, init_by6803, ROT0, "Bally", "Beat the Clock", MACHINE_IS_SKELETON_MECHANICAL)
|
GAME( 1985, eballchp, 0, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Eight Ball Champ", MACHINE_IS_SKELETON_MECHANICAL )
|
||||||
GAME( 1985, beatclck2, beatclck, by6803, by6803, by6803_state, init_by6803, ROT0, "Bally", "Beat the Clock (with flasher support)", MACHINE_IS_SKELETON_MECHANICAL)
|
GAME( 1985, beatclck, 0, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Beat the Clock", MACHINE_IS_SKELETON_MECHANICAL )
|
||||||
GAME( 1986, motrdome, 0, by6803, by6803, by6803_state, init_by6803, ROT0, "Bally", "MotorDome (rev. D)", MACHINE_IS_SKELETON_MECHANICAL)
|
GAME( 1985, beatclck2, beatclck, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Beat the Clock (with flasher support)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||||
GAME( 1986, motrdomeb, motrdome, by6803, by6803, by6803_state, init_by6803, ROT0, "Bally", "MotorDome (rev. B)", MACHINE_IS_SKELETON_MECHANICAL)
|
GAME( 1986, ladyluck, 0, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Lady Luck", MACHINE_IS_SKELETON_MECHANICAL )
|
||||||
GAME( 1986, motrdomeg, motrdome, by6803, by6803, by6803_state, init_by6803, ROT0, "Bally", "MotorDome (German rev. B)", MACHINE_IS_SKELETON_MECHANICAL)
|
|
||||||
GAME( 1986, ladyluck, 0, by6803, by6803, by6803_state, init_by6803, ROT0, "Bally", "Lady Luck", MACHINE_IS_SKELETON_MECHANICAL)
|
// 2nd gen
|
||||||
GAME( 1986, strngsci, 0, by6803, by6803, by6803_state, init_by6803, ROT0, "Bally", "Strange Science (Rev C)", MACHINE_IS_SKELETON_MECHANICAL)
|
GAME( 1986, motrdome, 0, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "MotorDome (rev. D)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||||
GAME( 1986, strngscia, strngsci, by6803, by6803, by6803_state, init_by6803, ROT0, "Bally", "Strange Science (Rev A)", MACHINE_IS_SKELETON_MECHANICAL)
|
GAME( 1986, motrdomeb, motrdome, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "MotorDome (rev. B)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||||
GAME( 1986, strngscig, strngsci, by6803, by6803, by6803_state, init_by6803, ROT0, "Bally", "Strange Science (German, Rev A)", MACHINE_IS_SKELETON_MECHANICAL)
|
GAME( 1986, motrdomeg, motrdome, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "MotorDome (German rev. B)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||||
GAME( 1986, specforc, 0, by6803, by6803, by6803_state, init_by6803, ROT0, "Bally", "Special Force", MACHINE_IS_SKELETON_MECHANICAL)
|
GAME( 1986, strngsci, 0, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Strange Science (Rev C)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||||
GAME( 1986, blackblt, 0, by6803, by6803, by6803_state, init_by6803, ROT0, "Bally", "Black Belt", MACHINE_IS_SKELETON_MECHANICAL)
|
GAME( 1986, strngscia, strngsci, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Strange Science (Rev A)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||||
GAME( 1986, blackblt2, blackblt, by6803, by6803, by6803_state, init_by6803, ROT0, "Bally", "Black Belt (Squawk and Talk)", MACHINE_IS_SKELETON_MECHANICAL)
|
GAME( 1986, strngscig, strngsci, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Strange Science (German, Rev A)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||||
GAME( 1987, cityslck, 0, by6803, by6803, by6803_state, init_by6803, ROT0, "Bally", "City Slicker", MACHINE_IS_SKELETON_MECHANICAL)
|
GAME( 1986, specforc, 0, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Special Force", MACHINE_IS_SKELETON_MECHANICAL )
|
||||||
GAME( 1987, hardbody, 0, by6803, by6803, by6803_state, init_by6803, ROT0, "Bally", "Hardbody (rev. D)", MACHINE_IS_SKELETON_MECHANICAL)
|
GAME( 1986, blackblt, 0, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Black Belt", MACHINE_IS_SKELETON_MECHANICAL )
|
||||||
GAME( 1987, hardbodyc, hardbody, by6803, by6803, by6803_state, init_by6803, ROT0, "Bally", "Hardbody (rev. C)", MACHINE_IS_SKELETON_MECHANICAL)
|
GAME( 1986, blackblt2, blackblt, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Black Belt (Squawk and Talk)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||||
GAME( 1987, hardbodyg, hardbody, by6803, by6803, by6803_state, init_by6803, ROT0, "Bally", "Hardbody (German rev. B)", MACHINE_IS_SKELETON_MECHANICAL)
|
GAME( 1987, cityslck, 0, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "City Slicker", MACHINE_IS_SKELETON_MECHANICAL )
|
||||||
GAME( 1987, prtyanim, 0, by6803, by6803, by6803_state, init_by6803, ROT0, "Bally", "Party Animal", MACHINE_IS_SKELETON_MECHANICAL)
|
GAME( 1987, hardbody, 0, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Hardbody (rev. D)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||||
GAME( 1987, prtyanimg, prtyanim, by6803, by6803, by6803_state, init_by6803, ROT0, "Bally", "Party Animal (German)", MACHINE_IS_SKELETON_MECHANICAL)
|
GAME( 1987, hardbodyc, hardbody, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Hardbody (rev. C)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||||
GAME( 1987, hvymetap, 0, by6803, by6803, by6803_state, init_by6803, ROT0, "Bally", "Heavy Metal Meltdown", MACHINE_IS_SKELETON_MECHANICAL)
|
GAME( 1987, hardbodyg, hardbody, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Hardbody (German rev. B)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||||
GAME( 1987, hvymetapg, hvymetap, by6803, by6803, by6803_state, init_by6803, ROT0, "Bally", "Heavy Metal Meltdown (German)", MACHINE_IS_SKELETON_MECHANICAL)
|
GAME( 1987, prtyanim, 0, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Party Animal", MACHINE_IS_SKELETON_MECHANICAL )
|
||||||
GAME( 1987, esclwrld, 0, by6803, by6803, by6803_state, init_by6803, ROT0, "Bally", "Escape from the Lost World", MACHINE_IS_SKELETON_MECHANICAL)
|
GAME( 1987, prtyanimg, prtyanim, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Party Animal (German)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||||
GAME( 1987, esclwrldg, esclwrld, by6803, by6803, by6803_state, init_by6803, ROT0, "Bally", "Escape from the Lost World (German)", MACHINE_IS_SKELETON_MECHANICAL)
|
GAME( 1987, hvymetap, 0, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Heavy Metal Meltdown", MACHINE_IS_SKELETON_MECHANICAL )
|
||||||
GAME( 1987, dungdrag, 0, by6803, by6803, by6803_state, init_by6803, ROT0, "Bally", "Dungeons & Dragons", MACHINE_IS_SKELETON_MECHANICAL)
|
GAME( 1987, hvymetapg, hvymetap, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Heavy Metal Meltdown (German)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||||
GAME( 1988, black100, 0, by6803, by6803, by6803_state, init_by6803, ROT0, "Bally", "Blackwater 100", MACHINE_IS_SKELETON_MECHANICAL)
|
GAME( 1987, esclwrld, 0, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Escape from the Lost World", MACHINE_IS_SKELETON_MECHANICAL )
|
||||||
GAME( 1988, black100s, black100, by6803, by6803, by6803_state, init_by6803, ROT0, "Bally", "Blackwater 100 (Single Ball Play)", MACHINE_IS_SKELETON_MECHANICAL)
|
GAME( 1987, esclwrldg, esclwrld, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Escape from the Lost World (German)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||||
GAME( 1988, trucksp3, 0, by6803, by6803, by6803_state, init_by6803, ROT0, "Bally", "Truck Stop (P-3)", MACHINE_IS_SKELETON_MECHANICAL)
|
GAME( 1987, dungdrag, 0, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Dungeons & Dragons", MACHINE_IS_SKELETON_MECHANICAL )
|
||||||
GAME( 1988, trucksp2, trucksp3, by6803, by6803, by6803_state, init_by6803, ROT0, "Bally", "Truck Stop (P-2)", MACHINE_IS_SKELETON_MECHANICAL)
|
GAME( 1988, black100, 0, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Blackwater 100", MACHINE_IS_SKELETON_MECHANICAL )
|
||||||
GAME( 1989, atlantip, 0, by6803, by6803, by6803_state, init_by6803, ROT0, "Bally", "Atlantis", MACHINE_IS_SKELETON_MECHANICAL)
|
GAME( 1988, black100s, black100, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Blackwater 100 (Single Ball Play)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||||
|
GAME( 1988, trucksp3, 0, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Truck Stop (P-3)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||||
|
GAME( 1988, trucksp2, trucksp3, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Truck Stop (P-2)", MACHINE_IS_SKELETON_MECHANICAL )
|
||||||
|
GAME( 1989, atlantip, 0, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Atlantis", MACHINE_IS_SKELETON_MECHANICAL )
|
||||||
|
52
src/mame/layout/by6803.lay
Normal file
52
src/mame/layout/by6803.lay
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!--
|
||||||
|
license:CC0
|
||||||
|
copyright-holders:Robbbert
|
||||||
|
-->
|
||||||
|
|
||||||
|
<mamelayout version="2">
|
||||||
|
|
||||||
|
<element name="digit" defstate="0">
|
||||||
|
<led8seg_gts1>
|
||||||
|
<color red="1.0" green="0.0" blue="0.0" />
|
||||||
|
</led8seg_gts1>
|
||||||
|
</element>
|
||||||
|
|
||||||
|
<group name="score">
|
||||||
|
<repeat count="7">
|
||||||
|
<param name="n" start="~s~" increment="-1" />
|
||||||
|
<param name="x" start="0" increment="44" />
|
||||||
|
<element name="digit~n~" ref="digit">
|
||||||
|
<bounds x="~x~" y="0" width="34" height="39" />
|
||||||
|
</element>
|
||||||
|
</repeat>
|
||||||
|
</group>
|
||||||
|
|
||||||
|
<view name="Default Layout">
|
||||||
|
<bounds left="0" top="20" right="318" bottom="279" />
|
||||||
|
|
||||||
|
<!-- Player 1 Score -->
|
||||||
|
<param name="s" value="6" />
|
||||||
|
<group ref="score">
|
||||||
|
<bounds left="10" top="45" right="308" bottom="84" />
|
||||||
|
</group>
|
||||||
|
|
||||||
|
<!-- Player 2 Score -->
|
||||||
|
<param name="s" value="13" />
|
||||||
|
<group ref="score">
|
||||||
|
<bounds left="10" top="105" right="308" bottom="144" />
|
||||||
|
</group>
|
||||||
|
|
||||||
|
<!-- Player 3 Score -->
|
||||||
|
<param name="s" value="22" />
|
||||||
|
<group ref="score">
|
||||||
|
<bounds left="10" top="165" right="308" bottom="204" />
|
||||||
|
</group>
|
||||||
|
|
||||||
|
<!-- Player 4 Score -->
|
||||||
|
<param name="s" value="29" />
|
||||||
|
<group ref="score">
|
||||||
|
<bounds left="10" top="225" right="308" bottom="264" />
|
||||||
|
</group>
|
||||||
|
</view>
|
||||||
|
</mamelayout>
|
Loading…
Reference in New Issue
Block a user