shared/taitosnd.cpp: Use callbacks for interrupt and reset outputs. (#11860)

Also suppress read side effects for debugger accesses.
This commit is contained in:
cam900 2023-12-21 20:06:24 +09:00 committed by GitHub
parent 829fb9d477
commit 3276b366a5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
30 changed files with 189 additions and 162 deletions

View File

@ -53,8 +53,8 @@ tc0140syt_device::tc0140syt_device(const machine_config &mconfig, device_type ty
, m_submode(0)
, m_status(0)
, m_nmi_enabled(0)
, m_mastercpu(*this, finder_base::DUMMY_TAG)
, m_slavecpu(*this, finder_base::DUMMY_TAG)
, m_nmi_cb(*this)
, m_reset_cb(*this)
{
std::fill(std::begin(m_slavedata), std::end(m_slavedata), 0);
std::fill(std::begin(m_masterdata), std::end(m_masterdata), 0);
@ -106,10 +106,8 @@ void tc0140syt_device::device_reset()
void tc0140syt_device::update_nmi()
{
u32 nmi_pending = m_status & (TC0140SYT_PORT23_FULL | TC0140SYT_PORT01_FULL);
u32 state = (nmi_pending && m_nmi_enabled) ? ASSERT_LINE : CLEAR_LINE;
m_slavecpu->set_input_line(INPUT_LINE_NMI, state);
u32 const nmi_pending = m_status & (TC0140SYT_PORT23_FULL | TC0140SYT_PORT01_FULL);
m_nmi_cb((nmi_pending && m_nmi_enabled) ? ASSERT_LINE : CLEAR_LINE);
}
@ -130,8 +128,10 @@ void tc0140syt_device::master_port_w(u8 data)
void tc0140syt_device::master_comm_w(u8 data)
{
machine().scheduler().synchronize(); // let slavecpu catch up (after we return and the main cpu finishes what it's doing)
data &= 0x0f; /* this is important, otherwise ballbros won't work */
// let slavecpu catch up (after we return and the main cpu finishes what it's doing)
machine().scheduler().synchronize();
data &= 0x0f; // this is important, otherwise ballbros won't work
switch (m_mainmode)
{
@ -157,7 +157,7 @@ void tc0140syt_device::master_comm_w(u8 data)
case 0x04: // port status
/* this does a hi-lo transition to reset the sound cpu */
m_slavecpu->set_input_line(INPUT_LINE_RESET, data ? ASSERT_LINE : CLEAR_LINE);
m_reset_cb(data ? ASSERT_LINE : CLEAR_LINE);
break;
default:
@ -167,27 +167,42 @@ void tc0140syt_device::master_comm_w(u8 data)
u8 tc0140syt_device::master_comm_r()
{
machine().scheduler().synchronize(); // let slavecpu catch up (after we return and the main cpu finishes what it's doing)
// let slavecpu catch up (after we return and the main cpu finishes what it's doing)
if (!machine().side_effects_disabled())
machine().scheduler().synchronize();
u8 res = 0;
switch (m_mainmode)
{
case 0x00: // mode #0
res = m_masterdata[m_mainmode++];
res = m_masterdata[m_mainmode];
if (!machine().side_effects_disabled())
m_mainmode++;
break;
case 0x01: // mode #1
m_status &= ~TC0140SYT_PORT01_FULL_MASTER;
res = m_masterdata[m_mainmode++];
res = m_masterdata[m_mainmode];
if (!machine().side_effects_disabled())
{
m_status &= ~TC0140SYT_PORT01_FULL_MASTER;
m_mainmode++;
}
break;
case 0x02: // mode #2
res = m_masterdata[m_mainmode++];
res = m_masterdata[m_mainmode];
if (!machine().side_effects_disabled())
m_mainmode++;
break;
case 0x03: // mode #3
m_status &= ~TC0140SYT_PORT23_FULL_MASTER;
res = m_masterdata[m_mainmode++];
res = m_masterdata[m_mainmode];
if (!machine().side_effects_disabled())
{
m_status &= ~TC0140SYT_PORT23_FULL_MASTER;
m_mainmode++;
}
break;
case 0x04: // port status
@ -267,23 +282,35 @@ u8 tc0140syt_device::slave_comm_r()
switch (m_submode)
{
case 0x00: // mode #0
res = m_slavedata[m_submode++];
res = m_slavedata[m_submode];
if (!machine().side_effects_disabled())
m_submode++;
break;
case 0x01: // mode #1
m_status &= ~TC0140SYT_PORT01_FULL;
res = m_slavedata[m_submode++];
update_nmi();
res = m_slavedata[m_submode];
if (!machine().side_effects_disabled())
{
m_status &= ~TC0140SYT_PORT01_FULL;
m_submode++;
update_nmi();
}
break;
case 0x02: // mode #2
res = m_slavedata[m_submode++];
res = m_slavedata[m_submode];
if (!machine().side_effects_disabled())
m_submode++;
break;
case 0x03: // mode #3
m_status &= ~TC0140SYT_PORT23_FULL;
res = m_slavedata[m_submode++];
update_nmi();
res = m_slavedata[m_submode];
if (!machine().side_effects_disabled())
{
m_status &= ~TC0140SYT_PORT23_FULL;
m_submode++;
update_nmi();
}
break;
case 0x04: // port status

View File

@ -15,8 +15,8 @@ class tc0140syt_device : public device_t
public:
tc0140syt_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
template <typename T> void set_master_tag(T &&tag) { m_mastercpu.set_tag(std::forward<T>(tag)); }
template <typename T> void set_slave_tag(T &&tag) { m_slavecpu.set_tag(std::forward<T>(tag)); }
auto nmi_callback() { return m_nmi_cb.bind(); }
auto reset_callback() { return m_reset_cb.bind(); }
// MASTER (4-bit bus) control functions
void master_port_w(u8 data);
@ -45,8 +45,8 @@ private:
u8 m_status; /* Status data */
u8 m_nmi_enabled; /* 1 if slave cpu has nmi's enabled */
required_device<cpu_device> m_mastercpu; /* this is the maincpu */
required_device<cpu_device> m_slavecpu; /* this is the audiocpu */
devcb_write_line m_nmi_cb;
devcb_write_line m_reset_cb;
};
// ======================> pc060ha_device

View File

@ -901,8 +901,8 @@ void taito_fx1a_state::coh1000ta(machine_config &config)
MB3773(config, m_mb3773);
tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0));
tc0140syt.set_master_tag(m_maincpu);
tc0140syt.set_slave_tag(m_audiocpu);
tc0140syt.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
tc0140syt.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
void taito_fx1b_state::fram_w(offs_t offset, uint8_t data)

View File

@ -1131,8 +1131,8 @@ void bonzeadv_state::bonzeadv(machine_config &config)
ymsnd.add_route(2, "mono", 1.0);
tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0));
tc0140syt.set_master_tag(m_maincpu);
tc0140syt.set_slave_tag(m_audiocpu);
tc0140syt.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
tc0140syt.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
void msm_state::asuka(machine_config &config)
@ -1194,8 +1194,8 @@ void msm_state::asuka(machine_config &config)
m_adpcm_select->out_callback().set("msm", FUNC(msm5205_device::data_w));
pc060ha_device &ciu(PC060HA(config, "ciu", 0));
ciu.set_master_tag(m_maincpu);
ciu.set_slave_tag(m_audiocpu);
ciu.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
ciu.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
void cadash_state::cadash(machine_config &config)
@ -1254,8 +1254,8 @@ void cadash_state::cadash(machine_config &config)
ymsnd.add_route(1, "mono", 0.50);
pc060ha_device &ciu(PC060HA(config, "ciu", 0));
ciu.set_master_tag(m_maincpu);
ciu.set_slave_tag(m_audiocpu);
ciu.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
ciu.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
void msm_state::mofflott(machine_config &config)
@ -1317,8 +1317,8 @@ void msm_state::mofflott(machine_config &config)
m_adpcm_select->out_callback().set("msm", FUNC(msm5205_device::data_w));
pc060ha_device &ciu(PC060HA(config, "ciu", 0));
ciu.set_master_tag(m_maincpu);
ciu.set_slave_tag(m_audiocpu);
ciu.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
ciu.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
void base_state::eto(machine_config &config)
@ -1372,8 +1372,8 @@ void base_state::eto(machine_config &config)
ymsnd.add_route(1, "mono", 0.50);
pc060ha_device &ciu(PC060HA(config, "ciu", 0));
ciu.set_master_tag(m_maincpu);
ciu.set_slave_tag(m_audiocpu);
ciu.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
ciu.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}

View File

@ -135,8 +135,8 @@ void bingowav_state::bingowav(machine_config &config)
ymsnd.add_route(2, "mono", 1.0);
tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0));
tc0140syt.set_master_tag(m_maincpu);
tc0140syt.set_slave_tag("audiocpu");
tc0140syt.nmi_callback().set_inputline("audiocpu", INPUT_LINE_NMI);
tc0140syt.reset_callback().set_inputline("audiocpu", INPUT_LINE_RESET);
m68000_device &termcpu(TMP68303(config, "termcpu", 12000000)); // actually TMP63803F-16
termcpu.set_addrmap(AS_PROGRAM, &bingowav_state::bingowav_drive_map);

