ZX50

ZX50-файл был разработан специально для Ay_Emul и предназначен для хранения квантованной музыки (50 Гц). Как показало время, ZX50-файлы хоть и компактнее аналогичных PSG-файлов, но на порядок больше по размерам VTX- и YM-файлов. В связи с этим, формат ZX50 теперь не поддерживается.

Первые четыре байта ZX50-файла равны ASCII строке "ZX50". Далее следуют строки данных переменной длины. Строка начинается с 16-битного слова, называемого Mask, и одного или нескольких байт данных.

Если бит с номером от 0 до 13 этой маски равен 1, то байт данных, записываемый в регистр с тем же номером, хранится в данной строке. Например, если Mask = 0000000000000101b, то следующие за ней два байта являются данными для записи в регистр номер 0 и 2 соответственно.

Значения в строке – это данные текущего кванта (VBL, прерывания). Если во время текущего кванта не было вывода, то Mask = 0000000000000000b.

Аналогично ZXAY-файлам, запись одного и того же числа в один и тот же регистр в текущую строку не записывается (за исключение регистра 13), а также должны быть обнулены неиспользуемые биты регистров (по принципу, изложенному при описании ZXAY-файлов).

На сайте RDOSPLAY можно найти описание PSG2-файла. Заложенные в нём идеи близки к таковым в ZX50-файле.