From 0d4f2a1a4307f851f193eca5eeadfcf4dba5655a Mon Sep 17 00:00:00 2001 From: mahlemiut Date: Thu, 3 Jan 2013 06:23:15 +0000 Subject: [PATCH] s11c: Preliminary start to System 11C. Games run, but there are issues with either the DAC and/or HC55516. --- .gitattributes | 1 + src/mame/drivers/s11.c | 21 +- src/mame/drivers/s11a.c | 2 +- src/mame/drivers/s11c.c | 594 +++++++++++++++++++++++++++------------ src/mame/includes/s11.h | 33 ++- src/mame/layout/s11c.lay | 161 +++++++++++ src/mame/mame.mak | 1 + 7 files changed, 623 insertions(+), 190 deletions(-) create mode 100644 src/mame/layout/s11c.lay diff --git a/.gitattributes b/.gitattributes index f7e778665bb..c2f38b369da 100644 --- a/.gitattributes +++ b/.gitattributes @@ -4579,6 +4579,7 @@ src/mame/layout/royalcrd.lay svneol=native#text/plain src/mame/layout/s11.lay svneol=native#text/plain src/mame/layout/s11a.lay svneol=native#text/plain src/mame/layout/s11b.lay svneol=native#text/plain +src/mame/layout/s11c.lay svneol=native#text/plain src/mame/layout/s3.lay svneol=native#text/plain src/mame/layout/s4.lay svneol=native#text/plain src/mame/layout/s6.lay svneol=native#text/plain diff --git a/src/mame/drivers/s11.c b/src/mame/drivers/s11.c index adde4f10e0e..2acef0e0c1a 100644 --- a/src/mame/drivers/s11.c +++ b/src/mame/drivers/s11.c @@ -142,7 +142,8 @@ void s11_state::device_timer(emu_timer &timer, device_timer_id id, int param, vo { m_maincpu->set_input_line(M6800_IRQ_LINE,ASSERT_LINE); m_irq_timer->adjust(attotime::from_ticks(32,E_CLOCK),0); - m_pias->cb1_w(0); + if(m_pias) + m_pias->cb1_w(0); m_irq_active = true; m_pia28->ca1_w(BIT(ioport("DIAGS")->read(), 2)); // Advance m_pia28->cb1_w(BIT(ioport("DIAGS")->read(), 3)); // Up/Down @@ -151,7 +152,8 @@ void s11_state::device_timer(emu_timer &timer, device_timer_id id, int param, vo { m_maincpu->set_input_line(M6800_IRQ_LINE,CLEAR_LINE); m_irq_timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,E_CLOCK),1); - m_pias->cb1_w(1); + if(m_pias) + m_pias->cb1_w(1); m_irq_active = false; m_pia28->ca1_w(1); m_pia28->cb1_w(1); @@ -177,7 +179,8 @@ INPUT_CHANGED_MEMBER( s11_state::audio_nmi ) { // Diagnostic button sends a pulse to NMI pin if (newval==CLEAR_LINE) - m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); + if(m_audiocpu) + m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); } WRITE_LINE_MEMBER( s11_state::pia_irq ) @@ -211,7 +214,8 @@ WRITE_LINE_MEMBER( s11_state::pia21_ca2_w ) { // sound ns m_ca1 = state; - m_pias->ca1_w(m_ca1); + if(m_pias) + m_pias->ca1_w(m_ca1); m_pia40->cb2_w(m_ca1); } @@ -420,13 +424,15 @@ READ_LINE_MEMBER( s11_state::pias_ca1_r ) WRITE_LINE_MEMBER( s11_state::pias_ca2_w ) { // speech clock - hc55516_clock_w(m_hc55516, state); + if(m_hc55516) + hc55516_clock_w(m_hc55516, state); } WRITE_LINE_MEMBER( s11_state::pias_cb2_w ) { // speech data - hc55516_digit_w(m_hc55516, state); + if(m_hc55516) + hc55516_digit_w(m_hc55516, state); } READ8_MEMBER( s11_state::dac_r ) @@ -436,7 +442,8 @@ READ8_MEMBER( s11_state::dac_r ) WRITE8_MEMBER( s11_state::dac_w ) { - m_dac->write_unsigned8(data); + if(m_dac) + m_dac->write_unsigned8(data); } static const pia6821_interface pias_intf = diff --git a/src/mame/drivers/s11a.c b/src/mame/drivers/s11a.c index c765e966b8b..b560a0d485d 100644 --- a/src/mame/drivers/s11a.c +++ b/src/mame/drivers/s11a.c @@ -292,7 +292,7 @@ static const pia6821_interface pia40_intf = DRIVER_INIT_MEMBER( s11a_state, s11a ) { UINT8 *BGROM = memregion("bgcpu")->base(); - membank("bgbank")->configure_entries(0, 2, &BGROM[0x10000], 0x8000); + membank("bgbank")->configure_entries(0, 6, &BGROM[0x10000], 0x8000); membank("bgbank")->set_entry(0); s11_state::init_s11(); } diff --git a/src/mame/drivers/s11c.c b/src/mame/drivers/s11c.c index 9553c9737fc..0ab2f5bc554 100644 --- a/src/mame/drivers/s11c.c +++ b/src/mame/drivers/s11c.c @@ -3,48 +3,319 @@ */ -#include "emu.h" +#include "machine/genpin.h" #include "cpu/m6800/m6800.h" - -class williams_s11c_state : public driver_device -{ -public: - williams_s11c_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu") - { } - -protected: - - // devices - required_device m_maincpu; - - // driver_device overrides - virtual void machine_reset(); -public: - DECLARE_DRIVER_INIT(williams_s11c); -}; +#include "cpu/m6809/m6809.h" +#include "machine/6821pia.h" +#include "sound/hc55516.h" +#include "sound/2151intf.h" +#include "sound/dac.h" +#include "includes/s11.h" +#include "s11c.lh" -static ADDRESS_MAP_START( williams_s11c_map, AS_PROGRAM, 8, williams_s11c_state ) - AM_RANGE(0x0000, 0xffff) AM_NOP +static ADDRESS_MAP_START( s11c_main_map, AS_PROGRAM, 8, s11c_state ) + AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("nvram") + AM_RANGE(0x2100, 0x2103) AM_MIRROR(0x00fc) AM_DEVREADWRITE("pia21", pia6821_device, read, write) // sound+solenoids + AM_RANGE(0x2200, 0x2200) AM_MIRROR(0x01ff) AM_WRITE(sol3_w) // solenoids + AM_RANGE(0x2400, 0x2403) AM_MIRROR(0x03fc) AM_DEVREADWRITE("pia24", pia6821_device, read, write) // lamps + AM_RANGE(0x2800, 0x2803) AM_MIRROR(0x03fc) AM_DEVREADWRITE("pia28", pia6821_device, read, write) // display + AM_RANGE(0x2c00, 0x2c03) AM_MIRROR(0x03fc) AM_DEVREADWRITE("pia2c", pia6821_device, read, write) // alphanumeric display + AM_RANGE(0x3000, 0x3003) AM_MIRROR(0x03fc) AM_DEVREADWRITE("pia30", pia6821_device, read, write) // inputs + AM_RANGE(0x3400, 0x3403) AM_MIRROR(0x0bfc) AM_DEVREADWRITE("pia34", pia6821_device, read, write) // widget + AM_RANGE(0x4000, 0xffff) AM_ROM +ADDRESS_MAP_END +/* +static ADDRESS_MAP_START( s11c_audio_map, AS_PROGRAM, 8, s11c_state ) + AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x0800) AM_RAM + AM_RANGE(0x1000, 0x1fff) AM_WRITE(bank_w) + AM_RANGE(0x2000, 0x2003) AM_MIRROR(0x0ffc) AM_DEVREADWRITE("pias", pia6821_device, read, write) + AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank0") + AM_RANGE(0xc000, 0xffff) AM_ROMBANK("bank1") +ADDRESS_MAP_END +*/ +static ADDRESS_MAP_START( s11c_bg_map, AS_PROGRAM, 8, s11c_state ) + AM_RANGE(0x0000, 0x07ff) AM_RAM + AM_RANGE(0x2000, 0x2001) AM_MIRROR(0x1ffe) AM_DEVREADWRITE("ym2151", ym2151_device, read, write) + AM_RANGE(0x4000, 0x4003) AM_MIRROR(0x1ffc) AM_DEVREADWRITE("pia40", pia6821_device, read, write) + AM_RANGE(0x6000, 0x67ff) AM_WRITE(bg_speech_digit_w) + AM_RANGE(0x6800, 0x6fff) AM_WRITE(bg_speech_clock_w) + AM_RANGE(0x7800, 0x7fff) AM_WRITE(bgbank_w) + AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bgbank") ADDRESS_MAP_END -static INPUT_PORTS_START( williams_s11c ) +static INPUT_PORTS_START( s11c ) + PORT_START("X0") + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("X1") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START ) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN3 ) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) + + PORT_START("X2") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_S) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_F) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_G) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_H) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_J) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K) + + PORT_START("X4") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_C) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_B) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_N) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_M) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA) + + PORT_START("X8") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_STOP) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COLON) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_X) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_MINUS) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_EQUALS) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSPACE) + + PORT_START("X10") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LEFT) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_RIGHT) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_UP) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_DOWN) + + PORT_START("X20") + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("X40") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Q) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_W) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_E) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_R) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Y) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_U) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_I) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_O) + + PORT_START("X80") + PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("DIAGS") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Audio Diag") PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, s11c_state, audio_nmi, 1) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Main Diag") PORT_CODE(KEYCODE_F2) PORT_CHANGED_MEMBER(DEVICE_SELF, s11c_state, main_nmi, 1) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Advance") PORT_CODE(KEYCODE_0) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Up/Down") PORT_CODE(KEYCODE_9) PORT_TOGGLE + PORT_CONFNAME( 0x10, 0x10, "Language" ) + PORT_CONFSETTING( 0x00, "German" ) + PORT_CONFSETTING( 0x10, "English" ) INPUT_PORTS_END -void williams_s11c_state::machine_reset() +WRITE8_MEMBER( s11c_state::bgbank_w ) { + data %= 6; + membank("bgbank")->set_entry(data & 0x07); } -DRIVER_INIT_MEMBER(williams_s11c_state,williams_s11c) +MACHINE_RESET_MEMBER( s11c_state, s11c ) { + membank("bgbank")->set_entry(0); + // reset the CPUs again, so that the CPUs are starting with the right vectors (otherwise sound may die on reset) + m_bgcpu->set_input_line(INPUT_LINE_RESET,PULSE_LINE); } -static MACHINE_CONFIG_START( williams_s11c, williams_s11c_state ) +DRIVER_INIT_MEMBER(s11c_state,s11c) +{ + emu_timer* timer = timer_alloc(TIMER_IRQ); + UINT8 *BGROM = memregion("bgcpu")->base(); + membank("bgbank")->configure_entries(0, 6, &BGROM[0x10000], 0x8000); + membank("bgbank")->set_entry(0); + set_invert(true); + set_timer(timer); + timer->adjust(attotime::from_ticks(S11_IRQ_CYCLES,E_CLOCK),1); +} + +static const pia6821_interface pia21_intf = +{ + DEVCB_DRIVER_MEMBER(s11_state, dac_r), /* port A in */ + DEVCB_NULL, /* port B in */ + DEVCB_NULL, /* line CA1 in */ + DEVCB_LINE_GND, /* line CB1 in */ + DEVCB_NULL, /* line CA2 in */ + DEVCB_NULL, /* line CB2 in */ + DEVCB_DRIVER_MEMBER(s11_state, sound_w), /* port A out */ + DEVCB_DRIVER_MEMBER(s11_state, sol2_w), /* port B out */ + DEVCB_DRIVER_LINE_MEMBER(s11_state, pia21_ca2_w), /* line CA2 out */ + DEVCB_DRIVER_LINE_MEMBER(s11_state, pia21_cb2_w), /* line CB2 out */ + DEVCB_DRIVER_LINE_MEMBER(s11_state, pia_irq), /* IRQA */ + DEVCB_DRIVER_LINE_MEMBER(s11_state, pia_irq) /* IRQB */ +}; + +static const pia6821_interface pia24_intf = +{ + DEVCB_NULL, /* port A in */ + DEVCB_NULL, /* port B in */ + DEVCB_LINE_GND, /* line CA1 in */ + DEVCB_LINE_GND, /* line CB1 in */ + DEVCB_LINE_VCC, /* line CA2 in */ + DEVCB_LINE_VCC, /* line CB2 in */ + DEVCB_DRIVER_MEMBER(s11_state, lamp0_w), /* port A out */ + DEVCB_DRIVER_MEMBER(s11_state, lamp1_w), /* port B out */ + DEVCB_NULL, /* line CA2 out */ + DEVCB_DRIVER_LINE_MEMBER(s11_state, pia24_cb2_w), /* line CB2 out */ + DEVCB_DRIVER_LINE_MEMBER(s11_state, pia_irq), /* IRQA */ + DEVCB_DRIVER_LINE_MEMBER(s11_state, pia_irq) /* IRQB */ +}; + +static const pia6821_interface pia28_intf = +{ + DEVCB_DRIVER_MEMBER(s11_state, pia28_w7_r), /* port A in */ + DEVCB_NULL, /* port B in */ + DEVCB_NULL, /* line CA1 in */ + DEVCB_NULL, /* line CB1 in */ + DEVCB_NULL, /* line CA2 in */ + DEVCB_NULL, /* line CB2 in */ + DEVCB_DRIVER_MEMBER(s11a_state, dig0_w), /* port A out */ + DEVCB_DRIVER_MEMBER(s11b_state, dig1_w), /* port B out */ + DEVCB_DRIVER_LINE_MEMBER(s11_state, pia28_ca2_w), /* line CA2 out */ + DEVCB_DRIVER_LINE_MEMBER(s11_state, pia28_cb2_w), /* line CB2 out */ + DEVCB_DRIVER_LINE_MEMBER(s11_state, pia_irq), /* IRQA */ + DEVCB_DRIVER_LINE_MEMBER(s11_state, pia_irq) /* IRQB */ +}; + +static const pia6821_interface pia2c_intf = +{ + DEVCB_NULL, /* port A in */ + DEVCB_NULL, /* port B in */ + DEVCB_NULL, /* line CA1 in */ + DEVCB_NULL, /* line CB1 in */ + DEVCB_NULL, /* line CA2 in */ + DEVCB_NULL, /* line CB2 in */ + DEVCB_DRIVER_MEMBER(s11b_state, pia2c_pa_w), /* port A out */ + DEVCB_DRIVER_MEMBER(s11b_state, pia2c_pb_w), /* port B out */ + DEVCB_NULL, /* line CA2 out */ + DEVCB_NULL, /* line CB2 out */ + DEVCB_DRIVER_LINE_MEMBER(s11_state, pia_irq), /* IRQA */ + DEVCB_DRIVER_LINE_MEMBER(s11_state, pia_irq) /* IRQB */ +}; + +static const pia6821_interface pia30_intf = +{ + DEVCB_DRIVER_MEMBER(s11_state, switch_r), /* port A in */ + DEVCB_NULL, /* port B in */ + DEVCB_LINE_GND, /* line CA1 in */ + DEVCB_LINE_GND, /* line CB1 in */ + DEVCB_LINE_VCC, /* line CA2 in */ + DEVCB_LINE_VCC, /* line CB2 in */ + DEVCB_NULL, /* port A out */ + DEVCB_DRIVER_MEMBER(s11_state, switch_w), /* port B out */ + DEVCB_NULL, /* line CA2 out */ + DEVCB_DRIVER_LINE_MEMBER(s11_state, pia30_cb2_w), /* line CB2 out */ + DEVCB_DRIVER_LINE_MEMBER(s11_state, pia_irq), /* IRQA */ + DEVCB_DRIVER_LINE_MEMBER(s11_state, pia_irq) /* IRQB */ +}; + +static const pia6821_interface pia34_intf = +{ + DEVCB_NULL, /* port A in */ + DEVCB_NULL, /* port B in */ + DEVCB_NULL, /* line CA1 in */ + DEVCB_NULL, /* line CB1 in */ + DEVCB_NULL, /* line CA2 in */ + DEVCB_NULL, /* line CB2 in */ + DEVCB_DRIVER_MEMBER(s11b_state, pia34_pa_w), /* port A out */ + DEVCB_DRIVER_MEMBER(s11_state, pia34_pb_w), /* port B out */ + DEVCB_NULL, /* line CA2 out */ + DEVCB_DRIVER_LINE_MEMBER(s11_state, pia34_cb2_w), /* line CB2 out */ + DEVCB_DRIVER_LINE_MEMBER(s11_state, pia_irq), /* IRQA */ + DEVCB_DRIVER_LINE_MEMBER(s11_state, pia_irq) /* IRQB */ +}; + +//static const pia6821_interface pias_intf = +//{ +// DEVCB_DRIVER_MEMBER(s11_state, dac_r), /* port A in */ +// DEVCB_NULL, /* port B in */ +// DEVCB_DRIVER_LINE_MEMBER(s11_state, pias_ca1_r), /* line CA1 in */ +// DEVCB_NULL, /* line CB1 in */ +// DEVCB_NULL, /* line CA2 in */ +// DEVCB_NULL, /* line CB2 in */ +// DEVCB_DRIVER_MEMBER(s11_state, sound_w), /* port A out */ +// DEVCB_DRIVER_MEMBER(s11_state, dac_w), /* port B out */ +// DEVCB_NULL, /* line CA2 out */ +// DEVCB_NULL, /* line CB2 out */ +// DEVCB_CPU_INPUT_LINE("audiocpu", M6800_IRQ_LINE), /* IRQA */ +// DEVCB_CPU_INPUT_LINE("audiocpu", M6800_IRQ_LINE) /* IRQB */ +//}; + +static const pia6821_interface pia40_intf = +{ + DEVCB_NULL, /* port A in */ + DEVCB_NULL, /* port B in */ + DEVCB_NULL, /* line CA1 in */ + DEVCB_NULL, /* line CB1 in */ + DEVCB_LINE_VCC, /* line CA2 in */ + DEVCB_NULL, /* line CB2 in */ + DEVCB_DRIVER_MEMBER(s11_state, pia40_pa_w), /* port A out */ + DEVCB_DRIVER_MEMBER(s11_state, pia40_pb_w), /* port B out */ + DEVCB_DRIVER_LINE_MEMBER(s11b_state, pia40_ca2_w), /* line CA2 out */ + DEVCB_DRIVER_LINE_MEMBER(s11_state, pia40_cb2_w), /* line CB2 out */ + DEVCB_CPU_INPUT_LINE("bgcpu", M6809_FIRQ_LINE), /* IRQA */ + DEVCB_CPU_INPUT_LINE("bgcpu", INPUT_LINE_NMI) /* IRQB */ +}; + +static MACHINE_CONFIG_START( s11c, s11c_state ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", M6800, 1000000) - MCFG_CPU_PROGRAM_MAP(williams_s11c_map) + MCFG_CPU_ADD("maincpu", M6808, XTAL_4MHz) + MCFG_CPU_PROGRAM_MAP(s11c_main_map) + MCFG_MACHINE_RESET_OVERRIDE(s11c_state, s11c) + + /* Video */ + MCFG_DEFAULT_LAYOUT(layout_s11c) + + /* Sound */ + MCFG_FRAGMENT_ADD( genpin_audio ) + + /* Devices */ + MCFG_PIA6821_ADD("pia21", pia21_intf) + MCFG_PIA6821_ADD("pia24", pia24_intf) + MCFG_PIA6821_ADD("pia28", pia28_intf) + MCFG_PIA6821_ADD("pia2c", pia2c_intf) + MCFG_PIA6821_ADD("pia30", pia30_intf) + MCFG_PIA6821_ADD("pia34", pia34_intf) + MCFG_NVRAM_ADD_1FILL("nvram") + + // generic sound board is not used in System 11C, except for Star Trax + + /* Add the background music card */ + MCFG_CPU_ADD("bgcpu", M6809E, XTAL_8MHz) // MC68B09E (note: schematics show this as 8mhz/2, but games crash very quickly with that speed?) + MCFG_CPU_PROGRAM_MAP(s11c_bg_map) + MCFG_QUANTUM_TIME(attotime::from_hz(50)) + + MCFG_SPEAKER_STANDARD_MONO("bg") + MCFG_YM2151_ADD("ym2151", 3580000) + MCFG_YM2151_IRQ_HANDLER(WRITELINE(s11b_state, ym2151_irq_w)) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "bg", 0.25) + + MCFG_DAC_ADD("dac1") + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "bg", 0.50) + + MCFG_SOUND_ADD("hc55516_bg", HC55516, 0) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "bg", 0.50) + + MCFG_PIA6821_ADD("pia40", pia40_intf) MACHINE_CONFIG_END /*-------------------- @@ -54,22 +325,20 @@ ROM_START(bbnny_l2) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("bugs_u26.l2", 0x4000, 0x4000, CRC(b4358920) SHA1(93af1cf5dc2b5442f428a621c0f73b27c197a3df)) ROM_LOAD("bugs_u27.l2", 0x8000, 0x8000, CRC(8ff29439) SHA1(8fcdcea556e9e01ea8cb7c1548f98af2467c8a5f)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) - ROM_REGION(0x30000, "sound1", 0) - ROM_LOAD("bugs_u4.l2", 0x00000, 0x10000, CRC(04bc9aa5) SHA1(c3da2dc3e26b88a0ebc6f87e61fc71bec45330c3)) - ROM_LOAD("bugs_u19.l1", 0x10000, 0x10000, CRC(a2084702) SHA1(ffd749387e7b52bad1e98c6a8939fb87bc67524c)) - ROM_LOAD("bugs_u20.l1", 0x20000, 0x10000, CRC(5df734ef) SHA1(c8d153444dd6171c3ebddc8100ab06fde3373cc6)) + ROM_REGION(0x40000, "bgcpu", ROMREGION_ERASEFF) + ROM_LOAD("bugs_u4.l2", 0x10000, 0x10000, CRC(04bc9aa5) SHA1(c3da2dc3e26b88a0ebc6f87e61fc71bec45330c3)) + ROM_LOAD("bugs_u19.l1", 0x20000, 0x10000, CRC(a2084702) SHA1(ffd749387e7b52bad1e98c6a8939fb87bc67524c)) + ROM_LOAD("bugs_u20.l1", 0x30000, 0x10000, CRC(5df734ef) SHA1(c8d153444dd6171c3ebddc8100ab06fde3373cc6)) ROM_END ROM_START(bbnny_lu) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("bugs_u26.l2", 0x4000, 0x4000, CRC(b4358920) SHA1(93af1cf5dc2b5442f428a621c0f73b27c197a3df)) ROM_LOAD("u27-lu2.rom", 0x8000, 0x8000, CRC(aaa2c82d) SHA1(b279c87cb2ac90a818eeb1afa6115b8cdab1b0df)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) - ROM_REGION(0x30000, "sound1", 0) - ROM_LOAD("bugs_u4.l2", 0x00000, 0x10000, CRC(04bc9aa5) SHA1(c3da2dc3e26b88a0ebc6f87e61fc71bec45330c3)) - ROM_LOAD("bugs_u19.l1", 0x10000, 0x10000, CRC(a2084702) SHA1(ffd749387e7b52bad1e98c6a8939fb87bc67524c)) - ROM_LOAD("bugs_u20.l1", 0x20000, 0x10000, CRC(5df734ef) SHA1(c8d153444dd6171c3ebddc8100ab06fde3373cc6)) + ROM_REGION(0x40000, "bgcpu", ROMREGION_ERASEFF) + ROM_LOAD("bugs_u4.l2", 0x10000, 0x10000, CRC(04bc9aa5) SHA1(c3da2dc3e26b88a0ebc6f87e61fc71bec45330c3)) + ROM_LOAD("bugs_u19.l1", 0x20000, 0x10000, CRC(a2084702) SHA1(ffd749387e7b52bad1e98c6a8939fb87bc67524c)) + ROM_LOAD("bugs_u20.l1", 0x30000, 0x10000, CRC(5df734ef) SHA1(c8d153444dd6171c3ebddc8100ab06fde3373cc6)) ROM_END /*-------------------- @@ -79,33 +348,30 @@ ROM_START(diner_l4) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("dinr_u26.l4", 0x4000, 0x4000, CRC(6f187abf) SHA1(8acabbccdf3528a9c5e60cc8939ab960bf4c5512)) ROM_LOAD("dinr_u27.l4", 0x8000, 0x8000, CRC(d69f9f74) SHA1(88d9b42c2313a90e5d6f50220d3b44331595d86b)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) - ROM_REGION(0x30000, "sound1", 0) - ROM_LOAD("dinr_u4.l1", 0x00000, 0x10000, CRC(3bd28368) SHA1(41eec2f5f863039deaabfae8aece4b1cf15e4b78)) - ROM_LOAD("dinr_u19.l1", 0x10000, 0x10000, CRC(278b9a30) SHA1(41e59adb8b6c08caee46c3dd73256480b4041619)) - ROM_LOAD("dinr_u20.l1", 0x20000, 0x10000, CRC(511fb260) SHA1(e6e25b464c5c38f3c0492436f1e8aa2be33dd278)) + ROM_REGION(0x40000, "bgcpu", ROMREGION_ERASEFF) + ROM_LOAD("dinr_u4.l1", 0x10000, 0x10000, CRC(3bd28368) SHA1(41eec2f5f863039deaabfae8aece4b1cf15e4b78)) + ROM_LOAD("dinr_u19.l1", 0x20000, 0x10000, CRC(278b9a30) SHA1(41e59adb8b6c08caee46c3dd73256480b4041619)) + ROM_LOAD("dinr_u20.l1", 0x30000, 0x10000, CRC(511fb260) SHA1(e6e25b464c5c38f3c0492436f1e8aa2be33dd278)) ROM_END ROM_START(diner_l3) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("u26-la3.rom", 0x4000, 0x4000, CRC(8b6aa22e) SHA1(6b802a85fc2babf5a183fb434df11597363c1c9d)) ROM_LOAD("u27-la3.rom", 0x8000, 0x8000, CRC(4171451a) SHA1(818e330245691d9ef3181b885c9342880f89d912)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) - ROM_REGION(0x30000, "sound1", 0) - ROM_LOAD("dinr_u4.l1", 0x00000, 0x10000, CRC(3bd28368) SHA1(41eec2f5f863039deaabfae8aece4b1cf15e4b78)) - ROM_LOAD("dinr_u19.l1", 0x10000, 0x10000, CRC(278b9a30) SHA1(41e59adb8b6c08caee46c3dd73256480b4041619)) - ROM_LOAD("dinr_u20.l1", 0x20000, 0x10000, CRC(511fb260) SHA1(e6e25b464c5c38f3c0492436f1e8aa2be33dd278)) + ROM_REGION(0x40000, "bgcpu", ROMREGION_ERASEFF) + ROM_LOAD("dinr_u4.l1", 0x10000, 0x10000, CRC(3bd28368) SHA1(41eec2f5f863039deaabfae8aece4b1cf15e4b78)) + ROM_LOAD("dinr_u19.l1", 0x20000, 0x10000, CRC(278b9a30) SHA1(41e59adb8b6c08caee46c3dd73256480b4041619)) + ROM_LOAD("dinr_u20.l1", 0x30000, 0x10000, CRC(511fb260) SHA1(e6e25b464c5c38f3c0492436f1e8aa2be33dd278)) ROM_END ROM_START(diner_l1) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("u26-lu1.rom", 0x4000, 0x4000, CRC(259b302f) SHA1(d7e19c2d2ad7805d9158178c24d180d158a59b0c)) ROM_LOAD("u27-lu1.rom", 0x8000, 0x8000, CRC(35fafbb3) SHA1(0db3d0c9421f4fdcf4d376d543626559e1bf2daa)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) - ROM_REGION(0x30000, "sound1", 0) - ROM_LOAD("dinr_u4.l1", 0x00000, 0x10000, CRC(3bd28368) SHA1(41eec2f5f863039deaabfae8aece4b1cf15e4b78)) - ROM_LOAD("dinr_u19.l1", 0x10000, 0x10000, CRC(278b9a30) SHA1(41e59adb8b6c08caee46c3dd73256480b4041619)) - ROM_LOAD("dinr_u20.l1", 0x20000, 0x10000, CRC(511fb260) SHA1(e6e25b464c5c38f3c0492436f1e8aa2be33dd278)) + ROM_REGION(0x40000, "bgcpu", ROMREGION_ERASEFF) + ROM_LOAD("dinr_u4.l1", 0x10000, 0x10000, CRC(3bd28368) SHA1(41eec2f5f863039deaabfae8aece4b1cf15e4b78)) + ROM_LOAD("dinr_u19.l1", 0x20000, 0x10000, CRC(278b9a30) SHA1(41e59adb8b6c08caee46c3dd73256480b4041619)) + ROM_LOAD("dinr_u20.l1", 0x30000, 0x10000, CRC(511fb260) SHA1(e6e25b464c5c38f3c0492436f1e8aa2be33dd278)) ROM_END /*-------------------- @@ -115,22 +381,20 @@ ROM_START(dd_l2) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("dude_u26.l2", 0x4000, 0x4000, CRC(d1e19fc2) SHA1(800329b5fd563fcd27add14da4522082c01eb86e)) ROM_LOAD("dude_u27.l2", 0x8000, 0x8000, CRC(654b5d4c) SHA1(e73834dbb35cf78eab68a5966e4049640e16dddf)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) - ROM_REGION(0x30000, "sound1", 0) - ROM_LOAD("dude_u4.l1", 0x00000, 0x10000, CRC(3eeef714) SHA1(74dcc83958cb62819e0ac36ca83001694faafec7)) - ROM_LOAD("dude_u19.l1", 0x10000, 0x10000, CRC(dc7b985b) SHA1(f672d1f1fe1d1d887113ea6ccd745a78f7760526)) - ROM_LOAD("dude_u20.l1", 0x20000, 0x10000, CRC(a83d53dd) SHA1(92a81069c42c7760888201fb0787fa7ddfbf1658)) + ROM_REGION(0x40000, "bgcpu", ROMREGION_ERASEFF) + ROM_LOAD("dude_u4.l1", 0x10000, 0x10000, CRC(3eeef714) SHA1(74dcc83958cb62819e0ac36ca83001694faafec7)) + ROM_LOAD("dude_u19.l1", 0x20000, 0x10000, CRC(dc7b985b) SHA1(f672d1f1fe1d1d887113ea6ccd745a78f7760526)) + ROM_LOAD("dude_u20.l1", 0x30000, 0x10000, CRC(a83d53dd) SHA1(92a81069c42c7760888201fb0787fa7ddfbf1658)) ROM_END ROM_START(dd_p6) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("u26-pa6.11c", 0x4000, 0x4000, CRC(6f6a6e22) SHA1(2d8a1b472eb06a9f7aeea4b2f9a82f83eb4ee08a)) ROM_LOAD("u27-pa6.11c", 0x8000, 0x8000, CRC(26022273) SHA1(ca66139c3bd0c313d41a396c484d2c1b8f4ae536)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) - ROM_REGION(0x30000, "sound1", 0) - ROM_LOAD("dude_u4.l1", 0x00000, 0x10000, CRC(3eeef714) SHA1(74dcc83958cb62819e0ac36ca83001694faafec7)) - ROM_LOAD("dude_u19.l1", 0x10000, 0x10000, CRC(dc7b985b) SHA1(f672d1f1fe1d1d887113ea6ccd745a78f7760526)) - ROM_LOAD("dude_u20.l1", 0x20000, 0x10000, CRC(a83d53dd) SHA1(92a81069c42c7760888201fb0787fa7ddfbf1658)) + ROM_REGION(0x40000, "bgcpu", ROMREGION_ERASEFF) + ROM_LOAD("dude_u4.l1", 0x10000, 0x10000, CRC(3eeef714) SHA1(74dcc83958cb62819e0ac36ca83001694faafec7)) + ROM_LOAD("dude_u19.l1", 0x20000, 0x10000, CRC(dc7b985b) SHA1(f672d1f1fe1d1d887113ea6ccd745a78f7760526)) + ROM_LOAD("dude_u20.l1", 0x30000, 0x10000, CRC(a83d53dd) SHA1(92a81069c42c7760888201fb0787fa7ddfbf1658)) ROM_END /*-------------------- @@ -140,44 +404,40 @@ ROM_START(pool_l7) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("pool_u26.l7", 0x4000, 0x4000, CRC(cee98aed) SHA1(5b652684c10ab4945783089d848b2f663d3b2547)) ROM_LOAD("pool_u27.l7", 0x8000, 0x8000, CRC(356d9a89) SHA1(ce795c535d03a14d28fb3f2071cae48ccdb1a856)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) - ROM_REGION(0x30000, "sound1", 0) - ROM_LOAD("pool_u4.l2", 0x00000, 0x10000, CRC(04e95e10) SHA1(3873b3cd6c2961b3f2f28a1e17f8a63c6db808d2)) - ROM_LOAD("pool_u19.l2", 0x10000, 0x10000, CRC(0f45d02b) SHA1(58bbfdb3b98c43b66e11808cec7cd65a7f2dce6d)) - ROM_LOAD("pool_u20.l2", 0x20000, 0x10000, CRC(925f62d6) SHA1(21b8d6f9a8b98fce8a3cdf7f5f2d40200544a898)) + ROM_REGION(0x40000, "bgcpu", ROMREGION_ERASEFF) + ROM_LOAD("pool_u4.l2", 0x10000, 0x10000, CRC(04e95e10) SHA1(3873b3cd6c2961b3f2f28a1e17f8a63c6db808d2)) + ROM_LOAD("pool_u19.l2", 0x20000, 0x10000, CRC(0f45d02b) SHA1(58bbfdb3b98c43b66e11808cec7cd65a7f2dce6d)) + ROM_LOAD("pool_u20.l2", 0x30000, 0x10000, CRC(925f62d6) SHA1(21b8d6f9a8b98fce8a3cdf7f5f2d40200544a898)) ROM_END ROM_START(pool_l6) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("pool_u26.la6", 0x4000, 0x4000, CRC(fec70d5a) SHA1(bc155a590f64f2b43b8799c1a6d2336dde45a10c)) ROM_LOAD("pool_u27.la6", 0x8000, 0x8000, CRC(91fb5231) SHA1(538ddc66a5885e4b7a840d35a1e62b92f73b39ad)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) - ROM_REGION(0x30000, "sound1", 0) - ROM_LOAD("pool_u4.l2", 0x00000, 0x10000, CRC(04e95e10) SHA1(3873b3cd6c2961b3f2f28a1e17f8a63c6db808d2)) - ROM_LOAD("pool_u19.l2", 0x10000, 0x10000, CRC(0f45d02b) SHA1(58bbfdb3b98c43b66e11808cec7cd65a7f2dce6d)) - ROM_LOAD("pool_u20.l2", 0x20000, 0x10000, CRC(925f62d6) SHA1(21b8d6f9a8b98fce8a3cdf7f5f2d40200544a898)) + ROM_REGION(0x40000, "bgcpu", ROMREGION_ERASEFF) + ROM_LOAD("pool_u4.l2", 0x10000, 0x10000, CRC(04e95e10) SHA1(3873b3cd6c2961b3f2f28a1e17f8a63c6db808d2)) + ROM_LOAD("pool_u19.l2", 0x20000, 0x10000, CRC(0f45d02b) SHA1(58bbfdb3b98c43b66e11808cec7cd65a7f2dce6d)) + ROM_LOAD("pool_u20.l2", 0x30000, 0x10000, CRC(925f62d6) SHA1(21b8d6f9a8b98fce8a3cdf7f5f2d40200544a898)) ROM_END ROM_START(pool_le2) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("pool_u26.le2", 0x4000, 0x4000, CRC(70526965) SHA1(69c7b74fff8fcc351e8bd9b8fce7655aebf7205c)) ROM_LOAD("pool_u27.le2", 0x8000, 0x8000, CRC(90911f02) SHA1(ef3d32b3c5bafcd886bbde8b897cb225c0c04464)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) - ROM_REGION(0x30000, "sound1", 0) - ROM_LOAD("pool_u4.l2", 0x00000, 0x10000, CRC(04e95e10) SHA1(3873b3cd6c2961b3f2f28a1e17f8a63c6db808d2)) - ROM_LOAD("pool_u19.l2", 0x10000, 0x10000, CRC(0f45d02b) SHA1(58bbfdb3b98c43b66e11808cec7cd65a7f2dce6d)) - ROM_LOAD("pool_u20.l2", 0x20000, 0x10000, CRC(925f62d6) SHA1(21b8d6f9a8b98fce8a3cdf7f5f2d40200544a898)) + ROM_REGION(0x40000, "bgcpu", ROMREGION_ERASEFF) + ROM_LOAD("pool_u4.l2", 0x10000, 0x10000, CRC(04e95e10) SHA1(3873b3cd6c2961b3f2f28a1e17f8a63c6db808d2)) + ROM_LOAD("pool_u19.l2", 0x20000, 0x10000, CRC(0f45d02b) SHA1(58bbfdb3b98c43b66e11808cec7cd65a7f2dce6d)) + ROM_LOAD("pool_u20.l2", 0x30000, 0x10000, CRC(925f62d6) SHA1(21b8d6f9a8b98fce8a3cdf7f5f2d40200544a898)) ROM_END ROM_START(pool_p7) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("pool_u26.pa7", 0x4000, 0x4000, CRC(91d2aae9) SHA1(b3dbc80809bca8b0435c3d8a0ceb504acab4a04a)) ROM_LOAD("pool_u27.pa7", 0x8000, 0x8000, CRC(eff6b940) SHA1(e0c3858803bbc5cacedefe57681efc2dc339e16d)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) - ROM_REGION(0x30000, "sound1", 0) - ROM_LOAD("pool_u4.l2", 0x00000, 0x10000, CRC(04e95e10) SHA1(3873b3cd6c2961b3f2f28a1e17f8a63c6db808d2)) - ROM_LOAD("pool_u19.l2", 0x10000, 0x10000, CRC(0f45d02b) SHA1(58bbfdb3b98c43b66e11808cec7cd65a7f2dce6d)) - ROM_LOAD("pool_u20.l2", 0x20000, 0x10000, CRC(925f62d6) SHA1(21b8d6f9a8b98fce8a3cdf7f5f2d40200544a898)) + ROM_REGION(0x40000, "bgcpu", ROMREGION_ERASEFF) + ROM_LOAD("pool_u4.l2", 0x10000, 0x10000, CRC(04e95e10) SHA1(3873b3cd6c2961b3f2f28a1e17f8a63c6db808d2)) + ROM_LOAD("pool_u19.l2", 0x20000, 0x10000, CRC(0f45d02b) SHA1(58bbfdb3b98c43b66e11808cec7cd65a7f2dce6d)) + ROM_LOAD("pool_u20.l2", 0x30000, 0x10000, CRC(925f62d6) SHA1(21b8d6f9a8b98fce8a3cdf7f5f2d40200544a898)) ROM_END /*-------------------- / Radical 9/90 @@ -186,36 +446,30 @@ ROM_START(radcl_l1) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("rad_u26.l1", 0x4000, 0x4000, CRC(84b1a125) SHA1(dd01fb9189acd2620c57149921aadb051f7a2412)) ROM_LOAD("rad_u27.l1", 0x8000, 0x8000, CRC(6f6ca382) SHA1(a61055aab97d3fe2ecd0ed4281a9681b1d910269)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) - ROM_REGION(0x30000, "sound1", 0) - ROM_LOAD("rad_u4.l1", 0x00000, 0x10000, CRC(5aafc09c) SHA1(27984bbc91dc7593e6a5b42f74dd6ddf58189bec)) - ROM_LOAD("rad_u19.l1", 0x10000, 0x10000, CRC(7c005e1f) SHA1(bdeea7517f2adf72b4b642bffb25ba5b98453127)) - ROM_LOAD("rad_u20.l1", 0x20000, 0x8000, CRC(05b96292) SHA1(7da0289cf0a0c93768c0706fdedfc3a5f2101e77)) - ROM_RELOAD(0x20000+0x8000, 0x8000) + ROM_REGION(0x40000, "bgcpu", ROMREGION_ERASEFF) + ROM_LOAD("rad_u4.l1", 0x10000, 0x10000, CRC(5aafc09c) SHA1(27984bbc91dc7593e6a5b42f74dd6ddf58189bec)) + ROM_LOAD("rad_u19.l1", 0x20000, 0x10000, CRC(7c005e1f) SHA1(bdeea7517f2adf72b4b642bffb25ba5b98453127)) + ROM_LOAD("rad_u20.l1", 0x30000, 0x8000, CRC(05b96292) SHA1(7da0289cf0a0c93768c0706fdedfc3a5f2101e77)) ROM_END ROM_START(radcl_g1) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("rad_u26.l1", 0x4000, 0x4000, CRC(84b1a125) SHA1(dd01fb9189acd2620c57149921aadb051f7a2412)) ROM_LOAD("u27-lg1.rom", 0x8000, 0x8000, CRC(4f2eca4b) SHA1(ff44deded1686cfa0351c4499485d6eb4561cbc1)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) - ROM_REGION(0x30000, "sound1", 0) - ROM_LOAD("rad_u4.l1", 0x00000, 0x10000, CRC(5aafc09c) SHA1(27984bbc91dc7593e6a5b42f74dd6ddf58189bec)) - ROM_LOAD("rad_u19.l1", 0x10000, 0x10000, CRC(7c005e1f) SHA1(bdeea7517f2adf72b4b642bffb25ba5b98453127)) - ROM_LOAD("rad_u20.l1", 0x20000, 0x8000, CRC(05b96292) SHA1(7da0289cf0a0c93768c0706fdedfc3a5f2101e77)) - ROM_RELOAD(0x20000+0x8000, 0x8000) + ROM_REGION(0x40000, "bgcpu", ROMREGION_ERASEFF) + ROM_LOAD("rad_u4.l1", 0x10000, 0x10000, CRC(5aafc09c) SHA1(27984bbc91dc7593e6a5b42f74dd6ddf58189bec)) + ROM_LOAD("rad_u19.l1", 0x20000, 0x10000, CRC(7c005e1f) SHA1(bdeea7517f2adf72b4b642bffb25ba5b98453127)) + ROM_LOAD("rad_u20.l1", 0x30000, 0x8000, CRC(05b96292) SHA1(7da0289cf0a0c93768c0706fdedfc3a5f2101e77)) ROM_END ROM_START(radcl_p3) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("rad_u26.p1", 0x4000, 0x4000, CRC(7d736ae9) SHA1(4ea6945fa5cfbd33fcdf780814b0bf5cb3faa388)) ROM_LOAD("u27-p1.rom", 0x8000, 0x8000, CRC(83b1d928) SHA1(b1bd5d8a93f1ab9fb9bf5c268d8530be438448e6)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) - ROM_REGION(0x30000, "sound1", 0) - ROM_LOAD("rad_u4.p3", 0x00000, 0x10000, CRC(d31b7744) SHA1(7ebcc1503fc322909d32c7c8bda8c0b6505919b3)) - ROM_LOAD("rad_u19.l1", 0x10000, 0x10000, CRC(7c005e1f) SHA1(bdeea7517f2adf72b4b642bffb25ba5b98453127)) - ROM_LOAD("rad_u20.p3", 0x20000, 0x8000, CRC(82f8369c) SHA1(0691a80672fc11d46359f710bd211de7a59de346)) - ROM_RELOAD(0x20000+0x8000, 0x8000) + ROM_REGION(0x40000, "bgcpu", ROMREGION_ERASEFF) + ROM_LOAD("rad_u4.p3", 0x10000, 0x10000, CRC(d31b7744) SHA1(7ebcc1503fc322909d32c7c8bda8c0b6505919b3)) + ROM_LOAD("rad_u19.l1", 0x20000, 0x10000, CRC(7c005e1f) SHA1(bdeea7517f2adf72b4b642bffb25ba5b98453127)) + ROM_LOAD("rad_u20.p3", 0x30000, 0x8000, CRC(82f8369c) SHA1(0691a80672fc11d46359f710bd211de7a59de346)) ROM_END /*-------------------- @@ -225,11 +479,10 @@ ROM_START(rvrbt_l3) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("gamb_u26.l3", 0x4000, 0x4000, CRC(a65f6004) SHA1(ea44bb7f8f2ec9e5989be63ba41f674b14d19b8a)) ROM_LOAD("gamb_u27.l3", 0x8000, 0x8000, CRC(9be0f613) SHA1(1c2b442bc3daef212fe23ff03f5409c354e79989)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) - ROM_REGION(0x30000, "sound1", 0) - ROM_LOAD("gamb_u4.l2", 0x00000, 0x10000, CRC(c0cfa9be) SHA1(352df9a4dcbc131ae249416e9e517137a04627ba)) - ROM_LOAD("gamb_u19.l1", 0x10000, 0x10000, CRC(04a3a8c8) SHA1(e72ef767f13282d2335cda3288037610d9bfedf2)) - ROM_LOAD("gamb_u20.l1", 0x20000, 0x10000, CRC(a60c734d) SHA1(76cfcf96276ca4f6b5eee0e0402fab5ee9685366)) + ROM_REGION(0x40000, "bgcpu", ROMREGION_ERASEFF) + ROM_LOAD("gamb_u4.l2", 0x10000, 0x10000, CRC(c0cfa9be) SHA1(352df9a4dcbc131ae249416e9e517137a04627ba)) + ROM_LOAD("gamb_u19.l1", 0x20000, 0x10000, CRC(04a3a8c8) SHA1(e72ef767f13282d2335cda3288037610d9bfedf2)) + ROM_LOAD("gamb_u20.l1", 0x30000, 0x10000, CRC(a60c734d) SHA1(76cfcf96276ca4f6b5eee0e0402fab5ee9685366)) ROM_END /*-------------------- @@ -239,66 +492,60 @@ ROM_START(rollr_l2) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("rolr_u26.l2", 0x4000, 0x4000, CRC(cd7cad9e) SHA1(e381fa73895c307a0b3b4b699cfec2a68908f6f7)) ROM_LOAD("rolr_u27.l2", 0x8000, 0x8000, CRC(f3bac2b8) SHA1(9f0ff32ea83e43097de42065909137a362b29d49)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) - ROM_REGION(0x30000, "sound1", 0) - ROM_LOAD("rolr_u4.l3", 0x00000, 0x10000, CRC(d366c705) SHA1(76018305b5040b2e5d8c45cc81a18f13e1a8f8da)) - ROM_LOAD("rolr_u19.l3", 0x10000, 0x10000, CRC(45a89e55) SHA1(3aff897514d242c83a8e7575d430d594a873736e)) - ROM_LOAD("rolr_u20.l3", 0x20000, 0x10000, CRC(77f89aff) SHA1(dcd9fe233f33ef8f97cdeaaa365532e485a28944)) + ROM_REGION(0x40000, "bgcpu", ROMREGION_ERASEFF) + ROM_LOAD("rolr_u4.l3", 0x10000, 0x10000, CRC(d366c705) SHA1(76018305b5040b2e5d8c45cc81a18f13e1a8f8da)) + ROM_LOAD("rolr_u19.l3", 0x20000, 0x10000, CRC(45a89e55) SHA1(3aff897514d242c83a8e7575d430d594a873736e)) + ROM_LOAD("rolr_u20.l3", 0x30000, 0x10000, CRC(77f89aff) SHA1(dcd9fe233f33ef8f97cdeaaa365532e485a28944)) ROM_END ROM_START(rollr_ex) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("rolr-u26.ea3", 0x4000, 0x4000, CRC(78c3c1ad) SHA1(04e4370548b3ba85c49634402a0ea166e3643f68)) ROM_LOAD("rolr_u27.ea3", 0x8000, 0x8000, CRC(18685158) SHA1(d1a79fbe1185fb9e1ae1d9e2b2751429f487bb4c)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) - ROM_REGION(0x30000, "sound1", 0) - ROM_LOAD("rolr_u4.l3", 0x00000, 0x10000, CRC(d366c705) SHA1(76018305b5040b2e5d8c45cc81a18f13e1a8f8da)) - ROM_LOAD("rolr_u19.l3", 0x10000, 0x10000, CRC(45a89e55) SHA1(3aff897514d242c83a8e7575d430d594a873736e)) - ROM_LOAD("rolr_u20.l3", 0x20000, 0x10000, CRC(77f89aff) SHA1(dcd9fe233f33ef8f97cdeaaa365532e485a28944)) + ROM_REGION(0x40000, "bgcpu", ROMREGION_ERASEFF) + ROM_LOAD("rolr_u4.l3", 0x10000, 0x10000, CRC(d366c705) SHA1(76018305b5040b2e5d8c45cc81a18f13e1a8f8da)) + ROM_LOAD("rolr_u19.l3", 0x20000, 0x10000, CRC(45a89e55) SHA1(3aff897514d242c83a8e7575d430d594a873736e)) + ROM_LOAD("rolr_u20.l3", 0x30000, 0x10000, CRC(77f89aff) SHA1(dcd9fe233f33ef8f97cdeaaa365532e485a28944)) ROM_END ROM_START(rollr_e1) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("rolr_u26.pe1", 0x4000, 0x4000, CRC(56620505) SHA1(2df9097e52178f246148a40e0ad4a6e6a5cdb5d4)) ROM_LOAD("rolr_u27.pe1", 0x8000, 0x8000, CRC(724d0af2) SHA1(5de5596f4e594c0e6b8448817de6ff46ffc7194b)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) - ROM_REGION(0x30000, "sound1", 0) - ROM_LOAD("rolr_u4.pe1", 0x00000, 0x10000, CRC(8c383b24) SHA1(5c738e5ec566f7fa5706cd4c33e5d706fa76c72d)) - ROM_LOAD("rolr_u19.pe1", 0x10000, 0x10000, CRC(c6880cff) SHA1(c8ce23d68297d36ef62e508855a478434ff9a592)) - ROM_LOAD("rolr_u20.pe1", 0x20000, 0x10000, CRC(4220812b) SHA1(7071565f1087020d1e1738e801dafb509ea37622)) + ROM_REGION(0x40000, "bgcpu", ROMREGION_ERASEFF) + ROM_LOAD("rolr_u4.pe1", 0x10000, 0x10000, CRC(8c383b24) SHA1(5c738e5ec566f7fa5706cd4c33e5d706fa76c72d)) + ROM_LOAD("rolr_u19.pe1", 0x20000, 0x10000, CRC(c6880cff) SHA1(c8ce23d68297d36ef62e508855a478434ff9a592)) + ROM_LOAD("rolr_u20.pe1", 0x30000, 0x10000, CRC(4220812b) SHA1(7071565f1087020d1e1738e801dafb509ea37622)) ROM_END ROM_START(rollr_p2) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("rolr_u26.pa2", 0x4000, 0x4000, CRC(11d96b1c) SHA1(e96991bdef8b14043285feeb4cacc182a6e9dcbd)) ROM_LOAD("rolr_u27.pa2", 0x8000, 0x8000, CRC(ee547bd5) SHA1(db45bf7a25321ac041f58404f7512bded9ebf11e)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) - ROM_REGION(0x30000, "sound1", 0) - ROM_LOAD("rolr_u4.pa1", 0x00000, 0x10000, CRC(324df946) SHA1(e7ba2b9434baea20a0cf38540fdab1668c058539)) - ROM_LOAD("rolr_u19.pa1", 0x10000, 0x10000, CRC(45a89e55) SHA1(3aff897514d242c83a8e7575d430d594a873736e)) - ROM_LOAD("rolr_u20.pa1", 0x20000, 0x10000, CRC(8ddaaad1) SHA1(33f58c6a9b0e509b7c9a460a687d6e2c388b4b54)) + ROM_REGION(0x40000, "bgcpu", ROMREGION_ERASEFF) + ROM_LOAD("rolr_u4.pa1", 0x10000, 0x10000, CRC(324df946) SHA1(e7ba2b9434baea20a0cf38540fdab1668c058539)) + ROM_LOAD("rolr_u19.pa1", 0x20000, 0x10000, CRC(45a89e55) SHA1(3aff897514d242c83a8e7575d430d594a873736e)) + ROM_LOAD("rolr_u20.pa1", 0x30000, 0x10000, CRC(8ddaaad1) SHA1(33f58c6a9b0e509b7c9a460a687d6e2c388b4b54)) ROM_END ROM_START(rollr_l3) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("rolr-u26.lu3", 0x4000, 0x4000, CRC(7d71ed50) SHA1(092aa13706a7fe58ad80e88c1c4a5c1d7d712546)) ROM_LOAD("rolr_u27.l2", 0x8000, 0x8000, CRC(f3bac2b8) SHA1(9f0ff32ea83e43097de42065909137a362b29d49)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) - ROM_REGION(0x30000, "sound1", 0) - ROM_LOAD("rolr_u4.l3", 0x00000, 0x10000, CRC(d366c705) SHA1(76018305b5040b2e5d8c45cc81a18f13e1a8f8da)) - ROM_LOAD("rolr_u19.l3", 0x10000, 0x10000, CRC(45a89e55) SHA1(3aff897514d242c83a8e7575d430d594a873736e)) - ROM_LOAD("rolr_u20.l3", 0x20000, 0x10000, CRC(77f89aff) SHA1(dcd9fe233f33ef8f97cdeaaa365532e485a28944)) + ROM_REGION(0x40000, "bgcpu", ROMREGION_ERASEFF) + ROM_LOAD("rolr_u4.l3", 0x10000, 0x10000, CRC(d366c705) SHA1(76018305b5040b2e5d8c45cc81a18f13e1a8f8da)) + ROM_LOAD("rolr_u19.l3", 0x20000, 0x10000, CRC(45a89e55) SHA1(3aff897514d242c83a8e7575d430d594a873736e)) + ROM_LOAD("rolr_u20.l3", 0x30000, 0x10000, CRC(77f89aff) SHA1(dcd9fe233f33ef8f97cdeaaa365532e485a28944)) ROM_END ROM_START(rollr_g3) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("rolr-u26.lg3", 0x4000, 0x4000, CRC(438d2b94) SHA1(f507a06794563701b6d4fc51ff90a42a6d21d060)) ROM_LOAD("rolr_u27.l2", 0x8000, 0x8000, CRC(f3bac2b8) SHA1(9f0ff32ea83e43097de42065909137a362b29d49)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) - ROM_REGION(0x30000, "sound1", 0) - ROM_LOAD("rolr_u4.l3", 0x00000, 0x10000, CRC(d366c705) SHA1(76018305b5040b2e5d8c45cc81a18f13e1a8f8da)) - ROM_LOAD("rolr_u19.l3", 0x10000, 0x10000, CRC(45a89e55) SHA1(3aff897514d242c83a8e7575d430d594a873736e)) - ROM_LOAD("rolr_u20.l3", 0x20000, 0x10000, CRC(77f89aff) SHA1(dcd9fe233f33ef8f97cdeaaa365532e485a28944)) + ROM_REGION(0x40000, "bgcpu", ROMREGION_ERASEFF) + ROM_LOAD("rolr_u4.l3", 0x10000, 0x10000, CRC(d366c705) SHA1(76018305b5040b2e5d8c45cc81a18f13e1a8f8da)) + ROM_LOAD("rolr_u19.l3", 0x20000, 0x10000, CRC(45a89e55) SHA1(3aff897514d242c83a8e7575d430d594a873736e)) + ROM_LOAD("rolr_u20.l3", 0x30000, 0x10000, CRC(77f89aff) SHA1(dcd9fe233f33ef8f97cdeaaa365532e485a28944)) ROM_END /*-------------------- @@ -308,22 +555,20 @@ ROM_START(gs_l3) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("gshw_u26.l3", 0x4000, 0x4000, CRC(3419bfb2) SHA1(7ce294a3118d20c7cdc3d5cd946e4c43090c5151)) ROM_LOAD("gshw_u27.l3", 0x8000, 0x8000, CRC(4f3babb6) SHA1(87091a6786fc6817529cfed7f60396babe153d8d)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) - ROM_REGION(0x30000, "sound1", 0) - ROM_LOAD("gshw_u4.l2", 0x00000, 0x10000, CRC(e89e0116) SHA1(e96bee143d1662d078f21531f405d838fdace693)) - ROM_LOAD("gshw_u19.l1", 0x10000, 0x10000, CRC(8bae0813) SHA1(a2b1beca13796892d8ee1533e395cabdbbb11f88)) - ROM_LOAD("gshw_u20.l1", 0x20000, 0x10000, CRC(75ccbdf7) SHA1(7dce8ae427a621919caad8d8b08b06bb0adad850)) + ROM_REGION(0x40000, "bgcpu", ROMREGION_ERASEFF) + ROM_LOAD("gshw_u4.l2", 0x10000, 0x10000, CRC(e89e0116) SHA1(e96bee143d1662d078f21531f405d838fdace693)) + ROM_LOAD("gshw_u19.l1", 0x20000, 0x10000, CRC(8bae0813) SHA1(a2b1beca13796892d8ee1533e395cabdbbb11f88)) + ROM_LOAD("gshw_u20.l1", 0x30000, 0x10000, CRC(75ccbdf7) SHA1(7dce8ae427a621919caad8d8b08b06bb0adad850)) ROM_END ROM_START(gs_l4) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("gshw_u26.l3", 0x4000, 0x4000, CRC(3419bfb2) SHA1(7ce294a3118d20c7cdc3d5cd946e4c43090c5151)) ROM_LOAD("u27-lu4.rom", 0x8000, 0x8000, CRC(ba265978) SHA1(66ac8e83e35cdfd72f1d3aa8ce6d92c2c833f304)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) - ROM_REGION(0x30000, "sound1", 0) - ROM_LOAD("gshw_u4.l2", 0x00000, 0x10000, CRC(e89e0116) SHA1(e96bee143d1662d078f21531f405d838fdace693)) - ROM_LOAD("gshw_u19.l1", 0x10000, 0x10000, CRC(8bae0813) SHA1(a2b1beca13796892d8ee1533e395cabdbbb11f88)) - ROM_LOAD("gshw_u20.l1", 0x20000, 0x10000, CRC(75ccbdf7) SHA1(7dce8ae427a621919caad8d8b08b06bb0adad850)) + ROM_REGION(0x40000, "bgcpu", ROMREGION_ERASEFF) + ROM_LOAD("gshw_u4.l2", 0x10000, 0x10000, CRC(e89e0116) SHA1(e96bee143d1662d078f21531f405d838fdace693)) + ROM_LOAD("gshw_u19.l1", 0x20000, 0x10000, CRC(8bae0813) SHA1(a2b1beca13796892d8ee1533e395cabdbbb11f88)) + ROM_LOAD("gshw_u20.l1", 0x30000, 0x10000, CRC(75ccbdf7) SHA1(7dce8ae427a621919caad8d8b08b06bb0adad850)) ROM_END /*----------------------- @@ -337,36 +582,33 @@ ROM_START(strax_p7) ROM_REGION(0x10000, "sound2", 0) ROM_LOAD("strx_u21.l1", 0x0000, 0x8000, CRC(6a323227) SHA1(7c7263754e5672c654a2ee9582f0b278e637a909)) ROM_LOAD("strx_u22.l1", 0x8000, 0x8000, CRC(58407eb4) SHA1(6bd9b304c88d9470eae5afb6621187f4a8313573)) - ROM_REGION(0x10000, "cpu2", ROMREGION_ERASEFF) - ROM_REGION(0x30000, "sound1", 0) - ROM_LOAD("pfrc_u4.l2", 0x00000, 0x8000, CRC(8f431529) SHA1(0f479990715a31fd860c000a066cffb70da502c2)) - ROM_RELOAD(0x00000+0x8000, 0x8000) - ROM_LOAD("pfrc_u19.l1", 0x10000, 0x8000, CRC(abc4caeb) SHA1(6faef2de9a49a1015b4038ab18849de2f25dbded)) - ROM_RELOAD(0x10000+0x8000, 0x8000) + ROM_REGION(0x40000, "bgcpu", ROMREGION_ERASEFF) + ROM_LOAD("pfrc_u4.l2", 0x10000, 0x8000, CRC(8f431529) SHA1(0f479990715a31fd860c000a066cffb70da502c2)) + ROM_LOAD("pfrc_u19.l1", 0x18000, 0x8000, CRC(abc4caeb) SHA1(6faef2de9a49a1015b4038ab18849de2f25dbded)) ROM_END -GAME(1990, bbnny_l2, 0, williams_s11c, williams_s11c, williams_s11c_state, williams_s11c, ROT0, "Bally", "Bugs Bunny Birthday Ball (L-2)", GAME_IS_SKELETON_MECHANICAL) -GAME(1990, bbnny_lu, bbnny_l2, williams_s11c, williams_s11c, williams_s11c_state, williams_s11c, ROT0, "Bally", "Bugs Bunny Birthday Ball (LU-2) European", GAME_IS_SKELETON_MECHANICAL) -GAME(1990, diner_l4, 0, williams_s11c, williams_s11c, williams_s11c_state, williams_s11c, ROT0, "Williams", "Diner (L-4)", GAME_IS_SKELETON_MECHANICAL) -GAME(1990, diner_l3, diner_l4, williams_s11c, williams_s11c, williams_s11c_state, williams_s11c, ROT0, "Williams", "Diner (L-3)", GAME_IS_SKELETON_MECHANICAL) -GAME(1990, diner_l1, diner_l4, williams_s11c, williams_s11c, williams_s11c_state, williams_s11c, ROT0, "Williams", "Diner (L-1) Europe", GAME_IS_SKELETON_MECHANICAL) -GAME(1990, dd_l2, 0, williams_s11c, williams_s11c, williams_s11c_state, williams_s11c, ROT0, "Bally", "Dr. Dude (LA-2)", GAME_IS_SKELETON_MECHANICAL) -GAME(1990, dd_p6, dd_l2, williams_s11c, williams_s11c, williams_s11c_state, williams_s11c, ROT0, "Bally", "Dr. Dude (PA-6)", GAME_IS_SKELETON_MECHANICAL) -GAME(1990, pool_l7, 0, williams_s11c, williams_s11c, williams_s11c_state, williams_s11c, ROT0, "Bally", "Pool Sharks (LA-7)", GAME_IS_SKELETON_MECHANICAL) -GAME(1990, pool_l6, pool_l7, williams_s11c, williams_s11c, williams_s11c_state, williams_s11c, ROT0, "Bally", "Pool Sharks (LA-6)", GAME_IS_SKELETON_MECHANICAL) -GAME(1990, pool_le2, pool_l7, williams_s11c, williams_s11c, williams_s11c_state, williams_s11c, ROT0, "Bally", "Pool Sharks (LE-2)", GAME_IS_SKELETON_MECHANICAL) -GAME(1989, pool_p7, pool_l7, williams_s11c, williams_s11c, williams_s11c_state, williams_s11c, ROT0, "Bally", "Pool Sharks (PA-7)", GAME_IS_SKELETON_MECHANICAL) -GAME(1990, radcl_l1, 0, williams_s11c, williams_s11c, williams_s11c_state, williams_s11c, ROT0, "Bally", "Radical! (L-1)", GAME_IS_SKELETON_MECHANICAL) -GAME(1990, radcl_g1, radcl_l1, williams_s11c, williams_s11c, williams_s11c_state, williams_s11c, ROT0, "Bally", "Radical! (G-1)", GAME_IS_SKELETON_MECHANICAL) -GAME(1990, radcl_p3, radcl_l1, williams_s11c, williams_s11c, williams_s11c_state, williams_s11c, ROT0, "Bally", "Radical! (P-3)", GAME_IS_SKELETON_MECHANICAL) -GAME(1990, rvrbt_l3, 0, williams_s11c, williams_s11c, williams_s11c_state, williams_s11c, ROT0, "Williams", "Riverboat Gambler (L-3)", GAME_IS_SKELETON_MECHANICAL) -GAME(1990, rollr_l2, 0, williams_s11c, williams_s11c, williams_s11c_state, williams_s11c, ROT0, "Williams", "Rollergames (L-2)", GAME_IS_SKELETON_MECHANICAL) -GAME(1991, rollr_ex, rollr_l2, williams_s11c, williams_s11c, williams_s11c_state, williams_s11c, ROT0, "Williams", "Rollergames (EXPERIMENTAL)", GAME_IS_SKELETON_MECHANICAL) -GAME(1991, rollr_e1, rollr_l2, williams_s11c, williams_s11c, williams_s11c_state, williams_s11c, ROT0, "Williams", "Rollergames (PU-1)", GAME_IS_SKELETON_MECHANICAL) -GAME(1991, rollr_p2, rollr_l2, williams_s11c, williams_s11c, williams_s11c_state, williams_s11c, ROT0, "Williams", "Rollergames (PA-2 / PA-1 Sound)", GAME_IS_SKELETON_MECHANICAL) -GAME(1990, rollr_l3, rollr_l2, williams_s11c, williams_s11c, williams_s11c_state, williams_s11c, ROT0, "Williams", "Rollergames (LU-3) Europe", GAME_IS_SKELETON_MECHANICAL) -GAME(1990, rollr_g3, rollr_l2, williams_s11c, williams_s11c, williams_s11c_state, williams_s11c, ROT0, "Williams", "Rollergames (LG-3) Germany", GAME_IS_SKELETON_MECHANICAL) -GAME(1990, gs_l3, gs_l4, williams_s11c, williams_s11c, williams_s11c_state, williams_s11c, ROT0, "Bally", "The Bally Game Show (L-3)", GAME_IS_SKELETON_MECHANICAL) -GAME(1990, gs_l4, 0, williams_s11c, williams_s11c, williams_s11c_state, williams_s11c, ROT0, "Bally", "The Bally Game Show (L-4)", GAME_IS_SKELETON_MECHANICAL) -GAME(1990, strax_p7, 0, williams_s11c, williams_s11c, williams_s11c_state, williams_s11c, ROT0, "Williams", "Star Trax (domestic prototype)", GAME_IS_SKELETON_MECHANICAL) +GAME(1990, bbnny_l2, 0, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Bugs Bunny Birthday Ball (L-2)", GAME_IS_SKELETON_MECHANICAL) +GAME(1990, bbnny_lu, bbnny_l2, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Bugs Bunny Birthday Ball (LU-2) European", GAME_IS_SKELETON_MECHANICAL) +GAME(1990, diner_l4, 0, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Diner (L-4)", GAME_IS_SKELETON_MECHANICAL) +GAME(1990, diner_l3, diner_l4, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Diner (L-3)", GAME_IS_SKELETON_MECHANICAL) +GAME(1990, diner_l1, diner_l4, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Diner (L-1) Europe", GAME_IS_SKELETON_MECHANICAL) +GAME(1990, dd_l2, 0, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Dr. Dude (LA-2)", GAME_IS_SKELETON_MECHANICAL) +GAME(1990, dd_p6, dd_l2, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Dr. Dude (PA-6)", GAME_IS_SKELETON_MECHANICAL) +GAME(1990, pool_l7, 0, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Pool Sharks (LA-7)", GAME_IS_SKELETON_MECHANICAL) +GAME(1990, pool_l6, pool_l7, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Pool Sharks (LA-6)", GAME_IS_SKELETON_MECHANICAL) +GAME(1990, pool_le2, pool_l7, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Pool Sharks (LE-2)", GAME_IS_SKELETON_MECHANICAL) +GAME(1989, pool_p7, pool_l7, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Pool Sharks (PA-7)", GAME_IS_SKELETON_MECHANICAL) +GAME(1990, radcl_l1, 0, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Radical! (L-1)", GAME_IS_SKELETON_MECHANICAL) +GAME(1990, radcl_g1, radcl_l1, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Radical! (G-1)", GAME_IS_SKELETON_MECHANICAL) +GAME(1990, radcl_p3, radcl_l1, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Radical! (P-3)", GAME_IS_SKELETON_MECHANICAL) +GAME(1990, rvrbt_l3, 0, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Riverboat Gambler (L-3)", GAME_IS_SKELETON_MECHANICAL) +GAME(1990, rollr_l2, 0, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Rollergames (L-2)", GAME_IS_SKELETON_MECHANICAL) +GAME(1991, rollr_ex, rollr_l2, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Rollergames (EXPERIMENTAL)", GAME_IS_SKELETON_MECHANICAL) +GAME(1991, rollr_e1, rollr_l2, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Rollergames (PU-1)", GAME_IS_SKELETON_MECHANICAL) +GAME(1991, rollr_p2, rollr_l2, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Rollergames (PA-2 / PA-1 Sound)", GAME_IS_SKELETON_MECHANICAL) +GAME(1990, rollr_l3, rollr_l2, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Rollergames (LU-3) Europe", GAME_IS_SKELETON_MECHANICAL) +GAME(1990, rollr_g3, rollr_l2, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Rollergames (LG-3) Germany", GAME_IS_SKELETON_MECHANICAL) +GAME(1990, gs_l3, gs_l4, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "The Bally Game Show (L-3)", GAME_IS_SKELETON_MECHANICAL) +GAME(1990, gs_l4, 0, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "The Bally Game Show (L-4)", GAME_IS_SKELETON_MECHANICAL) +GAME(1990, strax_p7, 0, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Star Trax (domestic prototype)", GAME_IS_SKELETON_MECHANICAL) diff --git a/src/mame/includes/s11.h b/src/mame/includes/s11.h index d5d4de9adeb..bbcce15296d 100644 --- a/src/mame/includes/s11.h +++ b/src/mame/includes/s11.h @@ -80,12 +80,12 @@ public: protected: // devices required_device m_maincpu; - required_device m_audiocpu; + optional_device m_audiocpu; required_device m_bgcpu; - required_device m_dac; + optional_device m_dac; required_device m_dac1; - required_device m_hc55516; - required_device m_pias; + optional_device m_hc55516; + optional_device m_pias; required_device m_pia21; required_device m_pia24; required_device m_pia28; @@ -104,8 +104,10 @@ protected: void set_segment1(UINT32 s) { m_segment1 = s; } UINT32 get_segment2() { return m_segment2; } void set_segment2(UINT32 s) { m_segment2 = s; } + void set_timer(emu_timer* t) { m_irq_timer = t; } virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); + static const device_timer_id TIMER_IRQ = 0; private: UINT8 m_sound_data; UINT8 m_strobe; @@ -116,8 +118,6 @@ private: bool m_ca1; emu_timer* m_irq_timer; bool m_irq_active; - - static const device_timer_id TIMER_IRQ = 0; }; class s11a_state : public s11_state @@ -163,10 +163,31 @@ public: protected: required_device m_bg_hc55516; + void set_invert(bool inv) { m_invert = inv; } + private: bool m_invert; // later System 11B games start expecting inverted data to the display LED segments. +}; + +class s11c_state : public s11b_state +{ +public: + s11c_state(const machine_config &mconfig, device_type type, const char *tag) + : s11b_state(mconfig, type, tag) + { } + + DECLARE_WRITE8_MEMBER(bgbank_w); + + DECLARE_MACHINE_RESET(s11c); + DECLARE_DRIVER_INIT(s11c); + +protected: + +private: + + }; diff --git a/src/mame/layout/s11c.lay b/src/mame/layout/s11c.lay new file mode 100644 index 00000000000..c976ec4b23c --- /dev/null +++ b/src/mame/layout/s11c.lay @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mame/mame.mak b/src/mame/mame.mak index 86f7c7b0e49..91335b3656b 100644 --- a/src/mame/mame.mak +++ b/src/mame/mame.mak @@ -2262,6 +2262,7 @@ $(DRIVERS)/s9.o: $(LAYOUT)/s9.lh $(DRIVERS)/s11.o: $(LAYOUT)/s11.lh $(DRIVERS)/s11a.o: $(LAYOUT)/s11a.lh $(DRIVERS)/s11b.o: $(LAYOUT)/s11b.lh +$(DRIVERS)/s11c.o: $(LAYOUT)/s11c.lh $(DRIVERS)/sbrkout.o: $(LAYOUT)/sbrkout.lh