![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 | |
Недо
Участник клуба
Регистрация: 11.08.2011
Сообщений: 1,394
|
![]() Цитата:
С помощью программирования можно разбогатеть и изменить мир к лучшему (с) Бьерн Страуструп
|
|
![]() |
![]() |
![]() |
#12 |
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
![]() |
![]() |
![]() |
![]() |
#13 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
Так ведь не плохо помогли. Даже формат и структуру файла примерную рассказали.
|
![]() |
![]() |
![]() |
#14 | |
Недо
Участник клуба
Регистрация: 11.08.2011
Сообщений: 1,394
|
![]() Цитата:
![]()
С помощью программирования можно разбогатеть и изменить мир к лучшему (с) Бьерн Страуструп
|
|
![]() |
![]() |
![]() |
#15 |
Пользователь
Регистрация: 09.07.2011
Сообщений: 17
|
![]()
Я скачал архив: там лишь распакованные из zlib данные. А там-то как раз самое интересное! Кроме того, этот формат изменялся с выходом новых игр. Мне стало интересно, и я начал разбирать старые игры студии «Сатурн-плюс».
Первая игра "9 Принцев Амбера" была написана на другом движке. После этой игры студия в студии произошла смена руководства. Игры стали делать на другом движке. Первой игрой на новом движке стал квест "Новые Бременские". Формата mult там нет, но есть *.casm. Но в этом формате присутствуют лишь пути к кадрам и ещё какая-то информация, возможно, координаты. Сами изображения храниться в запакованном формате BMP, который я сегодня разобрал. Структура довольно простая: 4 байта на ширину, 4 байта на высоту и 4 байта — размер сжатой картинки в байтах. Само изображение сжато алгоритмом, чем-то схожим с RLE: байт на количество пикселе, 4 байта на (RGBA). Также есть ещё файлы *.MSK, но меня они не интересуют: скорее всего там зона, где разрешено ходить — "floor". Потом вышла игра "Приключения Поручика Ржевского", где структура точно такая же. А вот уже в игре "Агент: Особое Задание" появляется формат mult. Разница с последующими играми лишь в сжатии zlib (тут его нет) и в дополнительно информации. Следующим большим 2D проектом студии стала игра "Петька 3: Возвращение Аляски", где и появилась запаковка в Zlib. После этой игры структура файла практически не менялась. В целом мне понравился алгоритм сжатия в MULT, достаточно хорошо сжимает. Разбирали Штырлица 1-2 (основной алгоритм распаковки изображений писал не я, я лишь написал с его использованием распаковку всего архива), так его способ проигрывает во времени распаковки и, что самое главное, в объёме. Там, правда, формат другой, в двух словах не расскажешь. Если кратко: тупа всё запаковано в архив (в начале есть таблица файлов), у самих ресурсов (картинки, музыка) формата нет; звуковые файлы без заголовка. Уступает формат из Штырлица ещё в количестве цветов: если фоны запакованы с выделением 2 байта на цвет, то в анимациях палитра всего на 256 цветов. В MULT же 4095 цветов. Один минус формата — нули вместо неиспользованных цветов при условии, что в файле есть информация о количестве цветов в формате. То есть, если в изображении 200 цветов (на каждый цвет по 4 байта), в палитру будут записаны эти цвета и 0x00 на 16к байт вместо неиспользованных цветов. Я же для себя написал запаковщик в "свой" формат mult, где убрал ненужную мне информацию. Естественно, формат разобран не до конца: есть пустые кадры, непонятная информация, которая никак не влияет на игровой процесс (по крайней мере при изменении ничего не происходит). Вдобавок координаты записаны в формате одинарной точности. В общем, формат интересный. ![]() |
![]() |
![]() |
![]() |
#16 | |
Заблокирован
Регистрация: 26.05.2015
Сообщений: 9
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Тестовый файл. Найти сумму всех чисел, входящих в этот файл. (Паскаль) | Homeros | Помощь студентам | 1 | 26.01.2011 14:05 |
Типизированный файл с натуральными числами. Числа, встречающиеся 1 раз переписать в другой файл [Паскаль] | mifomen | Помощь студентам | 7 | 16.12.2010 22:00 |
WinInet загрузить файл во временной файл , использовать, потом удалить | Человек_Борща | Работа с сетью в Delphi | 5 | 03.08.2010 13:46 |
C++. Прочитать файл и вывести в другой файл каждую N-ую строку | Straiker | Помощь студентам | 3 | 15.12.2009 05:49 |
Ссылка на файл из текущей папки! Сбор инфы в один файл! | mephist | Microsoft Office Excel | 11 | 10.07.2009 13:51 |