Prosperolight

blackbearreloaded blackbearreloaded
Dépôt créer le : 28/08/2026
Release du : 31/08/2026 ProsperoLight 01.000.050
Forks: 2 Watcher: 0 36
Choisir une liste...
FR

Avertissement :Il s'agit d'un projet assisté par l'IA développé en utilisant OpenAI Codex.

ProsperoLight icon

ProsperoLight

Un client Moonlight natif pour PlayStation 5 homebrew
Applications Stream Sunshine avec décodage vidéo matériel, entrée basse latence, audio stéréo, et une interface contrôleur-premier. .

PlayStation 5 H.264 and HEVC 60, 90, and 120 FPS RmlUi GPL-3.0-or-later

Démo disponible en cliquant sur l'image ci-dessous.

ProsperoLight Games screen configured for 4K HDR

Faits marquants

  • Matériel Native PS5 en streaming via VideoDec2 et AGC à 1080p, 1440p, et 2160p, avec des cibles de flux de 60, 90 et 120 FPS sélectionnables indépendamment.
  • H.264 Support HDR10 High, HEVC Main et HEVC Main10 à chaque fois que possible résolution.
  • Basse latence DualSense, clavier USB physique et souris, piloté par contrôleur mode souris, et un clavier de mot de passe à l'écran.
  • Découverte automatique Sunshine, repli manuel-IP, multi-PC persistant l'appariement, l'application et les commandes de lancement/resume/stop.
  • Préférences de flux persistantes, présentation de bord à bord ou de sécurité TV, sélection de frame-rate indépendante, et préréglage de débit de 10 à 500 Mbps.
  • 48 kHz stéréo Opus audio, effets sonores de lanceur natif, performance en direct mesures, et gracieuse récupération de connexion.

ProsperoLight est un client Natif de PS5 pour le streaming ouvert Moonlight/Sunshine Protocole. Son lanceur RmlUi découvre et s'associe avec des hôtes Sunshine, navigue leurs applications, et commence une session de streaming native. Unités d'accès vidéo sont décodés par PS5 VideoDec2 et les surfaces visibles GPU résultantes sont présenté par AGC sans copier les pixels décodés à travers un tampon-cadre CPU.

[!IMPORTANT] ProsperoLight ne fonctionne pas sur une console de vente au détail non modifiée. Il est prévu pour les consoles que vous possédez avec un chargeur homebrew déjà configuré et compatible. Ce dépôt n'inclut pas un système Sony SDK propriétaire, un exploit module, clé de chiffrement, fichier firmware, ou l'actif de jeu.

Fondement du projet

[!IMPORTANT] Construit sur lePS5 Native App Boilerplate.ProsperoLight préserve la structure C++20 du modèle,.hppinterfaces, reproductible clean-room runtime, outillage natif FSELF, tests, dossier sûr déploiement, et l'automatisation de libération.

[!IMPORTANT] Le travail d'entrée du contrôleur est documenté dansPS5 Native Gamepad Input Research.Les fichiers de dépôt d'accompagnement ont récupéré des API natives, des exemples de faible latence, et le comportement DualSense qui a informé l'intégration du contrôleur ProsperoLight.

[!IMPORTANT] Le travail vidéo est documenté dansPS5 Hardware Video Decoding Research.Le dépôt compagnon enregistre VideoDec2, HEVC, HDR10, AGC à copie zéro, et les résultats qui ont éclairé le présentateur en continu.

[!IMPORTANT] Le travail audio est documenté enPS5 Audio Decoding Research.Le dépôt compagnon enregistre le codec, l'AJM, le matériel/logiciel déchargé, et recherche sortie-chemin qui a éclairé l'intégration audio de ProsperoLight.

Le client utilise les moonlight-common-cla mise en œuvre du protocole plutôt que la réexécution du protocole filaire. Les lanceur, coordination des flux, intégration d'entrée/audio/vidéo PS5, UI et construction l'outillage est maintenu dans ce dépôt.

Valeur - Oui. Titre de la coquilleProsperoLightAutres Titre IDPPSA99002Autres Catégorie Version actuelle01.000.050Autres Source de la versionsce_sys/param.jsonAutres Données écrites/download0seulement

