From ecf52d60c808de3c60913475620313ee5842c910 Mon Sep 17 00:00:00 2001 From: Alex Date: Mon, 7 Sep 2026 12:33:12 +0300 Subject: [PATCH] =?UTF-8?q?docs:=20README=20+=20=D0=92=D0=9D=D0=98=D0=9C?= =?UTF-8?q?=D0=90=D0=9D=D0=98=D0=95=20-=20=D0=BA=D0=BE=D0=BD=D1=84=D0=BB?= =?UTF-8?q?=D0=B8=D0=BA=D1=82=20=D1=81=D0=BE=20=D1=81=D1=82=D0=B0=D0=BD?= =?UTF-8?q?=D0=B4=D0=B0=D1=80=D1=82=D0=BD=D1=8B=D0=BC=20ftview=20=D0=BF?= =?UTF-8?q?=D0=BE=20.XM/.XMZ?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Стандартный ftview сам регистрируется на .XM/.XMZ - те же расширения, что и xmplay. Таблица "расширение -> плагин" в WC статическая, так что при совместной установке они конфликтуют. Нужно использовать переработанную версию ftview (расширения убраны): https://git.alexkorochinskiy.ru/alex/ftview.git Co-Authored-By: Claude Sonnet 5 --- README.md | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..7f11f08 --- /dev/null +++ b/README.md @@ -0,0 +1,76 @@ +# XM Player + +Плагин для Wild Commander (ZX Evolution / TS-Conf), проигрывающий XM, XMZ +(запакованный gzip'ом XM) и S3M модули через ESP32-сопроцессор платы. Z80 +только передаёт файл на ESP32 и отображает окно со статусом; сам разбор +модуля и синтез звука выполняет прошивка ESP32. + +> ⚠️ **Несовместим со стандартным ftview.** Оригинальный (стандартный) +> плагин `ftview` сам регистрируется на расширения `.XM` и `.XMZ` — ровно +> те же, что и у этого плагина. У Wild Commander таблица "расширение → +> плагин" статическая, зашита в заголовок при сборке, и если файл поставить +> вместе со стандартным `ftview`, они будут конфликтовать за одни и те же +> расширения. Используйте переработанную версию `ftview` (расширения `.XM` +> и `.XMZ` из неё убраны, воспроизведение вынесено в этот плагин) — +> она лежит отдельным репозиторием: https://git.alexkorochinskiy.ru/alex/ftview.git + +## Требования + +- ZX Evolution / TS-Conf с прошитым ESP32-сопроцессором +- Wild Commander (заголовок плагина версии 10+, есть в текущих сборках) +- переработанная версия `ftview` (см. предупреждение выше), а не стандартная + +## Возможности + +- Проигрывание `.XM`, `.XMZ`, `.S3M` +- Окно с живым статусом: имя файла, статус загрузки/воспроизведения, + паттерн, строка, BPM, прошедшее/общее время, прогресс-бар +- Ошибки выводятся прямо в строке статуса (с кодом ошибки ESP32, например + `Playback error (0x90)`), без отдельного всплывающего окна +- Автоматический переход к следующему файлу по окончании трека +- Параметр `stoponerror` в ini — остановка на ошибке вместо автоперехода, + удобно, чтобы найти, какой именно файл в подборке вызывает проблему + +## Управление + +| Клавиша | Действие | +|--------------|----------------------------------------------| +| PgDn, Enter | Следующий файл | +| PgUp | Предыдущий файл | +| Esc | Остановить воспроизведение и выйти | +| Space | Выйти, не останавливая текущее воспроизведение | + +## Установка + +Скопировать `xmplay.wmf` в каталог плагинов Wild Commander. Плагин сам +регистрируется на расширения `.XM`, `.XMZ` и `.S3M`. + +Чтобы при ошибке воспроизведения плагин останавливался, а не переходил +сразу к следующему файлу, добавить в `wc.ini`: + +``` +XMPLAY.WMF -stoponerror=1 +``` + +(`0` или отсутствие параметра — поведение по умолчанию: автопереход при ошибке.) + +## Сборка + +Нужен [SDCC](http://sdcc.sourceforge.net/) версии 4.6.0 (зафиксирована в +`build.bat`) и `hex2bin` — оба есть в тулчейне SDK ZX Evolution. + +``` +build.bat +``` + +Результат — `xmplay.wmf` в корне проекта. + +## Благодарности + +Собран на основе `wc_api.lib` из `demyanenko-d/VGMPLAY.WMF` — используется +для доступа к API Wild Commander (окна, вывод текста, клавиатура, ini-параметры). + +## Статус + +Проверено на реальном железе: воспроизведение, живая статистика, +прогресс-бар, обработка ошибок и управление с клавиатуры.