1 // license:BSD-3-Clause 2 // copyright-holders:Tomasz Slanina 3 #ifndef MAME_INCLUDES_SSRJ_H 4 #define MAME_INCLUDES_SSRJ_H 5 6 #pragma once 7 8 #include "emupal.h" 9 #include "tilemap.h" 10 11 class ssrj_state : public driver_device 12 { 13 public: ssrj_state(const machine_config & mconfig,device_type type,const char * tag)14 ssrj_state(const machine_config &mconfig, device_type type, const char *tag) : 15 driver_device(mconfig, type, tag), 16 m_maincpu(*this, "maincpu"), 17 m_gfxdecode(*this, "gfxdecode"), 18 m_palette(*this, "palette"), 19 m_vram1(*this, "vram1"), 20 m_vram2(*this, "vram2"), 21 m_vram3(*this, "vram3"), 22 m_vram4(*this, "vram4"), 23 m_scrollram(*this, "scrollram") 24 { } 25 26 void ssrj(machine_config &config); 27 28 protected: 29 virtual void machine_start() override; 30 virtual void machine_reset() override; 31 virtual void video_start() override; 32 33 private: 34 required_device<cpu_device> m_maincpu; 35 required_device<gfxdecode_device> m_gfxdecode; 36 required_device<palette_device> m_palette; 37 38 required_shared_ptr<uint8_t> m_vram1; 39 required_shared_ptr<uint8_t> m_vram2; 40 required_shared_ptr<uint8_t> m_vram3; 41 required_shared_ptr<uint8_t> m_vram4; 42 required_shared_ptr<uint8_t> m_scrollram; 43 44 int m_oldport; 45 tilemap_t *m_tilemap1; 46 tilemap_t *m_tilemap2; 47 tilemap_t *m_tilemap4; 48 std::unique_ptr<uint8_t[]> m_buffer_spriteram; 49 50 uint8_t wheel_r(); 51 void vram1_w(offs_t offset, uint8_t data); 52 void vram2_w(offs_t offset, uint8_t data); 53 void vram4_w(offs_t offset, uint8_t data); 54 55 TILE_GET_INFO_MEMBER(get_tile_info1); 56 TILE_GET_INFO_MEMBER(get_tile_info2); 57 TILE_GET_INFO_MEMBER(get_tile_info4); 58 59 void ssrj_palette(palette_device &palette) const; 60 61 uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); 62 DECLARE_WRITE_LINE_MEMBER(screen_vblank); 63 void draw_objects(bitmap_ind16 &bitmap, const rectangle &cliprect ); 64 65 void ssrj_map(address_map &map); 66 }; 67 68 #endif // MAME_INCLUDES_SSRJ_H 69