Caractéristiques

  • Découvrez les hôtes Sunshine sur le réseau local ou ajoutez une adresse IPv4 manuellement.
  • Rappelez-vous jusqu'à huit PC, l'appariement des identités, et les préférences de flux sous /download0à travers les redémarrages de l'application.
  • Paire avec une boîte de dialogue PIN de deux minutes et dépaire à travers une double pression explicite Une confirmation.
  • Parcourir jusqu'à 64 applications Sunshine annoncées avec des œuvres d'art en page, lancement/resume feedback, et contrôles d'arrêt d'application active.
  • Décodez les flux H.264 High et HEVC Main via VideoDec2 à 1080p, 1440p, et 2160p. Sélectionner 60, 90 ou 120 FPS indépendamment de la résolution et du débit; vivant 1440p/90 et 2160p/120 Les séances de Sunshine sont validées matériellement.
  • Présentez des surfaces GPU décodées directement via AGC, avec bord à bord et modes d'affichage à sécurité de la télévision. A 60 FPS, 1440p est à l'échelle GPU 3840x2160 cible et 2160p est présenté 1:1. Les cours d'eau les plus frais conservent même géométrie de sortie 4K: 1440p est à l'échelle GPU à 4K, tandis que 2160p/120 est présenté par l'intermédiaire de la PS5 native 3840x2160 119.88 Voie de sortie Hz.
  • Sélectionnez des préréglages de débit jusqu'à 500 Mbps. Le meilleur réglage dépend de l'hôte, encodeur, réseau et codec sélectionné plutôt que de lier la vitesse seule.
  • Activer la sortie HEVC Main10 HDR10 à toute résolution et à tout frame-rate disponibles sélection lorsque l'hôte Sunshine annonce le support.
  • Décodez Moonlight Opus audio et sortie stéréo de 48 kHz via PS5 AudioOut.
  • Contrôles DualSense à basse latence avant, avec commande / commutation de souris et un clavier de flux qui fonctionne à la connexion de Windows.
  • Transférer un clavier USB physique et la souris directement à Sunshine pendant un flux, y compris les modificateurs, touches de navigation/fonction, cinq boutons de souris, et défilement vertical/horizontal.
  • Afficher les mesures de flux de style Moonlight pour la résolution, le codec, les taux d'images, perte de paquets, latence réseau/hôte et temps de décodage.
  • Récupérer des défaillances de connexion et revenir d'un flux vers le lanceur sans laisser une session en panne.
  • Utiliser l'oeuvre originale de lanceur 4K, l'icône, la présentation de chargement et la sélection musique dans une interface contrôleur-premier RmlUi.
  • Jouer ouverture distincte, navigation, action, réglage, retour, succès, erreur, et stream-start indique à travers le moteur audio Natif PS5 SDL.

Situation actuelle

Le chemin complet de 1080p60—pairing, lancement d'application, VideoDec2/AGC vidéo, audio stéréo, entrée DualSense, mode souris, clavier de connexion Windows, paramètres, retour au lancement, relance et nettoyage—a été exercé sur le matériel PS5 avec Sunshine. Matériel fonctionne également confirmer HEVC 1440p-à-4K filtre GPU présentation et HEVC 2160p-à-4K présentation avec les métriques HUD à 60 FPS. En outre, les séances en direct ont confirmé 2560x1440 à 90 FPS et 3840x2160 à 120 FPS de Sunshine. Un oracle matériel isolé en plus confirme native 3840x2160 119.88 Hz VidéoOut présentation au 119.88 FPS.

ProsperoLight est encore un logiciel alpha. HEVC, 1440p, 2160p, HDR, très haut bitrates, récupération de réseau et longues sessions de gameplay ont besoin d'une validation plus large à travers les GPU, configurations Sunshine, réseaux, téléviseurs, versions firmware, et Les chargeurs maisonbrew. Voir les éléments de preuve et d'acceptation ouverte dans Validation.

[!IMPORTANT] Wired Ethernet est fortement recommandé pour un streaming fiable, en particulier à 1440p ou 2160p, 90 ou 120 FPS, et débits plus élevés. Wi-Fi peut fonctionner, mais l'interférence et la latence variable peuvent causer la chute des cadres ou le retard d'entrée.

Exigences

Construire à partir de Linux, WSL, ou un coureur Linux CI. Sur Ubuntu, Debian ou WSL :

sudo apt update
sudo apt install curl git make pkg-config python3 python3-venv tar unzip wget \
  clang-18 clang-format-18 clang-tidy-18 lld-18

Le build téléchargements et vérifie son public PS5 Payload SDK, zlib, GoogleTest, et les entrées d'emballage ci-dessous ignorées.deps/répertoires. Initialiser le pilonnage Sources de diffusion après clonage:

git submodule update --init --recursive
make doctor

Comprimé.ffpfscsortie nécessite Python 3.9 ou plus récent avecvenvd'appui. L'option locale.ffpkgcible nécessite également .NET 8 ou plus récent. Rien n'est installé au niveau mondial par la construction du projet.

