Skip to content

k4idyn/Moonlight-PSP

Repository files navigation

PSP Moonlight

v1.1.0 - Dual-Core Software H.264 Streaming Client for Sony PlayStation Portable

Build PSP FW License Status Release


PSP Moonlight is a Moonlight-compatible game-streaming client for Sony PSP systems, designed around a custom PSP-native networking, decode, audio, and rendering stack.

The project streams H.264 video from a host PC running Sunshine, performs software decode on the main CPU, and uses the Media Engine for accelerated YUV-to-RGBA conversion.

New in v1.1: Network and Streaming Control

Compared with the current public upstream baseline, this tree includes additional network-path updates:

  • Launch and transport bitrate now start from the client-selected bitrate (no hidden startup downscale step).
  • Connection quality classification now uses transport metrics (loss/FEC recovery) without coupling decode FPS into bandwidth decisions.
  • RTCP Receiver Reports were aligned with interval loss accounting and RFC3550-style jitter units (90 kHz RTP clock domain).
  • Adaptive fast-drop trigger was tuned to require 3 consecutive drop signals before aggressive halving.

Highlights

Feature Status Notes
Host discovery Ready mDNS + optional subnet scan
Pairing + TLS transport auth Ready Runtime identity + pin-based trust
Game library + icons Ready Normal Sunshine box-art download, static PNG decode, raw RGB565 cache
RTSP / RTP / FEC pipeline Ready Real-hardware validated, CAVLC host profile required for stable normal playback
OpenH264 decode + ME conversion Ready PSP-optimized software decode path
Opus stereo audio Ready PLC + adaptive handling
UPnP hotspot/remote assist Ready Automatic IGD UDP port mapping for RTP/RTCP session ports
Multi-host support Ready Up to 8 paired hosts

Hotspot and Remote Sessions (UPnP)

PSP Moonlight includes UPnP IGD integration to improve session setup when streaming over:

  • Mobile hotspot networks
  • Public IP / WAN remote sessions
  • NAT paths that require inbound UDP mapping for RTP/RTCP

During session preparation, the client requests temporary UDP mappings for active stream ports and cleans them up when the session ends.

Requirements for UPnP assist

  • Your gateway/hotspot must support UPnP IGD
  • UPnP must be enabled on the gateway/hotspot
  • Host PC must be reachable by the selected session route

If UPnP is unavailable, streaming may still work on LAN or on NAT setups that do not require explicit mapping.

How It Works

Main CPU (Allegrex)                    Media Engine
--------------------                   ---------------------------
Wi-Fi receive + RTP/FEC processing     YUV420P -> RGBA8888 via VFPU
OpenH264 software decode               Concurrent conversion work
Control/input channel                  Output frame handoff
Opus audio decode + recovery

Requirements

PSP

  • PSP-1000 / PSP-2000 / PSP-3000
  • Custom firmware: ARK-4
  • 2.4 GHz Wi-Fi

Host PC

  • Sunshine (current stable release recommended)
  • H.264 output configured for PSP-compatible streaming

Recommended baseline host profile:

  • Codec: H.264
  • Encoder profile: Baseline
  • Entropy: CAVLC (required for PSP v1.1 validation and normal playback)
  • Resolution/FPS: Start with 480x272 @ 15 fps
  • Bitrate: Start around 384 kbps and tune as needed

This guidance applies to all supported host encoder backends (NVIDIA NVENC, AMD AMF, Intel QSV, and software x264).

Building

See docs/BUILDING.md for full environment setup.

# 1) Build Media Engine helper PRX
cd moonlight_me_helper && make

# 2) Build application (retail mode is default)
cd .. && make

# Optional debug build
make RETAIL_BUILD=0

Build output includes:

  • EBOOT.PBP
  • moonlight_me_helper.prx

Install

Quick install path:

  1. Create folder:
ms0:/PSP/GAME/Moonlight/
  1. Copy:
  • EBOOT.PBP
  • moonlight_me_helper.prx
  1. Launch from XMB -> Game -> Memory Stick.

For full setup, pairing flow, and troubleshooting, see INSTALL.md.

Known Limitations

  • No tearless double-buffer output yet
  • PSP Wi-Fi quality can still be a limiting factor on weak signals
  • Very high streaming resolutions are outside practical PSP decode limits

Detailed notes: docs/KNOWN_ISSUES.md

Documentation Index

Version History

  • v1.1.0: Network controller refinements (transport-first quality classification, direct launch bitrate use, RTCP RR accounting update) and manual retail artifact publication.
  • v1.0.0: Public release of the PSP-native rewrite with documented host compatibility guidance and release validation.
  • v0.2.x: Public beta cycle.

Contributing

See CONTRIBUTING.md.

License

GPLv3 — see LICENSE.

About

Moonlight Game Streaming Client for Sony PlayStation Portable

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages