Romhacking.it Forums

Traduzioni => CD/DVD Console Hacking => Discussione aperta da: Tatore87 il Luglio 13, 2011, 19:22:58

Titolo: traduzione gioco ps2
Inserito da: Tatore87 il Luglio 13, 2011, 19:22:58
Salve a tutti, ho iniziato la mia avventura in questo nuovo mondo, premetto che non sono molto esperto di rom hacking, ma ho una buna infarinatura di programmazione.
Il Mio progetto è di tradurre Legend of Legaia 2 anche detto: Legaia Dual Saga, per ps2.
Detto Fatto, come da guida individuo il file che contiene il testo che m'interessa: fs.bin, (ho individuato il testo anche nell'intera iso senza estrarlo), traduco una piccola porzione di dialogo per provare il tutto, salvo , ricontrollo il tutto per verificare se ho commesso qualche errore, tutto ok.
Avvio il gioco...Arrivo alla porzione di codice che ho tradotto e come per magia non succede niente rimane tutto in lingua originale (in questo caso inglese).
Qualche esperto che mi può aiutare, ringrazio anticipatamente per la vostra attenzione
Titolo: Re:traduzione gioco ps2
Inserito da: Phoenix il Luglio 16, 2011, 20:32:12
Domanda scema: sicuro di aver reinserito il file nella ISO? Che programma usi per modificare la ISO?
Altra ipotesi, ma la vedo improbabile, è che ci sia testo ripetuto nel gioco, e quindi quello che hai tradotto non viene effettivamente caricato dal gioco. Cerca quello stesso testo dentro il file che hai tradotto e verifica che non ne esista una copia o più di una.
Titolo: Re:traduzione gioco ps2
Inserito da: Tatore87 il Luglio 16, 2011, 23:05:24
Ciao Phoenix grz per la risposta, ho controllato scrupolosamente tutto il file, ma con scarsi risultati, sembra essere l'unico testo presente. 
Come Programma di Ricerca Relativa Uso Monkey-moore.
Per Quanto riguarda il reinserimento del file ho provato a modificare direttamente la iso ma con gli stessi risultati.
O provato un programma (HxD), che a il comando di leggere la ram usata dall'emulatore in quel momento, ho ritrovato il testo, lo modifico, e si cambia.
Ma il problema rimane,
Altre Soluzioni?
Titolo: Re:traduzione gioco ps2
Inserito da: Phoenix il Luglio 16, 2011, 23:53:54
a questo punto mi viene da pensare il testo reale sia compresso. Hai provato a modificare altro testo e verificare che quello viene visualizzato?
Titolo: Re:traduzione gioco ps2
Inserito da: Tatore87 il Luglio 17, 2011, 12:15:33
in che senso altro testo?   
Intendi trovare altro testo, o di tradurre un altra porzione di dialogo?
Titolo: Re:traduzione gioco ps2
Inserito da: Phoenix il Luglio 17, 2011, 13:28:58
Intendo un'altra parte di testo che c'è nel gioco.
Per quanto riguarda la ram, il fatto che sia presente il testo in ram è normale, il punto è: quello stesso testo si trova nella iso?
Titolo: Re:traduzione gioco ps2
Inserito da: Tatore87 il Luglio 17, 2011, 13:48:48
Nella Funzione Ram ne trovo 3 uguali, esempio: (ciao) (ciao) (ciao..............)
i primi due li trovo solo nella ram, il terzo lo trovo sia nella ram che nella iso (e si trova tra  tutti i dialoghi del gioco).
Ho provato a seguire il tuo consiglio, modificando un dialogo nella scena successiva, ma mi da gli stessi risultati.