VoirGetting startedet Native toolingpour les détails de configuration de la machine propre.

Construire

# Production release image; also assembles the complete title folder.
make ffpfsc

# Faster folder-only development build.
make

Les résultats sont écrits à l'adresse suivante :

dist/PPSA99002/           complete title folder
dist/PPSA99002.ffpfsc     compressed installation image

Les portes de développement utiles sont:

make test       # C++ unit/runtime tests and Python tooling regressions
make lint       # formatting, static analysis, metadata, asset, and shell checks
make check      # lint + every host test + complete folder build
make ffpfsc     # production folder + compressed image

Une optionmake ffpkgobjectif reste disponible pour le développement local. Les .ffpkgla production est intentionnellement exclue de GitHub Actions and Releases. VoirPackage formats.

GitHub Actions et sorties

LesBuild workflowmarche sur chaque poussée à main, demande de tirage, étiquette de version et envoi manuel. Il :

  1. vérifie tous les sous-modules épinglés;
  2. installe les prérequis publics de construction Linux/PS5;
  3. valide les métadonnées et l'étiquette de publication;
  4. exécute les vérifications d'intégration de lint, GoogleTest, runtime-allocation et Python;
  5. reproduit et vérifie indépendammentruntime/libc.prx;
  6. construitPPSA99002.ffpfsc; et
  7. génèreSHA256SUMSet charge les deux fichiers comme artefact Actions.

Un tag correspondant à l'exactcontentVersionvérifier que build-time checksum à nouveau, puis publie exactement le.ffpfscimage etSHA256SUMS. Dossier et .ffpkgbuilds ne sont jamais attachés à une libération.

Déployer

Pour un service FTP PS5 déjà lancé, mettre en place le dossier de développement avec :

make deploy PS5_HOST=192.168.1.100

Fermez entièrement ProsperoLight avant de déployer. Le déployeur écrit seulement le titre actuel/data/homebrew, téléverse par des noms temporaires, et publieeboot.binetsce_sys/param.jsondernier. Télécharger le dossier complet; ;eboot.binseul n'est pas un déploiement valide.

Pour tester le formulaire emballé à la place:

make deploy PS5_HOST=192.168.1.100 DEPLOY_FORMAT=ffpfsc

ProsperoLight ne modifie jamais les paramètres du système PS5 ni ne configure un chargeur. Voir Deploymentpour la boucle de développement sûre et l'enlèvement comportement.

L'appariement et le premier flux

  1. Démarrer Sunshine sur un PC connecté au même réseau local de confiance. Ethernet filaire pour le PC et PS5 est fortement recommandé.
  2. Ouvrez ProsperoLight et choisissez un PC découvert, ou sélectionnezAjouter un PCet entrez son adresse IPv4.
  3. SélectionnerPaire PC, puis entrer le NIP affiché dans Sunshine dans deux minutes.
  4. OuvrirJeux, choisissez Bureau ou une autre application annoncée, et appuyez sur Croix.
  5. UtilisationSelect + L1pour terminer le flux et revenir à ProsperoLight.

Les identifiants et les paramètres d'appariement sont des champs de titre. Installation sous un autre Titre ID nécessite intentionnellement l'appariement à nouveau.

[!TIP] Pour le résultat 90 ou 120 FPS le plus lisse, choisissez la résolution, le taux d'image, codec, et débiter avant de lancer l'application Sunshine. Si vous changez après être retourné au lanceur, arrêter l'application active d'abord et puis lancez-le à nouveau afin que Sunshine crée une nouvelle session de capture/encodeur. Tune bitrate cas vers le haut au cas par cas; une valeur plus élevée peut réduire la douceur à 4K ou des taux de cadre élevés même lorsque la liaison réseau est rapide.

Contrôles

Lanceur

Actions - Oui. D-pad / gauche analogique stick Activer, coupler, lancer, reprendre ou modifier un réglage Retour à la page PC Halte à l'application Sunshine active Rénover l'hôte sélectionné Modification entre PC, Jeux et Paramètres Options Ouvrir les paramètres

Streaming

Actions - Oui. AutresSelect + R1Enfoncer les métriques AutresSelect + L1Fin du flux et retour à ProsperoLight AutresSelect + SquareAfficher le mode souris/contrôleur AutresSelect + TriangleAfficher le clavier de flux de ProsperoLight Clés et modificateurs pour le clavier USB physique Déplacer, cliquer et défiler directement sur l'hôte Sunshine Soit analogique bâton en mode souris Croix / Cercle / Place en mode souris L1 / R1 en mode souris D-pad en mode souris D-pad pendant que le clavier est ouvert Croix pendant que le clavier est ouvert Triangle pendant que le clavier est ouvert Square pendant que le clavier est ouvert Options pendant que le clavier est ouvert Cercle pendant que le clavier est ouvert

