diff options
Diffstat (limited to 'src/mame/includes/toaplan2.h')
-rw-r--r-- | src/mame/includes/toaplan2.h | 125 |
1 files changed, 67 insertions, 58 deletions
diff --git a/src/mame/includes/toaplan2.h b/src/mame/includes/toaplan2.h index 9f2aebee09d..4722e840e37 100644 --- a/src/mame/includes/toaplan2.h +++ b/src/mame/includes/toaplan2.h @@ -9,7 +9,6 @@ #include "machine/bankdev.h" #include "machine/eepromser.h" #include "machine/gen_latch.h" -#include "machine/nmk112.h" #include "machine/ticket.h" #include "machine/upd4992.h" #include "video/gp9001.h" @@ -33,7 +32,6 @@ public: , m_maincpu(*this, "maincpu") , m_audiocpu(*this, "audiocpu") , m_vdp(*this, "gp9001_%u", 0U) - , m_nmk112(*this, "nmk112") , m_oki(*this, "oki%u", 1U) , m_eeprom(*this, "eeprom") , m_rtc(*this, "rtc") @@ -45,8 +43,13 @@ public: , m_hopper(*this, "hopper") , m_dma_space(*this, "dma_space") , m_z80_rom(*this, "audiocpu") + , m_oki_rom(*this, "oki%u", 1U) , m_audiobank(*this, "audiobank") , m_okibank(*this, "okibank") + , m_raizing_okibank{{*this, "raizing_okibank0_%u", 0U}, + {*this, "raizing_okibank1_%u", 0U}} + , m_io_pad(*this, "PAD%u", 1U) + , m_eepromout(*this, "EEPROMOUT") { } void dogyuun(machine_config &config); @@ -91,17 +94,16 @@ private: // We encode priority with colour in the tilemaps, so need a larger palette static constexpr unsigned T2PALETTE_LENGTH = 0x10000; - optional_shared_ptr<uint8_t> m_shared_ram; // 8 bit RAM shared between 68K and sound CPU - optional_shared_ptr<uint16_t> m_tx_videoram; - optional_shared_ptr<uint16_t> m_tx_lineselect; - optional_shared_ptr<uint16_t> m_tx_linescroll; - optional_shared_ptr<uint16_t> m_tx_gfxram; - optional_shared_ptr<uint16_t> m_mainram; + optional_shared_ptr<u8> m_shared_ram; // 8 bit RAM shared between 68K and sound CPU + optional_shared_ptr<u16> m_tx_videoram; + optional_shared_ptr<u16> m_tx_lineselect; + optional_shared_ptr<u16> m_tx_linescroll; + optional_shared_ptr<u16> m_tx_gfxram; + optional_shared_ptr<u16> m_mainram; required_device<m68000_base_device> m_maincpu; optional_device<cpu_device> m_audiocpu; optional_device_array<gp9001vdp_device, 2> m_vdp; - optional_device<nmk112_device> m_nmk112; optional_device_array<okim6295_device, 2> m_oki; optional_device<eeprom_serial_93cxx_device> m_eeprom; optional_device<upd4992_device> m_rtc; @@ -114,61 +116,67 @@ private: optional_device<address_map_bank_device> m_dma_space; - optional_region_ptr<uint8_t> m_z80_rom; + optional_region_ptr<u8> m_z80_rom; + optional_region_ptr_array<u8, 2> m_oki_rom; optional_memory_bank m_audiobank; optional_memory_bank m_okibank; + optional_memory_bank_array<8> m_raizing_okibank[2]; - int8_t m_old_p1_paddle_h; /* For Ghox */ - int8_t m_old_p2_paddle_h; - uint8_t m_v25_reset_line; /* 0x20 for dogyuun/batsugun, 0x10 for vfive, 0x08 for fixeight */ - uint8_t m_sndirq_line; /* IRQ4 for batrider, IRQ2 for bbakraid */ - uint8_t m_z80_busreq; - uint16_t m_gfxrom_bank[8]; /* Batrider object bank */ + optional_ioport_array<2> m_io_pad; + optional_ioport m_eepromout; + + s8 m_old_p1_paddle_h; /* For Ghox */ + s8 m_old_p2_paddle_h; + u8 m_sound_reset_bit; /* 0x20 for dogyuun/batsugun, 0x10 for vfive, 0x08 for fixeight */ + u8 m_sndirq_line; /* IRQ4 for batrider, IRQ2 for bbakraid */ + u8 m_z80_busreq; + u16 m_gfxrom_bank[8]; /* Batrider object bank */ bitmap_ind8 m_custom_priority_bitmap; bitmap_ind16 m_secondary_render_bitmap; tilemap_t *m_tx_tilemap; /* Tilemap for extra-text-layer */ - DECLARE_READ16_MEMBER(video_count_r); - DECLARE_WRITE8_MEMBER(toaplan2_coin_w); - DECLARE_WRITE16_MEMBER(toaplan2_coin_word_w); - DECLARE_WRITE16_MEMBER(toaplan2_v25_coin_word_w); - DECLARE_WRITE16_MEMBER(shippumd_coin_word_w); - DECLARE_READ16_MEMBER(shared_ram_r); - DECLARE_WRITE16_MEMBER(shared_ram_w); - DECLARE_READ16_MEMBER(ghox_p1_h_analog_r); - DECLARE_READ16_MEMBER(ghox_p2_h_analog_r); - DECLARE_WRITE16_MEMBER(fixeight_subcpu_ctrl_w); - DECLARE_WRITE8_MEMBER(fixeightbl_oki_bankswitch_w); - DECLARE_WRITE8_MEMBER(raizing_z80_bankswitch_w); - DECLARE_WRITE8_MEMBER(raizing_oki_bankswitch_w); - DECLARE_READ8_MEMBER(bgaregga_E01D_r); - DECLARE_READ16_MEMBER(batrider_z80_busack_r); - DECLARE_WRITE8_MEMBER(batrider_z80_busreq_w); - DECLARE_READ16_MEMBER(batrider_z80rom_r); - DECLARE_WRITE8_MEMBER(batrider_soundlatch_w); - DECLARE_WRITE8_MEMBER(batrider_soundlatch2_w); - DECLARE_WRITE16_MEMBER(batrider_unknown_sound_w); - DECLARE_WRITE16_MEMBER(batrider_clear_sndirq_w); - DECLARE_WRITE8_MEMBER(batrider_sndirq_w); - DECLARE_WRITE8_MEMBER(batrider_clear_nmi_w); - DECLARE_READ16_MEMBER(bbakraid_eeprom_r); - DECLARE_WRITE16_MEMBER(bbakraid_eeprom_w); - DECLARE_WRITE16_MEMBER(tx_videoram_w); - DECLARE_WRITE16_MEMBER(tx_linescroll_w); - DECLARE_WRITE16_MEMBER(tx_gfxram_w); - DECLARE_WRITE16_MEMBER(batrider_tx_gfxram_w); - DECLARE_WRITE16_MEMBER(batrider_textdata_dma_w); - DECLARE_WRITE16_MEMBER(batrider_pal_text_dma_w); - DECLARE_WRITE8_MEMBER(batrider_objectbank_w); + u16 video_count_r(); + void coin_w(u8 data); + void coin_sound_reset_w(u8 data); + void shippumd_coin_w(u8 data); + u8 shared_ram_r(offs_t offset); + void shared_ram_w(offs_t offset, u8 data); + u16 ghox_p1_h_analog_r(); + u16 ghox_p2_h_analog_r(); + void sound_reset_w(u8 data); + void fixeightbl_oki_bankswitch_w(u8 data); + void raizing_z80_bankswitch_w(u8 data); + void raizing_oki_bankswitch_w(offs_t offset, u8 data); + u8 bgaregga_E01D_r(); + u16 batrider_z80_busack_r(); + void batrider_z80_busreq_w(u8 data); + u16 batrider_z80rom_r(offs_t offset); + void batrider_soundlatch_w(u8 data); + void batrider_soundlatch2_w(u8 data); + void batrider_unknown_sound_w(u16 data); + void batrider_clear_sndirq_w(u16 data); + void batrider_sndirq_w(u8 data); + void batrider_clear_nmi_w(u8 data); + u16 bbakraid_eeprom_r(); + void bbakraid_eeprom_w(u8 data); + void tx_videoram_w(offs_t offset, u16 data, u16 mem_mask = ~0); + void tx_linescroll_w(offs_t offset, u16 data, u16 mem_mask = ~0); + void tx_gfxram_w(offs_t offset, u16 data, u16 mem_mask = ~0); + void batrider_tx_gfxram_w(offs_t offset, u16 data, u16 mem_mask = ~0); + void batrider_textdata_dma_w(u16 data); + void batrider_pal_text_dma_w(u16 data); + void batrider_objectbank_w(offs_t offset, u8 data); void batrider_bank_cb(u8 layer, u32 &code); - template<int Chip> DECLARE_WRITE8_MEMBER(oki_bankswitch_w); - DECLARE_WRITE16_MEMBER(enmadaio_oki_bank_w); + template<int Chip> void oki_bankswitch_w(u8 data); + void enmadaio_oki_bank_w(offs_t offset, u16 data, u16 mem_mask = ~0); + void install_raizing_okibank(int chip); TILE_GET_INFO_MEMBER(get_text_tile_info); virtual void machine_start() override; DECLARE_MACHINE_RESET(toaplan2); + DECLARE_MACHINE_RESET(bgaregga); DECLARE_VIDEO_START(toaplan2); DECLARE_MACHINE_RESET(ghox); DECLARE_VIDEO_START(truxton2); @@ -178,21 +186,21 @@ private: DECLARE_VIDEO_START(batrider); // Teki Paki sound - DECLARE_READ8_MEMBER(tekipaki_cmdavailable_r); + u8 tekipaki_cmdavailable_r(); - uint32_t screen_update_toaplan2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - uint32_t screen_update_dogyuun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - uint32_t screen_update_batsugun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - uint32_t screen_update_truxton2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - uint32_t screen_update_bootleg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + u32 screen_update_toaplan2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + u32 screen_update_dogyuun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + u32 screen_update_batsugun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + u32 screen_update_truxton2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + u32 screen_update_bootleg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); DECLARE_WRITE_LINE_MEMBER(screen_vblank); void cpu_space_fixeightbl_map(address_map &map); void cpu_space_pipibibsbl_map(address_map &map); INTERRUPT_GEN_MEMBER(bbakraid_snd_interrupt); void create_tx_tilemap(int dx = 0, int dx_flipped = 0); - DECLARE_WRITE8_MEMBER(pwrkick_coin_w); - DECLARE_WRITE8_MEMBER(pwrkick_coin_lockout_w); + void pwrkick_coin_w(u8 data); + void pwrkick_coin_lockout_w(u8 data); DECLARE_WRITE_LINE_MEMBER(toaplan2_reset); @@ -226,6 +234,7 @@ private: void pipibibs_68k_mem(address_map &map); void pipibibs_sound_z80_mem(address_map &map); void pwrkick_68k_mem(address_map &map); + template<unsigned Chip> void raizing_oki(address_map &map); void raizing_sound_z80_mem(address_map &map); void shippumd_68k_mem(address_map &map); void snowbro2_68k_mem(address_map &map); |