moroz1999 wrote:1. В аттаче лежит вытащенная с CP/M образа игры GREEN PEACE с помощью утилиты ATM CP-M Explorer. Если я правильно понимаю, первые 32000 - область пикселей (индексы палитры по 4 бита согласно устройству памяти из дока "Внутренняя архитектура и внешние устройства"), а после них в конце идут еще 128 байт, содержащих #c8 #28 и далее нули. Я правильно понимаю, что палитра с картинкой в этом случае не хранится? Что хранится в этих 128 байтах?
Это не только картинки из данной игры. Данный формат применялся в нескольких играх. Помимо GP - еще как минимум в Bomb Tetris, Line, Color fight и Color Logic. Может еще где - уже не помню.
Вроде все правильно с форматом пикселей. И вроде бы действительно палитры в картинках не было - она определялась где-то в игре. 14 лет назад, до "миграции на ОС TASiS" я писал под CP/M утилиту-просмотрщик данных картинок, и тоже палитры не нашел, и утилиту забросил. Так с "несовпадающей" палитрой они и выводятся. Сама утилита с набором картинок из разных игр лежит здесь:
http://atmturbo.nedopc.com/download/cpm ... xutils.zipЧто же касается последних 128 байт, то скорее всего большинство из них не означают ничего, так как размеры файла в CP/M могут быть только кратными 128 байтам, и большая часть из последних 128 байт - просто "хвост". Что же касается этих двух байт, то я подозреваю, что #C8=200dec - это высота картинки в пикселях, а #28(40dec(x8=320)) - это ширина картинки в знакоместах по 8 пикселей. Точно не уверен, то логика подсказывает, что это именно так.
moroz1999 wrote:2. Есть ли где-нибудь значения всей палитры ATM в RGB-эквиваленте? Или есть формула конвертации?
Цвета RGB в палитре АТМ имеют 4 градации(уровня) яркости (итого 4x4x4=64 цвета) от 0 (цвет выключен совсем) до 3 - максимально яркий. Обычно при конвертации BMP-картинок на АТМ я использую следующие эквиваленты RGB:
Уровень 0 (цвет выключен) = #00
Уровень 1 (тусклый) = #55
Уровень 2 (эквивалентен Bright 0 на ZX) = #AA
Уровень 3 (эквивалентен Bright 1 на ZX) = #FF
В аттаче прилагаю полную палитру всех 64 цветов палитры АТМ для фотошопа для использования при конвертации картинок на АТМ.
moroz1999 wrote:3. Каковы дефолтные цвета палитры до её ручной смены?
Так как палитра хранится в ОЗУ на основе м/с 155РУ2/РУ9, то сразу после включения компьютера она или обнулен, или заполнена случайным мусором. При старте ПЗУ Биоса, он ее инициализирует. в CP/M палитра по дефолту соответствует палитре спектрума (т.е. стандартные 15 цветов, где ярко-черного нет, а включен второй такой же черный).
moroz1999 wrote:4. Есть ли где-то примеры работ для аппаратного мультиколора?
Есть целый графический редактор GRAF под CP/M для работы с цветными картинками аппаратном мультиколоре:
http://atmturbo.nedopc.com/download/cpm ... f/graf.zipКартинки имеют расширение BLK. Под эти картинки написан просмотрщик в ОС TASiS - так как расширение BLK в этой системе совпадает с расширениями драйверов дисков, оно там заменено на расширение GRF при сохранении собственно формата.
Просмотрщик под TASiS:
http://atmturbo.nedopc.com/download/isd ... rfview.ipcОн запакован в формате исдосного архиватора iS-packer (с расширением IPC). Если лень лезть в эмулятор, запускать TASiS и там распаковывать, есть еще просмотрщик от ALONE CODERа под TR-DOS:
http://atmturbo.nedopc.com/download/trd ... mcxv04.zipИ там и там в архивах прилагается файл описание формата BLK/GRF. Впрочем, кидаю тут в аттаче.
А вот тут можно скачать ZIP-архив с примерами этих картинок - как чб, так и цветных:
http://atmturbo.nedopc.com/download/isd ... f_pict.zipЕще хочу обратить внимание, что под EGA-режим 320х200 в ОС TASiS существует еще один графический формат - BMS. Это почти как BMP, но отличается от него иным расположением растра, более удобным для быстрого вывода на экран АТМ с его вертикальной "чересполосицей" (предназначен для вывода спрайтов, иконок и проч. в графических интерфейсах). Есть также под эту систему конвертер из BMP в BMS. Соответственно, в отличие от SCR - там есть полноценная палитра.
Сейчас под рукой нет, но на днях постараюсь прислать примеры BMS-картинок в паре с их BMP-аналогами.