N64Recomp

GoldenEye 007 только что достиг 100% декомпиляции, и это меняет то, что люди могут делать с игрой: моды, которые были невозможны в эмуляторе, нативные порты для ПК с правильной поддержкой широкоэкранного режима и увеличением частоты кадров, а также справочные реализации для будущих проектов обратного инжиниринга N64. Инструменты, которые это сделали возможным, имеют открытый исходный код, и если вы когда-либо хотели заглянуть внутрь игры для N64, вы бы использовали те же инструменты.

Мы протестировали 8 настольных приложений, которые делают возможными рабочие процессы декомпиляции и портирования N64 сегодня. Каждый выбор является свободным, имеет открытый исходный код и активно поддерживается на GitHub.

На что обратить внимание в приложении для декомпиляции N64

Обратный инжиниринг N64 необычен, потому что консоль нацелена на MIPS III, и компиляторы эпохи (IDO, EGCS) оставили специфические следы. Современные инструменты это учитывают.

Таблица быстрого сравнения

Приложение Лучше всего для Платформы Бесплатный план Стартовая цена/мес Оценка
N64Recomp Статическая рекомпиляция в нативный бинарный файл Windows, Linux, macOS Полностью бесплатно Бесплатно Быстро растущее сообщество
splat Разбиение бинарного файла и извлечение активов Windows, Linux, macOS Полностью бесплатно Бесплатно Стандарт в современных N64 декомпиляциях
decomp.me Веб-идентификатор для проверки совпадений Web Полностью бесплатно Бесплатно Широко используемая платформа сообщества
mips_to_c Преобразование ассемблера в C Windows, Linux, macOS Полностью бесплатно Бесплатно Давний инструмент декомпиляции
IDO recomp Рекомпиляция оригинального компилятора IDO Windows, Linux, macOS Полностью бесплатно Бесплатно Включает рабочие процессы, ориентированные на сопоставление
ares Эмулятор N64 с точностью до цикла для тестирования Windows, macOS, Linux Полностью бесплатно Бесплатно Высокоточный эмулятор
GloverN64 Справочный проект портирования N64 Windows, macOS, Linux Полностью бесплатно Бесплатно Проект сообщества
PermuterPy Автоматизированный поиск совпадений через мутацию Windows, Linux, macOS Полностью бесплатно Бесплатно Стандарт в современных декомпиляциях

Приложения

1. N64Recomp – Лучше всего для статической рекомпиляции в нативный бинарный файл

N64Recomp берет код MIPS из N64 ROM и переписывает его в LLVM IR, который затем компилируется в нативный бинарный файл x86 или ARM. Это то, что позволяет проектам, таким как Zelda 64 Recompiled и недавний порт GoldenEye, работать со скоростью сотни кадров в секунду с высокоразрешающей графикой без эмулятора.

Где это отстает: Требует полностью декомпилированной игры для создания хорошо интегрированного портативного приложения. Прямая ROM-рекомпиляция работает для многих игр, но не для всех.

Ценообразование:

Платформы: Windows, Linux, macOS

Загрузить: GitHub

Итоговая линия: Инструмент, ответственный за текущую волну нативных портов N64.

2. splat – Лучше всего для разбиения бинарного файла и извлечения активов

splat берет N64 ROM и создает структурированный макет проекта, который использует каждая современная декомпиляция: файлы ассемблера, разделенные по символам, извлеченные активы (текстуры, музыка, данные уровней) и система сборки, которая снова собирает все в совпадающий ROM. Каждый серьезный проект декомпиляции N64 начинается отсюда.

Где это отстает: Требует конфигурации для каждой игры; ожидайте потратить первую неделю на разработку файла разбиения.

Ценообразование:

Платформы: Windows, Linux, macOS (Python)

Загрузить: GitHub

Итоговая линия: Первый инструмент, который вы устанавливаете, когда начинаете проект декомпиляции N64.

3. decomp.me – Лучше всего для проверки совпадения функции-кандидата C

decomp.me - это веб-IDE для проверки совпадений при декомпиляции. Вставьте целевую функцию ассемблера, напишите кандидат C, нажмите компиляцию и сразу же посмотрите, производит ли компилятор идентичный по байтам вывод. Он поддерживает целевые N64, GameCube, PS2 и DS, и рабочий процесс с общей подушкой делает сотрудничество безболезненным.

Где это отстает: Только веб; нет автономного режима. Ограничено по скорости под большой нагрузкой.

Ценообразование:

Платформы: Web (браузер)

Загрузить: Официальный сайт · GitHub

Итоговая линия: Самый используемый инструмент активными участниками декомпиляции N64.

4. mips_to_c – Лучше всего для преобразования ассемблера MIPS в черновой C

mips_to_c создает читаемый черновик C из функции MIPS. Это не генератор совпадений; вывод - это отправная точка, которую вы затем редактируете и уточняете, пока decomp.me не сообщит о совпадении. Экономит часы за функцию при первом проходе.

