diff options
Diffstat (limited to 'src/devices/bus/snes/rom.h')
-rw-r--r-- | src/devices/bus/snes/rom.h | 113 |
1 files changed, 65 insertions, 48 deletions
diff --git a/src/devices/bus/snes/rom.h b/src/devices/bus/snes/rom.h index ddd73ab33da..9e95e4b8e00 100644 --- a/src/devices/bus/snes/rom.h +++ b/src/devices/bus/snes/rom.h @@ -1,27 +1,30 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __SNS_ROM_H -#define __SNS_ROM_H +#ifndef MAME_BUS_SNES_ROM_H +#define MAME_BUS_SNES_ROM_H + +#pragma once #include "snes_slot.h" // ======================> sns_rom_device -class sns_rom_device : public device_t, - public device_sns_cart_interface +class sns_rom_device : public device_t, public device_sns_cart_interface { public: // construction/destruction - sns_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); sns_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_READ8_MEMBER(read_h) override; + +protected: + sns_rom_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; }; // ======================> sns_rom_obc1_device @@ -32,14 +35,15 @@ public: // construction/destruction sns_rom_obc1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // additional reading and writing virtual DECLARE_READ8_MEMBER(chip_read) override; virtual DECLARE_WRITE8_MEMBER(chip_write) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + int m_address; int m_offset; int m_shift; @@ -56,13 +60,15 @@ public: // construction/destruction sns_rom_pokemon_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // reading and writing + virtual DECLARE_READ8_MEMBER(chip_read) override; // protection device + virtual DECLARE_WRITE8_MEMBER(chip_write) override; // protection device + +protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; - // reading and writing - virtual DECLARE_READ8_MEMBER(chip_read) override; // protection device - virtual DECLARE_WRITE8_MEMBER(chip_write) override; // protection device uint8_t m_latch; }; @@ -74,14 +80,15 @@ public: // construction/destruction sns_rom_tekken2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(chip_read) override; // protection device virtual DECLARE_WRITE8_MEMBER(chip_write) override; // protection device +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + void update_prot(uint32_t offset); // bit0-3 prot value, bit4 direction, bit5 function @@ -109,14 +116,16 @@ public: // construction/destruction sns_rom_mcpirate1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_WRITE8_MEMBER(chip_write) override; // bankswitch device + +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + uint8_t m_base_bank; }; @@ -128,14 +137,16 @@ public: // construction/destruction sns_rom_mcpirate2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_WRITE8_MEMBER(chip_write) override; // bankswitch device + +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + uint8_t m_base_bank; }; @@ -147,13 +158,15 @@ public: // construction/destruction sns_rom_20col_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override; - // reading and writing virtual DECLARE_READ8_MEMBER(read_l) override; virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_WRITE8_MEMBER(chip_write) override; // bankswitch device + +protected: + // device-level overrides + virtual void device_start() override; + uint8_t m_base_bank; }; @@ -165,13 +178,15 @@ public: // construction/destruction sns_rom_banana_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // reading and writing + virtual DECLARE_READ8_MEMBER(chip_read) override; // protection device + virtual DECLARE_WRITE8_MEMBER(chip_write) override; // protection device + +protected: // device-level overrides // virtual void device_start(); // virtual void device_reset(); - // reading and writing - virtual DECLARE_READ8_MEMBER(chip_read) override; // protection device - virtual DECLARE_WRITE8_MEMBER(chip_write) override; // protection device uint8_t m_latch[16]; }; @@ -183,27 +198,29 @@ public: // construction/destruction sns_rom_bugs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // reading and writing + virtual DECLARE_READ8_MEMBER(chip_read) override; // protection device + virtual DECLARE_WRITE8_MEMBER(chip_write) override; // protection device + +protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; - // reading and writing - virtual DECLARE_READ8_MEMBER(chip_read) override; // protection device - virtual DECLARE_WRITE8_MEMBER(chip_write) override; // protection device uint8_t m_latch[0x800]; }; // device type definition -extern const device_type SNS_LOROM; -extern const device_type SNS_LOROM_OBC1; -extern const device_type SNS_LOROM_POKEMON; -extern const device_type SNS_LOROM_TEKKEN2; -extern const device_type SNS_LOROM_SOULBLAD; -extern const device_type SNS_LOROM_MCPIR1; -extern const device_type SNS_LOROM_MCPIR2; -extern const device_type SNS_LOROM_20COL; -extern const device_type SNS_LOROM_BANANA; -extern const device_type SNS_LOROM_BUGSLIFE; - -#endif +DECLARE_DEVICE_TYPE(SNS_LOROM, sns_rom_device) +DECLARE_DEVICE_TYPE(SNS_LOROM_OBC1, sns_rom_obc1_device) +DECLARE_DEVICE_TYPE(SNS_LOROM_POKEMON, sns_rom_pokemon_device) +DECLARE_DEVICE_TYPE(SNS_LOROM_TEKKEN2, sns_rom_tekken2_device) +DECLARE_DEVICE_TYPE(SNS_LOROM_SOULBLAD, sns_rom_soulblad_device) +DECLARE_DEVICE_TYPE(SNS_LOROM_MCPIR1, sns_rom_mcpirate1_device) +DECLARE_DEVICE_TYPE(SNS_LOROM_MCPIR2, sns_rom_mcpirate2_device) +DECLARE_DEVICE_TYPE(SNS_LOROM_20COL, sns_rom_20col_device) +DECLARE_DEVICE_TYPE(SNS_LOROM_BANANA, sns_rom_banana_device) +DECLARE_DEVICE_TYPE(SNS_LOROM_BUGSLIFE, sns_rom_bugs_device) + +#endif // MAME_BUS_SNES_ROM_H |