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

Руководство по русификации игр от Adventure Game Studio

Рекомендованные сообщения

Программы для работы с файлами

agsutils, Любой HEX-редактор, Photoshop, Notepad++

 

Скрытый текст

 

Поддержка версии Adventure Game Studio (2.0 + /3.0 +)

Для распаковки исполняемого файла нам понадобится agsutils

Скачиваем с репозитория и извлекаем архив в удобное место к примеру на диск D:\

Переносим в папку agutils —  исполняемый файл с которым будем работать и запускаем из этой директории CMD

Команда распаковки исполняемого файла: agstract file.exe folder1

Команда распаковки AGS файла: agstract file.ags folder1

Если имя исполняемого файла с пробелом то закомментируем в кавычки, так же и Папку куда распаковывать, если у папки будет пробел

Скрытый текст

acsprset.spr // Спрайты игры

*.wfn //Информация о шрифте

*.ttf //Шрифт

agspack.exestub // Игровой Player или исполняемый файл самого движка

agspack.info //Информация о распакованных файлах

*.ogg //Внутренние файлы диалогов персонажей или комментариев разработчиков либо ещё музыка может быть

*.dta //Информация с текстами на кнопки, расположение текста и т.д.

*.pcx //Загрузочный экран — открывается в Photoshop

room*.crm //Комнаты в которых тоже присутствует текст и часть скриптов за их вывод

sprindex.dat // Всякие данные о спрайтах

 

 

Скрытый текст

 

agscriptxtract -oblf folder1 folder2

Редактирование *.s скриптов в folder2

Открываем в Notepad++ и находим через поиск li ax, "

В строке li ax, " — Будет текст диалогов

Ниже строк __NEWSCRIPTSTART — операнды диалогов из li ax 

Всё что ниже __NEWSCRIPTSTART  вырезаем в другой файл и сохраняем чтобы не мешало, пока переводим, а когда переведёте, верните назад в файл

Текст замещаем только в li ax, ",  а также смотрим на регулярки внимательно : \? & \’  \”

Пример 1: What…\? — Что\?.. = Что?..  ← Итог

Пример 2: &What… — &Что... = Что...  ← Итог

Пример 3: \’ What\’ … — \’ Что\’... = ‘Что’... ←  Итог

Теперь преобразовываем в кодировку ANSI и сохраняем

 

Скрытый текст

agssemble folder2/script.s

 

Скрытый текст

 

К примеру, мы распаковали игру и у нас вышли такие *.s скрипты

dialogscript.s / gamescript0.s /gamescript1.s /globalscript.s /room1.s /room2.s

Упаковка будет такая:

agsinject 0 RU_s/globalscript.o RU/game*.dta   //(0 — первый скрипт на упаковку в *.dta) (Первый глобальный)
agsinject 1 RU_s/dialogscript.o RU/game*.dta  //(1 — второй скрипт на упаковку в *.dta) (Второй диалоговый)
agsinject 2 RU_s/gamescript0.o RU/game*.dta  //(2 — третий скрипт на упаковку в *.dta) (Третий внутриигровой)
agsinject 3 RU_s/gamescript1.o RU/game*.dta  //(3 — четвёртый скрипт на упаковку в *.dta) (Четвёртый внутриигровой)

и т.д. если gamescript2 то уже будет после:  agsinject 4

Для комнат всегда будет 0
agsinject 0 RU_s/room1.o RU/room1.crm  //(0 — первый скрипт на упаковку в *.crm поскольку скрипт в комнате всегда будет один)
agsinject 0 RU_s/room2.o RU/room2.crm  //(0 — первый скрипт на упаковку в *.crm поскольку скрипт в комнате всегда будет один)

 

Поскольку текст не весь распаковывается из скриптов то часть остаётся ещё в *.crm и *.dta

 

Скрытый текст

После того как уже перевели в скриптах диалоги и вставили обратно в *.crm

Открываем в HEX-редакторе *.crm поэтапно

Первые 3 байта заголовок комнаты 21 00 01

2-3 байта размер секции или смещение (будем править после перевода до секции SCOMS/SCOMZ — самого скрипта)

с 5/6 байт по 0a — 0 байты

