[snes] Final Fantasy Mystic Quest

Aperto da Romhacking.it, Agosto 15, 2007, 23:50:27

Discussione precedente - Discussione successiva

Romhacking.it

Autore: Shinichi
Versione: Non definita
Lingue: Inglese -> Italiano
Stato: In corso
Percentuale: 1%

FFMQ è un gioco "insolito" per la serie Final Fantasy: la passione per i GDR e la mia voglia di divertirmi con una rom impegnativa (Square... ^^) hanno dato vita a questa traduzione che riprendo dopo una lunga sospensione per cause di real life.

Ho iniziato questa traduzione tempo fa, dietro le quinte, quando iniziando a tradurre rom "consigliate" quindi facili trovai la cosa poco interessante, per di più i giochi su cui mi esercitavo non mi piacevano

La scelta della rom da tradurre cadde su questo gioco dato che è molto particolare per essere un gioco della serie Final Fantasy, da appassionato mi ha incuriosito molto ed in più non è stato mai tradotto

Premetto che questo gioco ha delle tecniche di programmazione di cui allora non sapevo nulla e di cui tutt'ora non riesco a trovare nessuna citazione in alcun testo (come il font a catena di cui parlerò in seguito)

Armato di tutta la logica, programmi, e nozioni possibili ( ma soprattutto della prima) mi posi l'obiettivo di cercare tutte le tecniche di programmazione a me sconosciute.

Ciò che capii in poco tempo è che quella rom conteneva diverse tecniche di codifica e decodifica di testo e offset che si possono trovare sulle guide, diversi tipi di gestione del testo e sopratutto che molte tecniche non mi erano note e che il primo passo per tradurre la rom sarebbe stato fare chiarezza su queste.

Detto questo torno al presente, precisamente a ieri in cui nella chiave USB trovo gli appunti frutto del lavoro di 1 mese di studio, e anche la traduzione avviata.

Ho deciso di tenere solo gli appunti sulle tecniche scoperte e i byte speciali (gestori di alcuni eventi) e la table originale che ho ritrovato , una lista di offset con relative spiegazioni e di cancellare la vecchia traduzione dato che per il particolare tipo di gestione delle mte ho deciso di tradurre tramite dumping, cosa che prima decisi di non fare.

Nei seguenti post spiegherò le scoperte tecniche sul gioco, quelle che so padroneggiare, quelle che ho scoperto ma non so gestire e quelle che ancora sono ignote.

Spero troviate il worklog interessante , durante i lavori postero gli aggiornamenti e vi chiederò pareri sia tecnici che "estetici".

Nei seguenti post le tecniche scoperte e quelle che lo sono di meno .

Jegriva

mi spiace, ma devi conformare il topic al Regolamento della sezione.
cacciator di quei lupi in su la riva - Dante, Pg XIV 49

Retrogamer.it
-=E L I V A G A R=-

Shinichi

Citazionemi spiace, ma devi conformare il topic al Regolamento della sezione.
di nulla, ieri avevo sonno e da gran niubbazzo l'ho dimenticato, tutto sistemato ^^

Shinichi

IL FONT A CATENA - 100 %

Innanzi tutto voglio dire che i programmatori della square mi hanno proprio voluto male XD

fra le prime cose che cercai subito di risolvere (dopo aver capito di fronte a che rom mi trovavo a altro..) fu la tabella dei font

Salto la parte di ricerca relativa classica, quella in cui ho trovato la parola senza mte e ho trovato poi la sua stringa nella rom montando la table e di conseguenza il ritrovamento di mte semplici

dopo poco noto anche la tecnica del dizionario ed i byte trigger, e penso " me ne occupo piu tardi, ora penso alle mte"

andando avanti nella ricerca individuo il blocco di testo del dialogo iniziale, cosi trovo anche quello e aggiungo le nuove mte scoperte

ad un certo punto la sorpresa! la parole "rainbow island" erano identificate da un unico byte! assenza totale di byte trigger! Ed in piu un altra stranezza:alcune mte codificavano i caratteri codificati da altre due (o piu) mte messe assieme!

Per fare chiarezza decido di trovare la tabella del font , se mai ce ne fosse una,da subito e uso questo espediente:

