1 // license:BSD-3-Clause 2 // copyright-holders:Pierpaolo Prazzoli, David Haywood 3 /************************************************************************* 4 5 Cross Pang 6 7 *************************************************************************/ 8 #ifndef MAME_INCLUDES_CROSPANG_H 9 #define MAME_INCLUDES_CROSPANG_H 10 11 #pragma once 12 13 #include "machine/gen_latch.h" 14 #include "video/decospr.h" 15 #include "tilemap.h" 16 17 class crospang_state : public driver_device 18 { 19 public: crospang_state(const machine_config & mconfig,device_type type,const char * tag)20 crospang_state(const machine_config &mconfig, device_type type, const char *tag) 21 : driver_device(mconfig, type, tag) 22 , m_fg_videoram(*this, "fg_videoram") 23 , m_bg_videoram(*this, "bg_videoram") 24 , m_spriteram(*this, "spriteram") 25 , m_maincpu(*this, "maincpu") 26 , m_sprgen(*this, "spritegen") 27 , m_gfxdecode(*this, "gfxdecode") 28 , m_soundlatch(*this, "soundlatch") 29 { } 30 31 void crospang(machine_config &config); 32 void bestri(machine_config &config); 33 void bestria(machine_config &config); 34 void pitapat(machine_config &config); 35 36 protected: 37 virtual void machine_start() override; 38 virtual void machine_reset() override; 39 virtual void video_start() override; 40 41 private: 42 /* memory pointers */ 43 required_shared_ptr<u16> m_fg_videoram; 44 required_shared_ptr<u16> m_bg_videoram; 45 required_shared_ptr<u16> m_spriteram; 46 47 /* video-related */ 48 tilemap_t *m_bg_layer; 49 tilemap_t *m_fg_layer; 50 u8 m_tilebank[4]; 51 u8 m_tilebankselect; 52 53 /* devices */ 54 required_device<cpu_device> m_maincpu; 55 required_device<decospr_device> m_sprgen; 56 required_device<gfxdecode_device> m_gfxdecode; 57 required_device<generic_latch_8_device> m_soundlatch; 58 59 void tilebank_data_w(u16 data); 60 void tilebank_select_w(u16 data); 61 void bestri_bg_scrolly_w(u16 data); 62 void bestri_fg_scrolly_w(u16 data); 63 void bestri_fg_scrollx_w(u16 data); 64 void bestri_bg_scrollx_w(u16 data); 65 void fg_scrolly_w(u16 data); 66 void bg_scrolly_w(u16 data); 67 void fg_scrollx_w(u16 data); 68 void bg_scrollx_w(u16 data); 69 void fg_videoram_w(offs_t offset, u16 data, u16 mem_mask = ~0); 70 void bg_videoram_w(offs_t offset, u16 data, u16 mem_mask = ~0); 71 TILE_GET_INFO_MEMBER(get_bg_tile_info); 72 TILE_GET_INFO_MEMBER(get_fg_tile_info); 73 u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); 74 void base_map(address_map &map); 75 void bestri_map(address_map &map); 76 void bestria_map(address_map &map); 77 void crospang_map(address_map &map); 78 void pitapat_map(address_map &map); 79 void sound_io_map(address_map &map); 80 void sound_map(address_map &map); 81 }; 82 83 #endif // MAME_INCLUDES_CROSPANG_H 84