fixed the arrow problem in VR

git-svn-id: file:///home/notaz/opt/svn/PicoDrive@331 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
notaz 2008-01-26 15:49:24 +00:00
parent 0ffefdb8bd
commit 50483b5330
2 changed files with 10 additions and 3 deletions

View file

@ -134,11 +134,12 @@ static void DmaSlow(int len)
return;
}
} else {
if (source<Pico.romsize) { // Rom
// if we have DmaHook, let it handle ROM because of possible DMA delay
if (PicoDmaHook && PicoDmaHook(source, len, &pd, &pdend));
else if (source<Pico.romsize) { // Rom
pd=(u16 *)(Pico.rom+(source&~1));
pdend=(u16 *)(Pico.rom+Pico.romsize);
}
else if (PicoDmaHook && PicoDmaHook(source, len, &pd, &pdend));
else {
elprintf(EL_VDPDMA|EL_ANOMALY, "DmaSlow[%i] %06x->%04x: invalid src", Pico.video.type, source, a);
return;

View file

@ -26,7 +26,13 @@ static void PicoSVPLine(int count)
static int PicoSVPDma(unsigned int source, int len, unsigned short **srcp, unsigned short **limitp)
{
if ((source & 0xfe0000) == 0x300000)
if (source < Pico.romsize) { // Rom
source -= 2;
*srcp = (unsigned short *)(Pico.rom + (source&~1));
*limitp = (unsigned short *)(Pico.rom + Pico.romsize);
return 1;
}
else if ((source & 0xfe0000) == 0x300000)
{
elprintf(EL_VDPDMA|EL_SVP, "SVP DmaSlow from %06x, len=%i", source, len);
source &= 0x1fffe;