1 // license:BSD-3-Clause 2 // copyright-holders:R. Belmont, Nicola Salmoria 3 /************************************************************************* 4 5 Lethal Enforcers 6 7 *************************************************************************/ 8 #ifndef MAME_INCLUDES_LETHAL_H 9 #define MAME_INCLUDES_LETHAL_H 10 11 #pragma once 12 13 #include "machine/bankdev.h" 14 #include "sound/k054539.h" 15 #include "video/konami_helper.h" 16 #include "video/k054156_k054157_k056832.h" 17 #include "video/k053244_k053245.h" 18 #include "video/k054000.h" 19 #include "machine/k054321.h" 20 #include "emupal.h" 21 22 class lethal_state : public driver_device 23 { 24 public: lethal_state(const machine_config & mconfig,device_type type,const char * tag)25 lethal_state(const machine_config &mconfig, device_type type, const char *tag) : 26 driver_device(mconfig, type, tag), 27 m_maincpu(*this, "maincpu"), 28 m_soundcpu(*this, "soundcpu"), 29 m_bank4000(*this, "bank4000"), 30 m_k056832(*this, "k056832"), 31 m_k053244(*this, "k053244"), 32 m_k054321(*this, "k054321"), 33 m_palette(*this, "palette") 34 { } 35 36 void lethalej(machine_config &config); 37 void lethalen(machine_config &config); 38 39 private: 40 /* video-related */ 41 int m_layer_colorbase[4]; 42 int m_sprite_colorbase; 43 int m_back_colorbase; 44 45 /* misc */ 46 uint8_t m_cur_control2; 47 48 /* devices */ 49 required_device<cpu_device> m_maincpu; 50 required_device<cpu_device> m_soundcpu; 51 required_device<address_map_bank_device> m_bank4000; 52 required_device<k056832_device> m_k056832; 53 required_device<k05324x_device> m_k053244; 54 required_device<k054321_device> m_k054321; 55 required_device<palette_device> m_palette; 56 57 void control2_w(uint8_t data); 58 uint8_t sound_irq_r(); 59 void sound_irq_w(uint8_t data); 60 void le_bankswitch_w(uint8_t data); 61 uint8_t guns_r(offs_t offset); 62 uint8_t gunsaux_r(); 63 void lethalen_palette_control(offs_t offset, uint8_t data); 64 virtual void machine_start() override; 65 virtual void machine_reset() override; 66 virtual void video_start() override; 67 uint32_t screen_update_lethalen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); 68 INTERRUPT_GEN_MEMBER(lethalen_interrupt); 69 K05324X_CB_MEMBER(sprite_callback); 70 K056832_CB_MEMBER(tile_callback); 71 void bank4000_map(address_map &map); 72 void le_main(address_map &map); 73 void le_sound(address_map &map); 74 }; 75 76 #endif // MAME_INCLUDES_LETHAL_H 77