summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/video/sprint8.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/video/sprint8.cpp')
-rw-r--r--src/mame/video/sprint8.cpp34
1 files changed, 13 insertions, 21 deletions
diff --git a/src/mame/video/sprint8.cpp b/src/mame/video/sprint8.cpp
index 2a67ef8aefc..1bd241cfb19 100644
--- a/src/mame/video/sprint8.cpp
+++ b/src/mame/video/sprint8.cpp
@@ -12,9 +12,7 @@ Atari Sprint 8 video emulation
PALETTE_INIT_MEMBER(sprint8_state, sprint8)
{
- int i;
-
- for (i = 0; i < 0x10; i++)
+ for (int i = 0; i < 0x10; i++)
{
palette.set_pen_indirect(2 * i + 0, 0x10);
palette.set_pen_indirect(2 * i + 1, i);
@@ -29,9 +27,7 @@ PALETTE_INIT_MEMBER(sprint8_state, sprint8)
void sprint8_state::set_pens()
{
- int i;
-
- for (i = 0; i < 0x10; i += 8)
+ for (int i = 0; i < 0x10; i += 8)
{
if (*m_team & 1)
{
@@ -102,7 +98,7 @@ TILE_GET_INFO_MEMBER(sprint8_state::get_tile_info2)
}
-WRITE8_MEMBER(sprint8_state::sprint8_video_ram_w)
+WRITE8_MEMBER(sprint8_state::video_ram_w)
{
m_video_ram[offset] = data;
m_tilemap1->mark_tile_dirty(offset);
@@ -120,14 +116,14 @@ void sprint8_state::video_start()
m_tilemap1->set_scrolly(0, +24);
m_tilemap2->set_scrolly(0, +24);
+
+ m_collision_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(sprint8_state::collision_callback),this));
}
void sprint8_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- int i;
-
- for (i = 0; i < 16; i++)
+ for (int i = 0; i < 16; i++)
{
uint8_t code = m_pos_d_ram[i];
@@ -146,13 +142,13 @@ void sprint8_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect
}
-TIMER_CALLBACK_MEMBER(sprint8_state::sprint8_collision_callback)
+TIMER_CALLBACK_MEMBER(sprint8_state::collision_callback)
{
- sprint8_set_collision(param);
+ set_collision(param);
}
-uint32_t sprint8_state::screen_update_sprint8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+uint32_t sprint8_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
set_pens();
m_tilemap1->draw(screen, bitmap, cliprect, 0, 0);
@@ -161,13 +157,11 @@ uint32_t sprint8_state::screen_update_sprint8(screen_device &screen, bitmap_ind1
}
-WRITE_LINE_MEMBER(sprint8_state::screen_vblank_sprint8)
+WRITE_LINE_MEMBER(sprint8_state::screen_vblank)
{
// rising edge
if (state)
{
- int x;
- int y;
const rectangle &visarea = m_screen->visible_area();
m_tilemap2->draw(*m_screen, m_helper2, visarea, 0, 0);
@@ -176,16 +170,14 @@ WRITE_LINE_MEMBER(sprint8_state::screen_vblank_sprint8)
draw_sprites(m_helper1, visarea);
- for (y = visarea.min_y; y <= visarea.max_y; y++)
+ for (int y = visarea.min_y; y <= visarea.max_y; y++)
{
const uint16_t* p1 = &m_helper1.pix16(y);
const uint16_t* p2 = &m_helper2.pix16(y);
- for (x = visarea.min_x; x <= visarea.max_x; x++)
+ for (int x = visarea.min_x; x <= visarea.max_x; x++)
if (p1[x] != 0x20 && p2[x] == 0x23)
- machine().scheduler().timer_set(m_screen->time_until_pos(y + 24, x),
- timer_expired_delegate(FUNC(sprint8_state::sprint8_collision_callback),this),
- m_palette->pen_indirect(p1[x]));
+ m_collision_timer->adjust(m_screen->time_until_pos(y + 24, x), m_palette->pen_indirect(p1[x]));
}
}
}