mirror of
https://github.com/holub/mame
synced 2025-10-06 17:08:28 +03:00
Drop the upper bit of the address when shifting left, as described http://wiki.osdev.org/ISA_DMA#16_bit_issues. This fixes 16 bit audio in sb16 diagnose.exe [smf-]
This commit is contained in:
parent
f9acb0c97b
commit
ffdb2befff
@ -362,7 +362,7 @@ READ8_MEMBER( cs4031_device::dma_read_word )
|
|||||||
if (m_dma_channel == -1)
|
if (m_dma_channel == -1)
|
||||||
return 0xff;
|
return 0xff;
|
||||||
|
|
||||||
UINT16 result = m_space->read_word(page_offset() + (offset << 1));
|
UINT16 result = m_space->read_word(page_offset() + ((offset << 1) & 0xffff));
|
||||||
m_dma_high_byte = result >> 8;
|
m_dma_high_byte = result >> 8;
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
@ -373,7 +373,7 @@ WRITE8_MEMBER( cs4031_device::dma_write_word )
|
|||||||
if (m_dma_channel == -1)
|
if (m_dma_channel == -1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
m_space->write_word(page_offset() + (offset << 1), (m_dma_high_byte << 8) | data);
|
m_space->write_word(page_offset() + ((offset << 1) & 0xffff), (m_dma_high_byte << 8) | data);
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE_LINE_MEMBER( cs4031_device::dma2_dack0_w )
|
WRITE_LINE_MEMBER( cs4031_device::dma2_dack0_w )
|
||||||
|
Loading…
Reference in New Issue
Block a user