summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/includes/ladybug.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/includes/ladybug.h')
-rw-r--r--src/mame/includes/ladybug.h66
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