15 August 2011

TBK PSG Squezer

Давным давно в 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.
  • Время - минуты : секунды
TrackTimeVortex TrackerPSG LengthTMK CompilerTBK PSG Squezer
LengthSpeedLengthSpeedLengthSpeed
aeondemo 2:53 32614576/9648/5298 78812 12576 992/1216/1007 15084 80/1168/598
aeonintro 1:327071696/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.