Commit Graph
5 Commits
Author SHA1 Message Date
alex 64b3563a03 Revert TSU_SEN enable in text mode - no benefit, not worth the risk
Uncommenting it in int_text_on didn't fix the mouse cursor clipping
above the bottom panel (confirmed on hardware), and it was commented
out in the original code for presumably a good reason. Not worth
carrying an unexplained hardware-register change with zero upside.
2026-09-01 10:26:02 +03:00
alex afaab68ac1 Fix bottom panel vertical offset, enable TSU sprites in text mode
Bottom control panel sat a couple pixels too low relative to the top
panel (pre-existing, not a session regression) - nudged GYOFFSL in
int_text_off from 47+240-1 to 47+240. Confirmed correct on hardware.

Also uncommented the TSU_SEN write in int_text_on so hardware sprites
(mouse cursor) are enabled during text mode too, not just graphics
mode. Doesn't fix the known cursor clip right above the bottom panel
(that appears tied to a fixed screen row, independent of panel
position or this bit - left as a known issue, documented in README).
2026-09-01 10:05:43 +03:00
alex 292d42f8ea Move now-playing blink/autoplay out of the interrupt too
show_now_play_link (blinking highlight for the currently playing track
in the list, plus the end-of-track autoplay/parse_url check) still ran
inside int_text_off via pt_play, doing its own extra page switch
(set_Textpage_lite) and an 80-byte write - on top of the analyzer this
was the remaining source of the vertical stripe flicker, specifically
when the playing track is scrolled into view. Split it out of pt_play
and call it from the main loop alongside the analyzer; the player tick
itself is untouched.

Confirmed on hardware: no flicker left, including across autoplay to
the next track.
2026-08-31 23:29:25 +03:00
alex 153931d1ca Move music analyzer out of the raster interrupt to fix flickering
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).
2026-08-31 22:27:27 +03:00
alex b3f614642e Add ZIFI/zifi.spg, fix .gitignore to not shadow it 2026-08-31 21:17:10 +03:00