Fix esp32 detection, add colored caption, live stats, single-loop playback
- Fix state_esp init bug: crt0.s never runs GSINIT and hex2bin fills unbacked memory with 0xFF (not 0), so a plain zero-init global always read 0xFF on load; give it a real 0xFF sentinel initializer instead. - Vendor demyanenko-d/VGMPLAY.WMF's wc_api library (SDCC 4.6.0 + --sdcccall 1) instead of hand-rolled PRSRW/PRIAT wrappers, which corrupted esp32 file loading in three different shapes; colored "File:" caption now works. - Trim shared-file footprint: vendor only the esp32.c functions actually used, drop unused sdklib.h/sdk.lib linkage. - Re-enable periodic live stats (Pattern/Row/BPM/Time/progress bar). - Limit playback to one loop via TRACK_SET_PARAMS/MAX_LOOP_COUNT, and auto-advance to the next file when a track finishes on its own (detected via a PLAYING->STOPPED ESP_REG_TRACK_STATUS transition). - Pin the Z80 clock to 14MHz for the whole plugin lifetime so esp32 SPI wait-loop timeouts (raw iteration counts, not real time) don't depend on whatever turbo setting was active before the plugin started. - Pad TRACK_INIT's timeout well past the firmware's 5s song-length measurement cap (XM_MEASURE_MAX_US). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+71
-65
@@ -63,76 +63,81 @@ Hexadecimal [32-Bits]
|
||||
|
||||
Symbol Table
|
||||
|
||||
0 ___str_11 00000793 R
|
||||
0 ___str_12 0000079D R
|
||||
0 ___str_13 000007A5 R
|
||||
0 ___str_14 000007AC R
|
||||
0 ___str_15 000007B2 R
|
||||
0 ___str_9 000005F0 R
|
||||
0 ___str_11 000007BA R
|
||||
0 ___str_12 000007C4 R
|
||||
0 ___str_13 000007CC R
|
||||
0 ___str_14 000007D3 R
|
||||
0 ___str_15 000007D9 R
|
||||
0 ___str_9 00000617 R
|
||||
__divuchar ******** GX
|
||||
__divuint ******** GX
|
||||
__divulong ******** GX
|
||||
__moduchar ******** GX
|
||||
__moduint ******** GX
|
||||
__modulong ******** GX
|
||||
0 __str_0 0000028C R
|
||||
0 __str_1 00000296 R
|
||||
0 __str_2 00000297 R
|
||||
0 __str_3 000002AD R
|
||||
0 __str_4 000002CD R
|
||||
0 __str_5 000002EB R
|
||||
0 __str_6 00000300 R
|
||||
0 __str_7 0000030E R
|
||||
0 __str_8 00000317 R
|
||||
0 _about 0000054F GR
|
||||
1 _call_type 00001008 GR
|
||||
0 _copy_file_name 000005A1 GR
|
||||
__mullong ******** GX
|
||||
0 __str_0 00000295 R
|
||||
0 __str_1 0000029F R
|
||||
0 __str_2 000002A0 R
|
||||
0 __str_3 000002B6 R
|
||||
0 __str_4 000002D6 R
|
||||
0 __str_5 000002F4 R
|
||||
0 __str_6 00000309 R
|
||||
0 __str_7 00000317 R
|
||||
0 __str_8 00000320 R
|
||||
7 __xinit__state_esp 00000000 R
|
||||
0 _about 00000576 GR
|
||||
1 _barbuf 0000103C R
|
||||
1 _call_type 00001007 GR
|
||||
0 _copy_file_name 000005C8 GR
|
||||
1 _decbuf 00001034 R
|
||||
0 _err_no_esp 00000232 GR
|
||||
0 _err_out_of_mem 00000244 GR
|
||||
0 _err_playback 00000256 GR
|
||||
0 _error_esp 00000562 GR
|
||||
0 _error_oom 00000575 GR
|
||||
0 _error_playback 0000058B GR
|
||||
0 _esp_cmd 00000005 GR
|
||||
0 _esp_create_obj 000001F7 GR
|
||||
0 _esp_init 00000225 GR
|
||||
0 _esp_rd_end 0000018B GR
|
||||
0 _esp_rd_reg32 00000037 GR
|
||||
0 _esp_rd_reg8 0000001E GR
|
||||
0 _esp_rd_regs 000000A5 GR
|
||||
0 _esp_send_dma 00000127 GR
|
||||
0 _esp_wait_busy 000001D5 GR
|
||||
0 _esp_wait_status 0000019A GR
|
||||
0 _esp_wr_end 00000118 GR
|
||||
0 _esp_wr_reg32 000000E8 GR
|
||||
0 _esp_wr_reg8 000000D1 GR
|
||||
1 _file_ext 00001007 GR
|
||||
1 _file_name 0000100C GR
|
||||
1 _filesize 00001003 GR
|
||||
1 _fs_buf 00000001 GR
|
||||
0 _draw_progress_bar 000007DD GR
|
||||
0 _err_no_esp 0000023B GR
|
||||
0 _err_out_of_mem 0000024D GR
|
||||
0 _err_playback 0000025F GR
|
||||
0 _error_esp 00000589 GR
|
||||
0 _error_oom 0000059C GR
|
||||
0 _error_playback 000005B2 GR
|
||||
0 _esp_cmd 0000000E GR
|
||||
0 _esp_create_obj 00000200 GR
|
||||
0 _esp_init 0000022E GR
|
||||
0 _esp_rd_end 00000194 GR
|
||||
0 _esp_rd_reg32 00000040 GR
|
||||
0 _esp_rd_reg8 00000027 GR
|
||||
0 _esp_rd_regs 000000AE GR
|
||||
0 _esp_send_dma 00000130 GR
|
||||
0 _esp_wait_busy 000001DE GR
|
||||
0 _esp_wait_status 000001A3 GR
|
||||
0 _esp_wr_end 00000121 GR
|
||||
0 _esp_wr_reg32 000000F1 GR
|
||||
0 _esp_wr_reg8 000000DA GR
|
||||
1 _file_ext 00001006 GR
|
||||
1 _file_name 0000100B GR
|
||||
1 _filesize 00001002 GR
|
||||
1 _fs_buf 00000000 GR
|
||||
1 _hexbuf 00001032 R
|
||||
1 _last_esp_status 00001009 GR
|
||||
0 _main 000009AD GR
|
||||
0 _main_start 000008DA GR
|
||||
1 _p_file_name 0000100A GR
|
||||
0 _play_xm 00000329 GR
|
||||
0 _put_dec3 00000633 GR
|
||||
1 _last_esp_status 00001008 GR
|
||||
1 _last_track_status 00001031 GR
|
||||
ASxxxx Assembler V05.50.4+NoICE+SDCCmods-WIP-R14 (Zilog Z80 / Hitachi HD64180 / ZX-Next / eZ80 / R800) Page 3
|
||||
Hexadecimal [32-Bits]
|
||||
|
||||
Symbol Table
|
||||
|
||||
0 _put_hex2 000005F6 GR
|
||||
0 _put_hex2_hexch_10000_105 00000622 R
|
||||
0 _put_time 00000690 GR
|
||||
1 _ret_sp 00001001 GR
|
||||
1 _state_esp 00000000 GR
|
||||
0 _main 00000ADD GR
|
||||
0 _main_start 000009D0 GR
|
||||
1 _p_file_name 00001009 GR
|
||||
0 _play_xm 00000332 GR
|
||||
0 _put_dec3 0000065A GR
|
||||
0 _put_hex2 0000061D GR
|
||||
0 _put_hex2_hexch_10000_106 00000649 R
|
||||
0 _put_time 000006B7 GR
|
||||
1 _ret_sp 00001000 GR
|
||||
2 _state_esp 00000000 GR
|
||||
_strlen ******** GX
|
||||
1 _timebuf 00001037 R
|
||||
1 _total_samples 0000102D GR
|
||||
0 _wait_esc_key 0000053E GR
|
||||
0 _wait_frames 00000546 GR
|
||||
1 _total_samples 0000102C GR
|
||||
0 _wait_esc_key 00000565 GR
|
||||
0 _wait_frames 0000056D GR
|
||||
0 _wc_exit 00000000 GR
|
||||
_wc_key_esc ******** GX
|
||||
_wc_key_pgdn ******** GX
|
||||
@@ -142,25 +147,26 @@ Symbol Table
|
||||
_wc_prsrw_attr ******** GX
|
||||
_wc_prwow ******** GX
|
||||
_wc_rresb ******** GX
|
||||
0 _win_about 0000027A GR
|
||||
0 _win_xm 00000268 GR
|
||||
0 _xm_draw_static_labels 000005C6 GR
|
||||
0 _xm_draw_stats_labels 0000073D GR
|
||||
1 _xm_handle 00001031 GR
|
||||
0 _xm_update_info 000007B6 GR
|
||||
0 _wc_set_freq_14mhz 00000005 GR
|
||||
0 _win_about 00000283 GR
|
||||
0 _win_xm 00000271 GR
|
||||
0 _xm_draw_static_labels 000005ED GR
|
||||
0 _xm_draw_stats_labels 00000764 GR
|
||||
1 _xm_handle 00001030 GR
|
||||
0 _xm_update_info 00000860 GR
|
||||
|
||||
ASxxxx Assembler V05.50.4+NoICE+SDCCmods-WIP-R14 (Zilog Z80 / Hitachi HD64180 / ZX-Next / eZ80 / R800) Page 4
|
||||
Hexadecimal [32-Bits]
|
||||
|
||||
Area Table
|
||||
|
||||
0 _CODE size 9D6 flags 0
|
||||
1 _DATA size 103C flags 0
|
||||
2 _INITIALIZED size 0 flags 0
|
||||
0 _CODE size B06 flags 0
|
||||
1 _DATA size 105E flags 0
|
||||
2 _INITIALIZED size 1 flags 0
|
||||
3 _DABS size 0 flags 8
|
||||
4 _HOME size 0 flags 0
|
||||
5 _GSINIT size 0 flags 0
|
||||
6 _GSFINAL size 0 flags 0
|
||||
7 _INITIALIZER size 0 flags 0
|
||||
7 _INITIALIZER size 1 flags 0
|
||||
8 _CABS size 0 flags 8
|
||||
|
||||
|
||||
Reference in New Issue
Block a user