Форматы хранения графики ATM

atmturbo.nedopc.com - all about ATM Turbo (hardware, software ..)

Postby moroz1999 » 04 Feb 2019, 01:57

Я задумался о том, чтобы добавить поддержку расширенной графики в свою библиотеку по конверсии ZX картинок на PHP, и, следовательно, и на ZX-Art в том числе.
По документации более-менее разобрался, как устроен режим аппаратного мультиколора и режим EGA, но появились пара вопросов.
1. В аттаче лежит вытащенная с CP/M образа игры GREEN PEACE с помощью утилиты ATM CP-M Explorer. Если я правильно понимаю, первые 32000 - область пикселей (индексы палитры по 4 бита согласно устройству памяти из дока "Внутренняя архитектура и внешние устройства"), а после них в конце идут еще 128 байт, содержащих #c8 #28 и далее нули. Я правильно понимаю, что палитра с картинкой в этом случае не хранится? Что хранится в этих 128 байтах?
2. Есть ли где-нибудь значения всей палитры ATM в RGB-эквиваленте? Или есть формула конвертации?
3. Каковы дефолтные цвета палитры до её ручной смены?
4. Есть ли где-то примеры работ для аппаратного мультиколора?
Attachments
GP0.SCR
(31.38 KB) Downloaded 222 times
moroz1999
 
Posts: 5
Joined: 30 Jan 2019, 02:24
Group: Registered users

Postby Максагор » 04 Feb 2019, 06:08

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-аналогами.
Attachments
grfview.txt
Описание формата картинки под аппаратный мультиколор ATM - GRF/BLK
(4.92 KB) Downloaded 213 times
atm64.zip
Зазипованный файл палитры для Фотошопа (расширение ACT) со всеми 64-ю цветами палитры АТМ
(243 Bytes) Downloaded 56 times
User avatar
Максагор
 
Posts: 230
Joined: 26 Apr 2010, 21:07
Location: Москва
Group: Registered users

Postby moroz1999 » 05 Feb 2019, 01:35

Спасибо большое за подробный ответ. Я попробую пока что сделать поддержку EGA в дефолтной палитре. В принципе, можно сделать так:
1. Я попробую пока захардкожу дефолтную палитру в просмотрщик.
2. Попробую поконвертить разные имеющиеся образцы. Просмотрю, нет ли в каком-то из них чего-то дополнительного в тех 128 байтах.
3. Если нигде ничего нет, договоримся о хранении палитры в этих самых 128 байтах.
4. Выставлю дефолтную палитру всем картинкам, где её нет.
5. Где не подойдет - подберем как-нибудь вручную правильные цвета и зашьем их в тот же файл.

Как разберусь с EGA-поддержкой, поразбираюсь с аппаратным мультиколором. Спасибо за материалы, так значительно попроще будет, потому что в ОС TASiS или CP/M я не силен от слова совсем, и сам их едва ли нашел бы.
moroz1999
 
Posts: 5
Joined: 30 Jan 2019, 02:24
Group: Registered users

Postby moroz1999 » 07 Feb 2019, 02:24

В общем, текущие вопросы определились:
1. С форматом BLK (GRF) вроде как всё предельно ясно, займусь им следующим.
2. EGA с дефолтной палитрой удалось запустить. Собрал имеющиеся картинки из cp/m образов, нигде палитра не записана. Как лучше хранить палитру? Использовать тот же формат, что и в GRF (48 GRB яркостей в ascii)?
3. В паре игр наткнулся на формат PCI. Явно графика, но непонятно каким образом хранимая. Вряд ли буду его дальше копать, возможно, попробую просто RLE декомпрессию наугад применить.
4. Еще есть редактор NDRAW с форматом NDR. Непонятно, что за формат, и можно ли сохранить его в что-то другое. Пока не буду дальше его разбирать.
5. Еще нашел SCR размером 32896. Похож на обычный SCR, но столбцы в каком-то другом порядке хранятся. Есть ли по нему информация? Попробую его линейно отобразить, не по блокам. Что тогда в остатке 896 байт?
6. Есть еще мысль. Какие-то заставки можно попробовать просто снять скриншотом с эмулятора, а потом сконвертить их обратно в EGA дамп как-то. Или оставить в BMP. С какого эмулятора это можно сделать проще всего?
moroz1999
 
Posts: 5
Joined: 30 Jan 2019, 02:24
Group: Registered users

Postby moroz1999 » 07 Feb 2019, 03:14

Пункт 5 я разобрал. Это такой же EGA, только страницы целиком сохранены, с пробелами по 192 байта, плюс 128 байт довесок к файлу в конце от CP/M.
moroz1999
 
Posts: 5
Joined: 30 Jan 2019, 02:24
Group: Registered users

Postby Максагор » 12 Feb 2019, 16:49

moroz1999 wrote:Использовать тот же формат, что и в GRF (48 GRB яркостей в ascii)?

На усмотрение. Нет каких-то предпочтений. Можно так. А можно готовые байты для автоматического закидывания в порт палитры.

moroz1999 wrote:Еще есть редактор NDRAW с форматом NDR. Непонятно, что за формат, и можно ли сохранить его в что-то другое. Пока не буду дальше его разбирать

Этот редактор известен в своей недоделаной "сырой" версии, под который имебтся только несколько файлов картинок. Развития не получил.

moroz1999 wrote:а потом сконвертить их обратно в EGA дамп как-то. Или оставить в BMP. С какого эмулятора это можно сделать проще всего?

Я использую для всего эмулятор Unreal. Там есть возможность сохранять блоки памяти и включение #7FFD страниц. Далее просто сохраним страницы 5 и 1 (в такм порядке) или, если используется альтернативный экран - 7 и 3, склеим вместе, добавим 128 байт и получим тот самый SCR размером 32896 байт.
User avatar
Максагор
 
Posts: 230
Joined: 26 Apr 2010, 21:07
Location: Москва
Group: Registered users


Return to ATM turbo - софт и железо

Who is online

Users browsing this forum: No registered users and 2 guests

cron