device_image_interface: Interface overhaul

- Remove the iodevice_t classification, which was not used that much and was incomplete anyway. Image device implementations must now provide their own instance names and brief instance names. Several new parent classes have been created to make it easier to use the old standard names.
- Change must_be_loaded from a pure virtual function to be overridden in implementations to a getter for a base class property that can be set on the host side (as was formerly made possible for NES, MD and "generic" cartridge slots) but defaults to false for all types. This restrictive property has been unset for a small number of cases.
- Create parent classes for paper tape and magnetic tape devices. At present these are dummy classes that do little to nothing, but may help unify implementations in the future.
- Change several member functions to take std::string_view parameters rather than const std::string & or const char *.
- Make update_names take into account brief names, as discussed in PR #2555.
- Remove the obsolete uses_file_extension function (which used thread-unsafe strtok).

* portfolio_ccm_slot: Change image type from "cartridge" to "memcard"
* i7220, datapack: Add custom instance names that weren't there before
* pc11: Add note
This commit is contained in:
AJR 2022-01-06 20:59:02 -05:00
parent 20adc731c2
commit 23bbd37da6
214 changed files with 876 additions and 1274 deletions

View File

@ -37,6 +37,8 @@ files {
files {
MAME_DIR .. "src/devices/imagedev/bitbngr.cpp",
MAME_DIR .. "src/devices/imagedev/bitbngr.h",
MAME_DIR .. "src/devices/imagedev/cartrom.cpp",
MAME_DIR .. "src/devices/imagedev/cartrom.h",
MAME_DIR .. "src/devices/imagedev/cassette.cpp",
MAME_DIR .. "src/devices/imagedev/cassette.h",
MAME_DIR .. "src/devices/imagedev/chd_cd.cpp",
@ -49,6 +51,10 @@ files {
MAME_DIR .. "src/devices/imagedev/floppy.h",
MAME_DIR .. "src/devices/imagedev/harddriv.cpp",
MAME_DIR .. "src/devices/imagedev/harddriv.h",
MAME_DIR .. "src/devices/imagedev/magtape.cpp",
MAME_DIR .. "src/devices/imagedev/magtape.h",
MAME_DIR .. "src/devices/imagedev/memcard.cpp",
MAME_DIR .. "src/devices/imagedev/memcard.h",
MAME_DIR .. "src/devices/imagedev/mfmhd.cpp",
MAME_DIR .. "src/devices/imagedev/mfmhd.h",
MAME_DIR .. "src/devices/imagedev/microdrv.cpp",
@ -57,6 +63,8 @@ files {
MAME_DIR .. "src/devices/imagedev/midiin.h",
MAME_DIR .. "src/devices/imagedev/midiout.cpp",
MAME_DIR .. "src/devices/imagedev/midiout.h",
MAME_DIR .. "src/devices/imagedev/papertape.cpp",
MAME_DIR .. "src/devices/imagedev/papertape.h",
MAME_DIR .. "src/devices/imagedev/picture.cpp",
MAME_DIR .. "src/devices/imagedev/picture.h",
MAME_DIR .. "src/devices/imagedev/printer.cpp",

View File

@ -113,7 +113,7 @@ void device_a78_cart_interface::nvram_alloc(uint32_t size)
//-------------------------------------------------
a78_cart_slot_device::a78_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, A78_CART_SLOT, tag, owner, clock)
, device_image_interface(mconfig, *this)
, device_cartrom_image_interface(mconfig, *this)
, device_slot_interface(mconfig, *this)
, m_cart(nullptr)
, m_type(0)

View File

@ -5,7 +5,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
/***************************************************************************
@ -85,7 +85,7 @@ protected:
// ======================> a78_cart_slot_device
class a78_cart_slot_device : public device_t,
public device_image_interface,
public device_cartrom_image_interface,
public device_slot_interface
{
public:
@ -106,11 +106,6 @@ public:
virtual image_init_result call_load() override;
virtual void call_unload() override;
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "a7800_cart"; }
virtual const char *file_extensions() const noexcept override { return "a78"; }
@ -136,9 +131,6 @@ private:
// device-level overrides
virtual void device_start() override;
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
device_a78_cart_interface* m_cart;
int m_type;

View File

@ -104,7 +104,7 @@ void device_a800_cart_interface::nvram_alloc(uint32_t size)
//-------------------------------------------------
a800_cart_slot_device::a800_cart_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, type, tag, owner, clock),
device_image_interface(mconfig, *this),
device_cartrom_image_interface(mconfig, *this),
device_single_card_slot_interface<device_a800_cart_interface>(mconfig, *this),
m_cart(nullptr), m_type(0)
{

View File

@ -5,7 +5,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
/***************************************************************************
@ -86,7 +86,7 @@ protected:
// ======================> a800_cart_slot_device
class a800_cart_slot_device : public device_t,
public device_image_interface,
public device_cartrom_image_interface,
public device_single_card_slot_interface<device_a800_cart_interface>
{
public:
@ -107,11 +107,6 @@ public:
virtual image_init_result call_load() override;
virtual void call_unload() override;
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "a8bit_cart"; }
virtual const char *file_extensions() const noexcept override { return "bin,rom,car"; }
@ -135,9 +130,6 @@ protected:
// device-level overrides
virtual void device_start() override;
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
private:
device_a800_cart_interface* m_cart;
int m_type;

View File

@ -54,7 +54,7 @@ device_adam_expansion_slot_card_interface::device_adam_expansion_slot_card_inter
adam_expansion_slot_device::adam_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, ADAM_EXPANSION_SLOT, tag, owner, clock),
device_single_card_slot_interface<device_adam_expansion_slot_card_interface>(mconfig, *this),
device_image_interface(mconfig, *this),
device_cartrom_image_interface(mconfig, *this),
m_write_irq(*this), m_card(nullptr)
{
}

View File

@ -11,7 +11,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
//**************************************************************************
@ -24,7 +24,7 @@ class device_adam_expansion_slot_card_interface;
class adam_expansion_slot_device : public device_t,
public device_single_card_slot_interface<device_adam_expansion_slot_card_interface>,
public device_image_interface
public device_cartrom_image_interface
{
public:
// construction/destruction
@ -55,14 +55,7 @@ protected:
// image-level overrides
virtual image_init_result call_load() override;
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "adam_rom"; }
virtual const char *file_extensions() const noexcept override { return "bin,rom"; }

View File

@ -73,7 +73,7 @@ void device_apf_cart_interface::ram_alloc(uint32_t size)
//-------------------------------------------------
apf_cart_slot_device::apf_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, APF_CART_SLOT, tag, owner, clock),
device_image_interface(mconfig, *this),
device_cartrom_image_interface(mconfig, *this),
device_single_card_slot_interface<device_apf_cart_interface>(mconfig, *this),
m_type(APF_STD),
m_cart(nullptr)

View File

@ -3,7 +3,7 @@
#ifndef MAME_BUS_APF_SLOT_H
#define MAME_BUS_APF_SLOT_H
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
/***************************************************************************
TYPE DEFINITIONS
@ -54,7 +54,7 @@ protected:
// ======================> apf_cart_slot_device
class apf_cart_slot_device : public device_t,
public device_image_interface,
public device_cartrom_image_interface,
public device_single_card_slot_interface<device_apf_cart_interface>
{
public:
@ -76,11 +76,6 @@ public:
virtual image_init_result call_load() override;
virtual void call_unload() override {}
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "apfm1000_cart"; }
virtual const char *file_extensions() const noexcept override { return "bin"; }
@ -102,8 +97,6 @@ protected:
// device-level overrides
virtual void device_start() override;
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int m_type;
device_apf_cart_interface* m_cart;
};

View File

@ -57,7 +57,7 @@ void device_aquarius_cartridge_interface::rom_alloc(uint32_t size, const char *t
aquarius_cartridge_slot_device::aquarius_cartridge_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, AQUARIUS_CARTRIDGE_SLOT, tag, owner, clock)
, device_image_interface(mconfig, *this)
, device_cartrom_image_interface(mconfig, *this)
, device_single_card_slot_interface<device_aquarius_cartridge_interface>(mconfig, *this)
, m_cart(nullptr)
, m_irq_handler(*this)

View File

@ -11,7 +11,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
#define AQUARIUS_CART_ROM_REGION_TAG ":cart:rom"
@ -25,7 +25,7 @@
class device_aquarius_cartridge_interface;
class aquarius_cartridge_slot_device : public device_t,
public device_image_interface,
public device_cartrom_image_interface,
public device_single_card_slot_interface<device_aquarius_cartridge_interface>
{
public:
@ -49,11 +49,6 @@ public:
// image-level overrides
virtual image_init_result call_load() override;
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return true; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "aquarius_cart"; }
virtual const char *file_extensions() const noexcept override { return "rom,bin"; }
@ -76,9 +71,6 @@ protected:
// device-level overrides
virtual void device_start() override;
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
device_aquarius_cartridge_interface *m_cart;
private:

View File

@ -63,7 +63,7 @@ void device_arcadia_cart_interface::rom_alloc(uint32_t size, const char *tag)
//-------------------------------------------------
arcadia_cart_slot_device::arcadia_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, EA2001_CART_SLOT, tag, owner, clock),
device_image_interface(mconfig, *this),
device_cartrom_image_interface(mconfig, *this),
device_single_card_slot_interface<device_arcadia_cart_interface>(mconfig, *this),
m_type(ARCADIA_STD), m_cart(nullptr)
{

View File

@ -3,7 +3,7 @@
#ifndef MAME_BUS_ARCADIA_SLOT_H
#define MAME_BUS_ARCADIA_SLOT_H
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
#define EA2001SLOT_ROM_REGION_TAG ":cart:rom"
@ -45,7 +45,7 @@ protected:
// ======================> arcadia_cart_slot_device
class arcadia_cart_slot_device : public device_t,
public device_image_interface,
public device_cartrom_image_interface,
public device_single_card_slot_interface<device_arcadia_cart_interface>
{
public:
@ -66,11 +66,6 @@ public:
virtual image_init_result call_load() override;
virtual void call_unload() override {}
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return true; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "arcadia_cart"; }
virtual const char *file_extensions() const noexcept override { return "bin"; }
@ -88,9 +83,6 @@ protected:
// device-level overrides
virtual void device_start() override;
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int m_type;
device_arcadia_cart_interface* m_cart;
};

View File

@ -63,7 +63,7 @@ void device_astrocade_cart_interface::rom_alloc(uint32_t size, const char *tag)
//-------------------------------------------------
astrocade_cart_slot_device::astrocade_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, ASTROCADE_CART_SLOT, tag, owner, clock),
device_image_interface(mconfig, *this),
device_cartrom_image_interface(mconfig, *this),
device_single_card_slot_interface<device_astrocade_cart_interface>(mconfig, *this),
m_type(ASTROCADE_STD), m_cart(nullptr)
{

View File

@ -5,7 +5,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
/***************************************************************************
@ -51,7 +51,7 @@ protected:
// ======================> astrocade_cart_slot_device
class astrocade_cart_slot_device : public device_t,
public device_image_interface,
public device_cartrom_image_interface,
public device_single_card_slot_interface<device_astrocade_cart_interface>
{
public:
@ -71,13 +71,7 @@ public:
// image-level overrides
virtual image_init_result call_load() override;
virtual void call_unload() override {}
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "astrocde_cart"; }
virtual const char *file_extensions() const noexcept override { return "bin"; }

View File

@ -84,7 +84,7 @@ void device_bbc_rom_interface::nvram_alloc(uint32_t size)
//-------------------------------------------------
bbc_romslot_device::bbc_romslot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, type, tag, owner, clock)
, device_image_interface(mconfig, *this)
, device_rom_image_interface(mconfig, *this)
, device_single_card_slot_interface<device_bbc_rom_interface>(mconfig, *this)
, m_cart(nullptr)
{

View File

@ -11,7 +11,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
#define BBC_ROM_REGION_TAG ":cart:rom"
@ -25,7 +25,7 @@
class device_bbc_rom_interface;
class bbc_romslot_device : public device_t,
public device_image_interface,
public device_rom_image_interface,
public device_single_card_slot_interface<device_bbc_rom_interface>
{
public:
@ -33,11 +33,6 @@ public:
virtual image_init_result call_load() override;
virtual void call_unload() override;
virtual iodevice_t image_type() const noexcept override { return IO_ROM; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return false; }
virtual const char *image_interface() const noexcept override { return "bbc_rom"; }
virtual const char *file_extensions() const noexcept override { return "rom,bin"; }
@ -60,9 +55,6 @@ protected:
// construction/destruction
bbc_romslot_device(const machine_config &mconfig, device_type type, char const *tag, device_t *owner, uint32_t clock);
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
// device-level overrides
virtual void device_start() override;

View File

@ -59,7 +59,7 @@ device_c64_expansion_card_interface::~device_c64_expansion_card_interface()
c64_expansion_slot_device::c64_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, C64_EXPANSION_SLOT, tag, owner, clock),
device_single_card_slot_interface<device_c64_expansion_card_interface>(mconfig, *this),
device_image_interface(mconfig, *this),
device_cartrom_image_interface(mconfig, *this),
m_read_dma_cd(*this),
m_write_dma_cd(*this),
m_write_irq(*this),

View File

@ -36,7 +36,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
#include "formats/cbm_crt.h"
@ -51,7 +51,7 @@ class device_c64_expansion_card_interface;
class c64_expansion_slot_device : public device_t,
public device_single_card_slot_interface<device_c64_expansion_card_interface>,
public device_image_interface
public device_cartrom_image_interface
{
public:
// construction/destruction
@ -101,14 +101,7 @@ protected:
// image-level overrides
virtual image_init_result call_load() override;
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "c64_cart,vic10_cart"; }
virtual const char *file_extensions() const noexcept override { return "80,a0,e0,crt"; }

View File

@ -63,7 +63,7 @@ device_cbm2_expansion_card_interface::~device_cbm2_expansion_card_interface()
cbm2_expansion_slot_device::cbm2_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, CBM2_EXPANSION_SLOT, tag, owner, clock),
device_single_card_slot_interface<device_cbm2_expansion_card_interface>(mconfig, *this),
device_image_interface(mconfig, *this),
device_cartrom_image_interface(mconfig, *this),
m_card(nullptr)
{
}

View File

@ -29,7 +29,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
@ -43,7 +43,7 @@ class device_cbm2_expansion_card_interface;
class cbm2_expansion_slot_device : public device_t,
public device_single_card_slot_interface<device_cbm2_expansion_card_interface>,
public device_image_interface
public device_cartrom_image_interface
{
public:
// construction/destruction
@ -71,14 +71,7 @@ protected:
// image-level overrides
virtual image_init_result call_load() override;
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "cbm2_cart"; }
virtual const char *file_extensions() const noexcept override { return "20,40,60"; }

View File

@ -73,7 +73,7 @@ void device_channelf_cart_interface::ram_alloc(uint32_t size)
//-------------------------------------------------
channelf_cart_slot_device::channelf_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, CHANF_CART_SLOT, tag, owner, clock),
device_image_interface(mconfig, *this),
device_cartrom_image_interface(mconfig, *this),
device_single_card_slot_interface<device_channelf_cart_interface>(mconfig, *this),
m_type(CF_CHESS), m_cart(nullptr)
{

View File

@ -3,7 +3,7 @@
#ifndef MAME_BUS_CHANF_SLOT_H
#define MAME_BUS_CHANF_SLOT_H
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
/***************************************************************************
@ -59,7 +59,7 @@ protected:
// ======================> channelf_cart_slot_device
class channelf_cart_slot_device : public device_t,
public device_image_interface,
public device_cartrom_image_interface,
public device_single_card_slot_interface<device_channelf_cart_interface>
{
public:
@ -81,11 +81,6 @@ public:
virtual image_init_result call_load() override;
virtual void call_unload() override { }
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "channelf_cart"; }
virtual const char *file_extensions() const noexcept override { return "bin,chf"; }
@ -107,9 +102,6 @@ protected:
// device-level overrides
virtual void device_start() override;
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int m_type;
device_channelf_cart_interface* m_cart;
};

View File

@ -133,7 +133,7 @@ ALLOW_SAVE_TYPE(cococart_slot_device::line_value);
cococart_slot_device::cococart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) :
device_t(mconfig, COCOCART_SLOT, tag, owner, clock),
device_single_card_slot_interface<device_cococart_interface>(mconfig, *this),
device_image_interface(mconfig, *this),
device_cartrom_image_interface(mconfig, *this),
m_cart_callback(*this),
m_nmi_callback(*this),
m_halt_callback(*this), m_cart(nullptr)

View File

@ -13,7 +13,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
/***************************************************************************
@ -31,7 +31,7 @@ class device_cococart_interface;
class cococart_slot_device final : public device_t,
public device_single_card_slot_interface<device_cococart_interface>,
public device_image_interface
public device_cartrom_image_interface
{
public:
// output lines on the CoCo cartridge slot
@ -73,14 +73,7 @@ public:
// image-level overrides
virtual image_init_result call_load() override;
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "coco_cart"; }
virtual const char *file_extensions() const noexcept override { return "ccc,rom"; }

View File

@ -56,7 +56,7 @@ void device_colecovision_cartridge_interface::rom_alloc(size_t size)
colecovision_cartridge_slot_device::colecovision_cartridge_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, COLECOVISION_CARTRIDGE_SLOT, tag, owner, clock),
device_single_card_slot_interface<device_colecovision_cartridge_interface>(mconfig, *this),
device_image_interface(mconfig, *this),
device_cartrom_image_interface(mconfig, *this),
m_card(nullptr)
{
}

View File

@ -30,7 +30,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
//**************************************************************************
@ -49,7 +49,7 @@ class device_colecovision_cartridge_interface;
class colecovision_cartridge_slot_device : public device_t,
public device_single_card_slot_interface<device_colecovision_cartridge_interface>,
public device_image_interface
public device_cartrom_image_interface
{
public:
// construction/destruction
@ -73,14 +73,7 @@ protected:
// image-level overrides
virtual image_init_result call_load() override;
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "coleco_cart"; }
virtual const char *file_extensions() const noexcept override { return "rom,col,bin"; }

View File

@ -76,7 +76,7 @@ DEFINE_DEVICE_TYPE(CPC_ROMSLOT, cpc_rom_image_device, "cpc_rom_image", "CPC ROM
cpc_rom_image_device::cpc_rom_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, CPC_ROMSLOT, tag, owner, clock)
, device_image_interface(mconfig, *this)
, device_rom_image_interface(mconfig, *this)
, m_base(nullptr)
{
}

View File

@ -12,12 +12,13 @@
#pragma once
#include "cpcexp.h"
#include "imagedev/cartrom.h"
/*** ROM image device ***/
// ======================> cpc_rom_image_device
class cpc_rom_image_device : public device_t, public device_image_interface
class cpc_rom_image_device : public device_t, public device_rom_image_interface
{
public:
// construction/destruction
@ -28,12 +29,6 @@ public:
virtual image_init_result call_load() override;
virtual void call_unload() override;
virtual iodevice_t image_type() const noexcept override { return IO_ROM; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "cpc_rom"; }
virtual const char *file_extensions() const noexcept override { return "rom,bin"; }

View File

@ -63,7 +63,7 @@ void device_crvision_cart_interface::rom_alloc(uint32_t size, const char *tag)
//-------------------------------------------------
crvision_cart_slot_device::crvision_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, CRVISION_CART_SLOT, tag, owner, clock),
device_image_interface(mconfig, *this),
device_cartrom_image_interface(mconfig, *this),
device_single_card_slot_interface<device_crvision_cart_interface>(mconfig, *this),
m_type(CRV_4K), m_cart(nullptr)
{

View File

@ -5,7 +5,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
/***************************************************************************
@ -55,7 +55,7 @@ protected:
// ======================> crvision_cart_slot_device
class crvision_cart_slot_device : public device_t,
public device_image_interface,
public device_cartrom_image_interface,
public device_single_card_slot_interface<device_crvision_cart_interface>
{
public:
@ -76,11 +76,6 @@ public:
virtual image_init_result call_load() override;
virtual void call_unload() override { }
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "crvision_cart"; }
virtual const char *file_extensions() const noexcept override { return "bin,rom"; }
@ -98,9 +93,6 @@ protected:
// device-level overrides
virtual void device_start() override;
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int m_type;
device_crvision_cart_interface* m_cart;
};

View File

@ -56,7 +56,7 @@ void device_ekara_cart_interface::rom_alloc(uint32_t size, const char *tag)
//-------------------------------------------------
ekara_cart_slot_device::ekara_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, EKARA_CART_SLOT, tag, owner, clock),
device_image_interface(mconfig, *this),
device_cartrom_image_interface(mconfig, *this),
device_single_card_slot_interface<device_ekara_cart_interface>(mconfig, *this),
m_type(EKARA_PLAIN),
m_cart(nullptr)

View File

@ -5,7 +5,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
/***************************************************************************
TYPE DEFINITIONS
@ -61,7 +61,7 @@ protected:
// ======================> ekara_cart_slot_device
class ekara_cart_slot_device : public device_t,
public device_image_interface,
public device_cartrom_image_interface,
public device_single_card_slot_interface<device_ekara_cart_interface>
{
public:
@ -84,11 +84,6 @@ public:
virtual image_init_result call_load() override;
virtual void call_unload() override {}
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "ekara_cart"; }
virtual const char *file_extensions() const noexcept override { return "bin,u1"; }
@ -122,9 +117,6 @@ protected:
// device-level overrides
virtual void device_start() override;
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int m_type;
device_ekara_cart_interface* m_cart;
};

View File

@ -91,7 +91,7 @@ void device_electron_cart_interface::nvram_alloc(uint32_t size)
//-------------------------------------------------
electron_cartslot_device::electron_cartslot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, type, tag, owner, clock),
device_image_interface(mconfig, *this),
device_cartrom_image_interface(mconfig, *this),
device_single_card_slot_interface<device_electron_cart_interface>(mconfig, *this),
m_cart(nullptr),
m_irq_handler(*this),

View File

@ -96,7 +96,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
//**************************************************************************
@ -115,7 +115,7 @@
class device_electron_cart_interface;
class electron_cartslot_device : public device_t,
public device_image_interface,
public device_cartrom_image_interface,
public device_single_card_slot_interface<device_electron_cart_interface>
{
public:
@ -140,11 +140,7 @@ public:
virtual image_init_result call_load() override;
virtual void call_unload() override;
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return true; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "electron_cart"; }
virtual const char *file_extensions() const noexcept override { return "rom,bin"; }
@ -167,9 +163,6 @@ protected:
// device-level overrides
virtual void device_start() override;
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
device_electron_cart_interface *m_cart;
private:

View File

@ -56,7 +56,7 @@ void device_gamate_cart_interface::rom_alloc(uint32_t size, const char *tag)
//-------------------------------------------------
gamate_cart_slot_device::gamate_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, GAMATE_CART_SLOT, tag, owner, clock),
device_image_interface(mconfig, *this),
device_cartrom_image_interface(mconfig, *this),
device_single_card_slot_interface(mconfig, *this),
m_type(GAMATE_PLAIN),
m_cart(nullptr)

View File

@ -5,7 +5,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
/***************************************************************************
TYPE DEFINITIONS
@ -46,7 +46,7 @@ protected:
// ======================> gamate_cart_slot_device
class gamate_cart_slot_device : public device_t,
public device_image_interface,
public device_cartrom_image_interface,
public device_single_card_slot_interface<device_gamate_cart_interface>
{
public:
@ -68,11 +68,6 @@ public:
virtual image_init_result call_load() override;
virtual void call_unload() override { }
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "gamate_cart"; }
virtual const char *file_extensions() const noexcept override { return "bin"; }
@ -91,9 +86,6 @@ protected:
// device-level overrides
virtual void device_start() override;
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int m_type;
device_gamate_cart_interface* m_cart;
};

View File

@ -138,7 +138,7 @@ void device_gb_cart_interface::ram_map_setup(uint8_t banks)
//-------------------------------------------------
gb_cart_slot_device_base::gb_cart_slot_device_base(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, type, tag, owner, clock),
device_image_interface(mconfig, *this),
device_cartrom_image_interface(mconfig, *this),
device_single_card_slot_interface<device_gb_cart_interface>(mconfig, *this),
m_type(GB_MBC_UNKNOWN),
m_cart(nullptr)

View File

@ -3,7 +3,7 @@
#ifndef MAME_BUS_GAMEBOY_GB_SLOT_H
#define MAME_BUS_GAMEBOY_GB_SLOT_H
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
/***************************************************************************
@ -108,7 +108,7 @@ protected:
// ======================> gb_cart_slot_device_base
class gb_cart_slot_device_base : public device_t,
public device_image_interface,
public device_cartrom_image_interface,
public device_single_card_slot_interface<device_gb_cart_interface>
{
public:
@ -119,11 +119,6 @@ public:
virtual image_init_result call_load() override;
virtual void call_unload() override;
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "gameboy_cart"; }
virtual const char *file_extensions() const noexcept override { return "bin,gb,gbc"; }
@ -153,9 +148,6 @@ protected:
// device-level overrides
virtual void device_start() override;
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int m_type;
device_gb_cart_interface* m_cart;
};

View File

@ -534,7 +534,7 @@ void device_gba_cart_interface::nvram_alloc(uint32_t size)
//-------------------------------------------------
gba_cart_slot_device::gba_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, GBA_CART_SLOT, tag, owner, clock),
device_image_interface(mconfig, *this),
device_cartrom_image_interface(mconfig, *this),
device_slot_interface(mconfig, *this),
m_type(GBA_STD),
m_cart(nullptr)

View File

@ -5,7 +5,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
/***************************************************************************
@ -79,7 +79,7 @@ protected:
// ======================> gba_cart_slot_device
class gba_cart_slot_device : public device_t,
public device_image_interface,
public device_cartrom_image_interface,
public device_slot_interface
{
public:
@ -101,11 +101,6 @@ public:
virtual image_init_result call_load() override;
virtual void call_unload() override;
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "gba_cart"; }
virtual const char *file_extensions() const noexcept override { return "gba,bin"; }
@ -133,9 +128,6 @@ protected:
// device-level overrides
virtual void device_start() override;
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int m_type;
device_gba_cart_interface* m_cart;
};

View File

@ -121,12 +121,11 @@ void device_generic_cart_interface::ram_alloc(u32 size)
generic_slot_device::generic_slot_device(machine_config const &mconfig, device_type type, char const *tag, device_t *owner, u32 clock) :
device_t(mconfig, type, tag, owner, clock),
device_image_interface(mconfig, *this),
device_rom_image_interface(mconfig, *this),
device_single_card_slot_interface<device_generic_cart_interface>(mconfig, *this),
m_interface(nullptr),
m_default_card("rom"),
m_extensions("bin"),
m_must_be_loaded(false),
m_width(GENERIC_ROM8_WIDTH),
m_endianness(ENDIANNESS_LITTLE),
m_cart(nullptr),

View File

@ -5,7 +5,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
#include <cassert>
@ -102,7 +102,7 @@ enum
class generic_slot_device : public device_t,
public device_image_interface,
public device_rom_image_interface,
public device_single_card_slot_interface<device_generic_cart_interface>
{
public:
@ -114,18 +114,12 @@ public:
void set_interface(char const *interface) { m_interface = interface; }
void set_default_card(char const *def) { m_default_card = def; }
void set_extensions(char const *exts) { m_extensions = exts; }
void set_must_be_loaded(bool mandatory) { m_must_be_loaded = mandatory; } // default false
void set_width(int width) { m_width = width; }
void set_endian(endianness_t end) { m_endianness = end; }
// device_image_interface implementation
virtual image_init_result call_load() override;
virtual void call_unload() override;
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return m_must_be_loaded; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual char const *image_interface() const noexcept override { return m_interface; }
virtual char const *file_extensions() const noexcept override { return m_extensions; }
@ -175,13 +169,9 @@ protected:
// device-level overrides
virtual void device_start() override ATTR_COLD;
// device_image_interface implementation
virtual software_list_loader const &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
char const *m_interface;
char const *m_default_card;
char const *m_extensions;
bool m_must_be_loaded;
int m_width;
endianness_t m_endianness;
device_generic_cart_interface *m_cart;
@ -205,7 +195,8 @@ public:
generic_socket_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock = 0);
virtual iodevice_t image_type() const noexcept override { return IO_ROM; }
virtual const char *image_type_name() const noexcept override { return "romimage"; }
virtual const char *image_brief_type_name() const noexcept override { return "rom"; }
};
class generic_cartslot_device : public generic_slot_device
@ -224,7 +215,8 @@ public:
generic_cartslot_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock = 0);
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual const char *image_type_name() const noexcept override { return "cartridge"; }
virtual const char *image_brief_type_name() const noexcept override { return "cart"; }
};

View File

@ -46,14 +46,13 @@ protected:
virtual void ieee488_ren(int state) override;
// image-level overrides
virtual iodevice_t image_type() const noexcept override { return IO_FLOPPY; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return true; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return false; }
virtual const char *file_extensions() const noexcept override { return "img"; }
virtual const char *image_type_name() const noexcept override { return "floppydisk"; }
virtual const char *image_brief_type_name() const noexcept override { return "flop"; }
void accept_transfer();
void update_ndac(int atn);
@ -101,7 +100,8 @@ public:
grid2101_hdd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// image-level overrides
virtual iodevice_t image_type() const noexcept override { return IO_HARDDISK; }
virtual const char *image_type_name() const noexcept override { return "harddisk"; }
virtual const char *image_brief_type_name() const noexcept override { return "hard"; }
private:
static uint8_t identify_response[];

View File

@ -171,15 +171,13 @@ public:
virtual image_init_result call_load() override;
virtual void call_unload() override;
virtual iodevice_t image_type() const noexcept override { return IO_ROM; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return false; }
virtual char const *file_extensions() const noexcept override { return "rom,bin"; }
virtual char const *custom_instance_name() const noexcept override { return "promimage"; }
virtual char const *custom_brief_instance_name() const noexcept override { return "prom"; }
virtual char const *image_type_name() const noexcept override { return "promimage"; }
virtual char const *image_brief_type_name() const noexcept override { return "prom"; }
protected:
virtual ioport_constructor device_input_ports() const override;

View File

@ -100,15 +100,13 @@ public:
virtual image_init_result call_load() override;
virtual void call_unload() override;
virtual iodevice_t image_type() const noexcept override { return IO_ROM; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return false; }
virtual char const *file_extensions() const noexcept override { return "rom,bin"; }
virtual char const *custom_instance_name() const noexcept override { return "promimage"; }
virtual char const *custom_brief_instance_name() const noexcept override { return "prom"; }
virtual char const *image_type_name() const noexcept override { return "promimage"; }
virtual char const *image_brief_type_name() const noexcept override { return "prom"; }
protected:
virtual void device_start() override;

View File

@ -16,13 +16,14 @@ interface and paper tape reader as a single device.
#include "emu.h"
#include "tapereader.h"
#include "imagedev/papertape.h"
namespace {
class imm4_90_device
: public device_t
: public paper_tape_reader_device
, public bus::intellec4::device_univ_card_interface
, public device_image_interface
{
public:
imm4_90_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock);
@ -30,13 +31,7 @@ public:
virtual image_init_result call_load() override;
virtual void call_unload() override;
virtual iodevice_t image_type() const noexcept override { return IO_PUNCHTAPE; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return false; }
virtual char const *file_extensions() const noexcept override { return "bnpf,hex,lst,txt"; }
virtual char const *file_extensions() const noexcept override { return "bnpf,hex,lst,txt"; }
protected:
virtual void device_start() override;
@ -59,9 +54,8 @@ private:
imm4_90_device::imm4_90_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock)
: device_t(mconfig, INTELLEC4_TAPE_READER, tag, owner, clock)
: paper_tape_reader_device(mconfig, INTELLEC4_TAPE_READER, tag, owner, clock)
, bus::intellec4::device_univ_card_interface(mconfig, *this)
, device_image_interface(mconfig, *this)
, m_step_timer(nullptr)
, m_data(0xffU)
, m_ready(false)

View File

@ -146,7 +146,7 @@ void device_intv_cart_interface::ram_alloc(uint32_t size)
//-------------------------------------------------
intv_cart_slot_device::intv_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, INTV_CART_SLOT, tag, owner, clock),
device_image_interface(mconfig, *this),
device_cartrom_image_interface(mconfig, *this),
device_single_card_slot_interface<device_intv_cart_interface>(mconfig, *this),
m_type(INTV_STD),
m_cart(nullptr)

View File

@ -5,7 +5,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
/***************************************************************************
@ -93,7 +93,7 @@ protected:
// ======================> intv_cart_slot_device
class intv_cart_slot_device : public device_t,
public device_image_interface,
public device_cartrom_image_interface,
public device_single_card_slot_interface<device_intv_cart_interface>
{
public:
@ -115,11 +115,6 @@ public:
virtual image_init_result call_load() override;
virtual void call_unload() override {}
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "intv_cart"; }
virtual const char *file_extensions() const noexcept override { return "bin,int,rom,itv"; }
@ -172,9 +167,6 @@ protected:
// device-level overrides
virtual void device_start() override;
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int m_type;
device_intv_cart_interface* m_cart;
};

View File

@ -56,7 +56,7 @@ device_iq151cart_interface::~device_iq151cart_interface()
iq151cart_slot_device::iq151cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, IQ151CART_SLOT, tag, owner, clock)
, device_single_card_slot_interface<device_iq151cart_interface>(mconfig, *this)
, device_image_interface(mconfig, *this)
, device_cartrom_image_interface(mconfig, *this)
, m_out_irq0_cb(*this)
, m_out_irq1_cb(*this)
, m_out_irq2_cb(*this)

View File

@ -47,7 +47,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
#include "screen.h"
/***************************************************************************
@ -83,7 +83,7 @@ protected:
class iq151cart_slot_device : public device_t,
public device_single_card_slot_interface<device_iq151cart_interface>,
public device_image_interface
public device_cartrom_image_interface
{
public:
// construction/destruction
@ -111,11 +111,6 @@ public:
// image-level overrides
virtual image_init_result call_load() override;
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "iq151_cart"; }
virtual const char *file_extensions() const noexcept override { return "bin,rom"; }
@ -134,9 +129,6 @@ protected:
// device-level overrides
virtual void device_start() override;
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
devcb_write_line m_out_irq0_cb;
devcb_write_line m_out_irq1_cb;
devcb_write_line m_out_irq2_cb;

View File

@ -15,6 +15,7 @@
#include "emu.h"
#include "omti8621.h"
#include "image.h"
#include "imagedev/harddriv.h"
#include "formats/pc_dsk.h"
#include "formats/naslite_dsk.h"
#include "formats/apollo_dsk.h"
@ -47,25 +48,17 @@ static int verbose = VERBOSE;
// forward declaration of image class
DECLARE_DEVICE_TYPE(OMTI_DISK, omti_disk_image_device)
class omti_disk_image_device : public device_t,
public device_image_interface
class omti_disk_image_device : public harddisk_image_base_device
{
public:
// construction/destruction
omti_disk_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// image-level overrides
virtual iodevice_t image_type() const noexcept override { return IO_HARDDISK; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return true; }
virtual bool is_creatable() const noexcept override { return true; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return false; }
virtual bool support_command_line_image_creation() const noexcept override { return true; }
virtual const char *file_extensions() const noexcept override { return "awd"; }
virtual const char *custom_instance_name() const noexcept override { return "winchester"; }
virtual const char *custom_brief_instance_name() const noexcept override { return "disk"; }
virtual const char *image_type_name() const noexcept override { return "winchester"; }
virtual const char *image_brief_type_name() const noexcept override { return "disk"; }
virtual image_init_result call_create(int format_type, util::option_resolution *format_options) override;
@ -1383,8 +1376,7 @@ uint8_t omti8621_device::fd_disk_chg_r()
DEFINE_DEVICE_TYPE(OMTI_DISK, omti_disk_image_device, "omti_disk_image", "OMTI 8621 ESDI disk")
omti_disk_image_device::omti_disk_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, OMTI_DISK, tag, owner, clock)
, device_image_interface(mconfig, *this)
: harddisk_image_base_device(mconfig, OMTI_DISK, tag, owner, clock)
, m_type(0), m_cylinders(0), m_heads(0), m_sectors(0), m_sectorbytes(0), m_sector_count(0), m_image(nullptr)
{
}

View File

@ -1285,8 +1285,7 @@ void sc499_device::block_set_filemark()
DEFINE_DEVICE_TYPE(SC499_CTAPE, sc499_ctape_image_device, "sc499_ctape", "SC-499 Cartridge Tape")
sc499_ctape_image_device::sc499_ctape_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, SC499_CTAPE, tag, owner, clock)
, device_image_interface(mconfig, *this)
: microtape_image_device(mconfig, SC499_CTAPE, tag, owner, clock)
{
}

View File

@ -14,7 +14,7 @@
#pragma once
#include "bus/isa/isa.h"
#include "softlist_dev.h"
#include "imagedev/magtape.h"
//**************************************************************************
@ -23,7 +23,7 @@
// ======================> sc499_ctape_image_device
class sc499_ctape_image_device : public device_t, public device_image_interface
class sc499_ctape_image_device : public microtape_image_device
{
public:
// construction/destruction
@ -32,18 +32,12 @@ public:
// image-level overrides
virtual image_init_result call_load() override;
virtual void call_unload() override;
virtual iodevice_t image_type() const noexcept override { return IO_MAGTAPE; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return true; }
virtual bool is_creatable() const noexcept override { return true; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return false; }
virtual bool support_command_line_image_creation() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "sc499_cass"; }
virtual const char *file_extensions() const noexcept override { return "act,ct"; }
virtual const char *custom_instance_name() const noexcept override { return "ctape"; }
virtual const char *custom_brief_instance_name() const noexcept override { return "ct"; }
virtual const char *image_type_name() const noexcept override { return "ctape"; }
virtual const char *image_brief_type_name() const noexcept override { return "ct"; }
uint8_t *read_block(int block_num);
void write_block(int block_num, uint8_t *ptr);
@ -53,9 +47,6 @@ protected:
// device-level overrides
virtual void device_start() override { }
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return image_software_list_loader::instance(); }
std::vector<uint8_t> m_ctape_data;
};

View File

@ -56,7 +56,7 @@ void device_jakks_gamekey_interface::rom_alloc(uint32_t size, const char *tag)
//-------------------------------------------------
jakks_gamekey_slot_device::jakks_gamekey_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, JAKKS_GAMEKEY_SLOT, tag, owner, clock),
device_image_interface(mconfig, *this),
device_cartrom_image_interface(mconfig, *this),
device_single_card_slot_interface<device_jakks_gamekey_interface>(mconfig, *this),
m_type(JAKKS_GAMEKEY_PLAIN),
m_cart(nullptr)

View File

@ -5,7 +5,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
/***************************************************************************
TYPE DEFINITIONS
@ -49,7 +49,7 @@ protected:
// ======================> jakks_gamekey_slot_device
class jakks_gamekey_slot_device : public device_t,
public device_image_interface,
public device_cartrom_image_interface,
public device_single_card_slot_interface<device_jakks_gamekey_interface>
{
public:
@ -72,11 +72,6 @@ public:
virtual image_init_result call_load() override;
virtual void call_unload() override { }
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "jakks_gamekey"; }
virtual const char *file_extensions() const noexcept override { return "bin,u1"; }
@ -100,9 +95,6 @@ protected:
// device-level overrides
virtual void device_start() override;
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int m_type;
device_jakks_gamekey_interface* m_cart;
};

View File

@ -300,7 +300,7 @@ WRITE_LINE_MEMBER( kcexp_slot_device::meo_w )
//-------------------------------------------------
kccart_slot_device::kccart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
kcexp_slot_device(mconfig, KCCART_SLOT, tag, owner, clock),
device_image_interface(mconfig, *this)
device_cartrom_image_interface(mconfig, *this)
{
}

View File

@ -13,7 +13,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
/***************************************************************************
TYPE DEFINITIONS
@ -94,7 +94,7 @@ protected:
// ======================> kccart_slot_device
class kccart_slot_device : public kcexp_slot_device, public device_image_interface
class kccart_slot_device : public kcexp_slot_device, public device_cartrom_image_interface
{
public:
// construction/destruction
@ -113,21 +113,12 @@ public:
// image-level overrides
virtual image_init_result call_load() override;
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "kc_cart"; }
virtual const char *file_extensions() const noexcept override { return "bin"; }
// slot interface overrides
virtual std::string get_default_card_software(get_default_card_software_hook &hook) const override;
protected:
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
};
// device type definition

View File

@ -73,7 +73,7 @@ void device_m5_cart_interface::ram_alloc(uint32_t size)
//-------------------------------------------------
m5_cart_slot_device::m5_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, M5_CART_SLOT, tag, owner, clock),
device_image_interface(mconfig, *this),
device_cartrom_image_interface(mconfig, *this),
device_single_card_slot_interface(mconfig, *this),
m_type(M5_STD),
m_cart(nullptr)

View File

@ -5,7 +5,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
/***************************************************************************
@ -61,7 +61,7 @@ protected:
// ======================> m5_cart_slot_device
class m5_cart_slot_device : public device_t,
public device_image_interface,
public device_cartrom_image_interface,
public device_single_card_slot_interface<device_m5_cart_interface>
{
public:
@ -83,11 +83,6 @@ public:
virtual image_init_result call_load() override;
virtual void call_unload() override { }
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "m5_cart"; }
virtual const char *file_extensions() const noexcept override { return "bin,rom"; }
@ -108,9 +103,6 @@ protected:
// device-level overrides
virtual void device_start() override;
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int m_type;
device_m5_cart_interface* m_cart;
};

View File

@ -58,7 +58,7 @@ DEFINE_DEVICE_TYPE(MC10CART_SLOT, mc10cart_slot_device, "mc10cart_slot", "MC-10
mc10cart_slot_device::mc10cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) :
device_t(mconfig, MC10CART_SLOT, tag, owner, clock),
device_single_card_slot_interface<device_mc10cart_interface>(mconfig, *this),
device_image_interface(mconfig, *this),
device_cartrom_image_interface(mconfig, *this),
m_nmi_callback(*this),
m_cart(nullptr),
m_memspace(*this, finder_base::DUMMY_TAG, -1)

View File

@ -13,7 +13,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
/***************************************************************************
TYPE DEFINITIONS
@ -25,7 +25,7 @@ class device_mc10cart_interface;
class mc10cart_slot_device final : public device_t,
public device_single_card_slot_interface<device_mc10cart_interface>,
public device_image_interface
public device_cartrom_image_interface
{
public:
@ -54,14 +54,7 @@ public:
// image-level overrides
virtual image_init_result call_load() override;
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "mc10_cart"; }
virtual const char *file_extensions() const noexcept override { return "mcc,rom"; }

View File

@ -161,10 +161,9 @@ uint32_t device_md_cart_interface::get_padded_size(uint32_t size)
//-------------------------------------------------
base_md_cart_slot_device::base_md_cart_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, type, tag, owner, clock),
device_image_interface(mconfig, *this),
device_cartrom_image_interface(mconfig, *this),
device_single_card_slot_interface<device_md_cart_interface>(mconfig, *this),
m_type(SEGA_STD), m_cart(nullptr),
m_must_be_loaded(1)
m_type(SEGA_STD), m_cart(nullptr)
{
}

View File

@ -5,7 +5,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
/***************************************************************************
TYPE DEFINITIONS
@ -149,7 +149,7 @@ protected:
// ======================> base_md_cart_slot_device
class base_md_cart_slot_device : public device_t,
public device_image_interface,
public device_cartrom_image_interface,
public device_single_card_slot_interface<device_md_cart_interface>
{
public:
@ -160,11 +160,6 @@ public:
virtual image_init_result call_load() override;
virtual void call_unload() override;
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return m_must_be_loaded; }
virtual bool is_reset_on_load() const noexcept override { return true; }
// slot interface overrides
@ -178,7 +173,6 @@ public:
void setup_custom_mappers();
void setup_nvram();
void set_must_be_loaded(bool _must_be_loaded) { m_must_be_loaded = _must_be_loaded; }
void file_logging(uint8_t *ROM, uint32_t rom_len, uint32_t nvram_len);
void save_nvram() { if (m_cart && m_cart->get_nvram_size()) m_cart->save_nvram(); }
@ -199,17 +193,12 @@ public:
int m_type;
device_md_cart_interface* m_cart;
bool m_must_be_loaded;
protected:
base_md_cart_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
virtual void device_start() override;
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
};
// ======================> md_cart_slot_device

View File

@ -41,7 +41,7 @@ msx_slot_cartridge_device::msx_slot_cartridge_device(const machine_config &mconf
msx_slot_cartridge_device::msx_slot_cartridge_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, type, tag, owner, clock)
, device_image_interface(mconfig, *this)
, device_cartrom_image_interface(mconfig, *this)
, device_slot_interface(mconfig, *this)
, msx_internal_slot_interface(mconfig, *this)
, m_irq_handler(*this)

View File

@ -7,7 +7,7 @@
#include "slot.h"
#include "bus/msx_cart/cartridge.h"
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
DECLARE_DEVICE_TYPE(MSX_SLOT_CARTRIDGE, msx_slot_cartridge_device)
@ -15,7 +15,7 @@ DECLARE_DEVICE_TYPE(MSX_SLOT_YAMAHA_EXPANSION, msx_slot_yamaha_expansion_device)
class msx_slot_cartridge_device : public device_t
, public device_image_interface
, public device_cartrom_image_interface
, public device_slot_interface
, public msx_internal_slot_interface
{
@ -29,16 +29,9 @@ public:
// image-level overrides
virtual image_init_result call_load() override;
virtual void call_unload() override;
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "msx_cart"; }
virtual const char *file_extensions() const noexcept override { return "mx1,bin,rom"; }
virtual const char *custom_instance_name() const noexcept override { return "cartridge"; }
virtual const char *custom_brief_instance_name() const noexcept override { return "cart"; }
// slot interface overrides
virtual std::string get_default_card_software(get_default_card_software_hook &hook) const override;
@ -56,9 +49,6 @@ protected:
virtual void device_resolve_objects() override;
virtual void device_start() override;
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
devcb_write_line m_irq_handler;
msx_cart_interface *m_cartridge;
@ -73,8 +63,8 @@ public:
msx_slot_yamaha_expansion_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual const char *image_interface() const noexcept override { return "msx_yamaha_60pin"; }
virtual const char *custom_instance_name() const noexcept override { return "cartridge60pin"; }
virtual const char *custom_brief_instance_name() const noexcept override { return "cart60p"; }
virtual const char *image_type_name() const noexcept override { return "cartridge60pin"; }
virtual const char *image_brief_type_name() const noexcept override { return "cart60p"; }
protected:
virtual void device_start() override;

View File

@ -99,7 +99,7 @@ void device_neogeo_cart_interface::optimize_sprites(uint8_t* region_sprites, uin
//-------------------------------------------------
neogeo_cart_slot_device::neogeo_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock) :
device_t(mconfig, NEOGEO_CART_SLOT, tag, owner, clock),
device_image_interface(mconfig, *this),
device_cartrom_image_interface(mconfig, *this),
device_single_card_slot_interface<device_neogeo_cart_interface>(mconfig, *this),
m_cart(nullptr)
{

View File

@ -5,7 +5,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
/* PCB */
@ -186,7 +186,7 @@ protected:
// ======================> neogeo_cart_slot_device
class neogeo_cart_slot_device : public device_t,
public device_image_interface,
public device_cartrom_image_interface,
public device_single_card_slot_interface<device_neogeo_cart_interface>
{
public:
@ -207,11 +207,6 @@ public:
virtual image_init_result call_load() override;
virtual void call_unload() override;
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "neo_cart"; }
virtual const char *file_extensions() const noexcept override { return "bin"; }
@ -338,9 +333,6 @@ protected:
// device-level overrides
virtual void device_start() override;
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
private:
int m_type;
device_neogeo_cart_interface* m_cart;

View File

@ -68,7 +68,7 @@ DEFINE_DEVICE_TYPE(NES_ALADDIN_SLOT, nes_aladdin_slot_device, "nes_ade_slot", "N
nes_aladdin_slot_device::nes_aladdin_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, NES_ALADDIN_SLOT, tag, owner, clock)
, device_image_interface(mconfig, *this)
, device_cartrom_image_interface(mconfig, *this)
, device_single_card_slot_interface<aladdin_cart_interface>(mconfig, *this)
, m_cart(nullptr)
{

View File

@ -6,7 +6,7 @@
#pragma once
#include "nxrom.h"
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
//----------------------------------
@ -44,7 +44,7 @@ protected:
class nes_aladdin_device;
class nes_aladdin_slot_device : public device_t,
public device_image_interface,
public device_cartrom_image_interface,
public device_single_card_slot_interface<aladdin_cart_interface>
{
friend class nes_aladdin_device;
@ -66,11 +66,6 @@ public:
// image-level overrides
virtual image_init_result call_load() override;
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "ade_cart"; }
virtual const char *file_extensions() const noexcept override { return "nes,bin"; }
@ -85,9 +80,6 @@ protected:
// device-level overrides
virtual void device_start() override;
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
aladdin_cart_interface* m_cart;
};

View File

@ -68,7 +68,7 @@ DEFINE_DEVICE_TYPE(NES_DATACH_SLOT, nes_datach_slot_device, "nes_datach_slot", "
nes_datach_slot_device::nes_datach_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, NES_DATACH_SLOT, tag, owner, clock)
, device_image_interface(mconfig, *this)
, device_cartrom_image_interface(mconfig, *this)
, device_single_card_slot_interface<datach_cart_interface>(mconfig, *this)
, m_cart(nullptr)
{

View File

@ -6,7 +6,7 @@
#pragma once
#include "bandai.h"
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
#include "machine/i2cmem.h"
#include "machine/bcreader.h"
@ -46,7 +46,7 @@ protected:
class nes_datach_device;
class nes_datach_slot_device : public device_t,
public device_image_interface,
public device_cartrom_image_interface,
public device_single_card_slot_interface<datach_cart_interface>
{
friend class nes_datach_device;
@ -67,11 +67,6 @@ public:
// image-level overrides
virtual image_init_result call_load() override;
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "datach_cart"; }
virtual const char *file_extensions() const noexcept override { return "nes,bin"; }
@ -86,9 +81,6 @@ protected:
// device-level overrides
virtual void device_start() override;
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
datach_cart_interface* m_cart;
};

View File

@ -72,7 +72,7 @@ DEFINE_DEVICE_TYPE(NES_KSEXPANSION_SLOT, nes_kstudio_slot_device, "nes_ks_slot",
nes_kstudio_slot_device::nes_kstudio_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, NES_KSEXPANSION_SLOT, tag, owner, clock)
, device_image_interface(mconfig, *this)
, device_cartrom_image_interface(mconfig, *this)
, device_single_card_slot_interface<kstudio_cart_interface>(mconfig, *this)
, m_cart(nullptr)
{

View File

@ -6,7 +6,7 @@
#pragma once
#include "nxrom.h"
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
//-----------------------------------------
@ -43,7 +43,7 @@ protected:
class nes_karaokestudio_device;
class nes_kstudio_slot_device : public device_t,
public device_image_interface,
public device_cartrom_image_interface,
public device_single_card_slot_interface<kstudio_cart_interface>
{
friend class nes_karaokestudio_device;
@ -65,11 +65,6 @@ public:
// image-level overrides
virtual image_init_result call_load() override;
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "ks_cart"; }
virtual const char *file_extensions() const noexcept override { return "bin"; }
@ -84,9 +79,6 @@ protected:
// device-level overrides
virtual void device_start() override;
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
kstudio_cart_interface* m_cart;
};

View File

@ -760,12 +760,11 @@ void device_nes_cart_interface::nes_banks_restore()
//-------------------------------------------------
nes_cart_slot_device::nes_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, NES_CART_SLOT, tag, owner, clock)
, device_image_interface(mconfig, *this)
, device_cartrom_image_interface(mconfig, *this)
, device_single_card_slot_interface<device_nes_cart_interface>(mconfig, *this)
, m_crc_hack(0)
, m_cart(nullptr)
, m_pcb_id(NO_BOARD)
, m_must_be_loaded(1)
{
}

View File

@ -5,7 +5,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
/***************************************************************************
@ -383,7 +383,7 @@ public:
// ======================> nes_cart_slot_device
class nes_cart_slot_device : public device_t,
public device_image_interface,
public device_cartrom_image_interface,
public device_single_card_slot_interface<device_nes_cart_interface>
{
public:
@ -404,11 +404,6 @@ public:
virtual image_init_result call_load() override;
virtual void call_unload() override;
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return m_must_be_loaded; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "nes_cart"; }
virtual const char *file_extensions() const noexcept override { return "nes,unf,unif"; }
@ -440,20 +435,14 @@ public:
int get_crc_hack() { return m_crc_hack; }
void set_must_be_loaded(bool _must_be_loaded) { m_must_be_loaded = _must_be_loaded; }
//private:
device_nes_cart_interface* m_cart;
int m_pcb_id;
bool m_must_be_loaded;
protected:
// device-level overrides
virtual void device_start() override;
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
const char * get_default_card_ines(get_default_card_software_hook &hook, const uint8_t *ROM, uint32_t len) const;
static const char * get_default_card_unif(const uint8_t *ROM, uint32_t len);
static const char * nes_get_slot(int pcb_id);

View File

@ -52,7 +52,7 @@ DEFINE_DEVICE_TYPE(NES_NTB_SLOT, nes_ntb_slot_device, "nes_ntb_slot", "NES NTB C
nes_ntb_slot_device::nes_ntb_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, NES_NTB_SLOT, tag, owner, clock)
, device_image_interface(mconfig, *this)
, device_cartrom_image_interface(mconfig, *this)
, device_single_card_slot_interface<ntb_cart_interface>(mconfig, *this)
, m_cart(nullptr)
{

View File

@ -6,7 +6,7 @@
#pragma once
#include "sunsoft.h"
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
//-----------------------------------------------
@ -40,7 +40,7 @@ protected:
class nes_sunsoft_dcs_device;
class nes_ntb_slot_device : public device_t,
public device_image_interface,
public device_cartrom_image_interface,
public device_single_card_slot_interface<ntb_cart_interface>
{
friend class nes_sunsoft_dcs_device;
@ -62,11 +62,6 @@ public:
// image-level overrides
virtual image_init_result call_load() override;
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "ntb_cart"; }
virtual const char *file_extensions() const noexcept override { return "bin"; }
@ -80,9 +75,6 @@ protected:
// device-level overrides
virtual void device_start() override;
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
ntb_cart_interface* m_cart;
};

View File

@ -41,16 +41,13 @@ public:
messimg_disk_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// image-level overrides
virtual iodevice_t image_type() const noexcept override { return IO_QUICKLOAD; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return true; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return false; }
virtual const char *file_extensions() const noexcept override { return "img"; }
virtual const char *custom_instance_name() const noexcept override { return "disk"; }
virtual const char *custom_brief_instance_name() const noexcept override { return "disk"; }
virtual const char *image_type_name() const noexcept override { return "disk"; }
virtual const char *image_brief_type_name() const noexcept override { return "disk"; }
virtual image_init_result call_load() override;
virtual void call_unload() override;

View File

@ -52,7 +52,7 @@ device_o2_cart_interface::~device_o2_cart_interface()
o2_cart_slot_device::o2_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: device_t(mconfig, O2_CART_SLOT, tag, owner, clock)
, device_image_interface(mconfig, *this)
, device_cartrom_image_interface(mconfig, *this)
, device_single_card_slot_interface<device_o2_cart_interface>(mconfig, *this)
, m_type(O2_STD)
, m_cart(nullptr)

View File

@ -5,7 +5,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
/*
@ -94,7 +94,7 @@ protected:
// ======================> o2_cart_slot_device
class o2_cart_slot_device : public device_t,
public device_image_interface,
public device_cartrom_image_interface,
public device_single_card_slot_interface<device_o2_cart_interface>
{
public:
@ -116,11 +116,6 @@ public:
virtual image_init_result call_load() override;
virtual void call_unload() override { }
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return true; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "odyssey_cart"; }
virtual const char *file_extensions() const noexcept override { return "bin,rom"; }
@ -148,9 +143,6 @@ protected:
// device-level overrides
virtual void device_start() override;
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int m_type;
device_o2_cart_interface* m_cart;
int m_b;

View File

@ -136,7 +136,7 @@ void device_pce_cart_interface::rom_map_setup(uint32_t size)
//-------------------------------------------------
pce_cart_slot_device::pce_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, PCE_CART_SLOT, tag, owner, clock),
device_image_interface(mconfig, *this),
device_cartrom_image_interface(mconfig, *this),
device_single_card_slot_interface<device_pce_cart_interface>(mconfig, *this),
m_interface("pce_cart"),
m_type(PCE_STD), m_cart(nullptr)

View File

@ -5,7 +5,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
/***************************************************************************
@ -61,7 +61,7 @@ protected:
// ======================> pce_cart_slot_device
class pce_cart_slot_device : public device_t,
public device_image_interface,
public device_cartrom_image_interface,
public device_single_card_slot_interface<device_pce_cart_interface>
{
public:
@ -84,11 +84,6 @@ public:
virtual image_init_result call_load() override;
virtual void call_unload() override;
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return true; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return m_interface; }
virtual const char *file_extensions() const noexcept override { return "pce,bin"; }
@ -109,9 +104,6 @@ protected:
// device-level overrides
virtual void device_start() override;
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
const char *m_interface;
int m_type;
device_pce_cart_interface *m_cart;

View File

@ -67,7 +67,7 @@ device_plus4_expansion_card_interface::~device_plus4_expansion_card_interface()
plus4_expansion_slot_device::plus4_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, PLUS4_EXPANSION_SLOT, tag, owner, clock),
device_single_card_slot_interface<device_plus4_expansion_card_interface>(mconfig, *this),
device_image_interface(mconfig, *this),
device_cartrom_image_interface(mconfig, *this),
m_write_irq(*this),
m_read_dma_cd(*this),
m_write_dma_cd(*this),

View File

@ -39,7 +39,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
//**************************************************************************
@ -52,7 +52,7 @@ class device_plus4_expansion_card_interface;
class plus4_expansion_slot_device : public device_t,
public device_single_card_slot_interface<device_plus4_expansion_card_interface>,
public device_image_interface
public device_cartrom_image_interface
{
public:
// construction/destruction
@ -89,14 +89,7 @@ protected:
// image-level overrides
virtual image_init_result call_load() override;
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "plus4_cart"; }
virtual const char *file_extensions() const noexcept override { return "rom,bin"; }

View File

@ -9,6 +9,8 @@
#include "emu.h"
#include "ccm.h"
#include "softlist_dev.h"
//**************************************************************************
@ -46,7 +48,7 @@ device_portfolio_memory_card_slot_interface::device_portfolio_memory_card_slot_i
portfolio_memory_card_slot_device::portfolio_memory_card_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, PORTFOLIO_MEMORY_CARD_SLOT, tag, owner, clock),
device_single_card_slot_interface<device_portfolio_memory_card_slot_interface>(mconfig, *this),
device_image_interface(mconfig, *this),
device_memcard_image_interface(mconfig, *this),
m_card(nullptr)
{
}
@ -80,6 +82,16 @@ image_init_result portfolio_memory_card_slot_device::call_load()
}
//-------------------------------------------------
// get_software_list_loader -
//-------------------------------------------------
const software_list_loader &portfolio_memory_card_slot_device::get_software_list_loader() const
{
return rom_software_list_loader::instance();
}
//-------------------------------------------------
// get_default_card_software -
//-------------------------------------------------

View File

@ -48,7 +48,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/memcard.h"
@ -92,7 +92,7 @@ protected:
class portfolio_memory_card_slot_device : public device_t,
public device_single_card_slot_interface<device_portfolio_memory_card_slot_interface>,
public device_image_interface
public device_memcard_image_interface
{
public:
// construction/destruction
@ -120,14 +120,8 @@ protected:
// image-level overrides
virtual image_init_result call_load() override;
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual const software_list_loader &get_software_list_loader() const override;
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return true; }
virtual bool is_creatable() const noexcept override { return true; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "pofo_card"; }
virtual const char *file_extensions() const noexcept override { return "rom,bin"; }

View File

@ -43,7 +43,7 @@ enum transfer_states
psxcard_device::psxcard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, PSXCARD, tag, owner, clock),
device_image_interface(mconfig, *this),
device_memcard_image_interface(mconfig, *this),
pkt_ptr(0),
pkt_sz(0),
cmd(0),

View File

@ -5,22 +5,18 @@
#pragma once
#include "imagedev/memcard.h"
class psx_controller_port_device;
class psxcard_device : public device_t,
public device_image_interface
public device_memcard_image_interface
{
public:
psxcard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual iodevice_t image_type() const noexcept override { return IO_MEMCARD; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return true; }
virtual bool is_creatable() const noexcept override { return true; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return false; }
virtual const char *file_extensions() const noexcept override { return "mc"; }

View File

@ -4,6 +4,8 @@
DEC PC11 paper tape reader and punch controller (punch not implemented)
FIXME: PC11 is a Unibus device with no direct Q-bus counterpart
***************************************************************************/
#include "emu.h"
@ -53,8 +55,7 @@ const char* pc11_regnames[] = {
//-------------------------------------------------
pc11_device::pc11_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, DEC_PC11, tag, owner, clock)
, device_image_interface(mconfig, *this)
: paper_tape_reader_device(mconfig, DEC_PC11, tag, owner, clock)
, device_qbus_card_interface(mconfig, *this)
, m_rxvec(070)
, m_txvec(074)

View File

@ -13,8 +13,8 @@
#include "qbus.h"
#include "imagedev/papertape.h"
#include "machine/pdp11.h"
#include "softlist_dev.h"
#define PTRCSR_IMP (CSR_ERR + CSR_BUSY + CSR_DONE + CSR_IE)
@ -29,8 +29,7 @@
// ======================> pc11_device
class pc11_device : public device_t,
public device_image_interface,
class pc11_device : public paper_tape_reader_device,
public device_qbus_card_interface
{
public:
@ -38,19 +37,11 @@ public:
pc11_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// image-level overrides
virtual iodevice_t image_type() const noexcept override { return IO_PUNCHTAPE; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return false; }
virtual const char *image_interface() const noexcept override { return "pdp11_ptap"; }
virtual const char *file_extensions() const noexcept override { return "bin,bim,lda"; }
virtual image_init_result call_load() override;
virtual void call_unload() override;
virtual const software_list_loader &get_software_list_loader() const override { return image_software_list_loader::instance(); }
uint16_t read(offs_t offset);
void write(offs_t offset, uint16_t data);

View File

@ -62,7 +62,8 @@ void device_ql_rom_cartridge_card_interface::interface_post_start()
ql_rom_cartridge_slot_device::ql_rom_cartridge_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, QL_ROM_CARTRIDGE_SLOT, tag, owner, clock),
device_single_card_slot_interface<device_ql_rom_cartridge_card_interface>(mconfig, *this),
device_image_interface(mconfig, *this), m_card(nullptr)
device_cartrom_image_interface(mconfig, *this),
m_card(nullptr)
{
}

View File

@ -30,7 +30,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
//**************************************************************************
@ -70,7 +70,7 @@ protected:
class ql_rom_cartridge_slot_device : public device_t,
public device_single_card_slot_interface<device_ql_rom_cartridge_card_interface>,
public device_image_interface
public device_cartrom_image_interface
{
public:
// construction/destruction
@ -97,14 +97,7 @@ protected:
// image-level overrides
virtual image_init_result call_load() override;
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "ql_cart"; }
virtual const char *file_extensions() const noexcept override { return "rom,bin"; }

View File

@ -104,7 +104,7 @@ void device_sat_cart_interface::dram1_alloc(uint32_t size)
//-------------------------------------------------
sat_cart_slot_device::sat_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, SATURN_CART_SLOT, tag, owner, clock),
device_image_interface(mconfig, *this),
device_cartrom_image_interface(mconfig, *this),
device_single_card_slot_interface<device_sat_cart_interface>(mconfig, *this),
m_cart(nullptr)
{

View File

@ -3,7 +3,7 @@
#ifndef MAME_BUS_SATURN_SAT_SLOT_H
#define MAME_BUS_SATURN_SAT_SLOT_H
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
/***************************************************************************
@ -62,7 +62,7 @@ protected:
// ======================> sat_cart_slot_device
class sat_cart_slot_device : public device_t,
public device_image_interface,
public device_cartrom_image_interface,
public device_single_card_slot_interface<device_sat_cart_interface>
{
public:
@ -83,11 +83,6 @@ public:
virtual image_init_result call_load() override;
virtual void call_unload() override;
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "sat_cart"; }
virtual const char *file_extensions() const noexcept override { return "bin"; }
@ -110,9 +105,6 @@ protected:
// device-level overrides
virtual void device_start() override;
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
private:
device_sat_cart_interface* m_cart;
};

View File

@ -73,7 +73,7 @@ void device_scv_cart_interface::ram_alloc(uint32_t size)
//-------------------------------------------------
scv_cart_slot_device::scv_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, SCV_CART_SLOT, tag, owner, clock),
device_image_interface(mconfig, *this),
device_cartrom_image_interface(mconfig, *this),
device_single_card_slot_interface<device_scv_cart_interface>(mconfig, *this),
m_type(SCV_8K), m_cart(nullptr)
{

View File

@ -5,7 +5,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
/***************************************************************************
@ -61,7 +61,7 @@ protected:
// ======================> scv_cart_slot_device
class scv_cart_slot_device : public device_t,
public device_image_interface,
public device_cartrom_image_interface,
public device_single_card_slot_interface<device_scv_cart_interface>
{
public:
@ -83,11 +83,6 @@ public:
virtual image_init_result call_load() override;
virtual void call_unload() override { }
virtual iodevice_t image_type() const noexcept override { return IO_CARTSLOT; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "scv_cart"; }
virtual const char *file_extensions() const noexcept override { return "bin"; }
@ -109,9 +104,6 @@ protected:
// device-level overrides
virtual void device_start() override;
// device_image_interface implementation
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int m_type;
device_scv_cart_interface* m_cart;
};

View File

@ -16,7 +16,7 @@ DEFINE_DEVICE_TYPE(SDK85_ROMEXP, sdk85_romexp_device, "sdk85_romexp", "SDK-85 ex
sdk85_romexp_device::sdk85_romexp_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: device_t(mconfig, SDK85_ROMEXP, tag, owner, clock)
, device_image_interface(mconfig, *this)
, device_rom_image_interface(mconfig, *this)
, device_single_card_slot_interface<device_sdk85_romexp_card_interface>(mconfig, *this)
, m_dev(nullptr)
{

View File

@ -6,7 +6,7 @@
#pragma once
#include "softlist_dev.h"
#include "imagedev/cartrom.h"
// ======================> device_sdk85_romexp_card_interface
@ -28,7 +28,7 @@ protected:
// ======================> sdk85_romexp_device
class sdk85_romexp_device : public device_t,
public device_image_interface,
public device_rom_image_interface,
public device_single_card_slot_interface<device_sdk85_romexp_card_interface>
{
public:
@ -59,17 +59,10 @@ protected:
virtual image_init_result call_load() override;
virtual void call_unload() override { }
virtual iodevice_t image_type() const noexcept override { return IO_ROM; }
virtual bool is_readable() const noexcept override { return true; }
virtual bool is_writeable() const noexcept override { return false; }
virtual bool is_creatable() const noexcept override { return false; }
virtual bool must_be_loaded() const noexcept override { return false; }
virtual bool is_reset_on_load() const noexcept override { return true; }
virtual const char *image_interface() const noexcept override { return "sdk85_rom"; }
virtual const char *file_extensions() const noexcept override { return "bin"; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
// slot interface overrides
virtual std::string get_default_card_software(get_default_card_software_hook &hook) const override;

View File

@ -118,7 +118,7 @@ void device_sega8_cart_interface::ram_alloc(uint32_t size)
sega8_cart_slot_device::sega8_cart_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool is_card)
: device_t(mconfig, type, tag, owner, clock)
, device_image_interface(mconfig, *this)
, device_cartrom_image_interface(mconfig, *this)
, device_single_card_slot_interface<device_sega8_cart_interface>(mconfig, *this)
, m_type(SEGA8_BASE_ROM)
, m_is_card(is_card)

Some files were not shown because too many files have changed in this diff Show More