View File

@ -201,8 +201,8 @@ void cpzodiac_state::cpzodiac(machine_config &config)
ymsnd.add_route(2, "rspeaker", 1.0);
tc0140syt_device &syt(TC0140SYT(config, "syt", 0));
syt.set_master_tag(m_maincpu);
syt.set_slave_tag(m_audiocpu);
syt.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
syt.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}

View File

@ -151,8 +151,8 @@ void cucaracha_state::cucaracha(machine_config &config)
soundcpu.set_addrmap(AS_PROGRAM, &cucaracha_state::sound_map);
pc060ha_device &ciu(PC060HA(config, "ciu", 0));
ciu.set_master_tag(m_maincpu);
ciu.set_slave_tag("soundcpu");
ciu.nmi_callback().set_inputline("soundcpu", INPUT_LINE_NMI);
ciu.reset_callback().set_inputline("soundcpu", INPUT_LINE_RESET);
SPEAKER(config, "mono").front_center();

View File

@ -1017,8 +1017,8 @@ void darius_state::darius(machine_config &config)
FILTER_VOLUME(config, m_msm5205_r).add_route(ALL_OUTPUTS, "rspeaker", 1.0);
pc060ha_device &ciu(PC060HA(config, "ciu", 0));
ciu.set_master_tag(m_maincpu);
ciu.set_slave_tag(m_audiocpu);
ciu.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
ciu.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}

