trunk/src/mame/machine/megacdcd.c
| r19371 | r19372 | |
| 31 | 31 | nNeoCDIRQVector = 0; |
| 32 | 32 | } |
| 33 | 33 | |
| 34 | | enum CDEmuStatusValue { idle = 0, reading, playing, paused, seeking, fastforward, fastreverse }; |
| 35 | | CDEmuStatusValue CDEmuStatus; |
| 36 | 34 | |
| 37 | | static inline CDEmuStatusValue CDEmuGetStatus() |
| 38 | | { |
| 39 | | // printf("CDEmuGetStatus\n"); |
| 40 | | return CDEmuStatus; |
| 41 | | } |
| 42 | 35 | |
| 43 | | |
| 44 | 36 | void lc89510_temp_device::set_CDC_Do_DMA(device_t &device,segacd_dma_delegate new_segacd_dma_callback) |
| 45 | 37 | { |
| 46 | 38 | lc89510_temp_device &dev = downcast<lc89510_temp_device &>(device); |
| r19371 | r19372 | |
| 350 | 342 | cdda_start_audio( m_cdda, SCD_CURLBA, end_msf - SCD_CURLBA ); |
| 351 | 343 | SET_CDC_READ |
| 352 | 344 | |
| 353 | | // neocd |
| 354 | | CDEmuStatus = seeking; |
| 345 | |
| 355 | 346 | NeoCD_StatusHack = 1; |
| 356 | 347 | |
| 357 | 348 | } |
| r19371 | r19372 | |
| 1097 | 1088 | if (!CDD_Import(machine())) |
| 1098 | 1089 | return; |
| 1099 | 1090 | |
| 1100 | | if (NeoCD_StatusHack == 1) { |
| 1101 | | if (CDEmuGetStatus() == idle) { |
| 1102 | | NeoCD_StatusHack = 0x0E; |
| 1103 | | } |
| 1104 | | } |
| 1105 | | |
| 1106 | 1091 | CDD_Export(true); // true == neocd hack, |
| 1107 | 1092 | } |
| 1108 | 1093 | |