1 // license:BSD-3-Clause 2 // copyright-holders:Bryan McPhail 3 #ifndef MAME_INCLUDES_DARKSEAL_H 4 #define MAME_INCLUDES_DARKSEAL_H 5 6 #pragma once 7 8 #include "machine/gen_latch.h" 9 #include "cpu/h6280/h6280.h" 10 #include "video/deco16ic.h" 11 #include "video/bufsprite.h" 12 #include "video/decospr.h" 13 #include "emupal.h" 14 15 class darkseal_state : public driver_device 16 { 17 public: darkseal_state(const machine_config & mconfig,device_type type,const char * tag)18 darkseal_state(const machine_config &mconfig, device_type type, const char *tag) 19 : driver_device(mconfig, type, tag) 20 , m_maincpu(*this, "maincpu") 21 , m_audiocpu(*this, "audiocpu") 22 , m_palette(*this, "colors") 23 , m_deco_tilegen(*this, "tilegen%u", 1U) 24 , m_sprgen(*this, "spritegen") 25 , m_spriteram(*this, "spriteram") 26 , m_soundlatch(*this, "soundlatch") 27 , m_pf1_rowscroll(*this, "pf1_rowscroll") 28 , m_pf3_rowscroll(*this, "pf3_rowscroll") 29 , m_paletteram(*this, "palette") 30 , m_paletteram_ext(*this, "palette_ext") 31 { } 32 33 void darkseal(machine_config &config); 34 35 void init_darkseal(); 36 37 private: 38 void irq_ack_w(uint16_t data); 39 void palette_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); 40 void palette_ext_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); 41 42 uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); 43 void update_palette(int offset); 44 void darkseal_map(address_map &map); 45 void sound_map(address_map &map); 46 47 required_device<cpu_device> m_maincpu; 48 required_device<h6280_device> m_audiocpu; 49 required_device<palette_device> m_palette; 50 required_device_array<deco16ic_device, 2> m_deco_tilegen; 51 required_device<decospr_device> m_sprgen; 52 required_device<buffered_spriteram16_device> m_spriteram; 53 required_device<generic_latch_8_device> m_soundlatch; 54 55 required_shared_ptr<uint16_t> m_pf1_rowscroll; 56 //uint16_t *m_pf2_rowscroll; 57 required_shared_ptr<uint16_t> m_pf3_rowscroll; 58 //uint16_t *m_pf4_rowscroll; 59 required_shared_ptr<uint16_t> m_paletteram; 60 required_shared_ptr<uint16_t> m_paletteram_ext; 61 }; 62 63 #endif // MAME_INCLUDES_DARKSEAL_H 64