atari/antic.cpp: use pixel_period() for steal_cycles timer

* fixes elktrgld, galaxian, blaster crashes, pitfall2 score display, alfclrcv stuck on first hole, batlband GFX faces on gameplay, mash and bldrbmbs flickering, likely more
This commit is contained in:
angelosa 2022-10-03 03:03:52 +02:00
parent 2ee081f55c
commit baef2b80f6
2 changed files with 3 additions and 1 deletions

View File

@ -1183,6 +1183,7 @@ uint8_t antic_device::read(offs_t offset)
data = m_r.antic09;
break;
case 10: /* WSYNC read */
// TODO: strobe signal, should happen on write only?
m_maincpu->spin_until_trigger(TRIGGER_HSYNC);
m_w.wsync = 1;
data = m_r.antic0a;
@ -2007,7 +2008,7 @@ TIMER_CALLBACK_MEMBER( antic_device::line_done )
TIMER_CALLBACK_MEMBER( antic_device::steal_cycles )
{
LOG(" @cycle #%3d steal %d cycles\n", cycle(), m_steal_cycles);
m_line_done_timer->adjust(ANTIC_TIME_FROM_CYCLES(m_steal_cycles));
m_line_done_timer->adjust((attotime)screen().pixel_period() * (m_steal_cycles));
m_steal_cycles = 0;
m_maincpu->spin_until_trigger(TRIGGER_STEAL);
}

View File

@ -2156,6 +2156,7 @@ void a400_state::atari_common_nodac(machine_config &config)
//m_screen->set_visarea(antic_device::MIN_X, antic_device::MAX_X, antic_device::MIN_Y, antic_device::MAX_Y);
m_screen->set_screen_update("antic", FUNC(antic_device::screen_update));
m_screen->set_palette("palette");
// m_screen->set_video_attributes(VIDEO_UPDATE_SCANLINE);
PALETTE(config, "palette", FUNC(a400_state::a400_palette), std::size(atari_colors) / 3);