Prosperoradio

blackbearreloaded blackbearreloaded
Dépôt créer le : 24/08/2026
Release du : 30/08/2026 ProsperoRadio 01.000.005
Forks: 0 Watcher: 0 5
Choisir une liste...
FR

ProsperoRadio icon

ProsperoRadio

Une application Internet-radio native pour PlayStation 5 homebrew
Parcourir et rechercher le catalogue Radio Browser avec support disque résistant cache, lecture audio native PS5 et interface RmlUi. .

Build Latest release GPL-3.0-or-later

Faits marquants

  • Parcourez plus de 56 000 stations prises en charge dans un navigateur radio validé synchronisation; le total en direct change à mesure que le catalogue public évolue.
  • Explorez 240 pays et des centaines de genres et de langues avec côté serveur recherche et filtres à la demande.
  • Jouer AAC/AAC+, MP3 et Opus à travers des chemins de décodeur natifs PS5, avec validation Vorbis, FLAC et Ogg-FLAC reculent.
  • Résoudre les listes de lecture AAC HLS, M3U/PLS et les métadonnées ICY uniquement audio se rétablissant proprement dans des cours d'eau mal formés ou interrompus.
  • Gardez le catalogue et les favoris rapides et persistants dans SQLite sous /download0, avec des rafraîchissements atomiques et le miroir de navigateur radio.
  • Utiliser une interface RmlUi premier contrôleur avec DualSense et gauche navigation, entrée de texte PS5 et noms de stations multilingues.

ProsperoRadio artwork

Fondations de projets

[!IMPORTANT] Construit sur lePS5 Native App Boilerplate.ProsperoRadio préserve la structure moderne du modèle C++20,.hppinterfaces, temps d'exécution reproductible, outillage FSELF, tests, flux de déploiement et libération l'automatisation.

[!IMPORTANT] Le travail audio est documenté enPS5 Audio Decoding Research.Le dépôt d'accompagnement enregistre l'enquête de décodeur de premier matériel, les notes d'ingénierie inverse, les sondes d'API natives, les limites de codec et l'appareil validation qui a informé l'implémentation audio de ProsperoRadio.

Valeur - Oui. Titre de la coquilleProsperoRadioAutres Titre IDPPSA99001Autres Catégorie Version actuelle01.000.005Autres Source de versionsce_sys/param.jsonAutres Données écrites/download0seulement

Caractéristiques

  • Parcourir Populaire, Trending, Top rated, Favoris et Découvrez les vues.
  • Rechercher en direct les données du navigateur radio par texte, pays, genre, langue et bitrate, avec basculement miroir et recherche côté serveur.
  • Gardez un grand catalogue SQLite et des favoris sur/download0; une synchronisation ratée laisse intact le dernier catalogue vérifié.
  • Naviguez entièrement avec le D-pad DualSense ou le bâton gauche analogique; le PS5 IME gère l'entrée de texte.
  • Render emballé, polices bitmap multilingues de façon déterministe plutôt que selon la rastérisation de la police de plate-forme.
  • Jouer AAC/AAC+ et MP3 à travers le décodage natif PS5 ; jouer Opus à travers le route de décodeur Opus/CELT native; jouer Vorbis et FLAC/Ogg-FLAC avec limited Décodeurs de processeurs.
  • Résoudre l'indirection M3U/PLS délimitée, retirer les métadonnées ICY, et soutenir la sous-ensemble AAC HLS.

Les limites et la validation du codec spécifique à l'application sont documentées dans Architecture, ,Codec investigationet Roadmap. Le dossier de recherche réutilisable complet vit dans PS5 Audio Decoding Research.

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 libsqlite3-dev

La production.ffpfsccible utilise le bootstraper MkPFS épinglé. Les le dépôt télécharge, vérifie et cache le public PS5 Payload SDK, zlib, Le port SQLite de PacBrew, GoogleTest et les outils d'emballage ci-dessous ignorés.deps/. Aucun élément propriétaire de SDK, module système, clé ou jeu n'est inclus ou récupéré.

Effectuez une vérification préalable en lecture seule avant de construire:

make doctor

VoirGetting startedet Native toolingpour le détail construction-environnement.

Construire

sce_sys/param.jsonest la seule source d'identité et de version. Ne pas changementPPSA99001lors de la mise à jour de ProsperoRadio: le changement produit un PS5 séparé le titre plutôt qu'une mise à jour.

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

# Faster folder-only build for development deployment.
make

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

dist/PPSA99001/           complete title folder
dist/PPSA99001.ffpfsc     compressed package

Un UFS2 local optionnel.ffpkgl'objectif reste disponible pour le développement; est intentionnellement exclu des rejets de CI et de GitHub. Voir Package formats.

L'application est uneMédiastitre de la catégorie. Mettre en scène tout le dossier, paseboot.binseul. Pour une boucle de développement local contre un service FTP déjà en service :

make deploy PS5_HOST=192.168.4.30 DEPLOY_FORMAT=folder

