Давным давно в 2009 году мы сделали небольшую игрушку Demomania, в которой впервые для наших работ музыка игралась из PSG-файлов. Жуткий размер файлов компенсировался быстрым плэером, что и было необходимо. Но сразу возникла мысль написать какой-нибудь упаковщик, так как формат очень рыхлый, да и необходимость затолкать более-менее нормальный музон (по длительности) в банку для использования в полноценных демосценах.
Первая попытка была сделана для релиза музона key-jee на Forever'09, и позже после переосмысливания был написан уже вполне пригодный вариант упаковщика. Но по непонятным причинам спектрумовский плэер был написан вот только на днях. Ну и вот что мы видим.
- Vortex Tracker - в принципе стандартный ProTracker 3.x (размер плэера 1617 байт).
- PSG - поток регистров, сохраненный AyEmul'ем (размер плэера не крититичен, так как из-за объема файлов использовать практически невозможно).
- TMK Compiler - упаковщик от TMK (размер плэера 297 байт, но из-за зависимости от музыки и невозможности использовать с другим треком его длина включена в длину упакованного трека).
- TBK PSG Squezer - собственно сам сабж ( размер плэера 397 байт).
- Скорость показана в формате minimum/maximum/average.
- Время - минуты : секунды
Track | Time | Vortex Tracker | PSG Length | TMK Compiler | TBK PSG Squezer |
Length | Speed | Length | Speed | Length | Speed |
aeondemo | 2:53 | 3261 | 4576/9648/5298 | 78812 | 12576 | 992/1216/1007 | 15084 | 80/1168/598 |
aeonintro | 1:32 | 707 | 1696/8864/4387 | 20596 | 10816 | 992/1216/1008 | 5743 | 48/1008/388 |
chan#20 | 1:05 | 3753 | 2784/9648/4962 | 29116 | 12676 | 992/1216/1033 | 12016 | 160/1184/548 |
flyaway | 1:17 | 7416 | 4432/9024/5087 | 42594 | 21448 | 992/1248/1041 | 15539 | 48/1200/614 |
goodbye | 1:18 | 3077 | 1696/10272/4670 | 28768 | 17198 | 992/1248/1013 | 9925 | 48/1104/487 |
machined | 3:20 | 5339 | 1696/9328/4888 | 70718 | -(*) | - (*) | 14692 | 48/1200/558 |
(*) Не получилось упаковать из-за ограничений компилятора.
Сразу скажу, что компилятор TMK я использовал без малейших настроек, хотя он русским по белому советует немного редактировать музыку и вообще поработать ручками и головой. И на монотонных повторяющихся музонах он наверняка покажет результат лучше (aeondemo в этом тесте). А вот с музыкой, у которой меняется скорость и длины патернов неравные, он справляется не очень хорошо (goodbye). Но вообще, если бы я знал, что TMK еще в том году написал такую штуку, вряд ли стал заморачиваться с дописыванием плэера.
К сожалению я пока не выкладываю пакер и плэер, так как оно все находится в немного непотребном виде. Как только приведу в приличное состояние, добавлю ссылку. Ну а первое рабочее использование можно посмотреть в интре к Krik#11.