Nakagawa Recomp Case Study

PROJECT CASE STUDY · IMPLEMENTATION FACT + PRIVATE ACCEPTANCE · REVIEWED 17 AUG 2026

Deeply validated against one title. Designed for a broader future.

Nakagawa Recomp is an experimental PSP static recompiler and native compatibility runtime. Its deepest real-title validation is the USA release of Hot Shots Tennis: Get a Grip (UCUS-98701); general PSP compatibility is not claimed.

Public implementation reference: 4eda0c4f. This page summarizes private-title evidence without publishing the local inputs, captures, or data required for that route.

What the public project contains

Recompiler tooling

Represent and analyze a user-supplied PSP ELF/PRX, classify control flow and ownership, and emit generated C.

Native runtime

Guest state, memory, HLE, scheduling, VFS, graphics, audio/media, input, and source-owned tests and fixtures.

Publication controls

GPL v3 public source, publication auditing, and provenance controls. Proprietary PSP content is not distributed.

Users provide their own lawful title inputs locally. The public project does not distribute ISOs, decrypted retail modules, generated retail-title C, keys, saves, proprietary assets, private captures, or private traces.

Current capability matrix

AreaStatusCurrent evidence and limit
Boot / title / menusWORKINGWorking on the qualified private HST route.
GameplayWORKING · PRIVATEPR #66 state qualification reached gameplay and completed matches. This is not public release or PSP-hardware evidence.
GraphicsPARTIALPR #71 selects NEAREST only for exact positive integer uniform scaling in both dimensions; LINEAR otherwise. #69 and missing portraits remain open.
AudioOPENSAS/mixing, ATRAC3+, and output paths exist, but sustained smooth audio is not accepted; rough/stuttering audio remains open in #67.
Timing / schedulerOPENPR #72 improved rational VBLANK pacing and wait/deadline behavior. Delivery/coalescing and broader timing acceptance remain open in #70.
Save / loadROUTE-DEPENDENTLocal state participates in private route qualification; fresh-machine public end-to-end save/load acceptance is not complete.
VFPU / floating pointPARTIALPR #58 covers a bounded host accumulation-shape and repaired-probe subset; hardware/topology questions in #40 remain open.
General PSP titlesNOT CLAIMEDThe architecture is intended to broaden; general compatibility is not a current capability.
Public fresh-machine releaseNOT ACCEPTEDPublic source + lawful user input has not yet passed the complete end-to-end release target.

Open acceptance items

  • Audio #67: rough and stuttering.
  • Visual #69: transient main-menu model/render corruption is reproducible; root cause is not established.
  • Portraits: mid-game profile images remain visibly absent; no issue number is invented here.
  • Timing #70: pacing improved, but PSP-correct timing is not claimed.
  • Native presentation: true selectable 480×272 / 1× host mode is not implemented.
  • Public release: fresh-machine end-to-end acceptance remains incomplete.

Presentation is four separate layers

480×272

Guest framebuffer. The PSP-native image dimensions.

Render scale

Internal GPU scale. Separate from the host window.

960×544

Current host start size. Resizable, 2×-style—not native PSP sizing.

Filtering

Final presentation. NEAREST for exact integer uniform scaling; LINEAR otherwise.

Host platforms

Windows 11 x64

Current first-class host for development and validation.

Linux

Future native target; not currently supported end to end.

macOS

Future native target; not currently supported end to end.

The intended architecture separates portable PSP semantics from host seams for filesystem/VFS, threading and coroutines, timing, windowing and input, audio, Vulkan/presentation, process/tool invocation, and dynamic libraries.

Roadmap

A

HST research recompiler

Current deepest research path.

B

Public HST toolchain

Immediate practical milestone.

C

General recompiler

Broader title architecture.

D

Reusable PSP core

Runtime and toolkit.

E

Decompiler tooling

Reverse-engineering workflows.

Public fresh-machine acceptance target

The eventual target is public source + documented public dependencies + a user-owned lawful supported title, with no private developer files.

  • Extract, translate, generate, and build
  • Launch, reach title/menu, and play a match
  • Show correct UI, models, and portraits
  • Produce stable audio
  • Offer native 480×272 and scaled presentation
  • Save/load, navigate, and exit cleanly

This is a release acceptance target, not today’s project status.

Use current repository source, tests, maintained documentation, and canonical issue criteria as authority. Historical notes and emulator agreement are corroboration, not PSP silicon truth.