1 // license:BSD-3-Clause 2 // copyright-holders:Uki 3 4 #include "emupal.h" 5 #include "tilemap.h" 6 7 class quizdna_state : public driver_device 8 { 9 public: quizdna_state(const machine_config & mconfig,device_type type,const char * tag)10 quizdna_state(const machine_config &mconfig, device_type type, const char *tag) 11 : driver_device(mconfig, type, tag), 12 m_maincpu(*this, "maincpu"), 13 m_gfxdecode(*this, "gfxdecode"), 14 m_palette(*this, "palette"), 15 m_spriteram(*this, "spriteram"), 16 m_generic_paletteram_8(*this, "paletteram") { } 17 18 void gakupara(machine_config &config); 19 void quizdna(machine_config &config); 20 void gekiretu(machine_config &config); 21 22 private: 23 required_device<cpu_device> m_maincpu; 24 required_device<gfxdecode_device> m_gfxdecode; 25 required_device<palette_device> m_palette; 26 27 required_shared_ptr<uint8_t> m_spriteram; 28 required_shared_ptr<uint8_t> m_generic_paletteram_8; 29 30 std::unique_ptr<uint8_t[]> m_bg_ram; 31 std::unique_ptr<uint8_t[]> m_fg_ram; 32 tilemap_t *m_bg_tilemap; 33 tilemap_t *m_fg_tilemap; 34 uint8_t m_bg_xscroll[2]; 35 int m_flipscreen; 36 int m_video_enable; 37 38 // common 39 void bg_ram_w(offs_t offset, uint8_t data); 40 void fg_ram_w(offs_t offset, uint8_t data); 41 void bg_yscroll_w(uint8_t data); 42 void bg_xscroll_w(offs_t offset, uint8_t data); 43 void screen_ctrl_w(uint8_t data); 44 void paletteram_xBGR_RRRR_GGGG_BBBB_w(offs_t offset, uint8_t data); 45 void rombank_w(uint8_t data); 46 47 // game specific 48 void gekiretu_rombank_w(uint8_t data); 49 50 TILE_GET_INFO_MEMBER(get_bg_tile_info); 51 TILE_GET_INFO_MEMBER(get_fg_tile_info); 52 53 virtual void machine_start() override; 54 virtual void video_start() override; 55 56 uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); 57 void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); 58 void gakupara_io_map(address_map &map); 59 void gekiretu_io_map(address_map &map); 60 void gekiretu_map(address_map &map); 61 void quizdna_io_map(address_map &map); 62 void quizdna_map(address_map &map); 63 }; 64