mirror of
https://github.com/holub/mame
synced 2025-04-20 15:32:45 +03:00
jaleco/tetrisp2.cpp: Use configured banking for sound ROMs, cleaned up code: (#13018)
* Moved Rock'n Tread to a separate state class, and moved more members to the state classes that use them. * Use driver device lifecycle functions for initialization. * Use generic graphics decoding layouts. * Reduced use of literal tags and run-time tag lookups. * Reduced redundancy in member names.
This commit is contained in:
parent
1bfe721c04
commit
b24b4040a4
File diff suppressed because it is too large
Load Diff
@ -19,14 +19,13 @@
|
||||
class tetrisp2_state : public driver_device
|
||||
{
|
||||
public:
|
||||
tetrisp2_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag)
|
||||
tetrisp2_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_sysctrl(*this, "sysctrl")
|
||||
, m_sprite(*this, "sprite")
|
||||
, m_screen(*this, "screen")
|
||||
, m_spriteram(*this, "spriteram")
|
||||
, m_spriteram2(*this, "spriteram2")
|
||||
, m_vram_fg(*this, "vram_fg")
|
||||
, m_vram_bg(*this, "vram_bg")
|
||||
, m_vram_rot(*this, "vram_rot")
|
||||
@ -35,77 +34,52 @@ public:
|
||||
, m_scroll_bg(*this, "scroll_bg")
|
||||
, m_rotregs(*this, "rotregs")
|
||||
, m_gfxdecode(*this, "gfxdecode")
|
||||
, m_sub_gfxdecode(*this, "sub_gfxdecode")
|
||||
, m_palette(*this, "palette")
|
||||
, m_paletteram(*this, "paletteram")
|
||||
, m_io_system(*this, "SYSTEM")
|
||||
, m_leds(*this, "led%u", 0U)
|
||||
{ }
|
||||
|
||||
void rockn2(machine_config &config);
|
||||
void tetrisp2(machine_config &config);
|
||||
void nndmseal(machine_config &config);
|
||||
void rockn(machine_config &config);
|
||||
|
||||
void init_rockn2();
|
||||
void init_rockn1();
|
||||
void init_rockn();
|
||||
void init_rockn3();
|
||||
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_bg);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_rot);
|
||||
void tetrisp2(machine_config &config) ATTR_COLD;
|
||||
|
||||
protected:
|
||||
void setup_main_sysctrl(machine_config &config, const XTAL clock);
|
||||
void setup_main_sprite(machine_config &config, const XTAL clock);
|
||||
virtual void machine_start() override ATTR_COLD { m_leds.resolve(); }
|
||||
virtual void video_start() override ATTR_COLD;
|
||||
|
||||
void setup_main_sysctrl(machine_config &config, const XTAL clock) ATTR_COLD;
|
||||
void setup_main_sprite(machine_config &config, const XTAL clock) ATTR_COLD;
|
||||
|
||||
void flipscreen_w(int state);
|
||||
void timer_irq_w(int state);
|
||||
void vblank_irq_w(int state);
|
||||
void field_irq_w(int state);
|
||||
void sound_reset_line_w(int state);
|
||||
|
||||
u16 rockn_adpcmbank_r();
|
||||
void rockn_adpcmbank_w(u16 data);
|
||||
void rockn2_adpcmbank_w(u16 data);
|
||||
u16 rockn_soundvolume_r();
|
||||
void rockn_soundvolume_w(u16 data);
|
||||
void nndmseal_sound_bank_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
u16 tetrisp2_ip_1_word_r();
|
||||
u16 rockn_nvram_r(offs_t offset);
|
||||
void tetrisp2_coincounter_w(u16 data);
|
||||
void nndmseal_coincounter_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void nndmseal_b20000_w(u16 data);
|
||||
u16 tetrisp2_nvram_r(offs_t offset);
|
||||
void tetrisp2_nvram_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void tetrisp2_palette_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void tetrisp2_priority_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
u16 tetrisp2_priority_r(offs_t offset);
|
||||
void tetrisp2_vram_bg_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void tetrisp2_vram_fg_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void tetrisp2_vram_rot_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void nvram_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void palette_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void priority_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
u16 priority_r(offs_t offset);
|
||||
void vram_bg_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void vram_fg_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void vram_rot_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_fg);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_bg);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_rot);
|
||||
|
||||
DECLARE_VIDEO_START(tetrisp2);
|
||||
DECLARE_VIDEO_START(nndmseal);
|
||||
DECLARE_VIDEO_START(rockntread);
|
||||
u32 screen_update_tetrisp2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
u32 screen_update_rockntread(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void init_rockn_timer();
|
||||
|
||||
void nndmseal_map(address_map &map) ATTR_COLD;
|
||||
void rockn1_map(address_map &map) ATTR_COLD;
|
||||
void rockn2_map(address_map &map) ATTR_COLD;
|
||||
void tetrisp2_map(address_map &map) ATTR_COLD;
|
||||
|
||||
virtual void machine_start() override { m_leds.resolve(); }
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<jaleco_ms32_sysctrl_device> m_sysctrl;
|
||||
required_device<ms32_sprite_device> m_sprite;
|
||||
required_device<screen_device> m_screen;
|
||||
|
||||
required_shared_ptr<u16> m_spriteram;
|
||||
optional_shared_ptr<u16> m_spriteram2;
|
||||
|
||||
required_shared_ptr<u16> m_vram_fg;
|
||||
required_shared_ptr<u16> m_vram_bg;
|
||||
@ -116,107 +90,179 @@ protected:
|
||||
required_shared_ptr<u16> m_rotregs;
|
||||
std::unique_ptr<u8[]> m_priority;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
optional_device<gfxdecode_device> m_sub_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
required_shared_ptr<u16> m_paletteram;
|
||||
|
||||
optional_ioport m_io_system;
|
||||
output_finder<45> m_leds;
|
||||
|
||||
u16 m_rockn_protectdata = 0;
|
||||
u16 m_rockn_adpcmbank = 0;
|
||||
u16 m_rockn_soundvolume = 0;
|
||||
int m_rot_ofsx = 0, m_rot_ofsy = 0;
|
||||
int m_bank_lo = 0;
|
||||
int m_bank_hi = 0;
|
||||
s32 m_rot_ofsx = 0, m_rot_ofsy = 0;
|
||||
|
||||
tilemap_t *m_tilemap_bg = nullptr;
|
||||
tilemap_t *m_tilemap_fg = nullptr;
|
||||
tilemap_t *m_tilemap_rot = nullptr;
|
||||
};
|
||||
|
||||
// With camera, printer, OKI MSM6295 sound subsystem
|
||||
class nndmseal_state : public tetrisp2_state
|
||||
{
|
||||
public:
|
||||
using tetrisp2_state::tetrisp2_state;
|
||||
static constexpr feature_type unemulated_features() { return feature::CAMERA | feature::PRINTER; }
|
||||
|
||||
nndmseal_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: tetrisp2_state(mconfig, type, tag)
|
||||
, m_okibank(*this, "okibank%u", 0U)
|
||||
{ }
|
||||
|
||||
void nndmseal(machine_config &config) ATTR_COLD;
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override ATTR_COLD;
|
||||
virtual void video_start() override ATTR_COLD;
|
||||
|
||||
private:
|
||||
void nndmseal_sound_bank_w(u8 data);
|
||||
void nndmseal_coincounter_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void nndmseal_b20000_w(u16 data);
|
||||
|
||||
void nndmseal_map(address_map &map) ATTR_COLD;
|
||||
void nndmseal_oki_map(address_map &map) ATTR_COLD;
|
||||
|
||||
required_memory_bank_array<2> m_okibank;
|
||||
|
||||
u8 m_bank_lo;
|
||||
u8 m_bank_hi;
|
||||
};
|
||||
|
||||
class rocknms_state : public tetrisp2_state
|
||||
// with ADPCM bankswitching and alternative layer size
|
||||
class rockn_state : public tetrisp2_state
|
||||
{
|
||||
public:
|
||||
rockn_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: tetrisp2_state(mconfig, type, tag)
|
||||
, m_spriteram2(*this, "spriteram2")
|
||||
, m_ymzbank(*this, "ymzbank_%u", 0U)
|
||||
{ }
|
||||
|
||||
void rockn(machine_config &config) ATTR_COLD;
|
||||
void rockn2(machine_config &config) ATTR_COLD;
|
||||
|
||||
void init_rockn() ATTR_COLD;
|
||||
void init_rockn2() ATTR_COLD;
|
||||
void init_rockn3() ATTR_COLD;
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override ATTR_COLD;
|
||||
virtual void video_start() override ATTR_COLD;
|
||||
|
||||
u16 rockn_adpcmbank_r();
|
||||
void rockn_adpcmbank_w(u16 data);
|
||||
void rockn2_adpcmbank_w(u16 data);
|
||||
u16 rockn_soundvolume_r();
|
||||
void rockn_soundvolume_w(u16 data);
|
||||
u16 rockn_nvram_r(offs_t offset);
|
||||
|
||||
u32 screen_update_rockntread(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
void rockn1_map(address_map &map) ATTR_COLD;
|
||||
void rockn1_ymz_map(address_map &map) ATTR_COLD;
|
||||
void rockn2_map(address_map &map) ATTR_COLD;
|
||||
void rockn2_ymz_map(address_map &map) ATTR_COLD;
|
||||
|
||||
optional_shared_ptr<u16> m_spriteram2;
|
||||
|
||||
optional_memory_bank_array<3> m_ymzbank;
|
||||
|
||||
u16 m_rockn_protectdata = 0;
|
||||
u16 m_rockn_adpcmbank = 0;
|
||||
u16 m_rockn_soundvolume = 0;
|
||||
};
|
||||
|
||||
class rocknms_state : public rockn_state
|
||||
{
|
||||
public:
|
||||
rocknms_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: tetrisp2_state(mconfig, type, tag)
|
||||
: rockn_state(mconfig, type, tag)
|
||||
, m_subcpu(*this, "sub")
|
||||
, m_sub_sysctrl(*this, "sub_sysctrl")
|
||||
, m_sub_screen(*this, "sub_screen")
|
||||
, m_rocknms_sub_sprite(*this, "sub_sprite")
|
||||
, m_rocknms_sub_priority(*this, "sub_priority")
|
||||
, m_rocknms_sub_vram_rot(*this, "sub_vram_rot")
|
||||
, m_rocknms_sub_vram_fg(*this, "sub_vram_fg")
|
||||
, m_rocknms_sub_vram_bg(*this, "sub_vram_bg")
|
||||
, m_rocknms_sub_scroll_fg(*this, "sub_scroll_fg")
|
||||
, m_rocknms_sub_scroll_bg(*this, "sub_scroll_bg")
|
||||
, m_rocknms_sub_rotregs(*this, "sub_rotregs")
|
||||
, m_sub_sprite(*this, "sub_sprite")
|
||||
, m_sub_priority(*this, "sub_priority")
|
||||
, m_sub_vram_rot(*this, "sub_vram_rot")
|
||||
, m_sub_vram_fg(*this, "sub_vram_fg")
|
||||
, m_sub_vram_bg(*this, "sub_vram_bg")
|
||||
, m_sub_scroll_fg(*this, "sub_scroll_fg")
|
||||
, m_sub_scroll_bg(*this, "sub_scroll_bg")
|
||||
, m_sub_rotregs(*this, "sub_rotregs")
|
||||
, m_sub_palette(*this, "sub_palette")
|
||||
, m_sub_paletteram(*this, "sub_paletteram")
|
||||
, m_sub_gfxdecode(*this, "sub_gfxdecode")
|
||||
{ }
|
||||
|
||||
void rocknms(machine_config &config);
|
||||
void init_rocknms();
|
||||
ioport_value rocknms_main2sub_status_r();
|
||||
void rocknms(machine_config &config) ATTR_COLD;
|
||||
|
||||
ioport_value main2sub_status_r();
|
||||
|
||||
void init_rocknms() ATTR_COLD;
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override ATTR_COLD;
|
||||
virtual void video_start() override ATTR_COLD;
|
||||
|
||||
private:
|
||||
required_device<cpu_device> m_subcpu;
|
||||
required_device<jaleco_ms32_sysctrl_device> m_sub_sysctrl;
|
||||
required_device<screen_device> m_sub_screen;
|
||||
required_device<ms32_sprite_device> m_rocknms_sub_sprite;
|
||||
required_shared_ptr<u16> m_rocknms_sub_priority;
|
||||
required_shared_ptr<u16> m_rocknms_sub_vram_rot;
|
||||
required_shared_ptr<u16> m_rocknms_sub_vram_fg;
|
||||
required_shared_ptr<u16> m_rocknms_sub_vram_bg;
|
||||
required_shared_ptr<u16> m_rocknms_sub_scroll_fg;
|
||||
required_shared_ptr<u16> m_rocknms_sub_scroll_bg;
|
||||
required_shared_ptr<u16> m_rocknms_sub_rotregs;
|
||||
required_device<ms32_sprite_device> m_sub_sprite;
|
||||
required_shared_ptr<u16> m_sub_priority;
|
||||
required_shared_ptr<u16> m_sub_vram_rot;
|
||||
required_shared_ptr<u16> m_sub_vram_fg;
|
||||
required_shared_ptr<u16> m_sub_vram_bg;
|
||||
required_shared_ptr<u16> m_sub_scroll_fg;
|
||||
required_shared_ptr<u16> m_sub_scroll_bg;
|
||||
required_shared_ptr<u16> m_sub_rotregs;
|
||||
required_device<palette_device> m_sub_palette;
|
||||
required_shared_ptr<u16> m_sub_paletteram;
|
||||
required_device<gfxdecode_device> m_sub_gfxdecode;
|
||||
|
||||
u32 screen_update_top(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
u32 screen_update_bottom(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
|
||||
u32 screen_update_rocknms_left(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
u32 screen_update_rocknms_right(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
void rocknms_main_map(address_map &map) ATTR_COLD;
|
||||
void rocknms_sub_map(address_map &map) ATTR_COLD;
|
||||
|
||||
u16 rocknms_main2sub_r();
|
||||
void rocknms_main2sub_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void rocknms_sub2main_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void rocknms_sub_palette_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void rocknms_sub_priority_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void rocknms_sub_vram_bg_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void rocknms_sub_vram_fg_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void rocknms_sub_vram_rot_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
DECLARE_VIDEO_START(rocknms);
|
||||
u16 main2sub_r();
|
||||
void main2sub_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void sub2main_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void sub_palette_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void sub_priority_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void sub_vram_bg_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void sub_vram_fg_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void sub_vram_rot_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_rocknms_sub_bg);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_rocknms_sub_fg);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_rocknms_sub_rot);
|
||||
|
||||
u16 m_rocknms_main2sub = 0;
|
||||
u16 m_rocknms_sub2main = 0;
|
||||
|
||||
tilemap_t *m_tilemap_sub_bg = nullptr;
|
||||
tilemap_t *m_tilemap_sub_fg = nullptr;
|
||||
tilemap_t *m_tilemap_sub_rot = nullptr;
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_sub_bg);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_sub_fg);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info_sub_rot);
|
||||
|
||||
void sub_flipscreen_w(int state);
|
||||
void sub_timer_irq_w(int state);
|
||||
void sub_vblank_irq_w(int state);
|
||||
void sub_field_irq_w(int state);
|
||||
void sub_sound_reset_line_w(int state);
|
||||
|
||||
u16 m_main2sub = 0;
|
||||
u16 m_sub2main = 0;
|
||||
|
||||
tilemap_t *m_tilemap_sub_bg = nullptr;
|
||||
tilemap_t *m_tilemap_sub_fg = nullptr;
|
||||
tilemap_t *m_tilemap_sub_rot = nullptr;
|
||||
};
|
||||
|
||||
class stepstag_state : public tetrisp2_state
|
||||
class stepstag_state : public rockn_state
|
||||
{
|
||||
public:
|
||||
stepstag_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
tetrisp2_state(mconfig, type, tag)
|
||||
stepstag_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: rockn_state(mconfig, type, tag)
|
||||
, m_subcpu(*this, "sub")
|
||||
, m_vj_sprite_l(*this, "sprite_l")
|
||||
, m_vj_sprite_m(*this, "sprite_m")
|
||||
@ -233,10 +279,11 @@ public:
|
||||
, m_jaleco_vj_pc(*this, "jaleco_vj_pc")
|
||||
, m_soundvr(*this, "SOUND_VR%u", 1)
|
||||
, m_rscreen(*this, "rscreen")
|
||||
, m_io_coins(*this, "COINS")
|
||||
{ }
|
||||
|
||||
void stepstag(machine_config &config);
|
||||
void vjdash(machine_config &config);
|
||||
void stepstag(machine_config &config) ATTR_COLD;
|
||||
void vjdash(machine_config &config) ATTR_COLD;
|
||||
|
||||
DECLARE_VIDEO_START(stepstag);
|
||||
|
||||
@ -246,8 +293,6 @@ protected:
|
||||
|
||||
private:
|
||||
u16 stepstag_coins_r();
|
||||
u16 vj_upload_idx = 0;
|
||||
bool vj_upload_fini = false;
|
||||
void stepstag_b00000_w(u16 data);
|
||||
void stepstag_b20000_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
u16 stepstag_sprite_status_status_r();
|
||||
@ -256,9 +301,9 @@ private:
|
||||
void stepstag_neon_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void stepstag_step_leds_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void stepstag_button_leds_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void stepstag_palette_left_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void stepstag_palette_mid_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void stepstag_palette_right_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void palette_left_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void palette_mid_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
void palette_right_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||
|
||||
void stepstag_spriteram1_updated_w(u16 data);
|
||||
void stepstag_spriteram2_updated_w(u16 data);
|
||||
@ -304,10 +349,15 @@ private:
|
||||
optional_ioport_array<2> m_soundvr;
|
||||
required_device<screen_device> m_rscreen;
|
||||
|
||||
required_ioport m_io_coins;
|
||||
|
||||
std::unique_ptr<uint16_t[]> m_spriteram1_data;
|
||||
std::unique_ptr<uint16_t[]> m_spriteram2_data;
|
||||
std::unique_ptr<uint16_t[]> m_spriteram3_data;
|
||||
|
||||
u16 m_vj_upload_idx = 0;
|
||||
bool m_vj_upload_fini = false;
|
||||
|
||||
uint8_t m_adv7176a_sclock;
|
||||
uint8_t m_adv7176a_sdata;
|
||||
uint8_t m_adv7176a_state;
|
||||
|
@ -58,17 +58,17 @@ void rocknms_state::sub_flipscreen_w(int state)
|
||||
***************************************************************************/
|
||||
|
||||
/* BBBBBGGGGGRRRRRx xxxxxxxxxxxxxxxx */
|
||||
void tetrisp2_state::tetrisp2_palette_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
void tetrisp2_state::palette_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
{
|
||||
data = COMBINE_DATA(&m_paletteram[offset]);
|
||||
if ((offset & 1) == 0)
|
||||
if (BIT(~offset, 0))
|
||||
m_palette->set_pen_color(offset/2,pal5bit(data >> 1),pal5bit(data >> 6),pal5bit(data >> 11));
|
||||
}
|
||||
|
||||
void rocknms_state::rocknms_sub_palette_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
void rocknms_state::sub_palette_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
{
|
||||
data = COMBINE_DATA(&m_sub_paletteram[offset]);
|
||||
if ((offset & 1) == 0)
|
||||
if (BIT(~offset, 0))
|
||||
m_sub_palette->set_pen_color(offset/2,pal5bit(data >> 1),pal5bit(data >> 6),pal5bit(data >> 11));
|
||||
}
|
||||
|
||||
@ -82,7 +82,7 @@ void rocknms_state::rocknms_sub_palette_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
void tetrisp2_state::tetrisp2_priority_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
void tetrisp2_state::priority_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
m_priority[offset] = data;
|
||||
@ -90,17 +90,17 @@ void tetrisp2_state::tetrisp2_priority_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
m_priority[offset] = data >> 8;
|
||||
}
|
||||
|
||||
u16 tetrisp2_state::tetrisp2_priority_r(offs_t offset)
|
||||
u16 tetrisp2_state::priority_r(offs_t offset)
|
||||
{
|
||||
return m_priority[offset] | 0xff00;
|
||||
}
|
||||
|
||||
void rocknms_state::rocknms_sub_priority_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
void rocknms_state::sub_priority_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
{
|
||||
if (ACCESSING_BITS_0_7)
|
||||
m_rocknms_sub_priority[offset] = data;
|
||||
m_sub_priority[offset] = data;
|
||||
else
|
||||
m_rocknms_sub_priority[offset] = data >> 8;
|
||||
m_sub_priority[offset] = data >> 8;
|
||||
}
|
||||
|
||||
|
||||
@ -133,7 +133,7 @@ TILE_GET_INFO_MEMBER(tetrisp2_state::get_tile_info_bg)
|
||||
0);
|
||||
}
|
||||
|
||||
void tetrisp2_state::tetrisp2_vram_bg_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
void tetrisp2_state::vram_bg_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
{
|
||||
COMBINE_DATA(&m_vram_bg[offset]);
|
||||
m_tilemap_bg->mark_tile_dirty(offset/2);
|
||||
@ -153,7 +153,7 @@ TILE_GET_INFO_MEMBER(tetrisp2_state::get_tile_info_fg)
|
||||
0);
|
||||
}
|
||||
|
||||
void tetrisp2_state::tetrisp2_vram_fg_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
void tetrisp2_state::vram_fg_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
{
|
||||
// VJ and Stepping Stage write to the upper byte here to display ASCII text,
|
||||
// other usages in those games outside of ASCII text write a full 16-bit value.
|
||||
@ -168,73 +168,73 @@ void tetrisp2_state::tetrisp2_vram_fg_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
|
||||
TILE_GET_INFO_MEMBER(tetrisp2_state::get_tile_info_rot)
|
||||
{
|
||||
u16 code_hi = m_vram_rot[ 2 * tile_index + 0];
|
||||
u16 code_lo = m_vram_rot[ 2 * tile_index + 1];
|
||||
u16 code_hi = m_vram_rot[2 * tile_index + 0];
|
||||
u16 code_lo = m_vram_rot[2 * tile_index + 1];
|
||||
tileinfo.set(1,
|
||||
code_hi,
|
||||
code_lo & 0xf,
|
||||
0);
|
||||
}
|
||||
|
||||
void tetrisp2_state::tetrisp2_vram_rot_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
void tetrisp2_state::vram_rot_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
{
|
||||
COMBINE_DATA(&m_vram_rot[offset]);
|
||||
m_tilemap_rot->mark_tile_dirty(offset/2);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(rocknms_state::get_tile_info_rocknms_sub_bg)
|
||||
TILE_GET_INFO_MEMBER(rocknms_state::get_tile_info_sub_bg)
|
||||
{
|
||||
u16 code_hi = m_rocknms_sub_vram_bg[ 2 * tile_index + 0];
|
||||
u16 code_lo = m_rocknms_sub_vram_bg[ 2 * tile_index + 1];
|
||||
u16 code_hi = m_sub_vram_bg[2 * tile_index + 0];
|
||||
u16 code_lo = m_sub_vram_bg[2 * tile_index + 1];
|
||||
tileinfo.set(0,
|
||||
code_hi,
|
||||
code_lo & 0xf,
|
||||
0);
|
||||
}
|
||||
|
||||
void rocknms_state::rocknms_sub_vram_bg_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
void rocknms_state::sub_vram_bg_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
{
|
||||
COMBINE_DATA(&m_rocknms_sub_vram_bg[offset]);
|
||||
COMBINE_DATA(&m_sub_vram_bg[offset]);
|
||||
m_tilemap_sub_bg->mark_tile_dirty(offset/2);
|
||||
}
|
||||
|
||||
|
||||
TILE_GET_INFO_MEMBER(rocknms_state::get_tile_info_rocknms_sub_fg)
|
||||
TILE_GET_INFO_MEMBER(rocknms_state::get_tile_info_sub_fg)
|
||||
{
|
||||
u16 code_hi = m_rocknms_sub_vram_fg[ 2 * tile_index + 0];
|
||||
u16 code_lo = m_rocknms_sub_vram_fg[ 2 * tile_index + 1];
|
||||
u16 code_hi = m_sub_vram_fg[2 * tile_index + 0];
|
||||
u16 code_lo = m_sub_vram_fg[2 * tile_index + 1];
|
||||
tileinfo.set(2,
|
||||
code_hi,
|
||||
code_lo & 0xf,
|
||||
0);
|
||||
}
|
||||
|
||||
void rocknms_state::rocknms_sub_vram_fg_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
void rocknms_state::sub_vram_fg_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
{
|
||||
COMBINE_DATA(&m_rocknms_sub_vram_fg[offset]);
|
||||
COMBINE_DATA(&m_sub_vram_fg[offset]);
|
||||
m_tilemap_sub_fg->mark_tile_dirty(offset/2);
|
||||
}
|
||||
|
||||
|
||||
TILE_GET_INFO_MEMBER(rocknms_state::get_tile_info_rocknms_sub_rot)
|
||||
TILE_GET_INFO_MEMBER(rocknms_state::get_tile_info_sub_rot)
|
||||
{
|
||||
u16 code_hi = m_rocknms_sub_vram_rot[ 2 * tile_index + 0];
|
||||
u16 code_lo = m_rocknms_sub_vram_rot[ 2 * tile_index + 1];
|
||||
u16 code_hi = m_sub_vram_rot[2 * tile_index + 0];
|
||||
u16 code_lo = m_sub_vram_rot[2 * tile_index + 1];
|
||||
tileinfo.set(1,
|
||||
code_hi,
|
||||
code_lo & 0xf,
|
||||
0);
|
||||
}
|
||||
|
||||
void rocknms_state::rocknms_sub_vram_rot_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
void rocknms_state::sub_vram_rot_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
{
|
||||
COMBINE_DATA(&m_rocknms_sub_vram_rot[offset]);
|
||||
COMBINE_DATA(&m_sub_vram_rot[offset]);
|
||||
m_tilemap_sub_rot->mark_tile_dirty(offset/2);
|
||||
}
|
||||
|
||||
|
||||
|
||||
VIDEO_START_MEMBER(tetrisp2_state,tetrisp2)
|
||||
void tetrisp2_state::video_start()
|
||||
{
|
||||
m_tilemap_bg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tetrisp2_state::get_tile_info_bg)), TILEMAP_SCAN_ROWS, 16,16, NX_0,NY_0);
|
||||
m_tilemap_fg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tetrisp2_state::get_tile_info_fg)), TILEMAP_SCAN_ROWS, 8,8, NX_1,NY_1);
|
||||
@ -246,23 +246,22 @@ VIDEO_START_MEMBER(tetrisp2_state,tetrisp2)
|
||||
// should be smaller and mirrored like m32 I guess
|
||||
m_priority = std::make_unique<u8[]>(0x40000);
|
||||
|
||||
save_item(NAME(m_rot_ofsx));
|
||||
save_item(NAME(m_rot_ofsy));
|
||||
save_pointer(NAME(m_priority), 0x40000);
|
||||
}
|
||||
|
||||
VIDEO_START_MEMBER(tetrisp2_state,nndmseal)
|
||||
void nndmseal_state::video_start()
|
||||
{
|
||||
VIDEO_START_CALL_MEMBER( tetrisp2 );
|
||||
tetrisp2_state::video_start();
|
||||
m_tilemap_bg->set_scrolldx(-4,-4);
|
||||
|
||||
m_bank_hi = 0;
|
||||
m_bank_lo = 0;
|
||||
}
|
||||
|
||||
VIDEO_START_MEMBER(tetrisp2_state,rockntread)
|
||||
void rockn_state::video_start()
|
||||
{
|
||||
m_tilemap_bg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tetrisp2_state::get_tile_info_bg)), TILEMAP_SCAN_ROWS, 16,16, 256,16); // rockn ms(main),1,2,3,4
|
||||
m_tilemap_fg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tetrisp2_state::get_tile_info_fg)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
|
||||
m_tilemap_rot = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(tetrisp2_state::get_tile_info_rot)), TILEMAP_SCAN_ROWS, 16,16, 128,128);
|
||||
m_tilemap_bg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rockn_state::get_tile_info_bg)), TILEMAP_SCAN_ROWS, 16,16, 256,16); // rockn ms(main),1,2,3,4
|
||||
m_tilemap_fg = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rockn_state::get_tile_info_fg)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
|
||||
m_tilemap_rot = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rockn_state::get_tile_info_rot)), TILEMAP_SCAN_ROWS, 16,16, 128,128);
|
||||
|
||||
m_tilemap_bg->set_transparent_pen(0);
|
||||
m_tilemap_fg->set_transparent_pen(0);
|
||||
@ -276,14 +275,13 @@ VIDEO_START_MEMBER(tetrisp2_state,rockntread)
|
||||
save_pointer(NAME(m_priority), 0x40000);
|
||||
}
|
||||
|
||||
|
||||
VIDEO_START_MEMBER(rocknms_state,rocknms)
|
||||
void rocknms_state::video_start()
|
||||
{
|
||||
VIDEO_START_CALL_MEMBER( rockntread );
|
||||
rockn_state::video_start();
|
||||
|
||||
m_tilemap_sub_bg = &machine().tilemap().create(*m_sub_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rocknms_state::get_tile_info_rocknms_sub_bg)), TILEMAP_SCAN_ROWS, 16,16, 32,256);
|
||||
m_tilemap_sub_fg = &machine().tilemap().create(*m_sub_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rocknms_state::get_tile_info_rocknms_sub_fg)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
|
||||
m_tilemap_sub_rot = &machine().tilemap().create(*m_sub_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rocknms_state::get_tile_info_rocknms_sub_rot)), TILEMAP_SCAN_ROWS, 16,16, 128,128);
|
||||
m_tilemap_sub_bg = &machine().tilemap().create(*m_sub_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rocknms_state::get_tile_info_sub_bg)), TILEMAP_SCAN_ROWS, 16,16, 32,256);
|
||||
m_tilemap_sub_fg = &machine().tilemap().create(*m_sub_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rocknms_state::get_tile_info_sub_fg)), TILEMAP_SCAN_ROWS, 8,8, 64,64);
|
||||
m_tilemap_sub_rot = &machine().tilemap().create(*m_sub_gfxdecode, tilemap_get_info_delegate(*this, FUNC(rocknms_state::get_tile_info_sub_rot)), TILEMAP_SCAN_ROWS, 16,16, 128,128);
|
||||
|
||||
m_tilemap_sub_bg->set_transparent_pen(0);
|
||||
m_tilemap_sub_fg->set_transparent_pen(0);
|
||||
@ -390,24 +388,20 @@ static void tetrisp2_draw_sprites(BitmapClass &bitmap, bitmap_ind8 &bitmap_pri,
|
||||
|
||||
u32 tetrisp2_state::screen_update_tetrisp2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int asc_pri;
|
||||
int scr_pri;
|
||||
int rot_pri;
|
||||
|
||||
/* Black background color */
|
||||
bitmap.fill(0, cliprect);
|
||||
screen.priority().fill(0);
|
||||
|
||||
m_tilemap_bg->set_scrollx(0, (((m_scroll_bg[ 0 ] + 0x0014) + m_scroll_bg[ 2 ] ) & 0xffff));
|
||||
m_tilemap_bg->set_scrolly(0, (((m_scroll_bg[ 3 ] + 0x0000) + m_scroll_bg[ 5 ] ) & 0xffff));
|
||||
m_tilemap_bg->set_scrollx(0, (((m_scroll_bg[0] + 0x0014) + m_scroll_bg[2] ) & 0xffff));
|
||||
m_tilemap_bg->set_scrolly(0, (((m_scroll_bg[3] + 0x0000) + m_scroll_bg[5] ) & 0xffff));
|
||||
|
||||
m_tilemap_fg->set_scrollx(0, m_scroll_fg[ 2 ]);
|
||||
m_tilemap_fg->set_scrolly(0, m_scroll_fg[ 5 ]);
|
||||
m_tilemap_fg->set_scrollx(0, m_scroll_fg[2]);
|
||||
m_tilemap_fg->set_scrolly(0, m_scroll_fg[5]);
|
||||
|
||||
m_tilemap_rot->set_scrollx(0, (m_rotregs[ 0 ] - m_rot_ofsx));
|
||||
m_tilemap_rot->set_scrolly(0, (m_rotregs[ 2 ] - m_rot_ofsy));
|
||||
m_tilemap_rot->set_scrollx(0, (m_rotregs[0] - m_rot_ofsx));
|
||||
m_tilemap_rot->set_scrolly(0, (m_rotregs[2] - m_rot_ofsy));
|
||||
|
||||
asc_pri = scr_pri = rot_pri = 0;
|
||||
int asc_pri = 0, scr_pri = 0, rot_pri = 0;
|
||||
|
||||
if((m_priority[0x2b00 / 2] & 0x00ff) == 0x0034)
|
||||
asc_pri++;
|
||||
@ -450,26 +444,22 @@ u32 tetrisp2_state::screen_update_tetrisp2(screen_device &screen, bitmap_ind16 &
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 tetrisp2_state::screen_update_rockntread(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
u32 rockn_state::screen_update_rockntread(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int asc_pri;
|
||||
int scr_pri;
|
||||
int rot_pri;
|
||||
|
||||
/* Black background color */
|
||||
bitmap.fill(0, cliprect);
|
||||
screen.priority().fill(0);
|
||||
|
||||
m_tilemap_bg->set_scrollx(0, (((m_scroll_bg[ 0 ] + 0x0014) + m_scroll_bg[ 2 ] ) & 0xffff));
|
||||
m_tilemap_bg->set_scrolly(0, (((m_scroll_bg[ 3 ] + 0x0000) + m_scroll_bg[ 5 ] ) & 0xffff));
|
||||
m_tilemap_bg->set_scrollx(0, (((m_scroll_bg[0] + 0x0014) + m_scroll_bg[2] ) & 0xffff));
|
||||
m_tilemap_bg->set_scrolly(0, (((m_scroll_bg[3] + 0x0000) + m_scroll_bg[5] ) & 0xffff));
|
||||
|
||||
m_tilemap_fg->set_scrollx(0, m_scroll_fg[ 2 ]);
|
||||
m_tilemap_fg->set_scrolly(0, m_scroll_fg[ 5 ]);
|
||||
m_tilemap_fg->set_scrollx(0, m_scroll_fg[2]);
|
||||
m_tilemap_fg->set_scrolly(0, m_scroll_fg[5]);
|
||||
|
||||
m_tilemap_rot->set_scrollx(0, (m_rotregs[ 0 ] - m_rot_ofsx));
|
||||
m_tilemap_rot->set_scrolly(0, (m_rotregs[ 2 ] - m_rot_ofsy));
|
||||
m_tilemap_rot->set_scrollx(0, (m_rotregs[0] - m_rot_ofsx));
|
||||
m_tilemap_rot->set_scrolly(0, (m_rotregs[2] - m_rot_ofsy));
|
||||
|
||||
asc_pri = scr_pri = rot_pri = 0;
|
||||
int asc_pri = 0, scr_pri = 0, rot_pri = 0;
|
||||
|
||||
if((m_priority[0x2b00 / 2] & 0x00ff) == 0x0034)
|
||||
asc_pri++;
|
||||
@ -515,35 +505,31 @@ u32 tetrisp2_state::screen_update_rockntread(screen_device &screen, bitmap_ind16
|
||||
|
||||
|
||||
|
||||
u32 rocknms_state::screen_update_rocknms_left(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
||||
u32 rocknms_state::screen_update_top(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int asc_pri;
|
||||
int scr_pri;
|
||||
int rot_pri;
|
||||
|
||||
m_tilemap_sub_bg->set_scrollx(0, m_rocknms_sub_scroll_bg[ 2 ] + 0x000);
|
||||
m_tilemap_sub_bg->set_scrolly(0, m_rocknms_sub_scroll_bg[ 5 ] + 0x000);
|
||||
m_tilemap_sub_fg->set_scrollx(0, m_rocknms_sub_scroll_fg[ 2 ] + 0x000);
|
||||
m_tilemap_sub_fg->set_scrolly(0, m_rocknms_sub_scroll_fg[ 5 ] + 0x000);
|
||||
m_tilemap_sub_rot->set_scrollx(0, m_rocknms_sub_rotregs[ 0 ] + 0x400);
|
||||
m_tilemap_sub_rot->set_scrolly(0, m_rocknms_sub_rotregs[ 2 ] + 0x400);
|
||||
m_tilemap_sub_bg->set_scrollx(0, m_sub_scroll_bg[2] + 0x000);
|
||||
m_tilemap_sub_bg->set_scrolly(0, m_sub_scroll_bg[5] + 0x000);
|
||||
m_tilemap_sub_fg->set_scrollx(0, m_sub_scroll_fg[2] + 0x000);
|
||||
m_tilemap_sub_fg->set_scrolly(0, m_sub_scroll_fg[5] + 0x000);
|
||||
m_tilemap_sub_rot->set_scrollx(0, m_sub_rotregs[0] + 0x400);
|
||||
m_tilemap_sub_rot->set_scrolly(0, m_sub_rotregs[2] + 0x400);
|
||||
|
||||
bitmap.fill(m_palette->pen(0x0000), cliprect);
|
||||
screen.priority().fill(0, cliprect);
|
||||
|
||||
asc_pri = scr_pri = rot_pri = 0;
|
||||
int asc_pri = 0, scr_pri = 0, rot_pri = 0;
|
||||
|
||||
if((m_rocknms_sub_priority[0x2b00 / 2] & 0x00ff) == 0x0034)
|
||||
if((m_sub_priority[0x2b00 / 2] & 0x00ff) == 0x0034)
|
||||
asc_pri++;
|
||||
else
|
||||
rot_pri++;
|
||||
|
||||
if((m_rocknms_sub_priority[0x2e00 / 2] & 0x00ff) == 0x0034)
|
||||
if((m_sub_priority[0x2e00 / 2] & 0x00ff) == 0x0034)
|
||||
asc_pri++;
|
||||
else
|
||||
scr_pri++;
|
||||
|
||||
if((m_rocknms_sub_priority[0x3a00 / 2] & 0x00ff) == 0x000c)
|
||||
if((m_sub_priority[0x3a00 / 2] & 0x00ff) == 0x000c)
|
||||
scr_pri++;
|
||||
else
|
||||
rot_pri++;
|
||||
@ -570,29 +556,25 @@ u32 rocknms_state::screen_update_rocknms_left(screen_device &screen, bitmap_rgb3
|
||||
m_tilemap_sub_fg->draw(screen, bitmap, cliprect, 0, 1 << 2);
|
||||
|
||||
tetrisp2_draw_sprites(bitmap, screen.priority(), cliprect, m_priority.get(),
|
||||
m_spriteram2, m_spriteram2.bytes(), m_rocknms_sub_sprite);
|
||||
m_spriteram2, m_spriteram2.bytes(), m_sub_sprite);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 rocknms_state::screen_update_rocknms_right(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
||||
u32 rocknms_state::screen_update_bottom(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int asc_pri;
|
||||
int scr_pri;
|
||||
int rot_pri;
|
||||
|
||||
m_tilemap_bg->set_scrollx(0, m_scroll_bg[ 2 ] + 0x000);
|
||||
m_tilemap_bg->set_scrolly(0, m_scroll_bg[ 5 ] + 0x000);
|
||||
m_tilemap_fg->set_scrollx(0, m_scroll_fg[ 2 ] + 0x000);
|
||||
m_tilemap_fg->set_scrolly(0, m_scroll_fg[ 5 ] + 0x000);
|
||||
m_tilemap_rot->set_scrollx(0, m_rotregs[ 0 ] + 0x400);
|
||||
m_tilemap_rot->set_scrolly(0, m_rotregs[ 2 ] + 0x400);
|
||||
m_tilemap_bg->set_scrollx(0, m_scroll_bg[2] + 0x000);
|
||||
m_tilemap_bg->set_scrolly(0, m_scroll_bg[5] + 0x000);
|
||||
m_tilemap_fg->set_scrollx(0, m_scroll_fg[2] + 0x000);
|
||||
m_tilemap_fg->set_scrolly(0, m_scroll_fg[5] + 0x000);
|
||||
m_tilemap_rot->set_scrollx(0, m_rotregs[0] + 0x400);
|
||||
m_tilemap_rot->set_scrolly(0, m_rotregs[2] + 0x400);
|
||||
|
||||
/* Black background color */
|
||||
bitmap.fill(m_palette->pen(0x0000), cliprect);
|
||||
screen.priority().fill(0, cliprect);
|
||||
|
||||
asc_pri = scr_pri = rot_pri = 0;
|
||||
int asc_pri = 0, scr_pri = 0, rot_pri = 0;
|
||||
|
||||
if((m_priority[0x2b00 / 2] & 0x00ff) == 0x0034)
|
||||
asc_pri++;
|
||||
@ -766,19 +748,19 @@ void stepstag_state::convert_yuv422_to_rgb888(palette_device *paldev, u16 *palra
|
||||
paldev->set_pen_color(offset/4, r, g, b);
|
||||
}
|
||||
|
||||
void stepstag_state::stepstag_palette_left_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
void stepstag_state::palette_left_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
{
|
||||
COMBINE_DATA(&m_vj_paletteram_l[offset]);
|
||||
convert_yuv422_to_rgb888(m_vj_palette_l,m_vj_paletteram_l,offset);
|
||||
}
|
||||
|
||||
void stepstag_state::stepstag_palette_mid_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
void stepstag_state::palette_mid_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
{
|
||||
COMBINE_DATA(&m_vj_paletteram_m[offset]);
|
||||
convert_yuv422_to_rgb888(m_vj_palette_m,m_vj_paletteram_m,offset);
|
||||
}
|
||||
|
||||
void stepstag_state::stepstag_palette_right_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
void stepstag_state::palette_right_w(offs_t offset, u16 data, u16 mem_mask)
|
||||
{
|
||||
COMBINE_DATA(&m_vj_paletteram_r[offset]);
|
||||
convert_yuv422_to_rgb888(m_vj_palette_r,m_vj_paletteram_r,offset);
|
||||
|
Loading…
Reference in New Issue
Block a user