X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=Pico%2Fcd%2FLC89510.c;h=1f00607392d7dffd031c00a286422ecd8e247cf7;hb=fa1e5e2948e9b06dec3353081081173f7ae4d742;hp=2549fa8e93b80390de5c44a5c647aac68b14edac;hpb=1cd356a33daf2eec34e52c075b06d62866f5fb2f;p=picodrive.git diff --git a/Pico/cd/LC89510.c b/Pico/cd/LC89510.c index 2549fa8..1f00607 100644 --- a/Pico/cd/LC89510.c +++ b/Pico/cd/LC89510.c @@ -104,19 +104,20 @@ void Update_CDC_TRansfer(int which) { if (Pico_mcd->s68k_regs[3] & 4) { + // test: Final Fight + int bank = !(Pico_mcd->s68k_regs[3]&1); dep = ((DMA_Adr & 0x3FFF) << 3); cdprintf("CD DMA # %04x -> word_ram1M # %06x, len=%i", Pico_mcd->cdc.DAC.N, dep, length); - dep = ((DMA_Adr & 0x3FFF) << 4); - if (!(Pico_mcd->s68k_regs[3]&1)) dep += 2; - dest = (unsigned short *) (Pico_mcd->word_ram + dep); + dest = (unsigned short *) (Pico_mcd->word_ram1M[bank] + dep); - for (len = length; len > 0; len--, src+=2, dest+=2) + // TODO: bswapcpy + for (len = length; len > 0; len--, src+=2, dest++) *dest = (src[0]<<8) | src[1]; { // debug - unsigned char *b1 = Pico_mcd->word_ram + dep; + unsigned char *b1 = Pico_mcd->word_ram1M[bank] + dep; unsigned char *b2 = (unsigned char *)dest - 8; dprintf("%02x %02x %02x %02x .. %02x %02x %02x %02x", b1[0], b1[1], b1[4], b1[5], b2[0], b2[1], b2[4], b2[5]); @@ -127,13 +128,13 @@ void Update_CDC_TRansfer(int which) dep = ((DMA_Adr & 0x7FFF) << 3); cdprintf("CD DMA # %04x -> word_ram2M # %06x, len=%i", Pico_mcd->cdc.DAC.N, dep, length); - dest = (unsigned short *) (Pico_mcd->word_ram + dep); + dest = (unsigned short *) (Pico_mcd->word_ram2M + dep); for (len = length; len > 0; len--, src+=2, dest++) *dest = (src[0]<<8) | src[1]; { // debug - unsigned char *b1 = Pico_mcd->word_ram + dep; + unsigned char *b1 = Pico_mcd->word_ram2M + dep; unsigned char *b2 = (unsigned char *)dest - 4; dprintf("%02x %02x %02x %02x .. %02x %02x %02x %02x", b1[0], b1[1], b1[2], b1[3], b2[0], b2[1], b2[2], b2[3]); @@ -146,7 +147,7 @@ void Update_CDC_TRansfer(int which) dest = (unsigned char *) Ram_PCM; dep = ((DMA_Adr & 0x03FF) << 2) + PCM_Chip.Bank; #else - cdprintf("CD DMA # %04x -> PCM TODO", Pico_mcd->cdc.DAC.N); + dprintf("FIXME: CD DMA # %04x -> PCM", Pico_mcd->cdc.DAC.N); #endif } else if (which == 5) // PRG RAM @@ -188,7 +189,7 @@ unsigned short Read_CDC_Host(int is_sub) if (!(Pico_mcd->scd.Status_CDC & 0x08)) { // Transfer data disabled - cdprintf("Read_CDC_Host: Transfer data disabled"); + cdprintf("Read_CDC_Host FIXME: Transfer data disabled"); return 0; } @@ -196,7 +197,7 @@ unsigned short Read_CDC_Host(int is_sub) (!is_sub && (Pico_mcd->s68k_regs[4] & 7) != 2)) { // Wrong setting - cdprintf("Read_CDC_Host: Wrong setting"); + cdprintf("Read_CDC_Host FIXME: Wrong setting"); return 0; }