Prevent non-loop VGM playback overrun

This commit is contained in:
2026-09-15 15:11:24 +03:00
parent 1686838e03
commit c6004c19fb
5 changed files with 12 additions and 11 deletions
-4
View File
@@ -33,7 +33,6 @@
#include "../inc/freq_lut_map.h"
/* ── Состояние парсера ──────────────────────────────────────────────── */
volatile uint8_t vgm_song_ended; // 1 = достигнут конец (0x66), main loop может остановить воспроизведение
uint8_t vgm_paused; // 1 = пауза (остановить таймер, не обнулять vgm_sec_budget)
uint8_t vgm_cur_page; // текущая VPL-страница для чтения данных (0..N)
uint16_t vgm_read_ptr; // смещение в окне #C000 для чтения следующего байта VGM-потока
@@ -249,7 +248,6 @@ uint8_t vgm_parse_header(void)
uint32_t clk;
vgm_chip_entry_t *e;
vgm_song_ended = 0;
vgm_paused = 0;
vgm_chip_count = 0;
vgm_chip_type = VGM_CHIP_NONE;
@@ -1752,7 +1750,6 @@ ym2_fm_passthru:;
if (fb_op == 0x66)
{
if (fb_is_vgm) {
vgm_song_ended = 1;
vgm_cur_page = fb_cpg;
vgm_read_ptr = (uint16_t)fb_rp;
vgm_wait_accum = fb_wacc;
@@ -2009,7 +2006,6 @@ uint8_t vgm_rewind_to_loop(void)
vgm_cur_page = vgm_loop_page;
vgm_read_ptr = vgm_loop_addr;
vgm_song_ended = 0;
vgm_wait_accum = 0;
vgm_sec_budget = ISR_FREQ;
wc_mngcvpl(vgm_cur_page);