![]() |
Добро пожаловать, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Siberian GRemlin |
![]()
Сообщение
#1
|
![]() Advanced Member ![]() ![]() ![]() Группа: CTPAX-X Сообщений: 537 Регистрация: 4-February 08 Пользователь №: 2 Спасибо сказали: 221 раз(а) ![]() |
У меня такая проблема: игра Blade Runner, текст из псевдоархивы вынул, формат текста разрыл, написал редактор. Но вот игра выпущена в нескольких версиях английская, французская и германская (вроде всё). Язык меняется в blade.ini
QUOTE [Language] Если поменять язык с ENG на GER, то игра перестанет воспринимать текст из своих файлов. А поскольку в псевдоархиве хранятся не имена, а только ID, и как я понял имя файла или его расширение зависит от языка. Кто-нибудь может посмотреть в .EXE'шнике, как формируется имя файла в зависимости от языка?! Как я понял файлы с текстом содержат в имени:Language=ENG //или GER или... QUOTE ACTORS и по всей видимости там должно быть какое-то расширение. К сожелению, эксперемениты ни к чему не примели =(CLUETYPE CRIMES DLGMENU KIA OPTIONS SPINDEST VK Вот BLADE.EXE |
-=CHE@TER=- |
![]()
Сообщение
#2
|
Walter Sullivan ![]() ![]() ![]() Группа: Root Admin Сообщений: 1,360 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 313 раз(а) ![]() |
Понимаю, что это было давно - но всё ещё актуально, нет?
Посмотрел бегло код (игры у меня нет) - там по-умолчанию язык ENG, и вместо него читаются из файла другие 3 буквы - какие указал. А дальше - см. ссылку на byte_482778 - это первая из этих 3-х букв (остальные не используются). Например имя звуковых файлов там так формируются: // предположим, что: // byte_482778 = "E" // num1 = 3 // num2 = 4 // тогда sprintf(outstr, "%02d-%04d%s.AUD", num1, num2, byte_482778); // outstr = "03-0004E.AUD" Имена формируются посредством strcat() в виде "ИМЯ" + ".TR" + byte_482778 Например как-то так: CLUETYPE.TRE Соответственно, для GER будет CLUETYPE.TRG Не проверял, т.к. игры нет, но судя по коду в IDA, где-то так всё и есть. При наличии игры - это можно легко в Ольке проверить - ставь бряк на обращение к памяти и всё. |
Siberian GRemlin |
![]()
Сообщение
#3
|
![]() Advanced Member ![]() ![]() ![]() Группа: CTPAX-X Сообщений: 537 Регистрация: 4-February 08 Пользователь №: 2 Спасибо сказали: 221 раз(а) ![]() |
|
-=CHE@TER=- |
![]()
Сообщение
#4
|
Walter Sullivan ![]() ![]() ![]() Группа: Root Admin Сообщений: 1,360 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 313 раз(а) ![]() |
А вот откуда это имя файла взялось (со звуковыми файлами я ещё не разобрался) ? Не знаю - поищи строчку %02d-%04d%s.AUD и ссылку на неё перед её использованием или функцией где она обрабатывается - там где-то рядом тоже берётся byte_482778, поэтому про неё и написал. Откуда первые два числа берутся - не знаю, бегло смотрел, углубляться времени не было (скорее всего это номер главы игры и номер звука в этой главе).Спасибо сказали:
|
-=CHE@TER=- |
![]()
Сообщение
#5
|
Walter Sullivan ![]() ![]() ![]() Группа: Root Admin Сообщений: 1,360 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 313 раз(а) ![]() |
Вот такую штуку нашёл: Reverse Engineering Blade Runner
Там много интересного, автор практически полностью дизассемблировал игру (см. The Blueprint), чтобы поддержку в ResidualVM добавить (ветка ScummVM). Правда сайт уже два года не обновляется и есть предположение, что не взлетит. Размер конский (ширина), но, если прокрутить, то справа есть меню со статьями и информаций по форматам и многим другим вещам. Я недавно читал про Blade Runner (игру так и не успел посмотреть) и там было сказано про две пасхалки через командную строку: SITCOM и SHORTY. Сделав поиск в BLADE.EXE увидел после них ещё слово MS3TK, но погуглив в Интернете, нашёл только этот сайт, где в The Blueprint оно было упомянуто. Так что чего оно делает не знаю (повторюсь, в игру не играл и качать мне влом). |
![]() ![]() |
Упрощённая версия | Сейчас: 9th September 2024 - 06:50 |