summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/includes/toaplan2.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/includes/toaplan2.h')
-rw-r--r--src/mame/includes/toaplan2.h125
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);