Previous 15994 Revisions Next

r9124 Tuesday 14th September, 2010 at 01:54:34 UTC by Barry Rodewald
[FMTOWNS] Added Resume CD-DA command to the CD controller, fixes CD-DA playback in Death Brade.
[src/mess/drivers]fmtowns.c

src/mess/drivers/fmtowns.c
r9123r9124
13321332   logerror("CD: CD-DA start from LBA:%i length:%i\n",state->towns_cd.cdda_current,state->towns_cd.cdda_length);
13331333
13341334   state->towns_cd.extra_status = 1;
1335   towns_cd_set_status(device->machine,0x00,0x00,0x00,0x00);
1335   towns_cd_set_status(device->machine,0x00,0x03,0x00,0x00);
13361336}
13371337
13381338static void towns_cdrom_execute_command(running_device* device)
r9123r9124
13961396                  towns_cd_set_status(device->machine,0x00,0x00,0x00,0x00);
13971397                  break;
13981398               }
1399               if(cdda_audio_active(state->cdda))
1399               if(cdda_audio_active(state->cdda) && !cdda_audio_paused(state->cdda))
14001400                  towns_cd_set_status(device->machine,0x00,0x03,0x00,0x00);
14011401               else
14021402                  towns_cd_set_status(device->machine,0x00,0x01,0x00,0x00);
r9123r9124
14111411            }
14121412            logerror("CD: Command 0x81: set state (CDDASET)\n");
14131413            break;
1414         case 0x84:   // Stop CD audio track
1414         case 0x84:   // Stop CD audio track  -- generates no status output?
14151415            if(state->towns_cd.command & 0x20)
14161416            {
14171417               state->towns_cd.extra_status = 1;
14181418               towns_cd_set_status(device->machine,0x00,0x00,0x00,0x00);
1419               cdda_stop_audio(state->cdda);
1419               cdda_pause_audio(state->cdda,1);
14201420            }
14211421            logerror("CD: Command 0x84: STOP CD-DA\n");
14221422            break;
r9123r9124
14251425            {
14261426               state->towns_cd.extra_status = 1;
14271427               towns_cd_set_status(device->machine,0x00,0x00,0x00,0x00);
1428               cdda_stop_audio(state->cdda);
1428               cdda_pause_audio(state->cdda,1);
14291429            }
14301430            logerror("CD: Command 0x85: STOP CD-DA\n");
14311431            break;
1432         case 0x87:  // Resume CD-DA playback
1433            if(state->towns_cd.command & 0x20)
1434            {
1435               state->towns_cd.extra_status = 1;
1436               towns_cd_set_status(device->machine,0x00,0x03,0x00,0x00);
1437               cdda_pause_audio(state->cdda,0);
1438            }
1439            logerror("CD: Command 0x87: RESUME CD-DA\n");
1440            break;
14321441         default:
14331442            state->towns_cd.extra_status = 0;
14341443            towns_cd_set_status(device->machine,0x10,0x00,0x00,0x00);

Previous 15994 Revisions Next


© 1998-2018 The MESS Team