summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/video/cave.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/video/cave.cpp')
-rw-r--r--src/mame/video/cave.cpp97
1 files changed, 40 insertions, 57 deletions
diff --git a/src/mame/video/cave.cpp b/src/mame/video/cave.cpp
index 4850caf1e1b..a0273c9a098 100644
--- a/src/mame/video/cave.cpp
+++ b/src/mame/video/cave.cpp
@@ -68,7 +68,7 @@ Note: if MAME_DEBUG is defined, pressing:
***************************************************************************/
-PALETTE_INIT_MEMBER(cave_state,cave)
+void cave_state::palette_init_cave(palette_device &palette)
{
for (int chip = 0; chip < 4; chip++)
{
@@ -84,7 +84,7 @@ PALETTE_INIT_MEMBER(cave_state,cave)
}
}
-PALETTE_INIT_MEMBER(cave_state,dfeveron)
+void cave_state::palette_init_dfeveron(palette_device &palette)
{
int color, pen;
@@ -93,34 +93,18 @@ PALETTE_INIT_MEMBER(cave_state,dfeveron)
multiplies the color code by $100 (for consistency).
That's why we need this function. */
- PALETTE_INIT_NAME(cave)(palette);
+ palette_init_cave(palette);
for (color = 0; color < 0x40; color++)
for (pen = 0; pen < 0x10; pen++)
m_palette_map[0][(color << 8) | pen] = (color << 4) | pen;
}
-PALETTE_INIT_MEMBER(cave_state,ddonpach)
+void cave_state::palette_init_mazinger(palette_device &palette)
{
int color, pen;
- /* Fill the 8000-83ff range ($40 color codes * $10 pens) for
- layers 0 & 1 which are 4 bits deep rather than 8 bits deep
- like layer 2, but use the first 16 color of every 256 for
- any given color code. */
-
- PALETTE_INIT_NAME(cave)(palette);
-
- for (color = 0; color < 0x40; color++)
- for (pen = 0; pen < 0x10; pen++)
- m_palette_map[0][0x8000 | (color << 4) | pen] = 0x4000 | (color << 8) | pen;
-}
-
-PALETTE_INIT_MEMBER(cave_state,mazinger)
-{
- int color, pen;
-
- PALETTE_INIT_NAME(cave)(palette);
+ palette_init_cave(palette);
/* sprites (encrypted) are 4 bit deep */
for (color = 0; color < 0x40; color++)
@@ -134,11 +118,11 @@ PALETTE_INIT_MEMBER(cave_state,mazinger)
m_palette_map[0][0x4400 + ((color << 6) | pen)] = 0x400 | ((color & 0x0f) << 6) | pen;
}
-PALETTE_INIT_MEMBER(cave_state,sailormn)
+void cave_state::palette_init_sailormn(palette_device &palette)
{
int color, pen;
- PALETTE_INIT_NAME(cave)(palette);
+ palette_init_cave(palette);
/* sprites (encrypted) are 4 bit deep */
for (color = 0; color < 0x40; color++)
@@ -152,11 +136,11 @@ PALETTE_INIT_MEMBER(cave_state,sailormn)
m_palette_map[0][0x4c00 + ((color << 6) | pen)] = 0xc00 | ((color & 0x0f) << 6) | pen;
}
-PALETTE_INIT_MEMBER(cave_state,pwrinst2)
+void cave_state::palette_init_pwrinst2(palette_device &palette)
{
int color, pen;
- PALETTE_INIT_NAME(cave)(palette);
+ palette_init_cave(palette);
for (color = 0; color < 0x80; color++)
for (pen = 0; pen < 0x10; pen++)
@@ -166,11 +150,11 @@ PALETTE_INIT_MEMBER(cave_state,pwrinst2)
m_palette_map[0][pen] = pen - 0x8000;
}
-PALETTE_INIT_MEMBER(cave_state,korokoro)
+void cave_state::palette_init_korokoro(palette_device &palette)
{
int color, pen;
- PALETTE_INIT_NAME(cave)(palette);
+ palette_init_cave(palette);
for (color = 0; color < 0x40; color++)
for (pen = 0; pen < 0x10; pen++)
@@ -302,7 +286,7 @@ TILE_GET_INFO_MEMBER(cave_state::sailormn_get_tile_info_2)
***************************************************************************/
-void cave_state::cave_vh_start( int num )
+void cave_state::vh_start( int num )
{
assert(m_palette_map != nullptr);
@@ -360,7 +344,7 @@ void cave_state::cave_vh_start( int num )
break;
}
- sprite_init_cave();
+ sprite_init();
m_layers_offs_x = 0x13;
m_layers_offs_y = -0x12;
@@ -388,15 +372,15 @@ void cave_state::cave_vh_start( int num )
}
}
-VIDEO_START_MEMBER(cave_state,cave_1_layer){ cave_vh_start(1); }
-VIDEO_START_MEMBER(cave_state,cave_2_layers){ cave_vh_start(2); }
-VIDEO_START_MEMBER(cave_state,cave_3_layers){ cave_vh_start(3); }
-VIDEO_START_MEMBER(cave_state,cave_4_layers){ cave_vh_start(4); }
+VIDEO_START_MEMBER(cave_state,cave_1_layer){ vh_start(1); }
+VIDEO_START_MEMBER(cave_state,cave_2_layers){ vh_start(2); }
+VIDEO_START_MEMBER(cave_state,cave_3_layers){ vh_start(3); }
+VIDEO_START_MEMBER(cave_state,cave_4_layers){ vh_start(4); }
VIDEO_START_MEMBER(cave_state,sailormn_3_layers)
{
- cave_vh_start(2);
+ vh_start(2);
/* Layer 2 (8x8) needs to be handled differently */
m_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cave_state::sailormn_get_tile_info_2),this), TILEMAP_SCAN_ROWS, 8, 8, 512 / 8, 512 / 8 );
@@ -646,7 +630,7 @@ void cave_state::get_sprite_info_donpachi(int chip)
}
-void cave_state::sprite_init_cave()
+void cave_state::sprite_init()
{
if (m_spritetype[0] == 0 || m_spritetype[0] == 2) // most of the games
{
@@ -684,11 +668,9 @@ void cave_state::sprite_init_cave()
save_item(NAME(m_blit.clip_right));
save_item(NAME(m_blit.clip_top));
save_item(NAME(m_blit.clip_bottom));
-
- machine().save().register_postload(save_prepost_delegate(FUNC(cave_state::cave_get_sprite_info_all), this));
}
-void cave_state::cave_sprite_check(int chip, screen_device &screen, const rectangle &clip)
+void cave_state::sprite_check(int chip, screen_device &screen, const rectangle &clip)
{
{ /* set clip */
int left = clip.min_x;
@@ -764,7 +746,7 @@ void cave_state::cave_sprite_check(int chip, screen_device &screen, const rectan
}
}
-void cave_state::do_blit_zoom32_cave( int chip, const sprite_cave *sprite )
+void cave_state::do_blit_zoom32( int chip, const sprite_cave *sprite )
{
/* assumes SPRITE_LIST_RAW_DATA flag is set */
int x1, x2, y1, y2, dx, dy;
@@ -896,7 +878,7 @@ void cave_state::do_blit_zoom32_cave( int chip, const sprite_cave *sprite )
}
-void cave_state::do_blit_zoom32_cave_zb( int chip, const sprite_cave *sprite )
+void cave_state::do_blit_zoom32_zb( int chip, const sprite_cave *sprite )
{
/* assumes SPRITE_LIST_RAW_DATA flag is set */
int x1, x2, y1, y2, dx, dy;
@@ -1031,7 +1013,7 @@ void cave_state::do_blit_zoom32_cave_zb( int chip, const sprite_cave *sprite )
}
}
-void cave_state::do_blit_32_cave( int chip, const sprite_cave *sprite )
+void cave_state::do_blit_32( int chip, const sprite_cave *sprite )
{
/* assumes SPRITE_LIST_RAW_DATA flag is set */
int x1, x2, y1, y2, dx, dy;
@@ -1126,7 +1108,7 @@ void cave_state::do_blit_32_cave( int chip, const sprite_cave *sprite )
}
-void cave_state::do_blit_32_cave_zb( int chip, const sprite_cave *sprite )
+void cave_state::do_blit_32_zb( int chip, const sprite_cave *sprite )
{
/* assumes SPRITE_LIST_RAW_DATA flag is set */
int x1, x2, y1, y2, dx, dy;
@@ -1236,9 +1218,9 @@ void cave_state::sprite_draw_cave( int chip, int priority )
{
const sprite_cave *sprite = m_sprite_table[chip][priority][i++];
if ((sprite->tile_width == sprite->total_width) && (sprite->tile_height == sprite->total_height))
- do_blit_32_cave(chip, sprite);
+ do_blit_32(chip, sprite);
else
- do_blit_zoom32_cave(chip, sprite);
+ do_blit_zoom32(chip, sprite);
}
}
@@ -1249,9 +1231,9 @@ void cave_state::sprite_draw_cave_zbuf( int chip, int priority )
{
const sprite_cave *sprite = m_sprite_table[chip][priority][i++];
if ((sprite->tile_width == sprite->total_width) && (sprite->tile_height == sprite->total_height))
- do_blit_32_cave_zb(chip, sprite);
+ do_blit_32_zb(chip, sprite);
else
- do_blit_zoom32_cave_zb(chip, sprite);
+ do_blit_zoom32_zb(chip, sprite);
}
}
@@ -1259,14 +1241,14 @@ void cave_state::sprite_draw_donpachi( int chip, int priority )
{
int i = 0;
while (m_sprite_table[chip][priority][i])
- do_blit_32_cave(chip, m_sprite_table[chip][priority][i++]);
+ do_blit_32(chip, m_sprite_table[chip][priority][i++]);
}
void cave_state::sprite_draw_donpachi_zbuf( int chip, int priority )
{
int i = 0;
while (m_sprite_table[chip][priority][i])
- do_blit_32_cave_zb(chip, m_sprite_table[chip][priority][i++]);
+ do_blit_32_zb(chip, m_sprite_table[chip][priority][i++]);
}
@@ -1448,7 +1430,7 @@ inline void cave_state::tilemap_draw( int chip,
}
-uint32_t cave_state::screen_update_cave(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+uint32_t cave_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
int pri, pri2, GFX;
int layers_ctrl = -1;
@@ -1528,7 +1510,7 @@ uint32_t cave_state::screen_update_cave(screen_device &screen, bitmap_rgb32 &bit
}
#endif
- cave_sprite_check(0, screen, cliprect);
+ sprite_check(0, screen, cliprect);
bitmap.fill(m_palette->pen_color(m_background_pen), cliprect);
@@ -1563,12 +1545,13 @@ uint32_t cave_state::screen_update_cave(screen_device &screen, bitmap_rgb32 &bit
/**************************************************************/
-void cave_state::cave_get_sprite_info(int chip)
+void cave_state::get_sprite_info(int chip)
{
- int spriteram_bankmax = m_spriteram[chip].bytes() / 0x4000;
if (m_videoregs[chip] == nullptr)
return;
+ int spriteram_bankmax = m_spriteram[chip].bytes() / 0x4000;
+
if (m_kludge == 3) /* mazinger metmqstr */
{
if (machine().video().skip_this_frame() == 0)
@@ -1587,20 +1570,20 @@ void cave_state::cave_get_sprite_info(int chip)
}
}
}
-void cave_state::cave_get_sprite_info_all()
+void cave_state::device_post_load()
{
for (int chip = 0; chip < 4; chip++)
- cave_get_sprite_info(chip);
+ get_sprite_info(chip);
}
// Poka Poka Satan: 3 screens * (1 Sprite chip + 1 Tilemap chip)
-PALETTE_INIT_MEMBER(cave_state,ppsatan)
+void cave_state::palette_init_ppsatan(palette_device &palette)
{
int color, pen;
- PALETTE_INIT_NAME(cave)(palette);
+ palette_init_cave(palette);
for (int chip = 0; chip < 3; chip++)
{
@@ -1630,7 +1613,7 @@ uint32_t cave_state::screen_update_ppsatan_core(screen_device &screen, bitmap_rg
m_tilemap[chip]->mark_all_dirty();
m_old_tiledim[chip] = m_tiledim[chip];
- cave_sprite_check(chip, screen, cliprect);
+ sprite_check(chip, screen, cliprect);
bitmap.fill(m_palette->pen_color(m_background_pen), cliprect);