1 // license:BSD-3-Clause 2 // copyright-holders:Aaron Giles,Ernesto Corvi 3 /************************************************************************* 4 5 Driver for Midway Wolf-unit games. 6 7 **************************************************************************/ 8 #ifndef MAME_INCLUDES_MIDWUNIT_H 9 #define MAME_INCLUDES_MIDWUNIT_H 10 11 #pragma once 12 13 #include "audio/dcs.h" 14 #include "cpu/tms34010/tms34010.h" 15 #include "machine/midwayic.h" 16 #include "video/midtunit.h" 17 #include "emupal.h" 18 19 class midwunit_state : public driver_device 20 { 21 public: midwunit_state(const machine_config & mconfig,device_type type,const char * tag)22 midwunit_state(const machine_config &mconfig, device_type type, const char *tag) 23 : driver_device(mconfig, type, tag) 24 , m_maincpu(*this, "maincpu") 25 , m_video(*this, "video") 26 , m_dcs(*this, "dcs") 27 , m_palette(*this, "palette") 28 , m_gfxrom(*this, "gfxrom") 29 , m_midway_serial_pic(*this, "serial_security_sim") 30 , m_midway_serial_pic_emu(*this, "serial_security") 31 , m_nvram(*this, "nvram") 32 , m_mainram(*this, "mainram") 33 , m_ports(*this, { { "IN0", "IN1", "DSW", "IN2" } }) 34 { } 35 36 void wunit(machine_config &config); 37 void wunit_picemu(machine_config &config); 38 void wunit_picsim(machine_config &config); 39 40 void init_mk3r10(); 41 void init_nbahangt(); 42 void init_wwfmania(); 43 void init_umk3(); 44 void init_mk3(); 45 void init_openice(); 46 void init_rmpgwt(); 47 void init_umk3r11(); 48 void init_mk3r20(); 49 50 protected: 51 virtual void machine_start() override; 52 virtual void machine_reset() override; 53 54 private: 55 void midwunit_cmos_enable_w(uint16_t data); 56 void midwunit_cmos_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); 57 uint16_t midwunit_cmos_r(offs_t offset); 58 void midwunit_io_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); 59 uint16_t midwunit_io_r(offs_t offset); 60 uint16_t midwunit_security_r(); 61 void midwunit_security_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); 62 uint16_t midwunit_sound_r(); 63 uint16_t midwunit_sound_state_r(); 64 void midwunit_sound_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); 65 void umk3_palette_hack_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); 66 void wwfmania_io_0_w(uint16_t data); 67 68 void init_mk3_common(); 69 void main_map(address_map &map); 70 71 required_device<tms340x0_device> m_maincpu; 72 required_device<midtunit_video_device> m_video; 73 required_device<dcs_audio_device> m_dcs; 74 required_device<palette_device> m_palette; 75 required_memory_region m_gfxrom; 76 77 optional_device<midway_serial_pic_device> m_midway_serial_pic; 78 optional_device<midway_serial_pic_emu_device> m_midway_serial_pic_emu; 79 required_shared_ptr<uint16_t> m_nvram; 80 required_shared_ptr<uint16_t> m_mainram; 81 required_ioport_array<4> m_ports; 82 83 uint8_t m_cmos_write_enable; 84 uint16_t m_iodata[8]; 85 uint8_t m_ioshuffle[16]; 86 uint8_t m_uart[8]; 87 uint8_t m_security_bits; 88 uint16_t *m_umk3_palette; 89 }; 90 91 #endif // MAME_INCLUDES_MIDWUNIT_H 92