1 // license:BSD-3-Clause 2 // copyright-holders:Bryan McPhail 3 4 #include "machine/gen_latch.h" 5 #include "video/decbac06.h" 6 #include "video/decmxc06.h" 7 #include "cpu/h6280/h6280.h" 8 9 /************************************************************************* 10 11 Act Fancer 12 13 *************************************************************************/ 14 15 class actfancr_state : public driver_device 16 { 17 public: actfancr_state(const machine_config & mconfig,device_type type,const char * tag)18 actfancr_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_gfxdecode(*this, "gfxdecode"), 23 m_tilegen(*this, "tilegen%u", 1U), 24 m_spritegen(*this, "spritegen"), 25 m_soundlatch(*this, "soundlatch") { } 26 27 /* memory pointers */ 28 std::unique_ptr<uint16_t[]> m_spriteram16; // a 16-bit copy of spriteram for use with the MXC06 code 29 30 /* misc */ 31 int m_trio_control_select; 32 33 /* devices */ 34 required_device<h6280_device> m_maincpu; 35 required_device<cpu_device> m_audiocpu; 36 required_device<gfxdecode_device> m_gfxdecode; 37 required_device_array<deco_bac06_device, 2> m_tilegen; 38 required_device<deco_mxc06_device> m_spritegen; 39 required_device<generic_latch_8_device> m_soundlatch; 40 41 void triothep_control_select_w(uint8_t data); 42 uint8_t triothep_control_r(); 43 void buffer_spriteram_w(uint8_t data); 44 DECLARE_MACHINE_START(triothep); 45 DECLARE_MACHINE_RESET(triothep); 46 virtual void video_start() override; 47 uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); 48 void triothep(machine_config &config); 49 void actfancr(machine_config &config); 50 void actfan_map(address_map &map); 51 void dec0_s_map(address_map &map); 52 void triothep_map(address_map &map); 53 }; 54