summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/snes/rom.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/snes/rom.h')
-rw-r--r--src/devices/bus/snes/rom.h113
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