Со смещения 0x0b начинается первый отрезок комнаты и будет начало первого отрезка указанное в смещении 0x03

Теперь переходим к смещению 0x101, если первый текст объекта No hotspot или Hotspot*, то такие не переводим, а ищем между ними или же бывает объекты начинаются для перевода со смещения 0x101 (сам текст) а размер на смещении 0xFD

Включаем режим вставки, чтобы текст не замещался а вставлялся в кодировке ANSI (А  — С0) и перед объектом-текста за минусом 4 байта длина текста

Пример: 04 00 00 00 54 65 78 74 00 00 00 00 (04 — размер  3 байта нулевых поскольку предложение даже не превышает значение ff  и дальше пошёл текст 54 65 78 74 — Text)

Когда всё перевели между No hotspot и Hotspot* и заменили размер байтов перед текстом, ищем Начало следующей части комнаты, а именно SCOMZ или SCOMS,  и слева от SCOM через -9 байт будет начало первого нашего отрезка, сразу же после разделителя 07 (ID Скрипта) — И теперь выделяем с этой части и до 0x0b и будет наш размер или смещение на первую часть, и вписываем в смещение с 0x03 в перевёрнутом виде : 1с20 = 201с или 10020 = 200001

 

Как только заменили первый участок, ищем следующий через текст юКпѕ — сразу после него будет разделитель комнаты — 1 байт, а после будет уже размер отрезка — начало отсчёта 8 байт (количество объектов) после смещения и будет отрезок до следующего разделителя, и переводим так же как и в начале *.crm файла и после перевода и исправления размера перед текстом правим размер этого отрезка и сохраняем и так проделываем со всеми скриптами *.crm

 

Скрытый текст

После того как упаковали все скрипты обратно в *.dta 

Открываем в HEX-редакторе в 3 частях файла

 

Первая часть

После смещения 1800 будет первый текст на объекты или предметы, который надо переводить

Здесь не включаем Режим вставки, а просто замещаем текст 

Размер общего блока под объект/предмет 44 байта, под текст где-то 16 байт 

Править смещения не надо или размер общего файла

 

Вторая часть

Теперь переходи к последнему скрипту SCOM по поиску через юКпѕ

И после этих строк до btn или lbl находим имена персонажей, оставшиеся диалоги выбора или какой либо ещё текст

Для имён персонажей 24 байта для вариантов ответов или вопросов или диалогов 94 байта

Так же вставляем текст как и в первой части

 

Третья часть

Это оставшаяся часть с редактированием текста в btn  или lbl, и сам размер перед текстом  -4 байт и с включённым режимом вставки

В этом же месте можно изменить расположение текста и кнопок по осям X и Y (позднее напишу)

 

Скрытый текст

agspack -e folder1/ file.exe

Под обновление

Изменено пользователем Tericonio
  • Спасибо (+1) 3
  • +1 1

Поделиться сообщением


Ссылка на сообщение
3 минуты назад, AndyFox сказал:

Ищет какой-то header.bin , но этого файла нигде нет:

Bezymannyj.png

https://disk.yandex.ru/d/qlo_AQvmwMFXFQ
меняй текст и текстуры и упаковывай обратно.
Брал здесь 

В 13.08.2026 в 22:57, AndyFox сказал:

Спасибо снова за помощь! Кажется, теперь финальный релиз — https://wdfiles.ru/1viqy

 

Изменено пользователем Jimmi Hopkins
  • Спасибо (+1) 1
  • +1 1

Поделиться сообщением


Ссылка на сообщение
21 минуту назад, Jimmi Hopkins сказал:

меняй текст и текстуры и упаковывай обратно.

Спасибо, exe из каталога собрался, но получаю такое сообщение:

Цитата

Adventure Creator v2.40 Interpreter
Copyright (c) 1999-2001 Chris Jones
ACI version 2.40.325
ERROR: You must create and save a game first in the Room Editor before you
can use this engine.

(Unable to find AC2GAME.DAT in c:/odysseus)

На наличие такого файла (переименованного из .DTA) игра не реагирует.

Поделиться сообщением


Ссылка на сообщение

Получилось при помощи AGSTool v1.8.

