Текстури з написами
Частина англійського тексту гри — не рядки, а картинки: логотип, стартовий екран, вивіски, панелі приладів. Щоб їх перекласти, треба було знайти всі такі текстури серед тисяч ресурсів, перемалювати написи й доставити їх у гру, не розповсюджуючи цілих ігрових архівів.
Пошук: інвентар і OCR
Розділ «Пошук: інвентар і OCR»Текстури лежать у DDS усередині GSC-контейнерів сцен і меню, а ті — у чотирьох
DAT-архівах (GAME, RAIDERS, TEMPLE, CRUSADE). Інвентаризація пройшла
так:
- Розпакувати DAT (QuickBMS +
ttgames.bms, див. setup.md). - Знайти всі DDS у GSC і окремих файлах: 819 файлів, 12 133 входження, 5 939 унікальних зображень (за SHA-256).
- Розпізнати текст на кожному: вбудований OCR Windows (
Windows.Media.Ocr, англійська мова) для 5 936 текстур. Для 77 кандидатів — повторний OCR зі збільшенням, для 174 — три повороти зображення (вивіски бувають повернуті). - Переглянути кандидатів очима й скласти список.
Результат — HTML-галерея з пошуком за ID, шляхом і розпізнаним текстом.
Вона генерується з файлів гри, тому в git не зберігається; інструмент лежить у
tools/textures/ (export_game_textures.py, ocr_texture_catalog.ps1, build_texture_catalog.py). Відео BIK, шрифти й текстові таблиці до інвентарю
не входять: це окремі типи ресурсів.
Що перекладено
Розділ «Що перекладено»| ID | Що це | Де побачити в грі |
|---|---|---|
| T2525 | Логотип «Індіана Джонс» | Головне меню (7 контейнерів TITLES_*) |
| T2526 | Підзаголовок «Оригінальні пригоди» | Головне меню |
| T2743 | Стартовий екран TT Games / LucasArts | Перед головним меню |
| T2748 | Те саме, варіант зі значком рейтингу | Перед головним меню, залежно від регіону |
| T1407 | Вивіски банку у Венеції | «Останній хрестовий похід», розділ 1, фасади й катсцени |
| T1030 | Інший варіант тих самих вивісок | Вступ розділу 1 і фінал розділу 3 «Останнього хрестового походу» |
| T0573 | Панель електричного приладу | «Останній хрестовий похід», розділ 2 «Порятунок із замку» |
| T1941 | Дошка «ABC» → «АБВ» | Редактор власного персонажа, пункт зміни імені |
| T2522 | Ілюстрація коледжу | Ілюстрації меню й переходів (PICTURES_3_PC.GSC) |
Свідомо не перекладено: значок рейтингу ESRB (знак організації), екрани демоверсії й консольні попередження (не показуються у Steam-версії), декоративний плакат у сцені дирижабля й рукописну нотатку в Шанхаї (однозначного читабельного тексту немає).
Як малювалися написи
Розділ «Як малювалися написи»Кожну текстуру експортовано в PNG того самого розміру з прозорістю. Автор
перемальовував лише написи в Affinity, не зсуваючи інших елементів: сцена
бере координати з GSC, тому обрізати чи масштабувати полотно не можна.
Український шар зберігається окремо як assets/textures/<id>-ukrainian.png
разом із проєктом .af. Оригінальних DDS у репозиторії немає.
Під час збирання DDS:
- зберігаються розмір, формат (DXT1/DXT5), заголовок і всі mip-рівні;
- блоки 4×4, яких напис не торкнувся, копіюються з оригіналу без повторного стиснення, тож решта атласу лишається побайтово такою, як була;
- змінені блоки кодуються власним кодером (
ua/formats/bc_color.py), а кожен mip-рівень перевіряється декодуванням.
Як текстури потрапляють у гру
Розділ «Як текстури потрапляють у гру»До версії 0.1.7 переклад вимагав заміни цілих GSC (пакет важив 182 МБ). Тепер плагін підміняє картинку в момент читання:
- Гра читає ресурс із DAT у буфер.
- Плагін шукає в буфері сигнатуру
DDS. - Порівнює ширину, висоту, FourCC і кількість mip-рівнів.
- Рахує SHA-256 пікселів — даних після 128-байтового заголовка DDS.
- Якщо хеш збігся з відомим оригіналом, копіює український DDS того самого розміру на його місце. Усі інші байти ресурсу не змінюються.
Хеш не охоплює заголовок, бо рушій змінює в пам’яті прапорці DDS, не чіпаючи
картинки: з хешем усього файла незмінені зображення не впізнавалися. Ключ
запису в UAP — UKRAINIAN/TEXTURES/<SHA-256 пікселів>.DDS, тож один запис
покриває всі копії картинки в різних сценах (9 зображень → 21 контейнер).
Якщо інший мод уже змінив пікселі цієї текстури, хеш не збігається, і плагін її не чіпає. Механізм потребує цілого DDS в одному буфері; на практиці рушій так і читає.
Перевірки
Розділ «Перевірки»| Перевірка | Результат |
|---|---|
| Той самий C++ код підміни на оригінальних GSC | 21/21 побайтово дорівнюють перевіреному графічному релізу |
| Повторна підміна вже перекладеного буфера | байти не змінюються |
| Змінені іншим модом пікселі | підміна пропускається |
| Змінені прапорці заголовка при тих самих пікселях | підміна працює |
| Відсутній або пошкоджений UAP | функції гри лишаються оригінальними |
Наживо оглянуто логотип, підзаголовок, головне меню й дошку «АБВ» у редакторі персонажа. Підміна стартового екрана підтверджена журналом завантаження. Вивіски Венеції, панель замку й ілюстрацію коледжу перевірено побайтово на рівні контейнерів; окремий живий огляд цих сцен — серед того, що варто зробити під час повного проходження.
Повні докази — в архіві досліджень автора.