Найти в Дзене
avencores.

PS2Recomp: Статический рекомпилятор PlayStation 2 для создания нативных портов на ПК

PS2Recomp — это экспериментальный инструмент, предназначенный для статической рекомпиляции бинарных файлов PlayStation 2 (ELF) в исходный код C++. Полученный код может быть скомпилирован для работы на любой современной платформе, что позволяет запускать игры для PS2 нативно, минуя традиционную эмуляцию. * Трансляция инструкций MIPS R5900: Преобразует машинный код процессора Emotion Engine в эквивалентные операции C++. * Поддержка расширений мультимедиа (MMI): Обработка специфических 128-битных инструкций PlayStation 2. * Работа с VU0: Поддержка векторного процессора Vector Unit 0 в режиме макрокоманд. * Анализ оверлеев и релокаций: Корректная обработка динамически загружаемых частей кода игры. * Гибкая конфигурация: Использование файлов формата TOML для настройки входных данных, путей вывода и параметров патчинга. * Стабинг функций: Возможность пропускать или заменять определенные функции (stubbing) для упрощения процесса портирования. * Встроенный рантайм: Проект включает библиотеку p
Оглавление

PS2Recomp — это экспериментальный инструмент, предназначенный для статической рекомпиляции бинарных файлов PlayStation 2 (ELF) в исходный код C++. Полученный код может быть скомпилирован для работы на любой современной платформе, что позволяет запускать игры для PS2 нативно, минуя традиционную эмуляцию.

Основные возможности

* Трансляция инструкций MIPS R5900: Преобразует машинный код процессора Emotion Engine в эквивалентные операции C++.

* Поддержка расширений мультимедиа (MMI): Обработка специфических 128-битных инструкций PlayStation 2.

* Работа с VU0: Поддержка векторного процессора Vector Unit 0 в режиме макрокоманд.

* Анализ оверлеев и релокаций: Корректная обработка динамически загружаемых частей кода игры.

* Гибкая конфигурация: Использование файлов формата TOML для настройки входных данных, путей вывода и параметров патчинга.

* Стабинг функций: Возможность пропускать или заменять определенные функции (stubbing) для упрощения процесса портирования.

* Встроенный рантайм: Проект включает библиотеку ps2xRuntime, предоставляющую базовые механизмы исполнения рекомпилированного кода.

Преимущества

* Нативная производительность: Игры работают как обычные приложения для ПК, что исключает накладные расходы, характерные для эмуляторов.

* Современные улучшения: Возможность внедрения неограниченной частоты кадров, поддержки ультрашироких мониторов и графических модов на уровне движка.

* Кроссплатформенность: Сгенерированный C++ код можно адаптировать под Windows, Linux, macOS и другие системы.

* Отсутствие JIT-компиляции: Весь код переводится заранее (Ahead-of-Time), что устраняет «заикания» (stuttering) во время игры.

Технические требования

* CMake версии 3.20 или выше.

* Компилятор с поддержкой стандарта C++20 (протестировано на MSVC).

* Процессор с поддержкой инструкций SSE4/AVX для корректной работы 128-битных операций.

Текущие ограничения

* Проект находится на стадии эксперимента и может работать нестабильно.

* Ограниченная поддержка микрокода VU1.

* Требуется внешняя реализация для эмуляции Graphics Synthesizer (GS) и других аппаратных компонентов консоли.

Скачать с GitHub

⬇️Поддержать автора⬇️

✅SBER: 2202 2050 1464 4675