[!NOTE] Le premier lancement peut prendre un certain temps pendant que ProsperoRadio télécharge, valide, et cache le catalogue Radio Browser. Gardez la console en ligne et laissez l'application ouvert jusqu'à ce que la base de données finisse le chargement ; les lancements ultérieurs utilisent le cache local.

Le deployeur n'écrit que les chemins du titre/data/homebrew. Il télécharge chaque fichier à travers un nom temporaire, puis publieeboot.binet sce_sys/param.jsondernier. Pour le protocole console et les exigences en matière de preuves, voir DeploymentetTesting.

Portails d'essai et de qualité

make test            # C++ unit tests, UI/metadata tests, 16 codec/catalogue checks
make lint            # formatting, static analysis, metadata, and shell checks
make check           # lint + all host tests + complete folder build
make ffpfsc          # production folder + FFPFSC image

La suite de test fonctionne entièrement sur l'hôte et ne contacte jamais une console. C'est couvre la cohérence des actifs RML/UI, la persistance des catalogues, l'analyse miroir/presse, Calendrier de l'AAC, cadrage MP3, métadonnées de l'ICY, PCM/comportement d'essai, Ogg/Opus, Vorbis, FLAC, HLS/MPEG-TS, entrée du contrôleur et commande de texte arabe/RTL. La limite PS5 seulement est documentée dansTesting.

GitHub Actions exécute le lintage, chaque test hôte, l'exécution déterministe la reproduction, et une construction FFPFSC. Quand exactementcontentVersionl'étiquette est poussé, le flux de travail porte le temps de constructionSHA256SUMSavant, vérifie et publie exactement le.ffpfscfichier image et somme de contrôle.

Présentation des sources

src/main.cpp                  SDL2/RmlUi application lifetime and renderer bridge
src/radio_app.cpp             C++20 controller and focus/state transitions
src/radio_text.cpp            C++20 UTF-8 visual-order helper
src/*.hpp                     Private C++ application interfaces
include/*.hpp                 Public codec, catalogue, input, and service interfaces
assets/ui/                    RML, RCSS, font atlases, and icons mounted at /app0/assets/ui
vendor/                       Checked-in RmlUi, SDL2, FreeType, decoder, and PS5 SDK inputs
tools/build.sh                Template-native compile/link/FSELF/folder assembler
tooling/native/               Template-owned native ELF and FSELF tooling
tests/                        GoogleTest and Python integration regressions
sce_sys/param.json            Shell metadata, title identity, and release version
docs/                         Architecture, testing, codec, build, and deployment documentation

ProsperoRadio est une application C++20. Les interfaces appartenant au dépôt utilisent les Plaque de chaudière.hppconvention; codec portable, demux, persistance, entrée, et Les modules de service sont des unités de traduction C++ testables indépendamment. Fournisseur les décodeurs de fichiers uniques conservent leurs noms de fichiers en amont et sont compilés par petits adaptateurs C++. VoirTemplate port notes.

Version et versions

contentVersiondanssce_sys/param.jsonconduit la métadonnées emballées, version de l'interface utilisateur de la barre supérieure, balise Git et nom de la publication GitHub. C'est utilise exactement PS5NN.NNN.NNNformat sansvpréfixe.

# After updating sce_sys/param.json and passing the local gates.
git tag 01.000.005
git push origin main 01.000.005

Le flux de travail rejette une étiquette erronée. Significations plein champ, Jeu/Média métadonnées, et la configuration de l'import-linking sont dans Configuration.

Crédits, logiciels tiers et licences

ProsperoRadio reconnaît les projets open-source et les services publics la demande possible:

Radio Browser fournit des métadonnées de station et des URLs mais n'héberge pas individuellement les flux de station. Les SDK, zlib, GoogleTest, MkPFS et UFS2Tool sont vérifiés build inputs tenu en dessous ignoré.deps/; ils ne sont pas distribués dans libérer le paquet. SharpProspero n'est ni récupéré ni lié. Enregistrement SDL2, Les fichiers RmlUi, FreeType, stb vorbis et dr flac conservent leur licence en amont Textes ci-dessousvendor/. Des licences de police complètes accompagnent assets/ui/fonts/lvgl-bitmap/.

Le shim d'exécution, le convertisseur ELF et l'écrivain FSELF sont des auteurs indépendants Code GPL-3.0 ou plus tard. Pas de SDK propriétaire Sony, module firmware, chiffrement clé, ou l'actif de jeu extrait est inclus. Le lanceur fourni par le mainteneur l'oeuvre et la sélection audio sont distribuées sous licence de projet.

ProsperoRadio est GPL-3.0-ou plus tard. VoirLICENSEet Contributing.

PlayStation et PS5 sont des marques de commerce de Sony Interactive Entertainment. Cette projet est indépendant et n'est pas affilié à ou soutenu par Sony.

Ce projet a été élaboré avec l'aide d'OpenAI Codex, dont certains l'interface originale. 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