Vado nella tabella che mi ero costruito fatta da caratteri, numeri, alcuni simboli ed mte semplici e cerco le mte stesse riscrivendone una coppia adiacente (ossia corrispondente a due valori ex consecuitivi come 00 e 01) nel search rx con byte che codificassero singoli caratteri (come è nelle normali table) separate da un punto interrogativo (quello che dovrebbe rappresentare il byte di stacco fra due mte)

Nulla da fare, pochi risultati che nel translextion non hanno beccato nulla, ma riprovo,   questa volta con mte CORTE (due mte adiacenti da 2 caratteri)

BINGO! fra i risultati appare una tabella con la successione delle mte, la riconosco dall'ordine dei caratteri e delle mte  che corrispondeva in parte a quello della mia table

Ed ecco la stranezza: alcune mte nel translhextion comparivano con coppie di lettere colorate, in pratica le stesse mte codificavano la successione di due (o piu) mte che facevano riferimento a loro volta a dei caratteri base, a volte byte di codifica mte e caratteri base erano assieme, un macello insomma  :lol:

Inserisco tutte le mte trovate nella tabella e annoto le "stranezze" dopo di che vedo d i trovare il modo di editare la table dovendo cosi capire come funzionava questa " catena di mte"

in pratica i programmatori per comprimere il testo hanno cercato le sequenze di lettere ricorrenti e dopo averle trovate hanno compresso il testo solo per 1 sequenza, hanno addato la mte alla table e fatto questo hanno di nuovo cercato mte!

Caso rarissimo: sequenze di diverse mte erano piu frequenti di sequenze fatte da lettere singole e cosi mi sono spiegato il perche della stranezza.

Ai fini pratici su quale filo logico è costruita la table? La table non viene caricata  tutta assieme ma la rom ricostruisce il processo logico all'inverso usato dai programmatori per comprimere il testo!

Al caricamento di ogni mte vengono conrollate le mte precedentamente caricate e se un byte contenuto è gia stato caricato in riferimento ad una serie di lettere la mte viene caricata sostituendo  ai byte che codifica queli che questi ultimi codificano

Per capirci se a=60

e se la prima mte è codificata dal byte 00

# 60 61 #62 63 # 00 01

dato che si parte da 00 abbiamo legato il byte 00 a 60 61(ab) e 01 a 62 63(cd)
alla terza mte vengono controllate le mte precedenti e dato che sono state dichiarate allora si procede da principio : 00 01 = 60 61 62 63 = abcd

quindi arrivati alla mte vengono controllate le precedenti mte per sapere se i byte codificano altri byte e di conseguenza avere la mte completa


La ricerca e il riutilizzo della tabella MTE è completa al 100 %

Fra poco rimarro senza pc per 3 giorni nei quali continuero il progetto a casa e dopo tornero a postare, magari dopo i vostri commenti ^^

Esiste il tasto edit. Usa quello invece di postare due messaggi nel giro di pochi minuti.

Sorry, [spam mode=off]  :rolleyes:

Vash

bhè complimentoni a te a il solito accidenti alla squaresoft/square-enix....
Vash the stampede
il tifone umanoide
la calamità naturale
l'uomo da 60 miliardi di $$


TRIGUN ONE WORD ONE WORLD

Gemini

CitazioneNei seguenti post spieghero le scoperte tecniche sul gioco, quelle che so padroneggiare, quelle che ho scoperto ma non so gestire e quelle che ancora sono ignote
Sarebbe meglio di no. In questa sezione vanno inseriti soltanto i progressi del progetto, non le spiegazioni tecniche (per quelle basta fare una piccola introduzione nel primo post). Se vuoi fare una cronistoria completa di tutti i progressi tecnici puoi aprire un topic apposito nella sezione romhacking e raccogliere tutto il materiale lì.

Brisma

CitazioneSarebbe meglio di no. In questa sezione vanno inseriti soltanto i progressi del progetto, non le spiegazioni tecniche (per quelle basta fare una piccola introduzione nel primo post). Se vuoi fare una cronistoria completa di tutti i progressi tecnici puoi aprire un topic apposito nella sezione romhacking e raccogliere tutto il materiale lì.
Non vedo perché mai dovrebbe farlo, tu stesso pubblicavi i tuoi lavori nei progressi di Dracula X.

