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

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

В 06.07.2024 в 13:13, Tericonio сказал:

Редактирование скомпилированных скриптов ACS

 

В 07.07.2024 в 19:10, Tericonio сказал:

Редактирование карты через HEX

написал скрипты для упрощения процесса (QuickBMS включён в архив):

перетащить wad файл карты или dat/acs файл скрипта на unpack.bat для распаковки

перетащить wad файл карты или dat/acs файл скрипта на pack.bat для запаковки

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

get Name basename
string Name + ".txt"
idstring "ACS\x00"
get FSize long
findloc StrOffset string "STRL"
goto StrOffset

get ID long //STRL
get StrSize long

get Zero long
get StrCount long
get Zero long

//offsets
for i = 0 < StrCount
get StringOffset long
next i
log MEMORY_FILE 0 0
append
//strings
for i = 0 < StrCount
get Text string
put Text string MEMORY_FILE
put 0x0d byte MEMORY_FILE
next i
append

get MFSize asize MEMORY_FILE
log Name 0 MFSize MEMORY_FILE

 

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

get Name basename
get Ext EXTENSION
string Name + ".txt"
idstring "ACS\x00"
get FSize long
findloc StrlOffset string "STRL"
log MEMORY_FILE2 0 StrlOffset //before STRL
goto StrlOffset

get ID long //STRL
get StrlSize long

get Zero long
get StrlCount long
get Zero long

open "" Name 1
open 1
get TxtSize asize 
//parse txt
for 	
	getCT Text string 0x0d
	strlen TextSize Text
	math TextSize + 1
	putarray 0 -1 Text //save to array 0
	putarray 1 -1 TextSize //save length to array 1
	savepos Pos
	if Pos = TxtSize
		break
	endif 
next

getarray StringCount 0 -0x80000000


log MEMORY_FILE 0 0 // MF for STRL entry
//make new STRL entry
open MEMORY_FILE
append

//offsets
xmath BaseOffset "StringCount * 4 + 12"
set StringOffset long BaseOffset
for i = 0 < StringCount
getarray TextSize 1 i
put StringOffset long
math StringOffset + TextSize
next i 

for i = 0 < StringCount
getarray Text 0 i
put Text string
next i 

get MFSize asize
set NewStrlSize long MFSize
math NewStrlSize + 12
math NewStrlSize x 4 //alignment 4 bytes

open MEMORY_FILE2
put ID long //STRL
put NewStrlSize long

put Zero long
put StringCount long
put Zero long
log MEMORY_FILE2 0 MFSize MEMORY_FILE //append new STRL entry

xmath Delta "NewStrlSize - MFSize - 12"
putDstring "" Delta //append padding

xmath Offset "StrlOffset + StrlSize + 8"
xmath Size "FSize - Offset + 8"

open 0
log MEMORY_FILE2 Offset Size //append part after STRL entry
get MF2Size asize MEMORY_FILE2
xmath NewFSize "MF2Size - 8"
putVarChr MEMORY_FILE2 4 NewFSize long //new size
append
string Name > 4
string Name P "%Name%.%Ext%"
log Name 0 MF2Size MEMORY_FILE2 //write new acs to file

 

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

idstring "PWAD"
get FName basename
get Segments long
get SegOffset long
goto SegOffset

for i = 0 < Segments
get Offset long
get Size long
getDstring SegName 8
if i < 1
elif SegName = "SCRIPTS" || SegName = "TEXTMAP" || SegName = "DIALOGUE"
	string Name P "%FName%\%SegName%.txt"
	log Name Offset Size
elif SegName = "BEHAVIOR"
	string Name P "%FName%\%SegName%.acs"
	log Name Offset Size
elif SegName = "ZNODES"
	string Name P "%FName%\%SegName%.XGL3"
	log Name Offset Size
endif
next i

 

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

get FName basename
get Ext EXTENSION
get FSize asize
idstring "PWAD"
goto 0
get PWAD long
get Segments long
get SegOffset long
goto SegOffset
log MEMORY_FILE 0 0 //new wad
log MEMORY_FILE2 0 0 //SegTable
log MEMORY_FILE3 0 0 //
put PWAD long MEMORY_FILE
put Segments long MEMORY_FILE
set NewOffset long 0x0c
put NewOffset long MEMORY_FILE

//read seg data
for i = 0 < Segments
get Offset long
get Size long
getDstring SegName 8
if SegName = "SCRIPTS" || SegName = "TEXTMAP" || SegName = "DIALOGUE"
	string SegName + ".txt"
	open FName SegName 1
	string SegName > 4
	get SegSize asize 1
	append
	log MEMORY_FILE 0 SegSize 1
	append	
	put NewOffset long MEMORY_FILE2
	put SegSize long MEMORY_FILE2
	putDstring SegName 8 MEMORY_FILE2
	math NewOffset + SegSize
