Fix esp32 wait-timing race, rename wc_api.lib, keyboard: Enter-to-advance
esp32.c: two-phase esp_wait_busy() so a stale non-BUSY status right after esp_cmd() isn't mistaken for completion (fixed a real TRACK_PLAY/0x88 race on heavier XM files); added single-phase esp_wait_not_busy() for esp_send_dma()'s per-chunk wait, which never actually sets BUSY and was timing out on every chunk under the two-phase version. vgm_wc_api.lib renamed to wc_api.lib (build.bat updated to match). Keyboard: tried replacing wc_key_esc/pgup/pgdn/space with a raw PS/2-FIFO reader (matching how VGMPLAY.WMF's own player reads keys) so Enter could also advance to the next file. Reverted after two confirmed hardware regressions (esp32 transfers failing with ESP_ERR_INV_XM, and the keyboard going unresponsive once WC's own PS/2 scanning was disabled to stop it competing with the raw reads) - VGMPLAY's approach relies on a full custom interrupt handler xmplay has no equivalent need for. Back to the simple wc_key_*() wrappers, plus wc_key_enter() so Enter now advances too, and wc_key_wait_release() (called after wc_gedpl()) to debounce the Enter/F3 that launched the plugin itself. Also: About window now centers dynamically for all three WC text modes (90x36/80x25/80x30) instead of a fixed position, and matches the main window's color scheme. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+68
-60
@@ -63,50 +63,51 @@ Hexadecimal [32-Bits]
|
||||
|
||||
Symbol Table
|
||||
|
||||
0 ___str_12 000009B4 R
|
||||
0 ___str_13 000009BE R
|
||||
0 ___str_14 000009C6 R
|
||||
0 ___str_15 000009CD R
|
||||
0 ___str_16 000009D3 R
|
||||
0 ___str_17 00000C84 R
|
||||
0 ___str_18 00000C9C R
|
||||
0 ___str_4 00000585 R
|
||||
0 ___str_5 000005C4 R
|
||||
0 ___str_6 000005F7 R
|
||||
0 ___str_7 00000677 R
|
||||
0 ___str_8 0000067D R
|
||||
0 ___str_9 00000685 R
|
||||
0 ___str_12 00000A75 R
|
||||
0 ___str_13 00000A7F R
|
||||
0 ___str_14 00000A87 R
|
||||
0 ___str_15 00000A8E R
|
||||
0 ___str_16 00000A94 R
|
||||
0 ___str_17 00000D76 R
|
||||
0 ___str_18 00000D8E R
|
||||
0 ___str_4 00000646 R
|
||||
0 ___str_5 00000685 R
|
||||
0 ___str_6 000006B8 R
|
||||
0 ___str_7 00000738 R
|
||||
0 ___str_8 0000073E R
|
||||
0 ___str_9 00000746 R
|
||||
__divuchar ******** GX
|
||||
__divuint ******** GX
|
||||
__divulong ******** GX
|
||||
__moduchar ******** GX
|
||||
__moduint ******** GX
|
||||
__modulong ******** GX
|
||||
0 __str_0 00000288 R
|
||||
0 __str_1 000002A2 R
|
||||
0 __str_2 000002A3 R
|
||||
0 __str_3 000002AC R
|
||||
0 __str_0 000002C4 R
|
||||
0 __str_1 000002DE R
|
||||
0 __str_2 000002DF R
|
||||
0 __str_3 000002E8 R
|
||||
7 __xinit__state_esp 00000000 R
|
||||
0 _about 000004FB GR
|
||||
1 _bar_attr_ofs 0000108C GR
|
||||
1 _barbuf 0000106C R
|
||||
0 _about 0000058F GR
|
||||
1 _bar_attr_ofs 000010B0 GR
|
||||
1 _barbuf 00001090 R
|
||||
1 _call_type 00001007 GR
|
||||
0 _copy_file_name 00000606 GR
|
||||
1 _decbuf 00001064 R
|
||||
0 _draw_progress_bar 000009D7 GR
|
||||
0 _error_esp 0000056D GR
|
||||
0 _error_oom 000005A0 GR
|
||||
0 _error_playback 000005D3 GR
|
||||
0 _copy_file_name 000006C7 GR
|
||||
1 _decbuf 00001088 R
|
||||
0 _draw_progress_bar 00000A98 GR
|
||||
0 _error_esp 0000062E GR
|
||||
0 _error_oom 00000661 GR
|
||||
0 _error_playback 00000694 GR
|
||||
0 _esp_cmd 00000005 GR
|
||||
0 _esp_create_obj 0000022C GR
|
||||
0 _esp_init 00000257 GR
|
||||
0 _esp_rd_end 00000188 GR
|
||||
0 _esp_create_obj 00000268 GR
|
||||
0 _esp_init 00000293 GR
|
||||
0 _esp_rd_end 000001CF 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 000001E5 GR
|
||||
0 _esp_wait_status 00000197 GR
|
||||
0 _esp_send_dma 0000016E GR
|
||||
0 _esp_wait_busy 0000022C GR
|
||||
0 _esp_wait_not_busy 00000127 GR
|
||||
0 _esp_wait_status 000001DE GR
|
||||
0 _esp_wr_end 00000118 GR
|
||||
0 _esp_wr_reg32 000000E8 GR
|
||||
0 _esp_wr_reg8 000000D1 GR
|
||||
@@ -114,57 +115,64 @@ Symbol Table
|
||||
1 _file_name 0000100B GR
|
||||
1 _filesize 00001002 GR
|
||||
1 _fs_buf 00000000 GR
|
||||
1 _hexbuf 00001062 R
|
||||
1 _hexbuf 00001086 R
|
||||
1 _last_esp_status 00001008 GR
|
||||
1 _last_track_status 00001031 GR
|
||||
0 _leave_playing_and_exit 0000053F 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 _main 00000CA4 GR
|
||||
0 _main_start 00000BCB GR
|
||||
0 _leave_playing_and_exit 000005FA GR
|
||||
0 _main 00000D96 GR
|
||||
0 _main_start 00000C8C GR
|
||||
1 _p_file_name 00001009 GR
|
||||
0 _play_xm 000002BE GR
|
||||
0 _put_dec3 0000080B GR
|
||||
0 _put_hex2 000007CE GR
|
||||
0 _put_hex2_hexch_10000_132 000007FA R
|
||||
0 _put_time 00000868 GR
|
||||
0 _play_xm 0000030F GR
|
||||
0 _put_dec3 000008CC GR
|
||||
0 _put_hex2 0000088F GR
|
||||
0 _put_hex2_hexch_10000_144 000008BB R
|
||||
0 _put_time 00000929 GR
|
||||
1 _ret_sp 00001000 GR
|
||||
2 _state_esp 00000000 GR
|
||||
1 _status_buf 00001032 R
|
||||
1 _status_code_buf 0000104A R
|
||||
0 _stop_on_error 00000594 GR
|
||||
1 _status_buf 00001056 R
|
||||
1 _status_code_buf 0000106E R
|
||||
0 _stop_on_error 00000655 GR
|
||||
_strlen ******** GX
|
||||
1 _timebuf 00001067 R
|
||||
1 _timebuf 0000108B R
|
||||
1 _total_samples 0000102C GR
|
||||
0 _unload_and_exit 0000050E GR
|
||||
0 _wait_esc_key 000004EA GR
|
||||
0 _wait_for_manual_exit 00000549 GR
|
||||
0 _wait_frames 000004F2 GR
|
||||
0 _unload_and_exit 000005C9 GR
|
||||
0 _wait_esc_key 0000053B GR
|
||||
0 _wait_for_manual_exit 00000604 GR
|
||||
0 _wait_frames 00000543 GR
|
||||
0 _wc_center 00000559 GR
|
||||
0 _wc_exit 00000000 GR
|
||||
_wc_gadrw ******** GX
|
||||
_wc_gedpl ******** GX
|
||||
_wc_key_enter ******** GX
|
||||
_wc_key_esc ******** GX
|
||||
_wc_key_pgdn ******** GX
|
||||
_wc_key_pgup ******** GX
|
||||
_wc_key_space ******** GX
|
||||
_wc_key_wait_release ******** GX
|
||||
_wc_load512 ******** GX
|
||||
_wc_prm_pl ******** GX
|
||||
_wc_prsrw ******** GX
|
||||
_wc_prsrw_attr ******** GX
|
||||
_wc_prwow ******** GX
|
||||
_wc_rresb ******** GX
|
||||
0 _win_about 00000276 GR
|
||||
0 _win_xm 00000264 GR
|
||||
0 _xm_draw_static_labels 0000062B GR
|
||||
0 _xm_draw_stats_labels 00000915 GR
|
||||
0 _wc_screen_width 0000054C GR
|
||||
1 _win_about 00001044 GR
|
||||
0 _win_about_tpl 000002B2 GR
|
||||
1 _win_xm 00001032 GR
|
||||
0 _win_xm_tpl 000002A0 GR
|
||||
0 _xm_draw_static_labels 000006EC GR
|
||||
0 _xm_draw_stats_labels 000009D6 GR
|
||||
1 _xm_handle 00001030 GR
|
||||
0 _xm_set_status 0000070E GR
|
||||
0 _xm_set_status_attr 000006AA GR
|
||||
0 _xm_set_status_code 00000716 GR
|
||||
0 _xm_set_status_code_hexch_10000_129 000007BD R
|
||||
0 _xm_update_info 00000A4D GR
|
||||
0 _xm_set_status 000007CF GR
|
||||
0 _xm_set_status_attr 0000076B GR
|
||||
0 _xm_set_status_code 000007D7 GR
|
||||
0 _xm_set_status_code_hexch_10000_141 0000087E R
|
||||
0 _xm_update_info 00000B0E GR
|
||||
|
||||
|
||||
ASxxxx Assembler V05.50.4+NoICE+SDCCmods-WIP-R14 (Zilog Z80 / Hitachi HD64180 / ZX-Next / eZ80 / R800) Page 4
|
||||
@@ -172,8 +180,8 @@ Hexadecimal [32-Bits]
|
||||
|
||||
Area Table
|
||||
|
||||
0 _CODE size CCD flags 0
|
||||
1 _DATA size 108E flags 0
|
||||
0 _CODE size DBF flags 0
|
||||
1 _DATA size 10B2 flags 0
|
||||
2 _INITIALIZED size 1 flags 0
|
||||
3 _DABS size 0 flags 8
|
||||
4 _HOME size 0 flags 0
|
||||
|
||||
Reference in New Issue
Block a user