summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2022-08-30 23:59:39 +0200
committer hap <happppp@users.noreply.github.com>2022-08-30 23:59:39 +0200
commitf6942dd17a67d7db3c2eb3a2bc43552c6b8bca0d (patch)
tree53dd19aeb3d842e53769903a1f3471549d7fe9e7
parentc3a36ca0d488661f5609f9cd6ce954272250c01d (diff)
atarisy1, gauntlet: re-add boost interleave on soundlatch write
-rw-r--r--src/mame/atari/atarisy1.cpp1
-rw-r--r--src/mame/atari/atarisy2.cpp10
-rw-r--r--src/mame/atari/atarisy2.h1
-rw-r--r--src/mame/atari/gauntlet.cpp1
-rw-r--r--src/mame/atari/starwars.cpp4
-rw-r--r--src/mame/atari/starwars.h1
-rw-r--r--src/mame/atari/starwars_a.cpp7
7 files changed, 5 insertions, 20 deletions
diff --git a/src/mame/atari/atarisy1.cpp b/src/mame/atari/atarisy1.cpp
index bcd12646eba..4c05546d020 100644
--- a/src/mame/atari/atarisy1.cpp
+++ b/src/mame/atari/atarisy1.cpp
@@ -778,6 +778,7 @@ void atarisy1_state::atarisy1(machine_config &config)
GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, m6502_device::NMI_LINE);
+ m_soundlatch->data_pending_callback().append([this](int state) { if (state) machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100)); });
GENERIC_LATCH_8(config, m_mainlatch);
m_mainlatch->data_pending_callback().set_inputline(m_maincpu, M68K_IRQ_6);
diff --git a/src/mame/atari/atarisy2.cpp b/src/mame/atari/atarisy2.cpp
index 0f63d9c596c..16ce74a0bbd 100644
--- a/src/mame/atari/atarisy2.cpp
+++ b/src/mame/atari/atarisy2.cpp
@@ -303,14 +303,6 @@ void atarisy2_state::sound_irq_ack_w(uint8_t data)
}
-WRITE_LINE_MEMBER(atarisy2_state::boost_interleave_hack)
-{
- // apb3 fails the self-test with a 100 µs delay or less
- if (state)
- machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(200));
-}
-
-
/*************************************
*
@@ -1267,7 +1259,7 @@ void atarisy2_state::atarisy2(machine_config &config)
GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, m6502_device::NMI_LINE);
- m_soundlatch->data_pending_callback().append(FUNC(atarisy2_state::boost_interleave_hack));
+ m_soundlatch->data_pending_callback().append([this](int state) { if (state) machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(200)); });
GENERIC_LATCH_8(config, m_mainlatch);
diff --git a/src/mame/atari/atarisy2.h b/src/mame/atari/atarisy2.h
index 2d3e59dd80c..a83571b26d4 100644
--- a/src/mame/atari/atarisy2.h
+++ b/src/mame/atari/atarisy2.h
@@ -127,7 +127,6 @@ private:
void int_enable_w(uint8_t data);
INTERRUPT_GEN_MEMBER(sound_irq_gen);
void sound_irq_ack_w(uint8_t data);
- DECLARE_WRITE_LINE_MEMBER(boost_interleave_hack);
void bankselect_w(offs_t offset, uint16_t data);
uint16_t switch_r();
uint8_t switch_6502_r();
diff --git a/src/mame/atari/gauntlet.cpp b/src/mame/atari/gauntlet.cpp
index cda4c5ad381..eedf636b223 100644
--- a/src/mame/atari/gauntlet.cpp
+++ b/src/mame/atari/gauntlet.cpp
@@ -507,6 +507,7 @@ void gauntlet_state::gauntlet_base(machine_config &config)
GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, m6502_device::NMI_LINE);
+ m_soundlatch->data_pending_callback().append([this](int state) { if (state) machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100)); });
GENERIC_LATCH_8(config, m_mainlatch);
m_mainlatch->data_pending_callback().set_inputline(m_maincpu, M68K_IRQ_6);
diff --git a/src/mame/atari/starwars.cpp b/src/mame/atari/starwars.cpp
index ce52d4dc4e0..d0e8d5a1190 100644
--- a/src/mame/atari/starwars.cpp
+++ b/src/mame/atari/starwars.cpp
@@ -315,11 +315,11 @@ void starwars_state::starwars(machine_config &config)
GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set(m_riot, FUNC(riot6532_device::pa7_w));
- m_soundlatch->data_pending_callback().append(FUNC(starwars_state::boost_interleave_hack));
+ m_soundlatch->data_pending_callback().append([this](int state) { if (state) machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100)); });
GENERIC_LATCH_8(config, m_mainlatch);
m_mainlatch->data_pending_callback().set(m_riot, FUNC(riot6532_device::pa6_w));
- m_mainlatch->data_pending_callback().append(FUNC(starwars_state::boost_interleave_hack));
+ m_mainlatch->data_pending_callback().append([this](int state) { if (state) machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100)); });
}
diff --git a/src/mame/atari/starwars.h b/src/mame/atari/starwars.h
index 7f3706ee3fb..dd575314948 100644
--- a/src/mame/atari/starwars.h
+++ b/src/mame/atari/starwars.h
@@ -84,7 +84,6 @@ private:
void starwars_math_w(offs_t offset, uint8_t data);
uint8_t starwars_main_ready_flag_r();
- DECLARE_WRITE_LINE_MEMBER(boost_interleave_hack);
void starwars_soundrst_w(uint8_t data);
void quad_pokeyn_w(offs_t offset, uint8_t data);
virtual void machine_reset() override;
diff --git a/src/mame/atari/starwars_a.cpp b/src/mame/atari/starwars_a.cpp
index 9ae8b02a147..a4dc4afb354 100644
--- a/src/mame/atari/starwars_a.cpp
+++ b/src/mame/atari/starwars_a.cpp
@@ -53,13 +53,6 @@ void starwars_state::r6532_porta_w(uint8_t data)
*
*************************************/
-WRITE_LINE_MEMBER(starwars_state::boost_interleave_hack)
-{
- if (state)
- machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100));
-}
-
-
uint8_t starwars_state::starwars_main_ready_flag_r()
{
return m_riot->porta_in_get() & 0xc0; /* only upper two flag bits mapped */