diff options
Diffstat (limited to 'src/devices/bus/sega8/rom.h')
-rw-r--r-- | src/devices/bus/sega8/rom.h | 131 |
1 files changed, 69 insertions, 62 deletions
diff --git a/src/devices/bus/sega8/rom.h b/src/devices/bus/sega8/rom.h index a4b7df2599b..9e97e40f45f 100644 --- a/src/devices/bus/sega8/rom.h +++ b/src/devices/bus/sega8/rom.h @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Fabio Priuli -#ifndef __SEGA8_ROM_H -#define __SEGA8_ROM_H +#ifndef MAME_BUS_SEGA8_ROM_H +#define MAME_BUS_SEGA8_ROM_H + +#pragma once #include "sega8_slot.h" #include "machine/eepromser.h" @@ -13,13 +15,8 @@ class sega8_rom_device : public device_t, { public: // construction/destruction - sega8_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); sega8_rom_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; - virtual void late_bank_setup() override; // reading and writing @@ -28,6 +25,12 @@ public: virtual DECLARE_WRITE8_MEMBER(write_mapper) override; protected: + sega8_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; + virtual void device_reset() override; + uint8_t m_rom_bank_base[3]; uint8_t m_ram_base; int m_ram_enabled; @@ -47,7 +50,7 @@ public: // reading and writing virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_mapper) override {} + virtual DECLARE_WRITE8_MEMBER(write_mapper) override { } }; @@ -62,7 +65,7 @@ public: // reading and writing virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_mapper) override {} + virtual DECLARE_WRITE8_MEMBER(write_mapper) override { } }; @@ -77,7 +80,7 @@ public: // reading and writing virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_mapper) override {} + virtual DECLARE_WRITE8_MEMBER(write_mapper) override { } // has internal RAM which overwrites the system one! virtual DECLARE_READ8_MEMBER(read_ram) override; @@ -96,7 +99,7 @@ public: // reading and writing virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_mapper) override {} + virtual DECLARE_WRITE8_MEMBER(write_mapper) override { } // has internal RAM which overwrites the system one! virtual DECLARE_READ8_MEMBER(read_ram) override; @@ -113,9 +116,7 @@ public: sega8_terebi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual void device_start() override; virtual ioport_constructor device_input_ports() const override; - virtual void device_reset() override; required_ioport m_tvdraw_x; required_ioport m_tvdraw_y; @@ -124,9 +125,12 @@ public: // reading and writing virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_mapper) override {} + virtual DECLARE_WRITE8_MEMBER(write_mapper) override { } protected: + virtual void device_start() override; + virtual void device_reset() override; + uint8_t m_tvdraw_data; }; @@ -142,7 +146,7 @@ public: // reading and writing virtual DECLARE_READ8_MEMBER(read_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_mapper) override {} + virtual DECLARE_WRITE8_MEMBER(write_mapper) override { } // has internal RAM which overwrites the system one! virtual DECLARE_READ8_MEMBER(read_ram) override; @@ -160,8 +164,8 @@ public: // reading and writing virtual DECLARE_READ8_MEMBER(read_cart) override; - virtual DECLARE_WRITE8_MEMBER(write_cart) override {} - virtual DECLARE_WRITE8_MEMBER(write_mapper) override {} + virtual DECLARE_WRITE8_MEMBER(write_cart) override { } + virtual DECLARE_WRITE8_MEMBER(write_mapper) override { } // has internal RAM which overwrites the system one! virtual DECLARE_READ8_MEMBER(read_ram) override; @@ -181,9 +185,7 @@ public: sega8_eeprom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual void device_start() override; virtual machine_config_constructor device_mconfig_additions() const override; - virtual void device_reset() override; virtual void late_bank_setup() override; @@ -193,6 +195,9 @@ public: virtual DECLARE_WRITE8_MEMBER(write_mapper) override; protected: + virtual void device_start() override; + virtual void device_reset() override; + uint8_t m_rom_bank_base[3]; required_device<eeprom_serial_93cxx_device> m_eeprom; @@ -210,10 +215,6 @@ public: // construction/destruction sega8_codemasters_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; - virtual void late_bank_setup() override; // reading and writing @@ -222,6 +223,10 @@ public: // no mapper write for this! protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + uint8_t m_rom_bank_base[3]; uint8_t m_ram_base; int m_ram_enabled; @@ -236,14 +241,15 @@ public: // construction/destruction sega8_4pak_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_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; +protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + private: uint8_t m_reg[3]; }; @@ -256,13 +262,8 @@ class sega8_zemina_device : public device_t, { public: // construction/destruction - sega8_zemina_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); sega8_zemina_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; - virtual void late_bank_setup() override; // reading and writing @@ -271,6 +272,12 @@ public: // no mapper write for this! protected: + sega8_zemina_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; + virtual void device_reset() override; + uint8_t m_rom_bank_base[6]; uint8_t m_ram_base; int m_ram_enabled; @@ -298,9 +305,6 @@ public: // construction/destruction sega8_janggun_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override { save_item(NAME(m_rom_bank_base)); } - virtual void late_bank_setup() override; // reading and writing @@ -309,6 +313,9 @@ public: virtual DECLARE_WRITE8_MEMBER(write_mapper) override; protected: + // device-level overrides + virtual void device_start() override { save_item(NAME(m_rom_bank_base)); } + uint8_t m_rom_bank_base[6]; }; @@ -321,9 +328,6 @@ public: // construction/destruction sega8_hicom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_start() override { save_item(NAME(m_rom_bank_base)); } - virtual void late_bank_setup() override; // reading and writing @@ -332,6 +336,9 @@ public: virtual DECLARE_WRITE8_MEMBER(write_mapper) override; protected: + // device-level overrides + virtual void device_start() override { save_item(NAME(m_rom_bank_base)); } + uint8_t m_rom_bank_base; }; @@ -373,10 +380,6 @@ public: // construction/destruction sega8_seojin_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_cart) override; virtual DECLARE_WRITE8_MEMBER(write_cart) override; @@ -385,29 +388,33 @@ public: virtual DECLARE_WRITE8_MEMBER(write_ram) override; protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + uint8_t m_gamesel; uint8_t m_readxor; }; // device type definition -extern const device_type SEGA8_ROM_STD; -extern const device_type SEGA8_ROM_OTHELLO; -extern const device_type SEGA8_ROM_CASTLE; -extern const device_type SEGA8_ROM_BASIC_L3; -extern const device_type SEGA8_ROM_MUSIC_EDITOR; -extern const device_type SEGA8_ROM_DAHJEE_TYPEA; -extern const device_type SEGA8_ROM_DAHJEE_TYPEB; -extern const device_type SEGA8_ROM_EEPROM; -extern const device_type SEGA8_ROM_TEREBI; -extern const device_type SEGA8_ROM_CODEMASTERS; -extern const device_type SEGA8_ROM_4PAK; -extern const device_type SEGA8_ROM_ZEMINA; -extern const device_type SEGA8_ROM_NEMESIS; -extern const device_type SEGA8_ROM_JANGGUN; -extern const device_type SEGA8_ROM_HICOM; -extern const device_type SEGA8_ROM_KOREAN; -extern const device_type SEGA8_ROM_KOREAN_NB; -extern const device_type SEGA8_ROM_SEOJIN; - -#endif +DECLARE_DEVICE_TYPE(SEGA8_ROM_STD, sega8_rom_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_OTHELLO, sega8_othello_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_CASTLE, sega8_castle_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_BASIC_L3, sega8_basic_l3_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_MUSIC_EDITOR, sega8_music_editor_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_DAHJEE_TYPEA, sega8_dahjee_typea_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_DAHJEE_TYPEB, sega8_dahjee_typeb_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_EEPROM, sega8_eeprom_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_TEREBI, sega8_terebi_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_CODEMASTERS, sega8_codemasters_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_4PAK, sega8_4pak_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_ZEMINA, sega8_zemina_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_NEMESIS, sega8_nemesis_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_JANGGUN, sega8_janggun_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_HICOM, sega8_hicom_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_KOREAN, sega8_korean_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_KOREAN_NB, sega8_korean_nb_device) +DECLARE_DEVICE_TYPE(SEGA8_ROM_SEOJIN, sega8_seojin_device) + +#endif // MAME_BUS_SEGA8_ROM_H |