First post, by paulacchang2
Hi,
Running DOSBox 0.74. Downloaded source code and compiled it.
After the first digital sound is played in the intro sequence of the game, I got the error message "DMA segbound wrapping (read)". I had a look at the source code, and hacked in a change in dma.cpp, line 52, from
if (offset>(dma_wrapping<<dma16)) { E_Exit("DMA segbound wrapping (read)"); }
to
if (offset>(dma_wrapping<<dma16) && size > 1) { E_Exit("DMA segbound wrapping (read)"); }
All the digital sounds now play (with very infrequent popping), but I was wondering if a more 'sound' fix could be implemented.
Thanks,
Paul AC Chang
PS: Related to this issue, in the function Bitu DmaChannel::Read, line 288, (which hits if want >= left) should this line read as
DMA_BlockRead(pagebase,curraddr,buffer,left,DMA16);
rather than
DMA_BlockRead(pagebase,curraddr,buffer,want,DMA16);