From 50483b5330e31812fc75f397ae639f6ab03f7978 Mon Sep 17 00:00:00 2001 From: notaz Date: Sat, 26 Jan 2008 15:49:24 +0000 Subject: [PATCH] fixed the arrow problem in VR git-svn-id: file:///home/notaz/opt/svn/PicoDrive@331 be3aeb3a-fb24-0410-a615-afba39da0efa --- Pico/VideoPort.c | 5 +++-- Pico/carthw/svp/svp.c | 8 +++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Pico/VideoPort.c b/Pico/VideoPort.c index 59a57b2..c448873 100644 --- a/Pico/VideoPort.c +++ b/Pico/VideoPort.c @@ -134,11 +134,12 @@ static void DmaSlow(int len) return; } } else { - if (source%04x: invalid src", Pico.video.type, source, a); return; diff --git a/Pico/carthw/svp/svp.c b/Pico/carthw/svp/svp.c index bc7cddb..a196fa1 100644 --- a/Pico/carthw/svp/svp.c +++ b/Pico/carthw/svp/svp.c @@ -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; -- 2.39.2