summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/includes/kaneko16.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/includes/kaneko16.h')
-rw-r--r--src/mame/includes/kaneko16.h159
1 files changed, 85 insertions, 74 deletions
diff --git a/src/mame/includes/kaneko16.h b/src/mame/includes/kaneko16.h
index e5714367bad..f54b6118282 100644
--- a/src/mame/includes/kaneko16.h
+++ b/src/mame/includes/kaneko16.h
@@ -34,9 +34,7 @@ public:
kaneko16_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
- m_audiocpu(*this, "audiocpu"),
m_ym2149(*this, "ym2149_%u", 1),
- m_ymsnd(*this, "ymsnd"),
m_oki(*this, "oki%u", 1),
m_view2(*this, "view2_%u", 0),
m_kaneko_hit(*this, "kan_hit"),
@@ -59,14 +57,24 @@ public:
m_p2_port(*this, "P2"),
m_fake_port(*this, "FAKE"),
m_dsw_port(*this, "DSW1"),
- m_wheel_port(*this, "WHEEL%u", 0U)
+ m_eepromout_port(*this, "EEPROMOUT"),
+ m_wheel_port(*this, "WHEEL%u", 0U),
+ m_audiocpu(*this, "audiocpu"),
+ m_ymsnd(*this, "ymsnd")
{
}
+ void init_kaneko16();
+ void init_bakubrkr();
+
+ void bakubrkr(machine_config &config);
+ void wingforc(machine_config &config);
+ void blazeon(machine_config &config);
+ void mgcrystl(machine_config &config);
+
+protected:
required_device<m68000_device> m_maincpu;
- optional_device<z80_device> m_audiocpu;
optional_device_array<ym2149_device, 2> m_ym2149;
- optional_device<ym2151_device> m_ymsnd;
optional_device_array<okim6295_device, 2> m_oki;
optional_device_array<kaneko_view2_tilemap_device, 2> m_view2;
optional_device<kaneko_hit_device> m_kaneko_hit;
@@ -81,10 +89,10 @@ public:
optional_device<generic_latch_8_device> m_soundlatch;
optional_device<watchdog_timer_device> m_watchdog;
- required_region_ptr<uint16_t> m_mainregion;
- optional_shared_ptr<uint16_t> m_spriteram;
- optional_shared_ptr<uint16_t> m_mainram;
- optional_shared_ptr<uint16_t> m_mcuram;
+ required_region_ptr<u16> m_mainregion;
+ optional_shared_ptr<u16> m_spriteram;
+ optional_shared_ptr<u16> m_mainram;
+ optional_shared_ptr<u16> m_mcuram;
optional_memory_region_array<2> m_okiregion;
optional_memory_bank_array<2> m_okibank;
@@ -92,48 +100,50 @@ public:
optional_ioport m_p2_port;
optional_ioport m_fake_port;
optional_ioport m_dsw_port;
+ optional_ioport m_eepromout_port;
optional_ioport_array<3> m_wheel_port;
- uint16_t m_disp_enable;
+ u16 m_disp_enable;
int m_VIEW2_2_pri;
- void kaneko16_common_oki_bank_install(int bankno, size_t fixedsize, size_t bankedsize);
- DECLARE_WRITE16_MEMBER(kaneko16_coin_lockout_w);
- DECLARE_WRITE16_MEMBER(kaneko16_eeprom_w);
-
- DECLARE_WRITE16_MEMBER(kaneko16_display_enable);
+ virtual void common_oki_bank_install(int bankno, size_t fixedsize, size_t bankedsize);
+ void coin_lockout_w(u8 data);
+ void bloodwar_coin_lockout_w(u8 data);
- template<int Chip> DECLARE_READ16_MEMBER(kaneko16_ay_YM2149_r);
- template<int Chip> DECLARE_WRITE16_MEMBER(kaneko16_ay_YM2149_w);
- template<int Mask> DECLARE_WRITE8_MEMBER(oki_bank0_w);
- template<int Mask> DECLARE_WRITE8_MEMBER(oki_bank1_w);
-
- DECLARE_READ8_MEMBER(eeprom_r);
- DECLARE_WRITE8_MEMBER(eeprom_w);
-
- void init_kaneko16();
- void init_bakubrkr();
+ void display_enable_w(offs_t offset, u16 data, u16 mem_mask); // (u16 data, u16 mem_mask);
+ template<unsigned Chip> DECLARE_READ16_MEMBER(ym2149_r);
+ template<unsigned Chip> DECLARE_WRITE16_MEMBER(ym2149_w);
+ template<unsigned Mask> void oki_bank0_w(u8 data);
+ template<unsigned Mask> void oki_bank1_w(u8 data);
DECLARE_MACHINE_RESET(gtmr);
- DECLARE_VIDEO_START(kaneko16);
DECLARE_MACHINE_RESET(mgcrystl);
- uint32_t screen_update_kaneko16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ virtual void video_start() override;
+ u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
template<class _BitmapClass>
- uint32_t screen_update_common(screen_device &screen, _BitmapClass &bitmap, const rectangle &cliprect);
+ u32 screen_update_common(screen_device &screen, _BitmapClass &bitmap, const rectangle &cliprect);
- TIMER_DEVICE_CALLBACK_MEMBER(kaneko16_interrupt);
+ TIMER_DEVICE_CALLBACK_MEMBER(interrupt);
template<class _BitmapClass>
- void kaneko16_fill_bitmap(_BitmapClass &bitmap, const rectangle &cliprect);
+ void fill_bitmap(_BitmapClass &bitmap, const rectangle &cliprect);
+
+ void unscramble_tiles(const char *region);
+
+ void gtmr_oki1_map(address_map &map);
+ void gtmr_oki2_map(address_map &map);
+
+private:
+ optional_device<z80_device> m_audiocpu;
+ optional_device<ym2151_device> m_ymsnd;
+
+ u8 eeprom_r();
+ void eeprom_w(u8 data);
+ void eeprom_cs_w(u8 data);
- void kaneko16_unscramble_tiles(const char *region);
- void bakubrkr(machine_config &config);
- void wingforc(machine_config &config);
- void blazeon(machine_config &config);
- void mgcrystl(machine_config &config);
void bakubrkr_map(address_map &map);
void bakubrkr_oki1_map(address_map &map);
void blazeon_map(address_map &map);
@@ -141,8 +151,6 @@ public:
void blazeon_soundport(address_map &map);
void mgcrystl_map(address_map &map);
void wingforc_soundport(address_map &map);
- void gtmr_oki1_map(address_map &map);
- void gtmr_oki2_map(address_map &map);
};
class kaneko16_gtmr_state : public kaneko16_state
@@ -153,68 +161,71 @@ public:
{
}
- DECLARE_WRITE16_MEMBER(bloodwar_coin_lockout_w);
- DECLARE_READ16_MEMBER(gtmr_wheel_r);
- DECLARE_READ16_MEMBER(gtmr2_wheel_r);
- DECLARE_READ16_MEMBER(gtmr2_IN1_r);
void init_gtmr();
- void kaneko16_common_oki_bank_install(int bankno, size_t fixedsize, size_t bankedsize);
-
void bonkadv(machine_config &config);
void gtmr(machine_config &config);
void gtmr2(machine_config &config);
void gtmre(machine_config &config);
void bloodwar(machine_config &config);
+
+protected:
+ virtual void common_oki_bank_install(int bankno, size_t fixedsize, size_t bankedsize) override;
+
+private:
+ u16 gtmr_wheel_r();
+ u16 gtmr2_wheel_r();
+ u16 gtmr2_IN1_r();
+
void bloodwar_map(address_map &map);
void bonkadv_map(address_map &map);
void gtmr2_map(address_map &map);
void gtmr_map(address_map &map);
};
-
-
class kaneko16_berlwall_state : public kaneko16_state
{
public:
kaneko16_berlwall_state(const machine_config &mconfig, device_type type, const char *tag) :
kaneko16_state(mconfig, type, tag),
- m_bg15_select(*this, "bg15_select"),
m_bg15_scroll(*this, "bg15_scroll"),
- m_bg15_bright(*this, "bg15_bright"),
m_bgpalette(*this, "bgpalette")
{
}
- optional_shared_ptr<uint16_t> m_bg15_select;
- optional_shared_ptr<uint16_t> m_bg15_scroll;
- optional_shared_ptr<uint16_t> m_bg15_bright;
+ void init_berlwall();
+ void init_berlwallk();
+ void init_berlwallt();
+ void init_berlwall_common();
+ void berlwall(machine_config &config);
+
+protected:
+ virtual void video_start() override;
+
+private:
+ optional_shared_ptr<u16> m_bg15_scroll;
required_device<palette_device> m_bgpalette;
bitmap_ind16 m_bg15_bitmap[32];
- DECLARE_READ16_MEMBER(kaneko16_bg15_select_r);
- DECLARE_WRITE16_MEMBER(kaneko16_bg15_select_w);
- DECLARE_READ16_MEMBER(kaneko16_bg15_bright_r);
- DECLARE_WRITE16_MEMBER(kaneko16_bg15_bright_w);
+ u8 bg15_select_r();
+ void bg15_select_w(u8 data);
+ u8 bg15_bright_r();
+ void bg15_bright_w(u8 data);
- DECLARE_READ16_MEMBER(berlwall_oki_r);
DECLARE_WRITE16_MEMBER(berlwall_oki_w);
- DECLARE_READ16_MEMBER(berlwall_spriteram_r);
- DECLARE_WRITE16_MEMBER(berlwall_spriteram_w);
+ u16 berlwall_spriteram_r(offs_t offset);
+ void berlwall_spriteram_w(offs_t offset, u16 data, u16 mem_mask);
DECLARE_READ16_MEMBER(berlwall_spriteregs_r);
DECLARE_WRITE16_MEMBER(berlwall_spriteregs_w);
- void init_berlwall();
- void init_berlwallk();
- void init_berlwallt();
- void init_berlwall_common();
- DECLARE_VIDEO_START(berlwall);
- uint32_t screen_update_berlwall(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
- void kaneko16_render_15bpp_bitmap(bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ u8 m_bg15_select;
+ u8 m_bg15_bright;
- void patch_protection(uint32_t bra_offset,uint16_t bra_value,uint16_t checksum);
- void berlwall(machine_config &config);
+ u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void render_15bpp_bitmap(bitmap_rgb32 &bitmap, const rectangle &cliprect);
+
+ void patch_protection(u32 bra_offset,u16 bra_value,u16 checksum);
void berlwall_map(address_map &map);
};
@@ -226,21 +237,21 @@ public:
m_calc3_prot(*this, "calc3_prot")
{
}
-
- DECLARE_WRITE16_MEMBER(shogwarr_oki_bank_w);
-
void init_shogwarr();
void init_brapboys();
- TIMER_DEVICE_CALLBACK_MEMBER(shogwarr_interrupt);
-
void shogwarr(machine_config &config);
void brapboys(machine_config &config);
- void brapboys_oki2_map(address_map &map);
- void shogwarr_map(address_map &map);
-private:
+private:
optional_device<kaneko_calc3_device> m_calc3_prot;
+
+ TIMER_DEVICE_CALLBACK_MEMBER(shogwarr_interrupt);
+
+ void shogwarr_oki_bank_w(u8 data);
+
+ void brapboys_oki2_map(address_map &map);
+ void shogwarr_map(address_map &map);
};
#endif