P.S. В апреле 2012 добавил сюда описание формата SVS:
Code: Select all
Первые 16 байт файла - заголовок:
4 байта - сигнатура "SVS1"
2 байта - размер по горизонтали (сейчас всегда 320)
2 байта - размер по вертикали (сейчас всегда 256)
4 байта - nf=0 (непомню что такое)
1 байт - fps (частота кадров в секунду)
1 байт - attr=0 (пока атрибутов нет)
2 байта - freq=0 (частота звука - если нету звука, то 0)
Далее идёт поток байтов - команды с атрибутами и без (ниже N означает кол-во, причём при N=0 кол-во берётся равным 256):
#00 N С - вывод N одинаковых точек от текущего места вниз (цвет точек задаётся индексом C в палитре) с увеличением текущей координаты Y на N
#01 C - вывести одну точку цветом C (индекс в палитре) в текущее место и увеличить координату Y на единицу
#02 C - вывести две одинаковых точки с цветом C начиная с текущего места вниз с увеличением текущей координаты Y на 2
#03 C - вывести три одинаковых точки с цветом C начиная с текущего места вниз с увеличением текущей координаты Y на 3
#04 C - вывести четыре одинаковых точки с цветом C начиная с текущего места вниз с увеличением текущей координаты Y на 4
#05 C - вывести пять одинаковых точки с цветом C начиная с текущего места вниз с увеличением текущей координаты Y на 5
#06 C - вывести шесть одинаковых точек с цветом C начиная с текущего места вниз с увеличением текущей координаты Y на 6
#07 C - вывести семь одинаковых точек с цветом C начиная с текущего места вниз с увеличением текущей координаты Y на 7
#08 C - вывести восемь одинаковых точек с цветом C начиная с текущего места вниз с увеличением текущей координаты Y на 8
#09 C - вывести одинаковых девять точек с цветом C начиная с текущего места вниз с увеличением текущей координаты Y на 9
#0A C - вывести десять одинаковых точек с цветом C начиная с текущего места вниз с увеличением текущей координаты Y на 10
#0B C - вывести одинаковых одиннадцать точек с цветом C начиная с текущего места вниз с увеличением текущей координаты Y на 11
#0C C - вывести двендалцать одинаковых точек с цветом C начиная с текущего места вниз с увеличением текущей координаты Y на 12
#0D C - вывести тринадцать одинаковых точек с цветом C начиная с текущего места вниз с увеличением текущей координаты Y на 13
#0E C - вывести четырнадцать одинаковых точек с цветом C начиная с текущего места вниз с увеличением текущей координаты Y на 14
#0F C - вывести пятнадцать одинаковых точек с цветом C начиная с текущего места вниз с увеличением текущей координаты Y на 15
#10 N ... - вывод N точек от текущего места вниз (точки задаются индексами в палитре) с увеличением текущей координаты Y на N
#11 C1 - вывести одну точку цветом C1 (индекс в палитре) в текущее место и увеличить координату Y на единицу
#12 C1 C2 - вывести две точки начиная с текущего места вниз с увеличением текущей координаты Y на 2
#13 C1 C2 C3 - вывести три точки начиная с текущего места вниз с увеличением текущей координаты Y на 3
#14 C1 C2 C3 С4 - вывести четыре точки начиная с текущего места вниз с увеличением текущей координаты Y на 4
#15 C1 C2 C3 С4 С5 - вывести пять точки начиная с текущего места вниз с увеличением текущей координаты Y на 5
#16 C1 C2 C3 С4 С5 С6 - вывести шесть точек начиная с текущего места вниз с увеличением текущей координаты Y на 6
#17 C1 C2 C3 С4 С5 С6 С7 - вывести семь точек начиная с текущего места вниз с увеличением текущей координаты Y на 7
#18 C1 C2 C3 С4 С5 С6 С7 С8 - вывести восемь точек начиная с текущего места вниз с увеличением текущей координаты Y на 8
#19 C1 C2 C3 С4 С5 С6 С7 С8 С9 - вывести девять точек начиная с текущего места вниз с увеличением текущей координаты Y на 9
#1A C1 C2 C3 С4 С5 С6 С7 C8 C9 C10 - вывести десять точек начиная с текущего места вниз с увеличением текущей координаты Y на 10
#1B C1 C2 C3 С4 С5 С6 С7 C8 C9 C10 C11 - вывести одиннадцать точек начиная с текущего места вниз с увеличением текущей координаты Y на 11
#1C C1 C2 C3 С4 С5 С6 С7 C8 C9 C10 С11 С12 - вывести двендалцать точек начиная с текущего места вниз с увеличением текущей координаты Y на 12
#1D C1 C2 C3 С4 С5 С6 С7 C8 C9 C10 С11 С12 С13 - вывести тринадцать точек начиная с текущего места вниз с увеличением текущей координаты Y на 13
#1E C1 C2 C3 С4 С5 С6 С7 C8 C9 C10 С11 С12 С13 С14 - вывести четырнадцать точек начиная с текущего места вниз с увеличением текущей координаты Y на 14
#1F C1 C2 C3 С4 С5 С6 С7 C8 C9 C10 С11 С12 С13 С14 С15 - вывести пятнадцать точек начиная с текущего места вниз с увеличением текущей координаты Y на 15
#20 - пока не используется
#21 - копирование предыдущего столбца
#22...#2F - пока не используются, но в будущем можно задействовать как команды копирования других предыдущих столбцов
#30...#3F - пока не используется, но в будущем можно задействовать как команды копирования из столбцов справа (оставшихся от предыдущего кадра)
#40...#5F - пока не используется
#60 N - переместить текущую координату X вправо на N столбцов, сбросив при этом текущую координату Y (при этом в пропущенных столбцах будет "просвечивать" предыдущий кадр)
#61 - переместить текущую координату X вправо на 1 столбец, сбросив при этом текущую координату Y
#62 - переместить текущую координату X вправо на 2 столбцa, сбросив при этом текущую координату Y
#63 - переместить текущую координату X вправо на 3 столбца, сбросив при этом текущую координату Y
#64 - переместить текущую координату X вправо на 4 столбца, сбросив при этом текущую координату Y
#65 - переместить текущую координату X вправо на 5 столбцов, сбросив при этом текущую координату Y
#66 - переместить текущую координату X вправо на 6 столбцов, сбросив при этом текущую координату Y
#67 - переместить текущую координату X вправо на 7 столбцов, сбросив при этом текущую координату Y
#68 - переместить текущую координату X вправо на 8 столбцов, сбросив при этом текущую координату Y
#69 - переместить текущую координату X вправо на 9 столбцов, сбросив при этом текущую координату Y
#6A - переместить текущую координату X вправо на 10 столбцов, сбросив при этом текущую координату Y
#6B - переместить текущую координату X вправо на 11 столбцов, сбросив при этом текущую координату Y
#6C - переместить текущую координату X вправо на 12 столбцов, сбросив при этом текущую координату Y
#6D - переместить текущую координату X вправо на 13 столбцов, сбросив при этом текущую координату Y
#6E - переместить текущую координату X вправо на 14 столбцов, сбросив при этом текущую координату Y
#6F - переместить текущую координату X вправо на 15 столбцов, сбросив при этом текущую координату Y
#70 N - переместить текущую координату Y вниз на N пикселов, оставив неизменной текущую координату X (при этом в пропущенных пикселах будет "просвечивать" предыдущий кадр)
#71- переместить текущую координату Y вниз на 1 пиксел, оставив неизменной текущую координату X
#72- переместить текущую координату Y вниз на 2 пиксела, оставив неизменной текущую координату X
#73- переместить текущую координату Y вниз на 3 пиксела, оставив неизменной текущую координату X
#74- переместить текущую координату Y вниз на 4 пиксела, оставив неизменной текущую координату X
#75- переместить текущую координату Y вниз на 5 пикселов, оставив неизменной текущую координату X
#76- переместить текущую координату Y вниз на 6 пикселов, оставив неизменной текущую координату X
#77- переместить текущую координату Y вниз на 7 пикселов, оставив неизменной текущую координату X
#78- переместить текущую координату Y вниз на 8 пикселов, оставив неизменной текущую координату X
#79- переместить текущую координату Y вниз на 9 пикселов, оставив неизменной текущую координату X
#7A- переместить текущую координату Y вниз на 10 пикселов, оставив неизменной текущую координату X
#7B- переместить текущую координату Y вниз на 11 пикселов, оставив неизменной текущую координату X
#7C- переместить текущую координату Y вниз на 12 пикселов, оставив неизменной текущую координату X
#7D- переместить текущую координату Y вниз на 13 пикселов, оставив неизменной текущую координату X
#7E- переместить текущую координату Y вниз на 14 пикселов, оставив неизменной текущую координату X
#7F- переместить текущую координату Y вниз на 15 пикселов, оставив неизменной текущую координату X
#80 N C B1 G1 R1 B2 G2 R2 ... - сохранить палитру из N цветовых составляющих B/G/R, начиная с индекса C
#81 C B G R - сохранить один цвет в палитре
#82 C B1 G1 R1 B2 G2 R2 - сохранить 2 цвета в палитре, начиная с индекса C
#83 C B1 G1 R1 B2 G2 R2 B3 G3 R3 - сохранить 3 цвета в палитре, начиная с индекса C
#84 C B1 G1 R1 B2 G2 R2 B3 G3 R3 B4 G4 R4 - сохранить 4 цвета в палитре, начиная с индекса C
#85 C B1 G1 R1 B2 G2 R2 B3 G3 R3 B4 G4 R4 B5 G5 R5 - сохранить 5 цветов в палитре, начиная с индекса C
#86 C B1 G1 R1 B2 G2 R2 B3 G3 R3 B4 G4 R4 B5 G5 R5 B6 G6 R6 - сохранить 6 цветов в палитре, начиная с индекса C
#87 C B1 G1 R1 B2 G2 R2 B3 G3 R3 B4 G4 R4 B5 G5 R5 B6 G6 R6 B7 G7 R7 - сохранить 7 цветов в палитре, начиная с индекса C
#88 C B1 G1 R1 B2 G2 R2 B3 G3 R3 B4 G4 R4 B5 G5 R5 B6 G6 R6 B7 G7 R7 B8 G8 R8 - сохранить 8 цветов в палитре, начиная с индекса C
#89 C B1 G1 R1 B2 G2 R2 B3 G3 R3 B4 G4 R4 B5 G5 R5 B6 G6 R6 B7 G7 R7 B8 G8 R8 B9 G9 R9 - сохранить 9 цветов в палитре, начиная с индекса C
#8A C B1 G1 R1 B2 G2 R2 B3 G3 R3 B4 G4 R4 B5 G5 R5 B6 G6 R6 B7 G7 R7 B8 G8 R8 B9 G9 R9 B10 G10 R10 - сохранить 10 цветов в палитре, начиная с индекса C
#8B C B1 G1 R1 B2 G2 R2 B3 G3 R3 B4 G4 R4 B5 G5 R5 B6 G6 R6 B7 G7 R7 B8 G8 R8 B9 G9 R9 B10 G10 R10 B11 G11 R11 - сохранить 11 цветов в палитре, начиная с индекса C
#8C C B1 G1 R1 B2 G2 R2 B3 G3 R3 B4 G4 R4 B5 G5 R5 B6 G6 R6 B7 G7 R7 B8 G8 R8 B9 G9 R9 B10 G10 R10 B11 G11 R11 B12 G12 R12 - сохранить 12 цветов в палитре, начиная с индекса C
#8D C B1 G1 R1 B2 G2 R2 B3 G3 R3 B4 G4 R4 B5 G5 R5 B6 G6 R6 B7 G7 R7 B8 G8 R8 B9 G9 R9 B10 G10 R10 B11 G11 R11 B12 G12 R12 B13 G13 R13 - сохранить 13 цветов в палитре, начиная с индекса C
#8E C B1 G1 R1 B2 G2 R2 B3 G3 R3 B4 G4 R4 B5 G5 R5 B6 G6 R6 B7 G7 R7 B8 G8 R8 B9 G9 R9 B10 G10 R10 B11 G11 R11 B12 G12 R12 B13 G13 R13 B14 G14 R14 - сохранить 14 цветов в палитре, начиная с индекса C
#8F C B1 G1 R1 B2 G2 R2 B3 G3 R3 B4 G4 R4 B5 G5 R5 B6 G6 R6 B7 G7 R7 B8 G8 R8 B9 G9 R9 B10 G10 R10 B11 G11 R11 B12 G12 R12 B13 G13 R13 B14 G14 R14 B15 G15 R15 - сохранить 15 цветов в палитре, начиная с индекса C
#90...#ED - пока не используются
#EE - метка конца фильма (подразумевалась как команда зацикливания)
#F0 B0 B1 B2 - метка начала нового кадра с 3-байтным номером, сохранённым в little-endian (Fn=B0+B1*256+B2*65536), эта команда сбрасывает текущие координаты X и Y в начало (левый-верхний угол)
#F1...#FE - пока не используется
#FF - метка окончания данных в текущем сегменте (используется как команда на загрузку очередной порции данных в 16K)