Инструментарий для работы с ресурсами конструктора мультфильмов от издателя MediaHouse.
Детский конструктор мультфильмов из конца девяностых. Разработан Basi.
Известные релизы/редакции:
- Мульти-Пульти
- Новые Бременские
- Незнайка и все-все-все
- Мои любимые герои
Директория BMP/* включает в себя основные ресурсы движка.
-
anm.lib- анимации, внутренний форматAN. -
anm_s.lib- предварительный просмотр анимаций при выборе в меню. -
fon.lib- фоновые изображения сцен. -
fon_s.lib- предварительный просмотр фоновых изображений при выборе в меню. -
stat.lib- статичные объекты (изображения), RGB(0,0,255) замещается прозрачным. -
stat_s.lib- предварительный просмотр статичных объектов (изображений). -
wav_ef.lib- эффекты. -
wav_mus.lib- музыка.
Для увеличения занимаемого места на диске разработчики (или издатель) добавляли ресурсы пустышки, которые не являются корректными библитеками, например, WAV_NRT.LIB или WAV_TIR.LIB.
За исключением файлов анимаций, остальные форматы файлов (BMP и WAV) являются стандартными, но с модифицированным заголовком.
libex автоматически преобразовывает заголовок к стандартному при упаковке или извлечении файлов из архивов:
- WAV, PCM, 16bits
- BMP, 8-bit
Инструменты командной строки для упаковки/распаковки и преобразования ресурсов.
Требования
- Python > 3.8
Распаковщик\упаковщик игровых архивов (.lib)
- Распаковывает архивы всех типов: анимации, превью анимаций, фоны, превью фонов, музыку и звуки.
- Упаковывает ресурсы (
BMP,WAV,ANM) в архивы. - Поддерживает версии архивов:
0и1. - Автоматически конвертирует ресурсы типа
BMPиWAVиз внутреннего в стандартный формат.
Распаковать библиотеку.
| Option | Default | Description |
|---|---|---|
-h/--help |
Список доступных команд | |
-i/--input |
Исходный lib файл | |
-o/--output |
Выходной каталог для извлечения файлов | |
-r/--raw |
false |
Извлечение сырых данных (без преобразования) |
Собрать файлы в билиотеку.
| Option | Default | Description |
|---|---|---|
-h/--help |
Список доступных команд | |
-i/--input |
Путь к каталогу для упаковки | |
-o/--output |
Выходной lib файл | |
-t/--type |
Тип выходной библиотеки: bmp_v1, bmp_v2, anm_v1, anm_v2, anm_v3, wav_v1 or wav_v2 |
|
-v/--version |
1 |
Версия архива [0,1] |
-r/--raw |
false |
Упаковка сырых данных (без преобразования) |
-s/--strict |
true |
Автоматическое усечение имен файлов |
Конвертер анимаций версии 1 в версию 2 для новых исполнительных файлов игры (движка).
| Option | Default | Description |
|---|---|---|
-i/--input |
Путь к каталогу или файлу анимации | |
-o/--output |
Путь к выходной каталогу или файлу анимации |
:: Распаковка
libex unpack -i fon_s.lib -o out_fon_s
Unpack lib: fon_s.lib
Type: bmp_v1
Version: 1
Files count: 4
Raw mode: False
Extracting...
1.bmp : ok
2.bmp : ok
3.bmp : ok
4.bmp : ok
Done
:: Упаковка
libex pack -i out_fon_s -o fon_s_copy.lib -t bmp_v1 -v 1
Processing...
1.bmp : ok
2.bmp : ok
3.bmp : ok
4.bmp : ok
Lib: fon_s_copy.lib
Type: bmp_v1
Version: 1
Total files: 4
Raw mode: False
Truncate filename: True
DoneТест корректности обработки с использованием заранее подготовленных файлов.
Шаблоны разбора библиотек для 010 Editor можно взять тут.
Небольшой патч, сделан на основе наиболее свежего исполнительного файла (выбран по размеру и дате сборки из доступных образов в сети).
- Исправляет проблему совместимости с Windows 8 - Windows 10 [x64] (на тех системах, где игра не запускалась).
- Исправляет проблему отрисовки с кривыми координатами при использовании высокого DPI в системе.
- Полноэкранный режим. Параметр
Fullscreen=1вSetup.ini, автоматически изменяет разрешение дисплея до разрешения игры, после завершения процесса игры восстанавливает. - Читает ресурсы из директории приложения, исправляет явление, когда возникала проблема "потери ресурсов" при запуске с ярлыка.
Состав:
multic.exe- относительно свежий движок, использует библиотеки версии1, анимации версии2.ddraw.dll- фикс отрисовки полноэкранного режима (основан на ddraw от elishacloudх) и фикс работы при высоком DPI.kernelex.dll- фикс доступа к выделенной памяти.
-
Падение приложения при соранении фильма:
Скорее всего функция сохранения\загрузки фильмов некорректно читает или создает файл внутреннего формата, не ресерчилось.
unpack_all.py - распаковывает все бибилиотеки с диска в указанную папку.
combine_multi.py- сбор файлов из sources в target директорию без дубликатов.
Шаблон установщика на базе InnoSetup для собственнной сборки.


