diff options
| author | 2011-06-15 13:10:37 +0000 | |
|---|---|---|
| committer | 2011-06-15 13:10:37 +0000 | |
| commit | 2cc07055e43cc90813e8d5742b34928c488731a4 (patch) | |
| tree | 13da9c90571c355f44227502d32e910113a28e0a | |
| parent | 079e1fa5faf98fbf25bbfe4ada0050821866bdbe (diff) | |
CDROM image device modernized and drivers updated (no whatsnew)
| -rw-r--r-- | src/emu/imagedev/cassette.h | 2 | ||||
| -rw-r--r-- | src/emu/imagedev/chd_cd.c | 196 | ||||
| -rw-r--r-- | src/emu/imagedev/chd_cd.h | 61 | ||||
| -rw-r--r-- | src/emu/machine/matsucd.c | 4 | ||||
| -rw-r--r-- | src/emu/machine/matsucd.h | 2 | ||||
| -rw-r--r-- | src/emu/machine/scsicd.c | 3 | ||||
| -rw-r--r-- | src/mame/drivers/3do.c | 9 | ||||
| -rw-r--r-- | src/mame/drivers/cd32.c | 9 | ||||
| -rw-r--r-- | src/mame/drivers/cdi.c | 10 | ||||
| -rw-r--r-- | src/mame/drivers/saturn.c | 7 | ||||
| -rw-r--r-- | src/mame/machine/cd32.c | 5 | ||||
| -rw-r--r-- | src/mame/machine/cdicdic.c | 4 | ||||
| -rw-r--r-- | src/mame/machine/gdrom.c | 3 | ||||
| -rw-r--r-- | src/mame/machine/megadriv.c | 24 | ||||
| -rw-r--r-- | src/mame/machine/stvcd.c | 2 |
15 files changed, 171 insertions, 170 deletions
diff --git a/src/emu/imagedev/cassette.h b/src/emu/imagedev/cassette.h index 6f3f702171e..922c7c9bcbb 100644 --- a/src/emu/imagedev/cassette.h +++ b/src/emu/imagedev/cassette.h @@ -66,7 +66,7 @@ public: virtual bool call_load(); virtual void call_unload(); virtual void call_display(); - virtual void call_display_info() { m_device_displayinfo(*this); } + virtual void call_display_info() { if (m_device_displayinfo) m_device_displayinfo(*this); } virtual bool call_softlist_load(char *swlist, char *swname, rom_entry *start_entry) { return load_software(swlist, swname, start_entry); } virtual iodevice_t image_type() const { return IO_CASSETTE; } diff --git a/src/emu/imagedev/chd_cd.c b/src/emu/imagedev/chd_cd.c index cfdaf9e47d3..28971f5d2a0 100644 --- a/src/emu/imagedev/chd_cd.c +++ b/src/emu/imagedev/chd_cd.c @@ -37,13 +37,6 @@ static const char *const error_strings[] = "unsupported CHD version" }; -INLINE const cdrom_config *get_config_dev(const device_t *device) -{ - assert(device != NULL); - assert(device->type() == CDROM); - return (const cdrom_config *)downcast<const legacy_device_base *>(device)->inline_config(); -} - static const char *chd_get_error_string(int chderr) { if ((chderr < 0 ) || (chderr >= ARRAY_LENGTH(error_strings))) @@ -56,43 +49,96 @@ static OPTION_GUIDE_START(cd_option_guide) OPTION_INT('K', "hunksize", "Hunk Bytes") OPTION_GUIDE_END -static const char cd_option_spec[] = - "K512/1024/2048/[4096]"; +static const char cd_option_spec[] = "K512/1024/2048/[4096]"; +// device type definition +const device_type CDROM = &device_creator<cdrom_image_device>; -typedef struct _dev_cdrom_t dev_cdrom_t; -struct _dev_cdrom_t +//------------------------------------------------- +// cdrom_image_device - constructor +//------------------------------------------------- + +cdrom_image_device::cdrom_image_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) + : device_t(mconfig, CDROM, "Cdrom", tag, owner, clock), + device_image_interface(mconfig, *this) { - cdrom_file *cdrom_handle; -}; +} + +//------------------------------------------------- +// cdrom_image_device - destructor +//------------------------------------------------- + +cdrom_image_device::~cdrom_image_device() +{ +} + +//------------------------------------------------- +// device_config_complete - perform any +// operations now that the configuration is +// complete +//------------------------------------------------- + +void cdrom_image_device::device_config_complete() +{ + // inherit a copy of the static data + const cdrom_interface *intf = reinterpret_cast<const cdrom_interface *>(static_config()); + if (intf != NULL) + *static_cast<cdrom_interface *>(this) = *intf; + + // or initialize to defaults if none provided + else + { + memset(&m_interface, 0, sizeof(m_interface)); + memset(&m_device_displayinfo, 0, sizeof(m_device_displayinfo)); + } + + image_device_format *format = global_alloc_clear(image_device_format);; + format->m_index = 0; + format->m_name = "chdcd"; + format->m_description = "CHD CD-ROM drive"; + format->m_extensions = "chd"; + format->m_optspec = cd_option_spec; + format->m_next = NULL; + + m_formatlist = format; + + // set brief and instance name + update_names(); +} -INLINE dev_cdrom_t *get_safe_token(device_t *device) { - assert( device != NULL ); - assert( ( device->type() == CDROM ) ); - return (dev_cdrom_t *) downcast<legacy_device_base *>(device)->token(); +const option_guide *cdrom_image_device::create_option_guide() const +{ + return cd_option_guide; } +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- + +void cdrom_image_device::device_start() +{ + m_cdrom_handle = NULL; +} -static DEVICE_IMAGE_LOAD(cdrom) +bool cdrom_image_device::call_load() { - dev_cdrom_t *cdrom = get_safe_token(&image.device()); chd_error err = (chd_error)0; chd_file *chd = NULL; astring tempstring; - if (image.software_entry() == NULL) + if (software_entry() == NULL) { - err = chd_open_file( image.image_core_file(), CHD_OPEN_READ, NULL, &chd ); /* CDs are never writeable */ + err = chd_open_file( image_core_file(), CHD_OPEN_READ, NULL, &chd ); /* CDs are never writeable */ if ( err ) goto error; } else { - chd = get_disk_handle(image.device().machine(), image.device().subtag(tempstring,"cdrom")); + chd = get_disk_handle(device().machine(), device().subtag(tempstring,"cdrom")); } /* open the CHD file */ - cdrom->cdrom_handle = cdrom_open( chd ); - if ( ! cdrom->cdrom_handle ) + m_cdrom_handle = cdrom_open( chd ); + if ( ! m_cdrom_handle ) goto error; return IMAGE_INIT_PASS; @@ -101,105 +147,13 @@ error: if ( chd ) chd_close( chd ); if ( err ) - image.seterror( IMAGE_ERROR_UNSPECIFIED, chd_get_error_string( err ) ); + seterror( IMAGE_ERROR_UNSPECIFIED, chd_get_error_string( err ) ); return IMAGE_INIT_FAIL; } - -static DEVICE_IMAGE_UNLOAD(cdrom) +void cdrom_image_device::call_unload() { - dev_cdrom_t *cdrom = get_safe_token( &image.device() ); - - assert( cdrom->cdrom_handle ); - cdrom_close( cdrom->cdrom_handle ); - cdrom->cdrom_handle = NULL; + assert(m_cdrom_handle); + cdrom_close(m_cdrom_handle); + m_cdrom_handle = NULL; } - - -/************************************* - * - * Get the cdrom handle (from the src/cdrom.c core) - * after an image has been opened with the cd core - * - *************************************/ - -cdrom_file *cd_get_cdrom_file(device_t *image) -{ - dev_cdrom_t *cdrom = get_safe_token( image ); - - return cdrom->cdrom_handle; -} - - -/*------------------------------------------------- - DEVICE_START(cdrom) --------------------------------------------------*/ - -static DEVICE_START(cdrom) -{ - dev_cdrom_t *cdrom = get_safe_token( device ); - - cdrom->cdrom_handle = NULL; -} - -/*------------------------------------------------- - DEVICE_IMAGE_SOFTLIST_LOAD(cdrom) --------------------------------------------------*/ -static DEVICE_IMAGE_SOFTLIST_LOAD(cdrom) -{ - load_software_part_region( &image.device(), swlist, swname, start_entry ); - return TRUE; -} - -/*------------------------------------------------- - DEVICE_GET_INFO(cdrom) --------------------------------------------------*/ - -DEVICE_GET_INFO(cdrom) -{ - switch( state ) - { - /* --- the following bits of info are returned as 64-bit signed integers --- */ - case DEVINFO_INT_TOKEN_BYTES: info->i = sizeof(dev_cdrom_t); break; - case DEVINFO_INT_INLINE_CONFIG_BYTES: info->i = sizeof(cdrom_config); break; - case DEVINFO_INT_IMAGE_TYPE: info->i = IO_CDROM; break; - case DEVINFO_INT_IMAGE_READABLE: info->i = 1; break; - case DEVINFO_INT_IMAGE_WRITEABLE: info->i = 0; break; - case DEVINFO_INT_IMAGE_CREATABLE: info->i = 0; break; - case DEVINFO_INT_IMAGE_CREATE_OPTCOUNT: info->i = 1; break; - - /* --- the following bits of info are returned as pointers to data or functions --- */ - case DEVINFO_FCT_START: info->start = DEVICE_START_NAME(cdrom); break; - case DEVINFO_FCT_IMAGE_LOAD: info->f = (genf *) DEVICE_IMAGE_LOAD_NAME(cdrom); break; - case DEVINFO_FCT_IMAGE_UNLOAD: info->f = (genf *) DEVICE_IMAGE_UNLOAD_NAME(cdrom); break; - case DEVINFO_FCT_IMAGE_SOFTLIST_LOAD: info->f = (genf *) DEVICE_IMAGE_SOFTLIST_LOAD_NAME(cdrom); break; - case DEVINFO_FCT_IMAGE_DISPLAY_INFO: - if ( device && downcast<const legacy_image_device_base *>(device)->inline_config() && get_config_dev(device)->device_displayinfo) { - info->f = (genf *) get_config_dev(device)->device_displayinfo; - } else { - info->f = NULL; - } - break; - case DEVINFO_PTR_IMAGE_CREATE_OPTGUIDE: info->p = (void *) cd_option_guide; break; - case DEVINFO_PTR_IMAGE_CREATE_OPTSPEC+0: info->p = (void *) cd_option_spec; break; - - /* --- the following bits of info are returned as NULL-terminated strings --- */ - case DEVINFO_STR_NAME: strcpy(info->s, "Cdrom"); break; - case DEVINFO_STR_FAMILY: strcpy(info->s, "Cdrom"); break; - case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break; - case DEVINFO_STR_IMAGE_FILE_EXTENSIONS: strcpy(info->s, "chd"); break; - case DEVINFO_STR_IMAGE_CREATE_OPTNAME+0: strcpy(info->s, "chdcd"); break; - case DEVINFO_STR_IMAGE_CREATE_OPTDESC+0: strcpy(info->s, "CHD CD-ROM drive"); break; - case DEVINFO_STR_IMAGE_CREATE_OPTEXTS+0: strcpy(info->s, "chd"); break; - - case DEVINFO_STR_IMAGE_INTERFACE: - if ( device && downcast<const legacy_image_device_base *>(device)->inline_config() && get_config_dev(device)->interface ) - { - strcpy(info->s, get_config_dev(device)->interface ); - } - break; - - } -} - -DEFINE_LEGACY_IMAGE_DEVICE(CDROM, cdrom); diff --git a/src/emu/imagedev/chd_cd.h b/src/emu/imagedev/chd_cd.h index ee752ff645b..9bd5991dfc1 100644 --- a/src/emu/imagedev/chd_cd.h +++ b/src/emu/imagedev/chd_cd.h @@ -14,34 +14,63 @@ /*************************************************************************** TYPE DEFINITIONS ***************************************************************************/ +// ======================> cdrom_interface -typedef struct cdrom_config_t cdrom_config; -struct cdrom_config_t +struct cdrom_interface { - const char * interface; - device_image_display_info_func device_displayinfo; + const char * m_interface; + device_image_display_info_func m_device_displayinfo; }; -/*************************************************************************** - FUNCTION PROTOTYPES -***************************************************************************/ -DECLARE_LEGACY_IMAGE_DEVICE(CDROM, cdrom); +// ======================> printer_image_device +class cdrom_image_device : public device_t, + public cdrom_interface, + public device_image_interface +{ +public: + // construction/destruction + cdrom_image_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + virtual ~cdrom_image_device(); + + // image-level overrides + virtual bool call_load(); + virtual void call_unload(); + virtual void call_display_info() { if (m_device_displayinfo) m_device_displayinfo(*this); } + virtual bool call_softlist_load(char *swlist, char *swname, rom_entry *start_entry) { return load_software(swlist, swname, start_entry); } + + virtual iodevice_t image_type() const { return IO_CDROM; } + + virtual bool is_readable() const { return 1; } + virtual bool is_writeable() const { return 0; } + virtual bool is_creatable() const { return 0; } + virtual bool must_be_loaded() const { return 0; } + virtual bool is_reset_on_load() const { return 0; } + virtual const char *image_interface() const { return m_interface; } + virtual const char *file_extensions() const { return "chd"; } + virtual const option_guide *create_option_guide() const; + + // specific implementation + cdrom_file *get_cdrom_file() { return m_cdrom_handle; } +protected: + // device-level overrides + virtual void device_config_complete(); + virtual void device_start(); + + cdrom_file *m_cdrom_handle; + image_device_format m_format; +}; -cdrom_file *cd_get_cdrom_file(device_t *device); +// device type definition +extern const device_type CDROM; /*************************************************************************** DEVICE CONFIGURATION MACROS ***************************************************************************/ -#define MCFG_CDROM_ADD(_tag) \ +#define MCFG_CDROM_ADD(_tag, _config) \ MCFG_DEVICE_ADD(_tag, CDROM, 0) \ - -#define MCFG_CDROM_INTERFACE(_interface) \ - MCFG_DEVICE_CONFIG_DATAPTR(cdrom_config, interface, _interface ) - -#define MCFG_CDROM_DISPLAY_INFO(_displayinfo) \ - MCFG_DEVICE_CONFIG_DATAPTR(cdrom_config, device_displayinfo, DEVICE_IMAGE_DISPLAY_INFO_NAME(_displayinfo)) + MCFG_DEVICE_CONFIG(_config) \ #endif /* CHD_CD_H */ diff --git a/src/emu/machine/matsucd.c b/src/emu/machine/matsucd.c index 7692773b58e..fe7f64a48ff 100644 --- a/src/emu/machine/matsucd.c +++ b/src/emu/machine/matsucd.c @@ -62,11 +62,11 @@ static matsucd cd; static TIMER_CALLBACK(matsu_subcode_proc); -void matsucd_init( device_t *cdrom_device, const char *cdda_tag ) +void matsucd_init( cdrom_image_device *cdrom_device, const char *cdda_tag ) { memset(&cd, 0, sizeof( matsucd ) ); - cd.cdrom = cd_get_cdrom_file( cdrom_device ); + cd.cdrom = cdrom_device->get_cdrom_file(); cd.cdda = cdrom_device->machine().device(cdda_tag); cd.frame_timer = cdrom_device->machine().scheduler().timer_alloc(FUNC(matsu_subcode_proc)); diff --git a/src/emu/machine/matsucd.h b/src/emu/machine/matsucd.h index 088a4d93109..b1e40690f83 100644 --- a/src/emu/machine/matsucd.h +++ b/src/emu/machine/matsucd.h @@ -5,7 +5,7 @@ ***************************************************************************/ /* initialization */ -void matsucd_init( device_t *cdrom_device, const char *cdda_tag ); +void matsucd_init( cdrom_image_device *cdrom_device, const char *cdda_tag ); /* signaling */ diff --git a/src/emu/machine/scsicd.c b/src/emu/machine/scsicd.c index 3034981819f..9b1d53c37f9 100644 --- a/src/emu/machine/scsicd.c +++ b/src/emu/machine/scsicd.c @@ -692,7 +692,8 @@ static void scsicd_alloc_instance( SCSIInstance *scsiInstance, const char *diskr if (machine.device( diskregion )) { our_this->is_file = TRUE; - our_this->cdrom = cd_get_cdrom_file( machine.device( diskregion ) ); + cdrom_image_device *cdrom = machine.device<cdrom_image_device>(diskregion); + our_this->cdrom = cdrom->get_cdrom_file(); } else { our_this->is_file = FALSE; our_this->cdrom = cdrom_open(get_disk_handle( machine, diskregion )); diff --git a/src/mame/drivers/3do.c b/src/mame/drivers/3do.c index d827074b407..3a8917a6806 100644 --- a/src/mame/drivers/3do.c +++ b/src/mame/drivers/3do.c @@ -149,6 +149,11 @@ static MACHINE_RESET( 3do ) _3do_clio_init(machine, downcast<screen_device *>(machine.device("screen"))); } +struct cdrom_interface _3do_cdrom = +{ + NULL, + NULL +}; static MACHINE_CONFIG_START( 3do, _3do_state ) @@ -167,7 +172,7 @@ static MACHINE_CONFIG_START( 3do, _3do_state ) // MCFG_SCREEN_UPDATE( generic_bitmapped ) MCFG_SCREEN_UPDATE( _3do ) - MCFG_CDROM_ADD( "cdrom" ) + MCFG_CDROM_ADD( "cdrom", _3do_cdrom) MACHINE_CONFIG_END @@ -188,7 +193,7 @@ static MACHINE_CONFIG_START( 3do_pal, _3do_state ) MCFG_SCREEN_REFRESH_RATE( 50 ) MCFG_SCREEN_UPDATE( generic_bitmapped ) - MCFG_CDROM_ADD( "cdrom" ) + MCFG_CDROM_ADD( "cdrom", _3do_cdrom) MACHINE_CONFIG_END diff --git a/src/mame/drivers/cd32.c b/src/mame/drivers/cd32.c index 5cc29c1b30f..6363111bfe4 100644 --- a/src/mame/drivers/cd32.c +++ b/src/mame/drivers/cd32.c @@ -800,11 +800,14 @@ static MACHINE_CONFIG_START( cd32base, cd32_state ) MCFG_MOS8520_ADD("cia_1", AMIGA_68EC020_PAL_CLOCK / 10, cia_1_intf) MACHINE_CONFIG_END - +struct cdrom_interface cd32_cdrom = +{ + "cd32_cdrom", + NULL +}; static MACHINE_CONFIG_DERIVED( cd32, cd32base ) - MCFG_CDROM_ADD( "cdrom" ) - MCFG_CDROM_INTERFACE("cd32_cdrom") + MCFG_CDROM_ADD( "cdrom", cd32_cdrom ) MCFG_SOFTWARE_LIST_ADD("cd_list","cd32") MACHINE_CONFIG_END diff --git a/src/mame/drivers/cdi.c b/src/mame/drivers/cdi.c index 524076592cd..fee3920df06 100644 --- a/src/mame/drivers/cdi.c +++ b/src/mame/drivers/cdi.c @@ -341,13 +341,17 @@ static MACHINE_CONFIG_START( cdi, cdi_state ) MCFG_MK48T08_ADD( "mk48t08" ) MACHINE_CONFIG_END +struct cdrom_interface cdi_cdrom = +{ + "cdi_cdrom", + DEVICE_IMAGE_DISPLAY_INFO_NAME(cdi_cdinfo) +}; + // Standard CD-i system, with CD-ROM image device (MESS) and Software List (MESS) static MACHINE_CONFIG_DERIVED( cdimono1, cdi ) MCFG_MACHINE_RESET( cdi ) - MCFG_CDROM_ADD( "cdrom" ) - MCFG_CDROM_INTERFACE("cdi_cdrom") - MCFG_CDROM_DISPLAY_INFO(cdi_cdinfo) + MCFG_CDROM_ADD( "cdrom", cdi_cdrom ) MCFG_SOFTWARE_LIST_ADD("cd_list","cdi") MACHINE_CONFIG_END diff --git a/src/mame/drivers/saturn.c b/src/mame/drivers/saturn.c index 5d99af98a4e..9f8e4f02e1e 100644 --- a/src/mame/drivers/saturn.c +++ b/src/mame/drivers/saturn.c @@ -2751,6 +2751,11 @@ static MACHINE_RESET( stv ) state->m_scu.start_factor[1] = -1; state->m_scu.start_factor[2] = -1; } +struct cdrom_interface saturn_cdrom = +{ + NULL, + NULL +}; static MACHINE_CONFIG_START( saturn, saturn_state ) @@ -2796,7 +2801,7 @@ static MACHINE_CONFIG_START( saturn, saturn_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) - MCFG_CDROM_ADD( "cdrom" ) + MCFG_CDROM_ADD( "cdrom", saturn_cdrom) MCFG_CARTSLOT_ADD("cart") MACHINE_CONFIG_END diff --git a/src/mame/machine/cd32.c b/src/mame/machine/cd32.c index 9294b6938dc..b6a9b4d9cc4 100644 --- a/src/mame/machine/cd32.c +++ b/src/mame/machine/cd32.c @@ -103,12 +103,11 @@ static DEVICE_RESET( akiko ) running_machine &machine = device->machine(); akiko_state *state = get_safe_token(device); - device_t *cddevice; - cddevice = machine.device("cdrom"); + cdrom_image_device *cddevice = machine.device<cdrom_image_device>("cdrom"); if (cddevice!=NULL) { // MESS case - state->m_cdrom = cd_get_cdrom_file(cddevice); + state->m_cdrom = cddevice->get_cdrom_file(); state->m_cdrom_is_device = 1; } else diff --git a/src/mame/machine/cdicdic.c b/src/mame/machine/cdicdic.c index fc2ffa15323..034e2a3982d 100644 --- a/src/mame/machine/cdicdic.c +++ b/src/mame/machine/cdicdic.c @@ -1199,11 +1199,11 @@ void cdicdic_device::device_reset() { init(); - device_t *cdrom_dev = machine().device("cdrom"); + cdrom_image_device *cdrom_dev = machine().device<cdrom_image_device>("cdrom"); if( cdrom_dev ) { // MESS case (has CDROM device) - m_cd = cd_get_cdrom_file(cdrom_dev); + m_cd = cdrom_dev->get_cdrom_file(); cdda_set_cdrom(machine().device("cdda"), m_cd); } else diff --git a/src/mame/machine/gdrom.c b/src/mame/machine/gdrom.c index 31935daa5d1..6b5bc68510f 100644 --- a/src/mame/machine/gdrom.c +++ b/src/mame/machine/gdrom.c @@ -792,7 +792,8 @@ static void scsicd_alloc_instance( SCSIInstance *scsiInstance, const char *diskr if (machine.device( diskregion )) { our_this->is_file = TRUE; - our_this->cdrom = cd_get_cdrom_file( machine.device( diskregion ) ); + cdrom_image_device *cdrom = machine.device<cdrom_image_device>(diskregion); + our_this->cdrom = cdrom->get_cdrom_file(); } else { our_this->is_file = FALSE; our_this->cdrom = cdrom_open(get_disk_handle( machine, diskregion )); diff --git a/src/mame/machine/megadriv.c b/src/mame/machine/megadriv.c index 1f93870d143..77ddff737f0 100644 --- a/src/mame/machine/megadriv.c +++ b/src/mame/machine/megadriv.c @@ -6103,12 +6103,10 @@ static MACHINE_RESET( segacd ) lc89510_Reset(); { - device_t *device; - - device = machine.device("cdrom"); + cdrom_image_device *device = machine.device<cdrom_image_device>("cdrom"); if ( device ) { - segacd.cd = cd_get_cdrom_file(device); + segacd.cd = device->get_cdrom_file(); if ( segacd.cd ) { segacd.toc = cdrom_get_toc( segacd.cd ); @@ -9783,22 +9781,25 @@ MACHINE_CONFIG_DERIVED( genesis_scd, megadriv ) MCFG_QUANTUM_PERFECT_CPU("segacd_68k") // perfect sync to the fastest cpu MACHINE_CONFIG_END +struct cdrom_interface scd_cdrom = +{ + "scd_cdrom", + NULL +}; + /* Different Softlists for different regions (for now at least) */ MACHINE_CONFIG_DERIVED( genesis_scd_scd, genesis_scd ) - MCFG_CDROM_ADD( "cdrom" ) - MCFG_CDROM_INTERFACE("scd_cdrom") + MCFG_CDROM_ADD( "cdrom",scd_cdrom ) MCFG_SOFTWARE_LIST_ADD("cd_list","segacd") MACHINE_CONFIG_END MACHINE_CONFIG_DERIVED( genesis_scd_mcd, genesis_scd ) - MCFG_CDROM_ADD( "cdrom" ) - MCFG_CDROM_INTERFACE("scd_cdrom") + MCFG_CDROM_ADD( "cdrom",scd_cdrom ) MCFG_SOFTWARE_LIST_ADD("cd_list","megacd") MACHINE_CONFIG_END MACHINE_CONFIG_DERIVED( genesis_scd_mcdj, genesis_scd ) - MCFG_CDROM_ADD( "cdrom" ) - MCFG_CDROM_INTERFACE("scd_cdrom") + MCFG_CDROM_ADD( "cdrom",scd_cdrom ) MCFG_SOFTWARE_LIST_ADD("cd_list","megacdj") MACHINE_CONFIG_END @@ -9819,8 +9820,7 @@ MACHINE_CONFIG_DERIVED( genesis_32x_scd, genesis_32x ) MCFG_SOUND_ROUTE( 0, "lspeaker", 0.25 ) MCFG_SOUND_ROUTE( 1, "rspeaker", 0.25 ) - MCFG_CDROM_ADD( "cdrom" ) - MCFG_CDROM_INTERFACE("scd_cdrom") + MCFG_CDROM_ADD( "cdrom", scd_cdrom) MCFG_SOFTWARE_LIST_ADD("cd_list","segacd") MCFG_QUANTUM_PERFECT_CPU("32x_master_sh2") diff --git a/src/mame/machine/stvcd.c b/src/mame/machine/stvcd.c index 9ccea724d54..908e0be15a0 100644 --- a/src/mame/machine/stvcd.c +++ b/src/mame/machine/stvcd.c @@ -267,7 +267,7 @@ void stvcd_reset(running_machine &machine) } #ifdef MESS - cdrom = cd_get_cdrom_file(machine.device( "cdrom" )); + cdrom = machine.device<cdrom_image_device>("cdrom")->get_cdrom_file(); #else cdrom = cdrom_open(get_disk_handle(machine, "cdrom")); #endif |