Изменено пользователем AndyFox
  • +1 2

Поделиться сообщением


Ссылка на сообщение
18 minutes ago, AndyFox said:

На наличие такого файла (переименованного из .DTA) игра не реагирует.

agsutils запаковывает в CLIB версии 20 и выше, а для этого старого движка нужна версия 6.

Запаковывать файлы обратно не обязательно, движок подхватывает файлы из папки. Достаточно положить acsprset.spr в корень, по аналогии с wfn шрифтами.

  • +1 3

Поделиться сообщением


Ссылка на сообщение
1 час назад, adm-244 сказал:

Достаточно положить acsprset.spr в корень, по аналогии с wfn шрифтами.

Спасибо! Ещё вопрос остался, как собрать .SPR из набора .BMP?

Цитата

sprlib.dat                                   spr00000.bmp   spr00001.bmp
spr00002.bmp   spr00003.bmp   spr00004.bmp   spr00005.bmp   spr00006.bmp
spr00007.bmp   spr00008.bmp   spr00009.bmp   spr00010.bmp   spr00011.bmp
spr00012.bmp   spr00013.bmp   spr00014.bmp   spr00015.bmp   spr00016.bmp
spr00017.bmp   spr00018.bmp   spr00019.bmp   spr00020.bmp   spr00021.bmp
spr00022.bmp   spr00023.bmp   spr00024.bmp   spr00025.bmp   spr00026.bmp
spr00027.bmp   spr00028.bmp   spr00029.bmp   spr00030.bmp   spr00031.bmp
spr00032.bmp   spr00033.bmp   spr00034.bmp   spr00035.bmp   spr00036.bmp
spr00037.bmp   spr00038.bmp   spr00039.bmp   spr00040.bmp   spr00041.bmp
spr00042.bmp   spr00043.bmp   spr00044.bmp   spr00045.bmp   spr00046.bmp
spr00047.bmp   spr00048.bmp   spr00049.bmp   spr00050.bmp   spr00051.bmp
spr00052.bmp   spr00053.bmp   spr00054.bmp   spr00055.bmp   spr00056.bmp
spr00057.bmp   spr00058.bmp   spr00059.bmp   spr00060.bmp   spr00061.bmp
spr00062.bmp   spr00063.bmp   spr00064.bmp   spr00065.bmp   spr00066.bmp
spr00067.bmp   spr00068.bmp   spr00069.bmp   spr00070.bmp   spr00071.bmp
spr00072.bmp   spr00073.bmp   spr00074.bmp   spr00075.bmp   spr00076.bmp
spr00077.bmp   spr00078.bmp   spr00079.bmp   spr00080.bmp   spr00081.bmp
spr00082.bmp   spr00083.bmp   spr00084.bmp   spr00085.bmp   spr00086.bmp
spr00087.bmp   spr00088.bmp   spr00089.bmp   spr00090.bmp   spr00091.bmp
spr00092.bmp   spr00093.bmp   spr00094.bmp   spr00095.bmp   spr00096.bmp
spr00097.bmp   spr00098.bmp   spr00099.bmp   spr00100.bmp   spr00101.bmp
spr00102.bmp   spr00103.bmp   spr00104.bmp   spr00105.bmp   spr00106.bmp
spr00107.bmp   spr00108.bmp   spr00109.bmp   spr00110.bmp   spr00111.bmp
spr00112.bmp   spr00113.bmp   spr00114.bmp   spr00115.bmp   spr00116.bmp
spr00117.bmp   spr00118.bmp   spr00119.bmp   spr00120.bmp   spr00121.bmp
spr00122.bmp   spr00123.bmp   spr00124.bmp   spr00125.bmp   spr00126.bmp
spr00127.bmp   spr00128.bmp   spr00129.bmp   spr00130.bmp   spr00131.bmp
spr00132.bmp   spr00133.bmp   spr00134.bmp   spr00135.bmp   spr00136.bmp
spr00137.bmp   spr00138.bmp   spr00139.bmp   spr00140.bmp   spr00141.bmp
spr00142.bmp   spr00143.bmp   spr00144.bmp   spr00145.bmp   spr00146.bmp
spr00147.bmp   spr00148.bmp   spr00149.bmp   spr00150.bmp   spr00151.bmp
spr00152.bmp   spr00153.bmp   spr00154.bmp   spr00155.bmp   spr00156.bmp
spr00157.bmp   spr00158.bmp   spr00159.bmp   spr00160.bmp   spr00161.bmp
spr00162.bmp   spr00163.bmp   spr00164.bmp   spr00165.bmp   spr00166.bmp
spr00167.bmp   spr00168.bmp   spr00169.bmp   spr00170.bmp   spr00171.bmp
spr00172.bmp   spr00173.bmp   spr00174.bmp   spr00175.bmp   spr00176.bmp
spr00177.bmp   spr00178.bmp   spr00179.bmp   spr00180.bmp   spr00181.bmp
spr00182.bmp   spr00183.bmp   spr00184.bmp   spr00185.bmp   spr00186.bmp
spr00187.bmp   spr00188.bmp   spr00189.bmp   spr00190.bmp   spr00191.bmp
spr00192.bmp   spr00193.bmp   spr00194.bmp   spr00195.bmp   spr00196.bmp
spr00197.bmp   spr00198.bmp   spr00199.bmp   spr00200.bmp   spr00201.bmp
spr00202.bmp   spr00203.bmp   spr00204.bmp   spr00205.bmp   spr00206.bmp
spr00207.bmp   spr00208.bmp   spr00209.bmp   spr00210.bmp   spr00211.bmp
spr00212.bmp   spr00213.bmp   spr00214.bmp   spr00215.bmp   spr00216.bmp
spr00217.bmp   spr00218.bmp   spr00219.bmp   spr00220.bmp   spr00221.bmp
spr00222.bmp   spr00223.bmp   spr00224.bmp   spr00225.bmp   spr00226.bmp
spr00227.bmp   spr00228.bmp   spr00229.bmp   spr00230.bmp   spr00231.bmp
spr00232.bmp   spr00233.bmp   spr00234.bmp   spr00235.bmp   spr00236.bmp
spr00237.bmp   spr00238.bmp   spr00239.bmp   spr00240.bmp   spr00241.bmp
spr00242.bmp   spr00243.bmp   spr00244.bmp   spr00245.bmp   spr00246.bmp
spr00247.bmp   spr00248.bmp   spr00249.bmp   spr00250.bmp   spr00251.bmp
spr00252.bmp   spr00253.bmp   spr00254.bmp   spr00255.bmp   spr00256.bmp
spr00257.bmp   spr00258.bmp   spr00259.bmp   spr00260.bmp   spr00261.bmp
spr00262.bmp   spr00263.bmp   spr00264.bmp   spr00265.bmp   spr00266.bmp
spr00267.bmp   spr00268.bmp   spr00269.bmp   spr00270.bmp   spr00271.bmp
spr00272.bmp   spr00273.bmp   spr00274.bmp   spr00275.bmp   spr00276.bmp
spr00277.bmp   spr00278.bmp   spr00279.bmp   spr00280.bmp   spr00281.bmp
spr00282.bmp   spr00283.bmp   spr00284.bmp   spr02000.bmp   spr02001.bmp
spr02002.bmp   spr02003.bmp   spr02004.bmp   spr02005.bmp   spr02006.bmp
spr02007.bmp   spr02008.bmp   spr02009.bmp   spr02010.bmp   spr02011.bmp
spr02012.bmp   spr02013.bmp   spr02014.bmp   spr02015.bmp   spr02016.bmp
spr02017.bmp   spr02018.bmp   spr02019.bmp   spr02020.bmp   spr02021.bmp
spr02022.bmp   spr02023.bmp   spr02024.bmp   spr02025.bmp   spr02026.bmp
spr02027.bmp   spr02028.bmp   spr02029.bmp   spr02030.bmp   spr02031.bmp
spr02032.bmp   spr02033.bmp   spr02034.bmp   spr02035.bmp   spr02036.bmp
spr02037.bmp   spr02038.bmp   spr02039.bmp   spr02040.bmp   spr02041.bmp
spr02042.bmp   spr02043.bmp   spr02044.bmp   spr02045.bmp   spr02046.bmp
spr02047.bmp   spr02048.bmp   spr02049.bmp   spr02050.bmp   spr02051.bmp
spr02052.bmp   spr02053.bmp   spr02054.bmp   spr02055.bmp   spr02056.bmp
spr02057.bmp   spr02058.bmp   spr02059.bmp   spr02060.bmp   spr02061.bmp

 

