return;\r
}\r
} else {\r
- if (source<Pico.romsize) { // Rom\r
+ // if we have DmaHook, let it handle ROM because of possible DMA delay\r
+ if (PicoDmaHook && PicoDmaHook(source, len, &pd, &pdend));\r
+ else if (source<Pico.romsize) { // Rom\r
pd=(u16 *)(Pico.rom+(source&~1));\r
pdend=(u16 *)(Pico.rom+Pico.romsize);\r
}\r
- else if (PicoDmaHook && PicoDmaHook(source, len, &pd, &pdend));\r
else {\r
elprintf(EL_VDPDMA|EL_ANOMALY, "DmaSlow[%i] %06x->%04x: invalid src", Pico.video.type, source, a);\r
return;\r
else if(pints & 0x10) irq = 4;\r
SekInterrupt(irq); // update line\r
\r
- if (irq) SekEndRun(24); // make it delayed\r
+ if (irq && Pico.m.scanline!=-1) SekEndRun(24); // make it delayed\r
}\r
}\r
#endif\r