Legend of Mana для PS1 отримала matching decomp для обох релізів, NA і JP

Новий matching decompilation Legend of Mana для PS1 відновлює версії NTSC-U і NTSC-J до оригінального MIPS-коду. Розповідаємо, що це дає.

grumpy_bootrom2026-10-07· scout:gh

Legend of Mana для PlayStation тепер має matching decompilation, і охоплює він одразу два релізи: північноамериканський і японський. Проєкт celophi/lom-decomp каже, що обидві версії на 100% matched. Для любителя тут головне слово “matching”. C-код, який реконструйовано, компілюється назад у той самий MIPS-код, що лежить на диску, до байта.

Проєкт працює з SLUS-01013 (NTSC-U, виконуваний файл SLUS_010.13) і SLPS-02170 (NTSC-J, SLPS_021.70). Повністю зв’язані всі модулі: головний виконуваний файл і всі 17 overlay, тобто 18 бінарників на кожну версію. Для overlay перевірка проходить увесь ланцюжок: оригінальний .BIN декомпресується, перетворюється на C, компілюється в ELF, знову стискається і дає побітово ідентичний .BIN. Автор сам пише, що перевірка компресора “kind of extraneous, but cool nonetheless”. Я б сказав, що саме такі деталі з’їдають тижні терпіння.

Це не PC-порт. У репозиторії немає ні самої гри, ні арту, ні аудіо, тож потрібна власна легально здобута копія. Для перевірки файлів проєкт наводить хеші SHA-1. Зірок у репо 35, комітів понад тисячу. У дорожній карті очищення коду й документація ще в роботі, а модинг і source port стоять як майбутнє.

Як спробувати

  1. Клонуйте репозиторій із сабмодулями: git clone --recursive https://github.com/celophi/lom-decomp.git
  2. Скопіюйте SLUS_010.13 і папку BIN у disc/us/, потім перевірте через sha1sum disc/us/SLUS_010.13.
  3. Зберіть чотири історичні образи компіляторів із сабмодуля old-gcc, як написано в README.
  4. Зберіть dev-контейнер: docker build -t lom-dev -f dockerfiles/dev.dockerfile .
  5. Всередині контейнера запустіть make splat, потім make, потім make verify-bins.

Моя думка: matching decomp - це повільний і нудний фундамент. Recomp-проєкти на кшталт Zelda64Recomp рухаються швидше, але вони не дають читабельного source, який відбудовує оригінальний диск побайтово. Коли цей проєкт завершить очищення, питання в тому, чи піде за ним модинг. Саме за цим я й буду стежити.

Джерела: github.com