+ }\r
+ else if (which == 4) // PCM RAM (check: popful Mail)\r
+ {\r
+ dep = (DMA_Adr & 0x03FF) << 2;\r
+ cdprintf("CD DMA # %04x -> PCM[%i] # %04x, len=%i",\r
+ Pico_mcd->cdc.DAC.N, Pico_mcd->pcm.bank, dep, length);\r
+ dest = (unsigned short *) (Pico_mcd->pcm_ram_b[Pico_mcd->pcm.bank] + dep);\r
+\r
+ if (Pico_mcd->cdc.DAC.N & 1) /* unaligned src? */\r
+ memcpy(dest, src, length*2);\r
+ else memcpy16(dest, (unsigned short *) src, length);\r
+ }\r
+ else if (which == 5) // PRG RAM\r
+ {\r
+ dep = DMA_Adr << 3;\r
+ dest = (unsigned short *) (Pico_mcd->prg_ram + dep);\r
+ cdprintf("CD DMA # %04x -> prg_ram # %06x, len=%i",\r
+ Pico_mcd->cdc.DAC.N, dep, length);\r
+\r
+ memcpy16bswap(dest, src, length);\r
+\r
+ /*{ // debug\r
+ unsigned char *b1 = Pico_mcd->prg_ram + dep;\r
+ unsigned char *b2 = (unsigned char *)(dest+length) - 4;\r
+ dprintf("%02x %02x %02x %02x .. %02x %02x %02x %02x",\r
+ b1[0], b1[1], b1[2], b1[3], b2[0], b2[1], b2[2], b2[3]);\r
+ }*/\r