diff options
Diffstat (limited to 'src/mame/includes/sslam.h')
-rw-r--r-- | src/mame/includes/sslam.h | 42 |
1 files changed, 32 insertions, 10 deletions
diff --git a/src/mame/includes/sslam.h b/src/mame/includes/sslam.h index 36acaccb5fa..52e3cfcd63d 100644 --- a/src/mame/includes/sslam.h +++ b/src/mame/includes/sslam.h @@ -5,6 +5,7 @@ #pragma once +#include "cpu/mcs51/mcs51.h" #include "machine/gen_latch.h" #include "sound/okim6295.h" #include "emupal.h" @@ -28,14 +29,15 @@ public: { } void sslam(machine_config &config); - void powerbls(machine_config &config); void init_sslam(); - void init_powerbls(); -private: +protected: + virtual void machine_start() override; + virtual void video_start() override; + required_device<cpu_device> m_maincpu; - required_device<cpu_device> m_audiocpu; + required_device<mcs51_cpu_device> m_audiocpu; required_device<okim6295_device> m_oki; required_device<gfxdecode_device> m_gfxdecode; required_device<palette_device> m_palette; @@ -64,30 +66,50 @@ private: tilemap_t *m_md_tilemap; int m_sprites_x_offset; - DECLARE_WRITE16_MEMBER(powerbls_sound_w); DECLARE_READ8_MEMBER(playmark_snd_command_r); DECLARE_WRITE8_MEMBER(playmark_oki_w); DECLARE_WRITE8_MEMBER(playmark_snd_control_w); DECLARE_WRITE16_MEMBER(sslam_tx_tileram_w); DECLARE_WRITE16_MEMBER(sslam_md_tileram_w); DECLARE_WRITE16_MEMBER(sslam_bg_tileram_w); - DECLARE_WRITE16_MEMBER(powerbls_bg_tileram_w); DECLARE_WRITE8_MEMBER(sslam_snd_w); TILE_GET_INFO_MEMBER(get_sslam_tx_tile_info); TILE_GET_INFO_MEMBER(get_sslam_md_tile_info); TILE_GET_INFO_MEMBER(get_sslam_bg_tile_info); - TILE_GET_INFO_MEMBER(get_powerbls_bg_tile_info); DECLARE_VIDEO_START(sslam); DECLARE_VIDEO_START(powerbls); - uint32_t screen_update_sslam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - uint32_t screen_update_powerbls(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_CALLBACK_MEMBER(music_playback); void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); void sslam_play(int track, int data); - void powerbls_map(address_map &map); void sslam_program_map(address_map &map); }; +class powerbls_state : public sslam_state +{ +public: + powerbls_state(const machine_config &mconfig, device_type type, const char *tag) : + sslam_state(mconfig, type, tag) + { } + + void powerbls(machine_config &config); + + void init_powerbls(); + +protected: + virtual void machine_start() override; + virtual void video_start() override; + + void powerbls_map(address_map &map); + + TILE_GET_INFO_MEMBER(get_powerbls_bg_tile_info); + + uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + + DECLARE_WRITE16_MEMBER(powerbls_sound_w); + DECLARE_WRITE16_MEMBER(powerbls_bg_tileram_w); +}; + #endif // MAME_INCLUDES_SSLAM_H |