Sonic Unleashed, Majora's Mask, Gran Turismo 4 и Demon's Souls теперь запускаются на ПК как обычные программы, без эмулятора, и издатели к этому руки не прикладывали. За всеми стоит одна идея: взять машинный код игры с вашего диска или картриджа, один раз перевести его в C или C++ и собрать из этого обычный исполняемый файл. Это называется статической рекомпиляцией. Ниже разбираем по шагам, как она работает, по документации самих инструментов: N64Recomp, XenonRecomp, ReXGlue, PS2Recomp, ps3recomp и других. Заодно станет понятно, почему для каждой консоли нужен свой рекомпилятор, откуда берётся графика и чего рекомпиляция не умеет.
Эмулятор, рекомпилятор, декомпиляция: три способа запустить старую игру

Эмулятор изображает консоль целиком. Пока вы играете, он читает инструкции игры для чужого процессора и переводит их на лету, по одной или блоками через JIT-компилятор, а заодно подражает графическому и звуковому чипу и системным программам. Поэтому один эмулятор запускает сотни игр и поэтому ему нужен компьютер намного мощнее консоли, которую он повторяет.
Статический рекомпилятор делает перевод один раз, ещё до игры. В документации N64Recomp это описано просто: инструмент делит программу на функции и каждую по отдельности превращает в функцию на C. Потом обычный компилятор C или C++ собирает из этого кода программу. Во время игры переводить уже нечего, и вся мощность компьютера уходит на саму игру.
Третий путь, декомпиляция. Люди вручную, функция за функцией, восстанавливают читаемый исходный код игры, пока он не соберётся обратно ровно в исходный файл. У Super Mario 64 и Ocarina of Time на это ушли годы, зато результат можно менять как угодно. Рекомпиляцию сделать гораздо быстрее, поэтому в README Zelda64Recomp отдельно подчёркнуто, что порт не основан на исходном коде из декомпиляции. На деле они помогают друг другу: Majora's Mask берёт заголовки и часть функций из проекта декомпиляции, чтобы добавлять улучшения.
Шесть шагов от диска до .exe

1. Исполняемый файл. Всё начинается с файла программы из вашей копии игры: ROM .z64 у N64, default.xex у Xbox 360, файл ELF у PS2, default.xbe у первого Xbox, EBOOT у PS3. На PS3 этот файл зашифрован, поэтому его сначала расшифровывают, обычно через RPCS3. Ни один настоящий проект этот файл не раздаёт: он берётся только из вашей копии, и многие проекты проверяют его контрольную сумму.
2. Поиск функций. Для машины код это один длинный поток байтов, и рекомпилятор должен найти, где начинается и кончается каждая функция. N64Recomp пока требует файл ELF с символами, и проще всего получить его из дизассемблированной или декомпилированной игры. На Xbox 360 анализатор XenonRecomp читает в исполняемом файле раздел .pdata, где записаны границы большинства функций, а остальные находит по вызовам. Для PS2 авторы PS2Recomp советуют открыть игру в Ghidra и выгрузить список функций их скриптом.
3. Перевод инструкций. Эта часть нарочно сделана буквальной. В N64Recomp инструкция MIPS addiu $r4, $r4, 0x20 превращается в строку на C ctx->r4 = ADD32(ctx->r4, 0X20);, и PS2Recomp приводит тот же пример для процессора R5900 в PS2. Регистры консоли лежат в структуре "контекста", которая передаётся в каждую функцию, инструкция вызова становится обычным вызовом функции, а память консоли становится куском оперативной памяти ПК. Авторы XenonRecomp прямо пишут, что такой код человеку читать трудно, и это нормально: его читает компилятор.
4. Трудные места. Не всё переводится строка в строку. Оператор switch в оригинальной игре часто компилируется в таблицу переходов, где адрес вычисляется во время игры; рекомпиляторы узнают такие шаблоны и превращают их обратно в настоящие switch. Вызовы по указателю, виртуальные функции в играх на C++, становятся поиском в таблице уже переведённых функций. Xbox 360 и PS3 хранят числа в обратном порядке байтов (big-endian), не так, как ПК, поэтому каждое чтение и запись в память переворачивает байты. У процессоров MIPS есть слот задержки: инструкция после перехода всё равно выполняется, и N64Recomp решает это дублированием инструкций. Что-то пока не поддерживается вовсе: XenonRecomp, например, не умеет исключения.
5. Среда исполнения. Переведённый код всё ещё ждёт вокруг себя консоль: системные вызовы, потоки, файловую систему, геймпад, звуковой и графический чип. Всё это даёт библиотека среды исполнения. В README XenonRecomp прямо предупреждают, что среды в комплекте нет и заставить игру работать должен сам автор порта. Для PS3 ps3recomp несёт собственную реализацию ядра LV2 с более чем 300 системными вызовами и больше 100 системных библиотек, от cellAudio до cellSaveData.
6. Сборка. Clang, GCC или MSVC собирают сгенерированный код вместе со средой в обычную программу для Windows, Linux или macOS. Раз результат написан на C или C++, его можно собрать и под ARM, поэтому некоторые рекомпиляции работают даже на телефонах с Android и на Mac с Apple Silicon. Многие проекты отдают этот шаг вам: установщик скачивает инструменты сборки и компилирует игру с вашей копии, так что в самой загрузке кода игры нет.
Графика: на неё уходит больше всего работы

