summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/driver.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/driver.h')
-rw-r--r--src/emu/driver.h15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/emu/driver.h b/src/emu/driver.h
index d53ddf536a3..d389e42c74a 100644
--- a/src/emu/driver.h
+++ b/src/emu/driver.h
@@ -166,7 +166,8 @@ typedef void (*legacy_callback_func)(running_machine &machine);
// ======================> driver_device
// base class for machine driver-specific devices
-class driver_device : public device_t
+class driver_device : public device_t,
+ public device_memory_interface
{
public:
// construction/destruction
@@ -201,7 +202,11 @@ public:
(machine.driver_data<_DriverClass>()->*_Function)();
}
- void init_0() {};
+ // dummy driver_init callbacks
+ void init_0() { }
+
+ // memory helpers
+ address_space &generic_space() const { return *space(AS_PROGRAM); }
// generic interrupt generators
void generic_pulse_irq_line(device_execute_interface &exec, int irqline, int cycles);
@@ -399,6 +404,9 @@ protected:
virtual void device_start();
virtual void device_reset_after_children();
+ // device_memory_interface overrides
+ virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const;
+
// internal helpers
inline UINT16 paletteram16_le(offs_t offset) const { return m_generic_paletteram_8[offset & ~1] | (m_generic_paletteram_8[offset | 1] << 8); }
inline UINT16 paletteram16_be(offs_t offset) const { return m_generic_paletteram_8[offset | 1] | (m_generic_paletteram_8[offset & ~1] << 8); }
@@ -425,6 +433,9 @@ private:
driver_callback_delegate m_callbacks[CB_COUNT]; // start/reset callbacks
legacy_callback_func m_legacy_callbacks[CB_COUNT]; // legacy start/reset callbacks
+ // memory state
+ address_space_config m_generic_space_config;
+
// generic audio
UINT16 m_latch_clear_value;
UINT16 m_latched_value[4];