Files
xmplayer/obj/out.noi
T
alexandClaude Sonnet 5 ee64fb85a9 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>
2026-08-30 21:40:24 +03:00

100 lines
2.1 KiB
Plaintext

DEF .__.ABS. 0x0
DEF l__BSEG 0x0
DEF l__BSS 0x0
DEF l__CABS 0x0
DEF l__DABS 0x0
DEF l__GSFINAL 0x0
DEF l__GSINIT 0x0
DEF l__HEADER 0x0
DEF l__HEAP 0x0
DEF s__CABS 0x0
DEF s__DABS 0x0
DEF s__HEADER 0x0
DEF s__HEADER0 0x0
DEF l__INITIALIZED 0x1
DEF l__INITIALIZER 0x1
DEF l__HEADER0 0x3
DEF l__HOME 0x1ED
DEF l__CODE 0xC33
DEF l__DATA 0x105E
DEF s__CODE 0x8003
DEF s__DATA 0xA800
DEF s__INITIALIZED 0xB85E
DEF s__HOME 0xB85F
DEF s__GSFINAL 0xBA4C
DEF s__GSINIT 0xBA4C
DEF s__INITIALIZER 0xBA4C
DEF s__BSEG 0xBA4D
DEF s__BSS 0xBA4D
DEF s__HEAP 0xBA4D
DEF _wc_exit 0x8003
DEF _wc_set_freq_14mhz 0x8008
DEF _esp_cmd 0x8011
DEF _esp_rd_reg8 0x802A
DEF _esp_rd_reg32 0x8043
DEF _esp_rd_regs 0x80B1
DEF _esp_wr_reg8 0x80DD
DEF _esp_wr_reg32 0x80F4
DEF _esp_wr_end 0x8124
DEF _esp_send_dma 0x8133
DEF _esp_rd_end 0x8197
DEF _esp_wait_status 0x81A6
DEF _esp_wait_busy 0x81E1
DEF _esp_create_obj 0x8203
DEF _esp_init 0x8231
DEF _err_no_esp 0x823E
DEF _err_out_of_mem 0x8250
DEF _err_playback 0x8262
DEF _win_xm 0x8274
DEF _win_about 0x8286
DEF _play_xm 0x8335
DEF _wait_esc_key 0x8568
DEF _wait_frames 0x8570
DEF _about 0x8579
DEF _error_esp 0x858C
DEF _error_oom 0x859F
DEF _error_playback 0x85B5
DEF _copy_file_name 0x85CB
DEF _xm_draw_static_labels 0x85F0
DEF _put_hex2 0x8620
DEF _put_dec3 0x865D
DEF _put_time 0x86BA
DEF _xm_draw_stats_labels 0x8767
DEF _draw_progress_bar 0x87E0
DEF _xm_update_info 0x8863
DEF _main_start 0x89D3
DEF _main 0x8AE0
DEF __divuchar 0x8B09
DEF __divu8 0x8B0B
DEF __divu16 0x8B0E
DEF __divuint 0x8B0E
DEF _wc_load512 0x8B3D
DEF __moduchar 0x8B52
DEF __moduint 0x8B59
DEF _wc_prsrw 0x8B5E
DEF _wc_prwow 0x8B94
DEF _wc_key_pgdn 0x8BA1
DEF _wc_prsrw_attr 0x8BAB
DEF _wc_rresb 0x8BF2
DEF _strlen 0x8BFF
DEF _wc_key_esc 0x8C0B
DEF _wc_key_pgup 0x8C15
DEF __mulint 0x8C1F
DEF __mul16 0x8C21
DEF _fs_buf 0xA800
DEF _ret_sp 0xB800
DEF _filesize 0xB802
DEF _file_ext 0xB806
DEF _call_type 0xB807
DEF _last_esp_status 0xB808
DEF _p_file_name 0xB809
DEF _file_name 0xB80B
DEF _total_samples 0xB82C
DEF _xm_handle 0xB830
DEF _last_track_status 0xB831
DEF _state_esp 0xB85E
DEF __modulong 0xB85F
DEF __divulong 0xB8E6
DEF __mullong 0xB969
LOAD obj/out.ihx