static void update_callback(int scanline) { /* update the previous chunk of scanlines */ starfire_video_update(scanline, SCANLINE_UPDATE_CHUNK); scanline += SCANLINE_UPDATE_CHUNK; if (scanline >= Machine->drv->screen_height) scanline = 32; timer_set(cpu_getscanlinetime(scanline + SCANLINE_UPDATE_CHUNK - 1), scanline, update_callback); }
static TIMER_CALLBACK( update_callback ) { int scanline = param; /* update the previous chunk of scanlines */ starfire_video_update(scanline, SCANLINE_UPDATE_CHUNK); scanline += SCANLINE_UPDATE_CHUNK; if (scanline >= machine->screen[0].height) scanline = 32; timer_set(video_screen_get_time_until_pos(0, scanline + SCANLINE_UPDATE_CHUNK - 1, 0), NULL, scanline, update_callback); }