Titolo: Re:traduzione gioco ps2
Inserito da: Tatore87 il Luglio 18, 2011, 18:24:00
Novità con il Consiglio di phoenix,
Ho tradotto i menù nessun problema riscontrato, Ma rimane il problema dei dialoghi, che mi sembra un grande ostacolo per me che non sono un esperto.
Mi sa che c'è un altro testo compresso (come detto da phoenix) e io non so come individuarlo..... quindi  ;D Faccio un appello a chi se ne intende, per un aiuto nella risoluzione di questo problema.
Grazie
Titolo: Re:traduzione gioco ps2
Inserito da: tomtom il Aprile 20, 2012, 22:13:26
a che punto sei? fammi sapere il prima possibile grazie  :) :) :) :) ;D
Titolo: Re:traduzione gioco ps2
Inserito da: Gemini il Aprile 20, 2012, 23:40:34
Notare la data dell'ultimo post. ???
Titolo: Re:traduzione gioco ps2
Inserito da: micartu il Aprile 21, 2012, 21:19:21
"o" terza persona del verbo avere si scrive "ho". Non è un buon inizio per un traduttore XD
Titolo: Re:traduzione gioco ps2
Inserito da: tomtom il Aprile 22, 2012, 15:58:10
ma si hanno più notizio di questo ragazzo? o ha mollato la traduzione?  ;)
Titolo: Re:traduzione gioco ps2
Inserito da: Gemini il Aprile 22, 2012, 16:34:13
Rileggendo il topic, fossi in te non ci spererei più di tanto.
Titolo: Re:traduzione gioco ps2
Inserito da: tomtom il Aprile 22, 2012, 16:40:02
peccato era il mio sogno giocarci in italiano  :( :( :(
Titolo: Re:traduzione gioco ps2
Inserito da: Tatore87 il Gennaio 16, 2013, 23:00:36
Salve, Mi scuso per un po di ritardo ( :P  ;D) nella risposta (sono passati anni),
Per tomtom: purtroppo sono rimasto bloccato su quel punto, anche perché non possedendo conoscenze nella compressione del testo non so come andare avanti.
Ho ancora tutti i file Se qualcuno a le capacità e mi può aiutare ho ancora un po di tempo libero.
Grazie
Titolo: Re:traduzione gioco ps2
Inserito da: Tatore87 il Gennaio 17, 2013, 12:07:17
Ecco un Video che riassume il problema.  http://www.youtube.com/watch?v=ZHYgkfyLjHA&feature=youtu.be
Titolo: Re: traduzione gioco ps2
Inserito da: Tatore8725 il Luglio 28, 2026, 17:08:21
Ciao a tutti, sono  Tatore87
dopo diversi anni sono finalmente riuscito a completare la traduzione del gioco.
Chiunque abbia provato a modificarne i testi probabilmente si sarà bloccato quasi subito: all'interno dell'ISO i dialoghi sembrano essere presenti in chiaro nei file .pam contenuti in data/field/aa_pam, ma modificandoli nel gioco non cambia nulla.
Il motivo è che quei file sono soltanto copie inutilizzate rimaste sul disco. Il gioco carica invece le rispettive versioni compresse in formato .lzs, ed è proprio lì che bisogna intervenire.
La compressione utilizzata è una variante dell'algoritmo LZSS di Okumura. Il problema principale è che, durante la decompressione, il gioco modifica il proprio buffer mentre sta copiando i dati. Di conseguenza, un riferimento può rileggere anche i byte appena prodotti: un comportamento che può facilmente causare errori nei compressori realizzati manualmente.
Anche il file FS.DIR, che contiene l'indice dei file, ha richiesto parecchio lavoro. Non è compresso, ma cifrato: ogni valore a 32 bit viene sottoposto a XOR con una sequenza generata da un generatore lineare congruenziale, la cui costante iniziale si trova all'interno dell'eseguibile.
I testi del gioco, inoltre, non si trovano tutti nello stesso punto, ma sono distribuiti in tre aree differenti:
nei file .lzs delle mappe, all'interno di tabelle indicizzate chiamate MSG;
nell'eseguibile SLES_508.91, che contiene menu, oggetti e abilità. In questo caso gli indirizzi delle stringhe sono scritti direttamente nelle istruzioni del processore, quindi i testi non possono essere spostati e ogni traduzione deve rientrare nello spazio originale;
nei file .dat presenti in data/battle, utilizzati per tutorial e battaglie legate alla trama. Il formato è simile a quello delle mappe, ma l'intestazione deve essere individuata manualmente e i puntatori vengono calcolati partendo da zero, anziché da 0x80.
Un'altra difficoltà riguarda la finestra dei dialoghi: può mostrare un massimo di 45 caratteri per riga e non effettua automaticamente il ritorno a capo. Tutto ciò che supera il limite semplicemente scompare. Per questo motivo ogni singola riga tradotta è stata controllata e adattata manualmente.
Al termine del lavoro ho anche confrontato l'eseguibile modificato byte per byte con quello originale, per verificare che ogni cambiamento fosse contenuto esclusivamente nelle aree dedicate alle stringhe e non avesse sovrascritto parti del codice.
Il risultato finale è:
3.409 stringhe tradotte;
90.843 byte modificati;
zero byte modificati al di fuori delle stringhe.
È stato un lavoro lungo, ma finalmente la traduzione è completa.
Titolo: Re: traduzione gioco ps2
Inserito da: Butterhands il Agosto 17, 2026, 16:59:13
Citazione di: Tatore8725 il Luglio 28, 2026, 17:08:21Ciao a tutti, sono  Tatore87
dopo diversi anni sono finalmente riuscito a completare la traduzione del gioco.
Chiunque abbia provato a modificarne i testi probabilmente si sarà bloccato quasi subito: all'interno dell'ISO i dialoghi sembrano essere presenti in chiaro nei file .pam contenuti in data/field/aa_pam, ma modificandoli nel gioco non cambia nulla.
Il motivo è che quei file sono soltanto copie inutilizzate rimaste sul disco. Il gioco carica invece le rispettive versioni compresse in formato .lzs, ed è proprio lì che bisogna intervenire.
La compressione utilizzata è una variante dell'algoritmo LZSS di Okumura. Il problema principale è che, durante la decompressione, il gioco modifica il proprio buffer mentre sta copiando i dati. Di conseguenza, un riferimento può rileggere anche i byte appena prodotti: un comportamento che può facilmente causare errori nei compressori realizzati manualmente.
Anche il file FS.DIR, che contiene l'indice dei file, ha richiesto parecchio lavoro. Non è compresso, ma cifrato: ogni valore a 32 bit viene sottoposto a XOR con una sequenza generata da un generatore lineare congruenziale, la cui costante iniziale si trova all'interno dell'eseguibile.
I testi del gioco, inoltre, non si trovano tutti nello stesso punto, ma sono distribuiti in tre aree differenti:
nei file .lzs delle mappe, all'interno di tabelle indicizzate chiamate MSG;
nell'eseguibile SLES_508.91, che contiene menu, oggetti e abilità. In questo caso gli indirizzi delle stringhe sono scritti direttamente nelle istruzioni del processore, quindi i testi non possono essere spostati e ogni traduzione deve rientrare nello spazio originale;
nei file .dat presenti in data/battle, utilizzati per tutorial e battaglie legate alla trama. Il formato è simile a quello delle mappe, ma l'intestazione deve essere individuata manualmente e i puntatori vengono calcolati partendo da zero, anziché da 0x80.
Un'altra difficoltà riguarda la finestra dei dialoghi: può mostrare un massimo di 45 caratteri per riga e non effettua automaticamente il ritorno a capo. Tutto ciò che supera il limite semplicemente scompare. Per questo motivo ogni singola riga tradotta è stata controllata e adattata manualmente.
Al termine del lavoro ho anche confrontato l'eseguibile modificato byte per byte con quello originale, per verificare che ogni cambiamento fosse contenuto esclusivamente nelle aree dedicate alle stringhe e non avesse sovrascritto parti del codice.
Il risultato finale è:
3.409 stringhe tradotte;
90.843 byte modificati;
zero byte modificati al di fuori delle stringhe.
È stato un lavoro lungo, ma finalmente la traduzione è completa.
Anch'io ebbi un problema simile con Cruis'n World per Nintendo 64, le textures modificate erano compresse e dopo la modifica una volte ricompresse poi il gioco crashava a caricarle, così ho pensato di repointarle altrove lasciandole non compresse e funziona.

Comunque questo problema della compressione ce l'ho per un altro gioco, non riesco a trovare un file risorsa da modificare che mi serve per una traduzione, mi sapresti dire come li hai decompressi? Sarebbe un qualcosa da cui partire.