Commit Graph
4 Commits
Author SHA1 Message Date
alexandClaude Sonnet 5 ecf52d60c8 docs: README + ВНИМАНИЕ - конфликт со стандартным ftview по .XM/.XMZ
Стандартный ftview сам регистрируется на .XM/.XMZ - те же расширения,
что и xmplay. Таблица "расширение -> плагин" в WC статическая, так что
при совместной установке они конфликтуют. Нужно использовать
переработанную версию ftview (расширения убраны):
https://git.alexkorochinskiy.ru/alex/ftview.git

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-07 12:33:12 +03:00
alex a279a0eed3 Update sources, rebuild artifacts, add .gitignore 2026-08-31 21:26:25 +03:00
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
alex 6163d0c8ca Initial commit 2026-08-30 19:47:39 +03:00