re-enable SHARC recompiler for Gradius 4

This commit is contained in:
Ville Linde 2021-06-18 17:42:16 +03:00
parent c585ae63ce
commit 7034c3456d
4 changed files with 22 additions and 3 deletions

View File

@ -980,7 +980,15 @@ void adsp21062_device::set_flag_input(int flag_num, int state)
WRITE_LINE_MEMBER(adsp21062_device::write_stall)
{
m_core->write_stalled = (state == 0) ? false : true;
m_core->write_stalled = (state == 0) ? false : true;
if (m_enable_drc)
{
if (m_core->write_stalled)
spin_until_trigger(45757);
else
machine().scheduler().trigger(45757);
}
}
void adsp21062_device::check_interrupts()

View File

@ -335,7 +335,7 @@ TIMER_CALLBACK_MEMBER(adsp21062_device::sharc_dma_callback)
}
dma_op(channel);
if (m_core->dma_op[channel].chain_ptr != 0)
if ((m_core->dma_op[channel].chain_ptr & 0x1ffff) != 0)
{
schedule_chained_dma_op(channel, m_core->dma_op[channel].chain_ptr, m_core->dma_op[channel].chained_direction);
}

View File

@ -409,6 +409,7 @@ public:
void init_hornet();
void init_sscope();
void init_sscope2();
void init_gradius4();
protected:
virtual void machine_start() override;
@ -1401,6 +1402,13 @@ void hornet_state::init_hornet()
//m_dsp[0]->enable_recompiler();
}
void hornet_state::init_gradius4()
{
init_hornet();
m_dsp[0]->enable_recompiler();
}
void hornet_state::init_sscope()
{
m_konppc->set_cgboard_texture_bank(0, "master_cgboard_bank", memregion("master_cgboard")->base());
@ -1705,7 +1713,7 @@ ROM_END
/*************************************************************************/
GAME( 1998, gradius4, 0, hornet, gradius4, hornet_state, init_hornet, ROT0, "Konami", "Gradius IV: Fukkatsu (ver JAC)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 1998, gradius4, 0, hornet, gradius4, hornet_state, init_gradius4, ROT0, "Konami", "Gradius IV: Fukkatsu (ver JAC)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 1998, nbapbp, 0, hornet, nbapbp, hornet_state, init_hornet, ROT0, "Konami", "NBA Play By Play (ver JAA)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 1998, nbapbpa, nbapbp, hornet, nbapbp, hornet_state, init_hornet, ROT0, "Konami", "NBA Play By Play (ver AAB)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 1998, terabrst, 0, terabrst, terabrst, hornet_state, init_hornet, ROT0, "Konami", "Teraburst (1998/07/17 ver UEL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )

View File

@ -452,6 +452,9 @@ void nwktr_state::sysreg_w(offs_t offset, uint8_t data)
m_konppc->set_cgboard_id((data >> 4) & 0x3);
// Racing Jam sets CG board ID to 2 when writing to the tilemap chip.
// This could mean broadcast to both CG boards?
m_exrgb = data & 0x1; // Select which CG Board outputs signal
m_cg_view.select(m_konppc->get_cgboard_id() ? 1 : 0);