1. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление
    1. Если вы сделали перевод или русификацию игры, то вы можете поделиться своим творением здесь.
    2. О правилах вступления в группу переводчиков можно прочитать здесь.
    3. Русификации следует искать там.
  2. Пожалуйста, внимательно прочитайте правила раздела.

[песочница] Call of Cthulhu: Shadow of the Comet

Тема в разделе "Переводы своими руками", создана пользователем Mefistotel, 18 мар 2013.

  1. Mefistotel

    Mefistotel

    Регистрация:
    9 мар 2013
    Сообщения:
    156
    user66609_pic522_1382504995.gif


    большая картинка

    Доброго времени суток.
    Честно говоря, переводами под DOS ещё не занимался. Хотелось бы попросить помощи знатоков в поиске ресурсов в игре Call of Cthulhu: Shadow of the Comet. В первую очередь интересует конечно текст и шрифты. Как я понял, в играх под DOS может использоваться абсолютно разная кодировка. В образе игры множество архивов .pac с ничего не говорящими названиями (кроме mus.pak, res.pak). Искал в папке "shadow". Архивы открываются программой GameExtractor и в них содержатся ещё десятки файлов. Честно говоря, извлекает их она под моей win 7 х64 как-то непонятно, с 10 раза. Может посоветуете более оптимальный софт для этого.
    Прогонял TC на поиск слов в файликах, но он только ищет в аски. Не факт, что здесь простая кодировка.:hmmm: Поэтому поиск не дал каких-то результатов.
    Буду рад, если подскажете какой-нибудь дебагер или что-нибудь такое, чтобы можно было дампить видеопамять (или хотя бы смотреть) и ставить брейкпойнты.:banghead:
    Если такое вообще под DOS-ом возможно.
    А лучше подскажете что-нибудь по формату хранения текста и шрифтов в этой игре.:rolleyes:

    --------------сообщение от kirik-82
    проект перевода на беноиде

    Рукописи из коробки с диском:
    Captain Robins' Report
    Заявление капитана Робина

    Jack Reeves Report
    Доклад Д. Т. Ривза

    Forester Note
    Послание Форестера

    Death Certificate
    Свидетельство о смерти

    Arkham Planetarium
    Аркхемский планетарий
     
    Последнее редактирование: 30 дек 2015
    bloodsonik, AndyFox, Kairn и 10 другим нравится это.
  2.  
  3. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    28.747
    Mefistotel, посмотри утилиты по AitD, может, подойдут? http://svn.old-games.ru/listing.php...+the+Dark/&#a8a7df347ee52b14d01a238a201dcc37f

    Есть версии досбокса с дебаггером.
     
    Mefistotel нравится это.
  4. Xatriks

    Xatriks

    Регистрация:
    1 мар 2012
    Сообщения:
    254
    Offtop
    Ох, ничего себе, старая игра по мифам Лавкрафта - надо обязательно поиграть, большое спасибо, даже не знал, что есть ещё что-то кроме Dark Corners of the Earth.
     
  5. TERMiN8!

    TERMiN8!

    Регистрация:
    19 янв 2006
    Сообщения:
    52
    Аналогично.
    PS А она разве на движке AitD?
    хотя по скринам похожа:
    http://www.old-games.ru/games/pc/ca...f_the_comet/screenshots/545_4b41436d28398.jpg
     
    Последнее редактирование: 19 мар 2013
  6. Mefistotel

    Mefistotel

    Регистрация:
    9 мар 2013
    Сообщения:
    156
    Попробовал распаковать архивы анпакером aitd, но ничего не вышло.
    На семерке выдаёт такую вот ошибку. :( И через батник запускал и через командную строку, всё равно ошибка.
    47a4faf861ad511670e181ea06ebfc12.png
    Пока не разобрался с чем, это связано. Дистрибутив visual C++ у меня стоит разных версий (2005, 2008, 2010).
    А сборку DOSBox SVN Daum с дебагером скачал. Новый для себя асм жуть как не хочется изучать, но здесь, как я понял, видны названия файлов, к которым идёт адресация. И при появление текста мелькают архивы (A005.pak, E.cc4 и пр.). В самих архивах содержаться много файликов, в заголовках которых идут вполне осмысленные названия (если открывать game extractor-ом). Как будто какие-то форматы.
    5f82fbbbbb6a73488d9f3bd16e9b012d.png
    Разработчик у игр один. Форматы должны совпадать, хотя бы частично. Надо наладить работу анпакера. Приложил один из игровых архивов.
    P. S. ИДУ как-нибудь можно прицепить к этому делу, чтобы код диассемблированный легче смотреть?
     

    Вложения:

    • A00.7z
      Размер файла:
      493,5 КБ
      Просмотров:
      101
    Последнее редактирование: 19 мар 2013
  7. Gamerun

    Gamerun

    Хелпер

    Регистрация:
    13 июн 2010
    Сообщения:
    7.131
    В IDA 6.1
    Debugger -> Run -> Local Bosch или Local Windows Debugger.

    Не пользовался, поэтому не в курсе взаимодействия.
    Для просмотра кода в текстовом виде, а не схемой - выпадающее меню "text view".
     
  8. Mefistotel

    Mefistotel

    Регистрация:
    9 мар 2013
    Сообщения:
    156
    Есть кое-какие результаты. Но об этом позже. Главное понять, как получить кусок распакованных данных, чтобы сравнить его с запакованными и выяснить алгоритм сжатия.
     
    Последнее редактирование: 21 мар 2013
    kirik-82 и Alexxul нравится это.
  9. Mefistotel

    Mefistotel

    Регистрация:
    9 мар 2013
    Сообщения:
    156
    Ну вот, понятно теперь как дампить память.
    Код:
    MEMDUMP [сегмент]:[смещение] [размер] - записывает содержимое памяти в файл memdump.txt
    MEMDUMPBIN [сегмент]:[смещение] [размер] - записывает содержимое памяти в бинарный файл memdump.bin
    Хотелось бы с кем-нибудь знающим обсудить структуру архивов игры. Разобрать сначала всё это дело помог AID_X.
    Например, игровые архивы A00.pak и A003.pak из папки shadow.
    Архив A00.pak - это псевдо архив, содержащий вначале офсеты архивов, а далее и сами хранящиеся в нём архивы.
    41e5306fe6107099815db05730aee18b.png
    Его структура:
    Код:
    Первые 4 байта - 00 00 00 00 - как я понял, означают начало как псевдоархивов, так и простых архивов и не несут никакой полезной информации.
    
    Следующие цепочки по 4 байта - офсеты архивов в этом файле.
    
    Второй dword является началом первого файла в псевдоархиве. Количество архивов в файле = (второй dword-4)/4 = (396 (0x18C) -4)/4 = 98 архивов. Непонятно пока, почему именно так.
    А теперь посмотрим структуру простого архива на примере файла A03.pak.
    Это тоже псевдоархив, но в нём всего один файл.
    956f2526bd193339930bee28212b0032.png
    Второй dword 08 00 00 00 говорит нам о начале основного архива с адреса 0x8. Соответственно и количестве архивов ровно единице (08-4)/4 = 1.
    Заголовок основного архива составляет 36 байт. Из них:
    Код:
    4 байта - 00 00 00 00 - начало архива,
    
    4 байта - это размер запакованных данных -00 13 00 00 (0x1300).
    
    4 байта - размер распакованных данных 05 1F 00 00 (0x1F05).
    
    6 байт - непонятная цепочка байт, но она одинакова в разных архивах, если не во всех .pak -  01 00 14 00 49 14.
    
    12 и более байт - имя архива, 00 - стопбайт.
    6 байт - непонятная цепочка байт - AE 0E 91 19 0F 65. В архивах различается.
    
    Далее идут сами запакованные данные.
    Кто подскажет, что значат неопознанные цепочки, тот молодец.:drink:
    Плохо, что анпакер aitd крешится при попытке извлечь эти архивы.
    Код:
    Сигнатура проблемы:
      Имя события проблемы:	APPCRASH
      Имя приложения:	aitd_unpacker.exe
      Версия приложения:	0.0.0.0
      Отметка времени приложения:	4afcd028
      Имя модуля с ошибкой:	aitd_unpacker.exe
      Версия модуля с ошибкой:	0.0.0.0
      Отметка времени модуля с ошибкой:	4afcd028
      Код исключения:	c0000005
      Смещение исключения:	0000e70a
      Версия ОС:	6.1.7601.2.1.0.256.48
      Код языка:	1049
      Дополнительные сведения 1:	0a9e
      Дополнительные сведения 2:	0a9e372d3b4ad19135b953a78882e789
      Дополнительные сведения 3:	0a9e
      Дополнительные сведения 4:	0a9e372d3b4ad19135b953a78882e789
    Может надо заголовок какой-то оставлять. Программист из меня никакой и разобрать код на СИ я не смогу.
    Интересно, первые 25 байт сжатых данных в архивах совпадают, причем что в музыке, что в картинках.

    ---------- Сообщение добавлено в 15:05 ---------- Предыдущее сообщение размещено в 13:15 ----------

    С большим трудом заставил таки дебагер работать, как нужно, прописав в конфиге:
    enable-debug=heavy. После этого стало возможно вводить команды, а не только смотреть данные.
     
    Последнее редактирование: 21 мар 2013
    compart и Dimouse нравится это.
  10. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.003
    Mefistotel, удалось что-нибудь раскопать ?
     
  11. Mefistotel

    Mefistotel

    Регистрация:
    9 мар 2013
    Сообщения:
    156
    Нет. На этом всё и остановилось. Чтобы разобрать формат сжатия, нужно хорошенько освоить ассемблер этой архитектуры.
     
  12. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.003
    Что то под досбокс не смог запустить.
     
  13. Mefistotel

    Mefistotel

    Регистрация:
    9 мар 2013
    Сообщения:
    156
    Тебе в другую тему с похожим названием.
     
  14. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.003
    Не сильно полезная инфа, но .nar файлы содержат голоса персонажей игры. В начале таблица смещений, потом raw звук в формате 16кГц, 8 бит, моно, unsugned. Слушал в GAP.

    Нашел полезную инфу:
    Много букаф.

    Итог промежуточный, декодировал файл E.CC4, где-то 120кб текста, пропатчил .ехе файл, стер функцию декодирования и подсунул файл с открытым текстом, всё работает. Так править и пересобирать будет легче.
     
    Последнее редактирование: 15 окт 2013
    Mefistotel, kreol, Чёрный Думер и 5 другим нравится это.
  15. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.003
    Апну тему, чтобы привлечь внимание.
    Успех, посоны, декодер одного файла E.CC4 доделан, формула декодирования:
    байт = байт - (0x54 * ("разница след смещения и первого" + "номер символа")) & 0xFF

    Проект на беноиде:
    http://notabenoid.com/book/44828

    В игре содержится текст на 5 языках - это файлы e.cc4, d.cc4, i.cc4, s.cc4, t.cc4 .
    Есть еще 10 сс4 файлов, но у них немного другая внутренняя структура, указатели там 16 битные, а в E.cc4 - 32х.

    Нужно разобрать эти 10 файлов и найти где хранятся шрифты. Они точно в пак файлах, надо разбираться с форматом и сжатием.

    Диалоговый алфавит №1:

    Люблю умляуты, под них уже место отведено, значит набор русских букв уже можно вставить.
    Вива ля умляут!

    функция декодер pak файла адски огромная,
    распаковка res.pak
    seg018:0228 (ida) - 10C6:0228 (dosbox debuger)

    Шрифт находится в файле res.pak, первый же блок, сжатый CTU.PFN, порча данных вызывает или зависание или искажение букв.

    Порядок файлов в res.pak : CTU.PFN, BULLE.VA2, MARCHE0.VA2, ICONE.VA2, OBJECTS.VA2, CTU.PAL, FLASHBAK.PAL, CDINTRO.PAL, PALI0.PAL, CURSOR.VA2
    ---
    Глянул в ida декодер PAK файлов, функция длиной в 650 строк плюс внутри 3 вызова одной подпрограммы еще на 650 строк. Плюс еще три вызова второй функции по 100 строк.

    Итого разобрать 1400 строк.
    Потом собрать всё назад в архив))
    У меня руки опускаются от такого объема, может кто подхватит. Каментил в ida + что-то по адресам в текстовике.
     
    Последнее редактирование: 21 окт 2013
    Kairn, 007007, Mefistotel и 10 другим нравится это.
  16. segrei

    segrei

    Регистрация:
    18 окт 2013
    Сообщения:
    1
    а как EXEшник распаковал? Я глянул у меня TATOU.EXE только 4кб а остальной код видимо из каких - то оверлеев берется.
     
  17. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.003
    segrei, у меня такой сразу был на диске в корне shadow.exe в комплекте я положил.
     
  18. kirik-82 DOSтойным играм достойный перевод

    kirik-82

    Переводчик

    Регистрация:
    19 дек 2007
    Сообщения:
    1.977
    забавно, но (за шесть дней!!!) на беноиде готов черновой перевод того текста, что удалось извлечь из игры.
     
    Kairn, Genesis, Neitan и ещё 1-му нравится это.
  19. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.003
    kirik-82, да, сам удивился. Набросились и порвали Ктулху.
    Я пробовал после функции декодирования шрифта поменять в памяти данные, хотел полосочку нарисовать. Шрифт в игре 1-битный.
    Тогда можно было сделать патч памяти после распаковки, но...
    Игра при запуске зависла.

    Разобрал 70 строк декодера, адский термояд из 3х вложенных циклов, потом еще и еще и еще циклы. Написал аналог начала распаковки, ошибка конечных блоков в 2 байта, вот ищу ошибку.
    Я пока что плохо представляю себе как расшифровать файл, поменять его и зашифровать назад.

    Открыл шару на проект, если кто текущую версию с камментами возьмет.

    http://yadi.sk/d/6ylIbpKvBKBDs
     
    Последнее редактирование: 21 окт 2013
    Genesis и kirik-82 нравится это.
  20. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    28.747
    jack7277, ты не мог бы файл с шрифтом прикрепить? Я посмотрю, может там похоже на aitd все-таки.
     
  21. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.003
    Dimouse, на шаре, папка font. Оригинальный res.pak, в котором находится сжатый файл ctu.pfn, который после распаковки становится шрифтом. BMP с примером тоже на шаре. В исходниках AITD проскакивают знакомые нотки, что я увидел в IDA. Если это хаффман, то я его до конца света разбирать буду.

    /fun
    можно не заморачиваться со шрифтами, сделать всё транслитом )))
     
    Последнее редактирование: 21 окт 2013
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление