Skip to content

A project for working with "Little Busters! English edition" scripts

Notifications You must be signed in to change notification settings

thedanill/LB_repack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LB_repack

Русский | 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).
  1. Распаковать SCRIPT.PAK и дизассемблировать полученные скрипты

    python3 unpack.py

    Появится две папки: unpacked с оригинальными скриптами из архива и disassembled с дизассемблированными.

  2. Внести изменения в файлы из папки disassembled.

  3. Скомпилировать скрипты и сгенерировать новый SCRIPT.PAK

    python3 repack.py

Для проверки работоспособности приложен test.py, который реассемблирует все скрипты и сверит получившиеся файлы с оригинальными. Они должны быть идентичны.

Заметки

Файлы SEEN8500 и SEEN8501 — это не файлы скриптов, хотя и выглядят похоже.

В SEEN8500 хранятся названия аксессуаров, они используются в профилях персонажей и в уведомлениях о подарках главному герою.

В SEEN8501 хранятся боевые титулы, они отображаются в профилях персонажей и в конце каждого боя. Большая часть титулов статична, но некоторые из них генерируются налету из прилагательного и существительного. Это частично задокументировано в японской вики (см. две нижних таблицы).

Благодарности

  1. LuckSystem от wetor за общую идею и некоторую информацию о командах
  2. NXGameScripts от masagrator

Код masagrator изначально был взят за основу проекта, но он него почти ничего не осталось.

About

A project for working with "Little Busters! English edition" scripts

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages