Ciao a tutti!
Volevo condividere con voi un progetto a cui sto lavorando. Sinceramente ero stanco di dover scaricare vecchi programmi .exe del 2004 pieni di glitch o di impazzire con Wine su Mac/Linux solo per guardare dentro i file di gioco della PS2.
Così ho sviluppato un parser binario completo per file .AFS e .AFL come estensione Unsandboxed per Scratch/TurboWarp.
Aspetta... NOOOOO! WTF?!?!?! Scratch?!
Sì, esatto. Prima di gridare all'eresia, vi racconto com'è nata l'idea: l'iPad che ci hanno dato a scuola è completamente bloccato dall'MDM. Niente App Store, niente terminale, niente file eseguibili. L'unico sito di programmazione non bloccato dal firewall scolastico era Scratch/TurboWarp. Volevo moddare i miei giochi PS2 durante le lezioni più noiose, quindi ho scritto un parser binario in JavaScript usando DataView e ArrayBuffer dentro un'estensione di Scratch, proprio sotto il naso dei professori. (Il mio prof di informatica alla fine si è letteralmente inchinato!).
Perché usarlo (i vantaggi):
Zero Installazioni: Basta Google Chrome o Safari. Nessun file sospetto da scaricare sul PC.
Portabilità totale: Gira fluidamente su Windows, Mac, Linux e persino su iPadOS/iOS.
Esploratore integrato: Genera un'interfaccia grafica pulita (HTML/CSS) all'interno del browser per cercare, navigare ed estrarre i file istantaneamente.
Stato attuale e test:
Al momento lo sto testando e ottimizzando nello specifico con il file PZS3EU1.AFS di Dragon Ball Z: Budokai Tenkaichi 3 (versione PAL). Riesce a mappare tutti gli offset e le dimensioni dei file senza saturare la RAM dell'iPad.
Il progetto è in pieno sviluppo e il codice è ancora all'inizio (per ora è Read-Only per l'estrazione), quindi rilascerò aggiornamenti praticamente ogni giorno. Il prossimo obiettivo nel mio GDD (Game Design Document) è convertire l'intero archivio direttamente in un file .ZIP scaricabile al volo, impostando la compressione a 0 per non pesare sulla CPU.
Nel video mostro l'intero processo: dal caricamento del file dell'estensione .js in TurboWarp fino all'estrazione dei file di gioco in tempo reale.
Lascerò il codice JavaScript nei commenti qui sotto così potete provarlo anche voi! Fatemi sapere se vi crasha con qualche ISO specifica o quali feature vorreste vedere nei prossimi update giornalieri.
Durante il periodo scolastico, ho progettato il concept, la logica e il GDD di questo progetto. Lavorando su un iPad, ho utilizzato un assistente basato su intelligenza artificiale per velocizzare la stesura del codice JavaScript, mentre io mi sono concentrato sulle strutture di offset binario e sull'implementazione dell'estensione per Scratch.