PSPRecomp README

The project's README from github.com/jessicanataliagta/PSPRecomp. As one markdown file: README.md.

PSPRecomp

PSPRecomp is a static recompilation framework for PSP software. It reads an Allegrex/MIPS executable, analyzes guest code, emits C++ translation units, and runs them through a native host runtime instead of shipping a PSP interpreter or JIT.

The repository is split between a reusable framework and game-specific profiles. The first working profile is GTA: Vice City Stories (profiles/vcs).

Repository layout

include/psprecomp/   Public runtime and Allegrex interfaces
src/                 ELF/PRX loading, decoder, memory, runtime and support code
tools/               Generic analyzer, recompiler and reverse-engineering helpers
tests/               Framework regression tests
configs/             Generic examples and PSP NID data
profiles/            Game-specific hosts, generated code, configuration and tests
  vcs/               GTA: Vice City Stories profile

Game-specific addresses, HLE behavior, native fast paths, renderer integration and generated AOT code belong under a profile. The framework should remain usable without any profile selected.

Requirements

Build the framework only

cmake -S . -B out/framework -DPSPRECOMP_PROFILE=""
cmake --build out/framework --config Release
ctest --test-dir out/framework -C Release --output-on-failure

This builds psprecomp_core, psp_analyze, psp_recomp, dump_function and the framework tests.

Build a profile

Profiles are selected with PSPRECOMP_PROFILE:

cmake -S . -B out/vcs -DPSPRECOMP_PROFILE=vcs
cmake --build out/vcs --config Release

Windows users working on the VCS profile can use the maintained scripts in profiles/vcs/scripts.

Create another profile

See docs/PROFILE_GUIDE.md. A new title normally provides its own generated corpus, HLE/profile host, configuration, tests and optional native fast paths without modifying the framework for game-specific addresses.

Game files

No commercial game executable or asset is included. PSPRecomp does not ship an EBOOT decryption implementation. Profiles expect files obtained from the user's own copy in the format documented by that profile.

Source provenance

See docs/SOURCE_PROVENANCE.md for the project rules around independently written code, profile boundaries, decryption and third-party source.

Third-party code

The framework is MIT licensed. Individual profiles may include separately licensed dependencies or assets; their notices stay beside those files. The VCS profile lists its bundled dependencies in profiles/vcs/THIRD_PARTY.md.

License

PSPRecomp framework code is distributed under the MIT License. See LICENSE.

PSPRecomp (jessicanataliagta/PSPRecomp)

Searching Database…

Что это?Это PSPRecomp — фреймворк статической рекомпиляции для софта PSP (PlayStation Portable). Он читает исполняемый файл Allegrex/MIPS, анализирует гостевой код и выдаёт единицы трансляции C++, которые работают на нативном рантайме хоста, вместо интерпретатора или JIT для PSP.
Это эмулятор или компиляторный тулчейн?Это не традиционный эмулятор — он заранее статически переводит MIPS-код PSP в нативный исходник на C++, который затем компилируется в нативный бинарник, так что интерпретатор или JIT на этапе выполнения вообще не участвуют.
Как его собрать?Установите CMake 3.20+ и компилятор C++20, затем соберите фреймворк — на выходе будут psprecomp_core, pspanalyze, psprecomp, dumpfunction и тесты фреймворка; для сборки конкретной игры выберите профиль через PSPRECOMP_PROFILE (у профиля VCS есть поддерживаемые скрипты для Windows в profiles/vcs/scripts).
Какие инструменты нужны перед сборкой?Нужны CMake 3.20 или новее и компилятор C++20; для текущей сборки профиля VCS под Windows/DX12 также нужен Visual Studio 2022.
Можно просто скачать игру и сразу запустить?Нет — PSPRecomp не содержит исполняемых файлов коммерческих игр, ассетов или реализации расшифровки EBOOT; каждый профиль предполагает, что вы сами предоставите нужные файлы из собственной копии игры, в формате, который описан в документации профиля.
Какие игры он сейчас реально поддерживает?Пока существует только один профиль: Grand Theft Auto - Vice City Stories (profiles/vcs). Сам фреймворк работает автономно, без какого-либо профиля, и рассчитан на расширение новыми игровыми профилями.
Почему статическая рекомпиляция, а не эмуляция или JIT?Перевод MIPS-кода PSP прямо в нативный C++ заранее избавляет от накладных расходов интерпретатора или JIT на этапе выполнения, позволяя переведённой игре работать как обычному скомпилированному нативному коду.
Что на самом деле содержит игровой профиль?Профиль хранит специфичные для игры адреса памяти, поведение HLE (эмуляции высокого уровня), нативные быстрые пути, интеграцию с рендерером и сгенерированный заранее C++ код для этой игры, отделённый от общего фреймворка.
Как добавить поддержку новой игры?Вы создаёте новый профиль по docs/PROFILE_GUIDE.md, предоставляя собственный сгенерированный корпус этой игры, HLE/хост профиля, конфигурацию и тесты, не трогая код общего фреймворка.
Есть ли руководство по юридическим и исходным границам для профилей?docs/SOURCE_PROVENANCE.md излагает правила проекта касательно независимо написанного кода, границ профилей, расшифровки и включения сторонних исходников.
Size
66.3 MB
Stars
231
Updated
CommitAug 14
Age
2mo
Commits · 90 Days