Где это отстает: Вывод - это черновик. Прямая компиляция почти никогда не совпадает без редактирования человеком.

Ценообразование:

Платформы: Windows, Linux, macOS (Python)

Загрузить: GitHub

Итоговая линия: Сокращает время первого прохода для любой функции, которая более чем тривиальна.

5. IDO recomp – Лучше всего для воспроизведения оригинального компилятора N64

IDO recomp - это статическая рекомпиляция компилятора IDO компании SGI, того, который Nintendo использовала для большинства своих N64 титулов первой очереди. Запуск оригинального компилятора на современных ОС - это то, что делает идеальное совпадение байтов возможным; без него дизассемблер мог бы производить только приближения оригинала.

Где это отстает: Полезно только если целевая игра была скомпилирована с IDO. Игры GCC/EGCS (выход Rare, включая GoldenEye) требуют различных сборок компилятора.

Ценообразование:

Платформы: Windows, Linux, macOS

Загрузить: GitHub

Итоговая линия: Не дизассемблер сам по себе, но часть, которая делает декомпиляцию детерминированной.

6. ares – Лучше всего для проверки точности цикла N64

ares - это мультисистемный эмулятор с точной эмуляцией N64. Для работы с декомпиляцией эта точность важна: когда перестроенный кандидат производит ROM, который работает на ares идентично оригиналу, у вас есть реальная уверенность в совпадении.

Где это отстает: Более высокие требования к CPU, чем случайные эмуляторы, такие как Project64. Не выбор для чистого игрового процесса.

Ценообразование:

Платформы: Windows, macOS, Linux

Загрузить: Официальный сайт · GitHub

Итоговая линия: Эмулятор качества проверки для проверки перестроений.

7. GloverN64 – Лучший пример проекта для обучения

GloverN64 - это один из растущей библиотеки проектов декомпиляции N64, управляемых сообществом, и его репозиторий достаточно хорошо организован, чтобы служить справочником по тому, как splat, mips_to_c и IDO recomp работают вместе в реальной сборке. Чтение чьего-то другого файла разбиения - самый быстрый способ понять свой.

Где это отстает: Выполняется в процессе; не каждая функция декомпилирована.

Ценообразование:

Платформы: Windows, macOS, Linux

Загрузить: GitHub

Итоговая линия: Лучший справочник для новичка, который устанавливает первый проект декомпиляции N64.

8. PermuterPy – Лучше всего для автоматизации поиска совпадений

PermuterPy мутирует кандидата C кода и перекомпилирует его тысячи раз, чтобы найти варианты, которые производят идентичный по байтам вывод. Когда decomp.me говорит “близко, но не совпадает”, PermuterPy находит точный порядок выражений или скобки, которые требует компилятор.

Где это отстает: Вычислительно дорого; запуск permuter может потреблять CPU ноутбука в течение часов.

Ценообразование:

Платформы: Windows, Linux, macOS (Python)

Загрузить: GitHub

Итоговая линия: Инструмент последней инстанции для упорного функционирования и причина, по которой процентные доли завершения продолжают расти.

Как выбрать правильный

Часто задаваемые вопросы

Что это значит, когда игра “100% декомпилирована”? Каждая функция в бинарном файле игры была переписана на C таким образом, что перекомпилированный вывод совпадает с оригинальным ROM байт за байтом. С этого момента кодовая база может быть свободно модифицирована.

Является ли декомпиляция N64 ROM законной? Обратный инжиниринг для взаимодействия обычно защищен во многих юрисдикциях. Распространение полученного бинарного файла (который все еще содержит активы оригинальной игры) обычно нет. Правовая обработка варьируется в зависимости от страны; сами проекты декомпиляции обычно поставляют только код, ожидая, что пользователь предоставит свой собственный ROM.

Сколько времени занимает проект декомпиляции N64? Многолетние усилия команд волонтеров. Zelda: Ocarina of Time заняла годы; проект GoldenEye 007 длился около шести лет.

Что такое decomp.me и почему это так центрально? decomp.me - это веб-IDE, которая компилирует кандидата C кода и сообщает, совпадает ли вывод целевой функции ассемблера точно. Это заменило много специальных bash скриптов и сделало сотрудничество при проверке совпадений легким.

Могу ли я запустить декомпилированную игру на своем ПК без эмулятора? Да, когда декомпиляция выполнена и порт построен с N64Recomp или похожей структурой. Zelda 64 Recompiled и порт GoldenEye - текущие примеры.

Нужно ли мне знать ассемблер MIPS, чтобы внести свой вклад? Это помогает огромно. mips_to_c и decomp.me снижают планку, но даже базовое понимание соглашений регистров и моделей вызовов необходимо для прогресса на реальной функции.