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.
This commit is contained in:
Binary file not shown.
@@ -106,13 +106,14 @@ do_after_load ld a,0
|
|||||||
|
|
||||||
main_ex call wait_frame
|
main_ex call wait_frame
|
||||||
|
|
||||||
ld a,(music_sw+1) ; draw the volume-bar analyzer here in the foreground,
|
ld a,(music_sw+1) ; music-playing UI bits (now-playing blink, volume-bar
|
||||||
or a ; frame-synced but off the raster-critical interrupt chain
|
or a ; analyzer) done here in the foreground, frame-synced,
|
||||||
jr z,skip_analizator
|
jr z,skip_music_ui ; instead of inside the raster-critical interrupt chain
|
||||||
|
call show_now_play_link
|
||||||
ld a,(save_mode+1)
|
ld a,(save_mode+1)
|
||||||
or a
|
or a
|
||||||
call nz,music_analizator
|
call nz,music_analizator
|
||||||
skip_analizator
|
skip_music_ui
|
||||||
|
|
||||||
do_start_music ld a,1
|
do_start_music ld a,1
|
||||||
or a
|
or a
|
||||||
@@ -2273,8 +2274,8 @@ int_ex3 ld hl,0
|
|||||||
|
|
||||||
pt_play call set_music_pages_lite
|
pt_play call set_music_pages_lite
|
||||||
call music_player_play
|
call music_player_play
|
||||||
call restore_music_pages_lite ; PAGE3 only needed for the tick itself -
|
jp restore_music_pages_lite ; the link-blink/autoplay tail (show_now_play_link)
|
||||||
; restore it before the (page-independent) link-blink/autoplay tail below
|
; is now called separately from the main loop, not from here
|
||||||
|
|
||||||
show_now_play_link ld a,0
|
show_now_play_link ld a,0
|
||||||
or a
|
or a
|
||||||
|
|||||||
Reference in New Issue
Block a user