From a6b8f21977fbd7e6bc13be0681534197b8ee76a5 Mon Sep 17 00:00:00 2001 From: Robbbert Date: Sat, 19 Mar 2022 02:47:48 +1100 Subject: zac_2.cpp: got 43 out of 45 games to work (but no sound yet). --- src/mame/drivers/zac_1.cpp | 39 ++++--- src/mame/drivers/zac_2.cpp | 246 ++++++++++++++++++++++++++++------------- src/mame/drivers/zac_proto.cpp | 10 +- src/mame/layout/zac_2.lay | 113 ++++++++++--------- 4 files changed, 265 insertions(+), 143 deletions(-) diff --git a/src/mame/drivers/zac_1.cpp b/src/mame/drivers/zac_1.cpp index a67d6ddea07..e98b5b8daef 100644 --- a/src/mame/drivers/zac_1.cpp +++ b/src/mame/drivers/zac_1.cpp @@ -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 ) diff --git a/src/mame/drivers/zac_2.cpp b/src/mame/drivers/zac_2.cpp index bb9268710fa..9ec3df6676c 100644 --- a/src/mame/drivers/zac_2.cpp +++ b/src/mame/drivers/zac_2.cpp @@ -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 m_maincpu; - required_shared_ptr m_p_ram; + required_shared_ptr 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() +{ + return ioport("DSW")->read(); // and sound card status +} + +void zac_2_state::data_w(u8 data) { -// writes to lines HS0-7, no idea what they do +// 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 ) diff --git a/src/mame/drivers/zac_proto.cpp b/src/mame/drivers/zac_proto.cpp index 10b43b9ebf1..7496898ed2d 100644 --- a/src/mame/drivers/zac_proto.cpp +++ b/src/mame/drivers/zac_proto.cpp @@ -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 ) diff --git a/src/mame/layout/zac_2.lay b/src/mame/layout/zac_2.lay index 2e0f6d726c1..ab98c27ece9 100644 --- a/src/mame/layout/zac_2.lay +++ b/src/mame/layout/zac_2.lay @@ -10,13 +10,11 @@ copyright-holders:Robbbert - + - + - - @@ -24,128 +22,139 @@ copyright-holders:Robbbert - - - + - + - + - + - + - + - + + + + + + + - + - + - + - + - + - + + + + + + + - + - + - + - + - + - + + + + + + + - + - + - + - + - + - + + + + + + + - + - + - + - + - + - + - - - - + + - - + + - - - - - - - - - -- cgit v1.2.3