Merge pull request #2435 from DavidHaywood/200617

m62 proposed cleanups.
This commit is contained in:
R. Belmont 2017-07-04 12:17:09 -04:00 committed by GitHub
commit 350c6d68a2
3 changed files with 590 additions and 455 deletions

File diff suppressed because it is too large Load Diff

View File

@ -12,9 +12,17 @@ public:
m_m62_tileram(*this, "m62_tileram"),
m_m62_textram(*this, "m62_textram"),
m_scrollram(*this, "scrollram"),
m_sprite_height_prom(*this, "spr_height_prom"),
m_sprite_color_proms(*this, "spr_color_proms"),
m_chr_color_proms(*this, "chr_color_proms"),
m_fg_color_proms(*this, "fg_color_proms"),
m_maincpu(*this, "maincpu"),
m_gfxdecode(*this, "gfxdecode"),
m_palette(*this, "palette"),
m_fg_decode(*this, "fg_decode"),
m_spr_decode(*this, "spr_decode"),
m_chr_decode(*this, "chr_decode"),
m_fg_palette(*this, "fg_palette"),
m_spr_palette(*this, "spr_palette"),
m_chr_palette(*this, "chr_palette"),
m_audio(*this, "irem_audio")
{ }
@ -29,8 +37,10 @@ public:
tilemap_t* m_bg_tilemap;
tilemap_t* m_fg_tilemap;
int m_flipscreen;
const uint8_t *m_sprite_height_prom;
required_region_ptr<uint8_t> m_sprite_height_prom;
required_region_ptr<uint8_t> m_sprite_color_proms;
required_region_ptr<uint8_t> m_chr_color_proms;
optional_region_ptr<uint8_t> m_fg_color_proms;
int32_t m_m62_background_hscroll;
int32_t m_m62_background_vscroll;
uint8_t m_kidniki_background_bank;
@ -88,41 +98,48 @@ public:
TILE_GET_INFO_MEMBER(get_youjyudn_bg_tile_info);
TILE_GET_INFO_MEMBER(get_youjyudn_fg_tile_info);
TILE_GET_INFO_MEMBER(get_horizon_bg_tile_info);
DECLARE_MACHINE_START(battroad);
void machine_init_save();
virtual void machine_start() override;
virtual void machine_reset() override;
virtual void video_start() override;
DECLARE_PALETTE_INIT(m62);
DECLARE_PALETTE_INIT(m62_spr);
DECLARE_PALETTE_INIT(m62_chr);
DECLARE_PALETTE_INIT(m62_lotlot_fg);
DECLARE_PALETTE_INIT(m62_battroad_fg);
DECLARE_VIDEO_START(kungfum);
DECLARE_VIDEO_START(battroad);
DECLARE_PALETTE_INIT(battroad);
DECLARE_VIDEO_START(ldrun2);
DECLARE_VIDEO_START(ldrun4);
DECLARE_VIDEO_START(lotlot);
DECLARE_PALETTE_INIT(lotlot);
DECLARE_VIDEO_START(kidniki);
DECLARE_VIDEO_START(spelunkr);
DECLARE_VIDEO_START(spelunk2);
DECLARE_PALETTE_INIT(spelunk2);
DECLARE_VIDEO_START(youjyudn);
DECLARE_VIDEO_START(horizon);
uint32_t screen_update_ldrun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
uint32_t screen_update_kungfum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
uint32_t screen_update_battroad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
uint32_t screen_update_ldrun3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
uint32_t screen_update_ldrun4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
uint32_t screen_update_lotlot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
uint32_t screen_update_kidniki(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
uint32_t screen_update_spelunkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
uint32_t screen_update_spelunk2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
uint32_t screen_update_youjyudn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
uint32_t screen_update_horizon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void m62_amplify_contrast(palette_t *palette, uint32_t numcolors);
uint32_t screen_update_ldrun(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
uint32_t screen_update_kungfum(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
uint32_t screen_update_battroad(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
uint32_t screen_update_ldrun3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
uint32_t screen_update_ldrun4(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
uint32_t screen_update_lotlot(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
uint32_t screen_update_kidniki(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
uint32_t screen_update_spelunkr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
uint32_t screen_update_spelunk2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
uint32_t screen_update_youjyudn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
uint32_t screen_update_horizon(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
void m62_amplify_contrast(bool include_fg);
void register_savestate( );
void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int colormask, int prioritymask, int priority );
void draw_sprites( bitmap_rgb32 &bitmap, const rectangle &cliprect, int colormask, int prioritymask, int priority );
void m62_start( tilemap_get_info_delegate tile_get_info, int rows, int cols, int x1, int y1, int x2, int y2 );
void m62_textlayer( tilemap_get_info_delegate tile_get_info, int rows, int cols, int x1, int y1, int x2, int y2 );
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette;
optional_device<gfxdecode_device> m_fg_decode;
required_device<gfxdecode_device> m_spr_decode;
required_device<gfxdecode_device> m_chr_decode;
optional_device<palette_device> m_fg_palette;
required_device<palette_device> m_spr_palette;
required_device<palette_device> m_chr_palette;
required_device<irem_audio_device> m_audio;
};

View File

@ -105,56 +105,22 @@ static const res_net_info battroad_char_net_info =
static const res_net_decode_info m62_tile_decode_info =
static const res_net_decode_info m62_decode_info =
{
1, /* single PROM per color */
0x000, 0x0ff, /* start/end */
/* R G B */
{ 0x000, 0x200, 0x400 }, /* offsets */
{ 0x000, 0x100, 0x200 }, /* offsets */
{ 0, 0, 0 }, /* shifts */
{ 0x0f, 0x0f, 0x0f } /* masks */
};
static const res_net_decode_info m62_sprite_decode_info =
{
1, /* single PROM per color */
0x000, 0x0ff, /* start/end */
/* R G B */
{ 0x100, 0x300, 0x500 }, /* offsets */
{ 0, 0, 0 }, /* shifts */
{ 0x0f, 0x0f, 0x0f } /* masks */
};
static const res_net_decode_info lotlot_tile_decode_info =
{
1, /* single PROM per color */
0x000, 0x17f, /* start/end */
/* R G B */
{ 0x000, 0x300, 0x600 }, /* offsets */
{ 0, 0, 0 }, /* shifts */
{ 0x0f, 0x0f, 0x0f } /* masks */
};
static const res_net_decode_info lotlot_sprite_decode_info =
{
1, /* single PROM per color */
0x000, 0x17f, /* start/end */
/* R G B */
{ 0x180, 0x480, 0x780 }, /* offsets */
{ 0, 0, 0 }, /* shifts */
{ 0x0f, 0x0f, 0x0f } /* masks */
};
static const res_net_decode_info battroad_char_decode_info =
{
1, /* single PROM per color */
0x000, 0x01f, /* start/end */
/* R G B */
{ 0x600, 0x600, 0x600 }, /* offsets */
{ 0x000, 0x000, 0x000 }, /* offsets */
{ 6, 3, 0 }, /* shifts */
{ 0x03, 0x07, 0x07 } /* masks */
};
@ -171,108 +137,80 @@ static const res_net_decode_info spelunk2_tile_decode_info =
};
static const res_net_decode_info spelunk2_sprite_decode_info =
void m62_state::m62_amplify_contrast(bool include_fg)
{
1, /* single PROM per color */
0x000, 0x0ff, /* start/end */
/* R G B */
{ 0x400, 0x500, 0x600 }, /* offsets */
{ 0, 0, 0 }, /* shifts */
{ 0x0f, 0x0f, 0x0f } /* masks */
};
palette_device* pals[3];
pals[0] = m_chr_palette;
pals[1] = m_spr_palette;
if (m_fg_palette && include_fg)
pals[2] = m_fg_palette;
else
pals[2] = 0;
void m62_state::m62_amplify_contrast(palette_t *palette, uint32_t numcolors)
{
// m62 palette is very dark, so amplify default contrast
uint32_t i, ymax=1;
if (!numcolors) numcolors = palette->num_colors();
// find maximum brightness
for (i=0;i < numcolors;i++)
for (int j = 0;j < 3;j++)
{
rgb_t rgb = palette->entry_color(i);
uint32_t y = 299 * rgb.r() + 587 * rgb.g() + 114 * rgb.b();
ymax = std::max(ymax, y);
if (pals[j])
{
// find maximum brightness
for (i = 0;i < pals[j]->palette()->num_colors();i++)
{
rgb_t rgb = pals[j]->palette()->entry_color(i);
uint32_t y = 299 * rgb.r() + 587 * rgb.g() + 114 * rgb.b();
ymax = std::max(ymax, y);
}
}
}
palette->set_contrast(255000.0/ymax);
for (int j = 0;j < 3;j++)
{
if (pals[j])
{
pals[j]->palette()->set_contrast(255000.0 / ymax);
}
}
}
PALETTE_INIT_MEMBER(m62_state, m62)
PALETTE_INIT_MEMBER(m62_state, m62_spr)
{
const uint8_t *color_prom = memregion("proms")->base();
std::vector<rgb_t> rgb;
compute_res_net_all(rgb, color_prom, m62_tile_decode_info, m62_tile_net_info);
compute_res_net_all(rgb, m_sprite_color_proms, m62_decode_info, m62_sprite_net_info);
palette.set_pen_colors(0x000, rgb);
}
compute_res_net_all(rgb, color_prom, m62_sprite_decode_info, m62_sprite_net_info);
palette.set_pen_colors(0x100, rgb);
PALETTE_INIT_MEMBER(m62_state, m62_chr)
{
std::vector<rgb_t> rgb;
compute_res_net_all(rgb, m_chr_color_proms, m62_decode_info, m62_tile_net_info);
palette.set_pen_colors(0x000, rgb);
}
m62_amplify_contrast(palette.palette(),0);
/* we'll need this at run time */
m_sprite_height_prom = color_prom + 0x600;
PALETTE_INIT_MEMBER(m62_state, m62_lotlot_fg)
{
std::vector<rgb_t> rgb;
compute_res_net_all(rgb, m_fg_color_proms, m62_decode_info, m62_tile_net_info);
palette.set_pen_colors(0x000, rgb);
}
PALETTE_INIT_MEMBER(m62_state,lotlot)
PALETTE_INIT_MEMBER(m62_state,m62_battroad_fg)
{
const uint8_t *color_prom = memregion("proms")->base();
std::vector<rgb_t> rgb;
compute_res_net_all(rgb, color_prom, lotlot_tile_decode_info, m62_tile_net_info);
palette.set_pen_colors(0x000, rgb);
compute_res_net_all(rgb, color_prom, lotlot_sprite_decode_info, m62_sprite_net_info);
palette.set_pen_colors(0x180, rgb);
m62_amplify_contrast(palette.palette(),0);
/* we'll need this at run time */
m_sprite_height_prom = color_prom + 0x900;
}
PALETTE_INIT_MEMBER(m62_state,battroad)
{
const uint8_t *color_prom = memregion("proms")->base();
std::vector<rgb_t> rgb;
// m62 palette
compute_res_net_all(rgb, color_prom, m62_tile_decode_info, m62_tile_net_info);
palette.set_pen_colors(0x000, rgb);
compute_res_net_all(rgb, color_prom, m62_sprite_decode_info, m62_sprite_net_info);
palette.set_pen_colors(0x100, rgb);
m62_amplify_contrast(palette.palette(),0x200);
// custom palette for foreground
compute_res_net_all(rgb, color_prom, battroad_char_decode_info, battroad_char_net_info);
palette.set_pen_colors(0x200, rgb);
/* we'll need this at run time */
m_sprite_height_prom = color_prom + 0x620;
std::vector<rgb_t> rgb;
compute_res_net_all(rgb, m_fg_color_proms, battroad_char_decode_info, battroad_char_net_info);
palette.set_pen_colors(0x000, rgb);
}
PALETTE_INIT_MEMBER(m62_state,spelunk2)
{
const uint8_t *color_prom = memregion("proms")->base();
std::vector<rgb_t> rgb;
compute_res_net_all(rgb, color_prom, spelunk2_tile_decode_info, m62_tile_net_info);
compute_res_net_all(rgb, m_chr_color_proms, spelunk2_tile_decode_info, m62_tile_net_info);
palette.set_pen_colors(0x000, rgb);
compute_res_net_all(rgb, color_prom, spelunk2_sprite_decode_info, m62_sprite_net_info);
palette.set_pen_colors(0x200, rgb);
m62_amplify_contrast(palette.palette(),0);
/* we'll need this at run time */
m_sprite_height_prom = color_prom + 0x700;
}
@ -341,7 +279,7 @@ WRITE8_MEMBER(m62_state::m62_textram_w)
}
void m62_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int colormask, int prioritymask, int priority )
void m62_state::draw_sprites( bitmap_rgb32 &bitmap, const rectangle &cliprect, int colormask, int prioritymask, int priority )
{
int offs;
@ -388,7 +326,7 @@ void m62_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, i
do
{
m_gfxdecode->gfx(1)->transpen(bitmap,cliprect,
m_spr_decode->gfx(0)->transpen(bitmap,cliprect,
code + i * incr,col,
flipx,flipy,
sx,sy + 16 * i,0);
@ -401,7 +339,7 @@ void m62_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, i
void m62_state::m62_start( tilemap_get_info_delegate tile_get_info, int rows, int cols, int x1, int y1, int x2, int y2 )
{
m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tile_get_info, TILEMAP_SCAN_ROWS, x1, y1, x2, y2);
m_bg_tilemap = &machine().tilemap().create(*m_chr_decode, tile_get_info, TILEMAP_SCAN_ROWS, x1, y1, x2, y2);
register_savestate();
@ -414,7 +352,7 @@ void m62_state::m62_start( tilemap_get_info_delegate tile_get_info, int rows, in
void m62_state::m62_textlayer( tilemap_get_info_delegate tile_get_info, int rows, int cols, int x1, int y1, int x2, int y2 )
{
m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tile_get_info, TILEMAP_SCAN_ROWS, x1, y1, x2, y2);
m_fg_tilemap = &machine().tilemap().create(*m_fg_decode, tile_get_info, TILEMAP_SCAN_ROWS, x1, y1, x2, y2);
if (rows != 0)
m_fg_tilemap->set_scroll_rows(rows);
@ -455,7 +393,7 @@ VIDEO_START_MEMBER(m62_state,kungfum)
m62_start(tilemap_get_info_delegate(FUNC(m62_state::get_kungfum_bg_tile_info),this), 32, 0, 8, 8, 64, 32);
}
uint32_t m62_state::screen_update_kungfum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
uint32_t m62_state::screen_update_kungfum(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
int i;
for (i = 0; i < 6; i++)
@ -499,7 +437,7 @@ void m62_state::video_start()
m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */
}
uint32_t m62_state::screen_update_ldrun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
uint32_t m62_state::screen_update_ldrun(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
m_bg_tilemap->set_scrollx(0, m_m62_background_hscroll);
m_bg_tilemap->set_scrolly(0, m_m62_background_vscroll);
@ -543,7 +481,7 @@ WRITE8_MEMBER(m62_state::ldrun3_topbottom_mask_w)
m_ldrun3_topbottom_mask = data & 1;
}
uint32_t m62_state::screen_update_ldrun3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
uint32_t m62_state::screen_update_ldrun3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
screen_update_ldrun(screen, bitmap, cliprect);
@ -553,11 +491,11 @@ uint32_t m62_state::screen_update_ldrun3(screen_device &screen, bitmap_ind16 &bi
my_cliprect.min_y = 0 * 8;
my_cliprect.max_y = 1 * 8 - 1;
bitmap.fill(m_palette->black_pen(), my_cliprect);
bitmap.fill(m_chr_palette->black_pen(), my_cliprect);
my_cliprect.min_y = 31 * 8;
my_cliprect.max_y = 32 * 8 - 1;
bitmap.fill(m_palette->black_pen(), my_cliprect);
bitmap.fill(m_chr_palette->black_pen(), my_cliprect);
}
return 0;
@ -589,7 +527,7 @@ TILE_GET_INFO_MEMBER(m62_state::get_battroad_fg_tile_info)
int color;
code = m_m62_textram[tile_index << 1];
color = m_m62_textram[(tile_index << 1) | 1];
SET_TILE_INFO_MEMBER(2, code | ((color & 0x40) << 3) | ((color & 0x10) << 4), color & 0x0f, 0);
SET_TILE_INFO_MEMBER(0, code | ((color & 0x40) << 3) | ((color & 0x10) << 4), color & 0x0f, 0);
}
VIDEO_START_MEMBER(m62_state,battroad)
@ -600,7 +538,7 @@ VIDEO_START_MEMBER(m62_state,battroad)
m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */
}
uint32_t m62_state::screen_update_battroad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
uint32_t m62_state::screen_update_battroad(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
m_bg_tilemap->set_scrollx(0, m_m62_background_hscroll);
m_bg_tilemap->set_scrolly(0, m_m62_background_vscroll);
@ -633,7 +571,7 @@ VIDEO_START_MEMBER(m62_state,ldrun4)
m62_start(tilemap_get_info_delegate(FUNC(m62_state::get_ldrun4_bg_tile_info),this), 1, 0, 8, 8, 64, 32);
}
uint32_t m62_state::screen_update_ldrun4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
uint32_t m62_state::screen_update_ldrun4(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
m_bg_tilemap->set_scrollx(0, m_m62_background_hscroll - 2);
@ -664,7 +602,7 @@ TILE_GET_INFO_MEMBER(m62_state::get_lotlot_fg_tile_info)
int color;
code = m_m62_textram[tile_index << 1];
color = m_m62_textram[(tile_index << 1) | 1];
SET_TILE_INFO_MEMBER(2, code | ((color & 0xc0) << 2), color & 0x1f, 0);
SET_TILE_INFO_MEMBER(0, code | ((color & 0xc0) << 2), color & 0x1f, 0);
}
VIDEO_START_MEMBER(m62_state,lotlot)
@ -673,7 +611,7 @@ VIDEO_START_MEMBER(m62_state,lotlot)
m62_textlayer(tilemap_get_info_delegate(FUNC(m62_state::get_lotlot_fg_tile_info),this), 1, 1, 12, 10, 32, 64);
}
uint32_t m62_state::screen_update_lotlot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
uint32_t m62_state::screen_update_lotlot(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
m_bg_tilemap->set_scrollx(0, m_m62_background_hscroll - 64);
m_bg_tilemap->set_scrolly(0, m_m62_background_vscroll + 32);
@ -723,12 +661,12 @@ TILE_GET_INFO_MEMBER(m62_state::get_kidniki_fg_tile_info)
int color;
code = m_m62_textram[tile_index << 1];
color = m_m62_textram[(tile_index << 1) | 1];
SET_TILE_INFO_MEMBER(2, code | ( ( color & 0xc0 ) << 2 ), color & 0x1f, 0);
SET_TILE_INFO_MEMBER(0, code | ( ( color & 0xc0 ) << 2 ), color & 0x1f, 0);
}
VIDEO_START_MEMBER(m62_state,kidniki)
{
m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(m62_state::get_kidniki_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap = &machine().tilemap().create(*m_chr_decode, tilemap_get_info_delegate(FUNC(m62_state::get_kidniki_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); /* split type 0 is totally transparent in front half */
m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */
@ -737,7 +675,7 @@ VIDEO_START_MEMBER(m62_state,kidniki)
m62_textlayer(tilemap_get_info_delegate(FUNC(m62_state::get_kidniki_fg_tile_info),this), 1, 1, 12, 8, 32, 64);
}
uint32_t m62_state::screen_update_kidniki(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
uint32_t m62_state::screen_update_kidniki(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
m_bg_tilemap->set_scrollx(0, m_m62_background_hscroll);
m_fg_tilemap->set_scrollx(0, -64);
@ -778,7 +716,7 @@ TILE_GET_INFO_MEMBER(m62_state::get_spelunkr_fg_tile_info)
code = m_m62_textram[tile_index << 1];
color = m_m62_textram[(tile_index << 1) | 1];
if (color & 0xe0) popmessage("fg tilemap %x %x", tile_index, color & 0xe0);
SET_TILE_INFO_MEMBER(2, code | ((color & 0x10) << 4), (color & 0x0f) | (m_spelunkr_palbank << 4), 0);
SET_TILE_INFO_MEMBER(0, code | ((color & 0x10) << 4), (color & 0x0f) | (m_spelunkr_palbank << 4), 0);
}
VIDEO_START_MEMBER(m62_state,spelunkr)
@ -787,7 +725,7 @@ VIDEO_START_MEMBER(m62_state,spelunkr)
m62_textlayer(tilemap_get_info_delegate(FUNC(m62_state::get_spelunkr_fg_tile_info),this), 1, 1, 12, 8, 32, 32);
}
uint32_t m62_state::screen_update_spelunkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
uint32_t m62_state::screen_update_spelunkr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
m_bg_tilemap->set_scrollx(0, m_m62_background_hscroll);
m_bg_tilemap->set_scrolly(0, m_m62_background_vscroll + 128);
@ -829,7 +767,7 @@ VIDEO_START_MEMBER(m62_state,spelunk2)
m62_textlayer(tilemap_get_info_delegate(FUNC(m62_state::get_spelunkr_fg_tile_info),this), 1, 1, 12, 8, 32, 32);
}
uint32_t m62_state::screen_update_spelunk2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
uint32_t m62_state::screen_update_spelunk2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
m_bg_tilemap->set_scrollx(0, m_m62_background_hscroll - 1);
m_bg_tilemap->set_scrolly(0, m_m62_background_vscroll + 128);
@ -863,7 +801,7 @@ TILE_GET_INFO_MEMBER(m62_state::get_youjyudn_fg_tile_info)
int color;
code = m_m62_textram[tile_index << 1];
color = m_m62_textram[(tile_index << 1) | 1];
SET_TILE_INFO_MEMBER(2, code | ((color & 0xc0) << 2), (color & 0x0f), 0);
SET_TILE_INFO_MEMBER(0, code | ((color & 0xc0) << 2), (color & 0x0f), 0);
}
VIDEO_START_MEMBER(m62_state,youjyudn)
@ -874,7 +812,7 @@ VIDEO_START_MEMBER(m62_state,youjyudn)
m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */
}
uint32_t m62_state::screen_update_youjyudn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
uint32_t m62_state::screen_update_youjyudn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
m_bg_tilemap->set_scrollx(0, m_m62_background_hscroll);
m_fg_tilemap->set_scrollx(0, -64);
@ -915,7 +853,7 @@ VIDEO_START_MEMBER(m62_state,horizon)
m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */
}
uint32_t m62_state::screen_update_horizon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
uint32_t m62_state::screen_update_horizon(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
int i;
for (i = 0; i < 32; i++)