From baef2b80f656ce3eaf677e2d59c3b2063154c8ec Mon Sep 17 00:00:00 2001 From: angelosa Date: Mon, 3 Oct 2022 03:03:52 +0200 Subject: 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 --- src/mame/atari/antic.cpp | 3 ++- src/mame/atari/atari400.cpp | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/mame/atari/antic.cpp b/src/mame/atari/antic.cpp index 2ac7906b4f5..dcf6492d040 100644 --- a/src/mame/atari/antic.cpp +++ b/src/mame/atari/antic.cpp @@ -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); } diff --git a/src/mame/atari/atari400.cpp b/src/mame/atari/atari400.cpp index 715ce078956..fcca699c90b 100644 --- a/src/mame/atari/atari400.cpp +++ b/src/mame/atari/atari400.cpp @@ -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); -- cgit v1.2.3