1 // license:BSD-3-Clause 2 // copyright-holders:Bryan McPhail 3 /************************************************************************* 4 5 The Main Event / Devastators 6 7 *************************************************************************/ 8 #ifndef MAME_INCLUDES_MAINEVT_H 9 #define MAME_INCLUDES_MAINEVT_H 10 11 #pragma once 12 13 #include "sound/upd7759.h" 14 #include "sound/k007232.h" 15 #include "video/k052109.h" 16 #include "video/k051960.h" 17 #include "video/k051733.h" 18 #include "video/konami_helper.h" 19 20 class mainevt_state : public driver_device 21 { 22 public: mainevt_state(const machine_config & mconfig,device_type type,const char * tag)23 mainevt_state(const machine_config &mconfig, device_type type, const char *tag) 24 : driver_device(mconfig, type, tag) 25 , m_maincpu(*this, "maincpu") 26 , m_audiocpu(*this, "audiocpu") 27 , m_upd7759(*this, "upd") 28 , m_k007232(*this, "k007232") 29 , m_k052109(*this, "k052109") 30 , m_k051960(*this, "k051960") 31 , m_rombank(*this, "rombank") 32 , m_leds(*this, "led%u", 0U) 33 { } 34 35 void devstors(machine_config &config); 36 void mainevt(machine_config &config); 37 38 private: 39 void dv_nmienable_w(uint8_t data); 40 void mainevt_bankswitch_w(uint8_t data); 41 void mainevt_coin_w(uint8_t data); 42 void mainevt_sh_irqtrigger_w(uint8_t data); 43 void mainevt_sh_irqcontrol_w(uint8_t data); 44 void devstor_sh_irqcontrol_w(uint8_t data); 45 void mainevt_sh_bankswitch_w(uint8_t data); 46 uint8_t k052109_051960_r(offs_t offset); 47 void k052109_051960_w(offs_t offset, uint8_t data); 48 uint8_t mainevt_sh_busy_r(); 49 void dv_sh_bankswitch_w(uint8_t data); 50 uint32_t screen_update_mainevt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); 51 uint32_t screen_update_dv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); 52 DECLARE_WRITE_LINE_MEMBER(dv_vblank_w); 53 INTERRUPT_GEN_MEMBER(mainevt_sound_timer_irq); 54 INTERRUPT_GEN_MEMBER(devstors_sound_timer_irq); 55 void volume_callback(uint8_t data); 56 K052109_CB_MEMBER(mainevt_tile_callback); 57 K052109_CB_MEMBER(dv_tile_callback); 58 K051960_CB_MEMBER(mainevt_sprite_callback); 59 K051960_CB_MEMBER(dv_sprite_callback); 60 void devstors_map(address_map &map); 61 void devstors_sound_map(address_map &map); 62 void mainevt_map(address_map &map); 63 void mainevt_sound_map(address_map &map); 64 65 virtual void machine_start() override; 66 virtual void machine_reset() override; 67 68 /* misc */ 69 int m_nmi_enable; 70 uint8_t m_sound_irq_mask; 71 72 /* devices */ 73 required_device<cpu_device> m_maincpu; 74 required_device<cpu_device> m_audiocpu; 75 optional_device<upd7759_device> m_upd7759; 76 required_device<k007232_device> m_k007232; 77 required_device<k052109_device> m_k052109; 78 required_device<k051960_device> m_k051960; 79 80 required_memory_bank m_rombank; 81 output_finder<4> m_leds; 82 }; 83 84 #endif // MAME_INCLUDES_MAINEVT_H 85