From 91d68adfe9e2067070eaac8d3a2d2db54962ac85 Mon Sep 17 00:00:00 2001 From: Robbbert Date: Mon, 7 Feb 2022 03:10:42 +1100 Subject: by6803: added notes. --- src/mame/drivers/by6803.cpp | 308 ++++++++++++++++++++++++--------------- src/mame/drivers/wms_shuffle.cpp | 1 - 2 files changed, 189 insertions(+), 120 deletions(-) diff --git a/src/mame/drivers/by6803.cpp b/src/mame/drivers/by6803.cpp index d4bc1ead0bb..433fcde79f6 100644 --- a/src/mame/drivers/by6803.cpp +++ b/src/mame/drivers/by6803.cpp @@ -10,12 +10,38 @@ The characteristic 6803 pinball has 4x 7-digit displays lined up along the botto Schematic has a number of mistakes. +Here are the key codes to enable play: (to do) + +Game NUM Start game End ball +-------------------------------------------------------------------------------------------------- +Eight Ball Champ 0B38 (not working) +Beat the Clock 0C70 (not working) +Motordome 0E14 (can't insert coin) +Lady Luck 0E34 (not working) +Strange Science 0E35 (can't insert coin) +Special Force / Special Force Girls 0E47 (can't insert coin) +Black Belt / Karate Fight 0E52 (can't insert coin) +City Slicker 0E79 (can't insert coin) +Hardbody / Super Sport 0E94 (stuck switch) +Party Animal 0H01 (can't insert coin) +Heavy Metal Meltdown 0H03 (can't insert coin) +Escape from the Lost World 0H05 Hold DX, hit 1 DX +Dungeons and Dragons 0H06 (can't insert coin) +Blackwater 100 0H07 Hold Enter ][, hit 1 Jiggle ]X[ +Hot Shotz (unemulated prototype) +**** After merge with Williams **** +Diesel Demon / Ramp Warrior / Truck Stop 2001 Hold Right Down, hit 1 Hold Right Down, hit X +Atlantis 2006 Hold Left Down Right, hit 1 Down Left Right + + Status: -- 2nd gen games boot up and display, some can coin up, but cannot start due to balls missing +- 2nd gen games boot up and display. See above table for individual status. ToDo: +- Sound +- Mechanical sounds - Outputs -- 1st gen display +- 1st gen display needs credits/balls - Commas are missing from the display. - Code has provision for a round LED, to be added to layout. - Operator keypad @@ -27,12 +53,14 @@ ToDo: #include "emu.h" //#include "audio/midway.h" +//#include "audio/williams.h" #include "machine/genpin.h" #include "cpu/m6800/m6801.h" //#include "cpu/m6809/m6809.h" #include "machine/6821pia.h" #include "machine/timer.h" +#include "speaker.h" #include "by6803.lh" @@ -45,6 +73,7 @@ public: by6803_state(const machine_config &mconfig, device_type type, const char *tag) : genpin_class(mconfig, type, tag) , m_maincpu(*this, "maincpu") + //, m_s11sound(*this, "s11sound") , m_pia0(*this, "pia0") , m_pia1(*this, "pia1") , m_io_test(*this, "TEST") @@ -55,6 +84,8 @@ public: { } void by6803(machine_config &config); + void digit6(machine_config &config); + void s11(machine_config &config); DECLARE_INPUT_CHANGED_MEMBER(activity_test); DECLARE_INPUT_CHANGED_MEMBER(self_test); @@ -68,13 +99,16 @@ private: void port1_w(u8 data); u8 port2_r(); void port2_w(u8 data); - u8 pia0_a_r(); - void pia0_a_w(u8 data); - u8 pia0_b_r(); - void pia0_b_w(u8 data); - u8 pia1_a_r(); - void pia1_a_w(u8 data); - void pia1_b_w(u8 data); + u8 pia0a_r(); + void pia0a_w(u8 data); + u8 pia0b_r(); + void pia0b_w(u8 data); + u8 pia1a_r(); + void pia1a_w(u8 data); + void pia1b_w(u8 data); + void pia0a_6w(u8 data); + void pia1a_6w(u8 data); + DECLARE_WRITE_LINE_MEMBER(pia0_ca2_6w); DECLARE_WRITE_LINE_MEMBER(pia0_ca2_w); DECLARE_WRITE_LINE_MEMBER(pia0_cb2_w); DECLARE_WRITE_LINE_MEMBER(pia1_cb2_w); @@ -82,16 +116,17 @@ private: void by6803_map(address_map &map); - u8 m_pia0_a = 0; - u8 m_pia0_b = 0; - u8 m_pia1_a = 0; - u8 m_pia1_b = 0; + u8 m_pia0_a = 0U; + u8 m_pia0_b = 0U; + u8 m_pia1_a = 0U; + u8 m_pia1_b = 0U; bool m_pia0_cb2 = 0; bool m_pia0_timer = 0; - u8 m_port1, m_port2 = 0; - u8 m_digit = 0; - u8 m_segment[2]{}; + u8 m_port1 = 0U, m_port2 = 0U; + u8 m_digit = 0U; + u8 m_segment[4]{}; required_device m_maincpu; + //optional_device m_s11sound; required_device m_pia0; required_device m_pia1; required_ioport m_io_test; @@ -120,57 +155,57 @@ static INPUT_PORTS_START( by6803 ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_B) PORT_NAME("INP02") PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_C) PORT_NAME("INP03") 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( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_LSHIFT) PORT_NAME("Left Flipper") PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_START1 ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_NAME("INP07") + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_RSHIFT) PORT_NAME("Right Flipper") PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_X) PORT_NAME("Outhole") PORT_START("X1") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_G) PORT_NAME("INP12") - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_H) PORT_NAME("INP13") - 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") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_NAME("INP12") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_NAME("INP13") + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_0) PORT_NAME("Slam Tilt") + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_9) PORT_NAME("Tilt") + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_SPACE) PORT_NAME("Shooter Lane") // from here, vary per game PORT_START("X2") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_J) PORT_NAME("INP17") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_K) PORT_NAME("INP18") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_L) PORT_NAME("INP19") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_M) PORT_NAME("INP20") - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_N) PORT_NAME("INP21") - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_O) PORT_NAME("INP22") - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_P) PORT_NAME("INP23") - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_NAME("INP24") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_G) PORT_NAME("INP17") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_H) PORT_NAME("INP18") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_I) PORT_NAME("INP19") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_J) PORT_NAME("INP20") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_K) PORT_NAME("INP21") + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_L) PORT_NAME("INP22") + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_M) PORT_NAME("INP23") + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_N) PORT_NAME("INP24") PORT_START("X3") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("INP25") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("INP26") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("INP27") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_U) PORT_NAME("INP28") - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) PORT_NAME("INP29") - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("INP30") - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) PORT_NAME("INP31") - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) PORT_NAME("INP32") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_O) PORT_NAME("INP25") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_P) PORT_NAME("INP26") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_NAME("INP27") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("INP28") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("INP29") + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("INP30") + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_U) PORT_NAME("INP31") + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) PORT_NAME("INP32") PORT_START("X4") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_COMMA) PORT_NAME("INP33") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_STOP) PORT_NAME("INP34") - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH) PORT_NAME("INP35") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_COLON) PORT_NAME("INP36") - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_QUOTE) PORT_NAME("INP37") - PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("INP38") - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("INP39") - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_NAME("INP40") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("INP33") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) PORT_NAME("INP34") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) PORT_NAME("INP35") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_COMMA) PORT_NAME("INP36") + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_STOP) PORT_NAME("INP37") + PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH) PORT_NAME("INP38") + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_COLON) PORT_NAME("INP39") + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_QUOTE) 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( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("INP41") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_NAME("INP42") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_NAME("INP43") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSLASH) 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") @@ -218,8 +253,6 @@ void by6803_state::port2_w(u8 data) // display latch strobes; display blanking 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. @@ -231,7 +264,7 @@ WRITE_LINE_MEMBER( by6803_state::pia0_ca2_w ) // lamp strobe 1 when high WRITE_LINE_MEMBER( by6803_state::pia0_cb2_w ) { - //printf("CB02=%X ",state); + //printf("CB02=%X,m_pia0_a=%X ",state,m_pia0_a); } // sol bank select (0 to enable sol selection) @@ -240,7 +273,7 @@ WRITE_LINE_MEMBER( by6803_state::pia1_cb2_w ) //printf("CB12=%X ",state); } -u8 by6803_state::pia0_a_r() +u8 by6803_state::pia0a_r() { return m_pia0_a; } @@ -250,7 +283,7 @@ u8 by6803_state::pia0_a_r() // 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 & d7=0 & pia0:cb2=1 (3rd lamp bank) -void by6803_state::pia0_a_w(u8 data) +void by6803_state::pia0a_w(u8 data) { m_pia0_a = data; if ((data & 15)==14) @@ -266,35 +299,38 @@ void by6803_state::pia0_a_w(u8 data) } // switch returns -u8 by6803_state::pia0_b_r() +u8 by6803_state::pia0b_r() { - u8 data = 0; + u8 data = 0U, strobes = m_pia0_a; + + if (BIT(m_pia1_b, 4)) + strobes |= 0x20; for (u8 i = 0; i < 6; i++) - if (BIT(m_pia0_a, i)) + if (BIT(strobes, i)) data |= m_io_keyboard[i]->read(); return data; } -void by6803_state::pia0_b_w(u8 data) +void by6803_state::pia0b_w(u8 data) { m_pia0_b = data; } -u8 by6803_state::pia1_a_r() +u8 by6803_state::pia1a_r() { return m_pia1_a; } // segment data; d0 & pia0:ca2 = comma; passed to digits when PA0? is high (assume they mean pia0:pa0) -void by6803_state::pia1_a_w(u8 data) +void by6803_state::pia1a_w(u8 data) { m_pia1_a = data; } // solenoids, activated when pia1:cb2 is low -void by6803_state::pia1_b_w(u8 data) +void by6803_state::pia1b_w(u8 data) { m_pia1_b = data; switch (data & 15) @@ -346,6 +382,33 @@ void by6803_state::pia1_b_w(u8 data) } } +void by6803_state::pia0a_6w(u8 data) +{ + for (u8 i = 0; i < 4; i++) + if (!BIT(data, i)) + m_segment[i] = BIT(data, 4, 4); +} + +void by6803_state::pia1a_6w(u8 data) +{ + if (!BIT(data, 0)) + for (u8 i = 1; i < 8; i++) + if (BIT(data, i)) + m_digit = 7 - i; +} + +WRITE_LINE_MEMBER( by6803_state::pia0_ca2_6w ) +{ + static const u8 patterns[16] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0,0,0,0,0,0 }; // MC14543 + if (state) + { + m_digits[m_digit] = patterns[m_segment[0]]; + m_digits[m_digit+7] = patterns[m_segment[1]]; + m_digits[m_digit+16] = patterns[m_segment[2]]; + m_digits[m_digit+23] = patterns[m_segment[3]]; + } +} + void by6803_state::machine_start() { genpin_class::machine_start(); @@ -418,10 +481,10 @@ void by6803_state::by6803(machine_config &config) /* Devices */ PIA6821(config, m_pia0, 0); - m_pia0->readpa_handler().set(FUNC(by6803_state::pia0_a_r)); - m_pia0->writepa_handler().set(FUNC(by6803_state::pia0_a_w)); - m_pia0->readpb_handler().set(FUNC(by6803_state::pia0_b_r)); - m_pia0->writepb_handler().set(FUNC(by6803_state::pia0_b_w)); + m_pia0->readpa_handler().set(FUNC(by6803_state::pia0a_r)); + m_pia0->writepa_handler().set(FUNC(by6803_state::pia0a_w)); + m_pia0->readpb_handler().set(FUNC(by6803_state::pia0b_r)); + m_pia0->writepb_handler().set(FUNC(by6803_state::pia0b_w)); m_pia0->ca2_handler().set(FUNC(by6803_state::pia0_ca2_w)); m_pia0->cb2_handler().set(FUNC(by6803_state::pia0_cb2_w)); m_pia0->irqa_handler().set_inputline("maincpu", M6803_IRQ_LINE); @@ -429,25 +492,38 @@ void by6803_state::by6803(machine_config &config) TIMER(config, "timer_z").configure_periodic(FUNC(by6803_state::pia0_timer), attotime::from_hz(120)); // mains freq*2 PIA6821(config, m_pia1, 0); - m_pia1->readpa_handler().set(FUNC(by6803_state::pia1_a_r)); - m_pia1->writepa_handler().set(FUNC(by6803_state::pia1_a_w)); - m_pia1->writepb_handler().set(FUNC(by6803_state::pia1_b_w)); + m_pia1->readpa_handler().set(FUNC(by6803_state::pia1a_r)); + m_pia1->writepa_handler().set(FUNC(by6803_state::pia1a_w)); + m_pia1->writepb_handler().set(FUNC(by6803_state::pia1b_w)); m_pia1->cb2_handler().set(FUNC(by6803_state::pia1_cb2_w)); - //SPEAKER(config, "mono").front_center(); - //MIDWAY_TURBO_CHEAP_SQUEAK(config, "tcs").add_route(ALL_OUTPUTS, "speaker", 1.0); // Cheap Squeak Turbo + SPEAKER(config, "mono").front_center(); + //MIDWAY_TURBO_CHEAP_SQUEAK(config, "tcs").add_route(ALL_OUTPUTS, "mono", 1.0); // Cheap Squeak Turbo +} + +void by6803_state::s11(machine_config &config) +{ + by6803(config); + //WILLIAMS_S11B_SOUND(config, m_s11sound, 0).add_route(ALL_OUTPUTS, "mono", 1.0); +} + +void by6803_state::digit6(machine_config &config) +{ + by6803(config); + m_pia0->writepa_handler().set(FUNC(by6803_state::pia0a_6w)); + m_pia1->writepa_handler().set(FUNC(by6803_state::pia1a_6w)); + m_pia0->ca2_handler().set(FUNC(by6803_state::pia0_ca2_6w)); } -/*----------------------------------------------------------- +/*------------------ / Atlantis #2006 -/-----------------------------------------------------------*/ +/------------------*/ ROM_START(atlantip) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD( "u26_cpu.rom", 0x8000, 0x4000, CRC(b98491e1) SHA1(b867e2b24e93c4ee19169fe93c0ebfe0c1e2fc25)) ROM_LOAD( "u27_cpu.rom", 0xc000, 0x4000, CRC(8ea2b4db) SHA1(df55a9fb70d1cabad51dc2b089af7904a823e1d8)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) - ROM_REGION(0x30000, "sound1", 0) + ROM_REGION(0x30000, "s11sound:audiocpu", ROMREGION_ERASEFF) ROM_LOAD("u4_snd.rom", 0x00000, 0x8000, CRC(6a48b588) SHA1(c58dbfd920c279d7b9d2de8558d73c687b29ce9c)) ROM_RELOAD(0x00000+0x8000, 0x8000) ROM_LOAD("u19_snd.rom", 0x10000, 0x8000, CRC(1387467c) SHA1(8b3dd6c2fc94cfebc1879795532c651cda202846)) @@ -456,9 +532,9 @@ ROM_START(atlantip) ROM_RELOAD(0x20000+0x8000, 0x8000) ROM_END -/*------------------------------------ +/*----------------------- / Beat the Clock #0C70 -/------------------------------------*/ +/-----------------------*/ ROM_START(beatclck) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD( "btc_u3.cpu", 0xc000, 0x4000, CRC(9ba822ab) SHA1(f28d38411df3978bcaf24177fa1b47037a586cbb)) @@ -479,13 +555,9 @@ ROM_START(beatclck2) ROM_LOAD("btc_u5.snd", 0xf000, 0x1000, CRC(230cf329) SHA1(45b17a785b81cd5b1d7fdfb720cf1990994b52b7)) ROM_END -/*------------------------------------ -/ Karate Fight -/------------------------------------*/ - -/*------------------------------------ +/*------------------- / Black Belt #0E52 -/------------------------------------*/ +/-------------------*/ ROM_START(blackblt) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD( "u2.cpu", 0x8000, 0x4000, CRC(7c771910) SHA1(1df8ae478c3626a5200215bfca557ca42e064d2b)) @@ -505,9 +577,9 @@ ROM_START(blackblt2) ROM_LOAD("blb_u5.snd", 0xf000, 0x1000, NO_DUMP) ROM_END -/*------------------------------------ +/*----------------------- / Blackwater 100 #0H07 -/------------------------------------*/ +/-----------------------*/ ROM_START(black100) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD( "u2.cpu", 0x8000, 0x4000, CRC(411fa773) SHA1(9756c7eee0f78792823a0b0379d2baac28cb03e8)) @@ -530,9 +602,9 @@ ROM_START(black100s) ROM_LOAD16_BYTE("u13.bin", 0x20000, 0x10000, CRC(f5890443) SHA1(77cd18cf5541ae9f7e2dd1c060a9bf29b242d05d)) ROM_END -/*------------------------------------ +/*---------------------- / City Slicker #0E79 -/------------------------------------*/ +/----------------------*/ ROM_START(cityslck) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD( "u2.128", 0x8000, 0x4000, CRC(94bcf162) SHA1(1d83592ad2441fc5e4c6fd3ab2373614dfe78b34)) @@ -541,9 +613,9 @@ ROM_START(cityslck) ROM_LOAD("u7_snd.512", 0x0000, 0x10000, CRC(6941d68a) SHA1(28de4327f328d16ec4cab59642c185777535efb2)) ROM_END -/*------------------------------------ +/*-------------------------- / Dungeons & Dragons #0H06 -/------------------------------------*/ +/--------------------------*/ ROM_START(dungdrag) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD( "cpu_u2.128", 0x8000, 0x4000, CRC(cefd4330) SHA1(0bffb2b73229e9908a018e06daeceb736896e5f0)) @@ -555,9 +627,9 @@ ROM_START(dungdrag) ROM_LOAD16_BYTE("snd_u13.512", 0x20000, 0x10000, CRC(1e2d9211) SHA1(f5fcf1c07f01e7f1a7abff9ac3c481b84471d3a6)) ROM_END -/*------------------------------------ +/*------------------------- / Eight Ball Champ #0B38 -/------------------------------------*/ +/-------------------------*/ ROM_START(eballchp) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD( "u3_cpu.128", 0xc000, 0x4000, CRC(025f3008) SHA1(25d310f169b92ce6b348330816ddc3b5710e57da)) @@ -567,9 +639,9 @@ ROM_START(eballchp) ROM_LOAD("u5_snd.532", 0xf000, 0x1000, CRC(655441df) SHA1(9da5578856ded3dcdafed67679eb4c4134dc9f81)) ROM_END -/*------------------------------------------------ +/*----------------------------------- / Escape from the Lost World #0H05 -/-----------------------------------------------*/ +/-----------------------------------*/ ROM_START(esclwrld) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD( "u2.128", 0x8000, 0x4000, CRC(b11a97ea) SHA1(29339785a67ed7dc9eb39ddc7bb7e6baaf731210)) @@ -591,9 +663,9 @@ ROM_START(esclwrldg) ROM_LOAD16_BYTE("u14.512", 0x20001, 0x10000, CRC(0b92afff) SHA1(78f51989e74ced9e0a81c4e18d5abad71de01faf)) ROM_LOAD16_BYTE("u13.512", 0x20000, 0x10000, CRC(b056842e) SHA1(7c67e5d69235a784b9c38cb31302d206278a3814)) ROM_END -/*------------------------------------ +/*------------------ / Hardbody #0E94 -/------------------------------------*/ +/------------------*/ ROM_START(hardbody) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD( "hb_cpu2.bin", 0x8000, 0x4000, CRC(03975ea9) SHA1(8a4ba6bb5e6ab8da5fffaead283e26edd297e637)) @@ -618,9 +690,9 @@ ROM_START(hardbodyg) ROM_LOAD("sound_u7.512", 0x0000, 0x10000, CRC(c96f91af) SHA1(9602a8991ca0cf9a7c68710f55c245d9c675b06f)) ROM_END -/*----------------------------------------- +/*---------------------------- / Heavy Metal Meltdown #0H03 -/-----------------------------------------*/ +/----------------------------*/ ROM_START(hvymetap) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD( "u2.rom", 0x8000, 0x4000, CRC(53466e4e) SHA1(af6d0e15821ff707f24bb99b8d9dfb9f929906db)) @@ -639,9 +711,9 @@ ROM_START(hvymetapg) ROM_LOAD16_BYTE("u11.rom", 0x00000, 0x10000, CRC(b7e4de7d) SHA1(bcc89e10c368cdbc5137d8f585e109c0be25522d)) ROM_END -/*------------------------------------ +/*----------------- / Lady Luck #0E34 -/------------------------------------*/ +/-----------------*/ ROM_START(ladyluck) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD( "u3.cpu", 0xc000, 0x4000, CRC(129f41f5) SHA1(0351419814d3f4e98a4572fdec9d53e12fe6b6be)) @@ -652,9 +724,9 @@ ROM_START(ladyluck) ROM_RELOAD(0xe000, 0x2000) ROM_END -/*-------------------------------- +/*------------------ / MotorDome #0E14 -/-------------------------------*/ +/------------------*/ ROM_START(motrdome) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD( "modm_u2.dat", 0x8000, 0x4000, CRC(820ca073) SHA1(0b50712f7d65f629af934deccc52d588f390a05b)) @@ -679,9 +751,9 @@ ROM_START(motrdomeg) // German version claims to be game #E69 ROM_LOAD("modm_u7.snd", 0x8000, 0x8000, CRC(29ce4679) SHA1(f17998198b542dd99a34abd678db7e031bde074b)) ROM_END -/*-------------------------------- +/*--------------------- / Party Animal #0H01 -/-------------------------------*/ +/---------------------*/ ROM_START(prtyanim) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD( "cpu_u2.128", 0x8000, 0x4000, CRC(abdc0b2d) SHA1(b93c7248ea83461101383023bd4e4a50292d8570)) @@ -718,9 +790,9 @@ ROM_START(specforc) ROM_LOAD16_BYTE("u13_snd.512", 0x20000, 0x10000, CRC(3edda92d) SHA1(dbd95bb1c534779f56cc9e30efef159feaf22712)) ROM_END -/*------------------------------------ +/*------------------------ / Strange Science #0E35 -/------------------------------------*/ +/------------------------*/ ROM_START(strngsci) ROM_REGION(0x10000, "maincpu", 0) @@ -746,15 +818,14 @@ ROM_START(strngscig) ROM_LOAD("sound_u7.256", 0x8000, 0x8000, CRC(bc33901e) SHA1(5231d8f01a107742acee2d13580a461063018a11)) ROM_END -/*------------------------------------------------------------- +/*------------------- / Truck Stop #2001 -/-------------------------------------------------------------*/ +/-------------------*/ ROM_START(trucksp3) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD( "u2_p3.128", 0x8000, 0x4000, CRC(79b2a5b1) SHA1(d3de91bfadc9684302b2367cfcb30ed0d6faa020)) ROM_LOAD( "u3_p3.128", 0xc000, 0x4000, CRC(2993373c) SHA1(26490f1dd8a5329a88a2ceb1e6044711a29f1445)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASE00) - ROM_REGION(0x30000, "sound1", 0) + ROM_REGION(0x30000, "s11sound:audiocpu", ROMREGION_ERASEFF) ROM_LOAD("u4sndp1.256", 0x00000, 0x8000, CRC(120a386f) SHA1(51b3b45eb7ea63758b21aad404ba12a9607fec44)) ROM_RELOAD(0x00000 +0x8000, 0x8000) ROM_LOAD("u19sndp1.256", 0x10000, 0x8000, CRC(5cd43dda) SHA1(23dd8a52ea1340fc239a246af0d94da905464efb)) @@ -767,8 +838,7 @@ ROM_START(trucksp2) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD( "u2_p2.128", 0x8000, 0x4000, CRC(3c397dec) SHA1(2fc86ad39c935ce8615eafd67e571ac94c938cd7)) ROM_LOAD( "u3_p2.128", 0xc000, 0x4000, CRC(d7ac519a) SHA1(612bf9fee0d54e8b1215508bd6c1ea61dcb99951)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASE00) - ROM_REGION(0x30000, "sound1", 0) + ROM_REGION(0x30000, "s11sound:audiocpu", ROMREGION_ERASEFF) ROM_LOAD("u4sndp1.256", 0x00000, 0x8000, CRC(120a386f) SHA1(51b3b45eb7ea63758b21aad404ba12a9607fec44)) ROM_RELOAD(0x00000 +0x8000, 0x8000) ROM_LOAD("u19sndp1.256", 0x10000, 0x8000, CRC(5cd43dda) SHA1(23dd8a52ea1340fc239a246af0d94da905464efb)) @@ -781,10 +851,10 @@ ROM_END // 1st gen -GAME( 1985, eballchp, 0, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Eight Ball Champ", MACHINE_IS_SKELETON_MECHANICAL ) -GAME( 1985, beatclck, 0, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Beat the Clock", 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, ladyluck, 0, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Lady Luck", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1985, eballchp, 0, digit6, by6803, by6803_state, empty_init, ROT0, "Bally", "Eight Ball Champ", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1985, beatclck, 0, digit6, by6803, by6803_state, empty_init, ROT0, "Bally", "Beat the Clock", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1985, beatclck2, beatclck, digit6, by6803, by6803_state, empty_init, ROT0, "Bally", "Beat the Clock (with flasher support)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1986, ladyluck, 0, digit6, by6803, by6803_state, empty_init, ROT0, "Bally", "Lady Luck", MACHINE_IS_SKELETON_MECHANICAL ) // 2nd gen GAME( 1986, motrdome, 0, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "MotorDome (rev. D)", MACHINE_IS_SKELETON_MECHANICAL ) @@ -809,6 +879,6 @@ GAME( 1987, esclwrldg, esclwrld, by6803, by6803, by6803_state, empty_init, ROT0, GAME( 1987, dungdrag, 0, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Dungeons & Dragons", MACHINE_IS_SKELETON_MECHANICAL ) GAME( 1988, black100, 0, by6803, by6803, by6803_state, empty_init, ROT0, "Bally", "Blackwater 100", 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 ) +GAME( 1988, trucksp3, 0, s11, by6803, by6803_state, empty_init, ROT0, "Bally", "Truck Stop (P-3)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1988, trucksp2, trucksp3, s11, by6803, by6803_state, empty_init, ROT0, "Bally", "Truck Stop (P-2)", MACHINE_IS_SKELETON_MECHANICAL ) +GAME( 1989, atlantip, 0, s11, by6803, by6803_state, empty_init, ROT0, "Bally", "Atlantis (rev. 3)", MACHINE_IS_SKELETON_MECHANICAL ) diff --git a/src/mame/drivers/wms_shuffle.cpp b/src/mame/drivers/wms_shuffle.cpp index 182a0ace199..e72e2a365d2 100644 --- a/src/mame/drivers/wms_shuffle.cpp +++ b/src/mame/drivers/wms_shuffle.cpp @@ -49,7 +49,6 @@ ToDo: #include "machine/clock.h" #include "machine/input_merger.h" #include "machine/ripple_counter.h" -#include "sound/dac.h" #include "speaker.h" #include "shuffle4.lh" -- cgit v1.2.3