diff options
Diffstat (limited to 'src/mame/includes/ladybug.h')
-rw-r--r-- | src/mame/includes/ladybug.h | 66 |
1 files changed, 45 insertions, 21 deletions
diff --git a/src/mame/includes/ladybug.h b/src/mame/includes/ladybug.h index 7b9177a134f..ad981e6fffb 100644 --- a/src/mame/includes/ladybug.h +++ b/src/mame/includes/ladybug.h @@ -84,52 +84,76 @@ private: required_shared_ptr<uint8_t> m_decrypted_opcodes; }; - -// graphics from ladybug, stars from zerohour, plus grid layer -class sraider_state : public ladybug_base_state +// 8203 hardware adds grid tilemap, 2nd audio CPU +class mrsdyna_state : public ladybug_base_state { public: - sraider_state(const machine_config &mconfig, device_type type, const char *tag) + mrsdyna_state(const machine_config &mconfig, device_type type, const char *tag) : ladybug_base_state(mconfig, type, tag) - , m_grid_data(*this, "grid_data") , m_palette(*this, "palette") , m_gfxdecode(*this, "gfxdecode") , m_video(*this, "video") - , m_stars(*this, "stars") { } - void sraider(machine_config &config); + void mrsdyna(machine_config &config); protected: - uint8_t sraider_8005_r(); - void sraider_misc_w(offs_t offset, uint8_t data); - void sraider_io_w(uint8_t data); - void sraider_palette(palette_device &palette) const; + uint8_t mrsdyna_protection_r(); + void mrsdyna_weird_w(offs_t offset, uint8_t data); + void mrsdyna_0x30_w(offs_t offset, uint8_t data); + void mrsdyna_0x38_w(offs_t offset, uint8_t data); + uint8_t mrsdyna_rnd_r(); + void mrsdyna_io_w(uint8_t data); + void mrsdyna_palette(palette_device &palette) const; DECLARE_WRITE_LINE_MEMBER(screen_vblank_sraider); TILE_GET_INFO_MEMBER(get_grid_tile_info); virtual void machine_start() override; virtual void machine_reset() override; - virtual void video_start() override; - uint32_t screen_update_sraider(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + uint32_t screen_update_mrsdyna(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void sraider_cpu1_map(address_map &map); - void sraider_cpu2_io_map(address_map &map); - void sraider_cpu2_map(address_map &map); + void mrsdyna_cpu1_map(address_map &map); + void mrsdyna_cpu2_io_map(address_map &map); + void mrsdyna_cpu2_map(address_map &map); -private: - required_shared_ptr<uint8_t> m_grid_data; required_device<palette_device> m_palette; required_device<gfxdecode_device> m_gfxdecode; required_device<ladybug_video_device> m_video; - required_device<zerohour_stars_device> m_stars; tilemap_t *m_grid_tilemap; uint8_t m_grid_color; - uint8_t m_sraider_0x30; - uint8_t m_sraider_0x38; + uint8_t m_0x30; + uint8_t m_0x38; uint8_t m_weird_value[8]; }; +// add stars from zerohour, uses grid layer +class sraider_state : public mrsdyna_state +{ +public: + sraider_state(const machine_config &mconfig, device_type type, const char *tag) + : mrsdyna_state(mconfig, type, tag) + , m_grid_data(*this, "grid_data") + , m_stars(*this, "stars") + { } + + void sraider(machine_config &config); + +protected: + void sraider_io_w(uint8_t data); + void sraider_palette(palette_device &palette) const; + DECLARE_WRITE_LINE_MEMBER(screen_vblank_sraider); + TILE_GET_INFO_MEMBER(get_grid_tile_info); + + virtual void video_start() override; + uint32_t screen_update_sraider(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + + void sraider_cpu2_map(address_map &map); + +private: + required_shared_ptr<uint8_t> m_grid_data; + required_device<zerohour_stars_device> m_stars; +}; + #endif // MAME_INCLUDES_LADYBUG_H |