Перевести код процессора это только полпорта. Консольные игры общаются со своим графическим чипом напрямую, а на ПК такого чипа нет, поэтому каждой рекомпиляции нужен рендер. Подходов два.
Первый: переводить графические команды консоли для современного API и держаться ближе к оригиналу. Majora's Mask использует для этого RT64, и в README сказано, что эффекты рисуются ровно так, как на N64, а сверху RT64 добавляет любую частоту кадров, широкий экран и ультраширокие мониторы. Логика игры при этом идёт с исходной скоростью: смена частоты кадров на игровой процесс не влияет. Рекомпиляции с PS2, например Gran Turismo 4, Killzone и Urban Reign, берут графическую часть эмулятора PCSX2, так что эмуляция там не исчезла, а переехала на сторону видеокарты.
Второй: написать новый рендер под конкретную игру. Для Sonic Unleashed авторы XenonRecomp сделали ещё и XenosRecomp, который переводит шейдеры Xbox 360 в HLSL, и с нуля написали рендер, отправляющий вызовы отрисовки игры в Direct3D 12 или Vulkan. Раз графический чип эмулировать не нужно, они пропустили причуды железа, лишние для ПК, и встроили компиляцию шейдеров в загрузку ресурсов. Новые объекты появляются без фризов, знакомых по эмуляторам. В README это прямо называют улучшением, которое с эмулятором было бы невозможно.
У каждой консоли своя головоломка

Рекомпилятор привязан к процессору и железу консоли, поэтому у каждой платформы свой инструмент, и сложность очень разная.
| Консоль | Процессор | Главный инструмент | Что труднее всего |
|---|---|---|---|
| PS1 | MIPS R3000A | RecompOne | окружение железа; код переводится в C# |
| Nintendo 64 | MIPS R4300 | N64Recomp, N64ModernRuntime, RT64 | оверлеи, которые грузятся по разным адресам, микрокод RSP |
| PS2 | MIPS R5900 плюс VU0, VU1 и IOP | PS2Recomp | микропрограммы векторных блоков, графический чип GS, второй процессор IOP |
| Первый Xbox | x86, Pentium III | xboxrecomp | слой Direct3D 8 и графический чип NV2A |
| GameCube, Wii | PowerPC Gekko и Broadway | NWiiRecomp | графический конвейер GX, тут решён собственным растеризатором |
| Xbox 360 | PowerPC Xenon, три ядра | XenonRecomp, ReXGlue | обратный порядок байтов, векторы VMX, шейдеры Xenos, таблицы переходов |
| PS3 | Cell: один PPU и шесть SPU | ps3recomp | программы SPU с 256 КБ своей памяти и DMA, ядро LV2, зашифрованный EBOOT |
Самый трудный случай PS3. Кроме главного ядра PowerPC, в Cell есть шесть сопроцессоров SPU, у каждого свой набор инструкций, свои 256 КБ памяти и данные, которые ходят через DMA. ps3recomp переводит программы SPU отдельно: локальная память каждого SPU становится массивом, передачи DMA становятся копированием памяти, а каналы связи очередями сообщений между потоками. Первый Xbox наоборот: его процессор того же семейства x86, что и в ПК, и авторы xboxrecomp называют свой набор первым публичным статическим рекомпилятором для этой консоли.
PS4 стоит особняком. Её код x86-64 может работать на процессоре ПК почти как есть, поэтому порты PS4 вроде Bloodborne или God of War III вообще не переводят код: они заменяют системные библиотеки и отправляют графику в Vulkan через видеоядро shadPS4. Подробнее в нашем списке портов PS4.
Почему в 2026 году портов стало так много

