1 // license:BSD-3-Clause 2 // copyright-holders:Nicola Salmoria 3 /************************************************************************* 4 5 Rollergames 6 7 *************************************************************************/ 8 #ifndef MAME_INCLUDES_ROLLERG_H 9 #define MAME_INCLUDES_ROLLERG_H 10 11 #pragma once 12 13 #include "cpu/m6809/konami.h" /* for the callback and the firq irq definition */ 14 #include "machine/k053252.h" 15 #include "video/k051316.h" 16 #include "video/k053244_k053245.h" 17 #include "video/konami_helper.h" 18 19 class rollerg_state : public driver_device 20 { 21 public: rollerg_state(const machine_config & mconfig,device_type type,const char * tag)22 rollerg_state(const machine_config &mconfig, device_type type, const char *tag) : 23 driver_device(mconfig, type, tag), 24 m_maincpu(*this, "maincpu"), 25 m_audiocpu(*this, "audiocpu"), 26 m_k053244(*this, "k053244"), 27 m_k051316(*this, "k051316"), 28 m_k053252(*this, "k053252") 29 { } 30 31 void rollerg(machine_config &config); 32 33 private: 34 enum 35 { 36 TIMER_NMI 37 }; 38 39 /* misc */ 40 int m_readzoomroms; 41 emu_timer *m_nmi_timer; 42 43 /* devices */ 44 required_device<konami_cpu_device> m_maincpu; 45 required_device<cpu_device> m_audiocpu; 46 required_device<k05324x_device> m_k053244; 47 required_device<k051316_device> m_k051316; 48 required_device<k053252_device> m_k053252; 49 void rollerg_0010_w(uint8_t data); 50 uint8_t rollerg_k051316_r(offs_t offset); 51 void soundirq_w(uint8_t data); 52 void sound_arm_nmi_w(uint8_t data); 53 uint8_t pip_r(); 54 DECLARE_WRITE_LINE_MEMBER(rollerg_irq_ack_w); 55 virtual void machine_start() override; 56 virtual void machine_reset() override; 57 uint32_t screen_update_rollerg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); 58 K05324X_CB_MEMBER(sprite_callback); 59 K051316_CB_MEMBER(zoom_callback); 60 void banking_callback(uint8_t data); 61 62 void rollerg_map(address_map &map); 63 void rollerg_sound_map(address_map &map); 64 65 virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; 66 }; 67 68 #endif // MAME_INCLUDES_ROLLERG_H 69