mirror of
https://github.com/jessicanataliagta/PSPRecomp
synced 2026-09-26 08:41:08 -04:00
37e5469cbd
initial release
67 lines
2.8 KiB
Markdown
67 lines
2.8 KiB
Markdown
# 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
|
|
|
|
```text
|
|
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
|
|
|
|
- CMake 3.20 or newer
|
|
- A C++20 compiler
|
|
- Visual Studio 2022 for the current Windows/DX12 VCS build
|
|
|
|
## Build the framework only
|
|
|
|
```bash
|
|
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`:
|
|
|
|
```bash
|
|
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`](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`](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`](LICENSE).
|