[PS4] [PC] TUTO - Installer et utiliser le SDK PS4 officiel

Vous avez toujours rêvé de développer de superbes applications pour PS4 ? Si oui, vous êtes sur la bonne page ! À la fin de ce tuto, vous saurez comment créer votre premier homebrew pour PS4 (hackée, bien sûr) en 4.05 en utilisant le SDK (Software Development Kit) officiel de Sony.

PS4 SDK, nous voilà! 😛


0) Pré-requis

  • Une PS4 en 4.05 ;
  • Un PC (nous utiliserons Windows dans ce tuto. Vous pourrez aussi réaliser ce tuto sur Linux ou Mac, avec Wine pour installer les fichiers du SDK. Les commandes tapées dans le CMD seront identiques à celles que vous pourrez taper dans votre Terminal) ;
  • Une gestionnaire d’archives (comme 7zip) ;
  • Python 2.7.14 ;
  • Visual Studio 2013 (2015 marche sans doute, mais nous ne l’avons pas testé) ;
  • Le PS4 SDK 4.50 patché avec les fichiers du PS4 SDK 3.50 ;
  • Des compétences de base en informatique, ça va de soit.

Les fichiers du SDK PS4 ne seront pas partagés dans cet article pour des raisons de légalité. Vous pouvez les trouver en demandant aux bonnes personnes ! Vous trouverez plus d’informations en bas de cette page.

Attention : le téléchargement de jeux ou logiciels par le biais de sites de warez est parfaitement illégal, Custom Protocol ne pourra pas être tenu responsable si votre compte se fait bannir et/ou que vous avez affaire à la justice, la peine endurée pouvant s’élever jusqu’à 300 000«&nbsp€ d’amende (500 000«&nbsp€ si vous êtes en bande) et 3 ans d’emprisonnement (5 ans si vous êtes en bande).

1) Installation des fichiers nécessaires

Une fois les fichiers (trouvés par vos soins) téléchargés, vous pouvez extraire les fichiers du SDK. Exécutez SDK_Manager.exe en tant qu’administrateur.

La fenêtre du SDK Manager

Vous pouvez installer le tout si vous le souhaitez (y compris les samples). Vous pouvez aussi vous contenter du SDK, mais nous nous servirons de certains samples dans ce tutoriel. Par contre, ce qui est vraiment important, c’est de désactiver toutes les mises à jour et d’activer seulement le SDK Patch – 4.508.101 (contenu dans le dossier Update (2017-05-31)). Cette mise à jour truquée contient en fait les fichiers du SDK 3.50.

2) Utilisation du PS4 SDK

Une fois installé, vous pouvez lancer Visual Studio 2013 (en tant qu’administrateur, c’est important). Créez un nouveau projet pour PS4.

Création de projet pour PS4 depuis Visual Studio.

Vous pouvez également utiliser les samples déjà pré-installés si vous les aviez sélectionnés pendant l’installation. Rendez-vous dans C:\Program Files (x86)\SCE\ORBIS SDKs\4.500\target\samples\sample_code pour trouver ces samples. Quelques uns ne sont pas compatibles pour diverses raisons (certains nécessitent une PS4 devkit par exemple).

Pour ce tutoriel, nous allons prendre le projet situé dans “sample_code\graphics\api_font“.

Cliquez sur Fichier > Ouvrir > Projet / Solution et sélectionnez votre sample (ici, donc, api_font.sln). Une fois lancé, vous verrez le code du projet. Je ne vais pas vous expliquer le fonctionnement du code de api_font car il est un peu complexe, mais si vous voulez vous amuser, vous pouvez modifier le texte contenu dans cette variable à la ligne 620.

Ça fait beaucoup de code pour un hello world 😛

Une fois votre code prêt, cliquez sur Build > Build Solution :

C’est parti !

Une fois la construction terminée, rendez-vous dans le dossier \api_font\ORBIS_Debug\. Vous y trouverez le fichier simple_step.elf. Renommez-le en eboot.bin.

3) Signer les fichiers

Créez un dossier, où vous le souhaitez, qui va contenir votre homebrew. Placez-y le fichier eboot.bin, ainsi que le dossier sce_sys contenu dans cette archive. Si vous le souhaitez, vous pouvez changer l’icône.
Créez ensuite le dossier sce_module.

Dans le dossier \api_font\simple_step\sce_module\ ont été générés deux fichiers : libc.prx et libSceFios2.prx. Copiez ces fichiers dans sce_module. Votre dossier devrait ressembler à ça :

Maintenant, nous allons devoir signer l’eboot et les modules. Téléchargez le fichier make_fself.py à cette adresse, et glissez-le dans le dossier de votre homebrew, ainsi que dans le dossier sce_modules. Lancez ensuite l’Invité de commande et rentrez les commandes suivantes :

cd "chemin-vers-le-dossier-de-l'homebrew"
make_fself.py eboot.bin eboot.bin
cd sce_module
make_fself.py libc.prx libc.prx
make_fself.py libSceFios2.prx libSceFios2.prx

Patchage de l’eboot et des modules…

 

Une fois les fichiers signés, retirez make_fself.py du dossier. Nous allons maintenant construire le fichier .PKG installable sur votre PS4.

4) Construction du package

Commencez par télécharger cette archive, qui contient les outils nécessaires à la création de .PKG. Exécutez orbis-pub-sfo.exe, cliquez sur File > Open et sélectionnez le fichier param.sfo (présent dans le dossier sce_sys)

Éditons le param.sfo !

Ici, vous pourrez changer l’ID de votre application ainsi que son nom (Title Text). Sélectionnez le contenu de la case Content ID et copiez-le quelque part où vous pourrez le retrouver facilement plus tard (ici UP9000-NPXX12346_00-TESTAPP200000000).