View File

@ -407,8 +407,8 @@ void exzisus_state::exzisus(machine_config &config)
ymsnd.add_route(1, "mono", 0.50);
pc060ha_device &ciu(PC060HA(config, "ciu", 0));
ciu.set_master_tag("cpub");
ciu.set_slave_tag("audiocpu");
ciu.nmi_callback().set_inputline("audiocpu", INPUT_LINE_NMI);
ciu.reset_callback().set_inputline("audiocpu", INPUT_LINE_RESET);
}

View File

@ -242,12 +242,12 @@ void heromem_state::heromem(machine_config &config)
rscreen.set_palette("tc0091lvc_r:palette");
pc060ha_device &ciu_l(PC060HA(config, "ciu_l", 0));
ciu_l.set_master_tag("maincpu");
ciu_l.set_slave_tag(m_tc0091lvc_l);
ciu_l.nmi_callback().set_inputline(m_tc0091lvc_l, INPUT_LINE_NMI);
ciu_l.reset_callback().set_inputline(m_tc0091lvc_l, INPUT_LINE_RESET);
pc060ha_device &ciu_r(PC060HA(config, "ciu_r", 0));
ciu_r.set_master_tag("maincpu");
ciu_r.set_slave_tag(m_tc0091lvc_r);
ciu_r.nmi_callback().set_inputline(m_tc0091lvc_r, INPUT_LINE_NMI);
ciu_r.reset_callback().set_inputline(m_tc0091lvc_r, INPUT_LINE_RESET);
tc0091lvc_device &vdp_l(TC0091LVC(config, m_tc0091lvc_l, 16000000 / 4));
vdp_l.set_addrmap(AS_PROGRAM, &heromem_state::tc0091lvc_l_prg_map);
@ -261,12 +261,12 @@ void heromem_state::heromem(machine_config &config)
SPEAKER(config, "rspeaker").front_right();
tc0140syt_device &syt_l(TC0140SYT(config, "tc0140syt_l", 0));
syt_l.set_master_tag("maincpu");
syt_l.set_slave_tag("audiocpu_l");
syt_l.nmi_callback().set_inputline("audiocpu_l", INPUT_LINE_NMI);
syt_l.reset_callback().set_inputline("audiocpu_l", INPUT_LINE_RESET);
tc0140syt_device &syt_r(TC0140SYT(config, "tc0140syt_r", 0));
syt_r.set_master_tag("maincpu");
syt_r.set_slave_tag("audiocpu_r");
syt_r.nmi_callback().set_inputline("audiocpu_r", INPUT_LINE_NMI);
syt_r.reset_callback().set_inputline("audiocpu_r", INPUT_LINE_RESET);
ym2610b_device &ym_l(YM2610B(config, "ym_l", 16000000 / 2));
ym_l.irq_handler().set_inputline("audiocpu_l", 0);

View File