Поделиться сообщением


Ссылка на сообщение
7 minutes ago, AndyFox said:

Ещё вопрос остался, как собрать .SPR из набора .BMP?

Той же программой, что использовалась для распаковки. В вашем случае это AGSTool (судя по наличию sprlib.dat). Кнопка “Compile sprites”.

  • +1 3

Поделиться сообщением


Ссылка на сообщение

Спасибо опять!

Теперь новая проблема…

Ещё непонятно, почему в тех же файлах и тех же цветах перерисованные файлы показывают такое:

upload-2026-8-18-18-29-0.png

Должно быть так:

spr00001.jpg spr00002.jpg spr02043.jpg spr02055.jpg 

 

Поделиться сообщением


Ссылка на сообщение
20 минут назад, AndyFox сказал:

Спасибо опять!

Теперь новая проблема…

Ещё непонятно, почему в тех же файлах и тех же цветах перерисованные файлы показывают такое:

upload-2026-8-18-18-29-0.png

Должно быть так:

spr00001.jpg spr00002.jpg spr02043.jpg spr02055.jpg 

 

Кажется твой bmb нужно сохранить как RGB565 С конвертацией хорошо справляется XnView
И проверь пипеткой, что у тебя чистый розовый 255, 0 255.

Изменено пользователем Jimmi Hopkins
  • +1 3

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас популярно

  • Продвигаемые темы

  • Последние сообщения

    • Окей не правильно выразился не в финальной,  а в последней, но обнов не было по зв давно. И вы явно не переносите критики в свой адрес, стараясь агрессивно продвигать свое творчество.  И что мне проверять , написал как есть что в ЗВ такая же проблема которая не исправлена там что женские персонажи говорят в мужском лице. У Кларка такого не было. Но то что вы делаете это хорошо конкуренция рождает качество.
    • Проблемы с вылетом при запуске были у человека выше, пофиксил момент который он нашёл в bbs где вылетала игра в одной из вкладок журнала, также поставил русификатор на чистую ReCoM, вылетов не обнаружил ни при запуске ни при пролистывании журнала.

      Сделал русификатор на 3 часть: https://steamcommunity.com/sharedfiles/filedetails/?id=3798164683
       
    • Их лучше бы тоже в пакет и замотать (а лучше к монитору примотать до кучи как провода, так и ножку тоже зафиксировать в общую массу хотя бы просто скотчем) — выпадут (или вытащить могут) же через ручки коробки (дырки по бокам), если всё оставить как сейчас. Дырки-то эти по пути будут грузчиками использоваться и неизбежно могут порваться или стать шире. Про то, что паралон по идее надо было на сам экран ДО пупырки накладывать, промолчу. Надеюсь, монитор до плёнки хотя бы в пакете был, т.к. иначе теперь вся пупырка на экране так и отпечатается намертво. В целом, вероятнее всего в такой посылке дойдёт только сам монитор, а остальное растеряется по пути. либо через щели, либо когда короб разорвётся на изломе. В т.ч. пустоты коробки лучше заполнить чем-нибудь типа хотя бы скомканной бумаги от газет или тому подобным наполнителем. Скотчем залепливать короб надо не просто на месте стыков, а по всей коробке пройтись вокруг всех 4-х сторон за каждый заход, как будто верёвкой обвязываешь (напр. начинаешь вести со дна, потом по боковине, протягиваешь по верху, потом по другой боковине и дотягиваешь скотв до места, где начинал — и так несколько раз с разных ракурсов), т.к. как сейчас просто отлепится и раскроется. Что ж, первый блин комом. Не пойми превратно: я ценю твои усилия, уважаю их, но указываю на критичные ошибки запаковки. Выглядит более здоровым, чем вчера по крайней мере.
    • @allodernat Мне даже нечего добавить. Всё так и есть. Грубо говоря - вылеты, баги и не влезающий текст единственное, что может пойти наперекор релизу. Ошибки в местоимениях, опечатки и всякая мелочь обычно рассасывается уже под репортами особо дотошных игроков.  Единственное что скажу, вне стима тоже есть полезная штука: Win + PrintScreen
    • @dxspgs, финальной версии я ещё не выпускал ЗВ, так что не лейте в уши. Как соберу окончательно все ошибки и исправлю, так и выпущу. А здесь я уже выпустил 0.9 версию в которой решил эти проблемы, о чём было написано, но явно не для вас. На будущее проверяйте, прежде чем писать.
    • вот вам очередная та самая, всё как вы любите: сканировать и собирать ресурсы Honeycomb: The World Beyond
      Honeycomb The World Beyond | трейлер
    • Да уже сейчас часто проскакивают типа ошибки и не показывается статистика по новым играм. Не иначе как обычное совпадение 
    • Лицо измученного человека
    • @Inse я подозреваю если игра технически будет проходиться без багов, софтлоков, зависаний, вылетов — то уже большое дело)) Собственно если на них наткнёшься, то тут уж хочешь не хочешь, а фидбек надо отправлять)
      Опять же убегающие строки. Из редактуры на минималках — не влезающий текст, гендерные ошибки, неправильный смысл. Если играется в стиме то там есть хорошая кнопочка для скрина, а потом можно будет уже эти самые скрины дать.
  • Изменения статусов

    • axe66  »  SerGEAnt

      здравствуйте. можете добавить на сайт раздел для игры She’s Leaving и русификатор к нему? и как и куда вам скинуть фото и сам русификатор?
      [h2] Версия: 1.0.1 (от 22.05.2026)
      Совместимость: для сборки 20909321 [/h2]
       Информация:
      Машинный перевод моделью gemma2:9b-instruct с несколькими этапами автоматической перепроверки (модель "самопроверялась") и финальными ручными правками.
      Это не финальная версия — по мере нахождения ошибок перевода будут выходить обновления.
      Известные нюансы:
      * Возможны неточности и ошибки в переводе.
      * Некоторые элементы интерфейса остались без перевода.
       Установка:
      1. Запустить Russifier.exe
      2. Нажать "Выбрать папку"
      3. Выбрать папку с игрой и нажать ОК
      4. Нажать "Установить"
      5. Дождаться завершения установки и закрыть программу.
      После установки запустите игру и наслаждайтесь!
      Если заметили ошибки или некорректные формулировки — оставляйте комментарии, будем исправлять!
       
      Автор: Serjik Sokolov История изменений:   Версия 1.0.1 от 22.05.2026 - Установщик теперь автоматически определяет корневую папку игры, даже если случайно выбрана вложенная папка.   Версия 1.0.0 от 03.12.2025 - Релиз
      · 1 ответ
    • Perfect End Strange  »  SerGEAnt

      Привет, озвучку для Silent Hill 4: The Room выпустил энтузиаст под ником Perfect End Strange, а вы написали совсем другую студию, пожалуйста, исправьте эту оплошность
      · 0 ответов
    • Jimmi Hopkins  »  SerGEAnt

      я его уже открыл в свободный доступ, чтобы не потерялось среди новинок
      · 0 ответов
    • NekoNya  »  Onzi

      https://www.dropbox.com/scl/fi/4xncxr2tqy77vz4644q08/text_RU_FINAL.json?rlkey=xckxss3jkql4gjmc1ah6qjb5e&st=k5ql651f&dl=0 
       
      Вот, то что вышло. Извинюсь, что зря говорил, что помогу (
      · 2 ответа
    • serfly  »  SerGEAnt

      Доброго времени! Недавно столкнулся с проблемой автоперевода XUnity AutoTranslator BeplnEx iL2cc. Пару последних лет часто пользовался, теперь консольные команды виснут на стадии загрузки библиотек, хотя они есть там изначально. На GitHub есть подобные вопросы, но ни одного рабочего ответа я не нашел. А Вы что можете посоветовать?
      · 0 ответов
  • Лучшие авторы


×