Previous 15994 Revisions Next

r9072 Wednesday 8th September, 2010 at 19:27:41 UTC by Angelo Salese
[PCE]: Minor hooks
[src/mess/machine]pce.c

src/mess/machine/pce.c
r9071r9072
22
33PC Engine CD HW notes:
44
5CD Interface Register 0 - CDC status
5CD Interface Register 0x00 - CDC status
66x--- ---- busy signal
77-x-- ---- request signal
88---x ---- cd signal
99---- x--- i/o signal
1010
11CD Interface Register 3 - BRAM lock / CD status
11CD Interface Register 0x03 - BRAM lock / CD status
1212-x-- ---- acknowledge signal
1313--x- ---- done signal
1414---x ---- bram signal
r9071r9072
1616---- -x-- ADPCM 1
1717---- --x- CDDA volume
1818
19CD Inteface Register 0x0c - ADPCM status
19CD Interface Register 0x07 - BRAM unlock / CD status
20x--- ---- Enables BRAM
21
22CD Interface Register 0x0c - ADPCM status
2023x--- ---- ?
2124---- x--- ADPCM playback (0) stopped (1) currently playing
22---- -x-- CD -> DMA transfer busy flag?
25---- -x-- CD -> DMA transfer busy flag
2326---- ---x ADPCM playback (1) stopped (0) currently playing
2427
25CD Inteface Register 0x0d - ADPCM address control
28CD Interface Register 0x0d - ADPCM address control
2629x--- ---- ADPCM reset
2730-x-- ---- ADPCM play
2831--x- ---- ADPCM repeat
r9071r9072
3033---- x--- ADPCM set read address
3134---- --xx ADPCM set write address
3235
36CD Interface Register 0x0e - ADPCM playback rate
37
38CD Interface Register 0x0f - ADPCM fade in/out register
39---- xxxx command setting:
400x00 ADPCM/CD-DA Fade-in
410x01 CD-DA fade-in
420x08 CD-DA fade-out (short) ADPCM fade-in
430x09 CD-DA fade-out (long)
440x0a ADPCM fade-out (long)
450x0c CD-DA fade-out (short) ADPCM fade-in
460x0d CD-DA fade-out (short)
470x0e ADPCM fade-out (short)
48
3349*************************************************************/
3450
3551#include "emu.h"
r9071r9072
10971113      {
10981114         /* Start CD to ADPCM transfer */
10991115         timer_adjust_periodic(pce_cd.adpcm_dma_timer, ATTOTIME_IN_HZ( PCE_CD_DATA_FRAMES_PER_SECOND * 2048 ), 0, ATTOTIME_IN_HZ( PCE_CD_DATA_FRAMES_PER_SECOND * 2048 ) );
1116         pce_cd.regs[0x0c] |= 4;
11001117      }
11011118      if ( ( pce_cd.regs[0x0B] & 0x02 ) && ! ( data & 0x02 ) )
11021119      {
r9071r9072
11071124   case 0x0C:   /* ADPCM status */
11081125      break;
11091126   case 0x0D:   /* ADPCM address control */
1127      //printf("%02x\n",data);
11101128      if ( ( pce_cd.regs[0x0D] & 0x80 ) && ! ( data & 0x80 ) )
11111129      {
11121130         /* Reset ADPCM hardware */
r9071r9072
11681186
11691187static TIMER_CALLBACK( pce_cd_adpcm_dma_timer_callback )
11701188{
1171   if ( pce_cd.scsi_REQ && ! pce_cd.scsi_ACK && ! pce_cd.scsi_CD && pce_cd.scsi_IO )
1189   if ( pce_cd.scsi_REQ && ! pce_cd.scsi_ACK && ! pce_cd.scsi_CD && pce_cd.scsi_IO )
11721190   {
11731191      pce_cd.adpcm_ram[pce_cd.adpcm_write_ptr] = pce_cd_get_cd_data_byte(machine);
11741192      pce_cd.adpcm_write_ptr = ( pce_cd.adpcm_write_ptr + 1 ) & 0xFFFF;
1193
1194      pce_cd.regs[0x0c] &= ~4;
11751195   }
11761196}
11771197
r9071r9072
12091229      break;
12101230   case 0x05:   /* Convert PCM data / PCM data */
12111231   case 0x06:   /* PCM data */
1232      break;
12121233   case 0x07:   /* BRAM unlock / CD status */
12131234      data = ( pce_cd.bram_locked ? ( data & 0x7F ) : ( data | 0x80 ) );
12141235      break;
r9071r9072
12181239   case 0x09:   /* ADPCM address (MSB) */
12191240   case 0x0A:   /* ADPCM RAM data port */
12201241   case 0x0B:   /* ADPCM DMA control */
1221   case 0x0C:   /* ADPCM status */
12221242   case 0x0D:   /* ADPCM address control */
12231243   case 0x0E:   /* ADPCM playback rate */
12241244   case 0x0F:   /* ADPCM and CD audio fade timer */
12251245      break;
1246   case 0x0C:   /* ADPCM status */
1247      //data |= 1;
1248      break;
12261249   case 0xC1:
12271250      data = pce_sys3_card ? 0xAA : 0xFF;
12281251      break;

Previous 15994 Revisions Next


© 1998-2018 The MESS Team