diff --git a/source/readme.md b/source/readme.md new file mode 100644 index 0000000..d57e5fe --- /dev/null +++ b/source/readme.md @@ -0,0 +1,124 @@ +# Sprinter Video Player (SVP) + +**Версия:** v0.15.035 Alpha +**Автор:** kostya261 +**Дата:** 09.07.2026 + +## Описание + +Sprinter Video Player — это проигрыватель видео для компьютера **Sprinter**, написанный на ассемблере Z80. Плеер предназначен для воспроизведения файлов в специализированном формате `.SPR`. Программа работает с видеопотоком и звуком, используя аппаратные возможности платформы Sprinter. + +> **Важно:** Это **альфа-версия**. Возможны ошибки и нестабильная работа. + +--- + +## Системные требования + +- Компьютер **Sprinter** (или совместимый). +- Процессор Z80. +- Операционная система **DOS** или совместимая с DSS-вызовами. +- Достаточно оперативной памяти для загрузки видеофайлов. +- Графический режим **320x256** (режим #81) или **640x256** (#82). +- **Covox-Blaster** (или совместимый) для воспроизведения звука. + +--- + +## Формат видеофайлов (.SPR) + +Плеер воспроизводит файлы в собственном формате `.SPR`. Структура файла: + +### Заголовок (HEADER_SIZE = 1045 байт) + +| Смещение | Размер | Описание | +|----------|--------|----------| +| 0-2 | 3 | Сигнатура: "SPR" | +| 3-4 | 2 | Ширина кадра | +| 5 | 1 | Высота кадра | +| 6 | 1 | Отступ по Y | +| 7 | 1 | Отступ по X | +| 8 | 1 | FPS | +| 9 | 1 | Код частоты звука | +| 10-1033 | 1024 | Палитра (B, G, R, 0 — 256 цветов) | +| 1034-1037| 4 | Смещение до аудиоданных (32 бита) | +| 1038-1039| 2 | Размер 1/5 части кадра | +| 1040-1041| 2 | Размер таблицы смещений (MFP) | +| 1042 | 1 | Количество страниц под таблицу MFP | +| 1043-1044| 2 | Размер последней страницы MFP | + +### Данные +- После заголовка идёт **таблица смещений (MFP)**, которая содержит информацию о расположении данных в файле. +- Далее следуют **видеоданные**, разбитые на 5 частей (по частям кадра). +- За видеоданными — **аудиоданные** (формат — моно, 8 бит, частота зависит от кода). + +--- + +## Управление + +| Клавиша | Действие | +|-----------------|----------| +| **ESC** (код #76) | Выход из плеера | + +- Проигрывание начинается автоматически после запуска. +- Для выхода достаточно нажать ESC в любой момент. +- А в целом пока любая клавиша... + +## Запуск + +1. Поместите видеофайл (`.SPR`) в ту же директорию, что и `player.exe`, или укажите полный путь. +2. Запустите плеер из командной строки: + + +player.exe <путь_к_файлу.spr> +--- +Пример: + +player.exe video/my_movie.spr + +--- + +## Технические особенности + +Видео отображается в графическом режиме 320x256 с использованием палитры 256 цветов. + +Видеопоток разделён на 5 блоков, которые загружаются и отображаются частями для оптимизации скорости. + +Звук воспроизводится через порт #4F (Covox-Blaster) с использованием прерываний. + +Поддерживается работа с FastRAM. +(Ну это было в планах, но пока забил, так как машина на которой тестил, у нее FastRam не работает) + +Плеер использует собственный механизм таблицы смещений (MFP) для навигации по кадрам. + +## Известные ограничения +Только альфа-версия; возможны сбои при воспроизведении больших файлов. + +Не поддерживается изменение громкости или перемотка. + +Требуется корректная структура .SPR-файла; неподдерживаемые форматы приведут к ошибке. + +Звук воспроизводится с фиксированной частотой +(пока это 11 кГц, в дальнейшем нужно сделать автоматическое определение из заголовка файла. +Возможность заложена, реализации нет). + +## Сборка из исходников +Для сборки потребуется: + +SjASMPlus (или совместимый ассемблер). + +Компиляция выполняется с помощью скрипта make3.bat. + +bash +make3.bat +Результат — player.exe. + +## Благодарности +За использование DSS и BIOS-вызовов Sprinter. +Вдохновение от сообщества ZX Spectrum / Sprinter. + +## Контакты +Автор: kostya261 +Дата: 09.07.2026 +Версия: 0.15.035 Alpha + +## Лицензия +Данный проект распространяется в ознакомительных целях. Автор не несёт ответственности за возможные проблемы при использовании.