@ -965,8 +965,8 @@ void mlanding_state::mlanding(machine_config &config)
m_ctc->zc_callback<0>().set(FUNC(mlanding_state::z80ctc_to0));
pc060ha_device& ciu(PC060HA(config, "ciu", 0));
ciu.set_master_tag(m_maincpu);
ciu.set_slave_tag(m_audiocpu);
ciu.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
ciu.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
config.set_maximum_quantum(attotime::from_hz(600));

View File

@ -994,8 +994,8 @@ void ninjaw_state::ninjaw(machine_config &config)
// SUBWOOFER(config, "subwoofer", 0);
TC0140SYT(config, m_tc0140syt, 0);
m_tc0140syt->set_master_tag(m_maincpu);
m_tc0140syt->set_slave_tag("audiocpu");
m_tc0140syt->nmi_callback().set_inputline("audiocpu", INPUT_LINE_NMI);
m_tc0140syt->reset_callback().set_inputline("audiocpu", INPUT_LINE_RESET);
}
@ -1100,8 +1100,8 @@ void ninjaw_state::darius2(machine_config &config)
// SUBWOOFER(config, "subwoofer", 0);
TC0140SYT(config, m_tc0140syt, 0);
m_tc0140syt->set_master_tag(m_maincpu);
m_tc0140syt->set_slave_tag("audiocpu");
m_tc0140syt->nmi_callback().set_inputline("audiocpu", INPUT_LINE_NMI);
m_tc0140syt->reset_callback().set_inputline("audiocpu", INPUT_LINE_RESET);
}

View File

