summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/vboy/slot.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/vboy/slot.h')
-rw-r--r--src/devices/bus/vboy/slot.h35
1 files changed, 15 insertions, 20 deletions
diff --git a/src/devices/bus/vboy/slot.h b/src/devices/bus/vboy/slot.h
index b804a8624d8..850841de194 100644
--- a/src/devices/bus/vboy/slot.h
+++ b/src/devices/bus/vboy/slot.h
@@ -62,7 +62,11 @@
#pragma once
-#include "softlist_dev.h"
+#include "imagedev/cartrom.h"
+
+#include <cassert>
+#include <string>
+#include <utility>
//**************************************************************************
@@ -79,7 +83,7 @@ class device_vboy_cart_interface;
class vboy_cart_slot_device :
public device_t,
- public device_image_interface,
+ public device_cartrom_image_interface,
public device_single_card_slot_interface<device_vboy_cart_interface>
{
public:
@@ -101,13 +105,8 @@ public:
template <typename T> void set_rom(T &&tag, int no, offs_t base) { m_rom_space.set_tag(std::forward<T>(tag), no); m_rom_base = base; }
// device_image_interface implementation
- virtual image_init_result call_load() override;
+ virtual std::pair<std::error_condition, std::string> 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 char const *image_interface() const noexcept override { return "vboy_cart"; }
virtual char const *file_extensions() const noexcept override { return "vb,bin"; }
@@ -118,12 +117,8 @@ public:
protected:
// device_t implementation
virtual void device_validity_check(validity_checker &valid) const override ATTR_COLD;
- virtual void device_resolve_objects() override ATTR_COLD;
virtual void device_start() override ATTR_COLD;
- // device_image_interface implementation
- virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
-
private:
devcb_write_line m_intcro;
optional_address_space m_exp_space;
@@ -142,19 +137,19 @@ private:
class device_vboy_cart_interface : public device_interface
{
public:
- virtual image_init_result load() ATTR_COLD = 0;
+ virtual std::error_condition load() ATTR_COLD = 0;
virtual void unload() ATTR_COLD;
protected:
device_vboy_cart_interface(machine_config const &mconfig, device_t &device);
- bool has_slot() const { return nullptr != m_slot; }
- address_space *exp_space() { return m_slot ? m_slot->m_exp_space.target() : nullptr; }
- address_space *chip_space() { return m_slot ? m_slot->m_chip_space.target() : nullptr; }
- address_space *rom_space() { return m_slot ? m_slot->m_rom_space.target() : nullptr; }
- offs_t exp_base() { return m_slot ? m_slot->m_exp_base : 0U; }
- offs_t chip_base() { return m_slot ? m_slot->m_chip_base : 0U; }
- offs_t rom_base() { return m_slot ? m_slot->m_rom_base : 0U; }
+ bool has_slot() const noexcept { return nullptr != m_slot; }
+ address_space *exp_space() noexcept { return m_slot ? m_slot->m_exp_space.target() : nullptr; }
+ address_space *chip_space() noexcept { return m_slot ? m_slot->m_chip_space.target() : nullptr; }
+ address_space *rom_space() noexcept { return m_slot ? m_slot->m_rom_space.target() : nullptr; }
+ offs_t exp_base() noexcept { return m_slot ? m_slot->m_exp_base : 0U; }
+ offs_t chip_base() noexcept { return m_slot ? m_slot->m_chip_base : 0U; }
+ offs_t rom_base() noexcept { return m_slot ? m_slot->m_rom_base : 0U; }
void battery_load(void *buffer, int length, int fill) { assert(m_slot); m_slot->battery_load(buffer, length, fill); }
void battery_load(void *buffer, int length, void *def_buffer) { assert(m_slot); m_slot->battery_load(buffer, length, def_buffer); }