elif SegName = "BEHAVIOR"
	string SegName + ".acs"
	open FName SegName 1
	string SegName > 4
	get SegSize asize 1
	append
	log MEMORY_FILE 0 SegSize 1
	append	
	put NewOffset long MEMORY_FILE2
	put SegSize long MEMORY_FILE2
	putDstring SegName 8 MEMORY_FILE2
	math NewOffset + SegSize
elif SegName = "ZNODES"
	string SegName + ".XGL3"
	open FName SegName 1
	string SegName > 5
	get SegSize asize 1
	append
	log MEMORY_FILE 0 SegSize 1
	append	
	put NewOffset long MEMORY_FILE2
	put SegSize long MEMORY_FILE2
	putDstring SegName 8 MEMORY_FILE2
	math NewOffset + SegSize	
else 
	append
	log MEMORY_FILE Offset Size 0
	append
	put NewOffset long MEMORY_FILE2
	put Size long MEMORY_FILE2
	putDstring SegName 8 MEMORY_FILE2
	math NewOffset + Size
endif

next i

get MFSize asize MEMORY_FILE
putVarChr MEMORY_FILE 8 MFSize long //write new SegTable offset

get MF2Size asize MEMORY_FILE2
append
log MEMORY_FILE 0 MF2Size MEMORY_FILE2 //append new SegTable 
append
get MFSize asize MEMORY_FILE
string Name P "%FName%.%Ext%"
log Name 0 MFSize MEMORY_FILE //write to file

 

 

Изменено пользователем xoixa
  • Лайк (+1) 2

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


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

@xoixa 

Для BEHAVIOR из *.wad ещё необходимо добавить смещения на 01 00 00 00 01 00 00 00 53 50 54 52 хоть они и не так критичны, можно и через HEX кусок вставить, всё равно сами смещения не меняются и размер файла тоже из-за внесения смещений тоже не поменяются.

Но даже без них уже намного меньше работы :beach:

Но может со временем, что-то на эти смещения будут вести какие-то другая часть переменных. 

Изменено пользователем Tericonio

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


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

Те кто будут проходить игру с моим русификатором, если появляются переменные, к примеру (DIALOG-01-76), то мне необходим номер этого диалога, поскольку для некоторого кода в скриптах при отображении этого текста возможно должен убираться знак $, в некоторых местах эта переменна нужна, а где-то нет.

Самому всё это протестировать — это будет очень долго и сложно.

Так же если касается и не переведённого текста, если есть скидывайте в эту ветку такие моменты.

Это касается всех будущих обновлений.

В новом обновлении: Добавлены будут все карты, где есть текст для планшетов и объектов или входа в локации, добавлены 3 шрифта (один из них точно работает, поскольку относится к тексту при открывании запертых дверей), так порядка 50 строк пришлось изменить, новых строк порядка 100.

Изменено пользователем Tericonio
  • Лайк (+1) 3

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


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

Обновление 0.61

Убрал переменные диалогов с карты, которые могли привести к появлению самой переменной — необходим тест.

Поправлено около ~50 мест разного характера, как диалоги, объекты, действия.

Добавлено нового текста — около 30 строк включая, Станцию улучшения оружия, Перемещение между локациями, и некоторые объекты.

Поправлен код бутылки пива, делая текст прозрачным — но необходим тест, переменную текста поднял выше альфа-канала, но пока не понятно, для чего альфа канал существует, может для прозрачности стекла??

Добавлены 4 шрифта для разных переменных отображающих текст, — Закрытые двери, Автомат Гвин, и повышение здоровья.

Внесены в некоторые скрипты уменьшенный масштаб текста, чтобы вмещался в рамки контуров.

Текст о повышении здоровья ещё можно уменьшить, если он ещё большой.

Благодаря @xoixa , изменение карт стало намного легче редактировать и вносить изменения, что уменьшило время.

 

По поводу тестов:

Если какой-то текст не то отображает или видна переменная, или где-то не переведено,  мне необходимо сохранение до выявления этого места желательно подойдя почти до срабатывания этого места, а так же сам текст который необходимо изменить.

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

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


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

Обновление старых сохранений, для их последующей загрузки под новые русификаторы (Может не сработать)

Переходим в папку Save в корневой папке игры, находим последний файл сохранения или создаём новый файл сохранения через игру.

Распаковываем autosave*.zds или save_manual*.zds через 7-zip в той же директории.

Открываем файл карты se_*.map.json и находим

 "MAIN","modsize": 123456

 ”QCKDIS","modsize": 123456

 ”ENEMYVO","modsize": 123456

