Come dire: “detto, fatto” 
Visto che la tentazione di smontare questo gioco era forte mi sono messo all’opera e ho scritto il dearchiviatore (ottimizzato per la versione USA, ma dovrebbe andare anche per la JAP). L’uso è semplicissimo: estraete l’eseguibile in un nuova cartella e copiateci all’interno anche i file discimg.fse e discimg.pkg che trovate nella cartella PSP_GAME\USRDIR\ dell’ISO di FF7CC, infine avviate l’eseguibile e vi estrarrà tutti i dati del gioco in una nuova cartella data. Come mio solito fare, trovate il download dell’eseguibile al fondo di questo articolo, subito sotto i sorgenti C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | /* Crisis Core: Final Fantasy VII Dearchiviatore 1.0beta 31/03/2008 - Brisma */ #include <stdio.h> long int offset, dimensione, padding, num_file, num_dummy, i, z = 1; int buffer[160978944]; // 160978944 è la dimensione del // file più grande (nella versione USA) char stringa[255]; FILE *discimg_fse, *discimg_pkg, *estratto; int main() { printf("Crisis Core: Final Fantasy VII Dearchiviatore 1.0beta by Brisma\n\n"); if(!((discimg_fse=fopen("discimg.fse", "rb")) == NULL)) { if(!((discimg_pkg=fopen("discimg.pkg", "rb")) == NULL)) { mkdir("data"); fseek(discimg_fse, 0, SEEK_END); num_file=ftell(discimg_fse) / 12; fseek(discimg_fse, 0, SEEK_SET); for(i = 1; i <= num_file; i++) { fread(&offset, 4, 1, discimg_fse); fread(&dimensione, 4, 1, discimg_fse); fread(&padding, 4, 1, discimg_fse); if (dimensione > 0) { printf("Estrazione file discimg.pkg.%d Offset %X Dimensioni %d byte...", z, offset*2048, dimensione); sprintf(stringa, "data\\discimg.pkg.%d", z); estratto=fopen(stringa, "wb"); fseek(discimg_pkg, offset*2048, SEEK_SET); fread(&buffer, dimensione, 1, discimg_pkg); fwrite(&buffer, dimensione, 1, estratto); fclose(estratto); printf("[OK]\n"); z++; } } } else printf("Impossibile aprire discimg.pkg\n"); } else printf("Impossibile aprire discimg.fse\n"); _fcloseall(); printf("Estratti %d file.\n", z); getch(); return 0; } |
Download Crisis Core: Final Fantasy VII Dearchiviatore 1.0beta (Eseguibile Win32/Sorgenti C).
Pubblicato il 31 marzo 2008 alle 04:03 da Brisma
ho estratto ed ho ottenuto un sacco di file cn estenzione numerata… dove sono i file audio e video?
Sono proprio tra quei file. Ti basta aprirli con un editor esadecimale e noterai negli header le diciture RIFF (audio) e PSMF (video).
è stupendo quello che stai facendo, solo che ho provato ad aprire i file pkg scompattati e non riesco a capire come e dove cercare i testi per sostituirli in italiano. li ho aperti con un’editor esadecimale,ma di testi non se ne parla.mi puoidare qualche dritta?
Beh, dovresti seguire le normali regole del romhacking per ricercare il testo. Ti consiglio di visitare http://www.romhacking.it/ e di leggerti le varie guide, in special modo quella dei SadNES cITt (di cui faccio parte), ma anche la mia (che è un’applicazione pratica della teorica dei SadNES).
Anche se parlano di ROM la teoria è sempre quella, non c’è differenza se un gioco è per SNES o PSP.
Ciao
ok, grazie a te. come posso mi metto al lavoro, qualcosa sono già riuscito a fare. mi piacerebbe riuscire ad aiutarti per ricreare i testi di crisis core in italiano e sto girando in rete da una settimana. se ho novita torno ad informarti e ad informarmi, magari in 2 il lavoro è meno lungo e meno pesante.
ciao e grazie
Io prima dell’uscita del gioco in Italia non farò nulla, poi si vedrà, quindi buon lavoro
io ho la pal in inglese,poi ho visto che in italia esce forse a giugno ma non è ufficiale come data, ne si sa se esce realmente in italiano, comunque se cambi idea fammi sapere.
grazie ancora per i consigli.
Non hai la pal in inglese, hai scaricato la versiona USA.
In europa deve ancora uscire, ciao.
hai ragione, chiedo scusa.
posso farti una domanda per capire alcune cose?
se rompo smetto di assillarti.
ho provato ad aprire una rom per nes con searhr, e se non ho capito male,nella voce a destra(ASCII)dovrebbe venirmi fuori il testo nella stringa alla quale corrisponde,ma, oltre a parole e numeri messi alla rinfusa, non vedo altro.
probabilmente ho saltato qualche passaggio?
Le stringhe che vedi sono solamente di anteprima, sta a te identicare quella a cui corrisponde un testo sensato e, di conseguenza, generarne una table.
Comunque sia ti consiglio di postare nel forum di Romhacking.it nelle apposite sezioni, troverai tante persone come me che possono aiutarti.
Ciao
ok, ci vediamo in romhacking.
Salve, con un editor esadecimale ho trovato un file video, ora come faccio a riprodurlo??
Grazie mille
Stessa domanda di Zero Cool,come facciamo a riprodurlo/convertirlo?
Per quanto riguarda il flusso video c’è in giro un codec che lo decodifica, provate a cercare “pmf codec psp win32″ su google e qualcosa troverete.
Per l’audio invece io ho risolto estraendo lo stream tramite mplayer (l’at3) e convertendolo in wav da psp con un homebrew apposito.
Infine ho riunito i due flussi con VirtualDub per ottenere un normale DivX, o per lo meno questo è ciò che ho fatto con i video di Final Fantasy Tactics psp, ma penso sia lo stesso su tutti i giochi
ciao, per prima cosa volevo farti dei complimenti per il magnifico lavoro svolto, poi volevo avere qualche info….
potrei sapere come si estrae il video e l’ audio dai file discim.pkg.x (ho già visto gli header con il “PSMF” e il “RIFF” e li mi sono bloccato) e qual’ è l’ homebrew per convertire i file at3 in wav e come si ottiene lo stream con media player?
poi volevo dire che funziona anche con la versione ITA del gioco.
grazie mille per le risposte^^
ho risolto da solo, ma posso postare questo programma su un sito di psp?
Se ne lasci citata la fonte sì
certo che la lascio…. grazie mille