summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/includes/psikyo4.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/includes/psikyo4.h')
-rw-r--r--src/mame/includes/psikyo4.h48
1 files changed, 21 insertions, 27 deletions
diff --git a/src/mame/includes/psikyo4.h b/src/mame/includes/psikyo4.h
index 555c180513d..67954dc2ecf 100644
--- a/src/mame/includes/psikyo4.h
+++ b/src/mame/includes/psikyo4.h
@@ -12,24 +12,21 @@
#include "emupal.h"
#include "screen.h"
-#define MASTER_CLOCK 57272700 // main oscillator frequency
-
class psikyo4_state : public driver_device
{
public:
- psikyo4_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
+ psikyo4_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
m_spriteram(*this, "spriteram"),
m_vidregs(*this, "vidregs"),
- m_bgpen_1(*this, "bgpen_1"),
- m_bgpen_2(*this, "bgpen_2"),
+ m_bgpen(*this, "bgpen_%u", 1U),
m_paletteram(*this, "paletteram"),
+ m_gfxbank(*this, "gfxbank"),
m_ymf_bank(*this, "ymfbank%u", 0),
m_maincpu(*this, "maincpu"),
m_eeprom(*this, "eeprom"),
m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "lpalette"),
- m_palette2(*this, "rpalette"),
+ m_palette(*this, {"lpalette", "rpalette"}),
m_lscreen(*this, "lscreen"),
m_rscreen(*this, "rscreen"),
m_keys(*this, "KEY.%u", 0)
@@ -44,44 +41,41 @@ private:
/* memory pointers */
required_shared_ptr<uint32_t> m_spriteram;
required_shared_ptr<uint32_t> m_vidregs;
- required_shared_ptr<uint32_t> m_bgpen_1;
- required_shared_ptr<uint32_t> m_bgpen_2;
+ required_shared_ptr_array<uint32_t, 2> m_bgpen;
required_shared_ptr<uint32_t> m_paletteram;
+ required_memory_bank m_gfxbank;
required_memory_bank_array<4> m_ymf_bank;
+
+ uint16_t m_gfx_max_bank;
uint8_t m_ymf_max_bank;
uint8_t m_io_select;
/* video-related */
- double m_oldbrt1;
- double m_oldbrt2;
+ double m_oldbrt[2];
/* devices */
required_device<sh2_device> m_maincpu;
required_device<eeprom_serial_93cxx_device> m_eeprom;
required_device<gfxdecode_device> m_gfxdecode;
- required_device<palette_device> m_palette;
- required_device<palette_device> m_palette2;
+ required_device_array<palette_device, 2> m_palette;
required_device<screen_device> m_lscreen;
required_device<screen_device> m_rscreen;
optional_ioport_array<8> m_keys;
- DECLARE_WRITE32_MEMBER(ps4_paletteram32_RRRRRRRRGGGGGGGGBBBBBBBBxxxxxxxx_dword_w);
- DECLARE_WRITE32_MEMBER(ps4_bgpen_1_dword_w);
- DECLARE_WRITE32_MEMBER(ps4_bgpen_2_dword_w);
- DECLARE_WRITE32_MEMBER(ps4_screen1_brt_w);
- DECLARE_WRITE32_MEMBER(ps4_screen2_brt_w);
- DECLARE_WRITE32_MEMBER(ps4_vidregs_w);
- DECLARE_WRITE32_MEMBER(io_select_w);
- DECLARE_WRITE32_MEMBER(ps4_eeprom_w);
- DECLARE_READ32_MEMBER(ps4_eeprom_r);
+ DECLARE_WRITE32_MEMBER(paletteram_w);
+ template<int Screen> DECLARE_WRITE32_MEMBER(bgpen_w);
+ template<int Screen> DECLARE_WRITE8_MEMBER(screen_brt_w);
+ DECLARE_WRITE32_MEMBER(vidregs_w);
+ DECLARE_WRITE16_MEMBER(ymf_bank_w);
+ DECLARE_WRITE8_MEMBER(io_select_w);
+ DECLARE_WRITE8_MEMBER(eeprom_w);
virtual void machine_start() override;
virtual void machine_reset() override;
virtual void video_start() override;
- uint32_t screen_update_psikyo4_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- uint32_t screen_update_psikyo4_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- INTERRUPT_GEN_MEMBER(psikyosh_interrupt);
- void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, uint32_t scr);
+ template<int Screen> uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ INTERRUPT_GEN_MEMBER(interrupt);
+ void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, uint32_t scr);
void ps4_map(address_map &map);
void ps4_ymf_map(address_map &map);
};