За место 123456 размер этого файла за минусом 8 — 16 байт при сохранении

Если игра оригинальная то смотрим какой размер в моём Моде, в Language.pk3/ACS/ — в этой папке будут расположены все *.dat файлы, из-за которых игра выкидывает в Главное меню, если файлы менялись

 "MAIN" в оригинале 43312 (уже отнято 8 байт), в Моде 43772 (уже отнято 8 байт)

 ”QCKDIS" в оригинале 3568 (уже отнято 8 байт), в Моде 3872 (уже отнято 8 байт)

 ”ENEMYVO" в оригинале 73628 (уже отнято 8 байт), в Моде 73504 (уже отнято 8 байт) (В версии 0.61 его пока ещё нет)

Замещаем эти байты se_*.map.json и перекидываем в архив сохранения наши json файлы.

И пробуем загрузить наше сохранение, если получилось загрузить значит можно дальше играть не с 0.

Изменено пользователем Tericonio
  • Лайк (+1) 2

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


Ссылка на сообщение
В 12.07.2024 в 21:01, Tericonio сказал:

Обновление старых сохранений, для их последующей загрузки под новые русификаторы (Может не сработать)

Переходим в папку Save в корневой папке игры, находим последний файл сохранения или создаём новый файл сохранения через игру.

Распаковываем autosave*.zds или save_manual*.zds через 7-zip в той же директории.

Открываем файл карты se_*.map.json и находим

 "MAIN","modsize": 123456

 ”QCKDIS","modsize": 123456

 ”ENEMYVO","modsize": 123456

За место 123456 размер этого файла за минусом 8 — 16 байт при сохранении

Если игра оригинальная то смотрим какой размер в моём Моде, в Language.pk3/ACS/ — в этой папке будут расположены все *.dat файлы, из-за которых игра выкидывает в Главное меню, если файлы менялись

 "MAIN" в оригинале 43312 (уже отнято 8 байт), в Моде 43772 (уже отнято 8 байт)

 ”QCKDIS" в оригинале 3568 (уже отнято 8 байт), в Моде 3872 (уже отнято 8 байт)

 ”ENEMYVO" в оригинале 73628 (уже отнято 8 байт), в Моде 73504 (уже отнято 8 байт) (В версии 0.61 его пока ещё нет)

Замещаем эти байты se_*.map.json и перекидываем в архив сохранения наши json файлы.

И пробуем загрузить наше сохранение, если получилось загрузить значит можно дальше играть не с 0.

Добрый день! Я так понимаю, вы не продолжаете работу над русификатором?

  • Лайк (+1) 1

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


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

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

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

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

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

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

Войти

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

