summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/tvgames/elan_eu3a05vid.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/tvgames/elan_eu3a05vid.h')
-rw-r--r--src/mame/tvgames/elan_eu3a05vid.h38
1 files changed, 27 insertions, 11 deletions
diff --git a/src/mame/tvgames/elan_eu3a05vid.h b/src/mame/tvgames/elan_eu3a05vid.h
index 41008832093..6f64c57a7ec 100644
--- a/src/mame/tvgames/elan_eu3a05vid.h
+++ b/src/mame/tvgames/elan_eu3a05vid.h
@@ -21,23 +21,26 @@ public:
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- void set_is_sudoku();
- void set_is_pvmilfin();
- void set_use_spritepages() { m_use_spritepages = true; }
- void set_force_basic_scroll() { m_force_basic_scroll = true; }
-
protected:
+ elan_eu3a05vid_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 ATTR_COLD;
virtual void device_reset() override ATTR_COLD;
virtual space_config_vector memory_space_config() const override;
+ virtual int get_bytes_per_tile_entry();
+
+ int m_vrambase;
+ int m_spritebase;
+ bool m_use_spritepages;
+ bool m_force_basic_scroll;
+ uint8_t m_vidctrl = 0;
private:
required_device<m6502_device> m_cpu;
required_device<address_map_bank_device> m_bank;
const address_space_config m_space_config;
- uint8_t m_vidctrl = 0;
uint8_t m_tile_gfxbase_lo_data = 0;
uint8_t m_tile_gfxbase_hi_data = 0;
@@ -87,14 +90,27 @@ private:
uint8_t read_unmapped(offs_t offset);
void write_unmapped(offs_t offset, uint8_t data);
+};
- int m_bytes_per_tile_entry;
- int m_vrambase;
- int m_spritebase;
- bool m_use_spritepages;
- bool m_force_basic_scroll;
+class elan_eu3a13vid_device : public elan_eu3a05vid_device
+{
+public:
+ elan_eu3a13vid_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+protected:
+ elan_eu3a13vid_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
+
+ virtual int get_bytes_per_tile_entry() override;
+};
+
+class elan_ep3a19avid_device : public elan_eu3a13vid_device
+{
+public:
+ elan_ep3a19avid_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
};
DECLARE_DEVICE_TYPE(ELAN_EU3A05_VID, elan_eu3a05vid_device)
+DECLARE_DEVICE_TYPE(ELAN_EU3A13_VID, elan_eu3a13vid_device)
+DECLARE_DEVICE_TYPE(ELAN_EP3A19A_VID, elan_ep3a19avid_device)
#endif // MAME_TVGAMES_ELAN_EU3A05VID_H