summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Robbbert <Robbbert@users.noreply.github.com>2022-02-07 03:10:42 +1100
committer Robbbert <Robbbert@users.noreply.github.com>2022-02-07 03:10:42 +1100
commit91d68adfe9e2067070eaac8d3a2d2db54962ac85 (patch)
treef434d1adeb8585266abb7d4d008269178c8cdb0e
parentc5d5251109bb2a859683aca786e99d2b756463e9 (diff)
by6803: added notes.
-rw-r--r--src/mame/drivers/by6803.cpp308
-rw-r--r--src/mame/drivers/wms_shuffle.cpp1
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<m6803_cpu_device> m_maincpu;
+ //optional_device<williams_s11b_sound_device> m_s11sound;
required_device<pia6821_device> m_pia0;
required_device<pia6821_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"