Мы посчитали репозитории на GitHub со словом "recomp" в названии по месяцу создания. В октябре 2025 года их появилось 37, в марте 2026-го уже 111, в августе 596, а в октябре 2026 года 1644, больше, чем за весь 2024 и 2025 год вместе (681). Не каждый из них порт игры: в счёт попадают и инструменты, форки, тесты. Но кривая хорошо показывает, когда началась волна: летом 2026 года.
Причин три. Первая, готовые шаблоны: для N64 большинство портов собрано на шаблоне Zelda64Recomp, для Xbox 360 на ReXGlue, который, по его README, вырос из эмулятора Xenia, и новый автор начинает с работающего каркаса, а не с чистого листа. Вторая, инструменты учились друг у друга: XenonRecomp сделан под прямым влиянием N64Recomp, а ps3recomp называет своими родственниками N64Recomp, Unleashed Recompiled, PS2Recomp и ReXGlue. Третья, ИИ-помощники. Многие авторы пишут в README, что делали порт с Claude, Codex или другими моделями, и работа по поиску тысяч функций, недостающих инструкций и системных вызовов сжалась с месяцев до недель.
У последнего пункта есть обратная сторона. Проекты появляются за день и так же быстро бросаются, некоторые README обещают больше, чем умеет сборка, а рядом с настоящими репозиториями всплывают подделки под чужим именем. Мы проверяем каждый проект по README и списку релизов, прежде чем внести его в наш список рекомпиляций.
Что даёт рекомпиляция и чего она не умеет

- Скорость. Во время игры ничего не переводится, поэтому рекомпиляции нужно гораздо меньше процессора, чем эмулятору. В Unleashed Recompiled дополнительные оптимизации уменьшили исполняемый файл примерно на 20 МБ и сократили время кадра на несколько миллисекунд.
- Возможности ПК. Разрешение, частота кадров, широкий экран, мышь, DLSS или FSR добавляются в среде и рендере, а не прикручиваются поверх эмулятора.
- Моды. Любую переведённую функцию можно заменить своей: XenonRecomp делает функции удобными для перехвата, а N64Recomp позволяет подставить исправленные версии функций вместо оригинальных при сборке.
- Одна игра, одна версия. Рекомпиляция не эмулятор. Majora's Mask принимает только американский ROM для N64, а на вопрос, как выбрать другой ROM, README отвечает коротко: никак.
- Ошибки молодого проекта. Ломается всё, чего авторы не предусмотрели: непереведённая инструкция, недостающий системный вызов, эффект, которого не знает рендер. Поэтому большинство рекомпиляций 2026 года ещё помечены как альфа или бета.
Напоследок о законности. В нормальной рекомпиляции нет ни текстур, ни звуков, ни уровней: она читает их из вашей копии. С самим кодом всё зависит от того, как проект распространяется. Если установщик собирает игру на вашем ПК, в загрузке только инструменты. Если в релизе готовый .exe, внутри лежит переведённый код игры, и несколько авторов честно пишут об этом в README. Мы всегда ссылаемся только на репозитории, никогда на файлы игр, и в каждом нашем списке указано, что нужно иметь, чтобы играть.
Источники
README проектов N64Recomp, Zelda64Recomp, XenonRecomp, Unleashed Recompiled, ReXGlue, PS2Recomp, ps3recomp, xboxrecomp, NWiiRecomp и RecompOne, прочитаны 2 ноября 2026 года. Число репозиториев: поиск GitHub API по запросу "recomp in:name" с датой создания по месяцам, 2 ноября 2026 года. Схемы и график FramesGames. Кадры: Microsoft Store.

