Перейти к содержимому
Zone of Games Forum

adm-244

Новички+
  • Публикации

    7
  • Зарегистрирован

  • Посещение

Репутация

6 Нейтральная

О adm-244

  • Звание
    Новичок

Информация

  • Пол
    Мужской
  1. Вскрытие Gangland

    Файлы фрагментно зашифрованны с использованием операции XOR по “ключу”. Структура файла: uint32 : dataOffset — смещение на начало секции с файлами uint8 : globalFlags — флаги характеризующие файл: 0x1 — указывает файловому менеджеру игры, что файлы нужно расшифровать сразу же при открытии архива 0x2 — указывает, что каждое вхождение файла в таблице содержит дополнительные флаги 0x4 — указывает, что таблица файлов зашифрована Структура таблицы файлов: uint16 : count — количество файлов в архиве <далее вхождения файлов> Структура вхождения файла в таблице: cstring : filename — относительный путь к файлу \ название файла uint32 : size — размер файла #if globalFlags & 0x2 uint8 : flags — дополнительные флаги файла: 0x1 — файл зашифрован #endif Что касается шифрования, это тот же самый алгоритм, что используется в игре “The Escape from Paradise City”, который представлен в скрипте для quickBMS (я так понимаю именно он и использовался для распаковки других файлов): Отличие только в используемом ключе: key = dataOffset + 0x00E6C2CF — ключ для таблицы файлов key = dataOffset + file.Offset + (file.Size * 7) — ключ для файла Удалось написать программку и распаковать представленные архивы. Найти её можно здесь: Прямая ссылка (GitHub)
  2. Добавил поддержку промежутков для задания последовательности строк (например, 1000-1100). Также сделал выходной файл не обязательным параметром. Если он не указан, то запись осуществляется во входной файл. Ссылка: zog_re-encoder_v02 Насчет неправильной конвертации у представленных программ. Проблема заключается в том, что некоторые символы Windows-1251 закодированные как UTF-8 являются, так называемыми, “управляющими символами” и многими текстовыми редакторами игнорируются или заменяются на другие. Отсюда и “пропажа” символов.
  3. Вскрытие ресурсов игры 1998 года

    Поработал над распаковщиком для этой игры, но из-за нехватки времени и утраты интереса, по итогу, как говорится, забил :-) Были разобраны форматы файлов: .dat (архив), .clc (палитра), .zft (растровый шрифт), частично .zim (графика задников и спрайты) и .mod (описание игровых объектов). На данный момент имеется распаковщик, некоторые части упаковщика и совсем сырой графический пользовательский интерфейс. Если ещё актуально, все эти наработки можно найти тут: CC98Unpacker (github). EDIT: Текст находится в файлах “.mod”. “Дергалка” текста из них реализована.
  4. Насколько я понял нужно указанные строчки в UTF-8 файле преобразовать в кодировку Windows-1251 и записать обратно в файл как UTF-8. Ссылка на программу: zog_re-encoder_v01 Подробности в readme файле. P.S. Для преобразования индивидуальных строк можно использовать эту программку: CyrillicConverter
  5. Metaphobia

    Да, для главного меню, меню загрузки и настроек точно. Для остального нужно отдельно смотреть, не проверял. Факт в том, что во многих местах используется конструкция вида: if (Game.TranslationFilename != "") { button.NormalGraphic = 1; button.MouseOverGraphic = 2; button.PushedGraphic = 3; gui.BackgroundGraphic = 4; <...> } Тоесть, при использовании любого *.tra файла, игра меняет графику кнопок и задников элементов интерфейса на немецкий аналог и оригинальная графика на английском не используется. Скорее всего разработчики хотели добавить поддержку нескольких языков, но столкнулись с трудностями и решили не заморачиваться, а часть кода (или весь) так и остался висеть в GlobalScript.
  6. Metaphobia

    Проблема оказалась вполне банальной. Разработчик в GlobalScript в функции game_start добавил вызов функции Game::ChangeTranslation с пустым параметром. Таким образом, при запуске игры файл с переводом (*.tra) обнуляется и перевод не используется. Проблему можно решить двумя способами: Модифицировать GlobalScript и убрать вызов Game::ChangeTranslation; Пропатчить движок, чтобы вызов Game::ChangeTranslation не менял перевод. Самое простое решение под номером два. Пропатченный acwin.exe прикрепляю. Скачать. P.s. Во многих местах в игре сделана проверка наличия файла с переводом, и, если он обнаружен, то графика меняется на немецкий вариант.
  7. Структура файловой таблицы.

    Вы не написали удалось ли открыть распакованный файл с установленным флагом, поэтому предположу, что скорее всего этот флаг показывает наличие сжатия. Первые 4 байта — размер сжатого файла, вторые 4 байта — размер исходного файла.
Zone of Games © 2003–2024 | Реклама на сайте.

×