# Daxter Recompiled An experimental, unofficial native macOS and Windows port of *Daxter* for PSP, built with [psprism](https://github.com/anthonyhfm/psprism). This repository contains only an open-source project skeleton, build integration, and original patches. It does not contain the game, translated game code, or game assets. > [!IMPORTANT] > You must provide your own legally obtained, matching copy of the game. The > repository cannot be built or used without it. ## Status - Native platforms: macOS and Windows x86-64 - Release stage: experimental alpha - Supported game ID: `UCES00044` (European release) - Linux: not currently supported - PSP/PPSSPP targets: available for development and translation validation Expect compatibility issues while psprism and its Refract runtime are still under active development. ## Quick start Clone the repository and its pinned psprism toolchain: ```sh git clone --recurse-submodules https://github.com/anthonyhfm/daxter-recompiled.git cd daxter-recompiled ``` If you already cloned without submodules: ```sh git submodule update --init --recursive ``` Install Apple Command Line Tools, FFmpeg, and Qt 6. Homebrew users can install the runtime dependencies with: ```sh brew install ffmpeg qtbase ``` A compatible local PPSSPP installation is also required to decrypt the PSP executable during hydration. Place the matching ISO at `original/disc.iso`, then build and run: ```sh make macos-run ``` Alternatively, keep the ISO elsewhere: ```sh make macos-run GAME_INPUT=/absolute/path/to/daxter.iso ``` The first build compiles the pinned psprism toolchain, validates the complete ISO and executable SHA-256 values, extracts the private assets, and statically recompiles the game locally. Later builds reuse a local hydration cache. No ISO, decrypted executable, generated translation, extracted asset, or compiled game binary is added to Git by the normal workflow. ### Windows x86-64 Hydrate the project with your matching ISO, then configure it from a Visual Studio developer shell. Visual Studio with the x64 C++ workload and Windows SDK, Qt 6.5+ for MSVC x64, and matching FFmpeg development libraries are required. ```powershell cmake -S . -B build/windows -A x64 ` -DCMAKE_PREFIX_PATH=C:\Qt\6.10.1\msvc2022_64 ` -DREFRACT_FFMPEG_ROOT=C:\ffmpeg cmake --build build/windows --config Release .\build\windows\Release\daxter.exe ``` Qt and FFmpeg DLLs are deployed beside the executable automatically. The Windows build uses a Win32 window, Direct3D 11, XInput and XAudio2, with the same embedded savedata/message/keyboard dialogs and FFmpeg cutscene support as macOS. Native Windows-on-ARM builds remain possible with matching ARM64 dependencies, but x86-64 is the standard release target. ## Controls Native macOS and Windows builds support standard game controllers. Keyboard fallback: | Input | Key | |---|---| | D-pad | Arrow keys | | Analog stick | W/A/S/D | | Triangle/Square/Cross/Circle | I/J/K/L | | L/R | Q/E | | Start | Return | | Select | Right Shift | ## Other targets The following targets are intended primarily for development: ```sh make macos # native optimized macOS application make macos-debug # native debug application cmake -S . -B build/windows -A x64 # native Windows x86-64 application make psp # rebuilt PSP output and ISO make psp-run # build and launch through PPSSPP ``` PSP targets additionally require PSPSDK and `psp-config` in `PATH`. ## Updating psprism The toolchain is a Git submodule pinned to a tested commit. Maintainers can test a newer psprism revision with: ```sh git submodule update --remote toolchain/psprism make macos-run HYDRATE_FLAGS=--force ``` After validation, commit the changed submodule pointer in this repository. Users then receive the exact tested toolchain revision after running: ```sh git pull git submodule update --init --recursive ``` Do not make Daxter-specific changes inside the submodule. General runtime fixes belong upstream in psprism; game-specific original work belongs in `patches/` here. ## Repository layout - `project.toml`: supported disc identity and reproducible project metadata - `patches/`: tracked, independently authored game-specific patches - `toolchain/psprism/`: pinned open-source compiler and runtime submodule - `src/generated/`: private translated output created during hydration - `disc/`: private extracted disc filesystem - `original/`: private input location - `refract/`, `platform/`, `include/psprecomp/`: hydrated toolchain output The private directories contain only tracked `.gitkeep` placeholders in the public repository. ## Contributing Contributions are welcome. Read [CONTRIBUTING.md](CONTRIBUTING.md) before opening an issue or pull request. Never upload game files, generated game code, decompiler output copied from the game, extracted assets, or compiled builds. ## License and disclaimer The original project skeleton, build integration, and authored patches are licensed under [GNU GPL version 3 or later](LICENSE). Third-party components retain their respective licenses; see [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). The GPL does not license *Daxter*, translated game code, disc images, executables, artwork, audio, video, text, characters, screenshots, logos, or trademarks. See [LICENSING.md](LICENSING.md) for the complete boundary. This project is unofficial and is not affiliated with, authorized by, sponsored by, or endorsed by Sony Interactive Entertainment, Ready at Dawn, or any other game publisher or rightsholder. All game-related rights remain with their respective owners.