Il developer TheDarkprogramer ha pubblicato un nuovo aggiornamento per la raccolta di strumenti PS4 open source, tutto in un’unica libreria, e tutto scritto in C#.
Questo nuovo aggiornamento introduce il supporto per gli strumenti di recupero, lo sblocco dei trofei e quant’altro. La Collection vede strumenti come PS4 PS2 Classics Manager, PS4 PS2 Classics GUI, PS4 PKG Installer (PKG Store) e PS4 Save Manager.
Huge update to PS4_Tools
You now have the ability to use the recovery tools, Trophy unlocker and many more as found on
PS4 Tools (Homebrew)https://t.co/9ehwcckQdO— The Darkprogramer (@thedarkprogr) February 12, 2021
Progetti attualmente in esecuzione con PS4 Tools
- PS4 PS2 Classics Manager (non rilasciato) Github
- PS4 PS2 Classics GUI Github
- PS4 PKG Installer (PKG Store) Github
- PS4 PKG Installer Android Github
- PS4 PKG Tool- By pearlxcore Github
- PS4 Explorer – By Lapy Github|Twitter
- PS4 Tools Homebrew (WIP) Github
- PS4 Save Manager Github
Applicazioni di esempio
Image Util
Creato da DefaultDNB
PS4 Tools Homebrew WIP
Creato originariamente solo per mostrare la potenza degli strumenti PS4, ma ora ha molte più caratteristiche
PS4 PKG Viewer
Creata come un’app di esempio, legge i file PKG della PS4 Github
PS4 Save Manager
Creato per gestire i file di salvataggio scaricati con PS4 Tools Homebrew o con Save Data Mounter di Chendo Chap
Guida
Aggiungere il file .DLL
alla propria soluzione. Fatto Spolverato e pronto per l’uso.
Struttura della classe
La struttura della classe potrebbe cambiare nelle versioni future
namespace PS4_Tools
├── PS4_Tools /*Some Default Methods For the Tools*/
│ ├── AppCommonPath() /*Returns Working Directory For Tools*/
│ ├── DeleteDirectory() /*Recursive Deletes Directory*/
├── SELF /* Reserved class for SELF/ELF Handeling*/
├── Media /* PS4 Media Class*/
│ ├── Atrac9 /*Atrac9 Class*/
│ ├── ├── LoadAt9 /*Loads Atrac9 Method still in the works*/
├── Image /* PS4 Image Class*/
| ├── PNG /*PNG Class*/
│ ├── ├── Create_PS4_Compatible_PNG /*Creates a Complatible PS4 PNG*/
│ ├── DDS /*DDS Class*/
│ ├── ├── SavePNGFromDDS /*Saves a PNG from a DDS File*/
│ ├── ├── GetStreamFromDDS /*Gets a Stream from a DDS*/
│ ├── ├── GetBitmapFromDDS /*Gets a Bitmap from a DDS*/
│ └── GIMImages /*GIM Image Class*/
├── RCO /* PS4 RCO Class*/
│ ├── DumpRco /*Dumps a Rco File*/
├── SaveData /* PS4 SaveData Reserved Class*/
├── PKG /* PS4 PKG Handling Class*/
│ ├── Official /*Some Methods for Official PKG Items*/
│ ├── ├── ReadAllUnprotectedData /*Deprecated*/
│ ├── ├── StoreItems /*Store Items Object Class (Placeholder)*/
│ ├── ├── CheckForUpdate /*Returns a Update_Structure Type*/
│ ├── ├── Get_All_Store_Items /*Returns a List<StoreItems> With Download Links and some other infrmation*/
│ ├── SceneRelated /*Some Methods for Scene Related PKG Items*/
| ├── ├── GP4 /*GP4 File Class*/
| ├── ├── ├── ReadGP4 /*Reads a GP4 File Into a Custom Object*/
| ├── ├── ├── SaveGP4 /*Saves a GP4 File From a Custom Object*/
| ├── ├── Create_FKPG /*Creates a FPKG (addon file from store items for a spesific item*/
| ├── ├── IDS /*IDS Reserved Class*/
| ├── ├── PARAM_SFO /*Param.SFO Reserved Class*/
| ├── ├── ├── Get_Param_SFO /*Reads a Param SFO into a Param.sfo structure*/
| ├── ├── NP_Data /*NP_Data Reserved Class*/
| ├── ├── NP_Title /*NP_Title Reserved Class*/
| ├── ├── ReadPKG /*Reads a PKG File (Powered by maxtron)*/
| ├── ├── Read_PKG /*Reads all unprotected data from a pkg (Powered by Leecherman)*/
| ├── ├── Rename_pkg_To_ContentID /*Renames a PKG File to the Content ID of the SFO*/
| ├── ├── Rename_pkg_To_Title /*Renames a PKG File to the Title of the SFO*/
│ ├── PS2_Classics /*Class For Building PS2 Classics*/
| ├── ├── Create_Single_ISO_PKG /*Creates a Single ISO File PS2 Classic*/
| ├── ├── Create_Multi_ISO_PKG /*Creates a Multie ISO File PS2 Classic*/
│ ├── PSP_HD /*Class For Building PSP HD Items*/
│ ├── PUP /*Class For PUP Tools*/
| ├── ├── Unpack_PUP /*Unpacks a PUP Files*/
└── (More to come)
Utilizzando PS4_Tools
Si prega di consultare il modulo dei tester per vedere come funzionano alcune delle classi se non documentate qui.
Lettura di un file PKG (utilizzando il set di strumenti ufficiale) /Deprecato 18-11-2018/
Leggere e salvare un file GP4
PS4_Tools.PKG.SceneRelated.GP4.Psproject project = PS4_Tools.PKG.SceneRelated.GP4.ReadGP4(@"C:\Users\3deEchelon\Documents\Sony\Crash Bandcioot Twinsanity.gp4"; if(project.Fmt != "gp4") { MessageBox.Show("This is not a valid PS4 Project"); return; } //lets validate some pkg item info before saving if(project.Volume.Package.Passcode.Length != 32) { MessageBox.Show("Passcode Lentgh is not valid"); } //to save a gp4 PS4_Tools.PKG.SceneRelated.GP4.SaveGP4(@"C:\Users\3deEchelon\Documents\Sony\tempworking.gp4", project);
Visualizzazione di un file dds
var item = PS4_Tools.Image.DDS.GetBitmapFromDDS(@"C:\Users\3deEchelon\Desktop\PS4\psp Decrypt\Sc0\icon0.dds"); pictureBox1.Image = item;
Scaricare un file RCO
PS4_Tools.RCO.DumpRco(@"C:\Users\3deEchelon\Desktop\PS4\RCO\Sce.Cdlg.GameCustomData.rco");
Riproduzione di un file at9
PS4_Tools.Media.Atrac9.LoadAt9(@"C:\Users\3deEchelon\Desktop\PS4\AT9\prelude1.at9");
Ottieni informazioni sull’aggiornamento del gioco
var item =PS4_Tools.PKG.Official.CheckForUpdate(textBox1.Text); /*TitleID Patch Data Is Avaiavle Here*/ /*Build some string*/ string update = label1.Text; update += "\n Version : " + item.Tag.Package.Version; int ver = Convert.ToInt32(item.Tag.Package.System_ver); update += "\n System Version : " + ver.ToString("X"); update += "\n Remaster : " + item.Tag.Package.Remaster; update += "\n Manifest File Number of Pieces : " + item.Tag.Package.Manifest_item.pieces.Count; label1.Text = update;
Ottieni articoli dello Store attraverso un TitleID
var storeitems = PS4_Tools.PKG.Official.Get_All_Store_Items(textBox1.Text);
Ottieni dati non protetti da PKG
PS4_Tools.PKG.SceneRelated.Unprotected_PKG ps4pkg = PS4_Tools.PKG.SceneRelated.Read_PKG(@"C:\Users\3deEchelon\Desktop\PS4\Euro.FISHING.COLLECTORS.EDITION.PS4-DUPLEX\Euro.Fishing.Collectors.Edition.PS4-DUPLEX\duplex-euro.fishing.collectors.ed.ps4\Euro.Fishing.Collectors.Edition.PS4-DUPLEX.pkg"); /*Lets work with the data shall we*/ /*Display the PSFO in some type of info format*/ var item = ps4pkg.Param; for (int i = 0; i < item.Tables.Count; i++) { listBox3.Items.Add(item.Tables[i].Name + ":" + item.Tables[i].Value); } /*Display Image*/ pictureBox2.Image = ps4pkg.Image; var trphy = ps4pkg.Trophy_File; for (int i = 0; i < trphy.FileCount; i++) { listBox4.Items.Add(trphy.trophyItemList[i].Name); }
Crediti
- Maxton – Per l’incredibile lavoro che ha fatto per la scena! (LibOrbisPKG)
- GarnetSunset – Playstation Store DLC Indexer
- stooged – PS4 DLC Indexer (C#)
- cfwprph – Il suo aiuto e l’estrattore di Vita Rco
- IDC – Il suo Pup Extractor per PS4 e altri lavori che ha svolto
- Leecherman – I suoi strumenti sono sempre un ottimo riferimento per me e fanno un ottimo lavoro
- Thealexbarney – La sua grande ricerca fatta sui file atrac9 e sulla loro decodifica
- RedEye-32 – Il suo aiuto per ottenere la decrittografia di ESFM (file all’interno dei trofei)
Download
Download: File Explorer Deprecated
Download: ImageUtil
Download: Main.Testing.App
Download: PS.Tools.Online.Github.Page
Download: PS2.DB.Controller.PS2.Classics
Download: PS4.PKG.Tool.Deprecated
Download: PS4.PKG.Viewer
Download: PS4.Tools
Download: Source code PS4 Tools (AppVoyer)
Progetti Open Source
Questa è una versione open source (alternativa) di PS4 Neighbourhood fornita con l’SDK ufficiale per PS4
Segui la scheda di sviluppo su Trello
Cosa posso fare con questo?
Questo è principalmente per l’uso da parte degli sviluppatori su qualsiasi console che abbia il codice non firmato abilitato e abbia installato l’API corrispondente (rilascio da annunciare).
Con questa app puoi creare la tua applicazione/i tuoi giochi per homebrew PS4 e invece di creare un PKG ogni volta puoi semplicemente collegare l’applicazione/il gioco alla tua directory di file serving e caricare la tua applicazione corrente in tempo reale (questa è comunque l’idea).
Il progetto è quello di assomigliare alla versione ufficiale di PlayStation 4 Neighborhood senza nessuno degli strumenti SCE.
Requisiti
- API installata.
- Il sistema deve eseguire un’unità semi dev (non normale vendita al dettaglio).
Per cambiare la tua console da Normal Retail a Semi Dev, utilizzare semplicemente l’Updater di LightningMods
L’output della console sarà simile a questo:
Fonte: twitter.com