Une fois vos modifications effectuées, sauvegardez en cliquant sur File > Save.

Fermez cette fenêtre, et exécutez le fichier orbis-pub-gen.exe. Vous allez vous retrouver face à cette fenêtre :

Double cliquez sur Image0. Une nouvelle fenêtre va s’ouvrir. Glissez-déposez-y (ça m’a fait aussi mal de l’écrire que vous de le lire) le contenu entier du dossier de votre homebrew. Votre fenêtre devrait alors ressembler à ça :

Rendez vous dans l’onglet Chunk, faites un clic droit sur Image0 Root, glissez votre souris sur Switch Chunk Assignment of the File(s) et sélectionnez #0 : Chunk #0.

Cette étape est importante, faites-la correctement.

Vous pouvez maintenant fermer cette fenêtre. De retour sur la fenêtre précédente, cliquez sur Command > Project Settings. Allez maintenant dans l’onglet Package et collez le Content ID que vous avez récupéré plus tôt et sélectionnez “Freemium App”.

Dans la case Passcode, mettez uniquement des “0”. Ainsi, ils pourront être décryptés et modifiés par d’autres utilisateurs ;)
Toutefois, si vous êtes un égoïste, vous pouvez mettre autre chose (mais sachez que l’Univers ne vous apprécie pas beaucoup).

Une fois tout ceci configuré, cliquez sur “OK”, puis sur “Build” lorsque vous en aurez l’occasion. Une autre fenêtre va alors s’ouvrir : sélectionnez l’endroit où votre fichier .PKG sera enregistré dans Output Path. Cliquez sur “Build“.

Ici, ne touchez à rien.

La création du package va commencer ! Une fois terminée, vous aurez ce message:

WOW ! Aucune erreur !

Si tout s’est bien passé, vous devez trouver votre fichier .PKG à l’adresse de destination entrée précédemment.

5) Installation du package sur la PS4

Pour installer l’homebrew sur votre PS4, mettez votre fichier .PKG fraîchement généré sur une clé USB ou un disque dur formaté en FAT32 ou ExFAT (la console ne le reconnaîtra pas sinon). Lancez le hack (retrouvez notre tuto à cette adresse, si vous ne savez pas faire). Une fois terminé, transférez le payload PS4HEN sur votre console.

Si tout s’est bien déroulé, vous voir une option supplémentaire à la fin de vos paramètres : Debug Settings (avec la petite étoile devant).

Les Debug Settings (les paramètres de debuggage, quoi)

Branchez votre clé USB à votre console et naviguez dans Game > Package Installer : vous verrez votre fichier .PKG ! Sélectionnez-le et installez-le. Allez ensuite dans le menu de votre PS4 😀

Tadah ! Voici votre application!

Vous pouvez évidemment lancer votre bel homebrew (sinon, quel est l’intérêt ?) :

Et voici un petit screenshot du sample executé ! 🙂

 


Si vous voulez tester cet homebrew, voici le lien!

Voilà voilà, vous savez maintenant comment construire des homebrews pour PS4 ! Plus d’excuses, développeurs et apprentis développeurs, développez vos meilleurs homebrews et jeux ! 😀

5) Post Scriptum

Nous allons ici revenir sur quelques points sur lesquels nous sommes passés trop rapidement dans ce tutoriel. 

Tout d’abord, nous ne partagerons pas dans cet article les fichiers du SDK PS4 officiel. Il s’agit en effet d’une suite de logiciels sous licence, et nous ne tenons pas à avoir de problèmes avec Sony (et accessoirement, la justice). On ne vous remet pas le petit panneau, mais on vous rappelle juste que la peine endurée peut s’élever jusqu’à 300 000€ et 3 ans d’emprisonnement. Sachez aussi que tout lien vers le SDK dans les commentaires de cet article (et n’importe où sur ce site/forum) sera systématiquement supprimé et le posteur pourra être banni.

Pour la petite histoire, il y eu d’abord un leak du SDK PS4 4.50, mais malheureusement il ne fonctionnait que pour les PS4 en firmware 4.70 minimum (étrange, n’est-ce pas ?). Donc, j’étais un peu bloqué quand un ami (Darbness, merci à lui) m’a contacté et donné les fichiers du SDK 3.50, qui lui est compatible avec le firmware 4.05. Nous avons donc fusionné les fichiers du 3.50 avec ceux du 4.50 pour obtenir un SDK fonctionnel.

Concernant le code du sample utilisé dans ce tutoriel, il est effectivement un peu compliqué car, vous vous en doutez sans doute, c’est un peu plus qu’un simple “Hello World“. C’est en fait un exemple qui illustre le processus de rendu des caractères en utilisant des librairies de polices. Plus techniquement : ce programme montre en fait la méthode d’assignation de la mémoire à la librairie de polices, et le processus dans lequel les caractères sont rendus par la librairie de polices.
Après le chargement des modules de la librairie, ce programme effectue le rendu des caractères et décharge ensuite les modules de la bibliothèque.
Enfin, il copie les résultats qui ont effectué le rendu dans la mémoire de la même taille qu’un buffer frame dans les buffers frame. Après ceci, le programme l’affiche pendant 10 secondes, sans changer le contenu des buffers frame. Les résultats rendus sont alors affichés sur l’écran. Voilà, c’est pour cela que ce petit “Hello World” fait en fait 770 lignes !

Si vous êtes encore là, merci de nous avoir lu et à très bientôt! 🙂


Crédits et remerciements :

  • Flatz pour le fichier make_fself.py ;
  • Darbness pour m’avoir donné les fichiers du SDK 3.50 ;
  • cfwprophet pour son Fake PKG Generator ;
  • VV1LD pour PS4HEN.