The AY volume-bar indicator (music_analizator) ran inside int_text_off, the same precisely-timed interrupt chain that switches between text and graphics video modes. Its DMA clear + page switching + drawing could overrun that timing budget on dynamic tracks, causing visible vertical stripe flicker. Moved it to the main loop (once per frame, after wait_frame) instead, leaving the player tick (pt_play) and its tempo timing untouched inside the interrupt. Also waits for the DMA clear to finish before drawing bars into the same memory (previously a write race).
42 KiB
42 KiB