X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=Pico%2Fcarthw%2Fsvp%2FMemory.c;h=f22613abb0fbae1f0cf0eade13b724f6bb37c5c8;hb=30752975e044377d40b2d496d17591d96a02c3af;hp=1dcaedbd64c43589daf2bc1447972d9fe016f65e;hpb=5de27868df4df82d38901a804ec6fb32eb6ab5a6;p=picodrive.git diff --git a/Pico/carthw/svp/Memory.c b/Pico/carthw/svp/Memory.c index 1dcaedb..f22613a 100644 --- a/Pico/carthw/svp/Memory.c +++ b/Pico/carthw/svp/Memory.c @@ -42,16 +42,23 @@ void PicoSVPWrite16(unsigned int a, unsigned int d, int realsize) if ((a & 0xfe0000) == 0x300000) *(u16 *)(svp->dram + (a&0x1fffe)) = d; + if (a == 0x30fe06 && d != 0) + svp->ssp1601.emu_status &= ~SSP_30FE06_WAIT; + + if (a == 0x30fe08 && d != 0) + svp->ssp1601.emu_status &= ~SSP_30FE08_WAIT; + // debug: detect RAM clears.. - CLEAR_DETECT(0x0221dc, 0x0221f0, "SVP RAM CLEAR (1)"); - CLEAR_DETECT(0x02204c, 0x022068, "SVP RAM CLEAR (2)"); + CLEAR_DETECT(0x0221dc, 0x0221f0, "SVP RAM CLEAR (full) @ 0221C2"); + CLEAR_DETECT(0x02204c, 0x022068, "SVP RAM CLEAR 300000-31ffbf (1) @ 022032"); CLEAR_DETECT(0x021900, 0x021ff0, "SVP RAM CLEAR 300000-305fff"); + CLEAR_DETECT(0x0220b0, 0x0220cc, "SVP RAM CLEAR 300000-31ffbf (2) @ 022096"); clearing_ram = 0; elprintf(EL_UIO, "SVP w%i: [%06x], %04x @%06x", realsize, a&0xffffff, d, SekPc); // just guessing here if (a == 0xa15002) svp->ssp1601.gr[SSP_XST].h = d; - else if (a == 0xa15006) svp->ssp1601.gr[SSP_PM0].h = d; + else if (a == 0xa15006) svp->ssp1601.gr[SSP_PM0].h = d | (d << 1); }