@ -947,8 +947,8 @@ void opwolf_state::opwolf(machine_config &config)
m_msm[1]->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
pc060ha_device &ciu(PC060HA(config, "ciu", 0));
ciu.set_master_tag(m_maincpu);
ciu.set_slave_tag(m_audiocpu);
ciu.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
ciu.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
void opwolf_state::opwolfp(machine_config &config)
@ -1021,8 +1021,8 @@ void opwolf_state::opwolfb(machine_config &config) /* OSC clocks unknown for the
m_msm[1]->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
pc060ha_device &ciu(PC060HA(config, "ciu", 0));
ciu.set_master_tag(m_maincpu);
ciu.set_slave_tag(m_audiocpu);
ciu.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
ciu.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}

View File

@ -646,8 +646,8 @@ void othunder_state::othunder(machine_config &config)
FILTER_VOLUME(config, "2610.2r").add_route(ALL_OUTPUTS, "speaker", 1.0);
TC0140SYT(config, m_tc0140syt, 0);
m_tc0140syt->set_master_tag(m_maincpu);
m_tc0140syt->set_slave_tag(m_audiocpu);
m_tc0140syt->nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
m_tc0140syt->reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}

View File

@ -334,8 +334,8 @@ void pkspirit_state::pkspirit(machine_config &config)
SPEAKER(config, "mono").front_center();
pc060ha_device &ciu(PC060HA(config, "ciu", 0));
ciu.set_master_tag(m_maincpu);
ciu.set_slave_tag("audiocpu");
ciu.nmi_callback().set_inputline("audiocpu", INPUT_LINE_NMI);
ciu.reset_callback().set_inputline("audiocpu", INPUT_LINE_RESET);
ym2203_device &opn(YM2203(config, "opn", 36_MHz_XTAL / 9)); // divider not verified
opn.irq_handler().set_inputline("audiocpu", 0);

View File

@ -480,8 +480,8 @@ void rastan_state::rastan(machine_config &config)
m_adpcm_sel->out_callback().set(m_msm, FUNC(msm5205_device::data_w));
pc060ha_device &ciu(PC060HA(config, "ciu", 0));
ciu.set_master_tag(m_maincpu);
ciu.set_slave_tag(m_audiocpu);
ciu.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
ciu.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}

View File

@ -854,8 +854,8 @@ void rbisland_state::rbisland(machine_config &config)
ymsnd.add_route(1, "mono", 0.50);
pc060ha_device &ciu(PC060HA(config, "ciu", 0));
ciu.set_master_tag(m_maincpu);
ciu.set_slave_tag(m_audiocpu);
ciu.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
ciu.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}

View File

@ -450,8 +450,8 @@ void slapshot_state::slapshot(machine_config &config)
MK48T08(config, "mk48t08", 0);
TC0140SYT(config, m_tc0140syt, 0);
m_tc0140syt->set_master_tag(m_maincpu);
m_tc0140syt->set_slave_tag("audiocpu");
m_tc0140syt->nmi_callback().set_inputline("audiocpu", INPUT_LINE_NMI);
m_tc0140syt->reset_callback().set_inputline("audiocpu", INPUT_LINE_RESET);
}
void slapshot_state::opwolf3(machine_config &config)
@ -516,8 +516,8 @@ void slapshot_state::opwolf3(machine_config &config)
MK48T08(config, "mk48t08", 0);
TC0140SYT(config, m_tc0140syt, 0);
m_tc0140syt->set_master_tag(m_maincpu);
m_tc0140syt->set_slave_tag("audiocpu");
m_tc0140syt->nmi_callback().set_inputline("audiocpu", INPUT_LINE_NMI);
m_tc0140syt->reset_callback().set_inputline("audiocpu", INPUT_LINE_RESET);
}

View File

@ -1908,8 +1908,8 @@ void taitob_state::rastsag2(machine_config &config)
ymsnd.add_route(2, "mono", 1.0);
tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0));
tc0140syt.set_master_tag(m_maincpu);
tc0140syt.set_slave_tag(m_audiocpu);
tc0140syt.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
tc0140syt.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
@ -1964,8 +1964,8 @@ void taitob_state::masterw(machine_config &config)
ymsnd.add_route(3, "mono", 0.80);
pc060ha_device &ciu(PC060HA(config, "ciu", 0));
ciu.set_master_tag(m_maincpu);
ciu.set_slave_tag(m_audiocpu);
ciu.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
ciu.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
@ -2033,8 +2033,8 @@ void taitob_state::ashura(machine_config &config)
ymsnd.add_route(2, "mono", 1.0);
tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0));
tc0140syt.set_master_tag(m_maincpu);
tc0140syt.set_slave_tag(m_audiocpu);
tc0140syt.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
tc0140syt.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
@ -2087,8 +2087,8 @@ void taitob_state::crimec(machine_config &config)
ymsnd.add_route(2, "mono", 1.0);
tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0));
tc0140syt.set_master_tag(m_maincpu);
tc0140syt.set_slave_tag(m_audiocpu);
tc0140syt.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
tc0140syt.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
@ -2146,8 +2146,8 @@ void hitice_state::hitice(machine_config &config)
oki.add_route(ALL_OUTPUTS, "mono", 0.50);
pc060ha_device &ciu(PC060HA(config, "ciu", 0));
ciu.set_master_tag(m_maincpu);
ciu.set_slave_tag(m_audiocpu);
ciu.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
ciu.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
@ -2200,8 +2200,8 @@ void taitob_state::rambo3p(machine_config &config)
ymsnd.add_route(2, "mono", 1.0);
tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0));
tc0140syt.set_master_tag(m_maincpu);
tc0140syt.set_slave_tag(m_audiocpu);
tc0140syt.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
tc0140syt.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
@ -2254,8 +2254,8 @@ void taitob_state::rambo3(machine_config &config)
ymsnd.add_route(2, "mono", 1.0);
tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0));
tc0140syt.set_master_tag(m_maincpu);
tc0140syt.set_slave_tag(m_audiocpu);
tc0140syt.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
tc0140syt.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
@ -2313,8 +2313,8 @@ void taitob_state::pbobble(machine_config &config)
ymsnd.add_route(2, "mono", 1.0);
tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0));
tc0140syt.set_master_tag(m_maincpu);
tc0140syt.set_slave_tag(m_audiocpu);
tc0140syt.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
tc0140syt.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
@ -2372,8 +2372,8 @@ void taitob_state::spacedx(machine_config &config)
ymsnd.add_route(2, "mono", 1.0);
tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0));
tc0140syt.set_master_tag(m_maincpu);
tc0140syt.set_slave_tag(m_audiocpu);
tc0140syt.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
tc0140syt.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
@ -2426,8 +2426,8 @@ void taitob_state::spacedxo(machine_config &config)
ymsnd.add_route(2, "mono", 1.0);
tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0));
tc0140syt.set_master_tag(m_maincpu);
tc0140syt.set_slave_tag(m_audiocpu);
tc0140syt.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
tc0140syt.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
@ -2485,8 +2485,8 @@ void taitob_state::qzshowby(machine_config &config)
ymsnd.add_route(2, "mono", 1.0);
tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0));
tc0140syt.set_master_tag(m_maincpu);
tc0140syt.set_slave_tag(m_audiocpu);
tc0140syt.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
tc0140syt.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
@ -2544,8 +2544,8 @@ void taitob_state::viofight(machine_config &config)
oki.add_route(ALL_OUTPUTS, "mono", 0.50);
pc060ha_device &ciu(PC060HA(config, "ciu", 0));
ciu.set_master_tag(m_maincpu);
ciu.set_slave_tag(m_audiocpu);
ciu.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
ciu.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
@ -2598,8 +2598,8 @@ void taitob_state::silentd(machine_config &config) /* ET910000B PCB */
ymsnd.add_route(2, "mono", 1.0);
tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0));
tc0140syt.set_master_tag(m_maincpu);
tc0140syt.set_slave_tag(m_audiocpu);
tc0140syt.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
tc0140syt.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
@ -2652,8 +2652,8 @@ void taitob_state::selfeena(machine_config &config) /* ET910000A PCB */
ymsnd.add_route(2, "mono", 1.0);
tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0));
tc0140syt.set_master_tag(m_maincpu);
tc0140syt.set_slave_tag(m_audiocpu);
tc0140syt.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
tc0140syt.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
#if 0
@ -2724,8 +2724,8 @@ void taitob_state::sbm(machine_config &config)
ymsnd.add_route(2, "mono", 1.0);
tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0));
tc0140syt.set_master_tag(m_maincpu);
tc0140syt.set_slave_tag(m_audiocpu);
tc0140syt.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
tc0140syt.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
@ -2782,8 +2782,8 @@ void taitob_c_state::realpunc(machine_config &config)
ymsnd.add_route(2, "mono", 1.0);
tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0));
tc0140syt.set_master_tag(m_maincpu);
tc0140syt.set_slave_tag(m_audiocpu);
tc0140syt.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
tc0140syt.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
/***************************************************************************

View File

@ -2807,8 +2807,8 @@ void taitof2_state::taito_f2(machine_config &config)
ymsnd.add_route(2, "rspeaker", 1.0);
tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0));
tc0140syt.set_master_tag(m_maincpu);
tc0140syt.set_slave_tag(m_audiocpu);
tc0140syt.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
tc0140syt.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
void taitof2_state::taito_f2_tc0220ioc(machine_config &config)
@ -3559,8 +3559,8 @@ void taitof2_state::cameltrya(machine_config &config)
m_oki->add_route(ALL_OUTPUTS, "mono", 0.10);
pc060ha_device &ciu(PC060HA(config, "ciu", 0));
ciu.set_master_tag(m_maincpu);
ciu.set_slave_tag(m_audiocpu);
ciu.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
ciu.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
void taitof2_state::driveout(machine_config &config)
@ -3616,8 +3616,8 @@ void taitof2_state::driveout(machine_config &config)
m_oki->add_route(ALL_OUTPUTS, "rspeaker", 1.0);
tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0));
tc0140syt.set_master_tag(m_maincpu);
tc0140syt.set_slave_tag(m_audiocpu);
tc0140syt.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
tc0140syt.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}

View File

@ -603,8 +603,8 @@ void taitoh_state::taitoh_base(machine_config &config)
ymsnd.add_route(2, "mono", 1.0);
tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0));
tc0140syt.set_master_tag(m_maincpu);
tc0140syt.set_slave_tag(m_audiocpu);
tc0140syt.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
tc0140syt.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
void syvalion_state::syvalion(machine_config &config)

View File

@ -1299,8 +1299,8 @@ void fhawk_state::fhawk(machine_config &config)
ymsnd.add_route(3, "mono", 0.80);
pc060ha_device &ciu(PC060HA(config, "ciu", 0));
ciu.set_master_tag("slave");
ciu.set_slave_tag(m_audio_cpu);
ciu.nmi_callback().set_inputline(m_audio_cpu, INPUT_LINE_NMI);
ciu.reset_callback().set_inputline(m_audio_cpu, INPUT_LINE_RESET);
}
void champwr_state::champwr(machine_config &config)
@ -1361,8 +1361,8 @@ void taitol_2cpu_state::raimais(machine_config &config)
ymsnd.add_route(2, "mono", 1.0);
tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0));
tc0140syt.set_master_tag("slave");
tc0140syt.set_slave_tag(m_audio_cpu);
tc0140syt.nmi_callback().set_inputline(m_audio_cpu, INPUT_LINE_NMI);
tc0140syt.reset_callback().set_inputline(m_audio_cpu, INPUT_LINE_RESET);
}
void taitol_2cpu_state::kurikint(machine_config &config)

View File

@ -1060,8 +1060,8 @@ void taitox_cchip_state::superman(machine_config &config)
ymsnd.add_route(2, "rspeaker", 1.0);
tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0));
tc0140syt.set_master_tag(m_maincpu);
tc0140syt.set_slave_tag(m_audiocpu);
tc0140syt.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
tc0140syt.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
void taitox_state::daisenpu(machine_config &config)
@ -1102,8 +1102,8 @@ void taitox_state::daisenpu(machine_config &config)
ymsnd.add_route(1, "rspeaker", 0.45);
pc060ha_device &ciu(PC060HA(config, "ciu", 0));
ciu.set_master_tag(m_maincpu);
ciu.set_slave_tag(m_audiocpu);
ciu.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
ciu.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
void taitox_state::gigandes(machine_config &config)
@ -1145,8 +1145,8 @@ void taitox_state::gigandes(machine_config &config)
ymsnd.add_route(2, "rspeaker", 1.0);
tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0));
tc0140syt.set_master_tag(m_maincpu);
tc0140syt.set_slave_tag(m_audiocpu);
tc0140syt.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
tc0140syt.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
void taitox_state::ballbros(machine_config &config)
@ -1189,8 +1189,8 @@ void taitox_state::ballbros(machine_config &config)
ymsnd.add_route(2, "rspeaker", 1.0);
tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0));
tc0140syt.set_master_tag(m_maincpu);
tc0140syt.set_slave_tag(m_audiocpu);
tc0140syt.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
tc0140syt.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
void taitox_state::kyustrkr(machine_config &config)

View File

@ -3234,8 +3234,8 @@ void contcirc_state::contcirc(machine_config &config) //OSC: 26.686, 24.000, 16.
FILTER_VOLUME(config, "2610.2.l").add_route(ALL_OUTPUTS, "front", 1.0);
TC0140SYT(config, m_tc0140syt, 0);
m_tc0140syt->set_master_tag(m_subcpu);
m_tc0140syt->set_slave_tag(m_audiocpu);
m_tc0140syt->nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
m_tc0140syt->reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
void chasehq_state::chasehq(machine_config &config) //OSC: 26.686, 24.000, 16.000
@ -3293,8 +3293,8 @@ void chasehq_state::chasehq(machine_config &config) //OSC: 26.686, 24.000, 16.00
FILTER_VOLUME(config, "2610.2.l").add_route(ALL_OUTPUTS, "front", 1.0);
TC0140SYT(config, m_tc0140syt, 0);
m_tc0140syt->set_master_tag(m_subcpu);
m_tc0140syt->set_slave_tag(m_audiocpu);
m_tc0140syt->nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
m_tc0140syt->reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
void contcirc_state::enforce(machine_config &config)
@ -3355,8 +3355,8 @@ void contcirc_state::enforce(machine_config &config)
FILTER_VOLUME(config, "2610.2.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0);
TC0140SYT(config, m_tc0140syt, 0);
m_tc0140syt->set_master_tag(m_subcpu);
m_tc0140syt->set_slave_tag(m_audiocpu);
m_tc0140syt->nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
m_tc0140syt->reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
void taitoz_state::bshark_base(machine_config &config)
@ -3486,8 +3486,8 @@ void sci_state::sci(machine_config &config)
FILTER_VOLUME(config, "2610.2.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0);
TC0140SYT(config, m_tc0140syt, 0);
m_tc0140syt->set_master_tag(m_subcpu);
m_tc0140syt->set_slave_tag(m_audiocpu);
m_tc0140syt->nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
m_tc0140syt->reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
void nightstr_state::nightstr(machine_config &config) //OSC: 26.686, 24.000, 16.000
@ -3555,8 +3555,8 @@ void nightstr_state::nightstr(machine_config &config) //OSC: 26.686, 24.000, 16.
FILTER_VOLUME(config, "2610.2.l").add_route(ALL_OUTPUTS, "front", 1.0);
TC0140SYT(config, m_tc0140syt, 0);
m_tc0140syt->set_master_tag(m_subcpu);
m_tc0140syt->set_slave_tag(m_audiocpu);
m_tc0140syt->nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
m_tc0140syt->reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
void taitoz_z80_sound_state::aquajack(machine_config &config) //OSC: 26.686, 24.000, 16.000
@ -3616,8 +3616,8 @@ void taitoz_z80_sound_state::aquajack(machine_config &config) //OSC: 26.686, 24.
FILTER_VOLUME(config, "2610.2.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0);
TC0140SYT(config, m_tc0140syt, 0);
m_tc0140syt->set_master_tag(m_subcpu);
m_tc0140syt->set_slave_tag(m_audiocpu);
m_tc0140syt->nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
m_tc0140syt->reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
void spacegun_state::spacegun(machine_config &config) //OSC: 26.686, 24.000, 16.000
@ -3741,8 +3741,8 @@ void taitoz_z80_sound_state::dblaxle(machine_config &config)
FILTER_VOLUME(config, "2610.2.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0);
TC0140SYT(config, m_tc0140syt, 0);
m_tc0140syt->set_master_tag(m_subcpu);
m_tc0140syt->set_slave_tag(m_audiocpu);
m_tc0140syt->nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
m_tc0140syt->reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
void sci_state::racingb(machine_config &config)
@ -3802,8 +3802,8 @@ void sci_state::racingb(machine_config &config)
FILTER_VOLUME(config, "2610.2.l").add_route(ALL_OUTPUTS, "lspeaker", 1.0);
TC0140SYT(config, m_tc0140syt, 0);
m_tc0140syt->set_master_tag(m_subcpu);
m_tc0140syt->set_slave_tag(m_audiocpu);
m_tc0140syt->nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
m_tc0140syt->reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}

View File

@ -727,8 +727,8 @@ void taitoair_state::airsys(machine_config &config)
ymsnd.add_route(2, "mono", 0.60);
tc0140syt_device &tc0140syt(TC0140SYT(config, "tc0140syt", 0));
tc0140syt.set_master_tag(m_maincpu);
tc0140syt.set_slave_tag(m_audiocpu);
tc0140syt.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
tc0140syt.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}

View File

@ -974,8 +974,8 @@ void topspeed_state::topspeed(machine_config &config)
m_pc080sn[1]->set_gfxdecode_tag(m_gfxdecode);
pc060ha_device &ciu(PC060HA(config, "ciu", 0));
ciu.set_master_tag(m_maincpu);
ciu.set_slave_tag(m_audiocpu);
ciu.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
ciu.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
TC0040IOC(config, m_tc0040ioc, 0);
m_tc0040ioc->read_0_callback().set_ioport("DSWA");

View File

@ -128,8 +128,8 @@ void vicshoot_state::vicshoot(machine_config &config)
SPEAKER(config, "mono").front_center();
pc060ha_device &ciu(PC060HA(config, "ciu", 0));
ciu.set_master_tag(m_maincpu);
ciu.set_slave_tag("audiocpu");
ciu.nmi_callback().set_inputline("audiocpu", INPUT_LINE_NMI);
ciu.reset_callback().set_inputline("audiocpu", INPUT_LINE_RESET);
ym2203_device &opn(YM2203(config, "opn", 8_MHz_XTAL / 2)); // divider not verified
opn.irq_handler().set_inputline("audiocpu", 0);

View File

@ -437,8 +437,8 @@ void volfied_state::volfied(machine_config &config)
ymsnd.add_route(3, "mono", 0.60);
pc060ha_device &ciu(PC060HA(config, "ciu", 0));
ciu.set_master_tag(m_maincpu);
ciu.set_slave_tag(m_audiocpu);
ciu.nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
ciu.reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}

View File

@ -651,8 +651,8 @@ void warriorb_state::darius2d(machine_config &config)
FILTER_VOLUME(config, "2610.2.r").add_route(ALL_OUTPUTS, "rspeaker", 1.0);
TC0140SYT(config, m_tc0140syt, 0);
m_tc0140syt->set_master_tag(m_maincpu);
m_tc0140syt->set_slave_tag("audiocpu");
m_tc0140syt->nmi_callback().set_inputline("audiocpu", INPUT_LINE_NMI);
m_tc0140syt->reset_callback().set_inputline("audiocpu", INPUT_LINE_RESET);
}
void warriorb_state::warriorb(machine_config &config)
@ -729,8 +729,8 @@ void warriorb_state::warriorb(machine_config &config)
FILTER_VOLUME(config, "2610.2.r").add_route(ALL_OUTPUTS, "rspeaker", 1.0);
TC0140SYT(config, m_tc0140syt, 0);
m_tc0140syt->set_master_tag(m_maincpu);
m_tc0140syt->set_slave_tag("audiocpu");
m_tc0140syt->nmi_callback().set_inputline("audiocpu", INPUT_LINE_NMI);
m_tc0140syt->reset_callback().set_inputline("audiocpu", INPUT_LINE_RESET);
}

View File

@ -906,8 +906,8 @@ void wgp_state::wgp(machine_config &config)
ymsnd.add_route(2, "rspeaker", 1.0);
TC0140SYT(config, m_tc0140syt, 0);
m_tc0140syt->set_master_tag(m_subcpu);
m_tc0140syt->set_slave_tag(m_audiocpu);
m_tc0140syt->nmi_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
m_tc0140syt->reset_callback().set_inputline(m_audiocpu, INPUT_LINE_RESET);
}
void wgp_state::wgp2(machine_config &config)