Войти сейчас

  • Похожие публикации

    • Автор: Evil_Finalist

      Valkyrie Profile: Lenneth
      Дело валькирии: Леннет
      ヴァルキリープロファイル −レナス− ДАТА ВЫХОДА: 22 декабря 1999 (PS1), 2 марта 2006 (PSP)   ЖАНР: jRPG
      ИГРОВЫЕ ПЛАТФОРМЫ: PlayStation Portable                                 ИЗДАТЕЛЬ: Square Enix
      ЯЗЫК ПЕРЕВОДА: Русский                                                                РАЗРАБОТЧИК: tri-Ace
      ЯЗЫК ОЗВУЧКИ: Английский, Японский                                       БОЕВАЯ СИСТЕМА: Turn-Based Battle System

      (1) Технический план:                         (2) Текстовый план:
      100% Разбор ресурсов                       100% Сюжет
      035% Текстуры                                    100% НИПы
      025% Видеоролики                             100% Квесты
      040% Вставка контента                    100% Глоссарий
      080% Редактирование                       075% Меню и интерфейс
      033% Тестирование                         090% Работа с размерами рамок для всех диалогов
                                                                         050% Работа с файлами титров
        УЧАСТНИКИ ПЕРЕВОДА: Evil Finalist (Вадим Стрежов): руководство проекта, вставка контента, работа с текстурами
      Dangaard (Владимир Лымарев): переводчик (сюжет, квесты, НИПы, меню, и многое другое), редактирование
      Polka (Динара Овчинникова): логотип, подбор шрифтов
      Riku_KH3: хакинг, разбор ресурсов
      ТАКЖЕ СВОЙ ВКЛАД В РАЗВИТИЕ ПРОЕКТА ВНЕСЛИ:
      Moonbear (Александр Уткин): помощь с рамками диалогов
      yurrrbannn (Юрик Машкин): помощь с идентификацией титров
                  Начало проекта: 11.05.2023
      Демо перевод v0.33: 23.06.2024
      Завершение проекта: ???
      Дата релиза: ???     ССЫЛКИ НА РУСИФИКАТОРЫ:

      Демоперевод v0.33 (Английская озвучка):
      https://www.zoneofgames.ru/games/valkyrie_profile/files/9161.html

      Демоперевод v0.33 (Японская озвучка):
      https://www.zoneofgames.ru/games/valkyrie_profile/files/9160.html

      Полный перевод v1.00: Ожидается в 2026-2027 годах
      Страница перевода на сайте:  http://temple-tales.ru/translations_vp1_psp.html
      Группа в ВК: https://vk.com/temple_of_tales_translations
      Канал Ютуба: https://www.youtube.com/channel/UCJfDLKD1ClnKgLBdf7eblNA
      Публичный сервер в ДИСКОРДЕ: https://discord.gg/hwrDj8Yxsh
      На данный момент проект находится на ранней стадии. А начали работать над ним мы ещё весной 2023 года. На самом деле, прошло гораздо больше времени. Поиски программиста для работы над первой частью игры продолжались с 2017 года. Те, кто пробовали разбираться в ресурсах игр от разработчиков tri-Ace, знают, что там чёрт ногу сломит. Наверное именно поэтому за все эти два с лишним десятка лет так никто и не сдвинулся с мёртвой точки. Это одна из причин, почему в эпоху PS1 эту часть игры и её сиквел на PS2 пираты обошли стороной. Наше почтение Riku_KH3, трудящемуся над этой игрой! Нам повезло, что, спустя столько лет, именно Рику согласился помочь - и не только с разбором самой игры, но и с написанием автоматического выравнивания рамок под стать переведённому тексту. С этим тоже были определённые сложности, так как в игре на каждое окно диалогов прописаны данные: координаты, ширина и высота рамки. Править всё это вручную было бы нереально. Самое страшное позади.
      Кроме того, мы очень рады тому, что работать над игрой согласился известный и уважаемый человек в переводческой деятельности - Владимир Лымарев (Dangaard). Кто-то уже знает о его достижениях, а мы просто расскажем тем, кто слышит о нём впервые. Владимир переводил многие игры в сериях Final Fantasy и Silent Hill, а также коснулся и Metroid'ов. Он также участвовал в неофициальных переводах книг "Песни льда и огня" (7kingdoms.ru) и, помимо этого, написал целую кучу материала по японским рпг для сайта Final Fantasy Forever (ffforever.info): прохождения, новеллизации, штампы японских ролевых игр, аналитику и многое другое. И это далеко не всё. Безгранично рады потрудиться вместе над шедевральным проектом - VALKYRIE PROFILE. Если данный проект найдёт определённый отклик у аудитории, то тогда мы постараемся продолжить дело и с сиквелом Valkyrie Profile 2: Silmeria. Но об этом пока рано говорить, так как сначала нужно полностью осилить историю Леннет.
      Прилагаем часовую видеодемонстрацию сюжета от пролога и до конца нулевой главы. На выбор представлено два видеоролика: с японской и английской озвучкой. Да, как и многие наши прошлые проекты, в этом мы тоже стараемся реализовать перевод для обоих вариантов озвучки.
      В довершение всего, стоит отметить ещё один не менее важный момент. К сожалению, не все проекты удаётся осилить и осуществить должным образом в виду малой заинтересованности аудитории или отсутствия интереса переводчиков. Все проекты мы распространяем бесплатно и денег за них не требуем. Мы не занимаемся продажей. Наше творчество — от фанатов для фанатов! Но есть несколько проектов, которые удастся выполнить только лишь благодаря сборам на оплату услуг переводчиков и программистов. Дело валькирии — один из них. Полный релиз Valkyrie Profile только в ваших руках! Если вы желаете отблагодарить нашу команду за труды, то мы будем вам очень признательны. Поверьте, этот проект очень сильно нуждается в финансовой помощи, так как стоимость его реализации высокая.
       
      -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      Идёт сбор средств на оплату услуг программиста и переводчика Valkyrie Profile: Lenneth
      Собрано: 147 868 / 200 000
      последнее обновление от 23.02.2026
      Карта ВТБ: 4272 2908 4659 1246
      ЮMoney/Яндекс кошелёк: 410011235819402
      Список донатеров: http://temple-tales.ru/donations_vp1_psp.txt

      Перевод планируется выпускать: БЕСПЛАТНО
      -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    • Автор: SerGEAnt
      Space Chef

      Метки: Мультипликация, Цветастая, Бой, Для одного игрока, Управление ресурсами Платформы: PC SW Разработчик: BlueGooGames Издатель: Kwalee Дата выхода: 28 октября 2025 года Отзывы Steam: 86 отзывов, 73% положительных


Zone of Games © 2003–2026 | Реклама на сайте.

×