mirror of
https://github.com/holub/mame
synced 2025-06-05 04:16:28 +03:00
Start killing off non-diexec PULSE_LINE hacks (nw)
This commit is contained in:
parent
bbf9a9cf40
commit
4acb7f4bad
@ -168,6 +168,9 @@ public:
|
|||||||
virtual void WW(offs_t A, uint16_t V) = 0;
|
virtual void WW(offs_t A, uint16_t V) = 0;
|
||||||
virtual void WL(offs_t A, uint32_t V) = 0;
|
virtual void WL(offs_t A, uint32_t V) = 0;
|
||||||
|
|
||||||
|
virtual void set_frt_input(int state) = 0;
|
||||||
|
void pulse_frt_input() { set_frt_input(ASSERT_LINE); set_frt_input(CLEAR_LINE); }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// compilation boundaries -- how far back/forward does the analysis extend?
|
// compilation boundaries -- how far back/forward does the analysis extend?
|
||||||
enum : u32
|
enum : u32
|
||||||
|
@ -82,7 +82,7 @@ public:
|
|||||||
DECLARE_READ32_MEMBER( sh7604_r );
|
DECLARE_READ32_MEMBER( sh7604_r );
|
||||||
DECLARE_READ32_MEMBER(sh2_internal_a5);
|
DECLARE_READ32_MEMBER(sh2_internal_a5);
|
||||||
|
|
||||||
void sh2_set_frt_input(int state);
|
virtual void set_frt_input(int state) override;
|
||||||
void sh2_notify_dma_data_available();
|
void sh2_notify_dma_data_available();
|
||||||
void func_fastirq();
|
void func_fastirq();
|
||||||
|
|
||||||
|
@ -722,15 +722,8 @@ READ32_MEMBER( sh2_device::sh7604_r )
|
|||||||
return m_m[offset];
|
return m_m[offset];
|
||||||
}
|
}
|
||||||
|
|
||||||
void sh2_device::sh2_set_frt_input(int state)
|
void sh2_device::set_frt_input(int state)
|
||||||
{
|
{
|
||||||
if(state == PULSE_LINE)
|
|
||||||
{
|
|
||||||
sh2_set_frt_input(ASSERT_LINE);
|
|
||||||
sh2_set_frt_input(CLEAR_LINE);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(m_frt_input == state) {
|
if(m_frt_input == state) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -216,7 +216,7 @@ public:
|
|||||||
TIMER_CALLBACK_MEMBER( sh4_timer_callback );
|
TIMER_CALLBACK_MEMBER( sh4_timer_callback );
|
||||||
TIMER_CALLBACK_MEMBER( sh4_dmac_callback );
|
TIMER_CALLBACK_MEMBER( sh4_dmac_callback );
|
||||||
|
|
||||||
void sh4_set_frt_input(int state);
|
virtual void set_frt_input(int state) override;
|
||||||
void sh4_set_irln_input(int value);
|
void sh4_set_irln_input(int value);
|
||||||
//void sh4_set_ftcsr_callback(sh4_ftcsr_callback callback);
|
//void sh4_set_ftcsr_callback(sh4_ftcsr_callback callback);
|
||||||
int sh4_dma_data(struct sh4_device_dma *s);
|
int sh4_dma_data(struct sh4_device_dma *s);
|
||||||
|
@ -1066,18 +1066,11 @@ READ32_MEMBER( sh4_base_device::sh4_internal_r )
|
|||||||
return m_m[offset];
|
return m_m[offset];
|
||||||
}
|
}
|
||||||
|
|
||||||
void sh34_base_device::sh4_set_frt_input(int state)
|
void sh34_base_device::set_frt_input(int state)
|
||||||
{
|
{
|
||||||
if (m_cpu_type != CPU_TYPE_SH4)
|
if (m_cpu_type != CPU_TYPE_SH4)
|
||||||
fatalerror("sh4_set_frt_input uses m_m[] with SH3\n");
|
fatalerror("sh4_set_frt_input uses m_m[] with SH3\n");
|
||||||
|
|
||||||
if(state == PULSE_LINE)
|
|
||||||
{
|
|
||||||
sh4_set_frt_input(ASSERT_LINE);
|
|
||||||
sh4_set_frt_input(CLEAR_LINE);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(m_sh2_state->m_frt_input == state) {
|
if(m_sh2_state->m_frt_input == state) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -826,9 +826,12 @@ MACHINE_RESET_MEMBER(bublbobl_state,common) // things common on both tokio and b
|
|||||||
m_soundnmi->in_w<0>(0); // clear sound NMI stuff
|
m_soundnmi->in_w<0>(0); // clear sound NMI stuff
|
||||||
m_soundnmi->in_w<1>(0);
|
m_soundnmi->in_w<1>(0);
|
||||||
m_subcpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE); // if a subcpu nmi is active (extremely remote chance), it is cleared
|
m_subcpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE); // if a subcpu nmi is active (extremely remote chance), it is cleared
|
||||||
m_maincpu->set_input_line(INPUT_LINE_RESET, PULSE_LINE); // maincpu is reset
|
if (!m_sreset_old)
|
||||||
m_subcpu->set_input_line(INPUT_LINE_RESET, PULSE_LINE); // subcpu is reset
|
{
|
||||||
common_sreset(PULSE_LINE); // /SRESET is pulsed
|
// /SRESET is pulsed
|
||||||
|
common_sreset(ASSERT_LINE);
|
||||||
|
common_sreset(CLEAR_LINE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -177,7 +177,10 @@ void namcoio_device::device_reset()
|
|||||||
elem = 0;
|
elem = 0;
|
||||||
|
|
||||||
if (m_reset != ASSERT_LINE)
|
if (m_reset != ASSERT_LINE)
|
||||||
set_reset_line(PULSE_LINE);
|
{
|
||||||
|
set_reset_line(ASSERT_LINE);
|
||||||
|
set_reset_line(CLEAR_LINE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
@ -79,7 +79,7 @@ WRITE32_MEMBER(saturn_state::minit_w)
|
|||||||
machine().scheduler().boost_interleave(m_minit_boost_timeslice, attotime::from_usec(m_minit_boost));
|
machine().scheduler().boost_interleave(m_minit_boost_timeslice, attotime::from_usec(m_minit_boost));
|
||||||
machine().scheduler().trigger(1000);
|
machine().scheduler().trigger(1000);
|
||||||
machine().scheduler().synchronize(); // force resync
|
machine().scheduler().synchronize(); // force resync
|
||||||
m_slave->sh2_set_frt_input(PULSE_LINE);
|
m_slave->pulse_frt_input();
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE32_MEMBER(saturn_state::sinit_w)
|
WRITE32_MEMBER(saturn_state::sinit_w)
|
||||||
@ -87,7 +87,7 @@ WRITE32_MEMBER(saturn_state::sinit_w)
|
|||||||
//logerror("%s SINIT write = %08x\n", machine().describe_context(),data);
|
//logerror("%s SINIT write = %08x\n", machine().describe_context(),data);
|
||||||
machine().scheduler().boost_interleave(m_sinit_boost_timeslice, attotime::from_usec(m_sinit_boost));
|
machine().scheduler().boost_interleave(m_sinit_boost_timeslice, attotime::from_usec(m_sinit_boost));
|
||||||
machine().scheduler().synchronize(); // force resync
|
machine().scheduler().synchronize(); // force resync
|
||||||
m_maincpu->sh2_set_frt_input(PULSE_LINE);
|
m_maincpu->pulse_frt_input();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -120,7 +120,7 @@ WRITE32_MEMBER(saturn_state::saturn_minit_w)
|
|||||||
machine().scheduler().trigger(1000);
|
machine().scheduler().trigger(1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_slave->sh2_set_frt_input(PULSE_LINE);
|
m_slave->pulse_frt_input();
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE32_MEMBER(saturn_state::saturn_sinit_w)
|
WRITE32_MEMBER(saturn_state::saturn_sinit_w)
|
||||||
@ -131,7 +131,7 @@ WRITE32_MEMBER(saturn_state::saturn_sinit_w)
|
|||||||
else
|
else
|
||||||
machine().scheduler().boost_interleave(m_sinit_boost_timeslice, attotime::from_usec(m_sinit_boost));
|
machine().scheduler().boost_interleave(m_sinit_boost_timeslice, attotime::from_usec(m_sinit_boost));
|
||||||
|
|
||||||
m_maincpu->sh2_set_frt_input(PULSE_LINE);
|
m_maincpu->pulse_frt_input();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user