spg110: add manual vram uploads, needed for most of the jak_spdmo games

This commit is contained in:
DavidHaywood 2019-03-30 01:15:54 +00:00
parent aec15f1f38
commit b946a445f1
3 changed files with 15 additions and 0 deletions

View File

@ -131,6 +131,7 @@ void spg110_device::map(address_map &map)
map(0x002062, 0x002062).rw(m_spg_video, FUNC(spg110_video_device::dma_len_status_r),FUNC(spg110_video_device::dma_len_trigger_w));
map(0x002063, 0x002063).rw(m_spg_video, FUNC(spg110_video_device::spg110_2063_r),FUNC(spg110_video_device::spg110_2063_w)); // Video IRQ source / ack (3 different things checked here instead of 2 on spg2xx?)
map(0x002064, 0x002064).w(m_spg_video, FUNC(spg110_video_device::dma_dst_step_w));
map(0x002065, 0x002065).rw(m_spg_video, FUNC(spg110_video_device::dma_manual_r), FUNC(spg110_video_device::dma_manual_w));
map(0x002066, 0x002066).w(m_spg_video, FUNC(spg110_video_device::dma_src_w));
map(0x002067, 0x002067).w(m_spg_video, FUNC(spg110_video_device::dma_unk_2067_w));
map(0x002068, 0x002068).w(m_spg_video, FUNC(spg110_video_device::dma_src_step_w));

View File

@ -435,6 +435,17 @@ WRITE16_MEMBER(spg110_video_device::dma_len_trigger_w)
}
}
WRITE16_MEMBER(spg110_video_device::dma_manual_w)
{
this->space(0).write_word(m_dma_dst * 2, data, 0xffff);
}
READ16_MEMBER(spg110_video_device::dma_manual_r)
{
uint16_t val = this->space(0).read_word(m_dma_dst * 2);
return val;
}
READ16_MEMBER(spg110_video_device::dma_len_status_r)
{
return 0x1fff; // DMA related?

View File

@ -76,6 +76,9 @@ public:
DECLARE_READ16_MEMBER(dma_len_status_r);
DECLARE_READ16_MEMBER(spg110_2063_r);
DECLARE_READ16_MEMBER(dma_manual_r);
DECLARE_WRITE16_MEMBER(dma_manual_w);
DECLARE_READ16_MEMBER(tmap0_regs_r);
DECLARE_READ16_MEMBER(tmap1_regs_r);
DECLARE_WRITE16_MEMBER(tmap0_regs_w);