1 // license:BSD-3-Clause 2 // copyright-holders:Nicola Salmoria 3 #ifndef MAME_INCLUDES_SEICROSS_H 4 #define MAME_INCLUDES_SEICROSS_H 5 6 #pragma once 7 8 #include "machine/nvram.h" 9 #include "sound/dac.h" 10 #include "emupal.h" 11 #include "tilemap.h" 12 13 class seicross_state : public driver_device 14 { 15 public: seicross_state(const machine_config & mconfig,device_type type,const char * tag)16 seicross_state(const machine_config &mconfig, device_type type, const char *tag) : 17 driver_device(mconfig, type, tag), 18 m_maincpu(*this, "maincpu"), 19 m_mcu(*this, "mcu"), 20 m_dac(*this, "dac"), 21 m_nvram(*this, "nvram"), 22 m_gfxdecode(*this, "gfxdecode"), 23 m_palette(*this, "palette"), 24 m_debug_port(*this, "DEBUG"), 25 m_spriteram(*this, "spriteram"), 26 m_videoram(*this, "videoram"), 27 m_row_scroll(*this, "row_scroll"), 28 m_spriteram2(*this, "spriteram2"), 29 m_colorram(*this, "colorram") 30 { } 31 32 void no_nvram(machine_config &config); 33 void friskytb(machine_config &config); 34 void nvram(machine_config &config); 35 void sectznt(machine_config &config); 36 37 protected: 38 virtual void machine_start() override; 39 virtual void machine_reset() override; 40 virtual void video_start() override; 41 42 private: 43 required_device<cpu_device> m_maincpu; 44 required_device<cpu_device> m_mcu; 45 required_device<dac_byte_interface> m_dac; 46 optional_device<nvram_device> m_nvram; 47 required_device<gfxdecode_device> m_gfxdecode; 48 required_device<palette_device> m_palette; 49 50 optional_ioport m_debug_port; 51 52 required_shared_ptr<uint8_t> m_spriteram; 53 required_shared_ptr<uint8_t> m_videoram; 54 required_shared_ptr<uint8_t> m_row_scroll; 55 required_shared_ptr<uint8_t> m_spriteram2; 56 required_shared_ptr<uint8_t> m_colorram; 57 58 uint8_t m_portb; 59 tilemap_t *m_bg_tilemap; 60 uint8_t m_irq_mask; 61 62 void videoram_w(offs_t offset, uint8_t data); 63 void colorram_w(offs_t offset, uint8_t data); 64 uint8_t portB_r(); 65 void portB_w(uint8_t data); 66 67 TILE_GET_INFO_MEMBER(get_bg_tile_info); 68 69 INTERRUPT_GEN_MEMBER(vblank_irq); 70 71 void seicross_palette(palette_device &palette) const; 72 73 uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); 74 void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect ); 75 76 void nvram_init(nvram_device &nvram, void *data, size_t size); 77 78 void dac_w(uint8_t data); 79 80 void main_map(address_map &map); 81 void main_portmap(address_map &map); 82 void mcu_no_nvram_map(address_map &map); 83 void mcu_nvram_map(address_map &map); 84 }; 85 86 #endif // MAME_INCLUDES_SEICROSS_H 87