Quindi continua pure e postare qui, daltronde è il tuo topic sul progetto e te lo gestisci come meglio ti sembra ;)
<- [ BrISmA | BloG ] - >
********************
Membro di SadNES cITy
I gruppo italiano di traduzione ROM
http://www.sadnescity.it/
********************
MsN: brisma@hotmail.it - ICQ: 321995513 - eM@il: brisma@alice.it

Gemini

CitazioneNon vedo perché mai dovrebbe farlo, tu stesso pubblicavi i tuoi lavori nei progressi di Dracula X.
Io dicevo solo di cosa si trattava a grandi linee, non come erano stati fatti nei minimi dettagli. Questa non è la sezione adattata per le spiegazioni tecniche. Le 3000 sezioni diversificate non stanno mica lì per sport.

Clomax

senza scannarci su cosa e dove è meglio postare le cose vorrei far notare che i post su progetti sono sempre stati utilizzati in molti modi. la filosofia è quella del, a parte il post iniziale (soggetto a delle regole che bisogna rispettare per ovvi motivi e descritte nel regolamento) il resto della discussione è a ruota libera. in molti casi si è discusso di sottigliezze riguardanti differenze tra versioni oppure si sono postati semplici ma doverosi complimenti (senza arrivare alla melassa stucchevole, gbarl ne è un esempio).

morale:  shinichi, questa area è lo spazio che romhacking.it mette a disposizione dei suoi utenti che vogliono portare avanti un progetto di traduzione e rendere partecipe la comunità tutta dei progressi fatti. sei libero di farci ciò che preferisci. l'appunto di gemini non è completamente sbagliato (raccogliere il materiale utile in una sezione più "a vista" per chi vuole imparare) ma non si può costringere nessuno a farlo ne prevedere quello che verrà scritto su questo topic. l'idea è quella di postare eventuali domande generiche nella sezione romhacking. qualora ve ne fossero, shinichi, la comunità ti sarà grata se li posterai in una sezione più facilmente raggiungibile e identificabile affinchè le persone possano imparare dai tuoi progressi. per il resto lo spazio è tuo, fanne ciò che ritieni opportuno. una cronistoria? perchè no. buon lavoro e benvenuto.

Sephiroth 1311

In bocca al lupo.
Lavorare su qualsiasi cosa sia Square può davver far venire un gran brutto mal di testa. :)
Sephiroth 1311
****************
membro di SadNES cITy
I gruppo italiano di traduzione ROM
http://www.sadnescity.it
*****************************
Fidati di chi ama leggere, fidati di chi porta sempre con sé un libro di poesie. Guarda con sospetto chi ti dice che non ha tempo, che la letteratura è una bella  cosa, che quando si è giovani  si può leggere, ma poi? Mente, non gliene importa nulla. Mente sapendo di mentire.
Roberto Cotroneo

Shinichi

grazie ^^ questa volta sono determinato a finire il progetto

Alla luce di quel che avete detto posterò domande riguardo l'estetica e la programmazione nella sezione apposita e qua i progressi fatti,magari anche la spiegazione di come mi sono scannato

anche se non ho postato (volevo mettere qualcosa di nuovo nel secondo post ma i puntatori non danno vita facile) il lavoro continua e ora perdo la testa con gli offsets (puntatori a due byte  <_<  ma intravedo una luce...), magari fra un po traduco i menu (operazione gia fatta in precedenza) e posto gli screen

per la serie "anche l'occhio vuole la sua parte" :)


Ciao, Shinichi

mortimer

Traduttore di Harverst Moon SNES

Hirimaru

Mod, non si dovrebbe chiudere? Non ci sono aggiornamenti da secoli :/
Soliptica: Progetto GDRV - Larp campania
Nome Socio: Michele Savarese N:154
Ambientazione Amandor: Micale Hevaresse</b>
Carica e Status: Ambasciatore di Nantalath nei rapporti con Rilnin e Guardavie di secondo grado, capobrigata de: I guardiani della notte
Ambientazione Extra Moenia:Dante Albigieri
Ambulatorio Albigieri: C'è una sola cura alla morte.
Ordine deltaProgetto Giochi da tavolo
<b>I cavalieri del giglio:</b> Progetto: <b>Scherma medievale</b> e <b>rievocazione storica</b>.

Clomax