Synchronize OPL4 track finalization
This commit is contained in:
+5
-2
@@ -34,7 +34,7 @@
|
||||
* CMD_WRITE_AY │ reg │ val │ 0 │ OUT AY8910 chip 1
|
||||
* CMD_INC_SEC │ 0 │ 0 │ 0 │ Инкр. isr_play_seconds
|
||||
* CMD_WRITE_AY2 │ reg │ val │ 0 │ OUT AY8910 chip 2 (TS)
|
||||
* CMD_CALL_WC │ 0 │ 0 │ 0 │ Вызов WC ISR handler
|
||||
* CMD_FINALIZE │ 0 │ 0 │ 0 │ Конец VGM → shutdown в main
|
||||
* CMD_WRITE_B0 │ reg │ val │ 0 │ OUT OPL3 Bank 0
|
||||
* CMD_SKIP_TICKS│ N │ smsk_lo│ smsk_hi│ Пропустить N позиций pos_table
|
||||
* CMD_WRITE_SAA │ reg │ val │ 0 │ OUT SAA1099 chip 0
|
||||
@@ -81,7 +81,7 @@
|
||||
#define CMD_WRITE_AY 0x00 /* AY8910 chip 1: [reg, val, 0] */
|
||||
#define CMD_INC_SEC 0x10 /* Инкрементировать счётчик секунд: [0,0,0] */
|
||||
#define CMD_WRITE_AY2 0x20 /* AY8910 chip 2 (TurboSound): [reg,val,0]*/
|
||||
#define CMD_CALL_WC 0x30 /* Вызов WC ISR handler: [0,0,0] */
|
||||
#define CMD_FINALIZE 0x30 /* Конец VGM: остановить ISR и уведомить main */
|
||||
#define CMD_WRITE_B0 0x40 /* OPL3 Bank 0 write: [reg, val, 0] */
|
||||
#define CMD_SKIP_TICKS 0x50 /* Пропустить N pos_table: [N,sml,smh] */
|
||||
#define CMD_WRITE_SAA 0x60 /* SAA1099 write: [reg, val, 0] bit7=chip */
|
||||
@@ -136,6 +136,9 @@ extern volatile uint16_t isr_play_seconds;
|
||||
* Main loop очищает при старте воспроизведения. */
|
||||
extern volatile uint8_t isr_done;
|
||||
|
||||
/** ISR дошёл до последнего 0x66; main должен запустить shutdown. */
|
||||
extern volatile uint8_t isr_final_pending;
|
||||
|
||||
/** Командные буферы A и B. Заполняются main loop, читаются ISR. */
|
||||
extern uint8_t cmd_buf_a[CMD_BUF_SIZE];
|
||||
extern uint8_t cmd_buf_b[CMD_BUF_SIZE];
|
||||
|
||||
Reference in New Issue
Block a user