================================== Silent Hill Origins Loc-kit (PSP) ================================== Version 1.0 03.05.2009 ================================== Copyright © 2009 by HoRRoR. Email: ho-rr-or@mail.ru horrog.cg@gmail.com Web: http://consolgames.ru/ ОПИСАНИЕ ~~~~~~~~ Этот инструментарий является набором утилит, который был написан для перевода Silent Hill Origins на русский язык командами Consolgames и Exclusive. Сам перевод вы можете найти по адресу: http://consolgames.ru/translations/Silent_Hill_Origins УТИЛИТЫ ~~~~~~~ В инструментарий входят 6 утилит: - SHExtract v2.0 Утилита для извлечения файлов из ARC. - SHPack v2.0 Утилита для сборки новых архивов или замены файлов в существующих. - SHTextConv v1.0 Утилита, конвертирующая языковые файлы (Strings.*) в txt-файлы. - SHTextBuild v1.0 Утилита, конвертирующая txt-файлы обратно в языковые файлы игры. - SHTXD v1.0 Утилита для просмотра и редактирования TXD-файлов (контейнеров текстур). - CMIViewer v1.0 Утилита для просмотра и редактирования файлов карт локаций (*.CMI). ДОКУМЕНТАЦИЯ ~~~~~~~~~~~~ ========= SHExtract ========= Данная утилита предназначена для распаковки игровых архивов в формате игры и представляет из себя консольное приложение. Использование: SHExtract [ListFile] InFile: Входной архив. OutDir: Выходная папка, куда будут распакованы файлы. ListFile: Список распакованный файлов с инофрмацией о сжатии. Создаётся, если указан путь. Может быть использован при сборке или пропатчивании архива утилитой SHPack. ====== SHPack ====== Данная утилита предназначена для сборки архивов в формате игры и представляет из себя консольное приложение. Использование: SHPack [-patch] [keys] [InDir1, InDir1, ..., InDirN] Keys: -p: Сохранять пути пакуемых файлов. Данный ключ не следует использовать при сборке архивов для игры, он предназначен только для тех случаев, когда пользователь хочет использовать архив на своё усмотрение и ему надо сохранить пути (например, чтобы осталась структура папок). -s: Обрабатывать вложенные папки. Данный ключ добавляет файлы в архив из всех подпапок в выбранной директории. В совокупности с предыдущим ключом можно получить полноценный архив со структурой папок. -c: Использовать сжатие (zlib/deflate). Данный ключ рекомендовано использовать, если вы собираете архив SH.ARC. В других случаях используется на усмотрение пользователя. -patch: Данный ключ позволяет заменить определённые файлы без пересборки самого архива. Например, если вы хотите быстро увидеть внесённые изменения и нет смысла делать полную пересборку архива. LST: Путь к LST-файлу, сгенерированному SHExtract. FOLDER: Папка с файлами, которые следует добавить в архив. ARC: Путь к создаваемому архиву. InDir: Список папок, в которых следует искать файлы, если использован список вместо входной папки. ========== SHTextConv ========== Утилита для конвертирования языковых файлов игры в текстовые файлы. Использование: SHTextConv StringsFile: Выходной языковой файл игры. Папка с указанным файлом должна существовать. TextFile: Текстовый файл, ранее сгенерированный с помощью SHTextConv. На выходе получится текстовый файл со структурой: [hash1] string1 [hash2] string2 ... [hashN] stringN Где hash - уникальный идентификатор каждой строки, string - сам текст. Нарушение структуры, а также подмена идентификаторов может быть чревата неправильной компиляцией языкового файла и может вызвать ошибки вплоть до зависания игры. В тексте используются три тега: - цвет, который задаётся значением x. - кнопка, номер которой задаётся значением x. - показатель "жирности" текста, задаётся значением x. =========== SHTextBuild =========== Утилита для конвертирования текстовых файлов обратно в языковые ресурсы. Использование: SHTextBuild TextFile: Текстовый файл, ранее сгенерированный с помощью SHTextConv. StringsFile: Выходной языковой файл игры. Папка с указанным файлом должна существовать. ===== SHTXD ===== Утилита для просмотра и редактирования текстур, хранящихся в TXD-контейнерах. Основная часть интерфейся интуитивно-понятная. Остальные функции: File - Scan File: Сканировать файл на наличие текстур. - Extract All Images: Извлечь все текстуры из всех файлов, содержащих текстуры из указанной папки. - Replace Textures: Находит и заменяет текстуры из указанной папки во всех файлах в папке назначения. - Copy If Exists Pics: Копирует файлы, в которых содержится хотя бы текстура из указанной папки с изображениями. Edit - Copy To Bitmap: Сохраняет текстуру в файл. - Paste From Bitmap: Загружает текстуру из файла. - Save Palette: Сохраняет палитру в файл. Options - Replace Palette: Заменять палитру при загрузки текстуры из изображения. - Ignore Bit Count: Позволяет читать 256-цветные изображения как 16-цветные. Внимание, если используется более 16 цветов - остальные просто пропадут! При работе с текстурами ни в коем случае нельзя изменять их цветность! Другими словами, действует правило: с какой цветностью извлёк - с такой и вставил. Поддерживается только bmp-формат. Также утилита поддерживает командную строку: SHTXD -ce [-dc] Аналогично функции Copy If Exists. Ключ -dc здесь и далее обозначает "не закрывать приложение по завершению операции". SHTXD -rt [-dc] Аналогично функции Replace Textures. ВНИМАНИЕ! При написании программы не уделялось внимания контролю за ошибками, поэтому важна аккуратность при её использовании. ========= CMIViewer ========= Утилита для _приблизительного_ просмотра карт и их редактирования. Прошу обратить внимание, что утилита не даёт точный вид карты как в игре, а даёт лишь приближённый вариант, поэтому не стоит пугаться всяких кривостей отображения - в игре их не будет. Следует заметить, что все карты в игре имеют своеобразное сжатие, а вернее - оптимизацию. Имеется три слоя - фон, нижний слой и верхний слой. Фон хранится отдельно, а вот слои разбиты на тайлы (квадратики) размером 32x32, которые должны быть вмещены на полотно размером 512x512. Координаты тайлов хранятся в отдельной таблице. В связи с этим, при сохранении карт требуется время, чтобы их сжать, причём разработчики позаботились, чтобы по совместительству это стало своеобразным видом защиты - не все изменённые карты удаётся ужать до нужных размеров. Процесс сжатия в утилите происходит автоматически и визуально отображает информацию о ходе прогресса. Советы по редактированию карт: - Поставьте в графическом редакторе сетку 32x32 и пытайтесь делать так, чтобы тайлы были как можно более похожи друг на друга и было как можно больше пустых тайлов. Например, если какая-нибудь надпись выезжает на один пиксель в соседний тайл, который в остальном пространстве пуст, то лучше сдвинуть эту надпись так, чтобы тайл стал полностью пустым. - Удаляйте всё лишнее. Точки, едва видимый "мусор", лишние вкрапления пикселей - всё это сильно отражается на процессе сжатия. Пытайтесь сделать изображение как можно более "чистым". - По возможности используйте как можно меньше разных цветов, это только поспособствует процессу сжатия. Основная часть интерфейся интуитивно-понятная. Остальные функции: MaxLevel0: Использовать максимальный уровень оптимизации для нулевого слоя. MaxLevel1: Использовать максимальный уровень оптимизации для первого слоя. Method: Способ оптимизации при сохранении карты: - Abstract: Самый долгий и неоптимальный способ. Тайлы раскидываются неструктурно, по местам, на которых более всего пикселей совпадает с уже сформированным фоном. - Grid: Оптимизация не используется, тайлы просто располагаются "решёткой". Самый быстрый способ, но совершенно неэффективный. - Columns: Оптимизация с выравниванием по столбцам. - Rows: Оптимизация с выравниванием по строкам. - Columns & Rows: Смешанный вариант, теоретически должен быть эффективнее двух предыдущих. Два ползунка в окне прогресса сжатия предназначены для изменения уровня сжатия обоих слоёв "на ходу". ВНИМАНИЕ! При написании программы не уделялось внимания контролю за ошибками, поэтому важна аккуратность при её использовании.