Persona: Project Philemon

Persona: Project Philemon is a native Windows static recompilation of Shin Megami Tensei: Persona for PSP with hi-res 3D and sound support.

README

Persona: Project Philemon

A native Windows static recompilation of Shin Megami Tensei: Persona (PSP, US, ULUS10432), built on the PSPRecomp framework. It runs the game as a normal Windows program with a Direct3D 11 renderer, with no emulator or JIT.

No game data is included. You supply your own dump of the game from a disc you own; the tools in this repository turn it into a native build on your machine.

What works: sound and movies, 3D dungeons, battles, the world map, saving and loading (multiple slots), hi-res 3D (up to 8x internal resolution), hi-res 2D, PPSSPP-format texture packs, Xbox controller support, and an optional EXP/yen multiplier. Persona 1 is playable from start to finish. The Snow Queen route has been completed through the credits. SEBEC route, level-ups at the 4x multiplier and performance in the largest 3D areas are still being tested. Persona 2: Innocent Sin is in development and not yet released.

Get started: read persona1/README.md for the step-by-step build, where your ISO and any texture pack go, and the controls. The play folder is Persona_Project_Philemon/.

Not affiliated with or endorsed by Atlus or Sega. Persona and Shin Megami Tensei are their trademarks.


About the underlying framework

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). The Persona 1 profile is described in persona1/README.md.

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

  • CMake 3.20 or newer
  • A C++20 compiler
  • Visual Studio 2022 for the current Windows/DX12 VCS build

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.