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++ 翻译单元,而不使用 PSP 解释器或 JIT。
这是模拟器还是编译器工具链?它不是传统模拟器——它把 PSP MIPS 代码提前静态翻译为原生 C++ 源码,再编译成原生二进制,因此完全不涉及运行时解释器或 JIT。
怎么构建它?安装 CMake 3.20+ 和 C++20 编译器,然后构建该框架,会生成 psprecomp_core、pspanalyze、psprecomp、dumpfunction 和框架测试;要构建特定游戏,需用 PSPRECOMP_PROFILE 选择一个配置(VCS 配置在 profiles/vcs/scripts 下维护了 Windows 脚本)。
构建之前需要哪些工具?你需要 CMake 3.20 或更新版本和 C++20 编译器;构建当前的 Windows/DX12 VCS 配置还需要 Visual Studio 2022。
我能直接下载一个游戏马上运行吗?不能——PSPRecomp 不附带任何商业游戏的可执行文件、资源或 EBOOT 解密实现;每个配置都要求你按照该配置所规定的格式,从自己拥有的游戏副本中提供相关文件。
它目前实际支持哪些游戏?目前只有一个配置:Grand Theft Auto - Vice City Stories(profiles/vcs)。框架本身可以在没有任何配置的情况下独立工作,并旨在通过新的游戏配置进行扩展。
为什么选择静态重编译而不是模拟或 JIT?把 PSP 的 MIPS 代码提前直接翻译成原生 C++,可以避免解释器或 JIT 的运行时开销,让翻译后的游戏作为普通的编译型原生代码运行。
游戏配置文件里实际包含什么?配置包含特定游戏的内存地址、HLE(高级模拟)行为、原生快速路径、渲染器集成,以及为该游戏生成的提前编译的 C++ 代码,并与共享框架分开保存。
怎么为新游戏添加支持?按照 docs/PROFILE_GUIDE.md 创建一个新配置,提供该游戏自己的生成语料、HLE/配置宿主、配置和测试,而不修改共享框架代码。
关于配置的法律/源码边界有指引吗?docs/SOURCE_PROVENANCE.md 规定了项目在独立编写的代码、配置边界、解密以及引入第三方源码方面的规则。
Size
66.3 MB
Stars
230
Updated
CommitAug 14
Age
2mo
Commits · 90 Days