1 // license:BSD-3-Clause 2 // copyright-holders:Stefan Jokisch 3 #ifndef MAME_INCLUDES_SKYRAID_H 4 #define MAME_INCLUDES_SKYRAID_H 5 6 #pragma once 7 8 #include "sound/discrete.h" 9 #include "emupal.h" 10 11 class skyraid_state : public driver_device 12 { 13 public: skyraid_state(const machine_config & mconfig,device_type type,const char * tag)14 skyraid_state(const machine_config &mconfig, device_type type, const char *tag) : 15 driver_device(mconfig, type, tag), 16 m_pos_ram(*this, "pos_ram"), 17 m_alpha_num_ram(*this, "alpha_num_ram"), 18 m_obj_ram(*this, "obj_ram"), 19 m_discrete(*this, "discrete"), 20 m_maincpu(*this, "maincpu"), 21 m_gfxdecode(*this, "gfxdecode"), 22 m_palette(*this, "palette"), 23 m_led(*this, "led") 24 { } 25 26 void skyraid(machine_config &config); 27 28 private: 29 uint8_t skyraid_port_0_r(); 30 void skyraid_range_w(uint8_t data); 31 void skyraid_offset_w(uint8_t data); 32 void skyraid_scroll_w(uint8_t data); 33 virtual void machine_start() override; 34 virtual void video_start() override; 35 void skyraid_palette(palette_device &palette) const; 36 uint32_t screen_update_skyraid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); 37 void skyraid_sound_w(uint8_t data); 38 void draw_text(bitmap_ind16 &bitmap, const rectangle &cliprect); 39 void draw_terrain(bitmap_ind16 &bitmap, const rectangle &cliprect); 40 void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); 41 void draw_missiles(bitmap_ind16 &bitmap, const rectangle &cliprect); 42 void draw_trapezoid(bitmap_ind16& dst, bitmap_ind16& src); 43 44 void skyraid_map(address_map &map); 45 46 int m_analog_range; 47 int m_analog_offset; 48 49 int m_scroll; 50 51 required_shared_ptr<uint8_t> m_pos_ram; 52 required_shared_ptr<uint8_t> m_alpha_num_ram; 53 required_shared_ptr<uint8_t> m_obj_ram; 54 required_device<discrete_device> m_discrete; 55 bitmap_ind16 m_helper; 56 57 required_device<cpu_device> m_maincpu; 58 required_device<gfxdecode_device> m_gfxdecode; 59 required_device<palette_device> m_palette; 60 61 output_finder<> m_led; 62 }; 63 64 /*----------- defined in audio/skyraid.c -----------*/ 65 DISCRETE_SOUND_EXTERN( skyraid_discrete ); 66 67 #endif // MAME_INCLUDES_SKYRAID_H 68