zac_2.cpp: got 43 out of 45 games to work (but no sound yet).

This commit is contained in:
Robbbert 2022-03-19 02:47:48 +11:00
parent f3cf2eb70e
commit a6b8f21977
4 changed files with 265 additions and 143 deletions

View File

@ -20,6 +20,19 @@ If at any time you 'clock' the machine (ie exceed 999,990), the last digit will
The ball number is how many balls are left. 1 = last ball.
Games:
- Combat
- Winter Sports
- House of Diamonds
- Future World
- Shooting the Rapids
- Hot Wheels
- Fire Mountain
- Star God
- Space Shuttle
- Earth Wind Fire
- Locomotion
Sound - there's 5 sound boards
1. 4 audio oscillators which can be switched on and off independently. It's shown
on the schematic of all machines, but only works for (hod, wsports, and futurwld).
@ -453,7 +466,6 @@ WRITE_LINE_MEMBER( zac_1_state::serial_w )
void zac_1_state::machine_reset()
{
genpin_class::machine_reset();
for (u8 i = 0; i < m_io_outputs.size(); i++)
m_io_outputs[i] = 0;
@ -480,7 +492,6 @@ void zac_1_state::machine_reset()
void zac_1_state::machine_start()
{
genpin_class::machine_start();
m_digits.resolve();
m_io_outputs.resolve();
@ -885,23 +896,23 @@ ROM_END
} // anonymous namespace
// Basic audio
GAME(1978, futurwld, 0, zac1, zac_1, zac_1_state, empty_init, ROT0, "Zaccaria", "Future World", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME(1978, hod, 0, zac1, zac_1, zac_1_state, empty_init, ROT0, "Zaccaria", "House of Diamonds", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME(1978, wsports, 0, zac1, zac_1, zac_1_state, empty_init, ROT0, "Zaccaria", "Winter Sports", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME(1978, futurwld, 0, zac1, zac_1, zac_1_state, empty_init, ROT0, "Zaccaria", "Future World", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1978, hod, 0, zac1, zac_1, zac_1_state, empty_init, ROT0, "Zaccaria", "House of Diamonds", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1978, wsports, 0, zac1, zac_1, zac_1_state, empty_init, ROT0, "Zaccaria", "Winter Sports", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
// 1B1125 audio (SN76477, NE555)
GAME(1980, firemntn, 0, zac3, zac_1, zac_1_state, empty_init, ROT0, "Zaccaria", "Fire Mountain", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME(1979, hotwheel, 0, zac3, zac_1, zac_1_state, empty_init, ROT0, "Zaccaria", "Hot Wheels", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME(1979, strapids, 0, zac3, zac_1, zac_1_state, empty_init, ROT0, "Zaccaria", "Shooting the Rapids", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME(1980, stargod, 0, zac3, zac_1, zac_1_state, empty_init, ROT0, "Zaccaria", "Star God", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME(1980, stargodb, stargod, zac3, zac_1, zac_1_state, empty_init, ROT0, "Zaccaria", "Star God (variable replay score)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME(1980, firemntn, 0, zac3, zac_1, zac_1_state, empty_init, ROT0, "Zaccaria", "Fire Mountain", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1979, hotwheel, 0, zac3, zac_1, zac_1_state, empty_init, ROT0, "Zaccaria", "Hot Wheels", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1979, strapids, 0, zac3, zac_1, zac_1_state, empty_init, ROT0, "Zaccaria", "Shooting the Rapids", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1980, stargod, 0, zac3, zac_1, zac_1_state, empty_init, ROT0, "Zaccaria", "Star God", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1980, stargodb, stargod, zac3, zac_1, zac_1_state, empty_init, ROT0, "Zaccaria", "Star God (variable replay score)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
// 1B1346 audio (i8035, MC1408)
GAME(1981, ewf, 0, zac2, zac_1, zac_1_state, empty_init, ROT0, "Zaccaria", "Earth Wind Fire", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME(1980, sshtlzac, 0, zac2, zac_1, zac_1_state, empty_init, ROT0, "Zaccaria", "Space Shuttle (Zaccaria)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME(1981, ewf, 0, zac2, zac_1, zac_1_state, empty_init, ROT0, "Zaccaria", "Earth Wind Fire", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1980, sshtlzac, 0, zac2, zac_1, zac_1_state, empty_init, ROT0, "Zaccaria", "Space Shuttle (Zaccaria)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
// 1B1146 audio (i8035, MC1408, SN76477, NE555, MM5837)
GAME(1981, locomotp, 0, locomotp, zac_1, zac_1_state, empty_init, ROT0, "Zaccaria", "Locomotion", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME(1981, locomotp, 0, locomotp, zac_1, zac_1_state, empty_init, ROT0, "Zaccaria", "Locomotion", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
// unknown audio
GAME(1980, stargoda, stargod, zac4, zac_1, zac_1_state, empty_init, ROT0, "Zaccaria", "Star God (alternate sound)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME(1980, stargoda, stargod, zac4, zac_1, zac_1_state, empty_init, ROT0, "Zaccaria", "Star God (alternate sound)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )

View File

@ -5,11 +5,44 @@
PINBALL
Zaccaria Generation 2
All games (except where noted below)
- To start, press 1
- Wait for score to flash before you can score (first ball can take a while, jiggle XZ to push
things along)
- Press X to end ball
- Ball counter runs backwards, so 1 = last ball.
- When on the last ball, scoring points racks up a bonus counter. At the end, you get
an extra timed part, with infinite balls until the time runs out. Then press X.
Games:
- Pinball Champ '82
- Soccer Kings
- Pinball Champ
- Time Machine
- Farfalla
- Devil Riders
- Magic Castle
- Robot
- Clown
- Pool Champion
- Mystic Star
- Black Belt
- Mexico 86 (not working)
- Zankor
- Spooky
- Star's Phoenix (Multiball game: To start, hit 1, then jiggle ABX. To end ball, press AB)
- New Star's Phoenix (same as Star's Phoenix)
**** Other Manufacturer ****
- Scramble (not working)
- Thunder Man
Status:
- Shows all 0 then no response
- Most games are playable
ToDo:
- Make them work
- Fix scram_tp, mexico
- Sound
- Mechanical sounds
****************************************************************************************************/
@ -18,27 +51,31 @@ ToDo:
#include "machine/genpin.h"
#include "cpu/s2650/s2650.h"
#include "machine/timer.h"
#include "speaker.h"
#include "zac_2.lh"
namespace {
class zac_2_state : public driver_device
class zac_2_state : public genpin_class
{
public:
zac_2_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
: genpin_class(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_p_ram(*this, "ram")
, m_io_keyboard(*this, "X%d", 0U)
, m_digits(*this, "digit%d", 0U)
, m_io_outputs(*this, "out%d", 0U)
{ }
void zac_2(machine_config &config);
void init_1() { m_game = 1; } // 7 digits
private:
uint8_t ctrl_r();
void ctrl_w(uint8_t data);
void data_w(uint8_t data);
u8 ctrl_r();
u8 data_r();
void ctrl_w(u8 data);
void data_w(u8 data);
DECLARE_READ_LINE_MEMBER(serial_r);
DECLARE_WRITE_LINE_MEMBER(serial_w);
TIMER_DEVICE_CALLBACK_MEMBER(zac_2_inttimer);
@ -47,15 +84,17 @@ private:
void zac_2_io(address_map &map);
void zac_2_map(address_map &map);
uint8_t m_row = 0U;
uint8_t m_t_c = 0U;
uint8_t m_out_offs = 0U;
u8 m_row = 0U;
u8 m_t_c = 0U;
u8 m_out_offs = 0U;
u8 m_game = 0U;
virtual void machine_reset() override;
virtual void machine_start() override;
required_device<s2650_device> m_maincpu;
required_shared_ptr<uint8_t> m_p_ram;
required_shared_ptr<u8> m_p_ram;
required_ioport_array<8> m_io_keyboard;
output_finder<78> m_digits;
output_finder<128> m_io_outputs; // 24 solenoids + 80 lamps
};
@ -78,13 +117,11 @@ void zac_2_state::zac_2_io(address_map &map)
void zac_2_state::zac_2_data(address_map &map)
{
map(S2650_CTRL_PORT, S2650_CTRL_PORT).rw(FUNC(zac_2_state::ctrl_r), FUNC(zac_2_state::ctrl_w));
map(S2650_DATA_PORT, S2650_DATA_PORT).portr("DSW").w(FUNC(zac_2_state::data_w));
map(S2650_DATA_PORT, S2650_DATA_PORT).rw(FUNC(zac_2_state::data_r), FUNC(zac_2_state::data_w));
}
static INPUT_PORTS_START( zac_2 )
PORT_START("DSW")
PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED ) // sound board lets cpu know when sound has finished playing
PORT_DIPNAME( 0x01, 0x01, "Switch A") PORT_DIPLOCATION("SW1:1")
PORT_DIPSETTING( 0x01, DEF_STR(Off))
PORT_DIPSETTING( 0x00, DEF_STR(On))
@ -169,22 +206,34 @@ static INPUT_PORTS_START( zac_2 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("INP55")
PORT_START("X7")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_DEL) PORT_NAME("INP56")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_HOME) PORT_NAME("INP57")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_END) PORT_NAME("INP58")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_SPACE) PORT_NAME("INP59")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_UP) PORT_NAME("INP60")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_LEFT) PORT_NAME("INP61")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("INP62")
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_DOWN) PORT_NAME("INP63")
INPUT_PORTS_END
uint8_t zac_2_state::ctrl_r()
u8 zac_2_state::ctrl_r()
{
return m_io_keyboard[m_row]->read();
}
void zac_2_state::ctrl_w(uint8_t data)
void zac_2_state::ctrl_w(u8 data)
{
m_row = data & 7;
}
void zac_2_state::data_w(uint8_t data)
u8 zac_2_state::data_r()
{
// writes to lines HS0-7, no idea what they do
return ioport("DSW")->read(); // and sound card status
}
void zac_2_state::data_w(u8 data)
{
// writes to sound card
}
READ_LINE_MEMBER( zac_2_state::serial_r )
@ -201,6 +250,7 @@ WRITE_LINE_MEMBER( zac_2_state::serial_w )
void zac_2_state::machine_start()
{
m_digits.resolve();
m_io_outputs.resolve();
save_item(NAME(m_row));
save_item(NAME(m_t_c));
@ -209,6 +259,9 @@ void zac_2_state::machine_start()
void zac_2_state::machine_reset()
{
for (u8 i = 0; i < m_io_outputs.size(); i++)
m_io_outputs[i] = 0;
m_t_c = 0;
}
@ -223,22 +276,63 @@ TIMER_DEVICE_CALLBACK_MEMBER(zac_2_state::zac_2_inttimer)
TIMER_DEVICE_CALLBACK_MEMBER(zac_2_state::zac_2_outtimer)
{
static const uint8_t patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0, 0, 0, 0, 0, 0 };
static const u8 patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0, 0, 0, 0, 0, 0 };
m_out_offs++;
u8 data = m_p_ram[m_out_offs] & 15;
// displays, solenoids, lamps
if (m_out_offs < 0x40)
return;
if (m_out_offs < 0xc0)
{
uint8_t display = (m_out_offs >> 3) & 7;
uint8_t digit = m_out_offs & 7;
m_digits[display * 10 + digit] = patterns[m_p_ram[m_out_offs]&15];
m_io_outputs[m_out_offs-0x40] = data;
// These addresses yet to be ascertained
if (m_out_offs == 0x4a) // outhole
{
//if (BIT(data, 0))
//m_samples->start(0, 5);
}
else
if (m_out_offs == 0x4b) // knocker
{
//if (BIT(data, 0))
//m_samples->start(0, 6);
}
}
else
if (m_out_offs < 0xf0)
{
u8 display = BIT(m_out_offs, 3, 3);
u8 digit = m_out_offs & 7;
u16 segment = patterns[data];
// fix g segment
if (BIT(segment, 6))
segment |= 0x80;
// add commas
if ((digit == 3) || (digit == 6))
{
if (display < 4)
segment |= 0xc000;
else
if (m_digits[42] && m_digits[44])
segment |= 0xc000;
}
// if 7-digit display, blank unwanted 8th digit
if (m_game && (digit == 7))
segment = 0;
m_digits[display * 10 + digit] = segment;
}
else
m_out_offs = 0x3f;
}
void zac_2_state::zac_2(machine_config &config)
{
/* basic machine hardware */
S2650(config, m_maincpu, 6000000/2);
S2650(config, m_maincpu, 6000000/2); // according to sch the speed is half this, but then the last ball timer runs far too slowly
m_maincpu->set_addrmap(AS_PROGRAM, &zac_2_state::zac_2_map);
m_maincpu->set_addrmap(AS_IO, &zac_2_state::zac_2_io);
m_maincpu->set_addrmap(AS_DATA, &zac_2_state::zac_2_data);
@ -248,11 +342,15 @@ void zac_2_state::zac_2(machine_config &config)
NVRAM(config, "ram", nvram_device::DEFAULT_ALL_0);
TIMER(config, "zac_2_inttimer").configure_periodic(FUNC(zac_2_state::zac_2_inttimer), attotime::from_hz(200));
TIMER(config, "zac_2_outtimer").configure_periodic(FUNC(zac_2_state::zac_2_outtimer), attotime::from_hz(187500));
TIMER(config, "zac_2_inttimer").configure_periodic(FUNC(zac_2_state::zac_2_inttimer), attotime::from_hz(6'000'000/(8*512)));
TIMER(config, "zac_2_outtimer").configure_periodic(FUNC(zac_2_state::zac_2_outtimer), attotime::from_hz((6'000'000/4)/32));
/* Video */
config.set_default_layout(layout_zac_2);
/* Sound */
genpin_audio(config);
//SPEAKER(config, "mono").front_center();
}
/*--------------------------------
@ -549,9 +647,9 @@ ROM_START(mexico)
ROM_LOAD("mex86_f.snd", 0xc000, 0x4000, CRC(301c2b63) SHA1(df4a4cb48d28d53c3728066d3e3fa9eac17c78c5))
ROM_END
/*--------------------------------
/ New Star's Phoenix (08/87)
/-------------------------------*/
/*------------------------------------------------------------------------------------
/ New Star's Phoenix (08/87) same roms as Star's Phoenix, playboard slightly changed
/------------------------------------------------------------------------------------*/
ROM_START(nstrphnx)
ROM_REGION(0x8000, "maincpu", 0)
ROM_LOAD ( "strphnx1.cpu", 0x0000, 0x0800, CRC(2a31b7da) SHA1(05f2173783e686cc8774bed6eb59b41f7af88d11))
@ -1088,48 +1186,48 @@ ROM_END
} // anonymous namespace
GAME(1986, bbeltzac, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Black Belt (Zaccaria)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1986, bbeltzaci, bbeltzac, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Black Belt (Zaccaria, Italian speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1986, bbeltzacg, bbeltzac, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Black Belt (Zaccaria, German speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1986, bbeltzacf, bbeltzac, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Black Belt (Zaccaria, French speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1985, clown, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Clown", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1984, dvlrider, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Devil Riders", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1984, dvlrideri, dvlrider, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Devil Riders (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1984, dvlriderg, dvlrider, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Devil Riders (German speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1984, dvlriderf, dvlrider, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Devil Riders (French speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1983, farfalla, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Farfalla", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1983, farfallai, farfalla, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Farfalla (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1983, farfallag, farfalla, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Farfalla (German speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1984, mcastle, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Magic Castle", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1984, mcastlei, mcastle, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Magic Castle (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1984, mcastleg, mcastle, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Magic Castle (German speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1984, mcastlef, mcastle, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Magic Castle (French speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1986, mexico, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Mexico 86 (German speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1987, nstrphnx, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "New Star's Phoenix (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1987, nstrphnxf, nstrphnx, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "New Star's Phoenix (French speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1983, pinchamp, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Pinball Champ", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1983, pinchampg, pinchamp, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Pinball Champ (German speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1983, pinchampi, pinchamp, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Pinball Champ (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1983, pinchamp7, pinchamp, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Pinball Champ (7 digits)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1983, pinchamp7g, pinchamp, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Pinball Champ (7 digits German speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1983, pinchamp7i, pinchamp, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Pinball Champ (7 digits Italian speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1985, poolcham, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Pool Champion", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1985, poolchami, poolcham, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Pool Champion (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1985, robot, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Robot (Zaccaria)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1985, roboti, robot, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Robot (Zaccaria, Italian speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1985, robotg, robot, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Robot (Zaccaria, German speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1985, robotf, robot, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Robot (Zaccaria, French speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1987, scram_tp, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Tecnoplay", "Scramble (Pinball)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1982, socrking, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Soccer Kings", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1982, socrkinga, socrking, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Soccer Kings (alternate set)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1982, socrkingi, socrking, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Soccer Kings (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1982, socrkingg, socrking, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Soccer Kings (German speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1987, spookyp, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Spooky", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1987, spookyi, spookyp, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Spooky (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1987, strsphnx, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Star's Phoenix (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1987, strsphnxf, strsphnx, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Star's Phoenix (French speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1987, thndrman, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Apple Time", "Thunder Man", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1983, tmachzac, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Time Machine (Zaccaria)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1983, tmachzacg, tmachzac, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Time Machine (Zaccaria, German speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1983, tmachzacf, tmachzac, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Time Machine (Zaccaria, French speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1986, zankor, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Zankor (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL)
GAME(1986, bbeltzac, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Black Belt (Zaccaria)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1986, bbeltzaci, bbeltzac, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Black Belt (Zaccaria, Italian speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1986, bbeltzacg, bbeltzac, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Black Belt (Zaccaria, German speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1986, bbeltzacf, bbeltzac, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Black Belt (Zaccaria, French speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1985, clown, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Clown", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1984, dvlrider, 0, zac_2, zac_2, zac_2_state, init_1, ROT0, "Zaccaria", "Devil Riders", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1984, dvlrideri, dvlrider, zac_2, zac_2, zac_2_state, init_1, ROT0, "Zaccaria", "Devil Riders (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1984, dvlriderg, dvlrider, zac_2, zac_2, zac_2_state, init_1, ROT0, "Zaccaria", "Devil Riders (German speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1984, dvlriderf, dvlrider, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Devil Riders (French speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1983, farfalla, 0, zac_2, zac_2, zac_2_state, init_1, ROT0, "Zaccaria", "Farfalla", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1983, farfallai, farfalla, zac_2, zac_2, zac_2_state, init_1, ROT0, "Zaccaria", "Farfalla (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1983, farfallag, farfalla, zac_2, zac_2, zac_2_state, init_1, ROT0, "Zaccaria", "Farfalla (German speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1984, mcastle, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Magic Castle", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1984, mcastlei, mcastle, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Magic Castle (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1984, mcastleg, mcastle, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Magic Castle (German speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1984, mcastlef, mcastle, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Magic Castle (French speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1986, mexico, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Mexico 86 (German speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1987, nstrphnx, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "New Star's Phoenix (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1987, nstrphnxf, nstrphnx, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "New Star's Phoenix (French speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1983, pinchamp, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Pinball Champ", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1983, pinchampg, pinchamp, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Pinball Champ (German speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1983, pinchampi, pinchamp, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Pinball Champ (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1983, pinchamp7, pinchamp, zac_2, zac_2, zac_2_state, init_1, ROT0, "Zaccaria", "Pinball Champ (7 digits)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1983, pinchamp7g, pinchamp, zac_2, zac_2, zac_2_state, init_1, ROT0, "Zaccaria", "Pinball Champ (7 digits German speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1983, pinchamp7i, pinchamp, zac_2, zac_2, zac_2_state, init_1, ROT0, "Zaccaria", "Pinball Champ (7 digits Italian speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1985, poolcham, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Pool Champion", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1985, poolchami, poolcham, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Pool Champion (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1985, robot, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Robot (Zaccaria)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1985, roboti, robot, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Robot (Zaccaria, Italian speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1985, robotg, robot, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Robot (Zaccaria, German speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1985, robotf, robot, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Robot (Zaccaria, French speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1987, scram_tp, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Tecnoplay", "Scramble (Pinball)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1982, socrking, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Soccer Kings", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1982, socrkinga, socrking, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Soccer Kings (alternate set)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1982, socrkingi, socrking, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Soccer Kings (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1982, socrkingg, socrking, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Soccer Kings (German speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1987, spookyp, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Spooky", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1987, spookyi, spookyp, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Spooky (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1987, strsphnx, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Star's Phoenix (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1987, strsphnxf, strsphnx, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Star's Phoenix (French speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1987, thndrman, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Apple Time", "Thunder Man", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1983, tmachzac, 0, zac_2, zac_2, zac_2_state, init_1, ROT0, "Zaccaria", "Time Machine (Zaccaria)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1983, tmachzacg, tmachzac, zac_2, zac_2, zac_2_state, init_1, ROT0, "Zaccaria", "Time Machine (Zaccaria, German speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1983, tmachzacf, tmachzac, zac_2, zac_2, zac_2_state, init_1, ROT0, "Zaccaria", "Time Machine (Zaccaria, French speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1986, zankor, 0, zac_2, zac_2, zac_2_state, empty_init, ROT0, "Zaccaria", "Zankor (Italian speech)", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )

View File

@ -13,6 +13,10 @@ After starting a game, press X, wait for the sound of the ball
The ball number is how many balls are left. 1 = last ball.
Games:
- Strike
- Ski Jump
- Space City
Status:
- All games are working.
@ -362,6 +366,6 @@ ROM_END
} // anonymous namespace
GAME(1978, skijump, 0, zac_proto, zac_proto, zac_proto_state, empty_init, ROT0, "Zaccaria", "Ski Jump", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME(1979, spacecty, 0, zac_proto, zac_proto, zac_proto_state, empty_init, ROT0, "Zaccaria", "Space City", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME(1978, strike, 0, zac_proto, zac_proto, zac_proto_state, empty_init, ROT0, "Zaccaria", "Strike", MACHINE_MECHANICAL | MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME(1978, skijump, 0, zac_proto, zac_proto, zac_proto_state, empty_init, ROT0, "Zaccaria", "Ski Jump", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1979, spacecty, 0, zac_proto, zac_proto, zac_proto_state, empty_init, ROT0, "Zaccaria", "Space City", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )
GAME(1978, strike, 0, zac_proto, zac_proto, zac_proto_state, empty_init, ROT0, "Zaccaria", "Strike", MACHINE_IS_SKELETON_MECHANICAL | MACHINE_SUPPORTS_SAVE )

View File

@ -10,13 +10,11 @@ copyright-holders:Robbbert
<mamelayout version="2">
<element name="digit" defstate="0">
<led7seg>
<led14segsc>
<color red="1.0" green="0.0" blue="0.0" />
</led7seg>
</led14segsc>
</element>
<element name="P0"><text string="Balls"><color red="1.0" green="1.0" blue="1.0" /></text></element>
<element name="P1"><text string="Credits"><color red="1.0" green="1.0" blue="1.0" /></text></element>
<element name="P3"><text string="Player 1"><color red="1.0" green="1.0" blue="1.0" /></text></element>
<element name="P4"><text string="Player 2"><color red="1.0" green="1.0" blue="1.0" /></text></element>
<element name="P5"><text string="Player 3"><color red="1.0" green="1.0" blue="1.0" /></text></element>
@ -24,128 +22,139 @@ copyright-holders:Robbbert
<element name="P7"><text string="High Score"><color red="1.0" green="1.0" blue="1.0" /></text></element>
<view name="Default Layout">
<bounds left="0" top="20" right="274" bottom="394" />
<!-- LEDs -->
<bounds left="0" top="20" right="362" bottom="334" />
<!-- Player 1 Score -->
<element name="digit5" ref="digit">
<element name="digit7" ref="digit">
<bounds left="10" top="45" right="44" bottom="84" />
</element>
<element name="digit4" ref="digit">
<element name="digit6" ref="digit">
<bounds left="54" top="45" right="88" bottom="84" />
</element>
<element name="digit3" ref="digit">
<element name="digit5" ref="digit">
<bounds left="98" top="45" right="132" bottom="84" />
</element>
<element name="digit2" ref="digit">
<element name="digit4" ref="digit">
<bounds left="142" top="45" right="176" bottom="84" />
</element>
<element name="digit1" ref="digit">
<element name="digit3" ref="digit">
<bounds left="186" top="45" right="220" bottom="84" />
</element>
<element name="digit0" ref="digit">
<element name="digit2" ref="digit">
<bounds left="230" top="45" right="264" bottom="84" />
</element>
<element name="digit1" ref="digit">
<bounds left="274" top="45" right="308" bottom="84" />
</element>
<element name="digit0" ref="digit">
<bounds left="318" top="45" right="352" bottom="84" />
</element>
<!-- Player 2 Score -->
<element name="digit15" ref="digit">
<element name="digit17" ref="digit">
<bounds left="10" top="105" right="44" bottom="144" />
</element>
<element name="digit14" ref="digit">
<element name="digit16" ref="digit">
<bounds left="54" top="105" right="88" bottom="144" />
</element>
<element name="digit13" ref="digit">
<element name="digit15" ref="digit">
<bounds left="98" top="105" right="132" bottom="144" />
</element>
<element name="digit12" ref="digit">
<element name="digit14" ref="digit">
<bounds left="142" top="105" right="176" bottom="144" />
</element>
<element name="digit11" ref="digit">
<element name="digit13" ref="digit">
<bounds left="186" top="105" right="220" bottom="144" />
</element>
<element name="digit10" ref="digit">
<element name="digit12" ref="digit">
<bounds left="230" top="105" right="264" bottom="144" />
</element>
<element name="digit11" ref="digit">
<bounds left="274" top="105" right="308" bottom="144" />
</element>
<element name="digit10" ref="digit">
<bounds left="318" top="105" right="352" bottom="144" />
</element>
<!-- Player 3 Score -->
<element name="digit25" ref="digit">
<element name="digit27" ref="digit">
<bounds left="10" top="165" right="44" bottom="204" />
</element>
<element name="digit24" ref="digit">
<element name="digit26" ref="digit">
<bounds left="54" top="165" right="88" bottom="204" />
</element>
<element name="digit23" ref="digit">
<element name="digit25" ref="digit">
<bounds left="98" top="165" right="132" bottom="204" />
</element>
<element name="digit22" ref="digit">
<element name="digit24" ref="digit">
<bounds left="142" top="165" right="176" bottom="204" />
</element>
<element name="digit21" ref="digit">
<element name="digit23" ref="digit">
<bounds left="186" top="165" right="220" bottom="204" />
</element>
<element name="digit20" ref="digit">
<element name="digit22" ref="digit">
<bounds left="230" top="165" right="264" bottom="204" />
</element>
<element name="digit21" ref="digit">
<bounds left="274" top="165" right="308" bottom="204" />
</element>
<element name="digit20" ref="digit">
<bounds left="318" top="165" right="352" bottom="204" />
</element>
<!-- Player 4 Score -->
<element name="digit35" ref="digit">
<element name="digit37" ref="digit">
<bounds left="10" top="225" right="44" bottom="264" />
</element>
<element name="digit34" ref="digit">
<element name="digit36" ref="digit">
<bounds left="54" top="225" right="88" bottom="264" />
</element>
<element name="digit33" ref="digit">
<element name="digit35" ref="digit">
<bounds left="98" top="225" right="132" bottom="264" />
</element>
<element name="digit32" ref="digit">
<element name="digit34" ref="digit">
<bounds left="142" top="225" right="176" bottom="264" />
</element>
<element name="digit31" ref="digit">
<element name="digit33" ref="digit">
<bounds left="186" top="225" right="220" bottom="264" />
</element>
<element name="digit30" ref="digit">
<element name="digit32" ref="digit">
<bounds left="230" top="225" right="264" bottom="264" />
</element>
<element name="digit31" ref="digit">
<bounds left="274" top="225" right="308" bottom="264" />
</element>
<element name="digit30" ref="digit">
<bounds left="318" top="225" right="352" bottom="264" />
</element>
<!-- High Score -->
<element name="digit45" ref="digit">
<element name="digit47" ref="digit">
<bounds left="10" top="285" right="44" bottom="324" />
</element>
<element name="digit44" ref="digit">
<element name="digit46" ref="digit">
<bounds left="54" top="285" right="88" bottom="324" />
</element>
<element name="digit43" ref="digit">
<element name="digit45" ref="digit">
<bounds left="98" top="285" right="132" bottom="324" />
</element>
<element name="digit42" ref="digit">
<element name="digit44" ref="digit">
<bounds left="142" top="285" right="176" bottom="324" />
</element>
<element name="digit41" ref="digit">
<element name="digit43" ref="digit">
<bounds left="186" top="285" right="220" bottom="324" />
</element>
<element name="digit40" ref="digit">
<element name="digit42" ref="digit">
<bounds left="230" top="285" right="264" bottom="324" />
</element>
<!-- Credits -->
<element name="digit55" ref="digit">
<bounds left="10" top="345" right="44" bottom="384" />
<element name="digit41" ref="digit">
<bounds left="274" top="285" right="308" bottom="324" />
</element>
<element name="digit54" ref="digit">
<bounds left="54" top="345" right="88" bottom="384" />
<element name="digit40" ref="digit">
<bounds left="318" top="285" right="352" bottom="324" />
</element>
<!-- Match / Balls Left -->
<element name="digit51" ref="digit">
<bounds left="186" top="345" right="220" bottom="384" />
</element>
<element name="digit50" ref="digit">
<bounds left="230" top="345" right="264" bottom="384" />
</element>
<element ref="P0"><bounds left="200" right="258" top="330" bottom="342" /></element>
<element ref="P1"><bounds left="30" right="88" top="330" bottom="342" /></element>
<element ref="P3"><bounds left="100" right="180" top="30" bottom="42" /></element>
<element ref="P4"><bounds left="100" right="180" top="90" bottom="102" /></element>
<element ref="P5"><bounds left="100" right="180" top="150" bottom="162" /></element>