Le clavier stream contient tous les caractères US-ASCII imprimables utilisés par les mots de passe standard. Il n'est pas actuellement une entrée multilingue ou Unicode méthode. Le texte du clavier est envoyé directement en tant qu'événements clés Moonlight et n'est pas stocké par ProsperoLight ou écrit à sa configuration.

Présentation des sources

src/main.cpp                         SDL2/RmlUi lifetime and stream handoff
src/moonlight_app.cpp                launcher state, navigation, and feedback
src/moonlight_backend.cpp            pairing, app listing, artwork, and control
src/moonlight_discovery.cpp          LAN discovery
src/moonlight_config.cpp             /download0 host and preference persistence
src/moonlight_stream.cpp             Moonlight session, VideoDec2, audio, input
include/moonlight_physical_input.hpp USB-HID to Moonlight input mapping
src/native_agc_present.cpp           zero-copy AGC presentation and overlays
src/gamestream/                      retained Moonlight-compatible C boundary
include/*.hpp                        application-owned public interfaces
platform/ps5/                        narrow Moonlight PS5 compatibility adapters
third_party/                         pinned Moonlight, mbedTLS, and Opus sources
ui/                                  RML, RCSS, fonts, icons, and chrome assets
sce_sys/                             launcher metadata, 4K artwork, icon, music
runtime/libc.prx                     generated clean-room loader runtime
tooling/native/                      native ELF/FSELF and runtime build tools
tests/                               GoogleTest and Python host regressions
docs/                                architecture, setup, testing, and evidence

Le code de l'application est C++20 avec.hpples interfaces. Les src/gamestreamCode C et dépendances en amont soutenues conservent leur natif langue et en-têtes publics; ce sont des limites de dépendance, pas une seconde architecture d'application. VoirArchitectureet Porting notes.

Versionnement

sce_sys/param.jsonest la seule identité de demande et Source de version de libération. Son format PS5contentVersionest injecté dans barre supérieure, vérifié contre l'étiquette de sortie, et utilisé comme le nom de sortie GitHub. Ne pas ajoutervpréfixe.

# After updating param.json and passing all local gates:
git tag 01.000.050
git push origin main 01.000.050

GardezPPSA99002,conceptIdetcontentIdstable pour les mises à jour de ce titre. Modifier le titre ID crée une application PS5 séparée et une appariement séparée stockage. VoirConfiguration.

Documentation

Document Objet - Oui. AutresChangelogChangements visibles par l'utilisateur dans chaque version publiée AutresGetting startedPrérequis de la machine propre et première construction AutresArchitectureLanceur, protocole, vidéo, audio et flux d'entrée AutresConfigurationIdentité, version, paramètres et construction de variables AutresTestingLimites et commandes de test de l'hôte AutresValidationListe de contrôle pour l ' acceptation du matériel et preuves enregistrées AutresDeploymentDossier/images sécurisés et tests de fumée AutresPackage formatsDossier,.ffpkget.ffpfscproduits autresTroubleshootingNombre de pannes de construction, de lancement et d'exécution AutresPlatform notesSystème de fichiers PS5, chargeur et contraintes de présentation AutresRuntime shimSalle proprelibc.prxchamp d'application et reproduction autresPresentation assetsIcône, fonds et sélection audio AutresContributingModification, essai et exigences de libération AutresNoticesDépendance, actif et attribution de licence

Crédits, logiciels tiers et licences

ProsperoLight existe grâce aux responsables et contributeurs de:

Les œuvres originales de ProsperoLight et la musique de sélection sont distribuées sous la licence de projet. Révisions complètes, comptes de contrôle, avis de copyright, et des termes tiers sont enregistrés enNOTICE.mdet les les arbres sources.

ProsperoLight est distribué sousGPL-3.0-or-later. PlayStation et PS5 sont des marques de commerce de Sony Interactive Entertainment. Lumière de la lune et soleil conserver leur identité de projet respective. ProsperoLight est indépendant projet homebrew et n'est pas affilié à Sony Interactive ou soutenu par Divertissement, lumière de la lune ou soleil.

Ce projet a été développé avec l'aide d'OpenAI Codex, y compris quelques œuvres d'interface originales. Les responsables du projet ont examiné et validé le code, les tests, la documentation, les dépendances et les actifs générés.

Contributeurs GitHub

blackbearreloaded
blackbearreloaded
16 contributions