1 // license:BSD-3-Clause 2 // copyright-holders:David Haywood, Tomasz Slanina 3 #ifndef MAME_INCLUDES_MAINSNK_H 4 #define MAME_INCLUDES_MAINSNK_H 5 6 #pragma once 7 8 #include "machine/gen_latch.h" 9 #include "emupal.h" 10 #include "tilemap.h" 11 12 class mainsnk_state : public driver_device 13 { 14 public: mainsnk_state(const machine_config & mconfig,device_type type,const char * tag)15 mainsnk_state(const machine_config &mconfig, device_type type, const char *tag) : 16 driver_device(mconfig, type, tag), 17 m_maincpu(*this, "maincpu"), 18 m_audiocpu(*this, "audiocpu"), 19 m_gfxdecode(*this, "gfxdecode"), 20 m_palette(*this, "palette"), 21 m_soundlatch(*this, "soundlatch"), 22 m_bgram(*this, "bgram"), 23 m_spriteram(*this, "spriteram"), 24 m_fgram(*this, "fgram") 25 { } 26 27 void mainsnk(machine_config &config); 28 29 protected: 30 virtual void video_start() override; 31 32 private: 33 required_device<cpu_device> m_maincpu; 34 required_device<cpu_device> m_audiocpu; 35 required_device<gfxdecode_device> m_gfxdecode; 36 required_device<palette_device> m_palette; 37 required_device<generic_latch_8_device> m_soundlatch; 38 39 required_shared_ptr<uint8_t> m_bgram; 40 required_shared_ptr<uint8_t> m_spriteram; 41 required_shared_ptr<uint8_t> m_fgram; 42 43 tilemap_t *m_tx_tilemap; 44 tilemap_t *m_bg_tilemap; 45 int m_sound_cpu_busy; 46 uint32_t m_bg_tile_offset; 47 48 uint8_t sound_ack_r(); 49 void c600_w(uint8_t data); 50 void fgram_w(offs_t offset, uint8_t data); 51 void bgram_w(offs_t offset, uint8_t data); 52 53 TILEMAP_MAPPER_MEMBER(marvins_tx_scan_cols); 54 TILE_GET_INFO_MEMBER(get_tx_tile_info); 55 TILE_GET_INFO_MEMBER(get_bg_tile_info); 56 57 void mainsnk_palette(palette_device &palette) const; 58 59 uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); 60 void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int scrollx, int scrolly ); 61 void main_map(address_map &map); 62 void sound_map(address_map &map); 63 void sound_portmap(address_map &map); 64 }; 65 66 #endif // MAME_INCLUDES_MAINSNK_H 67