Русский | English
Проект предназначен для работы со скриптами переиздания Little Busters! English Edition (Luca System, 2017г).
Поддерживаются версии игры для PC и Nintendo Switch.
LuckSystem, основной проект для работы с ресурсами этого движка, не может перепаковать все игровые скрипты LB_EN (по крайней мере, на момент написания README). Попытка внести правки успехом не увенчалась, потому что код проекта построен на пятиэтажных абстракциях, в которых легко потеряться. Я до сих пор не понимаю, в чём там дело.
Было решено писать свою предельно прямолинейную вариацию.
Основная цель — перевод новеллы на новый язык. Для этого всё готово.
- Ассемблер и дизассемблер скриптов
- Распаковщик и упаковщик .PAK-архивов (только скриптовых)
Switch-версия — это с технической точки зрения абсолютно другая игра на другой версии движка. Тем не менее, она тоже поддерживается.
Важно понимать: дизассемблером намеренно поддерживается минимальный набор opcode'ов, связанных с текстом новеллы: MESSAGE, SELECT, BATTLE, TASK, SAYAVOICETEXT, VARSTR_SET и некоторые другие.
Если вы считаете, что я пропустил какой-то важный opcode, создайте issue — по необходимости исправлю.
Код, конечно, грязный, но зато полностью функциональный.
В репозитории есть оригинальные архивы сценариев:
- SCRIPT.PAK из steam-версии игры (build 1.2.4.0)
- SCRIPT.PAK из switch-версии игры (title_id=0100943010310000, version=1.0.0).
-
Распаковать
SCRIPT.PAK
и дизассемблировать полученные скриптыpython3 unpack.py
Появится две папки:
unpacked
с оригинальными скриптами из архива иdisassembled
с дизассемблированными. -
Внести изменения в файлы из папки
disassembled
. -
Скомпилировать скрипты и сгенерировать новый
SCRIPT.PAK
python3 repack.py
Для проверки работоспособности приложен test.py
, который реассемблирует все скрипты и сверит получившиеся файлы с оригинальными. Они должны быть идентичны.
Файлы SEEN8500 и SEEN8501 — это не файлы скриптов, хотя и выглядят похоже.
В SEEN8500 хранятся названия аксессуаров, они используются в профилях персонажей и в уведомлениях о подарках главному герою.
В SEEN8501 хранятся боевые титулы, они отображаются в профилях персонажей и в конце каждого боя. Большая часть титулов статична, но некоторые из них генерируются налету из прилагательного и существительного. Это частично задокументировано в японской вики (см. две нижних таблицы).
- LuckSystem от wetor за общую идею и некоторую информацию о командах
- NXGameScripts от masagrator
Код masagrator изначально был взят за основу проекта, но он него почти ничего не осталось.