1 // license:BSD-3-Clause 2 // copyright-holders:Bryan McPhail 3 #ifndef MAME_INCLUDES_PREHISLE_H 4 #define MAME_INCLUDES_PREHISLE_H 5 6 #pragma once 7 8 #include "machine/gen_latch.h" 9 #include "sound/upd7759.h" 10 #include "emupal.h" 11 #include "tilemap.h" 12 13 class prehisle_state : public driver_device 14 { 15 public: prehisle_state(const machine_config & mconfig,device_type type,const char * tag)16 prehisle_state(const machine_config &mconfig, device_type type, const char *tag) : 17 driver_device(mconfig, type, tag), 18 m_tx_vram(*this, "tx_vram"), 19 m_spriteram(*this, "spriteram"), 20 m_fg_vram(*this, "fg_vram"), 21 m_tilemap_rom(*this, "bgtilemap"), 22 m_io_p1(*this, "P1"), 23 m_maincpu(*this, "maincpu"), 24 m_audiocpu(*this, "audiocpu"), 25 m_upd7759(*this, "upd"), 26 m_gfxdecode(*this, "gfxdecode"), 27 m_palette(*this, "palette"), 28 m_soundlatch(*this, "soundlatch") 29 { } 30 31 void prehisle(machine_config &config); 32 33 protected: 34 virtual void machine_start() override; 35 virtual void video_start() override; 36 37 private: 38 void soundcmd_w(u16 data); 39 void fg_vram_w(offs_t offset, u16 data, u16 mem_mask = ~0); 40 void tx_vram_w(offs_t offset, u16 data, u16 mem_mask = ~0); 41 void fg_scrolly_w(offs_t offset, u16 data, u16 mem_mask); 42 void fg_scrollx_w(offs_t offset, u16 data, u16 mem_mask); 43 void bg_scrolly_w(offs_t offset, u16 data, u16 mem_mask); 44 void bg_scrollx_w(offs_t offset, u16 data, u16 mem_mask); 45 void upd_port_w(u8 data); 46 TILE_GET_INFO_MEMBER(get_bg_tile_info); 47 TILE_GET_INFO_MEMBER(get_fg_tile_info); 48 TILE_GET_INFO_MEMBER(get_tx_tile_info); 49 uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); 50 void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); 51 52 void prehisle_map(address_map &map); 53 void prehisle_sound_io_map(address_map &map); 54 void prehisle_sound_map(address_map &map); 55 56 required_shared_ptr<uint16_t> m_tx_vram; 57 required_shared_ptr<uint16_t> m_spriteram; 58 required_shared_ptr<uint16_t> m_fg_vram; 59 required_region_ptr<uint8_t> m_tilemap_rom; 60 61 required_ioport m_io_p1; 62 uint8_t m_invert_controls; 63 uint16_t m_bg_scrollx; 64 uint16_t m_bg_scrolly; 65 uint16_t m_fg_scrollx; 66 uint16_t m_fg_scrolly; 67 68 tilemap_t *m_bg_tilemap; 69 tilemap_t *m_fg_tilemap; 70 tilemap_t *m_tx_tilemap; 71 72 required_device<cpu_device> m_maincpu; 73 required_device<cpu_device> m_audiocpu; 74 required_device<upd7759_device> m_upd7759; 75 required_device<gfxdecode_device> m_gfxdecode; 76 required_device<palette_device> m_palette; 77 required_device<generic_latch_8_device> m_soundlatch; 78 }; 79 80 #endif // MAME_INCLUDES_PREHISLE_H 81