Giunge un importante aggiornamento per la scena PS4 e PS5 con il rilascio di MkPFS 0.0.7, sviluppato da PSBrew, uno strumento che negli ultimi mesi sta diventando sempre più centrale per chi lavora con dump e backup di giochi su console jailbroken.

Questa nuova versione punta soprattutto a rendere ancora più efficiente la gestione dello spazio di archiviazione, grazie a una compressione avanzata dei filesystem PFS utilizzati da PlayStation.
🎉 MkPFS 0.0.7 is live!
Major fix for game-backup folder compression, plus pack/unpack/verify improvements.
For best stability, use exfat -> ffpfsc. Direct folder conversion is still experimental and might not work in specific situations.https://t.co/iSx6PRr037
— Renan Barreto (@RenanGBarreto) June 7, 2026
MkPFS è un tool scritto in Python che permette di creare, comprimere, verificare ed estrarre immagini del filesystem PFS, utilizzato sia su PlayStation 4 che su PlayStation 5.
La sua funzione principale è la conversione dei dump tradizionali, come quelli in formato .exfat, .ffpkg o semplici cartelle, nel formato compresso .ffpfsc.
Questo nuovo standard si sta diffondendo rapidamente nella scena, soprattutto perché è già supportato da strumenti come Kstuff Lite e Dump Installer, rendendo il flusso di installazione molto più semplice e moderno.
Il motivo per cui MkPFS è diventato così rilevante è legato all’impatto diretto sulla gestione dello storage: la compressione può ridurre lo spazio occupato dai giochi anche del 40% o del 60%, a seconda del titolo, permettendo di conservare molte più installazioni su dischi interni spesso limitati o su SSD esterni.
Inoltre, i file in formato .ffpfsc non richiedono decompressione manuale per essere montati o installati, il che rende il processo più rapido e integrato nei tool compatibili.
Con la versione 0.0.7 arrivano correzioni importanti, in particolare una fix critica legata alla compressione di backup molto grandi, insieme a miglioramenti generali della stabilità durante la fase di packing.
Ottimizzato inoltre il processo di conversione da .exfat a .ffpfsc, che al momento rappresenta il metodo più consigliato per ottenere i migliori risultati. Anche la fase di verifica e unpacking è stata migliorata, rendendo il tool più affidabile in scenari di utilizzo intensivo.
Caratteristiche
- Crea e gestisci immagini disco PFS per flussi di lavoro orientati PlayStation.
- Verifica la struttura, gli hash dei payload, la coerenza del layout e la corrispondenza con l’albero dei file sorgente.
- Ispeziona rapidamente il contenuto delle immagini tramite una vista ad albero, invece di dover esplorare strutture raw complesse.
- Lavora con estensioni di immagini comuni come
.ffpfse.ffpfsc. - Utilizza le immagini generate con strumenti come MicroMount e ShadowMountPlus.
- Costruisci il filesystem PFS interno utilizzato nei workflow PKG o FPKG.
- Utilizza lo stesso flusso di lavoro principale sia dalla CLI che dalla libreria Python.
- Esplora una knowledge base integrata e basata su sorgenti per attività di ricerca su PFS e PKG.
Avvio rapido
# Installazione/Aggiornamento tramite pip
python -m pip install -U "mkpfs"
# Creazione immagini - Opzione 1: .exfat → .ffpfsc (Compatibilità massima, funziona con ShadowMountPlus)
python -m mkpfs pack file --verify './BREW1234.exfat' './BREW1234.ffpfsc'
# Creazione immagini - Opzione 2: .ffpkg → .ffpfsc (Funziona con ShadowMountPlus)
python -m mkpfs pack file --verify './BREW1234.ffpkg' './BREW1234.ffpfsc'
# Creazione immagini - Opzione 3: cartella di gioco racchiusa due volte in .ffpfsc (procedura a due passaggi) (Funziona con ShadowMountPlus)
python -m mkpfs pack folder --verify --no-compress --no-adjust-output-file-extension './BREW1234-app' './pfs_image.dat'
python -m mkpfs pack file --verify './pfs_image.dat' './BREW1234.ffpfsc'
rm './pfs_image.dat'
# Creazione immagini - Opzione 4: cartella di gioco senza contenitore intermedio (procedura a passaggio singolo) (--no-compress) (Sconsigliata; vedere le note)
python -m mkpfs pack folder --no-compress --verify './BREW1234-app/' './BREW1234.ffpfs'
# Estrazione di immagini esistenti (operazione inversa alla creazione/compressione).
python -m mkpfs unpack './BREW1234.ffpfs' './BREW1234-extracted/'
Limitazioni e problemi noti
- La conversione
.exfat → .ffpfscrappresenta attualmente il formato più stabile per i backup di giochi compressi. - La creazione diretta di un’immagine a partire da una cartella dell’applicazione senza un contenitore intermedio (procedura a passaggio singolo) non funziona correttamente quando è attivata la compressione dei file. Sebbene l’immagine venga generata e la verifica venga superata con successo, la console legge i file in modo errato a causa di limitazioni tecniche. Di conseguenza, questa modalità non offre alcun vantaggio pratico.
- Con il valore predefinito
--block-size 65536, i file di dimensioni molto ridotte possono causare un notevole spreco dovuto all’allineamento dei blocchi. In alcuni casi particolari, questo può persino portare alla creazione di un’immagine finale più grande rispetto ai dati originali.- Per cartelle contenenti un elevato numero di file piccoli, è consigliato utilizzare la strategia a due passaggi (
cartella grezza → .dat → .ffpfsc) oppure provare dimensioni dei blocchi inferiori, come--block-size 16384o--block-size 32768.
- Per cartelle contenenti un elevato numero di file piccoli, è consigliato utilizzare la strategia a due passaggi (
- La scansione antivirus può ridurre sensibilmente la velocità di conversione, soprattutto durante la fase di scrittura o quando vengono elaborati molti file separati. Se si considera il software affidabile nel proprio ambiente e si desiderano prestazioni migliori, può essere utile disattivare temporaneamente la protezione in tempo reale. In caso di dubbi, è preferibile lasciare l’antivirus attivo e accettare tempi di conversione più lunghi.
Statistiche di compressione
Utilizzando la compressione di MkPFS, è possibile ridurre i file di gioco del 40–60%, diminuendo in modo significativo le dimensioni delle immagini. Il kernel PlayStation è già in grado di leggere nativamente i file nel formato PFSC con un impatto minimo sulle prestazioni.
I valori riportati di seguito sono stati misurati su un titolo homebrew reale che in origine occupava 6.5 GB di file di gioco:
| Formato | Descrizione | Dimensione | Spazio risparmiato |
|---|---|---|---|
.exfat | Immagine di gioco non compressa (exFAT). | ~6.5 GB | Riferimento |
.ffpkg | Immagine di gioco non compressa (UFS). | ~6.5 GB | Riferimento |
.exfat.ffpfsc | Wrapper compresso PFSC sopra immagine exFAT. | ~3.4 GB | -47% |
.ffpkg.ffpfsc | Wrapper compresso PFSC sopra immagine UFS. | ~3.4 GB | -47% |
.ffpfs | Cartella sorgente convertita direttamente in immagine PFSC. | ~3.5 GB | -46% |
Sia il wrapping del singolo file (pack file) sia il packing basato su cartelle (pack folder) producono immagini compresse di dimensioni equivalenti, offrendo così la massima flessibilità senza compromettere l’efficienza.
Installazione
Esecuzione da una copia locale del repository
Installazione da PyPI
pip install mkpfs
mkpfs -h
uv sync --group dev
uv run mkpfs -h
Installazione come strumento locale
uv tool install .
mkpfs -h
Creazione dei pacchetti distributivi
uv build
uv run --frozen twine check dist/*
Riferimento comandi
MkPFS mantiene un’interfaccia dei comandi focalizzata sul ciclo di vita delle immagini. La CLI supporta attualmente i comandi pack, verify, inspect, tree e unpack.
CLI principale
mkpfs [-h] {pack,verify,inspect,tree,unpack} ...
| Parametro | Descrizione |
|---|---|
-h, --help | Mostra la guida principale e termina l’esecuzione. |
pack | Crea un’immagine PFS partendo da una cartella o da un singolo file. |
verify | Verifica la struttura dell’immagine e i checksum dei contenuti. |
inspect | Analizza i metadati dell’immagine e ne mostra un riepilogo di integrità. |
tree | Visualizza la struttura ad albero dell’immagine. |
unpack | Estrae i file da un’immagine in una directory di destinazione. |
pack
mkpfs pack [-h] {folder,file} ...
Utilizzare pack folder per creare un’immagine partendo da una struttura di directory, oppure pack file per trattare un singolo file come un albero virtuale composto da un solo elemento.
pack folder
mkpfs pack folder [-h] [--adjust-output-file-extension | --no-adjust-output-file-extension]
[--compress | --no-compress] [--threshold-gain SOGLIA_GUADAGNO]
[--block-size DIMENSIONE_BLOCCO] [--version {PS4,PS5}] [--inode-bits {32,64}]
[--case-sensitive | --case-insensitive] [--cpu-count NUMERO_CPU]
[--compression-level LIVELLO_COMPRESSIONE]
[--max-compressed-ratio RAPPORTO_MASSIMO_COMPRESSIONE]
[--min-compress-size DIMENSIONE_MINIMA_COMPRESSIONE]
[--no-spool]
[--skip-executable-compression] [--signed] [--encrypted]
[--ekpfs-key CHIAVE_EKPFS] [--require-game-files]
[--temp-folder CARTELLA_TEMPORANEA]
[--verbose] [--dry-run] [--verify]
cartella_sorgente file_immagine
Esempi:
mkpfs pack folder ./input ./game.ffpfs
mkpfs pack folder ./input ./game.ffpfs --encrypted
mkpfs pack folder ./input ./game.ffpfs --require-game-files --verify
mkpfs pack folder ./input ./game.ffpfs --temp-folder ./tmp/mkpfs
| Parametro | Descrizione |
|---|---|
source_dir |
Cartella sorgente dell’app o dell’homebrew da impacchettare. |
image_file |
Percorso del file immagine di output. |
-h, --help |
Mostra la guida ed esce. |
--adjust-output-file-extension |
Adatta automaticamente l’estensione del file di output in base alla modalità di packaging rilevata. È il comportamento predefinito. |
--no-adjust-output-file-extension |
Mantiene invariato il nome del file di output richiesto. |
--compress |
Abilita la compressione dei blocchi PFSC. È il comportamento predefinito. |
--no-compress |
Disabilita la compressione dei blocchi PFSC. |
--threshold-gain THRESHOLD_GAIN |
Guadagno minimo percentuale per blocco richiesto per mantenere i blocchi compressi PFSC. Valore predefinito: 5. |
--block-size BLOCK_SIZE |
Dimensione dei blocchi PFS in byte, oppure valori auto o auto-fit. Predefinito: auto, che corrisponde a 65536; auto-fit sceglie tra 4096 e 65536 in base alla stima del padding dei dati. |
--version {PS4,PS5} |
Versione del profilo PFS. Predefinito: PS4. |
--inode-bits {32,64} |
Modalità bit degli inode. Predefinito: 32. (Nota: la modalità a 64 bit potrebbe essere instabile) |
--case-sensitive |
Crea un’immagine case-sensitive (sensibile a maiuscole/minuscole). |
--case-insensitive |
Imposta la modalità case-insensitive. È il comportamento predefinito. |
--cpu-count CPU_COUNT |
Numero di core CPU da utilizzare per la compressione PFSC. 0 = automatico (max(1, cpu_count()-1)), valori diversi da zero usano max(1, valore impostato). |
--compression-level COMPRESSION_LEVEL |
Livello di compressione Zlib da 0 a 9. Valore predefinito: 7. |
--max-compressed-ratio MAX_COMPRESSED_RATIO |
Rapporto massimo di dimensione PFSC rispetto al file originale (in percentuale). Con 95, i file vengono salvati non compressi se la compressione non riduce abbastanza. Default: 95. |
--min-compress-size MIN_COMPRESS_SIZE |
I file più piccoli di questa soglia vengono salvati non compressi senza tentare PFSC. Se omesso (o 0), MkPFS usa il valore derivato da –block-size (65536 per auto o il valore selezionato in auto-fit). |
--no-spool |
Mantiene la scrittura diretta nell’immagine per il packaging a singolo file. È già il comportamento predefinito quando supportato; in caso contrario si passa automaticamente al metodo legacy con spool temporaneo. |
--skip-executable-compression |
Salta la compressione dei file eseguibili importanti. Predefinito: abilitato. |
--signed |
Crea un’immagine PFS firmata usando una chiave EKPFS e seed a zero. |
--encrypted |
Cifra i blocchi del filesystem usando AES-XTS. |
--ekpfs-key EKPFS_KEY |
Chiave EKPFS opzionale a 64 caratteri esadecimali. Se omessa con –encrypted, viene usata una chiave tutta a zero. |
--require-game-files |
Richiede la presenza di sce_sys/param.json ed eboot.bin prima del packing. |
--temp-folder TEMP_FOLDER |
Cartella temporanea usata per gli artefatti di packaging (tree temporaneo e spool PFSC). Default: cartella temporanea di sistema. |
--verbose |
Mostra dettagli per-file durante il processo di packaging. |
--dry-run |
Simula il processo (scan e layout) senza creare alcun file. |
--verify |
Esegue automaticamente mkpfs verify dopo un packaging riuscito. |
Note
- I nomi dei file di output delle cartelle vengono adattati automaticamente per impostazione predefinita.
- MkPFS usa
.ffpfsquandosce_sys/param.jsoncontiene un Title ID; altrimenti usa.ffpfsc. - L’opzione
--ekpfs-keyha effetto solo insieme a--encrypted.
pack file
mkpfs pack file [-h] [--adjust-output-file-extension | --no-adjust-output-file-extension]
[--compress | --no-compress] [--threshold-gain SOGLIA_GUADAGNO]
[--block-size DIMENSIONE_BLOCCO] [--version {PS4,PS5}] [--inode-bits {32,64}]
[--case-sensitive | --case-insensitive] [--cpu-count NUMERO_CPU]
[--compression-level LIVELLO_COMPRESSIONE]
[--max-compressed-ratio RAPPORTO_MASSIMO_COMPRESSIONE]
[--min-compress-size DIMENSIONE_MINIMA_COMPRESSIONE]
[--no-spool]
[--skip-executable-compression] [--signed] [--encrypted]
[--ekpfs-key CHIAVE_EKPFS] [--temp-folder CARTELLA_TEMPORANEA]
[--verbose] [--dry-run] [--verify]
file_sorgente file_immagine
Esempi:
mkpfs pack file ./payload.exfat ./payload.ffpfsc
mkpfs pack file ./payload.exfat ./payload.ffpfsc --verify
mkpfs pack file ./payload.exfat ./payload.ffpfsc --temp-folder ./tmp/mkpfs
| Parametro | Descrizione |
|---|---|
source_file |
Singolo file sorgente da impacchettare. |
image_file |
Percorso del file immagine di output. |
-h, --help |
Mostra la guida ed esce. |
--adjust-output-file-extension |
Adatta automaticamente l’estensione del file di output in base alla modalità rilevata. È il comportamento predefinito. |
--no-adjust-output-file-extension |
Mantiene invariato il nome del file di output richiesto. |
--compress |
Abilita la compressione dei blocchi PFSC. È il comportamento predefinito. |
--no-compress |
Disabilita la compressione PFSC. |
--threshold-gain THRESHOLD_GAIN |
Percentuale minima di guadagno per blocco necessaria per mantenere i blocchi compressi PFSC. Valore predefinito: 5. |
--block-size BLOCK_SIZE |
Dimensione dei blocchi PFS in byte, oppure valori auto o auto-fit. Predefinito: auto (65536), mentre auto-fit sceglie tra 4096 e 65536 in base al padding stimato dei dati. |
--version {PS4,PS5} |
Versione del profilo PFS. Predefinito: PS4. |
--inode-bits {32,64} |
Modalità inode a 32 o 64 bit. Predefinito: 32. |
--case-sensitive |
Crea un’immagine con distinzione tra maiuscole e minuscole nei nomi file. |
--case-insensitive |
Imposta la modalità non case-sensitive. È il comportamento predefinito. |
--cpu-count CPU_COUNT |
Numero di core CPU utilizzati per la compressione PFSC. 0 = automatico (max(1, cpu_count()-1)). |
--compression-level COMPRESSION_LEVEL |
Livello di compressione Zlib da 0 a 9. Default: 7. |
--max-compressed-ratio MAX_COMPRESSED_RATIO |
Percentuale massima rispetto alla dimensione originale per mantenere la compressione PFSC. Default: 95. |
--min-compress-size MIN_COMPRESS_SIZE |
File più piccoli di questa soglia vengono salvati non compressi senza tentare PFSC. |
--no-spool |
Mantiene la scrittura diretta nell’immagine quando possibile; in caso contrario usa il metodo legacy con staging/spool. |
--skip-executable-compression |
Salta la compressione dei file eseguibili importanti. Predefinito: abilitato. |
--signed |
Crea un’immagine PFS firmata con EKPFS a zero. |
--encrypted |
Cifra i blocchi del filesystem con AES-XTS. |
--ekpfs-key EKPFS_KEY |
Chiave EKPFS opzionale a 64 caratteri esadecimali. Se omessa con –encrypted, viene usata una chiave a zero. |
--temp-folder TEMP_FOLDER |
Cartella per i file temporanei (staging e spool PFSC). Default: cartella temporanea di sistema. |
--verbose |
Mostra decisioni dettagliate per ogni file durante il packing. |
--dry-run |
Analizza e mostra il layout senza creare alcun file. |
--verify |
Esegue automaticamente la verifica dopo il packaging riuscito. |
Note
pack fileora utilizza di default il sistema di streaming diretto verso l’immagine per le combinazioni di opzioni supportate. In modo automatico, torna al metodo legacy basato su staging/spool per le opzioni--signed,--inode-bits 64e--block-size auto-fit.- La modalità di fallback per singolo file crea una struttura temporanea a file singolo utilizzando link simbolici, così il contenuto sorgente non viene duplicato su disco.
- È possibile usare
--temp-folderquando si vuole che i file temporanei del fallback e gli eventuali file spool PFSC legacy vengano salvati in una posizione diversa dalla cartella temporanea di sistema. - L’estensione predefinita per l’output dei singoli file è
.ffpfsc. - Se
pack filefallisce su macOS con erroreOSError: [Errno 22] Invalid argumentdurante la compressione PFSC, è consigliato rieseguire il comando con--cpu-count 1per mantenere la compressione dei blocchi in-process. - Se il file sorgente si trova su un’unità rimovibile o di rete, può essere utile impostare un
--temp-folderlocale su un volume APFS scrivibile.
verify
mkpfs verify [-h] [--source-dir CARTELLA_SORGENTE | --source-file FILE_SORGENTE]
[--expect-crc32 CRC32_ATTESO]
[--expect-manifest-sha256 SHA256_MANIFEST_ATTESO]
[--ekpfs-key CHIAVE_EKPFS] [--new-crypt] file_immagine
Esempi:
mkpfs verify ./game.ffpfs
mkpfs verify ./single.ffpfsc --source-file ./payload.exfat
mkpfs verify ./game.ffpfs --source-dir ./input --expect-crc32 0x7F528D1F
| Parametro | Descrizione |
|---|---|
image_file |
Percorso del file immagine .ffpfs in input. |
-h, --help |
Mostra la guida ed esce. |
--source-dir SOURCE_DIR |
Cartella sorgente opzionale per il confronto della struttura e del contenuto. |
--source-file SOURCE_FILE |
File sorgente opzionale per il confronto di immagini a singolo file. Mutuamente esclusivo con --source-dir. |
--expect-crc32 EXPECT_CRC32 |
CRC32 cumulativo atteso dei dati in formato esadecimale. La verifica fallisce se il valore calcolato non corrisponde. |
--expect-manifest-sha256 EXPECT_MANIFEST_SHA256 |
SHA256 atteso del manifest (64 caratteri esadecimali). La verifica fallisce se non corrisponde. |
--ekpfs-key EKPFS_KEY |
Chiave EKPFS opzionale a 64 caratteri esadecimali per immagini cifrate. |
--new-crypt |
Utilizza la derivazione EKPFS alternativa (newCrypt). |
inspect
mkpfs inspect [-h] [--format {text,json}] [--ekpfs-key CHIAVE_EKPFS] [--new-crypt] file_immagine
Esempi:
mkpfs inspect ./game.ffpfs
mkpfs inspect ./game.ffpfs --format json
| Parametro | Descrizione |
|---|---|
image_file |
Percorso del file immagine .ffpfs in input. |
-h, --help |
Mostra la guida ed esce. |
--format {text,json} |
Formato del report di ispezione. Valori possibili: testo o JSON. Predefinito: text. |
--ekpfs-key EKPFS_KEY |
Chiave EKPFS opzionale a 64 caratteri esadecimali per immagini cifrate. |
--new-crypt |
Utilizza la derivazione alternativa EKPFS (newCrypt). |
tree
mkpfs tree [-h] [--ekpfs-key CHIAVE_EKPFS] [--new-crypt] file_immagine
Esempi:
mkpfs tree ./game.ffpfs
| Parametro | Descrizione |
|---|---|
image_file |
Percorso del file immagine .ffpfs in input. |
-h, --help |
Mostra la guida ed esce. |
--ekpfs-key EKPFS_KEY |
Chiave EKPFS opzionale a 64 caratteri esadecimali per immagini cifrate. |
--new-crypt |
Utilizza la derivazione alternativa EKPFS (newCrypt). |
unpack
mkpfs unpack [-h] [--overwrite] [--ekpfs-key CHIAVE_EKPFS] [--new-crypt] file_immagine cartella_output
Esempi:
mkpfs unpack ./game.ffpfs ./extracted/
mkpfs unpack ./game.ffpfs ./extracted/ --overwrite
| Parametro | Descrizione |
|---|---|
image_file |
Percorso del file immagine .ffpfs in input. |
output_dir |
Cartella di destinazione per l’estrazione. |
-h, --help |
Mostra la guida ed esce. |
--overwrite |
Sovrascrive un percorso di output esistente. |
--ekpfs-key EKPFS_KEY |
Chiave EKPFS opzionale a 64 caratteri esadecimali per immagini cifrate. |
--new-crypt |
Utilizza la derivazione alternativa EKPFS (newCrypt). |
Esempio di output
$ mkpfs pack folder --verify --compress "./BREW00000-app" "./BREW00000.ffpfs"
======================================================================
PFS Image Builder - Parameters
======================================================================
Source path: ./BREW00000-app
Output path: ./BREW00000.ffpfs
Version: 1 (PS4)
Header magic: PFS (20130315)
Compression Setup: PFSC (0x43534650)
Block size: 65,536 bytes (64 KiB)
Inode width: 32-bit
PFS mode: 0x0008 (Bit 0=signed, Bit 1=64-bit inodes, Bit 2=encrypted, Bit 3=case insensitive)
Signed: no
64-bit inodes: no
Encrypted: no
New crypt: no
Case insensitive: yes
Compression: enabled
Game-file checks: disabled
Threshold gain: 20%
CPU cores: 7 (auto)
Zlib level: 7
Dry run: no
======================================================================
Discovering files...
[################################] 100% scan
Compressing 180 files (5.87 GB) using 10 CPU cores...
[################################] 100% compress @ 68.75 MB/s
Writing PFS image to ./BREW00000.ffpfs...
[################################] 100% write @ 728.27 MB/s
Successfully wrote 3.21 GB image
======================================================================
Build Summary
======================================================================
Input path: ./BREW00000-app
Output path: ./BREW00000.ffpfs
Total files: 180
Total uncompressed size: 5.87 GB
Total stored size: 3.21 GB
Compression Statistics:
Compressed files: 53
Uncompressed files: 127
Actual gain achieved: 45.40%
All-PFSC gain: 46.51% (3.14 GB if every file used PFSC)
Block Alignment Waste:
Block size: 64 KiB (65,536 bytes)
Wasted space: 6.75 MB (0.21% of file data blocks)
Elapsed time: 92.46s
Throughput: 65.05 MB/s
Running post-create check...
======================================================================
PFS Check Report
======================================================================
Image: ./BREW00000.ffpfs
Version: 1 (PS4)
Header magic: PFS (20130315)
Compression Setup: PFSC (0x43534650)
Read-only: yes
Mode: 0x0008 (Bit 0=signed, Bit 1=64-bit inodes, Bit 2=encrypted, Bit 3=case insensitive)
Signed: no
64-bit inodes: no
Encrypted: no
Case insensitive: yes
Block size: 65,536 bytes
Inodes: 196
Directories: 14
Files: 180
Compressed files: 53
Files hash-checked: 180
Data CRC32: 0x7A6E1B38
Manifest SHA256: 5eee3aed04394d0abf978037ccfc6ddcf9c3945fa11816fe14f11d5853e5553e
Logical file bytes: 3,443,395,982
Stored file bytes: 6,306,784,749
flat_path_table keys: 193
Warnings: 0
Errors: 0
======================================================================
Sviluppo
Configurare l’ambiente locale:
uv sync --group dev
uv run pre-commit install
Eseguire i comandi di validazione:
./run-tests.sh
uv run --frozen ruff format .
uv run --frozen ruff check .
Changelog
- Diversi miglioramenti e correzioni relativi al packing delle immagini, all’unpacking e alla verifica.
- IMPORTANTE: Questa versione corregge un bug critico legato alla compressione delle cartelle di backup dei giochi (metodi 3 e 4 riportati di seguito).
- ⚠️ Al momento, la conversione di un backup di gioco da
exfat -> ffpfsc(metodo 1) rimane il flusso di lavoro più stabile. - La conversione diretta da una cartella di gioco può funzionare per alcuni titoli, ma è ancora sperimentale.
- I metodi di conversione riportati di seguito sono ordinati dal migliore al peggiore.
- Se riscontri problemi, segnalali a: https://github.com/PSBrew/MkPFS/issues
- ⚠️ Al momento, la conversione di un backup di gioco da
Nota sulla velocità di conversione
La scansione antivirus può influire sensibilmente sulle prestazioni durante la conversione, soprattutto nella fase di scrittura dei dati o quando vengono elaborati grandi quantità di file singoli.
Se si prevede di convertire numerosi titoli in serie e si considera il software affidabile nel proprio ambiente di utilizzo, la disattivazione temporanea della protezione antivirus in tempo reale può contribuire a velocizzare significativamente il processo.
In caso di dubbi sulla sicurezza, è invece consigliabile lasciare attiva la protezione e tenere presente che i tempi di conversione potrebbero risultare più lunghi.
Note sulla stabilità
- La conversione da exfat a ffpfsc rappresenta attualmente la soluzione più stabile.
- La compressione diretta di una cartella di gioco funziona, ma presenta alcune limitazioni nel caso di backup molto grandi o quando la cartella contiene un numero elevato di file di piccole dimensioni. In queste situazioni è consigliabile utilizzare il metodo exfat → ffpfsc.
Altri cambiamenti
- Corretto un problema che poteva causare la corruzione delle immagini PFS nei backup di grandi cartelle di gioco, dovuto a una mappatura errata degli inode in seguito a collisioni nella flat_path_table. (#43)
@RenanGBarreto - Aggiunti controlli preventivi sullo spazio temporaneo necessario per la creazione dei file PFSC, evitando errori dovuti a spazio insufficiente durante il processo. (#34)
@Eamo5 - Corretto un problema che impediva la pulizia automatica dei file temporanei PFSC dopo un errore di compressione. (#38)
@Eamo5 - La compressione viene ora saltata automaticamente per i file eseguibili o per quelli troppo piccoli, migliorando l’efficienza complessiva. (#33)
@RenanGBarreto - Modificato il comportamento della riga di comando: il parametro predefinito min-compress-size viene ora impostato automaticamente in base alla dimensione effettiva del blocco utilizzato. (#32)
@RenanGBarreto - Introdotti diversi miglioramenti alle prestazioni generali, con ottimizzazioni che rendono più rapido ed efficiente il processo di gestione dei file. (#30)
@RenanGBarreto - Aggiunto il supporto al packing in streaming senza utilizzo di file temporanei tramite l’opzione –no-spool, insieme a funzioni di verifica, estrazione e visualizzazione della struttura dei file con un utilizzo ridotto della memoria. (#19)
@rdmrocha
Download: Source code MkPFS v0.0.7
Alcune parti di questo articolo sono state generate con l’aiuto dell’intelligenza artificiale. Questo articolo contiene link affiliati a Amazon. Se acquisti tramite questi link, potrei guadagnare una commissione senza costi aggiuntivi per te.🔥 Prodotti in promozione e articoli più venduti: PS5
Vedi altri prodotti PS5
![[Scena DS] GimliDS si aggiorna alla versione 1.7: Migliorati salvataggi su SD, memoria, compatibilità Turrican e gestione EasyFlash](https://www.biteyourconsole.net/wp-content/uploads/GimliDS1900-238x178.webp)


![[Scena DS] GimliDS si aggiorna alla versione 1.7: Migliorati salvataggi su SD, memoria, compatibilità Turrican e gestione EasyFlash](https://www.biteyourconsole.net/wp-content/uploads/GimliDS1900-100x75.webp)

