1 // license:BSD-3-Clause 2 // copyright-holders:Manuel Abadia 3 #ifndef MAME_INCLUDES_SKYKID_H 4 #define MAME_INCLUDES_SKYKID_H 5 6 #pragma once 7 8 #include "cpu/m6800/m6801.h" 9 #include "sound/namco.h" 10 #include "emupal.h" 11 #include "tilemap.h" 12 13 class skykid_state : public driver_device 14 { 15 public: skykid_state(const machine_config & mconfig,device_type type,const char * tag)16 skykid_state(const machine_config &mconfig, device_type type, const char *tag) 17 : driver_device(mconfig, type, tag) 18 , m_videoram(*this, "videoram") 19 , m_textram(*this, "textram") 20 , m_spriteram(*this, "spriteram") 21 , m_maincpu(*this, "maincpu") 22 , m_mcu(*this, "mcu") 23 , m_cus30(*this, "namco") 24 , m_gfxdecode(*this, "gfxdecode") 25 , m_palette(*this, "palette") 26 , m_leds(*this, "led%u", 0U) 27 { } 28 29 void skykid(machine_config &config); 30 31 void init_skykid(); 32 33 private: 34 void inputport_select_w(uint8_t data); 35 uint8_t inputport_r(); 36 void skykid_led_w(uint8_t data); 37 void skykid_subreset_w(offs_t offset, uint8_t data); 38 void skykid_bankswitch_w(offs_t offset, uint8_t data); 39 void skykid_irq_1_ctrl_w(offs_t offset, uint8_t data); 40 void skykid_irq_2_ctrl_w(offs_t offset, uint8_t data); 41 uint8_t skykid_videoram_r(offs_t offset); 42 void skykid_videoram_w(offs_t offset, uint8_t data); 43 uint8_t skykid_textram_r(offs_t offset); 44 void skykid_textram_w(offs_t offset, uint8_t data); 45 void skykid_scroll_x_w(offs_t offset, uint8_t data); 46 void skykid_scroll_y_w(offs_t offset, uint8_t data); 47 void skykid_flipscreen_priority_w(offs_t offset, uint8_t data); 48 TILEMAP_MAPPER_MEMBER(tx_tilemap_scan); 49 TILE_GET_INFO_MEMBER(tx_get_tile_info); 50 TILE_GET_INFO_MEMBER(bg_get_tile_info); 51 void skykid_palette(palette_device &palette) const; 52 uint32_t screen_update_skykid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); 53 DECLARE_WRITE_LINE_MEMBER(vblank_irq); 54 void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect); 55 void mcu_map(address_map &map); 56 void skykid_map(address_map &map); 57 58 virtual void machine_start() override; 59 virtual void video_start() override; 60 61 uint8_t m_inputport_selected; 62 required_shared_ptr<uint8_t> m_videoram; 63 required_shared_ptr<uint8_t> m_textram; 64 required_shared_ptr<uint8_t> m_spriteram; 65 required_device<cpu_device> m_maincpu; 66 required_device<hd63701v0_cpu_device> m_mcu; 67 required_device<namco_cus30_device> m_cus30; 68 required_device<gfxdecode_device> m_gfxdecode; 69 required_device<palette_device> m_palette; 70 output_finder<2> m_leds; 71 tilemap_t *m_bg_tilemap; 72 tilemap_t *m_tx_tilemap; 73 uint8_t m_priority; 74 uint16_t m_scroll_x; 75 uint16_t m_scroll_y; 76 uint8_t m_main_irq_mask; 77 uint8_t m_mcu_irq_mask; 78 }; 79 80 #endif // MAME_INCLUDES_SKYKID_H 81