Legend of Mana для PS1 отримала matching decomp для обох релізів, NA і JP
Новий matching decompilation Legend of Mana для PS1 відновлює версії NTSC-U і NTSC-J до оригінального MIPS-коду. Розповідаємо, що це дає.
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 стоять як майбутнє.
Як спробувати
- Клонуйте репозиторій із сабмодулями:
git clone --recursive https://github.com/celophi/lom-decomp.git - Скопіюйте SLUS_010.13 і папку BIN у
disc/us/, потім перевірте черезsha1sum disc/us/SLUS_010.13. - Зберіть чотири історичні образи компіляторів із сабмодуля old-gcc, як написано в README.
- Зберіть dev-контейнер:
docker build -t lom-dev -f dockerfiles/dev.dockerfile . - Всередині контейнера запустіть
make splat, потімmake, потімmake verify-bins.
Моя думка: matching decomp - це повільний і нудний фундамент. Recomp-проєкти на кшталт Zelda64Recomp рухаються швидше, але вони не дають читабельного source, який відбудовує оригінальний диск побайтово. Коли цей проєкт завершить очищення, питання в тому, чи піде за ним модинг. Саме за цим я й буду стежити.

