Посібник: інтерфейс
Мова: English · Українська
Карта головного вікна, як його збирають ui/builders/menu_builder.py, toolbar_builder.py і layout_builder.py. Підписи нижче — як у англійському UI.
Рекомендований порядок роботи: 8. Пайплайн локалізації. Віртуальні теки і прев’ю: 6. Кнопки AI: 11. Усі можливості одним переліком (англійською): docs/FEATURES.md.
1. Розкладка
+---------------------------------------------------------------------------------+
| File Edit View Tools Navigation Bookmarks Help |
+---------------------------------------------------------------------------------+
| Toolbar: Save Undo Redo Find Preview AI Chat BFN Rescan All Settings >_ F1 |
+---------------------------------------------------------------------------------+
| Blocks (tree) | Strings in block (click a line to select) |
| folders + files | Hide empty / translated / unsaved / overrides / warnings |
| Speakers, Story, … +----------------------------------------------------------+
| + − ✎ ↑ ↓ ⟳ | Original (read-only) | tools | Editable translation |
| Глосарій… | Max-width, Hide tags | | Window / Chapter / Speaker |
+---------------------------------------------------------------------------------+
| Зона | Що це |
|---|---|
| Ліворуч | Дерево проєкту: фізичні файли + похідні віртуальні корені. Заголовок: Blocks: (підказка про подвійний клік у тултіпі). |
| Праворуч зверху | Strings in block (click line to select): список лише для читання. Клік по рядку прив’язує редактори. |
| Ліворуч знизу | Original — оригінал, лише читання. |
| Праворуч знизу | Editable — єдине поле, куди пишеться переклад. |
| Вузька колонка між Original і Editable | Revert string, Restore translation, Inspect story context, стрибок у Script Markup Studio. |
| Над Editable | Window:, Chapter:, Speaker:, далі AI Translate, AI Variation, Auto-fix, Font:, Max-width:, Apply. |
| Під Editable | Візуальне прев’ю (перемикач View → Preview). |
Не друкуйте в Original. Не вважайте список Strings редактором.
2. Перший запуск
File → New Project…(Ctrl+N) абоOpen Project…(Ctrl+O).- New Project (Create New Project) запитує:
- Project Name
- Project Location (тека, де з’явиться
project.uiproj) - Source Type: Folders або Files - Source: оригінальні файли (або розпакований ISOroot) - Translation: копія, куди можна писати - Auto-create translation files - Game Plugin: тека вplugins/зconfig.json- Description (необов’язково) - Плагіни, які зараз так знаходяться (ім’я теки → display_name у
config.json): -zelda_bmg— Zelda: Twilight Princess BMG. Однаково для GameCube, Wii і Wii U (HD): Source — тека зbmgres*.arc(res/Msgusна GameCube і в розділі DATA диска Wii,content/res/MsgukабоMsgusу HD); ідентифікатори повідомлень ті самі, тож мовці, сцени й розмови працюють однаково. У тексті HD є ще іконки керування Wii U ({U:ZL},{U:L stick},{U:+}…). Тека шрифтів —res/Fontus(HD:res/Fonteu). HD малює літери з текстур у*.pack.gz, а не з BFN: збирання робочої теки (TPHD_UA\2_build.bat) перемальовує їх з відредагованих аркушів BFN. Збірка (менеджер проєктів): образ диска GameCube записує перекладений ISO поруч із копією диска, яку майстер записав під час розпакування гри (проєкт, створений раніше, такого запису не має: створіть його знову); мод для Dusklight записуєTwilight Princess (UA).duskі потребує вашого диска USA; графічний пакет Wii U і тека SDCafiine записує графічний пакет Cemu і теку SDCafiine для HD-гри з таблицями розмірів і перемальованими текстурами шрифтів. Диск Wii ще не має цілі збірки: його розділи зашифровані, і Picoripi не може їх записати. Майстер нового проєкту: додайте диск GameCube USA (GZ2E01) або диск Wii USA (RZDE01; майстер один раз попросить ваш файл ключа Wii), і майстер його розпакує; для Wii U HD, який Picoripi не читає як.wux, додайте розпаковану теку гри (зcode,contentіmeta) кнопкою Add folder...: джерелом станеcontent/res/Msguk. -zelda_mc— The Legend of Zelda: The Minish Cap -zelda_ww— Zelda: The Wind Waker HD (Wii U):Message/*.msbtіFont/*.bffnt, витягнуті зcontent/Common/Pack/permanent_2d_UsEnglish.pack(один блок на MSBT). Теги взяті зCKing.msbpсамої гри ([Red]…[/C],[Name],[Wait:10],[A]); мовці, ширина вікна (875 одиниць шрифту у вікні розмови, 812 — у табличках і вікнах предметів, 4 рядки на сторінку), розмови й терміни глосарію — з атрибутів кожного повідомлення. Незмінений файл зберігається байт у байт. Load Reference Patch з текою файлівpermanent_2d_<Регіон><Мова>.pack(текаreference\робочої папки: французький та іспанський pack гри і pack російського патча під назвоюpermanent_2d_RuRussian.pack) показує ці мови, російську першою, за файлом і міткою повідомлення. Font Editor: усі шість шрифтів (CKingMsg, CKingMain, CKingMainL, RGBA8-картинки кнопок CKingPic, CKingRuby, CKingZelda). Вікно Textures: зображення BFLIM логотипа, екрана завантаження, екранів кнопок і контролерів (source\Layout\*.szs, тобтоcontent/Common/Layoutгри) і назви на картах та картинки кнопок у pack. Старі проєкти з.txtKruptar теж відкриваються. Майстер приймає англійський пакет або теку гри й розпаковуєMessage\,Font\,Pack\іLayout\; Зібрати робить графічний пак Cemu (graphicPacks\Picoripi_UA_WWHD\) з змінених повідомлень і шрифтів. Порт для Switch SwitchWakerHD (centollOS, форк ZeldaWWHDRecomp) читає розпаковану гру зsdmc:/switch/wwhd/game/під час гри, тож2_build.batробочої теки також пишеbuild\switchwakerhd\switch\wwhd\game\content\(перекладений pack і файлиCommon/Layout) для копіювання поверх цієї теки; ті самі файли працюють у Windows-збірці ZeldaWWHDRecomp -paper_mario_cs— Paper Mario: Color Splash (Wii U, Європа): Source —source\contentробочої папки (1_unpack.batрозпаковує туди файли гри.lz), один блок на коженmessages/EU_English/*.msbt(48 файлів, 6 940 повідомлень). Назви тегів узято зgojika.msbpсамої гри ({PageBreak},{wait:30},{select:0:1:0:300:yesno},{ItemName:item}). Редактор шрифтів показує п'ятьfonts/*.bffnt; вікно «Текстури» — англійські картинки інтерфейсуGraphics/UI/**/*.EUR_en.bfres(логотип, написи боїв, заставки розділів).2_build.batзнову стискає змінені файли й записує їхні розміри вfs.table-zelda_sshd— Zelda: Skyward Sword HD (Switch) і оригінал для Wii (один плагін; версію видно з теки джерела): англійські*.msbt, які1_unpack.batдістає з архівів.arc(US/Object/en_US/<область>/, текст інтерфейсуLayout/<назва>/text/), один блок на файл. Теги названо за текстом ({heroName},{color:Red},{item:11},{icon:41},{wait:15},{choice1:65535}); незмінений файл зберігається байт у байт, а2_build.batпакує файли назад в архіви. Ціль збіркиskyrecomp(Switch, «SkyRecomp (порт для Windows, тека моду)») пишеmods/Picoripi_UA/romfs/для порту SkyRecomp: кожне змінене повідомлення пакується у свій.arc, змінений шрифт копіюється як є; вона читає сиру текуromfsпоруч ізsourceі відхиляєexefs/main, що не є v1.0.0. Мовці (байт мовця в HD, вікно Фай, файли одного персонажа), розмови (потоки MSBF), межі рядка для кожного типу вікна (гра сама рве задовгий рядок посеред слова, тож тримайтеся меж; 4 рядки на сторінку) і терміни глосарія беруться з даних гри. Load Reference Patch з текоюromfsHD показує офіційну російську першою і ще 12 мов — і для проєкту Wii, за міткою повідомлення. Wii: повідомлення меню HOME (HomeButton2/home.csv, англійський стовпець) — теж блок. Tools → Textures показує англійські текстури з текстом (логотипи заставки й фіналу, підписи вступу, Game Over, The End; Wii: банер збереження, попередження про ремінець, написи меню HOME, банер каналу дискаopening.bnr), а Font Editor — усі шрифти (і шрифт іконок, шрифти меню параметрів HD, шрифти меню HOME і відео MotionPlus на Wii), коли робочий інструментtools\ss_extra_sources.py(у теці HD) поклав їх уsource-zelda_mm64— Zelda: Majora's Mask (N64): вихідний файл — сам американський ROM (.z64,.n64,.v64), файл перекладу — перекладений ROM. ROM відкривається чотирма блоками: 4589 повідомлень, 45 повідомлень титрів (коди Ocarina of Time), «Interface strings» — рядки, які друкує сам код гри (назви місць для сови, «Rupee(s)», швидкість часу, кольори коду масок; у кожного фіксоване місце), і «PRESS START» титульного екрана (два слова до 5 клітинок титульного шрифту: цифри, латинські літери, кілька літер із діакритикою); коди керування як{теги}(zeldaret/mm); ширина рядка за мапою шрифту гри з Font Editor, коли її збережено в проєкті, інакше за таблицею ширин самої гри, і за типом вікна. Збереження перебудовує файли тексту й таблиці повідомлень із вихідного ROM, лишає текстури, гліфи й ширини, змінені в перекладеному ROM (Інструменти → Textures, Font Editor), і виправляє контрольну суму заголовка. Мовці (один актор на рядок, коли декомпіляція показує рівно одного), сцени й терміни для глосарію беруться зcontext.json, який офлайн створює з zeldaret/mm і ROM командаpython -m plugins.common.zelda64_context. Українські літери зберігаються в комірки шрифту зtranslation_map.json(проєкту, інакше плагіна): схожі на латинські літери ділять латинський гліф (А = A, і = i, Ї = Ï…), решта займає комірки літер з діакритикою й невживаної пунктуації, дібрані за шириною, тож англійський текст лишається читабельним; Ocarina of Time — за тією ж схемою. Load Reference Patch із текою, де лежитьmm3d_seed.json(український текст, перенесений із Majora's Mask 3D за ідентифікаторами повідомлень N64), показує його як референс «Ukrainian (MM3D)» -zelda_mm3d— Zelda: Majora's Mask 3D (3DS, Європа, з оновленням v1040 або без нього). Source: текаsourceробочої теки (1_unpack.batкопіює тудиromfs\message\eu\eue.gmsg, шрифтltn16.gzfі текстури з текстом); Translation:translation(цілі файли за шляхами romfs;2_build.batробить мод LayeredFS, який читають і гра, і оновлення). Усі 6152 повідомленняeue.gmsg(діалоги, предмети, таблички, Записник Бомберів, назви місць, титри, вибір файлу, риболовля, Камінь Шейка, завдання), один блок на діапазон ідентифікаторів; невідредагований файл лишається байт у байт. Коди керування — теги з назвами плагіна N64, де код той самий:{color:red},{box-break}(після нього розрив рядка),{quicktext-on},{name},{btn:A},{delay:10},{flow:wait},{event:1},{choices:2},{center},{sfx:0x01006858},{plural:0x0007}…{plural-else}…{plural-end}. Load Reference Patch зeue.gmsgросійської збірки (або її текою) показує російську; тека гриromfs\message\eu— французьку, німецьку, іспанську та італійську. Font Editor відкриваєltn16.gzf; вікно «Текстури» показує 129 текстур з текстом: меню й HUD (layout\EU_English\*.gar), заставки місць, днів і босів, логотип і копірайт заставки (текстури всередині моделі.cmbі анімації.cmab), попередження про збереження і мітки версії -zelda_oot64— Zelda: Ocarina of Time (N64): американський ROM 1.0, так само якzelda_mm64: ROM відкривається трьома блоками — 2115 повідомлень, 48 повідомлень титрів і два рядки титульного екрана («PRESS START», «NO CONTROLLER»: по два слова, кожне слово вміщається в клітинки, які малює гра, лише літери й цифри титульного шрифту); коди з zeldaret/oot. Font Editor показує шрифт повідомлень і шрифт титульного екрана та вибору файлу (гліфи кандзі, які гра бере за повідомленням 0xFFFC; ширин у нього немає). Інструменти → Textures показує 335 текстур із текстом (назви предметів, мап і місць, написи паузи й вибору файлу, заставки босів); збереження тексту лишає текстури й шрифти, змінені в перекладеному ROM -jak_and_daxter— Jak and Daxter (Switch, порт OpenGOAL; Jak 1 NTSC-U, Jak II NTSC-U, Jak 3 PAL, один плагін): Джерело — англійський текст гри (text/common.json, 781 id у Jak II, один блок, id збережено) і англійські рядки субтитрів (subtitle/lines.json, один блок на сцену). Збереження записує лише змінені рядки в англійський overlay порту;2_build.batзапускає власний компілятор порту, тож гра читає змінені файли*.TXT. У вікні Текстур видно текстури рівнів, експортовані в PNG (textures/**/*.png, з файлів.fr3; пікселі RGBA та BC1/BC3). Текст іде через англійський overlay, тому український переклад показується в будь-якій збірці без змін інтерфейсу; шрифту Jak у Редакторі шрифтів поки немає. -black_and_white— Black & White (Lionhead, 2001) на порті openBlack для Switch: Джерело —Scripts/InfoScript2.txt, англійська таблиця ADD_TEXT (6 974 рядки, один блок; ключ, прапорець і диктор кожного виклику лишаються такими, як у грі). Збереження записує переклад лише в текстові літерали, тож решта файлу лишається побайтово без змін; текст із подвійною лапкою відхиляється. Ціль збіркиopenblack_sdзаписує цей один файл уswitch/openblack/game/Scripts/для SD-карти. Порт ще не показує текст гри (йогоRUN_TEXTлише відтворює голос, аLOAD_LANGUAGEне реалізовано), тож перекладений рядок у порті не видно, доки немає показу тексту. Цей плагін шрифтів і текстур не відкриває. -sly_cooper— Sly Cooper and the Thievius Raccoonus (порт ProjectCane, Switch, папка даних читається на місці): Джерело — англійський текст кожного файлу рівня (text/<світ>/<рівень>.json, один блок на рівень, усі текстові рядки у порядку файлу: діалоги, субтитри, сторінки Thievius Raccoonus). Збірка замінює кожен змінений рядок у копії файлу рівня (build\ProjectCane\Worlds\...) і перевіряє результат. Зараз записується лише ASCII: рядок з іншими літерами зупиняє збірку. Шрифти і картинки ще не відкриваються; текст меню вшитий у порт. Читачу таблиць рівня потрібен локальний файл схеми опцій, який цей випуск не постачає. -manual_3ds— Електронні посібники системних програм 3DS (переглядач інструкцій). Джерело і переклад — папки з одним JSON-файлом на посібник (форматsrc/manuals/*.json:en— англійська,ru— російська,ua— переклад). Це може бути та сама папка (файли читаються на місці): колонка оригіналу показуєru(ключі йдуть за російським документом), колонка перекладу —ua, а довідкова вкладка English (EN) показуєenлише на сторінках, де англійський текст збігається з російським абзац за абзацом; на будь-якій іншій сторінці вона порожня. Редактор перевіряє кожен абзац так, як його показує консоль: рядки розставляються так само, як збірка для консолі, а вимірюються так, як їх малює консоль (кількість рядків, текстові панелі за стилем, слово ширше за свою панель, рядок, який консоль розриває всередині панелі, рядок за краєм картки, рядок, що заходить на картинку або рамку збоку), а коли в панелі перегляду вказано папку repo_manual, сторінку ще й збирають і малюють з усіх поточних текстів на ній, тож редактор позначає те, що видно лише на намальованій сторінці (рядок, що виходить із залитої клітинки, два абзаци, чиї літери сходяться, рядок, який замальовує намальована після нього панель), плюс маркери, гліфи та кнопкові гліфи (кожен має повернутися, як в російському оригіналі; гліф, що має власну панель, лишається в ній і не входить у переклад). Панель попереднього перегляду — симулятор переглядача консолі: сторінку збирають з поточного тексту так само, як збірка для консолі, і малюють з отриманих файлів розмітки шрифтом консолі, з її картинками, рамками та оформленням (заголовок зі значком номера сторінки консолі, смуга прокрутки, нижня панель); рядок стану називає номер сторінки консолі та дефекти рендера (рядок виходить за край картки на смугу прокрутки, переглядач розірвав рядок усередині панелі, рядок над картинкою чи рамкою, рядок, що починається в залитій клітинці й виходить за неї — білий підпис таблиці виходить із сірої клітинки на білу сторінку, як і на консолі, — два рядки, чиї літери сходяться, рядок, який замальовує панель, намальована після нього, відсутній гліф). Прев'ю перемикається на розмір тексту вибраного рядка (великий чи дрібний); вибраний абзац обведено на сторінці, і сторінка прокручується до нього, якщо його не видно; рядок, що не малює тексту, каже про це в рядку стану. Той самий рендерер працює без вікна:python scripts/manual_3ds_render.py render <посібник> <сторінка консолі> --size small --out page.png,all --out <папка>(усі сторінки збірки зі списком дефектів),validate --shots <classification.json> --calib <папка знімків> --out <папка>(звіряє пари знімків консолі з кожною збіркою й пише HTML-звіт),table(номер сторінки консолі, файлPage_NNN, назва, категорія). Попередній перегляд. Перегляд посібника (замість попереднього перегляду BFN) малює сторінку вибраного рядка так, як показує переглядач 3DS: верхній і нижній екрани один під одним, один безперервний стовпець тексту, прокрутка колесом миші або перетягуванням. Кнопка Y (смуга внизу нижнього екрана або кнопка в нижній частині панелі) перемикає великий і малий текст. Текст — поточний переклад; рядок, який рендер позначив дефектом (за краєм картки, розірваний усередині панелі, над картинкою чи рамкою), має напівпрозору червону смугу. Рядок зупиняється перед картинкою або рамкою збоку, як на консолі. Папку вказують кнопкою Обрати папку... внизу панелі. У ній лежать архіви посібників власника: вона читається на місці, нічого не копіюється. Проєкт може містити всі посібники (один файл на блок): кожен блок малює власний посібник. Посібник без консольних файлів у цій папці (наприкладbrowser) показує про це один рядок. Картинки малюються зі своїх текстур, а віконні панелі (помаранчеві пункти) — зі своїми рамками-текстурами; панель без текстури заливається її власним кольором. Верхній рядок показує номер сторінки консолі в значку кольору категорії сторінки з «Змісту» та назву з розділу «Зміст» (переклад). Сусідні сторінки на панелі не малюються. Бічна смуга, смуга прокрутки й нижня панель переглядача беруться з вирізок знімків екрана в ігнорованій git папці даних (<data>/plugins/manual_3ds/chrome); без них вони малюються пласко. Клік і оригінал. Клік на абзац у перегляді (натиснути й відпустити без перетягування) вибирає його рядок у редакторі; перетягування прокручує сторінку. Вибирач над переглядом додає оригінал поруч із перекладом. Оригінал: російська (ru) малює сторінку так, як її зберігає консоль, з її власними переносами рядків. Оригінал: англійська (en) малює англійський текст у російських панелях. Обидва полотна мають спільну прокрутку, розмір тексту і вибраний абзац. Рядок стану показує, як вміщується абзац: його панелі, ширину панелі, скільки рядків потрібно тексту і їхню ширину, та найдовше слово. Проблема слова, кількості рядків або панелей дає ті самі числа; підпис у сірій клітинці каже, скільки панелей має клітинка. Переноси рядків. Enter вводить жорсткий перенос{br}. Перенос рядка, введений іншим способом, на консолі є пробілом: проблемаNEWLINEйого позначає, а її автовиправлення замінює його на{br}. Жорсткий перенос займає вільний рядок на консолі; без нього абзац дає проблему рядків. Теки. Під кожним посібником у дереві блоків: Small text і Large text (тека на сторінку, назва — заголовок розділу), Sections (на розділ: його малий текст, потім великий) і Contents (заголовки розділів). Рядок стоїть у двох місцях. Назви розділів беруть поточний переклад запису індексу, або оригінал, коли він порожній. Назви оновлюються після перебудови дерева (після збереження). Вибір теки показує її рядки в списку. Той самий текст. Абзац, чий текст однаковий у двох посібниках (наприклад, розділ «Здоров'я і безпека»), отримує один переклад; смуга пам'яті й пакетне злиття повторів використовують його. Кожне місце перевіряється першим: якщо текст не вміщається в його панель або кількість рядків, він не записується (смуга стану показує кількість). Великий і малий текст мають спільний переклад; перевірка вирішує для кожного місця (вікі 11, Одне джерело — один переклад у межах прогону). -system_3ds— системні меню та аплети Nintendo 3DS («Налаштування системи», меню HOME, клавіатура, аплет помилок, список друзів, Mii Maker, eShop, браузер та інші частини мода 3DS UA). Джерело і переклад — одна й та сама папка:srcрепозиторію мода, редагується на місці (збіркою лишається власна збірка репозиторію). Кожен файлsrc/strings/<частина>/*.jsonі кожен файлsrc/layouts/<частина>.json— один блок. Рядок — один запис: його id — мітка MSBT або шлях до панелі розмітки для тексту всередині розмітки (up_LZ.bin/./blyt/StartTopEU_U_00.bclyt/TextBoxTitle_00#0). Оригінал —en, переклад —ua, аru— довідкова колонка лише для читання (шлях довідки проєкту — та сама папкаsrc)._all_langs.jsonне є блоком: у ньому заміни збірки для кожного мовного слота. Збереження записує у файл на диску лише ті значенняua, що відрізняються від нього; усі інші байти лишаються ті самі, тож файл, збережений без змін, — той самий файл. Колонка ширини показує кожен рядок у пікселях системного шрифту 3DS, виміряний так само, як його міряє власний валідатор репозиторію мода (validate.pyу його папці tools) (теги масштабу{t:1.0:XXXX}враховано). Рядок має проблему ширини, коли він ширший за бюджет самого мода: для мітки повідомлення — найширша офіційна локалізація цієї мітки, для панелі розмітки — найширший рядок інших мов у цій панелі (та сама перевірка, що й у валідаторі мода; бюджет мають приблизно дві третини рядків). Рядок без бюджету показує ширину без межі. Перегляд. Замість перегляду BFN вибраний рядок малюється там, де його малює консоль, якщо його текст лежить у розмітці: розмітку читають з папки repo_manual, текст її текстової панелі замінюють текстом рядка, а панель обводять помаранчевим. Так працює для зв'язків розміток, які будуєscripts/build_system_3ds_layouts.py(plugins/system_3ds/layout_links.json): мітки, названі користувацькими даними текстової панелі (частини браузера, Miiverse, дописів Miiverse і нотатки гри), і рядок заставки «Налаштувань системи». Рядок стану каже, що панель на місці і що фон — заглушка, а не фон консолі; рядок, що не малюється у своїй розмітці, це каже й показує рамку. Інші рядки малюються як рамка бюджету: системним шрифтом консолі, з ширинами гліфів шрифту, у рамці такої ширини, як бюджет ширини, і стільки рядків заввишки, скільки рядків у бюджеті (найбільше рядків серед усіх офіційних локалізацій мітки). Рядок, ширший за бюджет, лишається повністю, з червоною рискою над ним і сірою межею на бюджеті; рядки понад бюджет рядків стоять під червоною смугою. Рядок стану показує найширший рядок щодо бюджету, кількість рядків і символи, яких немає в шрифті. Шрифт, ширини і розмітки беруться з папки repo_manual перегляду мануалів; її задає Обрати папку.... Збирання та експорт. Build mod, Export mod і Run in emulator використовують власний Makefile репозиторію мода:build-ru(російський слот, текаdist) іbuild-en(англійський слот, текаdist_en). Picoripi копіює Makefile,tools,assetsіsrcу тимчасову теку всередині теки збирання та з'єднуєworkіз текуworkрепозиторію; сам репозиторій не змінюється. Для збирання потрібен GNU make у PATH (scoop install make) і текаworkз кожним титулом, який читає збирання; титул без дампу зупиняє його (UA_SKIP_TITLESу Makefile перелічує титули, які пропускають). Вивід make лежить уbuild.logпоруч із результатом. Збереження зупиняється з повідомленням, яке називає файл, змінений на диску після того, як Picoripi його прочитав або записав: перевідкрийте проєкт, а потім збережіть. Run in emulator запускає команду з текою збірки; тека Luma — не розмітка, яку емулятор завантажує сам, тож команда має виконати крок встановлення. -hard_corps_uprising— Hard Corps: Uprising (порт Xbox 360 XBLA на ПК): проєкт лише з текстурами, без текстових блоків. Картинки гри (Gui\Img, спільні й англійські екрани) і шрифтFont\ck_font.binяк сітка гліфів 16 x 16 (ASCII 0x20-0x7E). -zelda_ladx_hd— Link's Awakening DX HD (фанатський ремейк для ПК, v1.0.0): англійськіData\Languages\eng.lngіdialog_eng.lng, один блок на рядокКЛЮЧ ЗНАЧЕННЯ. Файл без змін зберігається побайтово.2_build.batзаписуєukr.lngіdialog_ukr.lng(гра показує мову для кожного файлу.lng, тому exe не змінюється). Font Editor відкриває вісім шрифтів SpriteFont зContent\Fonts\*.xnb(шрифт діалогівsmallFont, заголовки менюnewHeaderFont); жоден шрифт поки не має української літери. Літера, введена у вільну комірку, додає гліф, а таблиця символів лишається відсортованою. Tools → Textures показує лист інтерфейсуData\ui.pngі чотири картинки менюContent\Menu\*.xnb. Повторний ключ або змінений[TAG]зупиняють збірку; відсутні гліфи перелічено уbuild\glyph_report.txt. -zelda_tww— Zelda: The Wind Waker (GameCube BMG):res/Msg/bmgres.arcз американського чи європейського диска (data0–data4— англійська, німецька, французька, іспанська, італійська). Працює на механізмі Twilight Princess; теги, кольори й ширина рядка взяті з декомпіляції zeldaret/tww, ширина рядка й кількість рядків на сторінці залежать від типу вікна кожного повідомлення. З усією текоюsourceдиска проєкт має ще гайліанські рядки (bmgresh.arc/zel_01.bmg, Shift-JIS), повідомлення про помилки диска всерединіsys/main.dolі банер диска (opening.bnr, лише латиниця); Font Editor показує шість шрифтів (повідомлень, гайліанський, введення імені та його копію в архіві вибору файлу, шрифт помилок диска вmain.dol, шрифт меню налагодження), а вікно Textures — 154 текстури з текстом (BTI, підзаголовок заставки у двох моделях BDL, банер). Мовців і рамок вікон поки немає. Порт для Switch SwitchWaker (centollOS) читає весь диск під час кожного запуску, тож2_build.batробочої теки також складаєbuild\switchwaker\switch\switchwaker\(перекладений диск якGZLE01.isoпоруч ізswitchwaker.nroі кешами з релізу) для SD-карти; порт перевіряє хешmain.dol, тому до нього доходять лише зміни уfiles\, а не рядки помилок диска вmain.dol. У Менеджері проєктів Зібрати створює Образ диска (ISO) (з перекладенимmain.dol) або Диск для BlueWake (оригінальний main.dol) з тек джерела й перекладу, без початкового образу; Запустити в емуляторі використовує команду, задану для платформи GameCube або BlueWake. Windows-перекомпіляція BlueWake (chrissotraidis/bluewake, реліз-zip, американський дискGZLE01) бере той самий диск і те саме правило щодоmain.dol: її DLL містить код, перекладений з оригінальногоmain.dolі модулів, а повідомлення, шрифти й текстури вона читає з диска під час гри, тому3_run_bluewake.batзапускає її з цимGZLE01.iso;UA TESTу текстурі заголовка й у повідомленні та змінені шрифти повідомлень і введення імені було видно у власному захопленні кадрів порту. BlueWake перевіряє диск перед запуском: ідентифікаторGZLE01у заголовку, магічне число GameCube і SHA-1main.dolревізії 0. Ціль BlueWake в Picoripi збирається лише з вихідногоmain.dol, що має цей SHA-1, інакше зупиняється з повідомленням. Для Запустити в емуляторі задайте для платформи BlueWake команду"<тека BlueWake>\BlueWake.exe" --disc {path}(BlueWake бере диск з--disc); Picoripi запускає програму в її власній теці, як3_run_bluewake.batробить черезpushd. HD-текстурні пакети BlueWake читає зLoad\Textures\GZLE01у його теці даних (текаuserпоруч зBlueWake.exe, якщо єportable.txt, інакше%APPDATA%\BlueWake); Picoripi поки не записує цю теку. Windows-форк WindowWaker (MaskeZenY, нативний порт, зібраний з декомпіляції, реліз-zip) бере той самий диск: перевіряє лише id і версію диска, ніколиmain.dolчи модулі, а повідомлення, шрифти й текстури читає з диска, тому3_run_windowwaker.batзапускає його з цимGZLE01.iso-super_mario_galaxy— Super Mario Galaxy і Super Mario Galaxy 2, один проєкт для всіх версій: Wii (США, RMGE01 / SB4E01 ревізія 0, ISO або RVZ), Switch (010099C022B96000 / 0100FD8022DAA000, NSP або NSZ) і, для першої гри, рекомпіляція Nebula для ПК. Додайте в майстер диск Wii і гру Switch; він розпаковує англійські архіви повідомлень і шрифти обох версій уunpacked\versionsі пише один документ на архів повідомлень (MessageData\<архів>.smgmsg: у Galaxy цеMessageі на SwitchSystem, у Galaxy 2 — по одному на зону). Кожен рядок — одна мітка повідомлення; мітку видно на панелі контексту, а рядок, який має лише одна версія, теж лишається рядком. Мітка, яку Wii і Switch формулюють по-різному, має два рядки, по одному на версію, з позначкою «Switch translation; Wii English differs»: перекладіть рядок Wii для Wii і Nebula (доти там показується англійський текст Wii). Теги показують байти Wii в усіх версіях ({escape:3:0000}у Galaxy,{tag:3:0:0000}у Galaxy 2); збірка пише порядок байтів кожної версії і кнопки Switch. Довідкові стовпці: усі інші мови обох версій (шлях довідки — текаunpacked; проєкт із майстра вже має його). Цілі збірки: Wii: Riivolution patch and Dolphin launcher (riivolution\<мод>.xml, змінені архіви і<мод>.jsonдля Dolphin, що запускає диск із патчем), Nebula (PC): disc mod manifest (лише Galaxy;README.txtпояснює: скопіюйтеsys\fst.binповерхcontent\sys\fst.binу Nebula і задайтеGALAXY_DISC_MOD_MANIFEST), Switch: Atmosphere LayeredFS mod (усі англійські слоти). Пишуться лише перекладені архіви. Наявний мод перекладу читається за мітками командоюpython -m plugins.super_mario_galaxy.import_mod <unpacked> <translation> <zip або тека мода>; його архіви стають основою для Switch (у них мітки оновлення гри), і йогоFont.arcіде разом із ними. Імпорт також копіює кириличні літери мода з його шрифтів Switch у шрифти Wii (масштабовані, нічого не малюється) і зберігає текст правильною українською (і, ї, є, ґ); кожна збірка пише літеру, якої немає в її шрифті, так, як це робив мод. Шрифти Wii (LayoutData\Font.arc: повідомлення, меню, ролики, числа і кнопки) відкриваються у Font Editor і зберігаються байт у байт (DECISIONS D39). -super_mario_sunshine— Super Mario Sunshine (GameCube, США, GMSE01 Rev 0): файли повідомлень BMG всередині архівів.szsдиска (files\data\scene\*.szs/map/message.bmg,option.szs,guide.szs), які читаються правилами Twilight Princess; джерело — увесь диск, розпакований з образу власника. Цілі збірки: GameCube disc image пише новий ISO поруч з оригіналом (оригінал не змінюється; записуються збережені файли і чотири словаmain.dolдля виправлення мовлення в хмарках, розмір диска і розташування файлів лишаються ті самі), PC and Switch port pack пишеmods\uk\files\...для портів (mod = uk, README всередині). Зміна атрибутів повідомлення (INF1) відхиляється; текст змінювати можна. Англійський текст виконуваного файлу (11 рядків: питання про прогресивну розгортку, Yes, No, назва карти, англійський напис збереження, рядки помилки диска) — один редагований файлmain_strings.dolstr, кожен рядок у своєму місці; текст, що не вміщається, відхиляється. Українською пишіть як звичайно: карта кодів плагіна (translation_map.json, копіюється в проєкт) ставить кожну українську літеру й апостроф ʼ на однобайтовий код, якого текст гри не вживає; символ без коду (російська літера, японський текст або латинська літера Latin-1, чий код зайняла українська) зупиняє збереження з назвою символу й номером повідомлення, і нічого не записується як?. Системний шрифт (хмарки, меню;nintendo.szs/font/standard_fontex.bfn) і шрифт субтитрів (subtitle.szs/font/demo_font.bfn) відкриваються у Font Editor; у клітинках для українських літер лишаються латинські літери Latin-1, доки ви не намалюєте кирилицю (див. DECISIONS D35). Довідкові мови: у Settings → Project → File Paths → Reference Translation / ROM Path оберіть європейський диск (GMSP01, ISO або RVZ) пунктом Select Game Disc Image (ISO, RVZ).... Picoripi у фоні копіює його файли повідомлень у папку проєктуreference_eu(приблизно хвилину) і показує English (EU), French, German, Spanish та Italian поруч із кожним повідомленням США, лише для читання. Можна обрати й готову папкуreference_eu. Файли без європейської копії (чотири японськіdolpic1.bmg,title.szs/marisun_stage.bmg, текст виконуваного файлу) не мають довідки. Ще не зроблено: два підтвердження прогресивної розгортки з кодами екранування. -zelda_tingle— Zelda: The Wind Waker, Tingle Tuner (текст, який показує під’єднаний Game Boy Advance). Source: тека дискаfiles\res\Gba(msg_LZ.bin— США;msg_LZ0–4європейського диска: англійська, німецька, французька, іспанська, італійська); Translation: та сама тека вtranslation. Один блок із 1086 повідомлень з читабельними кодами ({color:2},{wait:30},{icon:1},{choice2:0},{anim:13}…); GBA малює кожну літеру шириною 6 px і сам переносить рядок після 16 літер, 6 рядків на сторінку, тож межа ширини — 96 px. Збереження знову пакує файл (GBA LZ77) і відмовляє, якщо текст більший за місце, яке GBA для нього тримає (США: 67 584 байти в розпакованому вигляді, приблизно на 3 % більше за англійський); незмінений файл лишається байт у байт.client_u.binвідкривається другим блоком із двома рядками самої програми GBA («Calling...», екран «немає зв’язку»), які змінюються на місці. Font Editor відкриває шрифт GBA всерединіclient_u.bin(форматgba_tiles): українські літери мають власні коди (схожі на латинські — спільні з латиницею). Вікно Textures показує спрайти клієнта («Please wait...»), тайли екрана й текст екрана довідки (форматgba; правку, що вже не вміщається в місце програми після стиснення, не збережено). Перевірено в Dolphin з вбудованим GBA (WW_UA\3_run_tingle.bat) -skies_of_arcadia— Skies of Arcadia Legends (GameCube, США GEAE8P). Source: розпаковані скриптиfield\*.sct(декодовані); кожен текстовий сегмент скрипта — один рядок редактора. Бюджет: текст скрипта загалом не може зрости. Змінений рядок займає свою закодовану довжину, доповнену пробілами кроками по 4 байти. Скрипт понад бюджет позначає кожен змінений рядок як «Byte budget exceeded»; підказка проблеми показує використані байти, бюджет і перевищення. Скоротіть цей рядок або інший рядок того самого скрипта. Збереження зберігає введений текст. Збірка відхиляє такий скрипт і називає його рядки; для нього диск не записується. -skies_of_arcadia_dc— Skies of Arcadia (Dreamcast, США MK-51052, регіон U): той самий бюджет і правила збірки для скриптівFIELD\*.SCTдиска (little endian). Збірка записує перекладений набір GD-ROM (cue-файл і треки). -castlevania_dxc— Castlevania: The Dracula X Chronicles (PSP, англійська ULKS-46155). Source: текаsourceробочої теки, яку1_unpack.batзаповнює з образу UMD; Translation:translation. Текст: англійські діалоги ремейку (remake\text\std00.txt–std07.txt, одне повідомлення в рядку,\nна екрані — новий рядок у редакторі), англійські рядки збереження в програмі (remake\program\BOOT.BIN, кожен у своєму місці) і рядки Symphony of the Night в оверлеях PSP (sotn\PSPBIN\*.bin: меню, назви предметів, ворогів і заклять, описи, діалоги етапів, фінали; знайдені за шаблоном, кожен рядок лишається на своєму місці й у своєму розмірі — задовгий текст обрізано з попередженням; теги{XX}— байти, які треба лишити). 41 файл, 1837 рядків, без змін — байт у байт. Font Editor: шрифт діалогів ремейку (remake\font\msgfont.gim, клітинки 16x16; 66 порожніх клітинок уже мають коди українських літер зtranslation_map.json) і шрифт 8x8 SotN (sotn\hdbin\f_game.bin.pic). Вікно Textures: ~200 картинок з текстом — логотип, меню, титри, назви етапів, імена мовців і субтитри заставки ремейку (gim), титульний екран, HUD, кінець гри й вибір файлу SotN (raw, блоки VRAM PlayStation), англійські меню, повідомлення й субтитри сценок Rondo of Blood для PC Engine і картинки Peke (tim2).2_build.batкладе кожну змінену частину в усі паки, де були ті самі байти (шрифт є у 8 паках подій), записує програму як незашифрований ELFEBOOT.BIN, коли її змінено або діалоги мають українські літери, копіює змінені рядки SotN у їхні дублікати й записує копію образу (build\Castlevania The Dracula X Chronicles (UA).iso);3_run.batзапускає PPSSPP. -lunar_ssh— Lunar: Silver Star Harmony (PSP, USA ULUS-10482). Source: текаsourceробочої теки, яку1_unpack.batзаповнює з образу UMD:ScriptPack\TEXT*.dat(62 сценарії подій, розпаковані зScriptPack.dat: 11 837 повідомлень і 164 рядки виборів),TEXT_US\*.TXT(8 таблиць UTF-16: уміння, назви й описи предметів, місця, монстри, меню, титри; рядок — це частина до;, коментар лишається) іStationedPack\*(картинки інтерфейсу); Translation:translation. Теги читабельні:{speaker:41},{wait},{page},{pause:30}; перенесення — новий рядок. Рядок сценарію може рости: мітки сценарію перераховуються під час збереження, а незмінений файл лишається байт у байт. Гра малює текст вбудованим шрифтом PSP; збирання дає їй шрифт на диску:source\MODULE\font.pgf(формат Font Editorpgf: відкритий Liberation Sans Bold з PPSSPP, латиниця й кирилиця) і розшифровану програму (source\SYSDIR\EBOOT.ELF, її знімає PPSSPP під час1_unpack.bat) з латкою, що відкриває цей шрифт. Українські літери зберігаються кодами cp1251 (діапазон U+0400–04FF у сценарії зайнятий керівними кодами;translation_map.json), а шрифт на диску малює на цих кодах кириличні гліфи; редактор показує літери. Вікно Textures відкриває картинки титульного екрана, меню й вікна повідомлень (gim: GIM у паках FCHN, 8-бітний індекс і RGBA8888).2_build.batзнову пакує змінені файли в їхні паки й записує копію образу з ними (build\Lunar - Silver Star Harmony (UA).iso);3_run.batзапускає PPSSPP. -donkey_kong_tropical_freeze— Donkey Kong Country: Tropical Freeze (Switch, оновлення v131072). Source:sourceробочої теки (text\<пакет>__<таблиця>.msbt: англійські таблиці USEN трьох пакетів з текстом, 6 таблиць). Translation:translation, починається з українських таблиць USEN мода UKR.2_build.batкладе змінені таблиці в копії трьох пакетів (великий порядок байтів, Retro RFRM PACK). Шрифти (бібліотека Scaleform GFX) і текстури ще не відкриваються. -metroid_prime4— Metroid Prime 4: Beyond (Switch, оновлення 1.1.0). Source:sourceробочої теки, який1_unpack.batробить із пакетів Retro гри (text\*.msbt: англійські повідомлення USEN кожної таблиці MSBT, 98 таблиць, 5792 повідомлення;font\FONT_*.rfont;texture\<пакет>\*.txtr, розпаковані); Translation:translation. Кожна таблиця — блок; теги:{icon:123},{color:255:197:41:255},{size:150},{pageBreak},{column}; заповнювачі{0}— звичайний текст. Font Editor відкриває три шрифти (retro_font: атласи поля відстаней, одна мовна множина на сторінку; гліфи правляться на місці, нові не додаються). Вікно «Текстури» відкриває текстури інтерфейсу (txtr: R8, RGBA8, BC1–BC5, BC7 записуються на місці; ASTC читається, а змінена ASTC-текстура зберігається як RGBA8).2_build.batкладе змінений текст у USEN і EUEN кожного пакета з цією таблицею (у грі перемагаєPatch\Z_198_NXPatch.pak.patchоновлення), а змінені шрифти й текстури з їхніми метаданими — у мод LayeredFS. Робоча тека починається з українського перекладу BakAI (текст і шрифти з українськими літерами). -spore_hero— Spore Hero (Wii, Європа). Source:sourceробочої теки (1_unpack.batодин раз робить звичайний ISO з RVZ і кладе туди за шляхами диска англійський текстgame\localization\localization\ENG_US.rpk(пакет EA, розпакований),sys\main.dol, три шрифти гриGame.rpk\*.gfn, повідомлення меню HOMEGame.rpk\home*.csvі кожну текстуру інтерфейсу з пакетів як<пакет>.rpk\<назва>.gsh/.lsi); Translation:translation. Проєкт показує 2285 англійських рядків (меню, завдання, діалоги, назви істот і частин, заголовки титрів, повідомлення про збереження й диск) у тому порядку, в якому їх писали, по сто в блоці;&— новий рядок,<c>…</c>— колір,[PLAYER_NAME]— ім'я істоти, коди на зразок\[A]— значки. Символ, для якого в тексті немає байта, отримує вільний байт, а таблиця символів гри оновлюється під час збереження, тож українські літери можна вводити; гліфи мають бути в шрифтах. Літера, намальована на місці невживаного гліфа через карту перекладу Font Editor, зберігається як символ цього гліфа. Уmain.dol— ранні повідомлення про диск і пам'ять Wii (кожне в межах своїх байтів). Font Editor відкриває три шрифти (fntg) і шрифт меню HOME; вікно «Текстури» показує 2126 текстур інтерфейсу (shpg, з логотипом кожної мови).2_build.batпакує зміни назад у пакети (ту саму текстуру — в кожну зону), знову стискає їх і записує в образ диска. -rabbids_party— Raving Rabbids: Party Collection (Wii, Європа): меню й три гри на одному диску. Source: текаsourceробочої теки (1_unpack.batодин раз робить звичайний ISO з RVZ і читає файли просто з нього:files\*.dolменю, картинкиfiles\*.tpl, меню HOME і банер; англійський текст Rabbids 1 і 2rrr1.bf\text_english.jtxt/rrr2.bf\..., шрифтиfonts\*.jfntі текстури менюtextures\<світ>\*.jtex;rrr3_bin_wii.bf\TextPackages.binTV Party, ролики Flash зі шрифтамиflash\*.gfxі текстури інтерфейсуtextures\*.jtx); Translation:translation. Проєкт показує Rabbids 1 і 2 як блок на кожен список тексту (коди зі зворотною скісною:\cFF7FFF\колір,\p16\aкнопка), англійську колонку TV Party по сто рядків у блоці (<font color=…>) і назви, підказку та повідомлення про диск кожного виконуваного файлу (кожне в межах своїх байтів). Текст Rabbids 1/2 однобайтовий: літеру, якої немає у шрифтах, малюють поверх невживаного гліфа й прив'язують у карті перекладу Font Editor (текст TV Party теж іде через карту). Font Editor відкриває шрифти Jade (jade), архівні шрифти Wii меню (brfna), векторні шрифти Flash TV Party (swf_font), шрифт дискових помилок Rabbids 2 і шрифт меню HOME; вікно «Текстури» показує картинки меню (tpl), текстури світів меню Jade (jade) і інтерфейсу TV Party (jade_jtx).2_build.batпакує зміни назад (наново стискає лише змінені блоки LZO, більший файл — у кінець bigfile) і записує в образ диска. Кілька підписів, вшитих у ролики Flash TV Party (flash\*.gfx: «NEXT», «OK», «WARNING!» екранів мініігор), — теж блоки; збережений підпис кодується шрифтом самого ролика, тож бере лише літери, які той шрифт має. Картинок у роликах немає (меню й логотипи — векторна графіка). -metroid_other_m— Metroid: Other M (Wii, USA). Source:sourceробочої теки (1_unpack.batкладе туди за шляхами дискаmessage\message_all.dat, шрифтиfont\*.brfnt, повідомлення меню HOME Wiihbm\HomeButton2\home*.csvі кожен 2D-макет як теку<номер>\<макет>\timg\*.tpl); Translation:translation.message_all.datмістить усі повідомлення гри вісьмома мовами; проєкт показує англійську (США) групами (меню, підсумки розділів, системні повідомлення, назви зон, підказки, файли предметів і персонажів, 1393 субтитри голосу й заставок) і зберігає решту сім без змін. Керівні коди мають вигляд{FONT_SYSTEM},{COLOR_GREEN},{ICON_A},{IMG_ADAM}; розрив рядка у файлі —^. Font Editor відкриває чотири шрифти гри й шрифт меню HOME; вікно «Текстури» показує кожен макет (макет зі словами має вісім копій, по одній на мову; англійська — друга).2_build.batпакує зміни назад в образ диска. -ikenie_no_yoru— Ikenie no Yoru (Wii, Японія) з англійським фан-перекладом «Night of the Sacrifice».1_unpack.batвписує англійський патч (файли Riivolution) у японський диск і кладе вsourceробочої теки кожну таблицю повідомленьpackage\<пакет>\<номер>.mes(88 таблиць, 1944 повідомлення), макети з написами (*.brlyt), рядкиsys\main.dol(назва збереження, помилки диска й пам'яті, імена за замовчуванням; кожен вміщається у свій слот) і меню HOMEhbm\HomeButton*\*.csv(гра показує японський стовпчик); Translation:translation. Керівні коди:{NAME:1}(ім'я дівчини 1..5),{PAGE},{COLOR:FF0000FF},{SIZE:3F800000},{U0008}. Рядки, які англійський патч лишив японськими, — у категорії «Japanese source». Таблиця, спільна для кількох пакетів, лежить уsourceодин раз (опис блоку називає інші пакети);2_build.batпише її в кожен. Font Editor відкриває чотири шрифти BRFNT і шрифт меню HOME; вікно «Текстури» показує кожен TPL (логотип, макети, банери). Збирання також виправляєmain.dol: гра запускається й сама створює збереження без файлу збереження з патча. -pokemon_gen1— Pokémon Red / Blue і Pokémon Yellow (Game Boy, USA) через декомпіляції pret pokered і pokeyellow. Source:sourceробочої теки (1_unpack.batкопіює зport\pokered/port\pokeyellow): кожен asm-файл з текстом гри (289 / 295 файлів: діалоги вtext\, текст боїв і системи вdata\text\, Pokédex, назви покемонів, прийомів, предметів, місць, класів тренерів, меню вengine\), коженgfx\*.pngіconstants\charmap.asmз доданими українськими літерами (21 велика й 14 малих у вільних клітинках шрифту $C0–$DF і $E9–$EB, схожі на латинські — на латинських плитках; ґ є ж й ї ф ц ч ш щ ю беруть англійські клітинки 'd 'l 's 't 'v 'r 'm, é, ¥, × іза рішенням від 2026-10-09, тож англійський текст на цих клітинках спершу треба перекласти). Один рядок редактора — один текст: розрив рядка — line/cont(у спискуnext), порожній рядок —para(Pokédex:page), текстові команди видно як{text_ram wStringBuffer}, їх можна переставляти; інший макрос, ніж очікуваний, видно як{cont}. Незмінені тексти зберігаються байт у байт. Шрифти:gfx\font\font.pngіfont_extra.png(форматtexture_gridповерх нового формату текстурpng); 20 записів картинок (логотип, назви версій, копірайт, рамки SGB, слот-машина, диплом, Surfing Pikachu) відкриваються в Tools → Textures якpng. Мовці (спрайт персонажа мапи), мапи й рядки скриптів беруться з декомпіляції (picoripi\context.json); назви наповнюють глосарій. Якщо декомпіляція не дає мовця чи локацію, їх заповнює локальний текст GameFAQs у папціscriptпроєкту (plugins/common/gamefaqs_script.py; текст ніколи не потрапляє в git).2_build.batкладеsourceіtranslationповерх копії декомпіляції вbuild\workі виконує кроки Makefile з rgbds 1.0 (Python-порти інструментів pretgfx,pkmncompressіpcm); без змін дає оригінальні ROM байт у байт; текст, що переріс свій банк, іде в плаваючі секції; літера без клітинки шрифту зупиняє збірку з назвою файлу й рядком. Перевірено в mGBA: змінений рядок головного меню, зафарбована клітинка шрифту й інвертований логотип. Режим ROM (Red, Blue, Yellow; дампи UE.gb, розпізнаються за SHA-1): роль Game ROM приймає файл.gb. Розпакування записує кожне тіло тексту (діалоги, таблички, записи Покедексу) уtext/*.asmз макросами декомпіляції та зберігає копію ROM якrom/base.gb; інші утиліти не потрібні. Patched ROM записує.gbзі зміненими тілами: довше тіло переноситься у вільне місце, а його посиланняtext_farпереписуються; тіло, на яке вказує таблиця вказівників (категорії Покедексу, титри, назви значків), переноситься в межах свого банку, а записи таблиці переписуються після перевірки за байтами ROM. Кожен рядок тексту ROM є одиницею (перелік: 3 241 з 3 245 рядків Red, 3 244 з 3 245 у Blue, 3 414 з 3 417 у Yellow; решта — байти координат таблиці карти і дані зображень). Текст, який декомпіляція будує макросами (списки імен, імена за замовчуванням), береться з байтів ROM і зберігає свій розмір. Поле, яке ROM тримає на місці (ім'я, елемент списку, рядок без вказівника), має бюджет байтів уrom\meta.json: редактор позначає Byte budget exceeded, коли текст довший, а збирання його відхиляє. Кілька одиниць в одному блоці ділять його місце: кожна має свій бюджет — текст блоку без довжин інших одиниць. Контрольні суми заголовка і всього ROM виправляються. Попередній перегляд: вікно повідомлення малює вибраний текст шрифтом гри, який береться з ROM. Плитки шрифту й рамку знайдено за байтами,tools/pokemon_gb_font_facts.pyзаписує їхні адреси у facts. Два рядки:contпрокручує вікно,paraочищає його, а рядок, що не вміщується, показує попередження під вікном. -zelda_lttp— Zelda: A Link to the Past (SNES) через PC-порт snesrev/zelda3. Source:sourceробочої теки (1_unpack.batзапускає власнийrestool.pyпорту на USA ROM):dialogue.txt(397 повідомлень, коди порту[Name],[Waitkey],[Color 02]; перед[2],[3]і[Scroll]видно розрив рядка, а розрив без коду отримує код свого рядка),font.png(український шрифт діалогів, форматzelda3у Font Editor: англійські гліфи плюс порожні клітинки 95–119 для б–я і 128–148 для Б–Я, ще 114 вільні; схожі на латинські літери беруть латинські гліфи) іgfx\*.bin(8 аркушів графіки з текстом — підписи меню, назви предметів, GAME OVER, логотип — у Tools → Textures якsnes:2bpp/snes:3bpp); Translation: ті самі файли вtranslation. Мовці, розмови й рядки коду беруться з C-коду порту (context.json).2_build.batзбирає переклад як мову портуukуbuild\zelda3\zelda3_assets.datвласним компілятором порту (англійська лишається як є; уzelda3.ini—Language = uk) іzelda3.exeчерез Visual Studio Build Tools і SDL2 (одна зміна на 2 рядки в копіїmessaging.c: гліфи 128–255 через код 0x86). Перевірено в грі: змінений рядок вступу, клітинки шрифту й логотип. -donkey_kong_country— Donkey Kong Country (DKC1), Diddy's Kong Quest (DKC2) і Dixie Kong's Double Trouble! (DKC3), SNES USA v1.0 через їхні PC-порти для Switch. Source:sourceробочої теки (1_unpack.batчитаєISO\rom.sfcі перевіряє його SHA-256):text.json— рядки з ROM, згруповані; кожна група перекладається однаково. Група з другою копією тексту називається "other copy" (наприклад, "Other copy, French"). Кожен рядок зберігає довжину свого слота в ROM, тож довший рядок відхиляється під час збирання. DKC1 має ще два сирі графічні аркуші 4 bpp. Translation:translation.2_build.batзаписує текст уbuild\dkc1|dkc2|dkc3\rom.sfcі виводить його SHA-256. PC-порти читають ROM під час роботи; DKC1 приймає SHA-256 черезDKC1_ALLOW_ROM_SHA256; DKC2 і DKC3 потребують збірки з цим хешем. -donkey_kong_gba— Donkey Kong Country 3 (GBA, Європа). Source:sourceробочої теки (1_unpack.batчитаєISO\*.gba):text.json— 238 рядків, на які вказує таблиця назв у ROM (назви бджіл, рівнів, світів і карт, написи сторінок). Діалоги, шрифти й текстури ще не відкриті. Translation:translation.2_build.batзаписуєbuild\Donkey Kong Country 3 (UA).gba; змінений рядок переноситься у вільне місце за адресою 0xFE4000, а його вказівники змінюються. Текст — простий ASCII: українська літера записується байтами UTF-8, доки в грі немає клітинки шрифту для неї. -super_metroid— Super Metroid (SNES) через PC-порт sm_rewrite. Source:sourceробочої теки (1_unpack.batчитає USA ROM):text.json— увесь текст, який гра малює з тайлмап, у шести блоках (вікна повідомлень, вибір файлу й кінець гри, налаштування, назви зон на карті паузи, вступ, титри; 180 рядків). У грі лише великі літери, одна клітинка 8 пікселів на літеру: рядок має ширинуwidth; тайли, які не є літерами, — теги ([press1],[#304B]), вони лишаються на місці. Українські літери, схожі на латинські (А, В, Е, І …), беруть латинський тайл; інші українські літери мають клітинки лише в шрифті вікон повідомлень і, на першому екрані вступу, у 21 парі клітинок, де раніше були японські субтитри (прибрано 2026-10-12: ці тайли порожні вsource\gfx; літери малює людина). Сторінки історії вступу мають 21 клітинку власні, уsource\gfx\story_window.bin(тайли 0x30-0x44 вікна історії; вікно береться з порожнього блоку ROM). Перемикач японського тексту вимкнено в порту й у ROM: рядок JAPANESE TEXT на екрані налаштувань порожній у ROM (його немає вtext.json), так само японська картинка поруч із ним, а розкладки controller_jp і special_jp теж немає вtext.json. Шрифти (редактор шрифтів,texture_gridнад сирими аркушами тайлів; десять записів: зелені літери сторінок вступу і великі літери першого екрана лежать уintro_font.bin, українські великі літери сторінок історії лежать уstory_window.bin, цифри HUD — окремий запис) і 13 аркушів із текстом (Текстури,snes:2bpp/4bpp) лежать уsource\gfx.2_build.batзаписує перекладений ROM (build\sm\sm.smc) і збираєsm.exe. Контекст: рядок і функція коду порту для кожного елемента; вступ — розповідь Самус. -castlevania_cotm— Castlevania: Circle of the Moon (GBA, USA). Source:sourceробочої теки (1_unpack.batчитає ROM, доповнений до 8-МіБ образу No-Intro):text.json— єдина таблиця тексту гри в 13 блоках (імена, вороги, предмети, локації, здібності, пролог, сюжет, повідомлення про здібності, ефекти й описи карт DSS, описи предметів, меню файлів і паузи; 527 рядків; керівні коди — теги{02}/{1D 44},[]— це літери гри),font\font.bin(шрифт тексту у Font Editor, форматtexture_gridнад тайлами GBA: англійські літери, намальовані для меню назви предметів і 66 порожніх клітинок А–я для українських літер) іgfx\*.bin(56 аркушів зі словами — логотип і копірайт заставки, Press Start, меню файлів і паузи, назви карт DSS, назви режимів, кінцівки, титри — у Tools → Textures як тайли GBA 4/8 bpp); Translation: ті самі файли вtranslation.2_build.batпишеbuild\Castlevania - Circle of the Moon (UA).gba: незмінений переклад дає оригінальний ROM байт у байт; довший текст, задіяна українська клітинка чи аркуш, що стиснувся більшим, ідуть у вільне місце після даних гри. Перевірено в mGBA: змінений рядок меню, намальована українська клітинка, змінений гліф і перефарбований аркуш меню. -castlevania_belmonts_curse— Castlevania: Belmont's Curse (Switch, версія 1.1.0 = v65536). Джерело: англійські таблиці рядків Unity Localization (45 таблиць, 2 751 рядок,source\message\<таблиця>.json), два шрифти TextMesh Pro зfonts-latin(source\font\fonts-latin\, Font Editortmp_sdf) і 29 bundle інтерфейсу та кімнат з текстом (source\ui\<bundle>.json, 7 628 рядків), читаються з RomFS оновлення поверх базової гри (sparse). Переклад: ті самі файли вtranslation;3_import_swuk.batімпортує таблиці українського мода SWUK за назвою таблиці та ID, а його шрифт — як переклад шрифтів.2_build.batзаписує мод LayeredFS (build\atmosphere\contents\0100BA4026E94000\romfs\...) з перебудованими bundle і новими розмірами в catalog. На консолі ще не перевірено; відкриті питання — у розділі OPEN_ITEMS плагіна. -pokemon_gsc— Pokémon Gold, Silver і Crystal (Game Boy Color, USA) через декомпіляції pret pokegold і pokecrystal. Source:sourceробочої теки (1_unpack.batкопіює всі asm-файли з текстом: діалоги на картах, таблички й тренери, Покедекс, дзвінки, текст боїв, предметів і радіо, назви покемонів, прийомів, предметів і місць, меню; у Crystal 797 файлів і 10 162 рядки, у Gold/Silver — 921 і 7 621, один проєкт на дві гри). Блок — один asm-файл; повідомлення видно як текст (новий рядок — наступний рядок вікна, порожній рядок — нове вікно або сторінка Покедексу; інші команди —[cont],[text_ram wStringBuffer3]; коди шрифту<PLAYER>,#лишаються). Збереження переписує лише змінені повідомлення, тож незмінений файл лишається байт у байт; мовці й розмови беруться зі скриптів карт. Шрифти (gfx/font/*.png, форматtexture_gridповерхpng) і картинки з написами (логотипи, меню; форматpng) відкриваються у Font Editor і Tools → Textures.2_build.batзбирає ROM через rgbds (без змін — оригінальний SHA-1), а для Crystal ще й PC-порт suiCune з тими самими рядками, шрифтом і картинками. Українські літери, схожі на латинські, друкуються латинськими гліфами; 24 малі літери мають порожні клітинки шрифту, які треба намалювати. Nintendo Switch: коли порт «Alek's Ultimate NX Edition» склоновано вport\alek-nx,2_build.batтакож складає теку для SD-карткиbuild\switch\switch\Zelda3(той самийzelda3_assets.dat, мова як пакет портуlanguages\uk.z3langі NRO порту, зібраний devkitPro у WSL з тією самою зміноюmessaging.c); слова меню самого порту — другий файл проєкту,nx_ui.txt(234 слова; шрифт меню порту має лише A-Z, 0-9 і трохи розділових знаків, тож слово з іншими літерами лишається англійським). Перевірено в Eden: змінений рядок вступу, заповнена клітинка великої літери й логотип. Режим ROM (Gold, Silver, Crystal; дампи USA.gbc, розпізнаються за SHA-1): розпакування записує тіла текстів уtext/*.asmі зберігаєrom/base.gb; make і rgbasm не потрібні. Перелік охоплює 6 645 з 6 651 рядків тексту Gold, 6 646 з 6 652 у Silver і 8 579 з 8 581 у Crystal 1.0 та 1.1 (решта — один байт коду або вказівника перед рядком). Таблиці вказівників і бюджети байтів працюють так само, як у Red, Blue і Yellow; редактор позначає Byte budget exceeded. 251 запис покедексу кожної гри — одна одиниця (ім'я, зріст і вага, текст): запис, що росте, переїжджає в межах свого банку, бо банк рушій визначає за номером виду. Імена тренерів у записах партій і рядки в структурах меню лишаються на місці, кожен із бюджетом байтів. Українські літери: великі літери й ґ беруть латинські клітинки D F G J L N Q R S U V W Y Z, Ä Ö Ü і d f g h k (рішення від 2026-10-09), тож англійський текст на цих клітинках спершу треба перекласти. Попередній перегляд: вікно повідомлення малює вибраний текст шрифтом гри, який береться з ROM. Плитки шрифту й рамку знайдено за байтами,tools/pokemon_gb_font_facts.pyзаписує їхні адреси у facts. Два рядки:contпрокручує вікно,paraочищає його, а рядок, що не вміщується, показує попередження під вікном. Ціль збірки Recomp package (Gen2Recomp) (Gold, Silver, Crystal) записує по папці на кожний дамп уGen2Recomped\<id>\: перекладений ROM,recomp.json,README_UA.txtіset_gen2_gate_UA.py. Скрипт додає SHA-1 цього ROM до перевірки у вашій копії Gen2Recomp (рядокsha1Altу блоці файлуGameVersion.lua; копію.bakвін зберігає). README пояснює, як запустити гру з LÖVE 11.5. Код порту не записується. Змінена збірка pret додатково міститьset_gen2_gate_UA.pyі.symзбірки: скрипт записує маніфест з новими адресами символів у вашу копію Gen2Recomp (імпортер читає адреси символів) і додає SHA-1 ROM до перевірки. -metroid_prime_remastered— Metroid Prime Remastered (Switch, базова гра). Ті самі формати й правила, що вmetroid_prime4. Source:sourceробочої теки (text\TEXT_*.msbt: 27 таблиць, 3132 повідомлення, з назвами як у Metroid Prime 1, наприкладTEXT_ScansChozoRuins;font\FONT_*.rfont: Geneva, Deface і Deface титульного екрана;texture\<пакет>\*.txtr: 771 текстура); Translation:translation. Додатковий тег{image:TXTR_RStickIdle:1}(картинка за назвою текстури).2_build.batпише USEN і EUEN і кожен пакет зі зміненим ресурсом у мод LayeredFS. -zelda_ladx— Zelda: Link's Awakening DX (Game Boy Color, англійський ROM v1.0). Source:1_unpack.batбере ROM з англійського ZIP; Translation: той самий файл уtranslation. Чотири блоки: 688 діалогів (один рядок редактора на 16 символів текстового вікна гри, іменаDialogNNN, символи на кшталт<flower>і<ask>, невідомі коди як{XX}) і 56 рядків титрів по 18 символів. Рядок довший за свою ширину відхиляється з номером; діалоги, що ділять одне місце в ROM, мають мати однаковий текст. Збереження виправляє контрольні суми заголовка; незмінений файл зберігається байт у байт. Font Editor відкриває 160-клітинковий шрифт діалогів за адресою файлу 0x3D000 (2 bpp, форматtexture_gridповерхraw); Tools → Textures показує два логотипи заставки (DX і оригінальний) і плитки меню файлів і меню збереження. Довідкові колонки поруч з англійським: українська GB v0.1 (розшифрована розв'язанням підстановки, з довірою для кожної літери) і SWUK (за словами); вони лише показуються і ніколи не записуються в переклад. Ще не зроблено: написи предметів як малюнки і українські літери в шрифті (читання українського шрифту — пропозиція для перекладача). -zelda_las— The Legend of Zelda: Link's Awakening (Switch, 2019, лише базова гра v1.0.0). Джерело: новий проєкт з пакета базової гри (.nszабо.nsp; майстер один раз питаєprod.keys). Джерело — розпакована папкаromfs, а блоками стають лише файли MSBT слотаregionUS/USen: LAS Recomp запускає гру американською англійською і не читає інших слотів. Інші слоти, зокремаregionEU/EUen, — довідкові колонки: оберіть папкуunpacked\romfsяк папку довідки, і кожне повідомлення покаже свій текст з кожного іншого слота, зіставлений за міткою. Переклад:translation, ті самі шляхи. Українська модифікація SWUK (для v1.1.0) додається командоюpython -m plugins.zelda_las.swuk <mod.zip> <romfs> <translation>(спершу закрийте проєкт): кожне повідомлення зіставляється за міткою зregionUS/USen, а звіт рахує для кожного файлу зіставлені, залишені англійськими та відкинуті мітки. Шрифт: гра малює текст шрифтом Standard консолі, якого немає у файлах гри, тому збірці потрібен шрифт TrueType (.ttfз контурамиglyf; шрифт CFF ламає рекомпіляцію) з літерами І і Ї ї Є є Ґ ґ, ʼ та символом □ (U+25A1: гра шукає його під час запуску і падає, якщо його немає). Покладіть його вfonts\папки проєкту або вкажіть файл чи папку в"lasrecomp_font"уproject_settings.json. Вільний варіант — DejaVu Sans (DejaVuSans.ttf); тримайте поруч йогоLICENSE. Noto Sans не має □ і не підходить. Збірка відхиляє шрифт без цих символів і називає кожен перевірений файл. Ціль збирання LAS Recomp (romfs.bin) записуєromfs.bin, перекладені файли вromfs\і шрифт якfonts\nintendo_udsg-r_std_003.ttf(з йогоOFL.txtабоLICENSE) у папці збірки; README там каже, куди їх копіювати. Перевірка версії читає build id зexefs\main; пакет оновлення відхиляється. Теги показуються як сирі{tag:G:T:hex}. Перевірено в LAS Recomp beta_4 зі шрифтом DejaVu Sans: український титульний екран, вибір файлу, вибір складності та введення імені з імпорту SWUK показуються зі значками кнопок L і R, без дампа шрифту NintendoExt (fonts\nintendo_ext_003.bfttfу папці рекомпіляції). -silent_hill2_switch— Silent Hill 2 (Switch, українська). Збірка має ціль sh23ds 3DS port: вона пише3ds/sh23ds/events/*.msg(перекладені файли повідомлень) і3ds/sh23ds/ui/font.binтаfont.t3x(український шрифт тексту, зроблений зEE/sh2e/font/font000.tgaперекладу). Скопіюйте цю папку3dsповерх результату упаковувача sh23ds. Потрібенsh2pc.exeу розкладці Director's Cut, і перевірку exe упаковувача треба обійти у вашій локальній копії: (1) зробіть приватну копію репозиторію sh23ds; (2) у файлі пакувальника tools/sh2conv/pack.py пропустіть порівнянняDC_MD5уcheck(); (3) запустіть скрипт make_pack.sh пакувальника з <папка гри> <вихід> --strip-extras зSH2EE=0, у папці гри мають бутиsh2pc.exeу розкладці Director's Cut іdata/; (4) скопіюйтеeventsіuiцієї цілі поверх3ds/sh23dsупаковувача; (5) скопіюйте3ds/sh23dsв корінь SD-карти. -zelda_totk— Zelda: Tears of the Kingdom (Switch, перевірено на 1.4.0). Source: здампованийromfsгри, де вMalsлише мова, яку замінюєте (USen.Product.140.sarc.zs), плюсPack; Translation:romfsмода, наприкладatmosphere/contents/0100F2C0115B6000/romfs. Кожен MSBT в архіві — блок (1511 файлів, 47 799 повідомлень); збереження записує архів назад, стиснутий власним zstd-словником гри; невідредагований проєкт не пише нічого. Потрібні Python 3.14+ іPack/ZsDic.pack.zsз того ж romfs (або його копія в~/.picoripi/plugins/zelda_totk). Теги:{color:2},{icon:AButton0},{pause:30},{textSpeed:0.5},{autoAdvance:90}; невідомий тег виглядає як{tag:group:type:hex}. Мовець береться з подій гри (event flows; близько 69% рядків подій; англійські імена — зі списку персонажів гри); контекст для AI називає файл, мітку, подію й мовця. Ширина рядка: шрифт діалогів (Rodin B, 45 px,fonts/RodinNTLG-B_45.json), вікно розмови 1000 px, субтитри катсцен (файлиDm*) 1290 px, 3 рядки на сторінку. Load Reference Patch з romfs (або його текоюMals) показує інші мови гри як референси, російську першою. Шрифти (Font/*.bfarc.zs) — масштабовані OpenType: у Font Editor змінена ширина стає шириною гліфа, а перемальована клітинка замінює контур гліфа її пікселями, обведеними квадратами (груба чернетка чи тестова позначка; справжні літери доводьте в редакторі шрифтів);python -m plugins.zelda_totk.font_glyphs <archive> <output>додає І і Ї ї Є є Ґ ґ у шрифти, де їх немає (з власних I i Ï ï шрифту, віддзеркалених Э э і Г г з вусиком).2_build.batробочої теки збільшує таблицю розмірів ресурсів для архіву тексту чи шрифтів, що виріс (python -m plugins.zelda_totk.restbl <game romfs> <mod romfs>робить те саме за правилом самої гри: розмір, округлений до 32 байтів, плюс 0x180 для тексту, 0x100 для шрифтів). -zelda_hwde— Zelda: Hyrule Warriors Definitive Edition -zelda_coh— Zelda: Cadence of Hyrule (Switch). Source: тека зlocalization.xmlгри (romfs гри з оновленням) іfonts_bin; Translation:romfsмода (atmosphere/contents/01000B900D8B0000/romfs, Title ID базової гри). Усі 1809 рядків, блок на діапазон id (меню, діалоги, підказки, предмети, вороги, місця, катсцени, титри, досягнення); показуються й зберігаються лише англійські рядки, незмінений файл лишається байт у байт. Теги — власні теги гри ([c:b],[/c],[i:button_a],[s:9]);[n]видно як перенесення рядка,[p](наступна сторінка) — як[p]і перенесення. Мовця визначає ключ рядка (zora4_1→ Zora). Font Editor відкриває шість шрифтів.bffnt; текстовий шрифтLoveBugне має кирилиці, тому відкривається із запасним аркушем для українських літер.credits.xml(титри: заголовки, компанії й імена, однакові для всіх мов) відкривається ще одним блоком «Credits roll». Tools → Textures показує п’ять картинок з текстом уtextures_bin/texture_pack.bin(логотип на титульному екрані й чотири назви вкладок меню паузи; BNTX RGBA8 в одному потоці zlib, записуються назад у пак) -zelda_ds— The Legend of Zelda: Phantom Hourglass і Spirit Tracks (DS, USA; робочі текиZelda\Phantom Hourglass\DSіZelda\Spirit Tracks\DS). Source: текаsourceробочої теки (1_unpack.batбере BMG-повідомлення з папки English чистого USA ROM, іstaff.bmgSpirit Tracks); Translation:translation(цілі BMG-файли;2_build.batперебудовує.nds). Шрифти: файлиFont/*.nftr(Phantom Hourglass: NFTR з 3 і 2 бітами на піксель; Spirit Tracks: NFTR, стиснений LZ10) відкриваються у Font Editor; перемальований гліф оновлює свою ширину і відступ, якщо ширину не ввели вручну. Зображення: файли NARC (LZ10) з тайлами NCGR і палітрами NCLR (меню, титульні і мапні зображення; зображення дочірньої програми Spirit Tracks). Вікно текстур ще не підключене. -zelda_fsae— Zelda: Four Swords Anniversary Edition (DSiWare, Європа). Source: текаsourceробочої теки (1_unpack.batбере її з чистого європейського дампу:eu.kmsg,font_ltn.nftr, посібникmanpages_narc_eu.blzі графіку); Translation:translation(цілі файли;2_build.batробочої теки перебудовує SRL для DSi і CIA). Посібник відкривається блоком на сторінку (Manual: page_01_00…; перенесення рядка — власне перенесення сторінки,[pic:N]— картинка,[color:N]— колір; посібник малюється шрифтом консолі). Усі 220 повідомлень, блок на діапазон id (пролог, Палати знань, предмети, Великі феї, Ваті й фінал, повідомлення в грі, системні, титри); показується й зберігається лише англійський (EU) слот, незмінений файл лишається байт у байт. Керівні коди гри — теги:[speaker:1],[wait:120],[next:90],[close],[choice],[center],[icon:N],[button:N],[num:N],[space:N],[color:N]; перенесення рядка — справжнє перенесення (гра сама не переносить). Мовця визначає[speaker:N](Зельда, Ваті) і повідомлення Великих фей; ширини — за шрифтом (225 px у діалогах, 168 px у повідомленнях у грі, 240 px у меню). Load Reference Patch з текоюnitrofsросійської збірки показує російський текст та інші мови гри. Font Editor відкриваєfont_ltn.nftrіз запасними клітинками: літера, введена в таку клітинку, стає новим символом. Вікно «Текстури» показує меню й кнопки (subtask_eu_en.cmp), таблички вибору етапу, літери GAME OVER, рядок авторських прав (zeldat_eu_en.bin) і логотип заставки (zeldat.bin) у кольорах гри; імпортований колір, якого немає в палітрі картинки, стає найближчим. Блокgame_over(main.arm9) містить слово GAME OVER, рядок на літеру (<символ> <перший тайл> <Ш>x<В>, тайли картинки літер GAME OVER) і x кожної літери; картинка літер показується також як 16 комірок 16x32 для вузьких літер -zelda_albw— Zelda: A Link Between Worlds (3DS, Європа). Source: текаsourceробочої теки; Translation:translation.1_unpack.batзаписує кожен архів Yaz0 SARC як теку його файлів (romfs\EU_English\FieldLight.szs\EU_English\Field.msbt) — за цим шляхом зберігається перекладений файл;2_build.batперепаковує архіви в мод LayeredFS. Усі 190 англійських файлів MSBT (4 956 повідомлень: діалоги, предмети, місця, персонажі, меню, HUD, титри), блок на файл. Файл, який кілька архівів мають з тими самими байтами (Field.msbtє у 7), показано один раз, а збірка записує його в кожен із них. Теги названо за власним проєктом повідомлень гриCTRJack.msbp:{PlayerName},{Color:Name}…{Color:Reset},{Wait:30},{ChoiceN:2},{IntNumberN:2:0:-1:None},{ItemName:hammer:Yes:No}; незмінений файл зберігається байт у байт. Тексти меню й HUD (Gm_*,Mn_*,Cm_*,Ed_*) беруть ширину й кількість рядків свого текстового поля з проєкту повідомлень; діалоги — до 344 px, 3 рядки на сторінку. Font Editor відкриваєMessageFont.bffntіHyliaFont.bffnt; вікно Textures показує 10 банерів мініігор і фіналу та логотип на титульному екрані -zelda_tfh— Zelda: Tri Force Heroes (3DS, Європа; плагін A Link Between Worlds з тегами цієї гри). Source:source; Translation:translation, файли архівів так само лежать у теках (romfs\Archive\EU\EUen\LanguageGame.szs\EU\Message\EUen\NpcKing.msbt). Усі 100 англійських файлів MSBT (3 382 повідомлення: діалоги, таблички, титри вLanguageGame.szs; меню, предмети, одяг, системні тексти вRegionBoot.szs), теги названо заAlice.msbpгри ({CostumeName:EightBit:No},{InsertMark:0},{Size:90}). Діалоги — до 344 px, 3 рядки на сторінку, текст{Size:90}міряється як 90 %; тексти макетів (Layout*), вступна історія, титри, екрани помилок і новин — без обмеження ширини. Font Editor відкриваєMessageFont.bffntіHyliaFont.bffnt; вікно Textures показує 63 картинки з текстом: таймери, наліпки чату й табло (CTPK), банери макетів (BFLIM), імена босів уTelop.ptclі логотип уPictureStory_EU.bch(текстури PICA за сталими зсувами, форматraw) -mii_3ds— Tomodachi Life і Miitopia (3DS, Європа; рушій плагіна A Link Between Worlds з тегами Tomodachi Life). Source:source; Translation:translation;1_unpack.batкладе кожен архів як теку з його файлами,2_build.batперепаковує архів навколо змінених. Tomodachi Life: 1 038 англійських MSBT в архівах LZ11 darcromfs\message\<Набір>\<Набір>_EU_English_LZ.bin(53 195 повідомлень;ArcBase— текст, який гра показує,ArcVoice— ті самі повідомлення так, як їх читає синтезатор мови), теги названо заGame.msbpгри ({Nickname:...},{Food:0:Name:Singular},{SingularPluralFood:...},{CS_Pause:500};Color— R:G:B:A); вікно Textures показує 2 467 малюнків меню BCLIM і логотип титулу. Miitopia: 388 MSBT уromfs\eu\svn_message\EU_English.sarc(14 979 повідомлень;LayoutMsg\— написи інтерфейсу; власні теги гри лишаються сирими{tag:G:T:hex}), Font Editor відкриває 4 шрифти BFFNT ізsvn_font\EU_English.sarc, вікно Textures — 1 212 малюнків макетів BFLIM і логотип титулу. Основний текст обидві гри малюють системним шрифтом консолі, тому обмеження ширини немає -bravely_default— Bravely Default (3DS, Європа, англійський набірCommon_en). Source: текаsourceробочої теки;1_unpack.batзаписує кожну паруindex.fs+crowd.fsяк теку її файлів:romfs\Common_en\<Table>\crowd.fs\<Name>.btb(401 таблиця BTBF, 56 865 рядків: діалоги подій.txb, розмови загону.spb, навчання.trb, меню.mtb, предмети, вміння, професії, монстри, щоденник D, крамниці, субтитри; один блок на таблицю, один рядок на запис її таблиці рядків), шрифт гриromfs\Graphics\UI_en\Font\Font\root\font\hikari.bcfntі 4 403 англійські картинки макетів (romfs\Graphics\UI_en\**\*.bclim: титульне меню, назви розділів, навчання). Розмітка лишається як є: імена[PCM1], значення$і%ls. Незмінена таблиця зберігається байт у байт; текст може бути довшим.2_build.batпакує змінені файли назад в архівиcrowd.fs/ darc у мод Lumaromfs. -bravely_defaultтакож відкриває Bravely Second: End Layer (3DS, USA; робоча текаBravely\Second\3DS): 1 284 англійські таблиці (Common_enі англійські файлиScript\Scene, 71 219 рядків), обидва шрифти (Graphics\UI\Font\FontіFontK) і 5 073 картинки вGraphics\UI.1_unpack.batбере розшифрований образ.3ds; члени, стиснені deflate, розпаковуються й пакуються знову. Шрифти Bravely Default для ПК (дані Unity Font, експортованіzt\bdffhd_pc.py, формат Font Editorttf) і її англійські картинки (PNG) є в тих самих списках. -kid_icarus— Kid Icarus: Uprising (3DS, Європа, англійський набірeu). Source: текаsourceробочої теки;1_unpack.batзаписує архіви darc з LZ11 (.arc,.zrc, вкладені) як теки: 148 англійських файлів MSBT (25 833 повідомлення; до файлу додається.msbt):eu\0.arc\resident\03.bin.msbt(меню, підказки, зброя, сили, фігурки),eu\stage\<stage>.zrc\stage\bin.arc\bin\msg_00.bin.msbt(діалоги рівнів;msg_05— англійський набір наземних частин; чотири інші мови не показуються). Теги:{Size:N},{Color:R:G:B:A}. Font Editor відкриває два растрові шрифти (eu\00.arc\resident\04.bin,fnt.binрівня a2800); діалоги малює системний шрифт консолі. Вікно Textures показує 985 файлів CGFX (6 367 текстур, логотипmenu\000.zrc\...\bind\00.bcres), які німецька тека замінює, тобто вони мають текст.2_build.batперепаковує й знову стискає архіви в мод Lumaromfs. -final_fantasy_explorers— Final Fantasy Explorers (3DS, Європа, англійська). Source: текаsourceробочої теки;1_unpack.batрозшифровує гру й записує її файли розпакованими (гра пакує кожен файл BLZ і називає його хешем; назви знаходять у рядках програми): дві таблиці текстуromfs\message\message_en.textres(6 891 повідомлення) іmessage_home_en.textres(5 285 повідомлень), шрифти CFNTromfs\font\font.bcfntіfont_localize.bcfntта малюнки: 347 архівів макетівromfs\ui\*.darc(BCLIM), 545romfs\gfx\*.cgfx, значки CTPK уromfs\gfxіmessage\messageIcon.tpl(4 812 малюнків; 13 піксельних форматів). Керівні символи в повідомленні показуються як{c01},{c05}тощо.2_build.batпакує змінені файли знову через BLZ і записує їх під хеш-назвами як мод Lumaromfs. Усі файли тексту, шрифти й малюнки пишуться назад байт у байт. -metal_gear_solid_3d— Metal Gear Solid: Snake Eater 3D (3DS, Європа, англійська). Source: текаsourceробочої теки.1_unpack.batзаписуєtext\vox.mgssubs,movie.mgssubs,demo.mgssubs(JSON: англійські рядки субтитрів трьох потокових файлівvox.dat,movie.dat,demo.datяк байти hex із таймінгом; 6 878 рядків: виклики по рації, голоси в грі, відео, кат-сцени; один блок на файл) іtext\gcx.mgsgcx(JSON: 9 684 англійські рядки скриптівstage\*\scenerio.gcxіcodec.dat-- довідка про предмети й зброю, тексти кодек-дзвінків, профілі, повідомлення меню; кожен рядок раз, один блок на скрипт). Рядки скрипта лежать у зашифрованій таблиці ресурсів (потік ключа LCG від штампа таблиці) усіма п'ятьма мовами; англійські знаходяться за словами й пишуться назад, а місце дають рядки інших мов, тож жоден файл не змінює розмір. Також розкриває 232 архіви макетів.la2(darc) як теки: 43 шрифтиfont/*.bcfntі 1 064 малюнкиtimg/*.bclim(romfs\ui\<ім'я>.la2\...; мовні варіанти_f _g _i _j _sне беруться) і 15 макетів усередині архівів рівнів.hpk(146 малюнків: титри, епілог, картки; записи zlib). Текст — ASCII з escape1F xxдля літер з діакритикою (Latin-1 мінус 0x7F); субтитри переносять рядок80 7C, скрипти --0A; інші байти показуються як{xNN};translation_map.jsonпроєкту зіставляє літеру з гліфом, який її малює.2_build.batповертає змінені рядки (слот субтитрів не можна пересунути: коли англійський текст не влазить, у записі французький-іспанський текст прибирається), перепаковує змінені.la2і.hpkі записує цілий змінений файл гри в мод Lumaromfs(LayeredFS замінює файли, а не їхні частини). Рядки в байт-коді скриптів і текстури моделей у.hpkне відкриваються. -kingdom_hearts_ddd— Kingdom Hearts 3D: Dream Drop Distance (3DS, Європа, англійська). Source: текаsourceробочої теки;1_unpack.batвідкриває архіви гри.rbin(CRAR; англійські, французькі й німецькі файли мають одну назву, мову знаходять за crc32 шляху) і записує англійські файли повідомленьromfs\message\en\<тека>\bin\ct*.ctd(69 файлів, 8 374 повідомлення, UTF-16; кнопки й перемикачі кольору показуються як{UE026}), шість шрифтів CFNTromfs\font\*.bcfntта англійські малюнки: 126 файлів.ctt(CTRT) і 54 макети.l2dз малюнками всередині (romfs\menu\en, титульний екран і меню),romfs\font\iconfont.ctt.2_build.batзаписує змінені файли назад уmessage.rbin,menu.rbinіfont.rbin(знову стиснені, як в оригіналі) у мод Lumaromfs. Нові формати текстурctrtіl2d; усі 1 575 файлів.cttі 248.l2dгри читаються й пишуться назад байт у байт. -castlevania_mof— Castlevania: Lords of Shadow - Mirror of Fate (3DS, Європа, англійська). Source: текаsourceробочої теки;1_unpack.batкопіюєromfs\system\localization\english.txt(1 522 повідомленняKEY##текст/KEY#Мовець#текст: підказки, меню, діалоги кат-сцен з мовцем, титри; один блок, один рядок на повідомлення), сім файлівromfs\system\fonts\*.bfontі 40 малюнків CGFXromfs\gui\textures\*.bctex(логотип, англійські схеми керування, значки). У редакторі|— перенос рядка, а@[A]показується як{A}. Текст — один байт Windows-1252 на символ: літери, для яких у шрифті немає байта, записуються як?, якщо в проєкті немаєtranslation_map.json({"Є": "Æ"}: літера пишеться байтом того гліфа й показується назад літерою). Font Editor відкриває шрифти якmof_font(правка й переміщення рамок гліфів в атласі; місця під нові коди немає).2_build.batпише змінені файли в мод Lumaromfs, а нові розміри — у копіюsystem\files.toc. -paper_mario_ss— Paper Mario: Sticker Star (3DS, Європа, англійський набір). Source: текаsourceробочої теки;1_unpack.batкопіює 46 файлівmessages\EU_English\*.msbt(2 859 повідомлень; діалоги рівнівstgW_L, меню й предметиglobal, музей наліпок, титри) і розпаковує файли гри, стиснені BLZ, під їхніми іменами: два шрифти CFNTFont\pop_120px.bcfnz/pop_240px.bcfnz(Font Editor) і малюнки CGFXGraphics\ui\*.bcrez,Graphics\shared\ui.bctez,Effect\main\EUR_en.bctez(вікно Textures), а також 50 мовних малюнківLang\EUR_en.bin(логотип, Press START, бойові слова) іNWTexture\EUR_en.bin\lg_welcomeяк<архів>\<ім'я>.bcres. Теги:{Size:N},{Color:R:G:B:A},{PageBreak},{Icon:mic_a:...},{Choice:...},{Variable:item},{Number:0:%d},{Wait:N}.2_build.batзнову пакує змінені файли й перебудовує архів текстур з його_info.binу мод Lumaromfs. Усі 1 456 файлів CGFX гри читаються й пишуться назад байт у байт. -ace_attorney_trilogy— Phoenix Wright: Ace Attorney Trilogy (3DS і Switch). Source:source; Translation:translation. 3DS: 37 англійських скриптів ресурсного пакуpack.dat(script\sNN.bin, 37 757 повідомлень), два шрифти гри і 12 008 картинок BCH; Switch: 106 англійських скриптівGS1|GS2|GS3\scenario\*_u.mdt(122 343 повідомлення, власні коди символів). У повідомленні\n— новий рядок,{page}— чекати дотику,{wait:N}— пауза,{xNNN}— символ гри без літери; текст може бути довшим або коротшим за оригінал -code_of_princess— Code of Princess (3DS) і Code of Princess EX (Switch). Source:source; текст вшито у виконуваний файл (exefs\code.binUTF-16,exefs\mainNSO UTF-32); рядок пишеться на місце і не може бути довшим за оригінал ({x08}закінчує повідомлення); шрифтиFDі картинкиRTEX-corpse_party— Corpse Party (3DS; Switch 2021). Source:source; 20 файлів*_scriptlist.MSG(слоти повідомлень по 128 байтів, 8 717 повідомлень; текст не може вийти за слоти) і списки в лапкахitemdatalist,deaddatalist,endinglist,playersettinglist; на Switch ті самі файли — TextAsset уresources.assets(text\) -ever_oasis— Ever Oasis (3DS, Європа, англійська). Source: текаsourceробочої теки;1_unpack.batзаписуєromfs\data\Region_EU\English\main.gmsg(GMSG v3: 8 515 повідомлень; імена, меню, предмети, діалоги; теги{wait},{clear},{style:..},{cNN:..}, множина{c14:..|a|b|c}), шрифтmain.gzf(GZFX, 470 знаків) і 666 малюнків CTXB з архівів GAR v5 (титули, меню, назви підземель). Повідомлення може бути довшим;2_build.batзнову збирає архіви GAR у мод Lumaromfs. -code_name_steam— Code Name: S.T.E.A.M. (3DS, Європа, англійська). Source: текаsourceробочої теки;1_unpack.batзаписує 76 файлів повідомленьmess\EU_English(4 406 рядків; формат повідомлень Fire Emblem Awakening, LZ13), 9 шрифтів (.bfnt,cbf_std.bcfnt) і 536 файлів BCH (938 малюнків) архіву RASIarc\EU_English.arcта нейтральних тек.2_build.batпакує змінені файли назад у мод Luma. -stella_glow— Stella Glow (3DS, Європа). Source: текаsourceробочої теки;1_unpack.batрозпаковує файли.cmp(IECP): 18 таблицьparam\*.str(4 330 рядків, довільної довжини), 1 554 сценаріїevent\*.flw(24 800 рядків діалогів; рядок поки не може бути довшим за оригінал), 7 шрифтів.bffntі 3 202 малюнки BFLIM з архівів SARC (indicator,picture,adventure,chara).2_build.batстискає змінені архіви назад у мод Luma. -fantasy_life— Fantasy Life (3DS, Європа). Source: текаsourceробочої теки;1_unpack.batзаписує файли з LZ11 архівуromfs\_file_archive.binза номером в архіві (05774.l5txt): 2 527 англійських текстових файлів (обидва англійські набори; 238 614 рядків: таблиці предметів, завдань і діалогів та таблиці з вказівниками для меню; теги{c:XXXX.XXXX}), 12 шрифтів (.fnt, формат Font Editorl5_fnt) і 36 малюнків.ztex; 354 контейнери інтерфейсу.l5uiтакож розпаковані, але не відкриваються як текстури, поки їх не перевірено в грі. Текст, довший за своє місце, обрізається до цього місця, а збірка пише попередження в журнал; перенесення такого тексту в кінець файлу вимкнено, бо воно зависало гру.2_build.batпакує змінені файли назад у_file_archive.binу мод Lumaromfs. -digimon_redigitize— Digimon World: Re:Digitize Decode (3DS, японський випуск з англійським фан-перекладом). Source: текаsourceробочої теки;1_unpack.batзаписує файлиromfs\ARCV0.BIN(zlib) з текстом за шляхом в архіві з.btxt: 177 контейнерівKCAPз 8 861 таблицеюBTX(73 374 рядки; один блок на таблицю; зміщення таблиць застарілі, гра читає рядки підряд) і 1 930 текстурGMIOз.gmio(RGBA8, RGB8, RGB565, L8). Рядок може змінювати довжину (контейнери перебудовуються), крім двох файлів з даними за контейнером.2_build.batпакує змінені файли назад уARCV0.BIN(файл, що не вміщується в своє місце, йде в кінець). -zelda_oot3d— Zelda: Ocarina of Time 3D (3DS, Європа). Source: текаsourceробочої теки (1_unpack.batкопіює тудиromfs\message\eu\eu.qm, шрифти, клавіатури введення іменіromfs\menu\ltn16_*.list, текстури з текстом іexefs\code.bin); Translation:translation(цілі файли за їхніми шляхами в romfs;2_build.batробить LayeredFS-мод). Усі 2510 повідомленьeu.qm(діалоги, предмети, таблички, Наві, меню, вибір файлу, титри, видіння каменів Шейка, назви місцевостей), блок на діапазон id; показується й зберігається лише англійський слот, незмінений файл лишається байт у байт. Керівні коди — теги з тими самими назвами, що в плагіні N64:{color:red},{box-break}(після нього перенесення рядка),{item-icon:45},{button:A},{name},{two-choice},{center},{textid:0x0205},{mq}…{mq-else}…{mq-end}(текст звичайної гри й Master Quest),{plural:1}…{plural-else}…{plural-end}. Чотири сторінки клавіатури — по одному рядку (кількість клавіш не змінюйте); ім'я гравця за замовчуваннямLink(code.bin) — не більше 4 літер. Load Reference Patch зeu.qmросійської збірки (або її текою) показує російський текст і німецьку, французьку, іспанську та італійську мови гри. Font Editor відкриваєltn16.qbf(діалоги) іsys8.qbf; вікно «Текстури» показує 137 текстур із текстом: меню, титульний екран, Boss Challenge, логотип, заставки місцевостей і босів в архівах.zarсцен і акторів, табличку SOLD OUT і моделі титульного екрана (текстури всередині моделей.cmb) -zelda_aoc— Zelda: Hyrule Warriors Age of Calamity. Джерело — текаsourceробочої теки (text\*.bin,battle\*.bin: текст гри, вирізаний зdata/LinkData2.bin, один файл на таблицю з усіма її мовами); показується й зберігається англійська таблиця, а2_build.batробочої теки пакує змінені файли у LayeredFS-мод. Font Editor відкриває всі шрифти гри (font\latin.g1n, 11 розмірів; японський, корейський і обидва китайські); Tools → Textures показує 33 картинки з англійськими словами (texture\0x<id>.g1t: логотипи, Victory/Defeat/Complete, знімки підказок, назви мов).2_build.batпише змінені шрифти й картинки в мод теж. -story_of_seasons_3ds— Harvest Moon 3D: A New Beginning, Story of Seasons, Story of Seasons: Trio of Towns (один рушій: архіви XBB з таблицями записівPAPA) і Harvest Moon 3D: The Tale of Two Towns (старіший рушій DS), усі 3DS Європа. Source:sourceробочої теки (1_unpack.batрозшифровує .cia): один файл.papaна кожну таблицю тексту кожного архіву XBB (romfs\Msg.xbb\*.papa— діалоги, події, навчання, меню;romfs\GameData\*.xbb,Chara\AvatarData.xbb— назви предметів, культур, тварин, страв, місць, звань і одягу; A New Beginning: 390 файлів, 47 267 рядків; Story of Seasons: англійський набірMsgGB.xbb, 430 файлів, 42 862 рядки; Trio of Towns:en\Msg.xbbі вкладені таблиціen\DataText.xbb.gz\*.xbb, 844 файли, 43 899 рядків — файли інших мов не копіюються), або один файл.mesна кожен запис паків Tale of Two Townsromfs\mes_data.bin\іevent_mes_data.bin\(568 файлів, 30 716 рядків, англійський набір). Файл — один блок; які стовпці таблиці записів є текстом, читається з даних; розмітка на кшталт<MYNAME>лишається текстом, керівні символи видно як{0D}, коди Tale of Two Towns — як{1000}. Збереження перебудовує таблицю (незмінені поля зберігають свої байти), а2_build.batпакує таблиці назад в архіви й паки. Шрифти: шрифти BCFNT / BFFNT (marugothic.bcfntA New Beginning іmainfont.bffntTrio of Towns мають російську кирилицю, бракує Ґ Є І Ї ґ є і ї; шрифти Story of Seasons кирилиці не мають) і шрифт клітинок 8x16 Tale of Two Towns уfont_data.bin(форматcells; клітинки 159–224 призначено українським літерам, і кодек тексту пише їх). Малюнки: файли.bclim/.bflimрозмітки як теки їхніх архівів.arc(darc, або стиснені gzip SARC Trio of Towns; малюнки 3DS BCLIM і BFLIM читаються правильно без параметра;params.flipперевертає малюнок після обрізання, і жоден плагін його не задає), логотипи й іконки CTPK. Мовці — з назв таблиць (Talk_ALLEN). Перевірено в Azahar: змінений рядок, зафарбований гліф і обрамлений титульний малюнок в усіх чотирьох іграх. Story of Seasons і Trio of Towns зашифровані з seed:1_unpack.batчитає seed гри з_shared\3ds_keys\seeds. -xenoblade_de— Xenoblade Chronicles: Definitive Edition (Switch, 1.1.1). Знову рушій Xenoblade 2, з правиламиxenoblade_2. Source: текаsourceробочої теки (1_unpack.batперетворює .nsz і розшифровує гру й оновлення; гра тримає всі файли окремо в romfs, тожsource— це корінь romfs): 60 англійських таблиць legacy BDATbdat\gb\*_ms.bdat(58 336 клітинок тексту), сім шрифтів LAFTmenu\font\*.wifnt(у грі стиснуті zlib у блоціxbc1, уsource— звичайні,2_build.batпакує їх знову) і макети з малюнкамиmenu\image\*.wilay(текстури BC1 / BC3 / BC7 / RGBA8;menu\image\tutorial_gb— англійські підказки). Translation:translation; мод замінює окремі файли. -miitopia_nx— Miitopia (Switch, 1.0.0 + оновлення 1.1.0): рушій 3DS-гри з правилами текстуmii_3ds. Source: текаsourceробочої теки (1_unpack.batперетворює .nsz, розшифровує гру й оновлення ключамиprod.keysі відкриває архіви як теки):eu\svn_message\EU_English.sarc\**\*.msbtіus\svn_message\US_English.sarc\**\*.msbt(по 412 файлів; 33 164 рядки в обох слотах), чотири шрифти BFFNTFontInfo/FontCaptionобох слотів (форматbffnt) і зведені набори картинок BNTX 169 архівів макетівcmn\lyt\**\*.arc.szs\timg\__Combined.bntx(форматbntx). Translation:translation;2_build.batперебудовує кожен архів навколо змінених файлів у LayeredFS-мод. -one_piece_uwr— One Piece: Unlimited World Red (3DS, Європа). Source: текаsourceробочої теки (1_unpack.batрозшифровує .cia і відкриває архіви.jarcяк теки): таблиці GanbarionjMSGз англійським блоком —message_eu\msg_en.jmsg(9 320 рядків),system.jmsg,tutorial.jmsg, титри, 288 файлів субтитрів сцен і розмовevent\**\*_en_eu.jarc\_talkconv_msg.bin, тексти завдань і репліки персонажів (426 файлів, 12 250 рядків; інші мови багатомовного файлу лишаються без змін); команди кольору показано тегами{c:..}. Translation:translation;2_build.batдописує кожен змінений елемент у його архів (знову zlib, як в оригіналі) і пише мод для Luma / Azahar. Font Editor відкриває сім шрифтів.jfnt(форматjfnt, сітки гліфів A8), а Tools → Textures — 7 706 картинок.jtexзmenu_eu(форматjimg: ETC1A4 і ETC1). Switch-версія Deluxe Edition використовує той самий плагін:1_unpack.batвідкриває архіви CRICPKrom0.cpk..rom4.cpkяк теки (source\romfs\romN.cpk\...;rom4— текст і шрифти,rom0/rom1/rom2— текст у jARC,rom3— малюнки; малюнки — лінійний RGBA8). -luigis_mansion_2— Luigi's Mansion: Dark Moon (3DS, Європа). Source: текаsourceробочої теки (1_unpack.batрозшифровує .cia і відкриває пари.dict/.dataзart\feяк теки): таблиці тексту NLOCenglish.data\strings.nloc,ukenglish.data\strings.nlocіrussian.data\strings.nloc(по 1 935 рядків: діалоги, меню, підказки; розриви{p}, теги{tp:..},{clr:..}; слот перекладу за замовчуванням —russian, його вантажить консоль із російською мовою;english/ukenglish— запасні) і титриcredits.credits(291 рядок текстуcredits.txt). Translation:translation;2_build.batперебудовує кожну змінену пару (змінений елемент дописується в кінець, запис dict вказує на нього) у мод для Luma / Azahar. Font Editor відкриває п'ять шрифтів трьох пакетів (Alor 15 і Alor Narrow, DFGKyoGeki 18 російський і японський, NTLG-DB 9;nlg_font), а Tools → Textures — 16 пакетів текстур інтерфейсу (nlg_tex, ETC1 / ETC1A4). Luigi's Mansion 2 HD (Switch) використовує той самий плагін: таблиці NLOC версії 2 (2 109 рядків у слоті), чотири пакетиfebundle*_resякbundle.nlgh(картинки DXT1 / DXT5, п'ять шрифтів зі сторінками 1024 x 1024). -monster_hunter_stories_nx— Monster Hunter Stories (Switch). Source:1_unpack.batвідкриває англійський архів повідомленьnativeNXx64\archive\message_R\message_all_eng.arcяк теку з 685 таблиць.gmd(36 797 рядків; розмітка<COL ..>,<SPNM ..>,<PAGE>,<ICON ..>— це теги) і копіює англійські малюнки.texта шрифти.gfdзgui/lyt. Translation:translation;2_build.batдописує кожну змінену таблицю в архів і складає LayeredFS-мод. Редактор шрифтів відкриває два англійські растрові шрифти й три шрифти значків (mt_font), Tools → Textures — малюнки.texдля Switch (mt_tex: BC1, BC7, RGBA8). -rune_factory_4— Rune Factory 4 (3DS, США). Source: текаsourceробочої теки (1_unpack.batрозшифровує .cia): англійські таблиціTEXTгри за їхніми шляхами в romfs —script\rf3mc.eng(99 572 рядки діалогів і подій),text\*.engіtextAndData\text\*.eng(предмети, NPC, завдання, навички, меню, назви карт; 107 220 рядків у 25 файлах, UTF-8, без змін зберігається байт у байт); змінні@…@і знак виділення+показано як теги. Translation:translation;2_build.batпише змінені файли в мод для Luma / Azahar. Власного файлу шрифта гра не має (малює спільним шрифтом консолі, як Kid Icarus: Uprising); Tools → Textures показує 495 картинок CGFX.bctexменю, вікна діалогу, слотів збереження й титрів (кожна зберігається байт у байт). Rune Factory 4 Special (Switch, робоча текаRUNE_FACTORY_4_SPECIAL_SWITCH) відкривається тим самим плагіном: ті самі 25 англійських таблиць (116 980 рядків;rf4TxtShinkonHelp— нова) і 377 картинок BC7.bntxза тими самими шляхами. -yokai_watch— Yo-kai Watch (3DS, США). Source: текаsourceробочої теки (усі англійські таблиці тексту*_en.cfg.binза їхніми шляхами всередині архіву гриyw1_a.fa, шрифтиfnt\*.xf, англійські текстури меню); Translation:translation. Коди гри показано у фігурних дужках ({PAGE}— наступна сторінка дворядкового вікна,{PNAME01}— ім’я героя,{CG}…{/C}— колір); файли сюжету є двічі,_m(Нейт) і_f(Кеті). Японські залишки й паролі не показуються; незмінений файл лишається байт у байт. Мовців бере з таблиць мовців гри в теціmetaробочої теки. Font Editor відкриваєft_nrmіft_sml(форматxf, справжні українські літери); вікно текстур показує 594 англійські текстури (imgc).2_build.batробочої теки перезбираєyw1_a.faу LayeredFS-мод. Майстер нового проєкту також робить проєкт Yo-kai Watch 1 прямо з гри: образ 3DS (США) або для Switch — основну гру та її оновлення (.nspчи.nsz; майстер питає файл ключів Switch). Він записуєunpacked\sourceіunpacked\metaтак само, як1_unpack.bat; у проєкті Switch, зробленому так, — японський текст гри (англійський фанатський мод не додається). Yo-kai Watch 3 (EUR, робоча текаYOKAI_WATCH_3) відкривається тим самим плагіном: англійський текст — уdata/txt/ev/enі архівіyw_lg_en.fa; героя рядка визначає його голосовий кліп ({PV#pv_c001000_23}: Нейт). Вікно текстур показує всі 5 817 англійських текстур (логотип, меню, заставки, довідка, підписи, вивіски; завантаження триває кілька хвилин). Yo-kai Watch 2: Psychic Specters (європейський картридж, робоча текаYOKAI_WATCH_2) відкривається тим самим плагіном: британські англійські таблиці*_engb.cfg.bin(4 737 файлів, близько 104 600 рядків; текст подій уdata/txt/ev/engb, архівyw2_lg_engb.fa), Нейт чи Кеті — за файлом_m/_f; російський фанатський переклад, вбудований у цей образ (текаreferenceробочої теки), видно у вкладці довідки Russian (RU), ніколи як оригінал. Вікно текстур показує 2 683 англійські текстури (11 піксельних форматів IMGC). Yo-kai Watch 1 для Switch (японська гра, робоча текаYO_KAI_WATCH_SWITCH) відкривається тим самим плагіном: текст-оригінал — англійський фанатський мод, записаний у японські таблиці (*_ja.cfg.bin, 2 014 файлів, близько 48 000 рядків, а також 13 800 рядків, які мод лишив японськими, — їх перекладають з японської: кожен блок, де вони є, показує їх у категорії «Japanese source»; таблиця Shift-JIS з українським текстом зберігається як UTF-8); Font Editor відкриваєft_nrm,ft_lrg,ft_smlіdbg(XF для Switch: текстура A8); вікно текстур показує зображення меню, титульного екрана, заставок, довідки й підписів (IMGN — IMGC для Switch: RGBA8, RGBA4, LA8, A8, BC3). Межі ширини є в кожній грі Yo-kai. Їх виміряно на англійському тексті гри її власним основним шрифтом (scripts/build_yokai_layouts.py). Тому рядок, ширший за вікно Switch, позначається так само, як на 3DS, і тоді, коли це переклад з іншої платформи. Літера, якої немає в шрифті, рахується як середня літера цього шрифту. Yo-kai Watch 4++ і Yo-kai Academy Y для Switch (японські ігри, робочі текиYO_KAI_WATCH_4_SWITCH,YO_KAI_ACADEMY_Y_SWITCH) відкриваються тим самим плагіном: текст-оригінал — англійський фанатський мод кожної гри в японських таблицяхdata/common/text/ja(2 316 таблиць, близько 38 500 рядків; 1 672 таблиці, близько 19 600 рядків; рядки, які моди лишили японськими, близько 550 і 12 300, теж видно — у категорії «Japanese source» кожного блока); коди кольору[CR1]…[C]і картинки[$gaiji_…]— теги; Font Editor відкриває шрифти G4 (font_ja,font_def, у Academy Y щеfont_ja2і другий стиль; кожен зі своїм шрифтом фуріґани); вікно текстур показує зображення меню, титульного екрана, заставок, довідки, підписів і кнопок (G4TX: RGBA8, BC1, BC3, BC7). -layton_3ds— Professor Layton and the Miracle Mask, Professor Layton and the Azran Legacy і Professor Layton vs. Phoenix Wright: Ace Attorney (3DS, EUR; робочі текиLAYTON_MM_3DS,LAYTON_AL_3DS,LAYTON_VSPW_3DS). Source: текаsourceробочої теки: англійські скрипти XSCRtxt\uk\<тека>\*.xs(по одному блоку; теки 01–09 сюжет, 15 субтитри вступу, 30 репліки огляду, 40 щоденник, 50 головоломки, 52 довідка до головоломок, 80–83 мініігри; vs. Phoenix Wright: 04 суди,cmnзал суду) і файл означеньres\uk\*_def*.xs(назви й типи головоломок, назви мініігор, назва гри), шрифтиfnt\[eu]\nrm.xfіsml.xfта всі пакунки зображень текuk; Translation:translation. Рядок зберігає розмітку гри (<T>,<W8>,<M4/2/1>,{'e}для é); японські залишки й порожні рядки не показуються; незмінений файл лишається байт у байт, змінений записується заново (CRLF у vs. Phoenix Wright). Мовець береться з японської мітки скрипту (головних персонажів показано англійською). Редактор шрифтів відкриває обидва шрифти XF; вікно текстур показує титульний екран, меню, назви розділів, довідку, картинки й спливні вікна головоломок, екрани мініігор і сюжетні картинки (IMGC у файлах.xiі всередині пакунків.xa/.xp/.xy/.xc).2_build.batробочої теки перезбирає архіви XFSA (lt5_uk.fa,vs1.fa) або ARC0 (lt6_uk.fa) у мод Luma. Layton's Mystery Journey (3DS, EUR; робоча текаLAYTON_MJ_3DS) відкривається тим самим плагіном: англійські скриптиtxt\en\**\*.xsвlt6_en.fa(1 664 файли, близько 14 900 рядків) записано в UTF-8, тож українські літери зберігаються як є (бракує лише гліфів у шрифтах); логотип —menu\en\ctr\title_a.xc. Deluxe Edition для Switch (робоча текаLAYTON_MJ_NX, мод LayeredFS) тримає ті самі файли окремо в RomFS:txt\en\**\*.xs, американське написання_us\txt\en\**,res\lt6_def.xs, шрифтиfnt\[eu]іfnt\[na](nrm, sml, lrg) і картинки текenі_us(IMGN / IMGA); редагуйте і файлtxt\en, і файл_usрозділу (Eden з регіоном USA читає_us). -layton_ds— Professor Layton and the Curious Village, Pandora's Box, Lost Future і Spectre's Call (Nintendo DS, EUR; робочі текиLAYTON_CV_DS,LAYTON_PB_DS,LAYTON_LF_DS,LAYTON_SC_DS). Source: текаsourceробочої теки: власні файли гри за шляхами NitroFS (Spectre's Call: за шляхами в трьох архівахlt4_*.fa), ще стиснені так, як їх тримає гра; один блок на файл, лише файли з текстом. Curious Village:data\otext\en\*.txt, пакунки.pcm(etext/htext/itext/otext/qtext) і скриптиdata\script\**\*.gds(назви й умови головоломок, репліки готельних кімнат, розмови подій); Pandora's Box:data_lt2\event|nazo|place|rc\en\*.plzі базиrc\en\*.dlz; Lost Future:lt3\txt\uk\*.cpck,lt3\rc\nazo\uk\*.cdat(головоломки),lt3\rc\**\*.cpck/.cbin; Spectre's Call: скриптиGSD1txt\uk\**\*.cbіres\uk\*.cb. Translation:translation(цілі файли). Рядок зберігає розмітку гри (<T>,<W>,@p,<'e>); незмінений файл лишається байт у байт; довший рядок записується наново з пересунутими зміщеннями пакунка й переходами.gds; поле бази фіксованої ширини відхиляє довший рядок. Редактор шрифтів відкриває шрифтиNFTR(Curious Village, Pandora's Box, Lost Future) іGFNTSpectre's Call; жоден поки не має української літери (по 52 латинські). Вікно текстур показує зображення титулу, меню, головоломок і мап: фони (.arcBG), атласи анімацій (.arc/.arj),.cimg/.caniLost Future (LIMG) і.ci/.caSpectre's Call (GFSP: 4-бітні, 8-бітні, A5I3, A3I5).2_build.batробочої теки перезбирає ROM (NitroFS розкладено наново, архіви GFSA Spectre's Call латаються по одному файлу). Андроїдні HD-порти для Switch homebrew (робочі текиLAYTON_CV_HD_NX,LAYTON_PB_HD_NX,LAYTON_LF_HD_NX;switch.7zпорту) відкриваються тим самим плагіном: Source — текаassetsпорту за тими самими шляхами (англійські текиdata-en,data-EU,data-en-EUіdata): окремі файли.txt/.lbin/.datу UTF-8, картинки PNG і бітмапний шрифтdata\font\font.dat(редактор шрифтів додає літери: рушій читає UTF-8). Збірка пише змінені файли вbuild\sd\switch\<dir>\assetsдля SD-карти; у запуску homebrew в Eden немає дескриптора процесу, тому завантажувач цих портів тут зупиняється.layton_mr(Layton Brothers: Mystery Room, робоча текаLAYTON_MR_NX) відкриває рядки даних Unity, експортовані скриптом робочої теки ({"strings": [...]}на файл даних), і їхні текстури (PNG). -eternal_darkness— Eternal Darkness: Sanity's Requiem (GameCube, USA). Source: текаsource\gameробочої теки (1_unpack.batрозпаковує туди файли диска*SK_ASC*):EBootPak.bin(меню, предмети, закляття, руни, системні повідомлення),EBookPak.bin(сторінки Тому, меню збереження),EMemcardText.bin,RmTxt*.cmp(тексти кімнат),Chars\cin*\cin*.bin(субтитри відеовставок) іsys\main.dol(назви розділів у списку відеовставок, пишуться на місці, кожна у свій слот); Translation:translation\game. Кожна таблиця рядків із текстом — окремий блок (близько 4 270 рядків); коди керування показано як{ay}(колір),{i21}(кнопка),{s0.6}(масштаб),{~p}(персонаж гравця); текст пишеться в cp1251, тож українські літери стають у вільні клітинки шрифту 0x80–0xFF (збирання латає гру, щоб вона їх читала). Font Editor відкриває обидва шрифтиEFonts.tplз ширинами вEBootPak.bin(форматeternal_darkness); Tools → Textures… показує титульний екран із логотипом, меню, титри, Том, мапи й екрани запуску (TPL CMPR, I4, I8; гра зберігає їх догори дриґом).2_build.batзнову стискає змінені файли. -mgs_ts— Metal Gear Solid: The Twin Snakes (GameCube, USA). Source: текаsource\textробочої теки (common\codec.dat— усі кодек-розмови;stage\*.gcx— меню, файли брифінгу, описи предметів, повідомлення карти пам’яті, титри;*\demo.subs,common\vox.subs,common\movie.subs— субтитри катсцен, голосів у грі та відео, вийняті з потокових файлів диска); Translation:translation\text. Кожен рядок записано шістьма мовами; показуються лише англійські (за голосовим кліпом кодек-рядка, інакше за розпізнаванням мови), однакові таблиці кодеку — один блок, і збереження пише всі їхні копії. Довший текст займає місце французьких–іспанських рядків, яких американська версія не показує; незмінений файл лишається байт у байт. Мовців бере з даних гри (командиtalkкодеку й записи субтитрів називають персонажа). Font Editor відкриває текстовий шрифт (font\*.fnt, форматmgs); українські літери — у верхній половині шрифту черезtranslation_map.jsonплагіна.2_build.batробочої теки повертає частини вstage.dat,demo.dat,vox.dat,movie.dat,codec.dat. Задовгий рядок гра переносить сама, посеред слова, тож перевірка ширини не має запасу: рядок кодеку — до 509 одиниць шрифту (виміряно у вікні кодеку гри), рядок меню чи опису предмета — не ширший за найширший англійський рядок сусідніх рядків таблиці (один скрипт містить підказки опцій, описи предметів і діалоги карти пам’яті, кожне у своєму вікні). Титри, заголовки, таблички HUD і слова меню — картинки, а не текст (TWIN_SNAKES\reports\visible_text_inventory.md): Tools → Textures… показує їх ізtexture\<stage>.stage(сцениstage.dat, які робоча тека копіює окремо; паки текстур читаються як TPL) і пише копію перекладу; збирання кладе кожен змінений пак у всі сцени обох дисків, де він є.common\mgso.rel(модуль гри) дає один блок слів HUD — LIFE, O2, назви у віконцях предметів і зброї, імена босів: лише великі літери, по байту на літеру, не довше за місце слова. Українські літери, схожі на латинські, пишуться ними; решта — кодами ASCII, яких жодне слово HUD не вживає: робоча тека перемальовує ці клітинки шрифту HUD українськими літерами (tools\hud_font.py). Font Editor також відкриває сітки гліфів, якими гра пише слова HUD, значення меню, результати й цифри кодеку (шрифт HUD трьох розмірів, шрифти меню й результатів, рядки цифр; форматtexture_grid, зберігається в їхні паки текстур).disc1\opening.bnr,disc2\opening.bnrдають тексти банера диска (назва в меню GameCube і Dolphin: лише латиниця) і картинку банера у вікні текстур. -paper_mario_gc— Paper Mario: The Thousand-Year Door (GameCube, USA). Source: текаsource\files\msg\USробочої теки (по.txtна локацію,global.txt— меню, предмети, значки, бойові тексти й довідки); Translation:translation\files\msg\US. Теги показано у фігурних дужках ({k},{p},{wait 250},{col c00000ff});global.txtвідкривається блоками за видом (назви предметів і значків, ворогів, бойові довідки, описи, меню); японські залишки в американських файлах сховано й збережено без змін; незмінений файл лишається байт у байт. Мовців бере зі скриптів подій гри (NPC, на якого вказує коженevt_msg_print,context.jsonплагіна), довідки — Ґумбелли; ліміти ширини для кожного виду вікна — найширший англійський рядок цього виду в одиницях шрифту. Font Editor відкриває шрифт текстуf\papermarioset_US.bfn(і два інші шрифти диска,_EUта_JPN); українські літери займають слоти Latin-1, яких не малює жоден англійський текст (translation_map.json,translation_map.md). Вікно Textures показує текстури титульного екрана, вибору файлу, меню паузи, бою та вивісок з англійським текстом. -paper_mario_nx— Paper Mario: The Thousand-Year Door (Switch, 2024). Source: текаsourceробочої теки (1_unpack.bat: гра + оновлення):msg\EU_English\*.msbt(увесь текст, 46 файлів, ~14 900 повідомлень), шрифтиfont\*.bffnt/*.bfotfі текстури інтерфейсуui\<тека>\*.bntx(вийняті з.bfres.zstгри); Translation:translation. Теги названо заmsg.msbpгри ({wait:250},{key_wait},{PageBreak},{Color:255:255:255:204},{center}…{/center}); незмінений файл лишається байт у байт. Font Editor відкриває вісім шрифтів (контурні шрифти MARIO — BC5: червоний канал — заливка, зелений — силует); вікно Textures показує логотипи титульного екрана й усі текстури інтерфейсу (BC1, BC3, BC4, BC5, BC7, ASTC 8x8).2_build.batкладе змінений текст в обидві англійські теки мода LayeredFS (EU і US), а шрифти й текстури знову стискає. -ff12rw— Final Fantasy XII: Revenant Wings (Nintendo DS, Європа AXFP; перекладається англійський набір, інші чотири мови лишаються). Source: текаsourceробочої теки, яку1_unpack.batзаповнює англійськими текстовими файламиdata/**/E/за їхніми шляхами NitroFS (меню.btx, розмови крафту.btk, звіти, журнал, легенди й підказки.brt, розмови на кораблі.hscd, персонажі, предмети й уміння.bch/.bit/.bsk, світова мапа.bmw, вступний сувій.bst, діалоги подій і цілі місій у пакунках.dpk: 14 398 рядків), шрифтамиdata/FontPack.dpkі англійськими картинками; Translation:translation. Текст — Windows-1252:\n— новий рядок,[page]— нове вікно,[xNN]— байт кольору чи значка; довший текст розкладає файл заново, незмінений файл лишається байт у байт. Font Editor показує чотири шрифти NFTR зFontPack.dpk; вікно Textures — ~200 аркушів тайлів (логотип гри, логотипи компаній, назви місій і розділів, меню, мінімапи, підказки).2_build.batкладе всі файлиtranslationназад у ROM. -ffta2— Final Fantasy Tactics A2: Grimoire of the Rift (Nintendo DS, Європа A6FP; перекладається англійський набір). Source: текаsourceробочої теки:1_unpack.batбере зmaster/pc.binп'ять англійських пакунків повідомлень як файли.a2msg(меню, назви й описи в 55 таблицях, завдання, чутки, оголошення, діалоги подій: 33 198 рядків), шрифтmenu/font/UseMoji_image.binзFontWidthTable.bin, картинки менюmenu/nc_rom/us/nc.a2pakі логотипeffect/common/c_all_title_eu.efx; Translation:translation. Коди — гліфи (ASCII, латиниця з діакритикою, символи);\n— новий рядок,[page]і[end]закінчують сторінку чи текст, теги на зразок[CA:01]вставляють значення, значки й вибір,[xNN]— гліф без літери. Font Editor показує шрифт (форматffta2); вікно Textures — логотипи гри й компаній, ефекти аукціону й світової мапи (форматffta2_efx) і 11 аркушів тайлів меню.2_build.batзаписує змінені файли вpc.bin(на старе місце, якщо вміщаються, інакше в кінець) і перебудовує ROM. -rock_n_roll_racing— Rock N' Roll Racing (SNES, США). Source:source\text\rrr_text.rrrtext(223 рядки таблиці тексту ROM, кожен із своїм бюджетом байтів) іsource\rom\(копія ROM); Translation:translation. Новий рядок — перенос;[80]..[8F]— коди малюнків, їх не змінюють. Переклад довший за бюджет відхиляється під час збирання. Збирання: перебудований ROM і патч IPS (контрольна сума заголовка виправлена). Поки що без шрифту. -ffta_gba— Final Fantasy Tactics Advance (Game Boy Advance, США AFXE). Source: текаunpackedпроєкту: New Project (Project Manager) розпізнає ROM і записуєrom/(копію, з якої починається збирання),text/*.fftatext(меню, предмети, імена, місії й оголошення, сюжетні події й битви: 9 543 рядки в 104 блоках: 10 таблиць вказівників і 94 таблиці зсувів) іfonts/font.bin(шрифт 16x16 із ширинами); Translation:translation. Пробіл і новий рядок — звичайний текст;[wait],[next],[clear]чекають кнопку, гортають сторінку й очищають вікно (після[clear]усередині тексту редактор починає новий рядок);[crn:XX]і[var:XX]вставляють ім'я чи число;[choice:XX]починає вибір із двох відповідей, кожна закінчується[sep];[sp:XX]— пробіл на XX пікселів;[xXXXX]— символ без літери в редакторі. Українські літери займають клітинки кани в шрифті: Font Editor (форматcells) показує їх під українськими назвами, і перекладач малює їх там. Символ без коду під час збереження відхиляється з його назвою. Ціль збирання Перекладений ROM GBA записує змінені рядки й змінений шрифт; змінений рядок чи таблиця йде після кінця ROM, і вказівники переходять за ними. -infinite_space— Infinite Space (Nintendo DS, Європа C6CP). Source: текаsourceробочої теки, яку1_unpack.batзаповнює файлами NitroFS: скриптdata/Event/SpaceShip.scx(увесь текст гри: діалоги, меню й вибори скрипту, підказки; редактор показує ~5 000 рядків із літерами, по 100 у блоці), екраниdata/Cg/Bgd/*.bgd, спрайти менюdata/Cg/Obd/*.obdі текстури з текстомdata/Cg/Texture/*.tex; Translation:translation. Літери — 78 гліфів гри (0-9 A-Z a-z ! ? - ・ = / . , ( ) “ ” : ’ &); перенос рядка видно як новий рядок,[\r]відкриває наступне вікно, команди на кшталт[\c,1,12](мовець, портрет, події) лишаються як є; довший рядок розкладає скрипт заново. Font Editor показує шрифт діалогів 8x16 (форматis_obd,Obd/T000OBJ.obd: місця на нові гліфи немає); вікно Textures — логотип (Bgd/title.bgd,Bgd/TITLE000BG1.bgd), усі екрани й спрайти (форматtiles), вступний текст і плани кораблів (форматis_tex).2_build.batкладе кожен файлtranslationназад у ROM. -dq9— Dragon Quest IX: Sentinels of the Starry Skies (Nintendo DS, Європа YDQP; перекладаємо англійський набір, французький, німецький, іспанський та італійський лишаються). Source: текаsourceробочої теки, яку1_unpack.batзаповнює архівами GPC2 (*.gp2) з англійськими членами: розмови, таблички, завдання й сюжетні події (*_en.bin), меню, предмети, монстри, закляття, уміння та їхні описи (*_en.nat) — 60 222 рядки в 1 537 файлах, — а також титрами, клавіатурами імені, шрифтамиdata/pack_lv5/fi_*.bin+fd_*.binі пакетами картинок; Translation:translation. Файл — один архів, блок — один англійський член; теги гри<…>видно як{…}({PAGE}нове вікно,{1}апостроф,{,}кома),\nгри — як перенос рядка. Довший рядок розкладає член заново й перепаковує архів; незмінений архів лишається байт у байт. Font Editor показує обидва шрифти (форматdq9); літера, введена в одну з 66 порожніх клітинок, стає новим гліфом, і гра малює її там, де текст має цю літеру (UTF-8). Вікно Textures — логотип (menu/bg_up*.gp2), меню й сторінки альбому (форматиtilesіdq9_spr).2_build.batкладе кожен файлtranslationназад у ROM. -twewy— The World Ends with You (Nintendo DS, Європа AWLP). Source: текаsourceробочої теки, яку1_unpack.batзаповнює всіма файлами гри, крім звуку, за їхніми шляхами NitroFS; текст —Apl_Fuk/mestxt.mes(mestxt.binгри: усі 25 233 повідомлення, по 500 у блоці); Translation:translation. Коди — гліфи текстового шрифту (ASCII, латиниця з діакритикою й символи видно як літери, інші гліфи —[g:XXX]); теги[color:1]…[color:4],[/color],[num],[value],[name]; незмінений файл лишається байт у байт. Font Editor показує чотири шрифтиApl_Fuk/Grp_Font.bin(форматtwewy: текстовий 10x10, 10x12, два 16x16); вікно Textures — ~300 аркушів тайлів меню, заголовків, титрів, назв місць і екранів копірайту в архівахpackгри (спрайти — простим аркушем тайлів).2_build.batзаново робить індекс повідомленьmestable.binі перебудовує ROM. -castlevania_gba— Castlevania: Harmony of Dissonance (GBA, Європа ACHP) і Aria of Sorrow (GBA, США A2CE), один плагін для обох. Source: текаsourceробочої теки, яку1_unpack.batзаповнює з ROM (обрізаний дамп зISOплюс відрізане заповнення, звірене з No-Intro):text/strings.cvtext(усі англійські рядки як сирі байти: HoD 683, AoS 965 -- французький і німецький текст ROM AoS лишається як є), показані блоками за видом (сюжет, назви й описи предметів, ворогів і душ, меню, звуковий режим, назви місць); Translation:translation. Теги:[face:XX]портрет,[name:XX]мовець,[insert:XXXX]ім'я, яке підставляє гра,[page]/[box]/[wait]/[clear]/[scroll]кроки текстового вікна,[A][B][L][R][UP][DOWN]кнопки,[num],[xHH]код без літери; незмінений рядок зберігає свої байти. Українські літери: в AoS кирилиці немає, кожна з 66 літер має порожню клітинку шрифту; у HoD є російські літери, для Ґ Є І Ї ґ є і ї — порожні клітинки (намалювати в Font Editor). Font Editor показує по два 1-бітні шрифти на гру (форматcv_gba: текстовий 8x12, малий 8x8; ширини AoS можна міняти); вікно Textures — картинки з текстом (логотип, меню, назви місць, титри; розпаковані плитки 4bpp, у сірих тонах).2_build.batкладе довший рядок чи картинку у вільний кінець ROM на 8 МБ і переставляє вказівник. -castlevania_ds— Castlevania: Dawn of Sorrow (ACVE), Portrait of Ruin (ACBE) і Order of Ecclesia (YR9E), Nintendo DS, США; один плагін на три гри. Source: текаsourceробочої теки, яку1_unpack.batзаповнює в окремій теці кожної гри (dos,por,ooe):<гра>/strings.cvdstext(уся таблиця рядків гри як сирі байти: 1 291 / 1 865 / 1 893 рядки), показана блоками за видом (імена персонажів, назви й описи предметів, ворогів, душ / навичок, системні рядки, меню, завдання, назви музики й місць, бібліотека або словник, події = діалоги); Translation:translation. Теги:[name:XX]мовець,[face:XX]портрет,[wait],[box](нове вікно тексту) і[same](нова сторінка того самого мовця) — обидва з розривом рядка після них —,[next],[choice],[endchoice:XXXX],[color:XX],[cmd:XX], кнопки[L][R][A][B][X][Y][LEFT][RIGHT][UP][DOWN],[xHH]— код без літери;[]тексту видно як[]. Незмінений рядок зберігає свої байти. Українські літери: у шрифтах їх немає; кожна з 66 займає клітинку латинської літери з діакритикою, якої англійський текст не вживає (намалюйте їх у Font Editor; французький текст Order of Ecclesia теж уживає ці клітинки). Font Editor показує два шрифти кожної гри (форматcv_nds: текстовий 16x12, малий 8x8, сталий крок); вікно Textures — логотип титульного екрана, меню, назви місць, титри й екрани кінця гри (OoE: обидва англійські набори_eі_u).2_build.batзаново розкладає всі рядки, коли хоч один змінився (як DSVEdit); що не вміщається, іде в новий оверлей, який пропатчена гра завантажує на старті. -policenauts— Policenauts (PlayStation, японські диски SLPS-00215/00216 з англійським фанатським перекладом, у вигляді PSP-файлівEBOOT.PBPPS1 Classic; диска 3 в релізі немає). Source: текаsourceробочої теки (1_unpack.batчитає диск PSISOIMG кожного EBOOT):PN_VOX1.PNV/PN_VOX2.PNV(діалоги дисків 1 і 2: текст субтитрів, який переклад тримає в кожному голосовому блоці, одна група на блок; рядки з самих пробілів приховано),FONT\*іSHOTPAC\KANJIFNT.*(Font Editor, форматpolicenauts),PAK\*(Текстури: заставка, меню, картки актів, сторінки історії, титри; форматиpolicenauts_pakіtim). Теги:{dash},{xHH}. Текст блоку має вміститися в його сектор-заголовок;2_build.batпишеbuild\CD1\EBOOT.PBPіbuild\CD2\EBOOT.PBP(стискаються заново лише змінені блоки по 16 секторів). -super_paper_mario— Super Paper Mario (Wii, PAL, англійська UK). Source: текаsourceробочої теки (1_unpack.batкладе туди текстmsg\UK\*.txt, шрифти, текстури з текстом і повідомлення меню HOME Wiihbm\HomeButton2_en.bin\home.csv; архів — тека з назвою файлу архіву); Translation:translation. Файли повідомлень мають формат і теги Thousand-Year Door;global.txtвідкривається блоками (місця, назви розділів, предмети, вороги, картки, довідки Тіппі, описи, меню); незмінений файл лишається байт у байт. Font Editor відкриваєfont\papermarioset_EU,_US,_JPN.bfnі шрифт меню HOME; вікно Textures показує текстури титульного екрана, паузи, вибору файлу, введення імені, заставок розділів, меню HOME і банера каналу.2_build.batпакує кожен змінений файл назад в архів і образ диска. -lunar_sssc— Lunar: Silver Star Story Complete (PlayStation, USA, 2 диски). Source: текаsourceробочої теки (1_unpack.bat):LUNADATA\TEXT*.DAT(сценарії подій: репліки й відповіді так/ні),LUNADATA\SYSTEM.DAT\00_0001.bin(предмети, чари, монстри, місця, меню; місце обмежене), розпакована програмаSLUS_006.28(Редактор шрифтів: шрифт тексту і шрифт символів) і 15 картинок TIM (Текстури: меню заставки, логотипи, екрани «вставте диск»). Теги:{wait},{page},{clear},{close},{end}, коди{FA:39}. Довша репліка зсуває код сценарію після неї;2_build.batзбирає обидва диски. Вступний сценарій (TEXT001.DAT) має ще блок Voice subtitles: один рядок на кожен фрагмент мовлення монологу (8 рядків; порожній рядок нічого не показує). Кожен рядок з'являється у вікні тексту на час свого фрагмента, поки грає голос. Рядки йдуть після опкоду сценарію, який запускає кліп, тож2_build.batзбирає їх разом зі сценарієм. -lunar_ebc— Lunar 2: Eternal Blue Complete (PlayStation, USA, 3 диски). Source: текаsourceробочої теки (1_unpack.bat, файли зDATA.PAK):DATA\EVENT(сценарії подій),DATA\PEOPLE(що кажуть люди на мапах),DATA\SYSTEM\2499\05-12.bin(предмети, чари, меню, повідомлення карти пам'яті),DATA\BATTLE(імена монстрів, 21 літера),DATA\MAP(назви місць, сталої довжини),DATA\SYSTEM\0003.bin. Редактор шрифтів: шрифт текстуDATA\SYSTEM\2499\18_font.bin(94 гліфи та їхні ширини). Текстури: заставка й логотипи, сторінка стану в бою, слова карткової гри, 50 повноекранних картинок. Теги:\nновий рядок,{2000}нова сторінка,{3007}стрілка «далі»,{B2C9}хто говорить,{XXXX}інші коди. Довший текст зсуває репліки; файл, що вже не вміщається на своє місце, переїжджає в кінець диска. -paper_mario_64— Paper Mario (N64, USA 1.0) у PC-порті PaperBoat 1.0.2. Source:source\text\paper_mario_64_messages.txt(один рядок на повідомлення, 8 009;MSG_<name>і текст редактора, коди в дужках, напр.[@F0]); шрифт повідомленьsource\font\charset_standard.bin(сітка 166 глифів 16x16 CI4) і логотипиsource\texture\LOGO_*.bin(RGBA16).2_build.batпише змінені повідомлення, глифи й логотипи в мод портуbuild\mods\zz_Picoripi_UA.o2r; ROM не змінюється. У наборі символів українських літер ще немає. -conker_bfd— Conker's Bad Fur Day (N64, USA 1.0), плагін у роботі. Source: текаsource\text\bank_1A\(книжка катапульти) іsource\text\bank_1C\(меню, пауза, назви глав, титри): по одному JSON на таблицю, текст звичайними символами, внутрішні коди як теги[@hh]; шрифтsource\font\glyph_00.pgmдоglyph_94.pgm,glyphs.jsonіglyph_map.json; голосові потокиsource\voice\streams\NNNN.mp3з індексомsource\voice\streams.json. Цілі збірки:romзаписує пропатчений ROM,bpsзаписує BPS-патч з US ROM. Текст може довшати: коли таблиця довшає, банки 0x1A–0x1D переносяться в кінець ROM, розмір ROM не змінюється. Текстове вікно ще не збільшене, перегляд у грі ще не перевірений. Референс: виберіть готовий перекладений ROM (.z64); він з'явиться як колонка «Іспанська (ES, фан-переклад)». Файли патчів (xdelta, BPS) не застосовуються: потрібен пропатчений ROM. Таблиця зіставляється за позицією лише тоді, коли кількість рядків дорівнює кількості в US; інші таблиці пропускаються. -paper_mario_ok— Paper Mario: The Origami King (Switch, 2020), ті самі формати. Source: текаsourceробочої теки (1_unpack.bat: гра + оновлення):msg\EU_English\*.msbt(59 файлів, 9 708 повідомлень),font\*.bffnt(12 шрифтів) іui\...\*.bntx; картинка, яку гра тримає окремо для кожної мови, відкривається як англійська копія*.bfres.en.bntx, а2_build.batпише її в обидві англійські версії (en-GB, en-US). Теги — зmsg.msbpцієї гри ({Font:4}…{Font:-1}перемикає шрифт). -animal_crossing_nh— Animal Crossing: New Horizons (Switch, 2020). Source: текаsourceробочої теки (1_unpack.bat: гра + оновлення + доповнення з репаку):Message\*_USen.sarc.zs(11 архівів, 3 086 файлів MSBT, 120 498 повідомлень; кожен MSBT — окремий блок),Swkbd\message\USen\*.msbt.szs(клавіатура гри),Font\ScalableFont.sarc.zs(шрифти OpenType CFF.bfotfі TrueType.bfttf— намальований гліф зберігається в обидва),Font\BmpFont_US.sarc.zs(шрифти цифр),Layout\*.zsіModel\*_USen.*.zs(текстури BNTX, також усередині BFRES моделі; усі розміри блоків ASTC). Теги названо за самим текстом:{Color:Npc},{Item7:He:She},{Item8:512:years:year:years}(рід і множина назви предмета). -animal_crossing_3ds— Animal Crossing: New Leaf - Welcome amiibo та Animal Crossing: Happy Home Designer (3DS, EUR), один плагін на обидві гри. Source: текаsourceробочої теки (1_unpack.bat: гра + оновлення):romfs\Script\**\*.umsbt(New Leaf 3 299 файлів, 87 425 повідомлень; Happy Home Designer 507 файлів, 57 737 повідомлень; UMSBT тримає по одному MSBT на мову — англійська, іспанська, французька, італійська, німецька — і відкривається як англійський; інші мови записуються назад без змін),romfs\Layout\Swkbd\message\EU_English\swkbd.msbt(клавіатура),romfs\Font\*.bcfnt/*.bffnt(шрифти 3DS) і архіви розмітки як теки з малюнками (romfs\Layout\<x>\<y>.arc\timg\*.bclimdarc у New Leaf,*.bflimSARC у Happy Home Designer; логотипи титулу — літери вLayout\Title). Кожен керівний код має зрозумілу назву: назви New Leaf узято зACNL.gcfредактора MSBT Editor ({color:NPC},{pageBreak},{delay:8},{anim37},{wordInfo:…}) і з того, що код робить у тексті ({playerName},{catchphrase},{nickname},{waitButton},{menu5:0}з відповідями на наступних рядках,{random1:…}); Happy Home Designer має свій каталог ({delay:8},{anim37},{menu0:0}). Старі назви ({G5_7},{PageBreak}) теж читаються. Три таблиці імен*_ASR— однобайтові MSBT (UTF-8 / Latin-1), вони теж відкриваються. Вікна. Кожен файл знає своє вікно: вікно діалогу — 320 px шрифту гри, 3 рядки (гра сама переходить далі кожні 3 рядки;{pageBreak}починає нове вікно), листи й дошка оголошень — 257 px × 6 рядків, системні діалоги — 256 px, відповіді — 200 px. Ширину міряє власний шрифт гриGarden_msg_size16(рядок ламається рівно там, де його ламає гра); тег імені рахується як звичайне ім'я з 8 літер,{size}змінює масштаб. Задовгий рядок позначено червоним (гра розриває його посеред слова); Autofix і ШІ-переклад переносять текст кодами самої гри й не чіпають рядки відповідей. Проблеми: змінилась кількість відповідей, забагато рядків у листі чи на дошці. Попередній перегляд малює вікно шрифтом і текстурами гри й гортає сторінки, як гра. Відповідь ШІ мусить зберегти кожен тег (strict_tags). Збірка робочої теки також пишеcode.ips: мешканці озвучують кириличні літери (Animalese) звуком найближчої латинської літери. -castlevania_sotn_saturn— Castlevania: Symphony of the Night для Sega Saturn, англійська збірка «Dracula X Ultimate» v1.1. Source: текаsourceробочої теки, яку заповнює1_unpack.bat:text\<FILE>.sotnstext(1 130 рядків з 38 програмних файлів: предмети, реліквії, закляття, вороги, бібліотекар, меню, екрани збережень, назви зон, повідомлення в кімнатах, імена мовців у сценах),fonts\MENU_12x12.BIN(шрифт меню заставки, вибору й збереження даних),fonts\SYSTEM_8x8.BINіfonts\ASCII.FON(Tools → Font Editor),dialogue\*.BIN(діалоги сцен — це картинки рядків, 20 файлів),title\TITLE_LOGO.BIN(заставка як одна картинка 320x256: логотип, копірайт, PRESS START BUTTON) іtitle\TITLE_MENUS.BIN(вісім екранів меню з готичними заголовками — вибір гравця, вибір даних, введення імені, копіювання й видалення даних, головне меню — по одній картинці; Tools → Textures). Перемальований шматок екрана бере однакову клітинку 8x8, якщо вона є, малює на місці клітинку, яку вживає лише це місце, або бере вільну; збірка знову пакує клітинки вTITLE.MAPі зсуває таблицю блоків гри. Довший рядок зсуває сусідні рядки та їхні вказівники; ім'я мовця зберігає кількість літер. Першу клітинку картинки діалогу лишайте порожньою: гра заповнює нею вікно діалогу. -pokemon_nx— Pokémon Sword/Shield (з обома доповненнями) і Pokémon Legends: Arceus (Switch). Source: текаsourceробочої теки (1_unpack.bat: гра + останнє оновлення):bin\message\English\commonіscript*.dat(один блок на файл;.tblпоруч дає назву кожного рядка),bin\font(.BFOTF,bmp\*.bffnt) іbin\appli\*\bin\*_eng.arc(англійські картинки меню); у Legends: Arceus такожbin\archive\appli\*_eng.gfpak.d\*.arc(макети бою й HUD з паків Oodle,2_build.batпакує їх назад). Теги (ті самі, що вpokemon_trinity):{PAGE}наступне вікно тексту,{COLOR 0002}колір,{VAR 0100 0000}вставлене ім'я,M{GENDER 00FF|aster|iss}форми слова (їхні довжини записуються заново під час збереження),{CHAR E305}— значок кнопки. У шрифтах тексту немає Ґ Є І Ї ґ є і ї:translation_map.jsonпише І і Ї ї як латинські I i Ï ï, а Є є Ґ ґ — як Э э Ъ ъ, чиї гліфи перемальовують у Редакторі шрифтів. Sword і Shield мають спільний romfs:2_build.batпише мод для обох title id. Майстер проєкту сам розпаковує Sword / Shield: бере базову гру й оновлення (патч оновлення застосовується) читачем Switch з Picoripi і дає той самийsource, що й1_unpack.bat. Legends: Arceus: майстер записує її паки.gfpakі розпаковує їх у<pack>.gfpak.dбібліотекою Oodle. Один раз питає файл бібліотеки Oodle (oo2coreабоoo2ext*_win64.dll) і запам'ятовує шлях. Ціль збирання Switch записує змінені файли як мод LayeredFS (Sword / Shield: обидва title id; Legends: Arceus: змінений пак лежить без стиснення). Типові теги-псевдоніми (Налаштування → Псевдоніми тегів):[PAGE],[SCROLL],[POKEMON],[MOVE],[ITEM],[LEVEL],[NAME1], кольори[COLOR6]. Попередній перегляд діалогового вікна (Sword / Shield): вікно малюється з власної розмітки гриbin\appli\msg\bin\msg_00.arc(дві текстові панелі, розмір вікна, список шрифтівfcpx) зі шрифтами.BFOTFзbin\font. Текстура вікна ще не малюється; замість неї плоска коробка. Рядок, ширший за панель, переходить у наступну панель (перенесення за словами); слово, ширше за вікно, позначається. Legends: Arceus показує бойове вікно (bin\archive\appli\battle_menu_eng.gfpak.d\11_msg_sys_00_s.arc), Scarlet / Violet — вікно підвікна (appli\data\msg_sub\msg_sub_body_00.arc; майстер тепер бере архівиmsg_subіmsg_btl). Z-A лишається з попереднім переглядом BFN. -pokemon_gen6— Pokémon X / Y і Omega Ruby / Alpha Sapphire (3DS), один проєкт на пару (X і Y мають однакові файли тексту, шрифтів і картинок; так само Omega Ruby і Alpha Sapphire). Source: текаsourceробочої теки (1_unpack.batдістає англійські файли з архівів GARC):romfs\a\0\7\4\NNN.datігровий текст іromfs\a\0\8\2\NNN.datсюжет (X/Y; ORASa\0\7\3,a\0\8\1; один блок на таблицю, назва за вмістом:080 Species names,Story 012),romfs\a\0\2\0\NNN.2.binрядки клавіатури введення імен (один рядок, кількість символів лишайте),romfs\a\1\8\5\*.bcfntшрифти (ORASa\1\6\7) іromfs\a\*\*\*\000.2\timg\*.bclimанглійські картинки меню (а також логотипи й Press Start кожної гри). Теги ті самі, що вpokemon_nx:{PAGE},{COLOR 0002},{VAR 0100 0000},Master Ball{PLURAL 00FE||s},{CHAR E08E}. У шрифтах немає кирилиці: Редактор шрифтів додає літери (min_sheetsлишає місце).2_build.batперезбирає GARC у мод Luma / Azahar для кожного CIA вISO\. Майстер розпаковує CIA сам (власні читачі Picoripi, без крокуzt): X дає ті самі 718 файлів, що й робоча текаsource(Y — ті самі файли), Omega Ruby — 993. Перегляд: вікно мови (нижній екран) і діалог з вступних роликів (верхній екран) малюються шрифтом самої гри (Xa\1\8\5, Omega Rubya\1\6\7) з виміряним масштабом і рамкою спільним рендереромplugins/common/message_window.py; рядок ширший за виміряне вікно позначається. Розпакування зберігає архіви вsource\garc_original\<title id>\, з яких починає збірка. Цільова збірка 3DS mod (LayeredFS) пишеtitles\<title id>\romfs\...; член-пакет (DARC всередині члена GARC) збирається з перекладених файлів. -pokemon_gen7— Pokémon Sun / Moon і Ultra Sun / Ultra Moon (3DS, розшифровані образи.3dsуISO\). Sun і Перегляд вікна повідомлення малює вікно екрана вибору мови шрифтом гри (romfs/a/0/2/5/000.bffnt); інші вікна ще не виміряні. Moon мають однакові англійські файли; так само два Ultra. Ultra читає оновлення v1.2 як накладку. Майстер розпаковує образ сам (власні читачі Picoripi, без крокуzt): Sun дає ті самі 4667 файлів, що й робоча текаsource, Ultra Sun з оновленням v1.2 — 3189. Розпакування також зберігає архіви тексту, шрифтів і картинок уsource\garc_original\<title id>\(близько 37 МБ), з яких починає збірка. Цільова збірка 3DS mod (LayeredFS) пишеtitles\<title id>\romfs\...з кожним зміненим архівом; довший рядок приймається. Source:romfs\a\0\3\2\NNN.datанглійський ігровий текст (898 таблиць у Sun),romfs\a\0\4\2\NNN.datтекст Battle Tree,romfs\a\0\2\5\NNN.bffntшрифти іromfs\a\*\*\*\NNN.bflimкартинки. У шрифтах немає кирилиці: Редактор шрифтів додає літери.2_build.batперезбирає змінені GARC у мод Luma / Azahar для кожного заголовка. -pokemon_gen5— Pokémon Black / White і Black 2 / White 2 (Nintendo DS). Source: текаsourceробочої теки (1_unpack.batдістає члени NARC із ROM):text/a_0_0_2/NNNN.msg(меню, назви, описи, бій) іtext/a_0_0_3/NNNN.msg(сюжет, скрипти), один блок на файл;a/0/2/3— NARC із шрифтами NFTR,a/*/*/*— NARC із картинками NCGR. Теги:{PAGE},{SCROLL},{VAR 0101 0000},{COLOR 0001},{CHAR E447}; перенос рядка — новий рядок. Вікно повідомлення малюється шрифтом гри: NFTRa/0/2/3, member 0, у вікні 230 px. Ширина та зсув кожного символу беруться з першого рядка його клітинки в шрифті (дані гри), а стрілку сторінки виміряно на кадрах діалогу Black (plugins/pokemon_gen4/message_preview.py). Збереження лишає прапорці й стиснення рядків;2_build.batпише змінені файли в їхні NARC і розкладає ROM знову (звичайний образ NDS). Цільова збірка Translated DS ROM записує<код гри>_UA.ndsз копії чистого образу, яку зробив розпакування майстра (source omase.nds), із внесеними банками і файлами; скриптztне запускається. Образ DSi-enhanced виходить як звичайний NDS. -pokemon_gen4— Pokémon Diamond / Pearl, Platinum, HeartGold / SoulSilver (Nintendo DS, USA). Source: текаsourceробочої теки (1_unpack.batбере банки повідомлень і NARC з чистого ROM уISO\):text/<narc>/NNNN.msg, один блок на банк; редагується лише англійський текст, нередагований рядок зберігає свої байти. Шрифти: bin-шрифти Gen 4 з NARC шрифтів (graphic/font.narcта інші) відкриваються в Font Editor як сітка гліфів 16 x 16 з 2-бітними пікселями (gen4_glyphs); нових гліфів не додається, відредагований гліф зберігає чотири рівні кольору. Font Editor підписує кожну комірку гліфа її символом із charmap гри (індекс гліфа = код тексту - 1); комірка без символа показує свій індекс. Картинки: NARC з членами NCGR (Textures); стиснутий (LZ10) член розпаковується для відкриття і стискається знову для збереження як коректний потік.2_build.batзаписує змінені банки, шрифти й картинки в ROM і перебудовує його. Текст декомпіляції pret (.gmm/.json) — другий режим; для ROM йому потрібні інструменти декомпіляції, а зміннаZT_GEN4_MODE=pret(або файлzt_mode.txtу робочій теці) вмикає його вzt.py. Цільова збірка Translated DS ROM записує<код гри>_UA.ndsз копії чистого образу, яку зробив розпакування майстра (source Platinum: попередній перегляд малює вікно повідомлення шрифтом самої гри (Platinum 216 px, Diamond / Pearl / HeartGold / SoulSilver 216 px, 2 рядки; таблицяWINDOWSуplugins/pokemon_gen4/message_preview.pyдає шрифт і ширину кожної гри; ширини взято з шаблонів вікна pret і ctrl-cheeb-del, 27 x 4 плитки); рядок ширший за вікно позначається, гра рядки не переносить. Кольори вікна — кольори гри: темне чорнило 81,81,89, сіре 162,162,170 на 251,251,251 (з кадрів melonDS: вступне вікно Diamond і вікно діалогу HeartGold). omase.nds), із внесеними банками і файлами; скриптztне запускається. Образ DSi-enhanced виходить як звичайний NDS. -pokemon_bdsp— Pokémon Brilliant Diamond / Shining Pearl (Switch, Unity), один проєкт для обох ігор. Зміненийfont\<name>.json(його таблиці гліфів) записується назад у бандл шрифту; незмінений не записується. Source: текаsourceробочої теки (1_unpack.bat: гра + оновлення 1.3.0; бандли Unity стають простими файлами):message\english_*.bdmsg(128 таблиць, 42 946 рядків: сюжет, Покедекс обох ігор, назви, меню, бій),font\<бандл>\(шрифти TextMesh Pro SDF: формат редактора шрифтівtmp_sdf, таблиця гліфів + атлас; файли шрифтів динамічного запасного шрифту відкриваються якbfotf) іtexture\...\*.png(24 англійські картинки: логотипи, «Press any button», слова меню й бою; формат вікна текстурpng).2_build.batзаписує кожен змінений файл назад у його бандл для обох ігор. Майстер проєкту розпаковує таблиці повідомлень, шрифти й картинки сам (власні читачі Unity з Picoripi; гра + оновлення). Ціль збирання Switch записує змінені бандли як мод LayeredFS (їхні блоки не стиснуті) і заново вимірює ширину слова (strWidth) кожної зміненої мітки англійськими шрифтами. Змінена картинка (texture\...\*.png) кодується у свій формат і записується в потік бандла того самого розміру; змінений атлас шрифту (font\<бандл>\<шрифт>.png) записується в бандл шрифту. Ще не в Picoripi: таблиці гліфів шрифтів (файли.json) назад не записуються. Теги:\nновий рядок,{scroll}/{clear}+ новий рядок (чекати кнопку),{wait:0.5},{tag:A:G:T…}ім'я, число чи форма слова, яку підставляє гра (аргумент A; форми слова після|), теги TextMesh Pro<color=…>лишаються як є. -dragon_quest_builders— Dragon Quest Builders і Dragon Quest Builders 2 (Switch). Source: текаsourceробочої папки (1_unpack.batрозшифровує базу й оновлення; Builders 1excel\excel\<Таблиця>.en.binзexcel.nxarc(17 англійських таблиць, 19 905 рядків) і зbuild.nxarc4 шрифти Phyrebuild\gra\font\*.fgen.NXGL.phyreта 82 картинки (два пакунки спрайтів HUDuitexіuiiconна 345 і 980 спрайтів включно); Builders 2LINKDATA\text\<перший>-<останній>.dqbp(28 пакунків англійського члена кожної п'ятімовної групиLINKDATA.BIN: 4 219 таблиць, 81 129 рядків; пакунок — один блок), шрифтLINKDATA\font\00598.g1tі 62 локалізовані картинкиLINKDATA\texture\<номер>.g1t); Translation:translation. Коди гри лишаються в тексті (<key>кінець сторінки,<br>новий рядок,<pname>,<speaker(Ім'я)>,<color(0xAARRGGBB)>). Японський стовпець-ключ таблиці Builders 1 не показується і не змінюється.2_build.batкладе змінений файл без стиснення в кінецьexcel.nxarc/build.nxarc/LINKDATA.BINі вказує на нього в індексі (мод LayeredFS; оригінал копіюється один раз). -xenoblade_3— Xenoblade Chronicles 3 + 4 хвилі DLC, зокрема Future Redeemed (Switch). Source: текаsourceробочої теки (1_unpack.batчитає лише потрібні записи архівів гриbf3.ardі DLCbf3_dlc0N.ard— одну копію кожного шляху, з найновішої хвилі — і кладе туди, за шляхами архіву, англійські таблиці текстуbdat\gb\game\*.bdatіbdat\gb\evt\<вид>\*.bdat, шрифтиmenu\font\*.wifntі макетиmenu\image\*.wilay); Translation:translation. Один блок на файл таблиць (4 118 файлів, 117 513 текстових клітинок); коди гри лишаються в тексті як теги вигляду[ML:icon icon=btn_a ]. Font Editor відкриває шість шрифтів LAFT (жоден не має кириличних літер; для нових літер показано 8 вільних рядків клітинок, атлас росте при збереженні); вікно Textures показує англійський логотип (mnu001_cont01_en), макети титульного екрана й англійські картинки підказок (текстури BC7 записуються на місце, картинки JPEG кодуються заново).2_build.batкладе змінені файли окремими файлами romfs для гри й кожного DLC, де вони є, і ховає їхні записи в індексі кожного архіву. -xenoblade_2— Xenoblade Chronicles 2 + Torna: The Golden Country та інші DLC (Switch, оновлення 2.1.0). Source: текаsourceробочої теки (1_unpack.batодин раз записує образи.nszякnsp\*.nsp, читає лише потрібні записи архівів гриbf2.ard, Tornaaoc1.ardі окремі файли малих DLC та кладе туди, за шляхами архіву, англійські таблиці текстуbdat\gb\*_ms.bdat, шрифтиmenu\font\*.wifntі макетиmenu\image\*.wilay); Translation:translation. Один блок на файл таблиць (4 537 файлів, 83 323 текстові клітинки: колонкаnameстарих таблиць BDAT; мітки лишаються), теки за видом (common_ms= меню, система, назви й описи; сюжетні подіїbf, квестиqst, розмови NPCtlk, події поля й табору, розмови по душах та заїзди), Torna і три пакети DLC — окремі теки; коди гри лишаються в тексті як теги[ML:undisp ]/[System:Color name=tutorial ]…[/System:Color]. Font Editor відкриває вісім шрифтів LAFT (уstandard,subtitleіminchoє російська кирилиця, бракує лише Ґ Є І Ї ґ є і ї; в інших кирилиці немає; для нових літер показано 8 вільних рядків клітинок); вікно Textures показує англійські логотипи (mnu001_titlelogo_us, широкий_b_us, Tornadlc3_mnu001_titlelogo_us), макети титульного екрана й усі картинки з англійським текстом (*_us: текстури BC1/BC3/BC4/BC7 записуються на місце).2_build.batкладе змінені файли окремими файлами romfs для того title id, де вони є, і ховає їхні записи в індексіbf2.arh/aoc1.arh. -xenoblade_x_de— Xenoblade Chronicles X: Definitive Edition (Switch, оновлення 1.0.2). Source: текаsourceробочої теки (1_unpack.batчитає лише потрібні записи архіву гриsts.ard— його індексsts.arhзберігає хеші шляхів, імена беруться з публічного списку — і кладе туди, за шляхами архіву, англійські таблиці текстуbdat\us\*.bdat, титриui\credit\endroll.crt, шрифтиui\font\*.wifnt, макетиui\image\*.wilayі англійські картинкиui\stream\us\*.wilay); Translation:translation. Один блок на файл (1 801 таблиця зі 121 843 текстовими клітинками + 654 рядки титрів), теки за видом (common_ms= меню, система, назви й описи; сюжетні подіїxs, події квестівqev, розмовиtev, титри); коди гри лишаються в тексті як теги[ST:wait ]/[ST:icon p1=a ]/[ST:col p1=red ]. Font Editor відкриває шість шрифтів LAFT (уstandard,caption,standard_kr,standard_twє російська кирилиця, бракує лише Ґ Є І Ї ґ є і ї;numericіunique— цифри та знаки; 99 вільних клітинок і ще 8 вільних рядків для нових літер); вікно Textures показує англійський логотип (ui\stream\us\strm_title_thumb001), макети титульного екрана (10010_*), англійські макети (*_en) і картинки (BC7 / RGBA8 записуються на місце, JPEG кодується заново).2_build.batкладе змінені файли вromfs\mod\мода LayeredFS разом із завантажувачем XCXDE-ModLoader (masagrator,exefs), який змушує гру читати їх замість записів архіву. -vagrant_story— Vagrant Story (PlayStation, USA SLUS-01040). Source: текаsourceробочої теки, яку1_unpack.batзаповнює текстовими файлами диска за їхніми шляхами на диску:EVENT\*.EVT(катсцени),MAP\*.MPD(події кімнат),MENU\ITEMNAME.BIN,ITEMHELP.BIN,MCMAN.BIN,MENU12.BIN,MENU\*.PRG(меню),SMALL\HELP*.HF0(Quick Manual),SMALL\MON.BIN(Monster Book),SMALL\SCEN*.ARM(назви кімнат),MAP\ZONE*.ZND,BATTLE\*.PRG,TITLE\TITLE.PRG,SLUS_010.40(назви в даних програми й зон: закляття, прийоми, вороги та їхнє спорядження; слова HUD в ASCII на кшталт#WEAPON, лише ASCII) і шрифтFONT\VSFONT.FNT; кімната показує ще написи дверей і назву зброї в скрині; також розпаковуються титриENDING\ENDING.PRG(ASCII, правляться на місці) і файли картинок для Tools → Textures (GIM\,SMALL\*.DIS,SMALL\HELP*.HF1,BATTLE\SYSTEM.DAT, картинкиMENU); Translation:translation. Теги читабельні:{down 13}/{>12}ставлять текст у бульбашці,{color 1},{num 0},{wait},{page}; японські залишки й порожні рядки не показуються; незмінений файл лишається байт у байт. Межа ширини рядка діалогу — його бульбашка (chars_per_line× 12 пкс курсивного шрифту, з команди DialogShow скрипту), іншого тексту — найширший англійський рядок його таблиці. Текст росте в межах своєї таблиці чи скрипту: подія лишається 6144 байти, кімната може вирости до кінця свого останнього сектора CD, решта файлів зберігає розмір, а назви в даних програми правляться на місці (не довші за оригінал); збереження, що не вміщається, каже, який файл і таблиця. Українські літери йдуть черезtranslation_map.jsonплагіна (схожі літери ділять латинські коди, решта займає клітинки з діакритикою, яких англійський текст не вживає;translation_map.md). Font Editor відкриває шрифт двічі (форматvagrant): Dialog font (italic) і Menu font (regular), з ширинами зBATTLE.PRG. Російський фанатський переклад (Reborn 1.5f,reference\RU) — мова-референс, зіставлена за файлом, таблицею й місцем. Контекст сцени називає зону й кімнату файлу кімнати (vs_index.json); мовців дані гри не називають.2_build.batпише змінені файли на їхні ж сектори образу диска (EDC/ECC перераховано) і розкладає шрифт назад уSYSTEM.DATіBATTLE.PRG. Редактор позначає сторінку діалогу з більшою кількістю рядків, ніж у її балоні (VGS_LINES_EXCEEDED;{page}починає нову сторінку), і ім'я або рядок титрів, довший за своє місце (VGS_BYTES_EXCEEDED). Титри приймають українські літери на байтах ізcredits_map.json(46 літер на 46 клітинках, які англійські титри не малюють; цей байт не можна ввести як його ASCII-символ). Глифи малює власник у шрифті титрів. Панель попереднього перегляду малює сторінку вибраного рядка шрифтом гри 12 × 12 (звичайний для меню, курсив для балонів) і розміром балону (символів у рядку × 12 + 10 px, рядків × 13 + 4 px, з скрипта); «Попередня/Наступна сторінка» ходять по{page}. Рамка балону не малюється. Рядок титрів, що вводить ASCII-символ, який займають українські літери, позначається з причиною (VGS_CREDITS_RESERVED). -castlevania_sotn— Castlevania: Symphony of the Night (PlayStation, USA SLUS-00067) і її PC-порт SymphonyRecomp. Source: текаsourceробочої теки (1_unpack.bat): програмні файли за шляхами диска —DRA.BIN(назви й описи предметів, реліквій, заклять і ворогів, меню, повідомлення карти пам'яті),ST\SEL\SEL.BIN(титульний екран, вибір файлу, фінали, титри) і оверлеї етапів і босівST\*\*.BIN,BOSS\*\*.BIN(катсцени, крамниця й бестіарій бібліотекаря, повідомлення про знахідки, а також текст пролога вST\ST0\ST0.BIN: один рядок редактора на кожен рядок сценарію;{PAGE}в кінці рядка завершує сторінку; текст малюється консольним шрифтом, тому для кирилиці збірка додає окремий читач рядків; Ї Є Ґ і їхні малі літери беруться з власної таблиці літер тексту, Інструменти → Редактор шрифтів, «Caption letters»; рядок, ширший за панель 512 пікселів, позначається), а також файли картинокBIN\F_*.BIN.pic,ST\SEL\F_SEL.BIN.pic(файли диска з доданим.pic, щоб вони не показувалися як текст); Translation:translation. Де лежить кожен рядок, відомо з декомпіляції (layout_us.json, його робитьtools\sotn_layout.pyробочої теки), тож текст не вгадується. Два шрифти: шрифт 8x8 (меню, назви, діалоги катсцен; Інструменти → Редактор шрифтів,F_GAME.BIN, форматtexture_grid; збирання копіює його вF_GAME2іF_TITLE1) і шрифт BIOS консолі (описи, повідомлення: Shift-JIS, у ньому є кирилиця, але немає Ґ Є Ї; І і пишуться латиницею). Українські літери шрифту 8x8 ідуть черезtranslation_map.jsonу вільні клітинки катакани (схожі літери беруть латинські клітинки). Другий 8x8 шрифт — червоні числа пошкоджень і слова статусу (F_GAME.BINза 0x10000) — є й у редакторі шрифтів: рядок цифр змапований, рядки слів вільні. Збереження шрифту записує його копії (F_GAME2,F_TITLE1) у теку перекладу. Перегляд вікна катсцени малює першу сторінку 8x8 шрифтом на місці, яке задає команда POS її скрипта. Положення тексту збігається з одним кадром діалогу DuckStation; ім'я мовця і меню ще не малюються. На прологу (ST0) він також малює два цифрові розряди серцевого лічильника HUD Річтера (лише перегляд; аркуш читається зST0.BIN). Рядки катсцен показують команди темпу як теги ({WAIT 30},{SPEED 02}), а мовця — за портретом; рядок титрів починається своїм тегом ({ENTRY 10}). Текст може рости: рядок, на який вказують лише дані, переїжджає в межах свого блоку (вказівники переписуються) або в діапазон, який декомпіляція позначає невикористаним; катсцена, що переросла своє місце, продовжується там через команду переходу; рядок, на який вказує код, лишається у своїй комірці; збереження, що не влазить, називає файл і групу. Інструменти → Текстури (форматиsotn_blocks: блоки плиток VRAM, іsotn_cmp: стиснені картинки гри, що пакуються знову у своє місце) показують логотип (з його палітрою), титульні, пролог, HUD, кінець гри, вибір файлу й назви зон. Збереження лишає картинки, уже змінені в тому самому файлі.2_build.batпише змінені файли на їхні сектори (розміри ті самі, EDC/ECC перераховуються; без змін — диск USA байт у байт) і один раз збирає PC-порт;3_run_pc.batзапускає його з перекладеним диском (порт читає дані гри з диска, перекомпільовано лише код). -metroid_prime_trilogy— Metroid Prime Trilogy (Wii, США R3ME01): Prime 1, 2, 3 і меню Trilogy. Source: текаsourceробочої папки, яку1_unpack.batробить із пакетів Retro гри, окремо для кожної гри (MP1,MP2,MP3,Menu):text\<пакет>\<назва>.<id>.strg(кожна таблиця рядків один раз на гру, 5 473 таблиці, 16 211 рядків),font\*.font(59 шрифтів),texture\<пакет>\*.txtr(2 088 текстур інтерфейсу); Translation:translation. Кожна таблиця — блок її англійських рядків; теги гри&push;/&main-color=#…;/&image=…;мають вигляд{push},{main-color=#…},{image=…}. Збережена таблиця несе змінений текст як усі мови таблиці (гра показує його за будь-якої мови консолі); незмінена таблиця лишається байт у байт. Редактор шрифтів відкриває всі шрифти (retro_font_gx: гліфи змінюються на місці, нових не додати; українських літер немає в жодному шрифті); вікно «Текстури» відкриває текстури інтерфейсу (txtr_gx: усі формати GX).2_build.batпише змінені файли в кожен пакет цієї гри, де вони є, а пакети — у копію ISO. Той самий плагін відкриває GameCube Metroid Prime (USA 1.00GM8E01) робочої текиMetroid\Prime (GC + PC port)(текиtext,font,textureбез рівня гри; шрифти GameCube — черезretro_font_gc): її2_build.batпише змінені ресурси як окремі файли<id>.STRG/.FONT/.TXTRуbuild\mods\Picoripi_UA— теку модів рідного ПК-порту Odrannnn/MetroidPrimePort, який запускається з оригінального диска (3_run.bat) -metal_gear_solid_ps1— Metal Gear Solid (PlayStation, USA, обидва диски). Source: текаsourceробочої теки, яку заповнює1_unpack.bat:RADIO.DAT(усі дзвінки кодека),SLUS_005.94(назви й описи предметів, меню, повідомлення карти пам’яті; правка на місці),stage\<stage>\*.gcxі*.bin(скрипти й оверлеїSTAGE.DIR: написи підібраних предметів, журнал місії, меню VR і складності),subs\demo.subs,vox.subs,movie.subs(субтитри катсцен, голосів і фільмів обох дисків, кожен блок один раз), шрифтfontont.resі текстури PCX титульного екрана, меню, брифінгу й результатів; Translation:translation. Розрив рядка —#Nу дзвінках кодека і|у субтитрах (показано як новий рядок); інші коди гри читаються як{901B}. Рядок дзвінка чи скрипту може рости; блок субтитрів — до кінця сектора свого потоку, рядок програми — лише в межах свого місця.2_build.batзбирає обидва диски (STAGE.DIR, адреси дзвінків, субтитри, програму). -metal_gear_solid_mc— Metal Gear Solid, Master Collection Version (PC Steam і Switch; гра USA в емуляторі M2). Source: текаsourceробочої теки (1_unpack.bat): ті самі файли PlayStation, що й уmetal_gear_solid_ps1(SLUS_005.94— програма з образу пам’яті M2), плюс власний текст M2 уm2\text\**\*.psb(меню, повідомлення, титри, Master Book; англійські рядки, зберігаються як UTF-8), шрифти M2 (m2\font, формати Font Editorm2іmgs1_hd) і картинки (m2\texture\*.pcx,m2\image\*.m2tex, формат Texturesm2).2_build.batпише архів виправлень M2patchdata.psb.m+patchdata.bin(PC:build\windata; Switch: мод LayeredFS) і прибирає власні дрібні виправлення M2 там, де переклад змінив їхні байти. -metal_gear_solid_23_mc— Metal Gear Solid 2 і 3, Master Collection Version (Switch; PC ще ні). -metal_gear_mc_bonus— Metal Gear Solid Master Collection Bonus Content (Vol.1 і Vol.2, Switch): текст меню і повідомлень двох застосунків M2 (англійські рядки); шрифти і картинки відкриваються у спільних інструментах шрифтів і текстур. Source: текаsourceробочої теки (1_unpack.bat):text\<group>.json(codec, scenario, demo, movie, vox, books і текст лаунчера; один блок на файл гри, кожен англійський рядок один раз на групу;2_build.batставить перекладений рядок у кожне місце, де стоїть цей рядок). Лишайте розриви рядків, позначки|і символи кнопок. Шрифти:font\MGS_Font_nht.raw(формат Font Editormgs_nht; вільні клітинки беруть нові літери) і SDF-шрифти лаунчера (tmp_sdf). Картинки: файли.ctxrуtexture(формат Texturesctxr) і PNG-картинки лаунчера. -fragile_dreams— Fragile Dreams: Farewell Ruins of the Moon (Wii, Європа). Source: текаsourceробочої теки (1_unpack.batрозпаковує туди стиснені файли дискаFILE_<id>):text\60001061.msg(усі діалоги, субтитри, описи предметів, спогади й меню титульного екрана),text\40003100\1\*.msg,text\60001083\0.msg,text\600010AF\0.msg(кінцеві титри),sys\main.dol(перевірка збереження, повідомлення пульта й диска; пишуться на місці, кожен блок у своєму місці) іhbm\10000081.csv(меню HOME). Кожен блок повідомлень — окремий блок Picoripi (близько 3 900 рядків);<w>,<v1>,<p>,<c#404040ff>і[Value]лишаються як є; текст пишеться в cp1251, тож українські літери стають у клітинки шрифту 0xC0–0xFF і клітинки Ґ Є І Ї. Font Editor відкриває всі 14 шрифтів FONT (форматfragile_dreams; японські гліфи лишаються як є); Tools → Textures… показує близько 2 800 картинок TPL (логотип, навчальні сторінки, меню, мапи, екрани безпеки, меню HOME, банер диска).2_build.batзнову стискає змінені файли. -no_more_heroes— No More Heroes (Wii, Європа). Майстер: оберіть образ диска (ISO або RVZ); майстер розпаковує його в текуsourceпроєкту. Для зашифрованого ISO потрібен файл ключа Wii у ключах консолей. Збирання: «Образ диска Wii (ISO, англійська)» пише звичайний ISO. Джерело RVZ або WIA спершу записується як звичайний ISO (кожен розділ хешується і шифрується знову; це займає кілька хвилин); для збирання потрібен файл ключа Wii. Source: розпакована текаsource(файли ресурсів RMHG диска, LZ гри розпаковано):text\<файл диска>.nmt— англійські рядки всіх текстових вікон одного файла гри (ролики, етапи й місто, підробітки, предмети, меню; близько 12 000 рядків у 1 064 файлах),text\main.dol.nmt(слова меню з програми: копірайт на титульному екрані, екран збереження, підказки кнопок на мапі й у крамницях, дошка завдань; пишуться на місці) іhbm\home.csv(меню HOME). Гра не малює текст шрифтом: кожне вікно несе картинку своїх гліфів, і збирання малює її заново зі старої картинки й шрифтів. Font Editor відкриває 15 шрифтів як сітки гліфів (форматtexture_grid, I4; у кожному є порожні клітинки для 66 українських літер, що пишуться кодами кирилиці Shift-JIS) і шрифт меню HOME; Tools → Textures… показує близько 1 080 картинок (логотипи на запуску, меню, екрани завантаження й безпеки, картки предметів). Логотип на титульному екрані — 3D-модель, не картинка. -madworld— MadWorld (Wii, Європа). Source: текаsourceробочої теки:text\<файл диска>.mwt— англійські таблиці повідомлень (субтитри роликівevent\*, повідомлення місій і навчанняcase*\idpac_*, системні повідомлення й повідомлення збереженняsubscr\*; близько 1 630 повідомлень у 68 файлах) іhbm\home.csv. Таблиці зберігають номери гліфів, а не коди літер; літери впізнано за картинками гліфів.<8010:0064>,<8002>і<#0003>— коди гри, вони лишаються як є. Font Editor відкриває шрифт субтитрів і шрифт заголовків (texture_grid, IA8; порожні клітинки для українських літер), системний шрифт ASCII і шрифт меню HOME; Tools → Textures… показує близько 500 картинок із текстом (логотип MADWORLD, меню, HUD, навчання, екран безпеки). Майстер розпаковує диск (.isoабо.rvz; зашифрованому.isoпотрібен файл ключа Wii). Ціль збирання Wii disc image (ISO) копіює диск і малює заново картинку гліфів кожної зміненої таблиці. Джерело.rvzспершу записується як ISO (кілька хвилин). Потрібен і файл ключа Wii. Літера без картинки в шрифті не потрапляє в гру; рядок стану збирання називає її, аBUILD_WARNINGS.txtпоруч з ISO перелічує всі такі літери. -wario_land_shake_it— Wario Land: Shake It! (Wii, США, RWLE01 rev 0). Майстер: оберіть образ диска (ISO, WIA або RVZ); майстер розпаковує англійські пакети повідомлень у текуunpackedпроєкту і пише по одному текстовому документу на кожен файл повідомлень (MessageData\*.json). Source: один блок на кожен файл BMG: 575 повідомлень у шести файлах (area, demo, error, game, stage, treasure);{esc:FF:00000100}у тексті — код гри, він лишається як є. Збирання: «Образ диска Wii (ISO, англійська)» пише звичайний ISO із заміненим англійським пакетом; для збирання потрібен файл ключа Wii у ключах консолей. Ще ні: шрифти (шрифт гри не має українських гліфів), текстури з текстом, інші мови як довідкові колонки. -xenoblade_wii— Xenoblade Chronicles (Wii, США) і Xenoblade Chronicles 3D (New 3DS, Європа): один плагін, один переклад. Source: текаsourceробочої теки (1_unpack.bat), однакові шляхи на обох платформах: англійські таблиці BDATbdat\bdat_common.bin(120 таблиць: меню, предмети, мистецтва, вміння, вороги, імена, системні повідомлення, бойові репліки),bdat\common\bdat_*.bin(квести, описи, підказки, досягнення, журнал сюжету),bdat\map\bdat_ma*.bin(репліки NPC, обмін, повідомлення механізмів по локаціях) і скриптиscript\*.sb(розмови NPC, події, розмови по душах: 24 600 рядків у 494 скриптах; ідентифікатори й налагоджувальні рядки не показуються); лише Wii:bdat\code_mes_en.bdat(повідомлення про диск ізmain.dol, пишуться на місці) іhbm\hbm.arc\hbm\home.csv(меню HOME). Разом близько 62 800 рядків;<n>,<col=s2>,<wait=key>лишаються як є,@переносить рядок у меню. Файли Wii — big-endian (таблиці й рядки скриптів заплутані), файли 3DS — little-endian і відкриті;2_build.batдля 3DS бере й кожен файл тексту, перекладений у сусідній робочій теці..\Wiiі не перекладений у своїй, тож один переклад іде в обидві версії. Font Editor відкриває шрифти гри (WiiRFNA, 3DSANFRзі сторінками QuickLZ, форматbrfnt), 3 бойові шрифти й шрифт меню HOME; Tools → Textures… показує картинки TPL (Wii близько 3 100, форматtpl; 3DS близько 3 000, форматtpl_ctr: логотип і слова титульного меню, усі макети меню, мапи, банери).2_build.batпише змінений WBFS (Wii) або мод romfs для Luma (3DS). -fire_emblem_awakening— Fire Emblem Awakening (3DS, Європа, англійський слот). Source: текаsourceробочої теки (1_unpack.batрозшифровує .cia і розпаковує туди англійські файли):romfs\m\U\*.bin(854 архіви повідомлень LZ11: сюжет і розмови підтримки, назви й описи бійців, класів, предметів, умінь, меню, навчання, текст DLC-розділів; 15 817 повідомлень), шість шрифтів-атласівromfs\fonts\*.bfnt(fe13_bfnt) та англійські картинки CTPK / CGFX з текстом (ui\*_U,bs\*_U,chapter\title\U,tut\U,telop\*_U.r, логотипui\title_U.ctpk). Керівні коди лишаються в тексті ($k,$Wmクロム|0,$E通常,|…); мовець із$Wm/$Wsназваний англійською зGameData.bin.2_build.batзнову стискає змінені файли (LZ11 / LZ13) у мод Lumaromfs. -smt_iv— Shin Megami Tensei IV і IV: Apocalypse (3DS, Європа). Source: текаsourceробочої теки: усіromfs\**\*.mbm(таблиці Atlus MSG2: події, квести, бій і розмови з демонами, меню, назви, описи), таблиці DLC уdlc\content_NN\romfs\,exefs\code.bin(назви умінь, місць і меню всередині програми; пишуться на місці), шрифтиromfs\font\*.bcfntз кодами Shift-JIS і текстури інтерфейсу STEX (tex\stex\<тека>, логотипtitle\rogo.stex). Повноширинні літери гри показано як ASCII, керівні коди — як теги{F8xx 0001}; українські літери отримують вільні коди Shift-JIS 0x8492–0x8499 (core/font_formats/sjis.py).2_build.batпише змінені файли (текстури.cmpApocalypse знову стиснені) у мод Lumaromfs; файли DLC ідуть під title id DLC (Azahar їх застосовує; Luma на консолі DLC не латає). Strange Journey Redux (EUR,SMT_SJR_3DS) використовує той самий плагін: 106 файлів.mbmі 27 файлівEvent\EventMessage*.bin(блокиTBB1, рядки з кінцем0000), список назв DLC, шість шрифтів BCFNT і 419 картинок STEX. -dragon_quest_vii— Dragon Quest VII: Fragments of the Forgotten Past (3DS, Європа, англійський слотEN). Source: текаsourceробочої папки (1_unpack.batрозшифровує .cia і розпаковує файли LZ11 / LH):romfs\MESS\EN\*.fpt(331 пак FPT0 з повідомленнями#NNNNNN.txt: діалоги й події, 56 720 повідомлень; рядок = одне повідомлення, заголовок#вікно,мовецьлишається в паку й називає мовця),romfs\MENULIST\EN\*.txt(22 CSV-списки меню: команди, предмети, закляття, монстри, професії, місця, StreetPass; 23 920 рядків), 20 шрифтів BCFNT (Font.bcfnt,demox\demo_font.bcfntі шрифтиtbud_maru,m7_win,iwamaruв архівах darcLAYOUT\*.arc) та екрани й атласи як текстуриDMP(SCREENTEX\<тека>\*.fpt: плитки 64x64 кожного екрана,LAYOUTTEX\*.fpt,LAYOUTTEX\*\*.dmp). Теги: імена{HERO}, коди%a00, граматичні коди%E/%Y,{LF}— одинарний перенос рядка гри.2_build.batзнову стискає змінені файли (LZ11, LH 0x40) у мод Lumaromfs. -dragon_quest_viii— Dragon Quest VIII: Journey of the Cursed King (3DS, Європа, англійський слотeng). Source: текаsourceробочої папки:romfs\data\Message\eng\*.binE(меню, предмети, закляття, уміння, монстри, бій, церква, казино, алхімія, завдання) іromfs\data\Script\field\message\eng\**\*.binE(події, репліки мешканців, розмови загону, записи; 581 таблиця, 39 164 рядки з ідентифікаторами),romfs\data\Params\WordTable\eng\*.txt(словникові таблиці, рядок = рядок файлу), п'ять шрифтівrom\Font\*.bffntі картинки BFLIM у SARC-макетахdata\Layout\**\*.arc(логотипtitle\title_u.arc). Текст UTF-8 з кодами[...].2_build.batкладе змінені файли в мод Lumaromfs. -dq_monsters_joker3— Dragon Quest Monsters: Joker 3 (3DS, Японія, з накладеним англійським фанатським патчем 1.02; джерело — пропатчена гра). Source: текаsourceробочої папки:romfs\data\Message\**\*.mesіromfs\data\Script\Field\**\*.mes(417 хеш-таблиць, 16 697 рядків UTF-16 з мітками: меню, предмети, уміння, монстри, пошук, синтез, довідка, цікавинки, сцени; керівні символи показано як{01}), скрипти титрівdata\Menu\EndRoll\*.nut(рядки в лапках), чотири шрифти*.bffnt(кольоровий RGBA4break_font) і картинки BFLIM у SARC-макетахdata\Layout\**\*.arc(логотипtitle\upper\title_logo.arc). Рядки, що патч лишив японськими, видно.2_build.batкладе змінені файли в мод Lumaromfs. -mhp3rd— Monster Hunter Portable 3rd HD (образ PSP NPJB-40001, порт Yakumo для ПК). Джерело: папкаsourceміститьen_source.json, який збирає скрипт робочої теки build_source_lang.py (не в цьому репозиторії) з вашого образу PSP і англійського патча; ключіTABLE:INDEX(квестиref:offset). Переклад:translation/uk.json;2_build.batзаписуєuk.langу папку перекладів Yakumo, диск не змінюється. Ще не готово: написи екрана створення персонажа (їх немає у вилучених блоках) і вибір шрифту (text.fontуsettings.iniYakumo). Потрібна версія Yakumo: збірка з коміту 43190f0 або новішого (випущені збірки alpha.4 і alpha.5 не читають файли перекладу). -monster_hunter_3ds— Monster Hunter 3 Ultimate, Monster Hunter 4 Ultimate і Monster Hunter Stories (3DS, Європа; Capcom MT Framework Mobile). Source: текаsourceробочої теки (1_unpack.batрозшифровує гру й виймає англійські та спільні для всіх мов файли з архівів.arcза шляхами самої гри; файл, що лежить у кількох архівах, — один файл). Текст: таблиці.gmd(MH3U, UTF-8),.lmd(MH4U і Stories, UTF-16) і англійська частина завдань (.questMH3U,.mibMH4U); кожен файл — один блок;<COLO 1>,</COL>,<SUBS 3>і%sлишаються як є; рядки можуть ставати довшими; незмінений файл зберігається байт у байт. Font Editor відкриває шрифтиGFD/lfdз їхньою сторінкоюTEX(форматmt_font; в основних шрифтах є російська кирилиця, Ґ Є І Ї ґ є і ї додаються як нові літери). Tools → Textures… показує картинки інтерфейсу й титульного екрана (mt_tex).2_build.batзбирає кожен архів зі зміненим файлом у мод romfs для Luma. -plain_text— Plain Text -pokemon_fr— Pokémon FireRed / LeafGreen, Ruby / Sapphire і Emerald: JSON-дампи тексту ROM або вихідні файли декомпіляцій pret (.inc,.s,.c,.h; один блок на файл; коди\n,\l,\p,{PLAYER}; завершальний$не показується). Мовця беремо зmap.jsonкарти. Назви регіонів на карті та назви предметів FireRed (JSON) теж є повідомленнями. Збережений файл декомпіляції зберігає свої LF-кінці рядків, а індексований PNG зберігає палітру, глибину бітів і непозмінені пікселі. Режим ROM (FireRed / LeafGreen, USA rev 0, перша версія): роль Game ROM у Менеджері проєктів приймає файл.gba(він розпізнається за SHA-1). Розпакування записує кожне повідомлення вtext\messages.incі зберігає копію ROM уromase.gba; інші інструменти не потрібні. Patched ROM записує.gbaзі зміненими повідомленнями: повідомлення, довше за оригінал, переноситься у вільне місце, а вказівники на нього переписуються; незмінене повідомлення лишається байт у байт. Повідомлення, на яке не вказує жоден вказівник, зберігає свою довжину: редактор показує Byte budget exceeded для довшого тексту, а збірка його відхиляє. Коди звуків не є текстом:{PLAY_SE ...}і{PLAY_BGM ...}беруть ідентифікатори звуків гри. Типові псевдоніми тегів:{Player},{Rival},{Var1}–{Var3},{A},{B},{Start},{Up/Down},{Left/Right},{Plus},{Lv2}. Ще не в режимі ROM: шрифт і превʼю вікна повідомлення. Перегляд вікна повідомлення: для FireRed, LeafGreen і Emerald перегляд малює вибране повідомлення шрифтом самої гри, який читається з базового ROM у фоновому потоці. Текст показано сторінками, з шириною тексту та двома рядками вікна. Рядок, що не вміщується, або третій рядок без прокрутки чи нової сторінки позначається під вікном. Ruby і Sapphire поки без запису шрифту. Назви з таблиць C-коду: назви, які читає C-код, стоять у полях фіксованого розміру, тому вони не можуть рости. Вони розпаковуються у власні файли вtext\: види (412,species_names.inc), ходи (move_names.inc), здібності, типи, класи тренерів, предмети (item_names.inc), імена тренерів (trainer_names.inc) і ягоди. Поле, довше за свій розмір, позначає попередження Byte budget exceeded під рядком редактора; збірка його відхиляє і називає кількість байтів. У FireRed, LeafGreen, Emerald, Ruby і Sapphire у проєкті вже є описи ходів, здібностей і предметів, назви натур, описи Покедексу та категорії Покедексу. Ці тексти можуть рости: довший текст переноситься в вільне місце, а його вказівник переписується. Назви й описи ягід і декорацій, назви регіонів Тексти, які будує C-код (рядкові літерали декомпіляції), теж є в проєкті, якщо ROM містить кожен текст одним цілим; вони розпаковуються вtext\c_<вихідний файл>.inc. Тексти інших мов і налагоджувального коду в англійському ROM відсутні, тож їх не включено. Описи предметів зitems.json, назви полів тренерів і декорацій (кожне місце одного імені є полем одного тексту; вони розпаковуються в новий файл таблиці з назвою вихідного файлу, наприкладtext\c_trainers_h.inc) та англійські повідомлення ROM, яких немає в жодному вихідному файлі (наприклад, текст мультибут-програм,text\c_rom_messages.inc), теж є в проєкті. Зображення, палітри, шрифти й звук не є текстом і не відкриваються. Ціль збірки Recomp package записує по папці на кожний дамп:EmeraldRecomp\emerald\(Emerald),FireRedLeafGreenRecomp\firered\і...\leafgreen\. Кожна містить перекладений ROM,recomp.json,run_UA.bat(запускає порт з--rom-sha1) іREADME_UA.txt. Змінена збірка Emerald, FireRed або LeafGreen додатково міститьrecompile_UA.sh: він запускає імпортер порту іgba_recompileдля цього ROM і ELF збірки (WSL), потім збирає порт. Змінена збірка рухає код, тож стандартний реліз зупиняється на промаху диспетчера; порт треба збирати цим скриптом. Дамп BIOS лишається у користувача. Перегляд: вікно повідомлення малюється шрифтом самої гри (Ruby / Sapphire: шрифт 3, 4bpp, читається з ROM). Типові аліаси тегів включають{Kun},{Version}і назви команд та лідерів; коди з аргументом мають аліаси:{COLOR:Red},{HIGHLIGHT:Red},{SHADOW:DarkGray},{Pause}(чекає натискання),{PlaySE:Select},{PlayBGM:LevelUp}і{FONT:Normal}.{PAUSE}з числом кадрів аліасу не має. Кожен аліас збирає ті самі байти, що його сирий тег. -pokemon_trinity— Pokémon Scarlet/Violet (+ The Teal Mask, The Indigo Disk) і Pokémon Legends: Z-A (+ Mega Dimension) (Switch, рушій Trinity від Game Freak). Source: текаsourceробочої теки (1_unpack.batчитає лише потрібні паки зarc\data.trpfsі кладе туди, за шляхами гри, англійський текстmessage\dat\English\{common,script}\*.dat— у Z-Aik_message\...— шрифтиappli\font\bin/ui\font\binі англійські архіви макетів*_eng.arc). Майстер проєкту робить це сам власними читачами Picoripi: гру з оновленням і файл бібліотеки Oodle, який майстер питає один раз і запам'ятовує (паки стиснуті Oodle). Результат дорівнюєsourceробочої теки побайтово. Ціль збирання Switch записує змінені файли і змінений індекс для кожного title id: Scarlet з її бази й оновлення, Violet з ролей іншої версії (її база й оновлення). Translation:translation. Один блок на файл повідомлень (Scarlet/Violet: 913 файлів, 85 331 рядок; Z-A: 427 файлів, 76 810 рядків);.tblпоруч із кожним файлом дає кожному рядку його мітку (назву рядка в грі); змінні мають вигляд{VAR 0101 0000},{PAGE},{SCROLL},{COLOR 0001}, значки{CHAR E300}; граматичні розгалуження несуть обидва тексти,M{GENDER 00FF|aster|iss},{VERSION 00FF|Ko|Mi}raidon(Scarlet | Violet), а їхні довжини записуються заново під час збереження. Font Editor відкриває шрифти.bfotfі.bffnt; вікно Textures — BNTX-картинки англійських макетів (логотип, меню).2_build.batзаписує змінені файли в мод LayeredFS разом зarc\data.trpfd, який більше не відсилає гру до запакованих оригіналів (змінений англійський макетX_eng.arcіде в мод ще й якX.arc: мовні макети гра бере лише зі своїх паків); Scarlet і Violet мають один проєкт і однаковий мод. Попередній перегляд вікна повідомлення: вікно малюється з власного макета гри шрифтами.bfotf. Scarlet / Violet:msg_sub_00.bflyt(архів підвікна). Legends: Z-A:msg_00.bflytуmsg_body_00.arc, який зовнішнійmsg_body_00.bflytставить на y -370; архів пише майстер (його вид —view_msg_body_00.truiv). Текстура вікна не малюється. Legends: Z-A має три вікна в одному перемикачі над попереднім переглядом: польове вікно (msg_00.bflyt, розмір гліфів не виміряно), мовну бульбашку NPC (шрифтUniversNextPro-Cond.bfotf, гліфи 29,5 на 29 px, виміряно за кадром Eden: кожен край чорнила в межах 1 px) і нижнє вікно повідомлень (з макета, кадру ще немає). Бульбашка і вікно беруть дані зconfig.json(speech_bubble,hud_message); кожне вікно читається у фоновому потоці. -wii_sysfont— системні растрові шрифти Wiiwbf1.brfna/wbf2.brfna(архівні шрифти NW4R системного меню; їхні копії лежать на дисках, які малюють ними підказки, наприклад Raving Rabbids: Party Collection). У NAND vWii з європейської консолі ті самі два файли; його накреслення WiiNTLG-Regular.ttc (fonts/WiiNTLG-Gothic.ttf,fonts/WiiNTLG-PGothic.ttf) відкриваються в редакторі шрифтів як TTF. Накреслення поки що не можна записати назад у колекцію. Source: текаsourceробочої теки (1_unpack.batбере шрифти з NAND Dolphin (shared1) або з копій на диску Rabbids і готує українські літери: І і Ї ї отримують гліфи I i Ï ï, Є є Ґ ґ — порожні клітинки в кінці аркуша ASCII); Translation:translation. Font Editor відкриває обидва шрифти (brfna);2_build.batпише шрифти для диска (build\disc\fonts) і, коли джерелом був NAND, спільний вміст для NAND (build\nand\shared1). -pokemon_md_3ds— Pokémon Mystery Dungeon: Gates to Infinity і Pokémon Super Mystery Dungeon (3DS, Європа), один плагін для обох ігор. Source: текаsourceробочої папки (1_unpack.bat): англійські файли повідомлень — Gates to Infinitymessage\*.bin(884 файли, 55 081 рядок), Super Mystery Dungeon файли пакуmessage_en.binякmessage_en.bin\*.bin(808 файлів, 68 716 рядків), її налагоджувальні копіїmessage_debug_en.bin\*.dbin(808 файлів, 68 716 міток) і скрипти з текстомscript\...\*.lua(рядкові константи Lua 5.1: титри, налагоджувальні написи; 28 файлів, 359 рядків) — блок на файл (сюжет, назви й описи підземель, предметів, прийомів і покемонів уcommon, меню, текст Pelipper і Connection Orb); шрифтиfont\*.dic+*.img(формат редактора шрифтівpmd_font) і картинкиimage_2d\*.img/image_2d.bin\*.img(логотип, меню; формат вікна «Текстури»pmd_img). Майстер розпаковує образ сам (власні читачі Picoripi; для CIA Super Mystery Dungeon потрібен 9.6 seed з теки ключів:seeds\абоseeddb.bin) і записує те саме дерево, що1_unpack.bat. Ціль збірки 3DS mod (LayeredFS) пишеtitles\<title id>\romfs\...: змінений звичайний файл як є, змінений член паку — у власний пак гри. Перегляд: Gates to Infinity малює діалог вступу на верхньому екрані шрифтом гри (FOT-RodinProN-DB_14, рамка y 170..232); Super Mystery Dungeon малює текст оповіді на верхньому екрані шрифтомFot-TskuARdGothic_Std_B_14(масштаб 1.0, без рамки, крок рядка 24). Gates to Infinity позначає кожен рядок ширший за край рамки (ширина 320 px); гра там не переносить рядки. Теги:[CN]рядок по центру,[K]чекати кнопку,[C]нове вікно,[hero]/[partner]/[my_team]імена,[CS:06]…[CR]колір,[M:B05]значки кнопок,[value:02:0003:0001]числа й вставлені назви (лишайте як є); дужка в тексті —[[/]]. Текст може ставати довшим:2_build.batзаново розкладає кожен файл і перепаковує паки. -senran_kagura_burst— Senran Kagura Burst (3DS, EUR). Source:sourceробочої теки: 432 файлиTAMSromfs\scenario\{hanzo,hebijo}\*.bin(3 759 повідомлень будь-якої довжини: сюжетні розділи й розмови;{v02001}— голос,{cff0000ff}…{r}— колір,{b008},{s022}зберігаються як є), рядки, вкомпільовані вexefs\code.bin(2 629 текстів меню, місій, предметів і бою по 200 у блоці; пишуться на місці: текст не може бути довшим за оригінал), п'ять шрифтів.bcfna(cfna, нові літери не додаються) і картинки BCLIM у пакетахromfs\ui\lyt_*.bin(пакет із архівівdarc; стиснутий пакет стискається знову), CTPK галереї й логотипи.2_build.batпише мод Luma (code.bin+romfs). -attack_on_titan_3ds— Attack on Titan: Humanity in Chains (3DS, USA). Source:romfs\_catfiles_lists\system.cf(5 501 рядок UTF-16, пишуться на місці: переклад не може бути довшим за оригінал) і 293 картинки.ctpk; картинки інтерфейсу.rhgі шрифт не відкриваються. -dragon_ball_fusions— Dragon Ball Fusions (3DS, EUR). Source:message\msg_en.jmsg(18 683 рядки будь-якої довжини), дев'ять шрифтів-атласів (jfnt; упакований контурний шрифтdefault01не відкривається) і 2 099 картинок.jtex(jimg) зDOF.cpkта його архівів.jarc;2_build.batпише новийDOF.cpk. -gravity_falls_gemulets— Gravity Falls: Legend of the Gnome Gemulets (3DS, EUR, UbiArt). Source:localisation.loc8(шість мов по 1 542 рядки), два шрифти з таблицею гліфів (ubiart_tfn: нова літера — новий запис таблиці) і 619 картинок.tga.ckd/.png.ckd(ubiart_tex) з пакетів.ipk, які збірка пакує знову. Титри не відкриваються. -rhythm_paradise_megamix— Rhythm Paradise Megamix (3DS, EUR). Source: 18 англійських файлів MSBT в архівах.zlibSARC (5 715 повідомлень; теги названо заpajama.msbp), десять шрифтів BFFNT і 2 318 картинок BFLIM / CTPK / CGFX; збірка пакує змінені члени в.zlibзнову. -default_plugin— Default Plugin Template - Після відкриття відновлюється остання сесія (блок, рядок, undo, більшість фільтрів). Show Unsaved Only (дерево і список рядків) після перезапуску завжди вимкнений (
core/data_store.py). File → Close Projectвивантажує робочий простір. Picoripi при цьому не закривається.
Не ставте Source і Translation на одне й те саме дерево, якщо потрібен чистий оригінал. Не кладіть у репозиторій копірайтні дампи.
3. Меню File
| Команда | Шорткат | Що робить |
|---|---|---|
| New Project… | Ctrl+N | Майстер вище |
| Open Project… | Ctrl+O | Завантажити project.uiproj |
| Recent Projects | Останні робочі простори | |
| Project Manager… | Ctrl+Shift+M | Список доданих проєктів. Див. нижче |
| Close Project | Вивантажити. Неактивне, поки немає проєкту | |
| Import Block… | Додати один файл. Лише режим проєкту (підказка: “only available in Project mode”) | |
| Import Directory… | Додати теку файлів. Те саме обмеження | |
| Save Changes | Ctrl+S | Записати усі незбережені рядки. Без діалога підтвердження |
| Save Changes As… | Скопіювати переклади в нове місце | |
| Reload Original | Перечитати оригінали з диска | |
| Revert Changes File to Original… | Викинути файл перекладу і почати з оригіналу | |
| Export Translations to JSON… | Round-trip перекладів. Неактивне без проєкту | |
| Export Original to JSON… | Дамп рядків оригіналу | |
| Fill Terms from the Glossary… | Перегляд рядків, які перекладає термін глосарію серії; заповнення неперекладених. Fill the other projects of the series пише резервні копії інших проєктів. Див. вікі 8 | |
| Import Translations from JSON… | Завантажити попередній експорт | |
| Reload Tag Mappings from Settings | Знову застосувати аліаси після правок у Settings | |
| Settings… | Ctrl+P | Налаштування |
| Exit | Вихід; пишеться чекпоінт сесії |
Часткове збереження: правий клік по блоку → зберегти лише його. Не використовуйте Revert, якщо не хочете знищити файл перекладу.
Менеджер проєктів
Менеджер проєктів відкривається на старті, якщо жоден проєкт не відкрито. Він показує проєкти, які ви додали. Проєкт додається, коли ви його створюєте, відкриваєте або імпортуєте.
- Додавання: натисніть
+. Оберіть «Новий проєкт» (майстер), «Додати наявний проєкт» (файлproject.uiproj) або «Імпорт проєктів з папки». Файл → Новий проєкт (Ctrl+N) відкриває той самий майстер. - Майстер нового проєкту: оберіть гру (введіть частину назви, щоб знайти її); її назва підставляється в Project name, її можна змінити. Потім додайте файли: гру, її оновлення та DLC, як файли (Add files...) або розпаковані теки (Add folder...). Кожен файл отримує роль (Base game, Update або DLC) і платформу: від плагіна гри, інакше із заголовка самого файлу (ID тайтлу Switch або 3DS відрізняє базу, оновлення і DLC; тека визначає платформу за своїми файлами або за назвою теки в шляху, наприклад
Switch, а гра на одній платформі дає цю платформу; інакше платформа — Не визначено). Назви ролей лишаються англійськими в будь-якій мові інтерфейсу. Список платформ містить платформи плагіна гри або всі платформи, які знає Picoripi, якщо плагін їх не називає. За потреби змініть їх; щоб дати багатьом файлам одну роль, виділіть їхні рядки, оберіть роль біля Apply і натисніть її. Повторюватися може лише DLC. Стовпець Status і червоний текст під списком одразу кажуть, що заважає створити проєкт: два файли з однією роллю, файл, який ця гра не читає (додайте натомість його розпаковану теку), або зашифрований файл без файлу ключів консолі (Add the key file for ... додає його, або додайте розпаковану теку). Next вимкнена, доки список не гаразд. Рядок теки показує три останні частини її шляху. Потім оберіть теку проєкту. Create project одразу показує вікно прогресу, поки файли зіставляються у фоні; коли проєкт відкрито, Менеджер проєктів закривається. Оригінали не копіюються: проєкт посилається на них за шляхом. Щоб використати теку перекладу, яка вже є, увімкніть Використати наявну теку перекладу і оберіть її; Picoripi тоді не створює в ній файлів перекладу. Гра з одним файлом не має теки перекладу, тому для неї опцію відхилено. Якщо грі потрібне розпакування, майстер розпаковує файли в теку проєкту. «Скасувати» зупиняє розпакування і прибирає те, що було записано. Образ гри, який обрана гра не може розпакувати, відхиляється: майстер про це повідомляє і просить спершу розпакувати образ у теку; нічого не створюється. Проєкт, який не вдалося створити або відкрити, видаляється і не зберігається як останній. На старті останній проєкт, що не завантажився або не рухався дві хвилини, забувається, причину показано, і відкривається Менеджер проєктів. Для образу GameCube або Nintendo DS майстер спершу перевіряє, чи є на диску місце (розмір образу плюс 10 %, або 256 МБ, якщо це більше), і зупиняється до запису, якщо місця бракує. Деяким іграм потрібна лише частина розпакованих файлів: тоді проєкт починається з цієї теки (наприклад Twilight Princessfiles/res/Msgus). Metal Gear Solid: The Twin Snakes бере два диски: додайте кожен диск, і майстер призначить йому роль. Picoripi читає образи GameCube (ISO і NKit), ROM Nintendo DS, програми Nintendo 3DS (.3ds,.cia,.cxi, розшифровані або зашифровані), пакети Switch.nspі диски Wii; образи GameCube і Wii у форматах RVZ і WIA читаються як є (для Wii файл ключів не потрібен: формат зберігає розділ розшифрованим), а.xciпотребує спершу NSP. Зашифрованим файлам потрібен файл ключів їхньої консолі:aes_keys.txtдля 3DS (поручboot9, якщо його використовує робоча тека),prod.keysдля Switch абоkeys.binдля Wii. Майстер просить файл ключів консолі один раз і лише тоді, коли плагін гри розпаковує цю консоль; він запам'ятовує лише місце, де файл лежить. Якщо ви скасуєте це вікно, майстер зупиняється і нічого не створює. Жоден плагін гри ще не розпаковує файли Switch або Wii, тож майстер поки не просить ключ Switch чи Wii. Picoripi не перевіряє хеші розшифрованих даних. - Розпаковування: образ диска GameCube (ISO або GCM) чи ROM Nintendo DS (
.nds) розпаковується в текуunpackedусередині теки проєкту. Picoripi розпізнає файл за вмістом. Плагін гри вирішує, які файли залишити. Образи GameCube у форматах RVZ і WIA читаються як сам диск, який вони містять (файл лише читається: його не перетворюють і не записують; перезбудований диск лишається звичайним ISO). Файли RVZ і WIA дисків Wii читаються так само і не потребують ключа. Файли NKit інших видів не читаються: спершу перетворіть їх на звичайний ISO. Гра, якій розпакування не потрібне, наприклад ROM Game Boy Advance, використовує файл як є. - Імпорт: шукає файли
picoripi/project.uiprojу папці. Папки з іменами_…або.…пропускаються. Дублікати й непрочитні проєкти стартують без позначки. Кожна папка серії стає однією папкою менеджера. - Папки та спільні глосарії: створюйте власні папки. Правий клік по проєкту → «Перемістити до папки». Видалення папки переносить її проєкти на верхній рівень. Папка може мати власний спільний глосарій серії (кнопка Груповий глосарій... або правий клік по заголовку папки → Новий спільний глосарій... чи Прив'язати спільний глосарій...). Проєкти у папці автоматично успадковують спільний глосарій на вкладках перекладу, заповнення та серії, тоді як наявні особисті посилання й автоматичне виявлення
_glossaryв батьківських папках залишаються без створення дублікатів. Переміщення проєкту між папками, його вилучення з менеджера або відв'язування чи видалення папки змінює лише прив'язку, успадковану від групи; проєкт, файлу якого немає, пропускається. - Порядок: проєкт, відкритий останнім, завжди зверху. Вибір групування і сортування зберігається.
- Пошук: поле Пошук проєктів над списком фільтрує під час набору. Ctrl+F переносить курсор туди; Esc його очищає. Пошук іде за назвою проєкту, серією, платформою, плагіном, папкою (групою) менеджера, де лежить проєкт, і шляхом до папки; регістр не має значення, українські й латинські літери працюють. Кожне слово має збігатися з одним із цих полів. Групи без збігів ховаються, а лічильники груп показують збіги. Пошук не читає файли.
- Закриття: якщо проєкт не відкрито, закриття Менеджера проєктів (кнопка закриття, Esc або Alt+F4) закриває Picoripi, як «Файл → Вихід». Якщо проєкт відкрито, закриття повертає вас до цього проєкту.
- Вигляд: Список (типовий) показує рядок на проєкт: значок 64 px, назву, платформу, серію, плагін, прогрес (перекладено з рядків, що потребують перекладу, зі смугою), останнє відкриття і прапорці стану. Плитка показує ті самі проєкти як плитки 128 px. Виберіть плитку, щоб побачити її подробиці під сіткою: ті самі, що в розгорнутому рядку списку. Групування діє лише для списку.
- Значки: значок проєкту — це
icon.pngпоруч із йогоproject.uiproj, масштабований до 128 px. Без нього плагін гри може дати зображення; без цього показується кольорова плитка з ініціалами серії. Змінити значок... (меню рядка або «Деталі») копіює обране вами зображення, масштабоване до 256 px. Прибрати значок видаляє лише цей файл. Майстер значка не питає: новий проєкт бере власне зображення гри, якщо Picoripi читає його з базового образу (значок 3DS або банер GameCube; поки не Switch, Wii чи тека). Щоб замінити його, скористайтеся Змінити значок... у рядку. - Сканування і прогрес: сканування читає картки, значки і підрахунки всіх проєктів в окремому процесі, тому вікно лишається чутливим. Спершу воно читає назви всіх проєктів (близько секунди), тож список і пошук одразу мають усі назви. Проєкт без назви у файлі показується під назвою теки гри (теки над
picoripi). Поки перевіряються значки й файли кожного проєкту, смуга показує «Перевірка проєктів: 37 з 191...»; далі над списком показується смуга «Сканування 37 з 191 — назва — ще близько 2 хв». Сховати ховає смугу, сканування триває; Скасувати сканування зупиняє його після проєкту, що рахується; якщо процес не зупиниться за 2 секунди, його завершують. Смуга зникає, коли сканування завершено. Рядки, для яких підрахунку ще немає, показують…. - Кеш: другий запуск одразу показує останні підрахунки і сканує знову лише змінене: проєкт, чий файл проєкту, конфігурація плагіна або файл джерела чи перекладу змінився від останнього підрахунку, рахується знову. Так само рахується знову проєкт після зміни Python-файлів його гри, спільних файлів плагінів або після оновлення Picoripi. Інші проєкти зберігають свої підрахунки. Кеш — це
project_index.jsonіpm_iconsу папці даних; їх видалення лише коштує нового сканування. - Колонки: рядки і відсоток перекладу рахуються у фоні, і для проєктів, які ви не відкривали. Блоки в архівах ще не враховуються.
- Плагін відсутній: проєкт, чий плагін гри не встановлено, має прапорець Плагін відсутній і не рахується. Нічого не видаляється.
- Деталі: розгорніть рядок, щоб побачити шлях, файли гри з їхніми ролями, статистику, список папок з блоками і рядками, файли теки джерела за видами (текст, шрифт, текстура, інше; рахуються у фоновому потоці, коли рядок відкрито вперше, і зберігаються, доки Менеджер не закрито) та те, що потребує уваги (наприклад блоки, які ще не мають файлу перекладу). Два прапорці, Зібрано і Перевірено в грі, ставляться лише тоді, коли ви їх вмикаєте. Деталі також показують глосарії серії, які використовує проєкт (глосарії папок над ним і явне посилання), з кількістю термінів у них, чи глосарій пов’язано або знайдено в теках над ним, і скільки рядків проєкту вже переклала інша гра серії; менеджер їх лише читає.
- Зібрати мод: збирає цілі гри в теку
buildпроєкту. Якщо гра не оголосила жодної цілі, кнопка вимкнена. - Експортувати мод: копіює зібрану ціль в обрану вами теку. Тека має бути порожньою.
- Поділитися проєктом... (кнопка в деталях або меню рядка): пакує проєкт в один
.zipдля іншої людини. У пакеті є тека проєкту, файли перекладу і пов’язані глосарії серії. Оригінальних файлів гри в пакеті немає. Сесії, кеші, резервні копії та текиunpackedіbuildтеж не пакуються. Шлях у файлах проєкту записується відносно його теки (гри, перекладу або проєкту). Шлях поза цими теками (шрифти, референси, образи гри) очищується, тож пакет не містить шляхів вашого комп’ютера. Незбережені в редакторі зміни в пакет не потрапляють: спершу збережіть проєкт. - Імпортувати спільний проєкт... (кнопка
+): вибираєте пакет, теку для проєкту і свої оригінальні файли гри (розпаковану теку гри або файл, як у відправника). Picoripi розпаковує проєкт уpicoripi, переклад уtranslation, глосарії вglossariesвибраної теки, записує ваші шляхи і додає проєкт у менеджер. Ці теки мають бути порожніми. Очищені шляхи вкажіть знову в налаштуваннях проєкту. - Запустити в емуляторі: збирає ціль і запускає емулятор платформи цієї цілі. Команду кожної платформи задайте кнопкою «Емулятор...» (один рядок на платформу). Напишіть
{path}там, де має бути зібраний файл або тека, наприклад"C:\Emu\emu.exe" {path}. Пункт вимкнено, якщо для платформи немає команди. Діалог «Емулятор...» показує рядок для кожної платформи, яку використовує збірка; рядок без назви з'являється лише для збірки без платформи. Збережена раніше спільна команда діє на кожну платформу, доки для неї не задано власний рядок. - Значок гри: проєкт може показувати картинку своєї гри. Це файл
picoripi/icon.pngпоруч ізproject.uiproj(PNG, до 256 пікселів). Без цього файлу картинки немає. Скриптscripts/harvest_project_icons.pyдописує відсутні значки з файлів самої гри; наявнийicon.pngвін не замінює, а без--applyлише друкує таблицю. - Прибрати з менеджера ніколи не видаляє файли проєкту.
Уже розпакована гра: у майстрі нового проєкту на кроці 2 виберіть Додати теку розпакованої гри… замість образу. Виберіть теку з розпакованими текстовими таблицями гри. Для Yo-kai Watch це тека source робочого простору з data/.../*.cfg.bin. RomFS лише з архівами .fa не підходить. Майстер перевіряє теку у фоновому потоці та використовує її на місці. Розпакування та ключі не потрібні. Ця тека окрема від параметра Використати наявну теку перекладу. Використовуйте одну теку джерела. Якщо плагін не підтримує розпакування образу, майстер пояснює обмеження. Якщо ключів немає або вони не підходять, кнопка Додати файл ключів… дозволяє замінити файл і повторити спробу. Вибрані джерела та розташування зберігаються. Відсутня залежність для розшифрування та пошкоджений образ мають окремі повідомлення.
4. Меню Edit
| Команда | Шорткат | Нотатки |
|---|---|---|
| Undo Typing | Ctrl+Z | Редактор і поле Speaker |
| Redo Typing | Ctrl+Y або Ctrl+Shift+Z | |
| Save Translated | Ctrl+T | Знімок поточного перекладу (локальний бекап). Неактивне, поки рядок не вибрано |
| Restore Translated | Ctrl+Shift+T | Повернути той знімок |
| Undo Paste Block | Активне після вставки блоку | |
| Paste Block Text | Ctrl+Shift+V | Вставити цілий блок рядків |
| Find… | Ctrl+F | Показати/сховати панель пошуку. F3 далі, Shift+F3 назад |
| Advanced Search… | Ctrl+H | Пошук/заміна по проєкту |
| Auto-fix Current String | Ctrl+Shift+A | Поточний рядок. Ctrl-клік по кнопці Auto-fix — вибір правил. Шорткат завжди запускає звичайний фікс |
| Rescan All | Ctrl+Shift+R | Примусово: ширини, усі попередження, дерево Blocks, редактори й прев’ю. Коли дерево виглядає застарілим або після зміни шрифтів/тегів/ширин. Та сама кнопка на панелі інструментів. Правий клік по одному блоку — лише той блок |
5. Меню View
| Команда | Шорткат | Нотатки |
|---|---|---|
| Preview | Ctrl+Shift+P | Прапорець. Показує/ховає візуальне прев’ю під Editable |
| Hide Tags | Ctrl+Q | Ховає керівні коди в Original і перекладі |
Той самий перемикач — чекбокс Hide tags над Original.
6. Меню Tools
Це пайплайн локалізації плюс утиліти. Краще Localization Pipeline…, ніж клікати пункти навмання. У майстрі ті самі дії.
| Команда | Шорткат | Роль |
|---|---|---|
| Localization Pipeline… | Кроки по порядку + статус. Тонкий: кожна кнопка запускає ту саму дію, що й меню | |
| Font Editor… | Растрові шрифти в окремому вікні; проєкт лишається відкритим. Відкриває Nintendo .bfn (Twilight Princess, Wind Waker), шрифт повідомлень у ROM N64 Zelda (OoT, MM), атласи .g1t Hyrule Warriors, шрифти .g1n Age of Calamity, .bffnt Switch і Wii U (The Wind Waker HD: big-endian, аркуші з тайлінгом GX2; Paper Mario: Color Splash: двотонові аркуші BC5 — літера сірим, форма під нею в альфі), .brfnt Wii (Skyward Sword HD і Wii: аркуші GX I4) і шрифти 3DS: .bcfnt / .bffnt 3DS (A Link Between Worlds, Tri Force Heroes), Grezzo .qbf (Ocarina of Time 3D) і .gzf (Majora's Mask 3D), а також масштабовані шрифти Switch .bfotf / .bfttf (Tears of the Kingdom, Animal Crossing: ширини зберігаються як ширини гліфів, перемальований гліф — як контур, обведений за його пікселями, CFF або TrueType), 2bpp-шрифти тексту Metal Gear Solid: The Twin Snakes і Metal Gear Solid (PlayStation, font.res) і текстовий шрифт 12x12 Vagrant Story (звичайний і курсив, з ширинами з BATTLE.PRG; два шрифти титрів з ENDING.PRG) і плитковий шрифт GBA для Tingle Tuner у client_u.bin The Wind Waker (кожен лише зі свого проєкту), .nftr з Nintendo DS (Four Swords Anniversary Edition) — їх відкриває Open (проєкт не потрібен; Save пише файл на місце). У шрифті з Unicode-мапою символів (.bffnt, .g1n і шрифти 3DS) літера, введена в колонку символу порожньої клітинки, додається у шрифт як справжній символ (без слота перекладу; символ, який у шрифті вже є, не приймається): намалюйте гліф у вільній клітинці й призначте йому його літеру. Шрифти самої гри, які називає її плагін, є в дереві шрифтів і відкриваються з проєкту (з копії перекладу, щойно вона є); Save пише копію перекладу, а ширини шрифту разом із мапою перекладу — у <проєкт>/font_maps/, звідки їх беруть перевірки ширини. Hyrule Warriors DE бере ширини літер із таблиці у виконуваному файлі гри, а не з атласу: редактор показує цю таблицю (у пікселях атласу), а Save ще й пише її як патчі виконуваного файлу exefs/<build id>.ips у теці перекладу, по одному на версію гри (2_build.bat робочої теки кладе їх у мод). Для Wind Waker є ще шрифти введення імені й системний; Twilight Princess показує свої шрифти тексту й рубі (архіви в res/Fontus). Render System Font to Glyphs бере TTF/OTF через Файл шрифту... (встановлювати не треба) і вміє Потовщення штрихів для дрібних жирних шрифтів; з вирівнюванням за базовою лінією кожну намальовану літеру ставить на базову лінію латиниці самого шрифту (р у ф звисають, як p, д ц щ вирівнюються за верхом); Зсунути гліф (◀ ▲ ▼ ▶ або Ctrl+стрілки) зсуває пікселі виділених гліфів на 1 пкс у їхніх комірках, з відкатом, у всіх форматах. Та сама мова інтерфейсу, що й у решті програми Дві ідентичні копії (той самий формат, розмір клітинки і розкладка кодів) можуть ділити зміни. Редактор запитає один раз; прапорець «Копіювати зміни до: <шрифт>» вмикає пару (типово вимкнено). Збереження копіює власні зміни копії в іншу; найновіша зміна гліфа перемагає. Журнал — font_sync.json у проєкті. Якщо інша копія відкрита з незбереженими змінами, її файл не записується: гліфи чекають, доки її збережуть або відкриють знову; повідомлення про збереження їх рахує. Коли код мапи перекладу не має клітинки в шрифті, відкриття шрифту дає цьому коду порожню клітинку лише в пам'яті й позначає шрифт незбереженим: нічого не записується до Save, а Save пише мапу в проєкт (без проєкту — у теку плагіна користувача, ніколи не в plugins/). |
|
| Textures… | Ctrl+E експорт, Ctrl+I імпорт, Ctrl+O відкрити, F5 перечитати | Текст, намальований у текстурах гри (заставки, написи меню, логотипи), в окремому вікні; проєкт лишається відкритим. Текстури, які називає плагін гри, показано з мініатюрою, файлом гри, піксельним форматом, розміром і статусом (Не почато / Перемальовано / Перевірено в грі, зберігається в <проєкт>/textures/status.json); вибрана — оригінал поруч із перекладом. Експорт PNG… / Експорт усіх… зберігають PNG у теку (типово <проєкт>/textures/png) під сталими назвами з файлу й члена архіву; перемалюйте їх у будь-якому графічному редакторі, тоді Імпорт PNG… (одна текстура; інший розмір змінюється після запитання) або Імпорт з теки… (кожен PNG із назвою, що збігається). Picoripi кодує зображення у власний формат гри (BTI, TPL і текстури моделей BMD/BDL GameCube/Wii, тайли GBA у стиснутій multiboot-програмі, BFLIM/BCLIM, CTPK і CTXB Grezzo (також текстури в моделях CMB і анімаціях CMAB) в архівах ZAR/GAR/LzS 3DS, BFLIM і GX2 (GTX, пакети TMPK) Wii U, BNTX Switch (BC1-BC5, BC7, усі розміри блоків ASTC; також BNTX усередині BFRES моделі), G1T Koei Tecmo, TXTR Retro (Metroid Prime 4), тайли GBA / DS, текстури N64 у ROM, PlayStation TIM і 4/8/16-бітні картинки без заголовка, екрани GIM, спрайти довідки й стиснений титульний екран Vagrant Story, TXTR Retro ігор Metroid Prime для Wii, GIM PSP, пакети картинок Policenauts, PCX Metal Gear Solid і картинки PSB M2, IMGC і G4TX Level-5, текстури BFRES Wii U) і пише копію перекладу, перепаковуючи архіви навколо, тож 2_build.bat робочої теки кладе її в мод; заново кодуються лише змінені блоки. Повернути ставить оригінал назад. Файл → Відкрити файл текстури… відкриває текстуру чи архів текстур напряму (ігри без плагіна, як-от 3DS); тоді цей файл редагується на місці. PNG, експортовані з текстур 3DS BCLIM і BFLIM з прапорцем 0 до цієї зміни, були перевернуті догори дриґом або обрізані; перед редагуванням експортуйте їх знову. Поки ні: текстури моделей BRRES (Wii) |
| Script Markup Studio… | Розмітити вокзру (фаза 0 для MemePalace). Див. 9 | |
| MemePalace Context Builder… | Ctrl+M | Записати розмічений скрипт у пам’ять сюжету |
| Prepare Glossary… | Один автоматичний прохід глосарія | |
| Merge Speakers from Script… | Зіставити імена зі скрипта з голосовими кодами гри. Потрібна capability speaker_attribution |
|
| AI Batch Translation ➔ | Підменю: Translate Story First, Translate Remaining Blocks, Translate All (Story ➔ Semantic) | |
| Inspect Story Context… | Ctrl+I | Таймлайн, спікер, візуальний контекст вибраного рядка |
| MemePalace Database Viewer… | Ctrl+Shift+I | Кімнати, візуальні контексти, граф персонажів |
| Fix All Strings… | Auto-Fix по всьому проєкту зі списком правил | |
| Export Current BMG to JSON… | Лише вибраний BMG. Неактивне, поки BMG-блок не вибрано | |
| Import Current BMG from JSON… | У вибраний блок |
Завантаження шрифтів: редактор одразу показує індикатор під час читання та декодування шрифту проєкту. Кнопка Скасувати завантаження скасовує прийняття результату цього запиту. Під час підготовки таблиці статус показує кількість готових гліфів і загальну кількість. Вікно лишається доступним. Якщо вибрати інший шрифт, редактор прийме лише останній запит. Скасування до отримання нової моделі зберігає попередній шрифт. Скасування частково заповненої таблиці очищує її та вимикає до завантаження іншого шрифту. Після закриття вікна запізнілі результати не змінюють інтерфейс. Заплановані записи завершуються по черзі.
7. Меню Navigation
| Команда | Шорткат |
|---|---|
| Next Block Nav | Alt+Shift+Down |
| Previous Block Nav | Alt+Shift+Up |
| Next Folder Nav | Alt+Shift+Right |
| Previous Folder Nav | Alt+Shift+Left |
Шорткати діють на все вікно. Ctrl+PageUp / Ctrl+PageDown теж переходять на попередній/наступний блок (ui_event_filters.py). Стрілки вгору/вниз біля AI Translate стрибають по рядках з попередженнями (Ctrl+Down / Ctrl+Up). Alt+Down / Alt+Up (і Up/Down у списку Strings) — наступний рядок незалежно від попереджень.
8. Меню Bookmarks
| Команда | Шорткат | Нотатки |
|---|---|---|
| Додати закладку... | Ctrl+B | Поточний рядок активного блоку. Потрібен відкритий проєкт. |
| Очистити всі закладки | Остаточне видалення з цього проєкту |
Меню показує лише закладки відкритого проєкту. Вони зберігаються в .uiproj проєкту (metadata.settings.bookmarks), не в settings.json. Закриття проєкту очищає меню. Якщо в проєкті ще немає списку закладок, записи з його іменем зі старого глобального settings.json копіюються в проєкт один раз.
8a. Меню Language
Language показує кожен locales/<code>.json, у якому вже є переклад. Підпис — поле @language_name у тому файлі. Зміна записує ui_language і просить перезапуск.
Якщо рядка в каталозі немає, показується англійська. Російської в меню немає. Нові каталоги з’являються після tools/i18n-translate/run.bat і перезапуску. Редактор шрифтів теж використовує цю мову.
9. Help
Help — кутова кнопка на панелі меню (не звичайний пункт зліва направо).
| Команда | Шорткат |
|---|---|
| Shortcuts Help | F1 |
Відкриває Keyboard Shortcuts Reference. Модифікатори миші (Ctrl-клік, Shift-клік) описані в tooltip кожної кнопки, не в цій таблиці.
Шорткати з F1:
| Дія | Шорткат |
|---|---|
| Save Project/File | Ctrl+S |
| Hide/Show Tags in Editor | Ctrl+Q |
| AI Chat Window | Ctrl+Shift+C |
| Глосарій… | Ctrl+G |
| Shortcuts Help | F1 |
| Settings | Ctrl+P |
| Undo | Ctrl+Z |
| Redo | Ctrl+Y / Ctrl+Shift+Z |
| Find Text | Ctrl+F |
| Advanced Search | Ctrl+H |
| Find Next | F3 |
| Find Previous | Shift+F3 |
| Paste Block Text | Ctrl+Shift+V |
| Auto-fix Current String | Ctrl+Shift+A |
| Navigate to Next Problem | Ctrl+Down |
| Navigate to Previous Problem | Ctrl+Up |
| Select Next String | Alt+Down / Down (in Preview) |
| Select Previous String | Alt+Up / Up (in Preview) |
| Next Block | Alt+Shift+Down |
| Previous Block | Alt+Shift+Up |
| Next Folder/Category | Alt+Shift+Right |
| Previous Folder/Category | Alt+Shift+Left |
| Next / previous block (extra) | Ctrl+PageDown / Ctrl+PageUp |
10. Тулбар
Зліва направо (toolbar_builder.py):
Save · Undo · Redo · Find · Preview · AI Batch Translation (відкриває вікно вибору конвеєра перекладу) · Open AI Chat (Ctrl+Shift+C) · Font Editor · Rescan All (Ctrl+Shift+R) · Settings · (розпірка) · Run External Script (>_) · Shortcuts Help.
AI Translate і AI Variation на цьому тулбарі немає. Вони над Editable.
Run External Script запускає шлях з Settings → Global → External Tool/Script Path. Збережіть (Ctrl+S) перед збіркою ROM: інструмент читає файли з диска.
AI Chat: у полі чату Ctrl+Enter надсилає; Enter додає новий рядок.
11. Дерево Blocks (ліворуч)
Кнопки заголовка: додати теку (неактивна, поки немає проєкту), розгорнути все, згорнути все. Ctrl+колесо над деревом змінює шрифт дерева.
Show Unsaved Only (над деревом): лише блоки й теки з незбереженими змінами. Лише на сесію; після перезапуску завжди вимкнений.
Тулбар дерева (внизу панелі; кнопки спочатку неактивні):
| Кнопка | Дія |
|---|---|
| + | Додати / імпортувати блок |
| − | Видалити вибраний блок |
| ✎ | Перейменувати |
| ↑ / ↓ | Порядок. Drag-and-drop теж переміщує. Alt+Shift+Up/Down навигує, не рухає |
| ⟳ | Перебудувати Speakers, Chapters і Items з поточних сюжетних даних. Файли перекладу не чіпає |
Глосарій… під деревом відкриває глосарій проєкту (Ctrl+G). Ctrl-клік по терміну в Original відкриває той запис.
Структура та елементи вікна глосарію (Glossary Dialog):
- Ліва панель (Терміни та категорії):
- Вгорі: рядок пошуку для фільтрації термінів у реальному часі.
- Посередині: вкладки категорій (_tab_widget), що групують терміни за темами («Персонажі», «Предмети», «Локації» тощо).
- Внизу: окрема нижня панель із чекбоксом Needs review (_unconfirmed_only_checkbox), який фільтрує таблицю, показуючи лише непідтверджені терміни, не захаращуючи рядок пошуку та не забираючи вертикальний простір деталей.
- Права панель (Деталі терміна):
- Оригінал і переклад пліч-о-пліч: синхронізована сітка QGridLayout з єдиною висотою 26px. Оригінал (тільки для читання, з можливістю виділення та копіювання) обмежено максимальною шириною 280px та оснащено інтерактивною кнопкою Wiki ↗ для швидкого пошуку в лорі гри (через BaseGameRules.get_external_reference_url). Поле перекладу має компактну кнопку підтвердження Confirm.
- Виділений рядок дій: розташований безпосередньо під полем перекладу, надаючи полю введення повну ширину (до 400–550px+). Містить яскраву кнопку Save (Ctrl+S, підсвічується синім #2563eb за наявності незбережених правок), Confirm translation (перехід до наступного непідтвердженого терміна) та Discuss with AI… (відкриває чат із повним контекстом терміна).
- Захист від випадкової втрати незбережених змін: діалогове вікно підтвердження (Save / Discard / Cancel) з'являється при переході на інший рядок, перемиканні вкладок або закритті вікна з незбереженими правками.
- Опис та нотатки: заголовок секції містить чекбокс Profiled via AI зі спливаючою підказкою про статус профілювання мовлення персонажа.
- Згортання панелей: секції «Опис», «Нотатки AI» та «Входження» мають кнопки згортання/розгортання ([▼]/[▶]) для економії вертикального простору екрана.
- Роздільна фільтрація входжень: незалежні чекбокси для текстових згадок (Mentions) та діалогових реплік персонажа (Spoken).
- Відповідність рядків референсу та попередній перегляд входжень: для кожного діалогового входження відображається повне повідомлення оригіналу та повний відповідний референсний запис для цього (block, string) без обрізання оточуючих рядків. Довгий перегляд прокручується вертикально, навіть коли входження лише одне. Входження підсвічується у повному оригіналі, а збіги терміна підсвічуються у рядках референсу зі збереженням усіх переносів рядків. Блок RU: виводиться лише тоді, коли референс явно позначений як російський; інші завантажені мови слугують контекстом для AI-перекладача і не маркуються як RU:.
- Застосування варіантів на місці та DoubleClick: подвійний клік по запропонованому варіанту або натискання «Застосувати вибраний варіант» підставляє переклад у поле редактора та оновлює нотатки на місці без переходу на наступний пункт. Підтвердження терміна та перехід до наступного рядка відбуваються окремо — після явного натискання «Підтвердити переклад». Референсні варіанти зі сторонніх патчів стилізовані окремо (блакитний/курсив) і захищені від випадкового застосування.
- Нижня панель дій: містить Force Retranslate... (виділено помаранчевим кольором #ea580c, автоматично створює бекап glossary.json.bak перед переперекладом через ШІ) та кнопку [☁ Companion Sync...] для синхронізації в 1 клік із Picoripi Companion.
Правий клік (порожнє місце): Create Folder, AI: Translate All Blocks (UA Chronological), Revert All Blocks to Original, Restore All Translations.
Правий клік по файлу: імпорт, зберегти цей блок, rescan, ширини, маркери, restore. Корінь Chapters і теки Act не мають контекстного меню (структура лише для читання).
Рядок стану (низ вікна): шлях Original, шлях Changes, ім’я плагіна, Strings: N | Unbound: N, далі курсор Pos / Line / Width.
12. Strings in block (праворуч зверху)
Клік по рядку одразу прив’язує Original + Editable. Прев’ю BFN з’являється приблизно за кадр. Глосарій, спелчек, теги й попередження наздоганяють після паузи в наборі (~1,5 с). Сам список лише для читання.
| Чекбокс | Ефект |
|---|---|
| Highlight moved | Підсвітити рядки, уже в віртуальній категорії. Схований, поки категорії не застосовні |
| Hide moved | Сховати ті рядки з батьківського вигляду. Так само сховано, поки не треба |
| Hide empty strings | Згорнути підряд порожні рядки в плейсхолдер |
| Hide translated | Сховати вже перекладені |
| Show Overrides Only | Лише рядки з власним шрифтом або шириною |
| Show Unsaved Only | Лише рядки з незбереженими змінами. Після перезапуску завжди вимкнений |
| Show Warnings Only | Лише рядки з вибраними типами попереджень |
| Warnings: X / Y | Які типи попереджень бере фільтр. X = вибрані типи, Y = типи увімкнені в Detection |
Фільтри можна комбінувати. Не лишайте Show Unsaved Only увімкненим і не вважайте файл порожнім — зніміть галочку.
13. Original, вкладки референсу та Editable
Вкладка референсу з’являється лише за наявності непорожнього тексту цією мовою у вибраному рядку.
Yo-kai Watch автоматично знаходить наявні мовні таблиці в теках джерела/референсу та архівах romfs/*.fa робочої теки.
Пошук працює у фоні й не змінює файли гри. Явно заданий шлях референсу має пріоритет.
Локалізація може охоплювати лише частину гри. Фанатський референс з’являється лише для рядків із відповідним текстом.
Візуальний попередній перегляд діалогових вікон Yo-kai Watch відтворює ігровий рендер шрифтів Level-5 XF, розмітку вікон, теги керування ({CR}, {CG}, {CY}, {PAGE}) та контекстну підстановку імені протагоніста ({PNAME} -> Nate / Katie).
Міжплатформне повторне використання перекладів між 3DS та Switch задіює спільну пам'ять серії; неперевірена розмітка вікон Switch позначається як неперевірена для ручного підтвердження та не блокує допустимі повторювані рядки в пакетному перекладі.
Панель джерела (ліворуч)
- Динамічні вкладки референсу: коли шлях до референсного патчу або мультимовного ROM / ISO налаштовано у параметрах проєкту (Settings → Project → File Paths → Reference Translation / ROM Path), панель динамічно генерує вкладки для порівняння (
Original (EN),Russian (RU),German (DE),French (FR),Italian (IT),Spanish (ES)). Образ гри, який плагін спершу розпаковує (RVZ або ISO іншого регіону), читається у фоні в папку проєкту; ця папка й стає шляхом довідки. - Лише читання, виділення тексту та повністю синхронізована прокрутка й курсор між усіма мовними поданнями.
- Max-width: клік по значенню копіює його в поле Max-width перекладу, далі Apply праворуч.
- Hide tags (
Ctrl+Q): перемикає видимість керівних кодів у всіх вкладках оригіналу й перекладу.
Колонка іконок (між панелями)
| Кнопка | Дія |
|---|---|
Стрілка (→) |
Copy active source string — копіює текст із тієї мовної вкладки, яка відкрита на даний момент (Original або референс), безпосередньо в цільовий редактор перекладу |
| Документ+стрілка | Restore translation — останній бекап (Ctrl+Shift+T) |
| S | Inspect story context (Ctrl+I) |
| R | Open in Script Markup Studio — стрибок до місця в розміченому скрипті |
Editable (праворуч)
- Сюди друкуєте.
- Синхронізація вертикального рівня (Y): фільтр подій
HeaderSyncFilterдинамічно обчислюєleft_header.height = right_header.height - tab_bar.height, гарантуючи, що верхній край тексту редакторів з обох сторін починається на абсолютно однаковій вертикальній лінії на будь-яких моніторах і масштабах DPI. - Під ним: візуальне BFN-прев’ю (якщо Preview увімкнений) і панель типу вікна, якщо плагін це вміє.
Не застосовуйте Font / Max-width без Apply. Apply активна лише поки є незастосована зміна.
14. Story Context і контрольні елементи (над Editable)
Організовано в компактну 2-рядкову панель над редактором перекладу:
- Рядок 0: Window: і Chapter: ліворуч; навігація ([↓][↑]), AI Translate, AI Variation та Auto-fix праворуч.
- Рядок 1: Speaker: ліворуч; Font:, Max-width: і Apply праворуч.
| Поле | Поведінка |
|---|---|
| Window: | Тип вікна повідомлення з даних гри. Подвійний клік по підпису відкриває фізичний блок |
| Chapter: | Призначити рядок розділу/сцені Story, зокрема без лінку зі скрипта. Подвійний клік — віртуальний Chapter |
| Speaker: | Редагований комбо з автодоповненням. Enter зберігає ім’я (save_speaker_for_current_string). Клік по пункту списку сам по собі не зберігає. Подвійний клік по підпису — віртуальний Speaker або Item |
| Font: | Перевизначення шрифту для рядка |
| Max-width: | 0 = типово з плагіна. Правий клік: Reset to Plugin Default, Set Width from Original |
| Apply | Зберегти Font і Max-width для цього рядка |
None у Speaker знімає призначення. Порожній BMG-паддинг не потрапляє в Speakers; не вигадуйте спікера для тих слотів.
15. Кнопки дій над Editable
| Кнопка | Клік | Модифікатори |
|---|---|---|
| Стрілки вниз / вгору | Наступний / попередній рядок з проблемою (Ctrl+Down / Ctrl+Up) | Alt+Down/Up = наступний рядок у будь-якому разі; Alt+Shift+Down/Up = наступний блок |
| AI Translate | Перекласти поточний рядок. Якщо є бекап — бере його | Ctrl-клік: редактор промпта + завжди новий запит. Кілька рядків: виділіть у Strings, правий клік |
| AI Variation | Інше формулювання поточного перекладу | Спочатку виділіть фрагмент в Editable — перепише лише його. Ctrl-клік: редактор промпта |
| Auto-fix | Виправити проблеми всіма увімкненими правилами (Ctrl+Shift+A) |
Ctrl-клік: вибір правил. Shift-клік: page-local (текст не перетікає між сторінками). Ctrl+Shift-клік: обидва. Клавіатурний шорткат завжди звичайний фікс |
Якщо вже йде AI-задача, Translate показує AI Busy.
16. Settings (Ctrl+P)
Заголовок вікна Settings. Вкладки:
| Вкладка | Вміст |
|---|---|
| Global | Theme (потрібен перезапуск), Active Game Plugin (перезапуск), розміри шрифтів, шлях зовнішнього скрипта, шлях до Wiimms ISO Tool (wit.exe), крапки пробілів, restore session, редактор промпта перед AI, live preview, сканування попереджень у реальному часі, система глосарія, попередження про розмір архіву, затримка auto-sleep |
| Project | Лише з відкритим проєктом. Підвкладки: File Paths (Directory Mode, Auto-generate translation path, шляхи original/changes/fonts, Reference Translation / ROM Path із меню вибору теки або .iso), Display, Rules, Context Tags, Tag Aliases, Font Map, Detection, Auto-fix (Align sentences to original page layout, Prevent adding empty padding lines during pagination, плюс перемикачі по типах проблем) |
| Spelling | Enable spell checking, мова словника, Manage Dictionaries… |
| AI Translation | Див. 11 |
| AI Glossary | Provider, ключ, Use API key from AI Translation, model, chunk size, Parallel Requests, Retry Delay |
| Companion | Адреса сервера Companion, токен API, перевірка з'єднання, автосинхронізація при відкритті/закритті проєкту (див. 12) |
| Logging | Консоль / файл / ai_traffic.log, шлях логу, категорії подій |
Зміна Theme і плагіна показує діалог, що потрібен перезапуск.
17. Чого не робити в головному вікні
- Не редагуйте Original.
- Не вважайте порожній список Strings багом, поки не зняли Show Unsaved Only і Hide empty strings.
- Не робіть Revert файлу змін, якщо не хочете стерти переклади.
- Не пропускайте Save перед
>_. - Не ставте Parallel Requests вище за кількість Active-акаунтів на дашборді локального проксі.
- Не запускайте глосарій / merge / пакетний переклад без налаштованого провайдера.
- Не трактуйте порожні слоти BMG як «неприв’язаний діалог» — вони лишаються лише у фізичному файлі.