# Half-Minute Hero: native PC port (static recompilation) A static recompiler and runtime for the PSP game **Half-Minute Hero** (USA, `ULUS-10491`). The game's MIPS code is translated to C++ ahead of time and runs natively on x86-64 Linux and Windows. The runtime provides a PSP kernel/HLE layer, an OpenGL 3.3 renderer for the GE, ATRAC3+ music, the SAS sound-effect mixer, and gamepad support. This project shares its runtime with the [SSX On Tour recompilation](https://github.com/highcmd/ssx-on-tour-psp-recomp). **This repository contains no game data and no game code.** You need your own copy of the game, dumped from a UMD you own. The setup decrypts and verifies that dump and generates everything locally: the function analysis, the recompiled C++, and the executable. None of this output is tracked by git (see `.gitignore`), so please don't commit it, upload it or share it. ## Quick start You need **Half-Minute Hero, USA release (`ULUS-10491`)** dumped to an `.iso` from your own UMD, using a PSP running custom firmware. ### Windows: the launcher 1. Download **`HMHLauncher.exe`** from the releases and start it. Nothing needs to be installed. 2. Click **Choose ISO…** and select your dump. The launcher checks it, downloads the compiler and libraries (about 300 MB, once), and builds the game in a few minutes. 3. Set the resolution and controls in the **Display** and **Controls** tabs, then press **PLAY**. Without the launcher: install Python 3.10+, download this repository, run `setup.bat D:\Games\half-minute-hero.iso` and start `dist\hmh-windows-x64\hmh.exe`. ### Linux ```sh sudo apt install clang cmake ninja-build pkg-config python3-venv python3-tk \ libsdl2-dev libavcodec-dev libavutil-dev libswscale-dev ./setup.sh /path/to/your/half-minute-hero.iso ./launcher.sh # or: ./run.sh --res 1920x1080 --fullscreen ``` `./setup.sh --target windows` also builds the Windows version from Linux or WSL. ## Documentation - [docs/BUILDING.md](docs/BUILDING.md): dependencies, dumping, the setup steps (including the EBOOT decryption), the Windows build, troubleshooting - [docs/OPTIONS.md](docs/OPTIONS.md): every setting (`hmh.ini` and flags), resolution, fullscreen and refresh rate, controls and remapping, saves, debugging variables - [NOTES.md](NOTES.md): technical notes on what this game needed beyond SSX On Tour ## Status Working: - boot, title screen, menus, name entry, story intro, the world map and the first quest - ATRAC3+ music and SAS sound effects - the GPU renderer at up to 2880×1632 internal resolution - the keyboard and gamepads, including remapping Not done yet, or not checked: - ad hoc multiplayer: the network is reported as unavailable, so no partner is found - saves: the runtime from SSX On Tour is there, but saving in this game is untested - full play-throughs: the game was tested up to the first quest - one known slowdown: the story intro scroll runs at about 45 fps; the cause isn't known yet ## License This project is licensed under the GNU General Public License v3.0 or later (`LICENSE`). `runtime/vfpu/`, `runtime/sas/`, `runtime/assets/vfpu/`, `tools/prxdecrypt/Core/` and `data/nids.json` come from [PPSSPP](https://github.com/hrydgard/ppsspp) (© PPSSPP Project, GPL-2.0-or-later), and `tools/prxdecrypt/ext/libkirk/` from libkirk by Draan and contributors (GPL-3.0-or-later). The Windows build ships SDL2 (zlib) and FFmpeg (GPL) DLLs; their licenses are copied into the build folder. Half-Minute Hero is © Marvelous Entertainment and was published in North America by XSEED Games. This project is not affiliated with or endorsed by them or by Sony. "PSP" is a trademark of Sony Interactive Entertainment.