v1.2
Note legali G.I.T. Edizioni Game Italian Translation ® 2007 Tutti i diritti riservati Versione: 1.2 – Mercoledì 12 Settembre 2007 Questo documento può essere liberamente distribuito e consultato su internet. Ne sono proibite la riproduzione totale e la ripubblicazione sotto altro nome. In caso di riproduzione parziale deve essere esplicitamente indicata la fonte del testo, ovvero questo stesso documento. Ogni uso personale è consentito, mentre è severamente proibito qualsiasi uso commerciale. L‟autore non si ritiene responsabile di eventuali danni derivati dall‟uso di questo documento. “Game Italian Translation” è un marchio registrato. “Microsoft® Blocco note”, “Microsoft® Word”, “Microsoft® Excel” e “Microsoft Visual Basic” sono marchi di proprietà di Microsoft Corporations. “Corel Paint Shop Pro Photo” è un marchio di proprietà di Corel Corporation. “Hex Workshop” è un marchio di proprietà di BreakPoint Software, Inc. “WinZip®” è un marchio di proprietà di WinZip Computing, Inc. “PE Explorer” è un marchio di proprietà di Heaventools Software. Tutti i copyright sono dei rispettivi proprietari.
2
Sommario Note legali
2
Sommario
3
Premessa
6
Appunto v1.1
6
PerchĂŠ tradurre
7
Passioni, immagini e trasparenza Lingua originale o traduzione? La passione
7 8 8
Conoscenze linguistiche di base
10
Il dizionario inglese-italiano Alcuni punti base Inglesismi Errori comuni Alcuni esempi pratici Glossario base Tradurre, non spiegare
10 10 11 11 12 13 14
Fasi pratiche di una traduzione
15
Introduzione Ricerca dei testi Se la ricerca fallisce Estrazione dei testi Estrazione da file EXE e DLL Iniziare la traduzione Elaborazione grafica Elaborazione tramite motore grafico Sottotitolazione filmati Inserimento dei testi Beta testing Patch finale e aggiornamenti
15 15 17 19 21 23 24 27 28 28 29 29
Flusso decisionale di traduzione
32
Qualche schema rapido Ricerca dei testi Estrazione dei testi, reinserimento e traduzione Preparazione patch e release Strumenti utili
32 32 33 33 34
Introduzione Editor esadecimali (Hex Workshop)
34 34 3
Editor di formati Win32 (PE Explorer) Computer Assisted Translations software (MultiTrans) Unpacker (UN-PACK) Generatori di installer (Setup Generator) Patch maker (Clickteam Patch Maker) Dizionari in linea (Babylon Translator) Scompattatori (Dragon UnPACKer) Editor filmati BIK (RAD Video Tools) Editor filmati (VirtualDub) Altri programmi Risorse pubbliche Esempio 1 – Clive Barker’s Undying
36 38 39 40 41 44 45 47 47 47 47 49
Fasi della traduzione Diario, avvisi e sistema Eventi script Finestre principali Sottotitoli La patch finale Note conclusive
49 50 52 54 56 62 63
Esempio 2 – Delta Force: Black Hawk Down Fasi della traduzione Menu, sottotitoli, sistema, obiettivi generici, armi e oggetti Missioni La patch finale Note conclusive Considerazioni finali
65 65 66 69 69 72 73
Una guida in evoluzione Link utili Guide utili Un consiglio finale
73 73 74 74
Appendice
75
Istruzioni per l‟uso Listato dei file di Clive Barker‟s Undying Listato dei file di Delta Force: Black Hawk Down Indice delle figure
75 75 80 82
Fasi pratiche di una traduzione Flusso decisionale di traduzione Strumenti utili Esempio 1 – Clive Barker‟s Undying Esempio 2 – Delta Force: Black Hawk Down Note del lettore
82 82 82 82 83 84
4
Alle ragazze e ragazzi del G.I.T. che hanno intrapreso questa avventura tutti assieme con uno spirito di amicizia unico Ai tanti appassionati che, col loro supporto, hanno partecipato alla vita del G.I.T. A tutti coloro che condividono questa passione meravigliosa per i videogiochi e la lingua italiana
5
Premessa Da svariato tempo stavo valutando la possibilità di scrivere una guida che si proponesse di stendere le fasi principali che ogni traduzione del Game Italian Translation doveva per forza attraversare. Il vero motivo per cui non mi sono mai prima d‟ora messo a scrivere una tale guida è che non ero convinto della sua utilità, in quanto un tal documento non avrebbe mai potuto essere completo per due motivi: 1. ogni videogioco per PC è storia a sé stante, in quanto a struttura interna 2. l‟esperienza del G.I.T. non avrebbe mai potuto ricoprire tutti i casi reali Nonostante tali dubbi personali, ho comunque deciso di scrivere una guida introduttiva con lo scopo di raccontare (più che di insegnare) quella che è la mia esperienza personale nel campo. Questa guida non si propone quindi come un documento in grado di insegnare come effettuare una traduzione di un videogioco per PC, quanto come un‟introduzione a come muovere i primi passi in questo mondo, frutto di una serie di “appunti” che ho maturato nel corso di più svariati anni all‟interno del gruppo. Il resto deve poi venir da sé. Sia comunque chiaro fin da subito che più che le conoscenze, per affrontare una traduzione serve passione e tanto, tanto tempo libero! Solo in questo modo si potrà infatti espandere le basi in quello che sono solito chiamare “istinto da traduttore”, che poi non è nient‟altro che l‟esperienza che ognuno deve maturare dentro di sé per poter andare avanti senza troppi problemi (tenendo sempre a mente che i problemi, purtroppo, non mancheranno mai). Parlando della guida in sé, la sua trattazione è suddivisa in alcune aree principali, ovvero:
perché tradurre (introduzione sul significato delle traduzioni) conoscenze linguistiche di base (alcuni casi base della traduzione da inglese a italiano) fasi pratiche di una traduzione (ricerca testi, estrazione, traduzione e inserimento) strumenti utili (i tool di lavoro necessari) esempi pratici (tratti direttamente dalle esperienze lavorative del G.I.T.) considerazioni finali (con link alle principali fonti d‟informazione sul web)
Ogni area è strettamente legata alle altre e spiega una piccola parte di questo enorme argomento. Prima di chiudere, voglio ricordare che nessuna guida (per quanto completa) può essere sostituita con l‟esperienza diretta. Se quindi questa guida vi lascerà molti dubbi, come è normale che sia visto che è tutto fuorché completa, non vi resterà altro che chiedere direttamente consiglio ad altre persone che già conoscono l‟argomento (a ciò proposito esistono vari forum che vi segnalerò nel capitolo “Considerazioni finali”). Adesso ho proprio finito, quindi vi lascio con questa guida. Ci vediamo di nuovo alla fine per gli immancabili saluti finali.
Marco “CavaliereOmbra” Macciò Game Italian Translation
Appunto v1.2 Rieccomi! A distanza di oltre un anno dalla stesura di questo documento, ho deciso di riprendere in mano quanto avevo scritto per fare varie aggiunte (parti che in prima analisi avevo tralasciato) e correzioni. Non si tratta quindi né di un rifacimento, né di una stesura exnovo, cosa che invece mi riservo di fare un (lontano) futuro. Buona lettura!
6
Perché tradurre Passioni, immagini e trasparenza
Ottima fra le possibili traduzioni di poemi antichi in lingua moderna, quella che generalmente ecciterà le stesse passioni nell’anima, e le stesse immagini alla fantasia con lo stesso effetto dell’originale Ugo Foscolo Così scriveva Ugo Foscolo nei suoi anni migliori, alle prese con la difficile opera di traduzione italiana di titoli del calibro dell‟Iliade e dell‟Odissea che lo tormentarono nel corso degli anni. Sicuramente le traduzioni al centro di questo documento non sono nemmeno lontanamente paragonabili a quanto affrontato dal noto autore, ma la sua frase può comunque essere fonte di ispirazione anche per chi si sta per cimentare nei videogiochi per PC, così come in ogni ambito di questo tipo. A lungo ho cercato una frase che potesse esprimere in poche parole ciò che facciamo al G.I.T., e con questa sento di aver finalmente raggiunto il mio obiettivo, perché nessun pensiero potrebbe essere allo stesso tempo più conciso e chiaro. Ciò che Foscolo ha così chiaramente espresso è il semplice fatto che una traduzione per poter essere ottima non deve essere “solo” grammaticalmente corretta, ma deve esprimere quello che è il cuore (o l‟anima, se così si vuol dire) del testo originale, con tutte le sue passioni, sentimenti, riflessioni e immagini che essa è in grado di trasmettere. Il dubbio che però lo attanagliò in ogni passo effettuato sugli scritti di Omero era come raggiungere questa perfezione, perché una formula universale era chiaro che non esisteva. Nessuno saprebbe ancor oggi rispondere con matematica certezza a questo dubbio, ma è comunque certo che le buone traduzioni esistono. Una definizione più moderna è stata data in un meeting del 2003 (intitolato “La traduzione: il paradosso della trasparenza”) all‟Università degli Studi di Napoli “L‟Orientale”, in collaborazione con la Biblioteca Nazionale di Napoli:
La trasparenza costituisce uno dei parametri di valutazione della qualità della traduzione specialistica. La lingua filtra il mondo e la traduzione mette in atto un doppio filtro linguistico e culturale. La traduzione dunque in quanto ponte tra due lingue e due culture è un passaggio interpretativo. La trasparenza può allora diventare un canone interpretativo, ma anche presentarsi come paradosso, se si considera la non neutralità della lingua e della cultura La traduzione: il paradosso della trasparenza Vedere una traduzione come un passaggio che deve cercare di essere il più possibile “trasparente”, al di là di quelle che sono le differenze che distinguono ciascun linguaggio, rende abbastanza l‟idea di quale dovrebbe essere lo scopo ultimo di un lavoro di questo tipo. Oltretutto, se ci si fa caso, questa definizione di trasparenza non si allontana poi molto da quella data da Foscolo all‟atto stesso della traduzione, da lui appunto definita come qualcosa che possa mantenere intatte passioni ed emozioni. Non è anche questa una forma di trasparenza che si eleva al di sopra di ogni diversità linguistica e culturale? Per Umberto Eco, comunque, la traduzione assume un significato ancora diverso:
7
La traduzione si fonda su alcuni processi di negoziazione, la negoziazione essendo un processo in base al quale, per ottenere quella cosa, si rinuncia a qualcosa d’altro Umberto Eco La visione di Eco suggerisce un altro aspetto un po‟ più pessimistico, con una inevitabile perdita di qualcosa (che comunque non definisce chiaramente) appartenente all‟originale, in quanto non è possibile travasare un testo da un contesto culturale a un altro, ma al più adattarlo. Continua lo scrittore:
Di qui il peso insopportabile, l’inevitabile frustrazione che deve negoziare con il fantasma di un autore sovente scomparso, con la presenza invadente del testo fonte, con l’immagine ancora indeterminata del lettore per cui sta traducendo e talora anche con l’editore Umberto Eco Ciò nonostante, la traduzione resta un processo necessario anche per lo stesso Eco (come si può leggere qualcosa che è scritto in una lingua sconosciuta?), così come lo era per Goethe che invece scrisse:
I traduttori sono simili a zelanti mediatori che esaltano i pregi di una bella donna mezzo velata: fanno nascere l’impulso irresistibile di conoscere l’originale Johann Wolfgang Goethe Lingua originale o traduzione? Lingua originale o traduzione? Questo è il dubbio principale che tormenta tutti gli scrittori che (come quelli citati sopra) si sono cimentati nella difficile opera di traduzione, un dubbio su cui ho sentito più volte trattare in giro per forum e siti, dove solitamente si venivano a delineare forme precise di pensiero: chi a favore delle traduzioni, chi grande sostenitore delle lingue originali. E questo non solo per quanto riguarda i videogiochi (anzi), ma anche per tutto il resto, come film, libri... Certo, sempre a patto che si conosca la lingua originale in cui è stata creata un‟opera! Ma cosa differenzia queste due correnti di pensiero? In fondo non molto, perché alla radice si trova la stessa voglia di godere al meglio di questi attimi di relax (in tutte le sue varie forme). Ciò che veramente le differenzia è il modo in cui l‟una parte e l‟altra parte identificano questa esperienza... come una sorta di Yin e Yang, due facce della stessa medaglia. È innegabile che la lingua originale ha un fascino tutto suo, ovvero quello in cui è stata pensata e realizzata una data opera, ma allo stesso tempo la comodità di concedersi un attimo di completa tranquillità sulla propria sedia o poltrona per concentrarsi solo sull‟esperienza in sé, senza preoccuparsi di non capire una parola o perdere anche un solo concetto, è qualcosa che vale la pena di vivere. La passione Ci sono molte caratteristiche che un buon traduttore può possedere: proprietà di linguaggio, conoscenza di lingue straniere, vocabolari molto ampi, buona forma stilistica e passione. Tutte
8
sono indispensabili, ma nel tempo ho coltivato la convinzione che la passione sia quella alla base di tutte le altre (tenendo comunque a mente che, senza conoscenze, da sola non basta). Nel caso di lavori amatoriali sui videogiochi poi questo aspetto ha un‟importanza anche maggiore, in quanto si parla di qualcosa che richiede una buona conoscenza dell‟ambito, dei giochi che si vuole localizzare e molto tempo libero. Senza passione, qualunque traduttore troverebbe questo lavoro privo di interesse in breve tempo, per cercare di passare a qualcos‟altro. Tutto questo senza contare che di tanto in tanto si vedono traduzioni ufficiali (e quindi fatte da persone certamente capaci dal punto di vista linguistico) prive di quell‟anima e di quel sentimento che solo un lavoro fatto col cuore sa esprimere.
9
Conoscenze linguistiche di base Il dizionario inglese-italiano Per quanto questa frase possa sembrare banale, per poter affrontare la traduzione di un videogioco per PC (ma la stessa cosa vale per qualsiasi ambito) è necessaria una buona conoscenza dell‟inglese ancora prima del tempo libero e della volontà. Ad ogni modo, per quanto si possa essere buoni conoscitori della lingua d‟oltremanica, nessuno può conoscere a memoria tutti i termini di un dizionario inglese-italiano. Ecco perché è indispensabile l‟uso di un buon dizionario, sia cartaceo che in forma elettronica (es. Babylon Translator), da consultare alla bisogna. In particolar modo, bisogna fare sempre attenzione ai vari modi di dire gergali che vengono riportati in questi volumi, in modo da comprendere meglio il senso logico di frasi apparentemente oscure. Attenzione: mai usare un programma automatico di traduzione, che non può essere in grado di capire tutte le sfumature che possiede un linguaggio complesso come l‟inglese o l‟italiano. Limitarsi quindi all‟aiuto dei dizionari sui singoli termini (o sulle espressioni), costruendo personalmente la frase italiana.
Alcuni punti base Chiarito questo principio iniziale, vediamo di fissare alcuni punti base di approccio a una traduzione:
l‟inglese non si preoccupa come l‟italiano della punteggiatura, che deve quindi essere spesso rivista, e di ripetizioni (che nella nostra lingua rovinano invece la lettura) che devono essere eliminate tramite l‟uso di sinonimi ove possibile una traduzione letterale non porta spesso a risultati gradevoli (esistono comunque testi che fanno eccezione), quindi si può cambiare del tutto una frase senza però mai stravolgere il senso della stessa nel dubbio non bisogna mai inventare, ma andare a cercare il testo in dubbio all‟interno del gioco per vedere quale ruolo ricopre si deve assolutamente evitare che termini particolari (nomi di oggetti e posti) siano tradotti in due o più modi diversi (es. “foreman” tradotto come “capomastro” e anche “caporeparto”... o l‟uno o l‟altro, altrimenti si generano incomprensioni) tramite l‟uso di un glossario che deve essere comune a tutti i traduttori e che deve essere compilato man mano che si avanza l‟inglese non si preoccupa di distinguere la terza persona (“lei” e “voi”) dalla seconda (“tu”), mentre in italiano c‟è una sostanziale differenza tra queste due forme gli aggettivi inglesi non dipendono dal genere del soggetto (maschile o femminile), mentre in italiano c‟è una sostanziale differenza
È quasi inutile dirlo, ma per poter affrontare una traduzione amatoriale bisogna possedere almeno una copia del gioco, altrimenti si viene a perdere il senso della traduzione stessa (come si fa a tradurre qualcosa che nemmeno si conosce?), o almeno avere qualcuno che lo conosca bene che faccia da correttore e coordinatore. È inoltre caldamente consigliato finire completamente un videogioco prima di iniziare a lavorarci sopra: solo in questo modo si può infatti cogliere al volo tutte le sfumature di un testo in modo da non fraintendere l‟uso della terminologia (es. in Clive Barker’s Undying si potrebbe istintivamente tradurre “mana well” con “pozzo di mana”, ma giocando si scoprirebbe che in realtà l‟oggetto è una sorta di pietra magica; una traduzione più corretta potrebbe dunque essere “fonte di mana”). Nel caso il gioco analizzato abbia anche del materiale correlato (es. film, fumetti, cartoni animati, ...), ne è consigliata la visione per conoscere i termini ufficiali (es. in Delta Force: 10
Black Hawk Down c‟è il termine ricorrente “technicals”, la cui traduzione corretta si scoprirebbe solo guardando il film, dove viene usato il termine militare “tecniche”). A riguardo dell‟uso della persona c‟è, infine, una parentesi che vale la pena affrontare: capire, infatti, se usare la seconda o la terza persona è qualcosa che dipende dalle circostanze del gioco. Se in un dialogo c‟è un personaggio che sta parlando con qualcuno di più importante o con uno sconosciuto, è molto probabile che usi la terza (“Buongiorno, saprebbe dirmi che ore sono?”), mentre se sta parlando con un conoscente o un personaggio a lui sottoposto, allora è corretto usare la seconda (“Ciao, sapresti dirmi che ore sono?”). Come fare a capire cosa è meglio usare? Anche qui solo conoscendo a fondo il gioco lo si potrà dire con certezza! Inglesismi L‟inglese è una lingua che, per la sua natura di lingua internazionale, tende a imporsi sulle altre. Nel caso della lingua italiana sono vari i casi di “inglesismi” che ormai sono uso comune sia nei dialoghi che negli scritti. Non di tutti, però, ne è corretto l‟uso. Secondo la grammatica italiana, infatti, usare termini come “settare” (dall‟inglese “to set”) è errato (meglio “impostare”, oppure, senza dilungarsi in descrizioni forvianti, effettuare una parafrasi del loro significato). Lo stesso discorso vale per tutti quei termini inglesi che non sono ormai entrati di fatto all‟interno dei vocabolari italiani (vero unico punto di riferimento per capire quando è corretto o meno usare un inglesismo). Errori comuni Chiariti questi punti vediamo quali sono alcuni degli errori più comuni di un traduttore. Innanzitutto bisogna evitare due tipi di errori: 1. cambio del tempo verbale (es. prima al presente, poi al passato) 2. l‟uso della persona (es. prima del “tu”, poi del “lei”) Questi due errori sono molto gravi, poiché nel primo caso si distorcerebbero i tempi delle azioni, mutando così lo spirito originale della storia, mentre nel secondo caso il lettore non riuscirebbe a capire il soggetto delle azioni. Attenzione: per quanto riguarda le scritte dei menu è sempre consigliato l‟uso del “tu” o dell‟infinito (es. “clicca qui per correggere la luminosità” o “cliccare qui per correggere la luminosità”, mai “clicchi qui per correggere la luminosità” o “cliccate qui per correggere la luminosità”). A fianco di queste considerazioni iniziali, ecco un semplice elenco di note da tenere sempre a mente per una corretta traduzione (anche per quanto riguarda la nostra cara grammatica italiana):
eventuali caratteri di punteggiatura ripetuti più volte devono essere messi tre volte (es. i puntini di sospensione sono tre “...”) prima del “ma” ci vuole la virgola (a meno di casi particolari), mentre prima della “e” non si deve mettere (anche qui a meno di alcuni casi dove si deve necessariamente spezzare la frase… io stesso uso spesso questo mezzo) l‟apostrofo non deve essere messo in tutte le abbreviazioni (es. “qual è”) si usa sempre l‟accento normale tranne nei casi di congiunzioni subordinanti composte dal che (es. “perché”, “affinché”, ...), pronomi riflessivi (es. “sé”), congiunzioni coordinanti disgiuntive (es. “né”) e casi anomali di accento aperto sulla “e” finale (es. “combatté”, “poté”, ...) le congiunzioni “ed”, “ad” e “od” è preferibile usarle solo quando la parola che segue inizia con la medesima lettera
11
quando le congiunzioni “inoltre”, “infatti”, “in effetti”, “poi”, “però”, ... si trovano a inizio frase vanno seguite da una virgola il “sia” è sempre seguito da un altro “sia” (es. “è sia un... sia un...”) a meno di casi molto ravvicinati (es. “Thief 2 è sia bello che unico nel suo genere”) le frasi che iniziano con “please” vanno tradotte senza questo termine (es. “please, insert the correct disk” va tradotto con “inserire il disco corretto e non con “prego, inserire il disco corretto”) in italiano non si deve mai mettere la “s” del plurale inglese (es. “files” deve essere tradotto con “file”), perché l‟italiano usa termini stranieri seguendo sempre la sua grammatica “yes” va tradotto sempre con “sì” (notare l‟accento) e mai con “si” (che è invece riflessivo) inglese e italiano hanno un uso inverso delle virgole e dei punti nei numeri (es. un numero in migliaia in inglese si scrive “1,234” e va tradotto come “1.234” e viceversa) la numerabilità dei termini è diversa tra italiano e inglese (es. “progress” può essere tradotto sia come “progresso” che come “progressi”), quindi bisogna sempre valutare a seconda del contesto in inglese si usano spesso le iniziali maiuscole all‟interno dei titoli, al contrario dell‟italiano che usa la maiuscola solo sulla prima parola (va comunque sottolineato come, di fatto, sia divenuto standard usare le maiuscole anche nei titoli italiani) l‟uso di brevi periodi legati tra loro da simboli di punteggiatura non è frequente in italiano come in inglese; tale sintassi è infatti generalmente considerata carente di stile, motivo per il quale è consigliabile invece riunire i periodi, articolandoli con principali e subordinate (attenzione però ai pericoli rappresentati da paratassi e ipotassi complicate da leggere) spesso nei testi da tradurre compaiono verbi posti al gerundio (es. “loading game”) che, se tradotti con un gerundio italiano darebbero un‟idea diversa dall‟originale; in questi casi è raccomandabile tradurli sostantivizzando l‟azione (“caricamento del gioco” o “caricamento del gioco in corso” se si volesse porre maggior accento sul contemporaneo svolgimento dell‟operazione, anche se ciò appesantirebbe un po‟ la frase) nei testi anglofoni è consuetudine inserire incisi introdotti da un trattino (“-”) o da due trattini (“--”), mentre in italiano sono generalmente da evitare, sopperendo con l‟uso delle virgole o dei due punti Attenzione: molti giochi non prevedono i caratteri accentati all‟interno dei loro font (l‟inglese non fa‟ uso di lettere accentate). È pertanto spesso necessario usare gli apostrofi come se fossero accenti (es. “Thief 2 è bello” diventa “Thief 2 e‟ bello”). In questo modo si viene a perdere la distinzione tra accenti normali e accenti gravi, ma si mantiene comunque intatta la correttezza del testo.
C‟è un ultimo aspetto da trattare a riguardo degli errori comuni, e si tratta di quello riguardante gli errori ortografici. Questi ultimi sono difficili da evitare del tutto e per quanto si faccia attenzione, può capitare che qualcuno che scappi anche al traduttore più attento e puntiglioso. Il consiglio è comunque quello di far rileggere il tutto da una persona esterna alla traduzione (un beta tester, quindi) che non solo potrà segnalare errori di stile con maggior obiettività, ma leggendo per la prima volta il testo sarà maggiormente in grado di scovarne gli errori rispetto a chi già lo conosce a fondo. Può inoltre essere molto utile passare i testi in Microsoft® Word, programma che grazie al correttore ortografico segnala gli errori più eclatanti (facendo sempre attenzione a non usare la funzione di correttore automatico altrimenti ci si ritrova con “cicca” al posto di “clicca” e molte altre cose simili). Alcuni esempi pratici Giusto per completare questa sezione, ecco un elenco di alcuni esempi pratici di errori di traduzione tra quelli che si possono verificare più di frequente. In particolar modo, qui di seguito sono riportati errori di glossario, d‟italiano, d‟interpretazione e di standard letterali. 12
Frase inglese
Traduzione errata
Traduzione corretta
Which is the one who...
Qual‟è la persona che...
Qual è la persona che...
Please, insert the correct disk
Prego, inserire il disco corretto
Inserire il disco corretto
The files are...
I files sono..
I file sono...
Yes
Si
Sì
Actually
Attualmente
In verità
To set
Settare
Impostare
1,234
1,234 (inteso come virgola)
1.234 (inteso come migliaia)
1.234
1.234 (inteso come migliaia)
1,234 (inteso come virgola)
Location
Locazione
Posizione
Compass
Compasso
Bussola
Children
Figlio
Figli (plurale di child)
Parents
Parenti
Genitori
Click here to...
Cliccate qui per...
Clicca qui per...
Get lost!
Si è perso!
Vattene!
Camera
Telecamera
Visuale
Index
Indice
Sommario
Who‟s next?
Chi è vicino?
Chi è il prossimo?
This car is yours, is it?
Questa auto è tua?
Questa auto è tua, vero?
I‟m 23
Sono il 23esimo
Ho 23 anni
I‟m the 23
Ho 23 anni
Sono il 23esimo
The 15th
-
Il quindicesimo / Il 15esimo
I‟ll give you a present
Ti darò un presente
Ti farò un regalo
Brave
Bravo
Coraggioso
News
-
Notizia / Notizie
You are lost!
Sei perduto!
Sei finito!
Annoyed
Annoiato
Infastidito
Cancel
Cancella
Annulla
Leave me alone
Lasciami solo
Lasciami in pace
Glossario base Alcuni termini o espressioni più conosciuti possono possedere una o più convenzioni per la localizzazione in italiano. Queste convenzioni non sono però qualcosa da seguire ciecamente, quanto un suggerimento guida che può essere comunque interpretato a seconda del contesto in cui ci si trova: Inglese
Italiano
Note
Mouse buttons
Pulsanti del mouse
Il mouse ha pulsanti, non tasti
Cycle
Scorri
Termine usato nei menù
Controls
Comandi (o Controlli)
Termine usato nei menù
Toggle
Attiva/Disattiva
In italiano si deve evidenziare la dualità dell‟azione
Abort
Interrompi
Termine usato nei menù
Join
Partecipa (o Unisciti)
Termine usato nei menù
Hotkey
Tasti rapidi
Meglio di “scorciatoie”
Display
Schermo
Termine usato nei menù 13
Camera
Visuale
Meglio di “telecamera”, a meno che si riferisca proprio a questo particolare oggetto
ASAP (As Soon As Possible)
Il più presto possibile
Espressione gergale
ETA (Established Time Arrival)
Tempo previsto di arrivo
Espressione gergale
MIA (Missing in Action)
Disperso in azione
Sigla d‟uso militare
KIA (Killed in Action)
Ucciso in azione
Sigla d‟uso militare
POW (Prisoner of War)
Prigioniero di guerra
Sigla d‟uso militare
N/A (Not Available)
Non disponibile (o N/D)
NPC (Non Playing Character)
Personaggio non giocante
Identifica le IA (intelligenze artificiali)
RPG (Role Playing Game)
Gioco di ruolo
Tipologia di gioco
Way to go!
Avanti così!
Modo di dire
Keep it up!
Tieni duro!
Modo di dire
It rocks!
È fantastico!
Modo di dire
Tradurre, non spiegare Questo è una massima valida per tutte le traduzioni: una traduzione deve cercare di rendere esattamente ciò che è espresso dall‟originale, senza sforzarsi di renderlo più chiaro o meno ambiguo, a meno naturalmente di errori nell‟originale che vanno segnalati agli autori (quando possibile... nel caso di lavori amatoriali sui videogiochi ciò non è possibile almeno nel 99,99% dei casi). Ciò non vuol dire che le traduzioni debbano essere necessariamente letterali: semplicemente non è compito del traduttore fare precisazioni su un testo ambiguo, rischiando magari di svelare parti della trama che il giocatore non dovrebbe ancora conoscere.
14
Fasi pratiche di una traduzione Introduzione Ogni traduzione amatoriale deve per forza di cose passare attraverso alcune fasi, che possono essere completate o meno a seconda delle difficoltà che ogni lavoro può comportare. Ecco un breve elenco di quelle che saranno le fasi che verranno trattate qui di seguito:
ricerca dei testi se la ricerca fallisce estrazione dei testi estrazione da file EXE e DLL iniziare la traduzione elaborazione grafica elaborazione tramite motore grafico sottotitolazione filmati inserimento dei testi beta testing patch finale e aggiornamenti
Seguire tutte queste fasi permette di non tralasciare alcun aspetto, ma soprattutto permette di non far perdere troppo tempo se poi effettivamente la traduzione non si può effettuare (ovvero non si perde tempo nel tradurre un gioco per poi scoprire che non si può vedere il proprio lavoro finito). Prima comunque di trattare nei particolari ciascun punto, è bene chiarire che non esiste (al contrario del caso relativo alle console) uno standard per quanto riguarda la struttura interna dei file di un gioco per PC. Ogni videogioco viene infatti programmato alla sua maniera, e in alcuni casi può essere molto differente rispetto agli altri. Questo significa che i testi non sono spesso accessibili e strutturati alla stessa maniera, e che è quindi necessario studiare ciascun gioco come se fosse un caso a sé stante. Vediamo comunque di spiegare con calma tutti i punti, tenendo sempre anche conto che questo capitolo è dedicato a una panoramica generica di come si affronta una traduzione e che eventuali processi particolari verranno illustrati nei capitoli successivi tramite l‟uso di alcuni casi pratici. Ricerca dei testi Iniziamo dalla ricerca dei testi. In questa fase si è appena deciso di voler tradurre un determinato gioco e quindi si è proceduto a ottenerne una copia originale e ad effettuarne un‟installazione completa su disco fisso installando l‟ultima patch disponibile (procedura che è sempre meglio effettuare, se non si vuole rendere il proprio operato incompatibile con la configurazione in possesso della maggior parte degli utenti). Attenzione: quando si decide di tradurre un gioco uscito da poco sul mercato, può capitare che vengano rilasciate patch ufficiali quando si è già cominciato. In questo caso è comunque sempre consigliato aggiornare la traduzione con l‟ultima versione del gioco, anche se può costare un po‟ di tempo in più. È comunque sempre consigliato affrontare la traduzione di giochi di cui non si aspettano patch a breve. Bisogna quindi ora esplorare la cartella dove si è installato il gioco per cercare file che si possano leggere in chiaro. A ciò proposito si può cercare di aprire i file del gioco con editor testuali (es. Microsoft® Blocco note) o con editor esadecimali (es. Hex Workshop).
15
Fig. 1 – Spesso i file appaiono in questa forma
La differenza tra questi due tipi di editor non influenza la fase di ricerca, ma quelle successive, dunque qui sono perfettamente interscambiabili. Tornando alla ricerca, molti file appariranno come in figura 1, ovvero non potranno essere tradotti tramite l‟uso di editor testuali. Non bisogna comunque abbattersi di fronte a questo tipo di file e bisogna comunque cercare presenza di eventuali stringhe di inglese sensato. Se ci fossero stringhe di questo tipo, potrebbe significare che vi sono dei testi compressi e/o codificati in maniera non standard. Fanno eccezione (ovvero non indicano testi del gioco) stringhe del tipo:
“This program cannot be run in DOS mode”, che indica un file di programma “c:\users\garyb\thief\calendra2\osm\cl\vector.h” o qualsiasi altro riferimento ad altri file, che indica la presenza di riferimenti di programma “param1”, che indica un parametro di programma “SECURITY_CONTEXT_TRACKING_MODE” o simili, che fa riferimento a puntatori interni al file
Riassumendo, per poter dire di aver trovato i testi del gioco bisogna trovare file simili a quelli raffigurati nella figura 2.
Fig. 2 – A sinistra testo (es. “OPTIONS”) con altre istruzioni non in chiaro, a destra file di testo puro
Se alla fine di questo processo non si è ancora riusciti a localizzare la posizione dei testi nei file del gioco, allora c‟è un‟altra possibilità, ovvero che i file siano compattati in archivi. La prima domanda a questo punto è: come riconoscere un file archivio da uno tradizionale? Principalmente l‟archivio ha una struttura come quello dell‟esempio in figura 3, ovvero si possono riconoscere all‟interno del file alcune stringhe sensate che indicano tutte nomi di altri file, al posto di testi interni al gioco.
16
Fig. 3 – Nelle ultime 3 righe si possono riconoscere alcuni nomi di file. È quindi probabile che il file che si sta leggendo sia un archivio
Per aprire un archivio si possono usare vari metodi, purtroppo non sempre soddisfacenti. Innanzitutto è bene provare ad aprire il file sospetto con WinZip®, perché capita di tanto in tanto che un gioco usi uno degli algoritmi noti a questo diffusissimo programma. Se purtroppo WinZip® non vi da risposta positiva (e ciò non capiterà spesso, sfortunatamente), allora è consigliato affidarsi a un altro utile programmino universale: Dragon UnPACKer. Questo scompattatore conosce alcuni tra i formati più conosciuti dei videogiochi e viene aggiornato abbastanza di frequente. Con Dragon UnPACKer non si possono però risolvere tutti i problemi legati alla traduzione: sebbene conosca molti formati, serve solo a scompattare e non a compattare, quindi in fase finale di inserimento dei testi si verificherebbe un problema abbastanza sensibile (sostanzialmente non si riuscirebbe a inserire i testi tradotti nel gioco). Va comunque sottolineato come molti dei formati conosciuti da Dragon UnPACKer, possiedono (in quanto noti) altri programmi di gestione archivi (es. gli archivi PFF della NovaLogic si possono scompattare con Dragon UnPACKer e ricompattare con un altro editor, apposito, di nome PffUtility). Se entrambi i programmi falliscono, allora l‟archivio in questione potrebbe essere stato creato con un algoritmo di compressione proprietario di cui probabilmente non si conosce ancora l‟algoritmo. Attenzione: esistono vari tipi di programma simili come concezione a Dragon UnPACKer, ma diversi come realizzazione (es. Extractor della Nova Software), la cui trattazione viene lasciata al capitolo “Strumenti utili”. Le funzionalità possono comunque differire. Attenzione: di tanto in tanto le software house (o altri affezionati) rilasciano degli SDK (“Software Development Kit”) o degli editor che permettono di editare i file del gioco. Prima quindi di passare alla lettura del prossimo paragrafo, è consigliata una ricerca su internet per vedere se esistono tali strumenti. L‟uso di tali editor, naturalmente, non viene trattata in questa guida visto che ciascuno di essi si comporta in maniera imprevedibile a priori. Per poter gestire questo tipo di archivi (ammesso che non esistano tool già esistenti, vedere sopra), bisogna quindi scoprire l‟algoritmo di compressione utilizzato per poter accederne ai contenuti. Questa fase non è però facilmente illustrabile, in quanto (come detto più volte) non esiste uno standard su PC come sulle console. Si possono comunque illustrare dei casi reali; a ciò proposito leggetevi il capitolo “Esempio 2 – Delta Force: Black Hawk Down”. Se la ricerca fallisce Cosa fare se dopo un‟attenta fase di ricerca ancora non si è riusciti a localizzare la posizione dei testi di un gioco? Prima di abbandonare del tutto il progetto (fermo restando che non tutti i 17
giochi per PC sono effettivamente traducibili con metodi tradizionali) resta una considerazione da prendere ancora in esame: può capitare che il testo non utilizzi lo standard Win32, ovvero la famigerata codifica ASCII. Cos‟è una codifica? Semplicemente, una codifica serve ad associare un determinato codice (prendiamolo in esadecimale, per comodità, tramite un editor come Hex Workshop) a un carattere. Naturalmente un file (di qualsiasi natura esso sia) è composto da una serie di questi codici di due cifre, ciascuno raffigurante un proprio significato. Nel caso delle stringhe, ciascun codice viene associato a un carattere o simbolo del nostro alfabeto. Tanto per essere chiari ecco una tabella riassuntiva di alcune corrispondenze codice/carattere tipiche della codifica ASCII: Codice ASCII
Carattere
Codice ASCII
Carattere
31
1
61
a
32
2
62
b
33
3
63
c
20
[spazio]
41
A
0D
[invio]
42
B
2E
.
43
C
3A
:
3B
;
Ebbene, tutte le applicazioni Win32 utilizzano questa codifica che si è imposta da moltissimo tempo come standard. Esistono comunque dei giochi (soprattutto nei casi di porting da console) che non usano questo schema, ma ne usano di propri. La prima cosa da fare a questo punto è quindi scoprire questa codifica, bisogna ovvero conoscere le nuove corrispondenze codice esadecimale/carattere per costruire una tabella corrispondente simile (per impostazione) a quella riportata qui sotto relativa ad ASCII: 0
1
2
0
3
4
5
6
7
0
@
P
´
p
1
!
1
A
Q
a
q
2
“
2
B
R
b
r
3
#
3
C
S
c
s
4
$
4
D
T
d
t
5
%
5
E
U
e
u
6
&
6
F
V
f
v
7
„
7
G
W
g
w
8
(
8
H
X
h
x
9
)
9
I
Y
i
y
A
*
:
J
Z
j
z
B
+
;
K
[
k
{
C
,
<
L
\
l
|
D
-
=
M
]
m
}
E
.
>
N
^
n
~
F
/
?
O
_
o
8
9
A
B
C
D
E
F
Per fare questo bisogna innanzitutto ricordarsi che ogni codifica associa codici crescenti a partire da “0”, “a” e “A” (ovvero, a “B” corrisponde “42”, a “C” corrisponderà necessariamente “43” e così via dicendo); basta quindi trovare la posizione di un carattere significativo per poter costruire tutta la tabella. Il problema sta proprio nel trovare un carattere. A ciò proposito (ricordandoci che purtroppo stiamo parlando di giochi per PC e che quindi tutti i ragionamenti che potete trovare nelle 18
guide di Rom Hacking qui non valgono) bisogna procedere a tentoni, tramite due metodi che purtroppo hanno ben poco di scientifico:
ricerca statistica del carattere più presente nel file, che potrebbe essere una vocale (a ciò proposito Hex Workshop ha una funziona apposita di “Character Distribuition” che anche molti altri editor possiedono) data una stringa che si sa essere presente nel gioco, ricerca di una sequenza (fissato un codice casuale per la “A”) che componga tale parola
Il primo metodo è totalmente affidato alla sorte, mentre il secondo merita un breve approfondimento. Supponiamo di avere all‟interno del gioco in esame la stringa “Mi chiamo Marco”. Daremo quindi un valore casuale alla “A” (tramite vari tentativi), e quindi anche agli altri caratteri, cercando combinazioni come quelle seguenti: M
i
ASCII standard “A” = “41”
4D
69
Modifica “A” = “31”
3D
59
c
h
i
a
m
o
20
63
68
69
61
6D
6F
10
53
58
59
51
5D
5F
M
a
r
c
o
20
4D
61
72
63
6F
10
3D
51
62
53
5F
Se per caso ne viene trovata una, allora è molto probabile che si sia trovata la codifica corretta. Per sapere questo non resta comunque altro da fare che affrontare l‟ultima fase di queste operazioni, ovvero leggere il file con la nuova tabella di codifica (in modo da vedere il testo in chiaro). Per far questo servono programmi come Thingy che, data in ingresso una tabella di codifica (anche chiamate table), legge il file codificandola con essa invece che col classico ASCII. Da questo momento in poi si può procedere normalmente ed a questo punto è stata conclusa la prima fase, ovvero si è riuscito a localizzare il testo all‟interno dei file del gioco. Estrazione dei testi Una volta localizzata la posizione dei testi, bisogna riuscire in qualche modo a estrarli per poterci lavorare sopra (a meno di voler lavorare in loco, metodo sicuramente costoso in fase di modifica). Ci sono due macrocasi di cui tener conto: 1. il testo appariva in chiaro (figura 2 a destra) 2. il testo è insieme ad altro codice (figura 2 a sinistra) Nel primo caso la questione è abbastanza semplice. I testi sono infatti editabili senza preoccuparsi troppo di mantenere eventuali caratteri speciali, tramite il semplicissimo Microsoft® Blocco note. Bisognerà comunque mantenere sempre intatte le stringhe che identificano l‟inizio e la fine di ciascun periodo (vedere la figura 4).
19
Fig. 4 – Due esempi di testi in chiaro con a fianco stringhe di programma (anch’esse in chiaro)
In questo caso è altresì possibile non preoccuparsi del tutto del fatto che la traduzione venga più lunga, in numero di caratteri, rispetto all‟originale inglese (l‟italiano, si sa, è notevolmente più prolisso dell‟inglese). Il secondo caso è invece notevolmente più complesso. Se infatti il testo appare come nella figura 2 a sinistra, allora non ci si può limitare ad editarlo senza preoccuparsi del fatto che la traduzione italiana sia più lunga di quella inglese. È infatti molto probabile che un file di tale specie contenga dei puntatori alle istruzioni: ciò significa che aggiungendo anche un solo carattere i puntatori interni al file “punterebbero” alle posizioni sbagliate facendo risultare l‟intero file corrotto e inutilizzabile. Attenzione: i puntatori identificano la posizione d‟inizio di una data stringa (es. se in “Mi chiamo Marco” volessimo sapere il nome del personaggio, il file dovrebbe avere un puntatore che indichi alla posizione 11, contando anche gli spazi). Per risolvere questo problema si possono usare tre rimedi: 1. trovare un tool di editing già sviluppato da terzi 2. tradurre usando un editor esadecimale 3. sviluppare un tool di editing da sé Il primo punto non sto qui a trattarlo (vi rimando a un qualsiasi motore di ricerca e/o forum dove chiedere di siti dedicati al gioco interessato), mentre voglio occuparmi da vicino del secondo e del terzo che certamente sono più interessanti al fine di questa guida. Un editor esadecimale ha la grande proprietà (rispetto a un qualsiasi editor di testo) di garantire la corretta lettura e riscrittura di tutti gli eventuali caratteri speciali (non necessariamente ASCII) contenuti in un file. Questa particolarità è di fondamentale importanza quando si parla di file di programma dove basta un solo carattere (non di testo puro) modificato per rovinare tutto il file. Noi vogliamo comunque estrarne i testi contenuti. Ecco quindi che con l‟editor esadecimale possiamo andare a leggere le stringhe e copiarle da un‟altra parte, dove le potremo tradurre con più calma ricordandoci sempre che la traduzione italiana non potrà essere più lunga, in numero di caratteri, rispetto all‟originale (a ciò proposito servirà usare abbreviazioni e cambiare spesso la forma delle frasi per adattarle). Se però si desidera poter tradurre senza dover tenere sempre il conto dei caratteri utilizzati, allora bisogna per forza di cose studiare i puntatori interni ai file (terzo punto dell‟elenco sopra). Purtroppo non esiste un modo univoco per localizzare questi puntatori e modificarli, sempre a causa della mancanza di uno standard univoco per i giochi per PC. Esiste comunque un paio di casi generici che si possono studiare e che, di tanto in tanto, si ripresentano nei giochi, ovvero: 1. presenza di spazio tra stringhe, più facile da trattare 20
2. assenza di spazi, più complesso Partiamo dal caso più semplice, ovvero quando abbiamo degli spazi vuoti tra una stringa e l‟altra del file come nella figura 5.
Fig. 5 – Esempio di file con molti spazi tra stringhe
In questo caso non c‟è nemmeno bisogno di modificare i puntatori, in quanto (come spiegato nel box “Attenzione” nella pagina precedente) spesso questi puntano all‟inizio di una frase senza prevedere una lunghezza della stringa (es. frase “x” inizia al punto “y”, frase “k” inizia al punto “j” e via dicendo). Si può così utilizzare questi spazi vuoti per poter aumentare il numero di caratteri nelle frasi. Veniamo ora al secondo caso, dove sarà necessario scoprire la posizione dei puntatori (solitamente sono a inizio file) in modo da modificarli. Innanzitutto bisogna aprire con l‟editor esadecimale il file, quindi posizionarsi sulla stringa successiva a quella che si vuole espandere. Fatto questo basta prendere l‟offset del carattere d‟inizio di questa seconda stringa e ricercarlo invertendo le cifre a due a due. Infatti non andremo a modificare il puntatore d‟inizio di questa frase, ma di quella successiva che dovrà necessariamente essere spostata avanti di tanti caratteri quanti ne viene espansa la prima. Giusto per essere chiari, poniamo di voler espandere di 3 caratteri la stringa “Mi chiamo Marco” che è seguita dalla frase “Sto scrivendo una guida”. Allora ci posizioneremo sulla “S” d‟inizio della seconda frase e ne leggeremo l‟offset, ad esempio “00 0F 78 5C”. Questo è il puntatore! Ma allora, perché invertirlo (a due a due) come ho scritto sopra? Semplicemente perché stiamo parlando di giochi per PC, dove i PC usano un byte order noto come Little Endian, utilizzato per l‟appunto dall‟architettura Intel. Questo byte order, al contrario del Big Endian, inverte gli offset. Pertanto il traduttore dovrà cercare nel file “5C 78 0F 00” (non come testo, ma sempre come esadecimale). Una volta trovato, riprendendo l‟esempio sopra dei 3 caratteri, dovrà trasformare tale stringa esadecimale in “5F 78 0F 00” (notare che è stato incrementato il primo numero, ma solo perché è l‟inversione del numero originale). Attenzione: nel caso la stringa che si vuole espandere è seguita da più di una frase, bisognerà modificare i puntatori di ciascuna frase successiva a quella espansa. Se non si riuscisse a trovare i puntatori all‟interno del file, allora questo significa che il suddetto file usa un sistema suo che purtroppo non è sempre possibile scoprire. Estrazione da file EXE e DLL Spiegati questi concetti base che ogni traduttore dovrebbe sempre tenere bene a mente, entriamo nel lato più tecnico del processo di traduzione, ovvero “come superare i problemi pratici”. Questo paragrafo si pone l‟obiettivo di spiegare come estrarre i testi da un file eseguibile e/o una libreria dinamica. 21
I metodi di estrazione che si posso utilizzare sono diametralmente opposti: 1. tramite un editor come Resource Hacker 2. utilizzo di un unpacker 3. editing in loco Nel primo caso si può procedere semplicemente con uno dei tanti editor a disposizione tenendo sempre presente che molto probabilmente non ci saranno problemi nell‟aumento del numero di caratteri rispetto alla versione in lingua originale (ai puntatori interni del file ci pensa infatti l‟editor in maniera automatica). Questa operazione è comunque possibile solo nel caso che il file gestisca il testo come risorsa e non sia packato, ovvero non siano stati compressi i contenuti. In questi casi è necessario quindi passare al secondo punto dell‟elenco. Vediamo prima l‟utilizzo degli unpacker, ovvero programmi che si occupano di scompattare i contenuti di file eseguibili e librerie dinamiche. Innanzitutto bisogna chiarire che non esiste un solo tipo di packer in uso, anzi, ogni gioco ne può usare uno suo. Esistono comunque packer molto usati e conosciuti e, nei casi più disperati, unpacker universali che non funzionano mai perfettamente, ma possono servire allo scopo.
Fig. 6 – Elenco dei parametri di UN-PACK in versione DOS
Personalmente mi è capitato di usare ProcDump32, ma ce ne sono altri come Generic Unpacker Win32 oppure UN-PACK (nativo in DOS ma disponibile anche con interfaccia a finestre), che sono abbastanza universali. Ciò nonostante saranno molti i casi di file che non si potranno aprire nemmeno in questo modo: in particolare credo che nessuna guida possa essere veramente completa sull‟argomento dei packer, o perlomeno questo argomento meriterebbe un documento intero invece di un paragrafo. La causa di tutto ciò è in primis da ricercare nel fatto che di continuo escono nuovi packer che hanno ben poco in comune con quelli già presenti sul mercato (basta una piccola differenza in fase di codifica, un solo bit shiftato di una posizione, per dover ricominciare da capo). Ritornando all‟editing dei testi, questo si può fare sia usando l‟interfaccia dell‟editor, sia estraendo i testi in comodi file RES (resource) da modificare tramite un qualsiasi tool testuale o un editor esadecimale. Molto spesso, come scritto sopra, non sarà necessario limitarsi nell‟uso dei caratteri in quanto gli editor di formati Win32 sono in grado di ricalcolare i puntatori interni in base alla lunghezza dei caratteri. In alcuni casi però (come quando la sezione degli import è seguente a quella delle risorse, informazione che viene indicata chiaramente da programmi come PE Explorer, vedi figura sottostante) questo limite può essere presente. In casi simili si deve procedere facendo attenzione a non superare la dimensione originale dell‟eseguibile, pena la 22
sovrascrizione della sezione degli import con il conseguente malfunzionamento dell‟eseguibile stesso. Si può comunque ricavare spazio sostituendo tutte le frasi inutilizzate (spesso si possono trovare frasi appartenenti alla versione demo, ad esempio) con stringhe di due caratteri (questo perché comunque l‟editor possa assegnare a quella determinata frase il puntatore di inizio diverso da quello di fine).
Fig XX – Esempio di avviso di eseguibile con sezione import successiva a quella delle risorse
Il terzo, e ultimo, caso che volevo trattare è quello relativo all‟editing in loco. Questo è possibile solo se il file ha presenza di testo in chiaro al suo interno, ma non lo gestisce come risorsa. La procedura da seguire in questa situazione è la stessa illustrata nel paragrafo precedente. Iniziare la traduzione Eccoci finalmente al fulcro del lavoro di un traduttore di videogiochi (che sia per PC o per console è lo stesso). Purtroppo a ciò riguardo non c‟è molto da dire, almeno a livello pratico. Posso al più dare qualche consiglio in base a quella che è la mia esperienza personale e che quindi è del tutto soggettiva. Innanzitutto bisogna decidere se il progetto verrà portato avanti da una o più persone. Le differenza sono sostanziali, a differenza di quanto si potrebbe pensare, e riguardano soprattutto l‟organizzazione. Vediamo con calma vantaggi e svantaggi della prima scelta: Svantaggi
Vantaggi
Non c‟è confronto sulle scelte di traduzione
Uniformità dell‟intera traduzione
Minor facilità in fase di ricerca di errori
Uno stile unico
Tempo e impegno richiesti superiori
Nessun problema coordinativo
È sufficientemente chiaro che in questo caso il tempo e la fatica sono superiori, ma allo stesso tempo si può garantire una qualità (a livello stilistico) che non presenti forzature di adattamento, che sono invece necessarie quando le persone coinvolte sono ben più d‟una contemporaneamente. Il problema forse più significativo resta quello del mancato confronto con altre persone (ma qui si può ovviare chiedendo l‟intervento di gente esterna riguardo le singole questioni) e la maggior difficoltà in fase di ricerca di errori causata dal fatto che ciascuno di noi presta più attenzione a testi mai visti rispetto ad altri letti e riletti più volte (anche qui si può ovviare chiedendo l‟intervento di beta tester esterni). Vediamo ora il caso, opposto, in cui si desiderasse affrontare una traduzione in gruppo: Svantaggi
Vantaggi
Mancata uniformità dell‟intera traduzione
Confronto sulle scelte di traduzione
Mancanza di uno stile unico
Maggior facilità in fase di ricerca di errori
Problemi coordinativi
Tempo e impegno richiesti inferiori
Non ci vuole molto a capire che si tratta delle stesse voci del caso precedente, semplicemente invertite di posizione. Per superare questi svantaggi potrebbe essere necessario che uno del gruppo prendesse la posizione conosciuta anche col nome di “Project Manager”. Il PM si occupa di suddividere il lavoro (o a priori o man mano che si procede rispettando così la disponibilità di ciascuno) e di raccoglierlo una volta tradotto. A questo punto deve rileggere le varie parti della traduzione per uniformare il più possibile lo stile e per verificare che il glossario della 23
traduzione venga rispettato (in caso contrario intere parti di traduzioni potrebbero risultare senza senso). Se un gruppo è particolarmente unito, allora la figura del PM può anche non esistere, anche se il materiale deve comunque essere riunificato da una persona sola per poter costruire la release finale. Attenzione: nel caso di traduzioni di gruppo, è necessario che tutti i membri capiscano di che tipo di gioco si sta trattando (non è necessario che ci abbiano anche giocato). Sia nel caso della traduzione in singolo, sia in quello della traduzione in gruppo, è di fondamentale importanza la costituzione di un glossario che raggruppi i termini più comuni seguiti dalla loro traduzione e, nel caso sia necessario, un breve commento (vedere figura 7)
Fig. 7 – Esempio di glossario per una traduzione
Solo in questo modo è infatti possibile garantire uniformità in fase di traduzione, tenendo sempre a mente che una traduzione di questo tipo potrebbe richiedere anche un anno o più per essere completata del tutto (e non è quindi sempre possibile ricordarsi tutto a memoria). Un glossario può essere gestito in vari modi: usando un foglio di Microsoft © Word, uno di Microsoft © Excel, oppure appositi programmi usati anche dalle società di traduzioni (i cosiddetti software C.A.T., ovvero i Computer Assisted Translation software). Attenzione: per saperne di più sui software C.A.T. fare riferimento all‟apposita sezione del capitolo “Strumenti utili”.
Elaborazione grafica A volte le scritte di un gioco non consistono di soli testi come quelli visti sinora, ma anche di immagini in vari formati. Per poter fare un lavoro completo è dunque necessario tradurre anche queste parti, ed è quindi necessario procedere ad una elaborazione grafica. Questo processo si occupa in pratica di prendere le immagini col testo in inglese e di ricrearle col testo italiano. Fondamentalmente le fasi sono due: 1. cancellazione della scritta originale 2. inserimento della nuova scritta Nella prima parte si deve quindi ricreare lo sfondo completo dell‟immagine come se la scritta non fosse mai esistita, mentre nel secondo bisogna porre (sulla base appena costruita) la scritta tradotta. Esistono moltissimi programmi adatti allo scopo: personalmente ho sempre fatto largo uso di Corel Paint Shop Pro Photo a causa della sua semplicità d‟uso a fronte di un‟ampia gamma di possibilità di elaborazione grafica. 24
I tool che sono più utili per questo tipo di lavoro (presenti in quasi tutti i programmi di editing grafico) sono:
sostituzione colore, ovvero dato un colore iniziale ed uno finale sostituisce all‟interno di una data area il primo col secondo (il primo sarà il colore del carattere, il secondo quello dello sfondo) spianamento del colore, ovvero uniforma i colori di una determinata area eliminando imperfezioni troppo visibili (utile nel caso lo sfondo non era del tutto uniforme, ma frastagliato) clonazione, ovvero copia un‟area di immagine in un‟altra area (di solito l‟area è quella relativa al pennello di disegno del tool) inserimento di testo, che inserisce il testo tradotto sull‟immagine priva di quello originale
Iniziamo dalla cancellazione di un testo in lingua originale. Immaginiamo di avere una figura come quella nella figura 8, con testo sovrapposto a un‟immagine complessa (ovvero lo sfondo non è di colore omogeneo).
Fig. 8– Esempio di immagine da editare
La prima cosa da fare è selezionare l‟area del testo con un tool di selezione (con questa frase mi sono stupito da solo), facendo attenzione a non andare troppo oltre, ovvero di non selezionare aree con colori diversi da quello dello sfondo del testo stesso (complicherebbe solo la situazione nelle fasi successive di ritocco in quanto ci sarebbero più variabili in gioco). Nel caso sopra, costruiremo un‟area che delimiti il testo rimanendo sempre nell‟area di color giallo, in modo simile a quanto illustrato nella figura 9.
Fig. 9 – Esempio di selezione
25
Attenzione: nei casi complessi dove il testo “interagisce” con più sfondi diversi tra loro questa parte si può omettere passando direttamente alla replicazione spiegata appena più sotto. A questo punto si può selezionare il colore nero in primo piano e il giallo del foglio in secondo per poter poi usare il tool di sostituzione del colore e ottenere un‟immagine priva di testo. Rimane però un problema, relativo (in questo caso, in altri ce ne potrebbero essere altri simili) alle righe azzurre che di tanto in tanto si frappongono allo sfondo giallo. Prima però di affrontare tale passo bisogna uniformare il giallo dello sfondo, poiché abbiamo appena sostituito le scritte con un giallo unico e si noterebbe la differenza rispetto alla figura originale. Ecco finalmente giungere in aiuto il tool di spianamento del colore che ha lo scopo di uniformare aree diverse di colore (un po‟ come quando si passa un dito su un foglio appena colorato con i pastelli e i colori si spandono e si confondono tra loro). Un esempio pratico di tale tool (esistente in tutti i programmi seri di computer grafica) si può vedere nella figura seguente.
Fig. 10 – Un esempio di spianamento del colore con ancora il testo presente. Lo stesso effetto si può ottenere sullo sfondo puro per uniformare lo sfondo stesso
Solo quando si è finito questo passaggio si può passare a replicare eventuali pieghe o motivi. Per far questo serve un tool di clonazione che permetta di copiare le righe già presenti, clonandole sullo spazio appena creato. Nel caso alla fine di questo passaggio ci fosse ancora qualche disturbo sul disegno, allora è consigliato applicare eventuali filtri di sfocatura (sempre consigliata quella gaussiana) o di rimozione di graffi. Non serve comunque che il lavoro finale appaia privo di smagliature in quanto comunque andrà successivamente sovrapposto al tutto il testo tradotto che, se in quantità soddisfacente, eliminerà eventuali imperfezioni di base. Ad ogni modo il risultato a questo punto dovrebbe essere simile a quanto raffigurato nella figura 11, lasciando al grafico il compito finale di aggiunta del testo.
26
Fig. 11 – Ecco l’immagine priva di testo, non priva di difetti, ma soddisfacente
L‟unica vera difficoltà insita in questa fase consiste nel trovare un carattere ragionevolmente simile a quello originale (a questo scopo esistono molti siti pieni di caratteri di ogni stile possibile immaginabile, basta fare una ricerca). Fatto ciò bisogna inserire la scritta con il tool apposito, ricordando di lasciare attivo il filtro antialias sul testo per evitare scanalature poco apprezzabili. Il risultato finale, sull‟esempio portato avanti sin qui, è quello che si può vedere nell‟ultima figura di questo paragrafo. Va comunque notato che il risultato finale non è del tutto identico all‟originale della figura 8; in particolare, la scritta risulta più alta e di carattere leggermente più piccolo. Questo è successo a causa del fatto (già citato più di una volta) che l‟italiano è più prolisso dell‟inglese.
Fig. 12 – Il risultato finale dell’editing grafico, non identico all’originale, ma molto simile
Attenzione: in alcuni casi è necessario, al fine di poter utilizzare tutti i filtri di editing, aumentare la scala di colori dell‟immagine originale a 16 milioni di colori. In questo caso è sempre consigliato salvare la palette originale prima di aumentare il numero di colori in modo da poterla ripristinare a lavoro finito (il gioco potrebbe non essere compatibile con una palette differente e potrebbe quindi forzarla lui facendo risultare falsata l‟intera immagine).
Elaborazione tramite motore grafico Finora abbiamo visto testi che si trovano nei file del gioco sotto forma di stringhe e sotto forma di immagini. Resta però ancora una tipologia di testi, che necessita di un paragrafo a sé stante: i testi contenuti nelle mappe (o nelle locazioni, a seconda dei casi) del gioco. Tale scritte sono editabili tramite un editor o ufficiale (ormai sempre più diffusi) o un editor sviluppato da affezionati. 27
A questo punto bisogna quindi aprire l‟editor e imparare come usarlo per poter editare i nuovi testi o per aggiungere (funzione molto utile) eventuali sottotitoli ai dialoghi in-game. Anche su questo argomento non posso però scrivere una spiegazione completa ed esaustiva, a causa del fatto che esistono moltissimi editor di gioco, molti dei quali talmente diversi tra loro che è impossibile illustrarli tutti con dovizia di particolari. Vi rimando comunque al capitolo “Esempio 1 – Clive Barker‟s Undying”, dove verrà spiegato un caso reale che è stato affrontato dal G.I.T.! Sottotitolazione filmati Spesso i videogiochi contengono filmati che contengono vere e proprie scene a margine della storia principale, con dialoghi e scritte che possono essere importanti alla comprensione di storia, personaggi e ambientazioni. Una traduzione davvero completa deve pertanto cercare di localizzare anche questi, naturalmente tramite l‟inserimento di sottotitoli. Per prima cosa (prima ancora di preoccuparsi di cercare un programma adatto allo scopo) bisogna cercare di ottenere i filmati in un formato conosciuto e facilmente modificabile: i formati che soddisfano queste richieste sono notoriamente gli AVI o gli MPG (in tutte le loro variazioni). Attenzione: di norma i filmati dei giochi possono essere in formato AVI, o in formato BIK oppure anche in formati proprietari. Nel secondo caso bisogna estrarre il filmati in AVI usando i RAD Video Tools (per saperne di più fare riferimento all‟apposito paragrafo nel capitolo “Strumenti utili”), nel terzo caso potrebbe essere non possibile procedere. A questo punto si deve procedere attraverso alcuni passaggi obbligati:
studio delle tempistiche dei dialoghi creazione dei sottotitoli inserimento dei sottotitoli elaborazione filmato finale
La prima parte comporta una discreta quantità di tempo libero in cui studiare i filmati originali, segnando al tempo stesso minuti e secondi dell'inizio e della fine di ogni frase, scritta o discorso. Un esempio di questa fase si può prendere direttamente da quanto effettuato nella traduzione di Thief II: The Metal Age: [esempio di tempistiche dei sottotitoli, ancora non formati negli SSA] Avendo a disposizione queste informazioni è possibile costruire i file necessari per l‟inserimento dei sottotitoli. A tal fine è bene specificare che ci sono vari modi per poter realizzare questo passaggio: uno degli strumenti più flessibili, semplici da usare e, al tempo stesso, con molte funzionalità è VirtualDub, programma che si trova gratuitamente su internet (per maggiori informazioni a riguardo fare riferimento al capitolo “Strumenti utili”). A sua volta, VirtualDub dispone di vari metodi per la gestione dei sottotitoli (alcuni comuni con anche altri tool): quello che andremo qui di seguito ad analizzare si chiama SSA, ovvero xxx. Xxx Inserimento dei testi Una volta completate tutte le fasi sin qui descritte, bisogna affrontare la fase che definisco “in discesa”, ovvero quella fase nella quale si iniziano a vedere dei risultati pratici. L‟operazione di inserimento dei testi a questo punto dovrebbe essere quasi scontata, visto che dopotutto in qualche modo si è riusciti a estrarli e a tradurli. Bisogna comunque distinguere due casi:
28
1. testo separati dal codice 2. testi all‟interno del codice Nel primo caso dobbiamo semplicemente inserirli così come sono stati estratti, mentre nel secondo bisogna aprire il file incriminato con un editor esadecimale sostituendo i testi originali col testo inglese (facendo sempre massima attenzione alla questione dei puntatori a cui ho accennato più volte nel corso di questa guida). Le conoscenze necessarie per poter affrontare questa fase della traduzione di un videogioco dovrebbero comunque (a questo punto) essere già state assimilate. È inoltre utile sottolineare come può essere particolarmente utile svolgere l‟operazione di inserimento dei testi anche durante la traduzione vera e propria, prendendo qualche frase semplice, traducendola e reinserendola nel gioco per poi vederne l‟effetto a gioco avviato. Solo quando si sarà visto con i propri occhi che la cosa funziona, allora avrà senso continuare, altrimenti sarebbe inutile continuare (almeno fino al momento in cui si risolve il problema). Beta testing Arrivati a questo punto si è quasi finito e restano da fare solo due cose:
testare la traduzione alla ricerca di errori costruire la release finale
In entrambi i casi ci sono alcuni consigli che si possono dare. Per quanto riguarda il beta testing è infatti consigliato affidarla a qualcuno di esterno alla traduzione di modo che l‟analisi dei testi possa essere svolta con imparzialità. Per esperienza personale chi ha svolto la traduzione è meno sensibile ad eventuali errori (ortografia esclusa) rispetto ad uno che la vede per la prima volta. Inoltre in questo modo si ha la possibilità di vedere se la traduzione funziona su più computer diversi tra loro. È quasi inutile a questo punto aggiungere che più persone coinvolte, meglio è, anche se non bisogna nemmeno esagerare, altrimenti il beta testing rischia di diventare eterno (una stessa frase non verrà mai tradotta in maniera perfettamente identica da 2 o più persone, a meno che si tratti di una frase di 2 parole). Patch finale e aggiornamenti Solo quando si sono completate tutte le fasi precedenti si può iniziare a parlare della costruzione di una possibile release, processo che richiede un ultimo sforzo. Anche questa fase, infatti, non è esente da problemi di natura tecnica: lo spazio (in termini di Mb). Poniamo di essere riusciti a tradurre con successo tutti i file interessati e di voler rilasciare, per comodità di utilizzo, direttamente i file col testo italiano. In alcuni casi (nemmeno così sporadici) ciò potrebbe comportare una dimensione della patch traduttiva davvero eccessiva, soprattutto nel caso che i file interessati siano contenuti in archivi e si debba rilasciare l‟intero archivio. Riassumendo, vediamo quindi due soluzioni opposte tra loro: 1. patch che sostituisce i file originali con quelli tradotti (installazione semplice) 2. patch che elabora i file (installazione complessa) Il primo caso è quello già illustrato sopra. Non vorrei quindi perdere altro tempo e quindi passo alla tabella dei vantaggi e vantaggi di questa soluzione: Svantaggi
Vantaggi
Peso in Mb pari a quello dei file interi
Nessun problema di compatibilità della patch tra diversi sistemi operativi
Impossibilità di separare i file dal loro archivio (se contenuti in uno di essi, bisogna rilasciare l‟intero archivio)
Basta sostituire i file originali con quelli tradotti
29
È quindi ampiamente consigliato utilizzare questo tipo di patch solo quando il peso in Mb dei file modificati (con relativi archivi) non è eccessivamente alto. Per tutti quei giochi in cui una tale release comporterebbe un costo troppo elevato, bisogna per forze di cose costruire una patch che non copi interi file e/o archivi, ma si limiti alle sole parti interessate. Vediamo innanzitutto vantaggi e svantaggi anche di questa soluzione: Svantaggi
Vantaggi
Possibili problemi di compatibilità della patch tra diversi sistemi operativi
Peso in Mb pari solo a quello dei file tradotti
Maggiore complessità in fase di installazione
Possibilità di separare i file dal loro archivio
Complessità in fase di costruzione della patch Resta solo un dubbio da chiarire: come si costruisce quest‟ultimo tipo di patch? Esistono vari modi, ognuno dei quali a livelli diversi di complessità. Anche qui si possono distinguere alcuni casi: 1. patch con archiviazione, nel caso di file contenuti in archivi 2. patch con inserimento dei testi, negli altri casi Nel primo caso basta usare il tool col quale si è proceduto alla scompattazione dei file contenenti i testi (che si suppone si deve avere in questa fase, altrimenti non si è riusciti a tradurre nulla): bisogna quindi allegare questo tool alla release finale o spiegando con un file “Leggimi.txt” come usarlo per inserire i testi manualmente, oppure costruendo un‟interfaccia (con programmi come Microsoft Visual Basic) che avvii in maniera automatica la compressione sul computer dell‟utente. Naturalmente consiglio il primo metodo quando si dispone di un tool di compattazione/scompattazione dal facile utilizzo, mentre consiglio il secondo nel caso ne fosse più complessa la gestione. Attenzione: data la complessità di Microsoft Visual Basic, la sua trattazione non viene direttamente affrontata in questa guida. Ad ogni modo facendo alcune ricerche su web si possono trovare molti documenti completi su questo argomento. Nel secondo caso si può invece usare un programma come Clickteam Patch Maker che si occupa di ridurre le dimensioni di una patch di traduzione. In pratica, dato in ingresso il file di testo originale e la sua versione tradotta, è in grado di costruire un file di confronto che contenga solo i byte relativi alle differenze risparmiando una notevole quantità di spazio.
Fig. 13 – Un esempio di costruzione di una patch con Clickteam Patch Maker, dove viene richiesto il file originale e quello modificato
30
L‟utilizzo di questo programma (come per tutti gli altri elencati sin qui) verrà trattato nell‟apposito capitolo “Strumenti utili”. A questo punto, possiamo finalmente dire di aver finito? Purtroppo no, non del tutto almeno. Resta infatti ancora due cose da fare: il supporto e gli aggiornamenti. Entrambi sono incentrati su consigli e indicazioni di errori e problemi (bug e simili) che gli utenti potrebbero avere durante l‟esecuzione della traduzione. Infatti, per quanto un beta testing possa essere completo, qualche errore potrebbe sempre sfuggire. L‟unica soluzione da adottare in questo caso è ascoltare i problemi degli utenti e costruire una seconda versione con tutte le correzioni che è necessario fare, facendo però attenzione a non esagerare nel numero di patch per evitare di creare confusione.
31
Flusso decisionale di traduzione Qualche schema rapido Nel mondo del lavoro spesso si usano i cosiddetti “flow chart” per rappresentare il flusso decisionale che si deve affrontare prima di intraprendere un dato lavoro: in pratica questa tecnica consiste in un binomio domanda/risposta seguendo il quale si dovrebbe poter essere in grado di sapere sempre in quale stato (di un dato processo) ci si trova, ma soprattutto come procedere. Per le traduzioni di videogiochi, data la loro imprevedibilità, non è così facile poter disegnare un flusso completo: questo esperimento, quindi, deve costituire solo una traccia generale da cui si è sempre liberi di distaccarsi per sperimentare nuove vie. In generale, però, rappresenta ciò che avviene veramente in un processo di questo tipo. Ricerca dei testi
Fig. XX – Un esempio di processo di ricerca testi
Come si può vedere sopra, la fase di ricerca testi può essere rappresentata in un flusso decisionale in base agli ostacoli che si possono incontrare. È comunque bene sottolineare che questa struttura non può essere del tutto completa: un gioco può infatti contenere alcuni testi 32
in file liberamente accessibili tramite editor testuali, altri contenuti in archivi più o meno celati, altri ancora all‟interno di eseguibili e librerie DLL. Il tutto contemporaneamente! In questi casi si potrebbe comunque usare come riferimento questo flusso, ma ripartendo dal punto che si ritiene interessante (es. se si crede che alcuni testi possano essere contenuti in un archivio, allora si può leggere lo schema come se il punto di partenza fosse direttamente il riquadro di “Ricerca archivi”). Estrazione dei testi, reinserimento e traduzione Così come illustrato nel capitolo precedente, dopo aver completato la prima fase di ricerca testi è necessario affrontare alcuni test di estrazione e reinserimento prima di poter procedere nella traduzione vera e propria. Anche questo caso non si presta facilmente a una schematizzazione rigida, ma è comunque possibile fornirne una rappresentazione abbastanza fedele. [Immagine] A dispetto della fase iniziale di test (estrazione e reinserimento), quella di traduzione come si può notare si presenta molto più lineare, con alcuni bivi decisionali che comunque portano allo stesso risultato finale, ovvero alla localizzazione finale dei testi. Preparazione patch e release Xxx
33
Strumenti utili Introduzione Nello corso dei precedenti capitoli sono stati citati, in maniera più o meno approfondita, tanti programmi di editing, ognuno dei quali importante in una determinata fase di una traduzione. Al fine di comprendere bene il loro utilizzo, ho deciso di affrontare anche questo capitolo, che potrà essere inteso come una descrizione generale delle funzioni esistenti. Ci sono comunque due concetti che chiunque si avvicini alla lettura di questa parte della guida deve tenere bene in mente:
qui viene affrontato un solo programma per categoria, quello che sono solito usare più spesso (e che quindi conosco meglio); ad ogni modo le funzioni si ripetono tra i programmi nessuna guida può sostituire l‟esperienza svolta in prima persona; se quindi non avete voglia di leggervi anche questo (lungo) capitolo, allora vi consiglio sentitamente di aprire un po‟ di questi programmi e fare tante prove
Chiariti questi due punti, inizio dalla categoria che più di tutte mi è capitato di usare: gli editor esadecimali. Editor esadecimali (Hex Workshop)
Fig. 14 – Hex Workshop alla sua versione 4.1
34
Gli editor esadecimali sono nient‟altro che editor comuni, con la differenza che leggono i file bit per bit permettendo di editare il file senza stravolgerne la struttura interna (come capiterebbe se si usasse, invece, un programma come Microsoft® Blocco note). Vediamo ora quali sono le funzioni più importanti per chi volesse affrontare la traduzione di videogiochi:
ricerca di stringhe confronto di file
Entrambe queste funzioni sono facilmente accessibili dai menu “Options” e “Tools”, dove peraltro se ne trovano molte altre.
Fig. 15 – La finestra di ricerca con le sue opzioni
La funzione di ricerca è molto utile sia per cercare del testo che per cercare piccole stringhe di codice esadecimale o codice binario a 8/16/32/64 bit con o senza segno. Indispensabile ogni volta che si cerca o delle porzioni di testo o la ricorrenza di una determinata sequenza di caratteri esadecimali (come nel caso dei puntatori).
Fig. 16 – La finestra di confronto di due file
La seconda funzione riguarda invece la possibilità di confrontare due file tra loro mettendone in evidenza le differenze. Questa operazione può risultare molto utile nel caso, dopo aver modificato i puntatori di un file, qualcosa non funzioni correttamente. Altre caratteristiche utili di un editor esadecimale come Hex Workshop sono:
inserimento di segnalibri, per ricordarsi la posizione di caratteri importanti svolgimento di operazioni aritmetiche sui file a livello di codice esadecimale, come la somma aritmetica
35
Concludendo, questo tipo di editor ha una grande utilità proprio perché può gestire in maniera molto approfondita la struttura interna di un file senza effettuare modifiche invisibili. Le funzioni sopra descritte, inoltre, sono presenti nella quasi totalità degli editor esadecimali presenti. Editor di formati Win32 (PE Explorer)
Fig. 17 – La schermata principale di PE Explorer
Passiamo ora ad una categoria piuttosto vasta e variegata di programmi, ovvero quella relativa agli editor per formati Win32 (ovvero file EXE, DLL, ...). All‟inizio ero molto indeciso se trattare Resource Hacker, che fa della semplicità d‟uso la sua caratteristica migliore, oppure PE Explorer, che fa della completezza la sua prima qualità. Come avrete ormai capito da soli, PE Explorer ha avuto alla fine la meglio, grazie soprattutto al fatto che è un editor veramente completo che può rivelarsi adatto sia a chi vuole compiere operazioni semplici di ricerca di testi, sia a chi desiderasse cercare di decompilare un eseguibile. Iniziamo con l‟elencare quelle che sono le sue funzioni più importanti al fine di questa guida:
analisi delle strutture interne visualizzazione delle risorse (es. testi, immagini, schermate di programma) editing, ricompilando a lavoro concluso
L‟analisi delle strutture interne consiste in un tool di facile utilizzo che spiega a parole semplici come è composto un file Win32 al suo interno (vedere figura 18)
36
Fig. 18 – La struttura di un file eseguibile di Deadly Dozen
Questa finestra (chiamata “section headers”) mostra chiaramente di quali strutture è composto il file che si sta analizzando e se quest‟ultime siano o meno eliminabili. Nell‟esempio sopra si può vedere come ci siano dei testi (“.text”), dei dati (“.data”) e altre cose che al momento non ci interessano direttamente. I testi chiaramente non sono eliminabili, altrimenti si perderebbero le scritte del gioco. Si possono però editare attraverso un‟altra schermata di questo programma:
Fig. 19 – La struttura interna vista da un altro punto di vista
In questa schermata chiamata “resources” si possono vedere le risorse da un altro punto di vista, completamente editabile. È quindi possibile modificare dati come il cursore, le icone nelle loro diverse dimensioni, le stringhe interne (errori di esecuzione e avvisi di sistema) e molte altre cose simili, tra le quali le finestre d‟esecuzione con il loro testo. Nel caso della figura 19 è possibile vedere alla voce “RC Data” la struttura della finestra dell‟eseguibile usato dal gioco 37
Deadly Dozen per avviare le singole missioni di gioco. In questa schermata non è però ancora possibile modificare i dati, quindi bisogna cliccare due volte sul nome della finestra (“TMAINFORM” in questo esempio) per vedere una nuova finestra dove ogni modifica potrà essere applicata all‟eseguibile, che verrà così ricompilato automaticamente col testo appena editato.
Fig. 20 – Il testo della finestra d’esecuzione del programma analizzato
La finestra “DFM Mode” permette di modificare le stringhe in lingua originale oltre a numerosi altri parametri della finestra stessa (titolo, suggerimenti, dimensioni, colore, font, posizione e molto altro ancora). Computer Assisted Translations software (MultiTrans) [Immagine] Il software di traduzione assistita (C.A.T., Computer Assisted Translation software) è uno strumento studiato per aiutare il traduttore attraverso un dispositivo di memoria integrata. Questo strumento è ideale per progetti di grande consistenza con una certa quantità di ripetizioni nei testi, oppure quando esiste la necessità costante di aggiornamento e revisione, come nel caso della manualistica dei giochi. In pratica il software registra e memorizza tutto ciò che è stato precedentemente tradotto per un progetto specifico, e quando il traduttore lavora alla traduzione di un nuovo testo il software attua un confronto tra questo e l‟archivio personale del cliente, che contiene tutta la cronologia dei lavori eseguiti e in particolare tutta la terminologia tecnica più frequentemente usata precedentemente. Ogni volta che si ripete un testo uguale o simile, al traduttore viene suggerita la sua traduzione precedente facendo sì che egli traduca i testi ripetitivi sempre nello stesso modo, mantendo omogeneità linguistica e di stile, e consentendo al traduttore di risparmiare il tempo utilizzato per la consultazione continua degli appunti o dei dizionari. Xxx
38
Unpacker (UN-PACK)
Fig. 21 – L’elenco dei formati conosciuti da UN-PACK
Gli unpacker sono dei programmi che servono a scompattare eventuali file Win32. Tra i tanti programmi di questo tipo, voglio trattare di UN-PACK, programma che è compatibile con molti formati conosciuti (come si può vedere dalla figura 21). Le opzioni più utili di questo programma (in versione MS-DOS) sono:
“-Bx”, che rimuove il codice di controllo interno “-C”, che rimuove il codice anti-editing “-G”, per conoscere ulteriori informazioni sul file “-I”, che fornisce informazioni sul tipo di packer utilizzato
Naturalmente la prima operazione consigliata è quella di utilizzare i comandi “-G” e “-I” che permettono di conoscere ulteriori informazioni sul file che si vuole analizzare, come ad esempio il tipo di compilatore utilizzato per creare l‟eseguibile stesso. Attenzione: in questa guida non ci sono molti riferimenti a questo applicativo, né è sua intenzione illustrarne a fondo l‟utilizzo in quanto capita molto raramente di averne bisogno in ambito PC. Inoltre la grande differenza tra un unpacker e un‟altro rende l‟argomento piuttosto proibitivo per essere affrontato qui. Esistono comunque varie risorse utili sulla rete.
39
Generatori di installer (Setup Generator)
Fig. 22 – La finestra principale di Setup Generator
Esistono moltissimi programmi destinati alla costruzione di patch d‟installazione (altrimenti conosciute come “installer”): alcuni sono di uso immediato, altri richiedono un uso più attento. Qui mi limiterò a descrivere quello che può essere ritenuto a ragione uno dei più immediati generatori di installer che siano disponibili gratuitamente su internet: Setup Generator! Come si può notare dalla figura 22, questo programma consente di tenere traccia di più progetti (accessibili tramite il menu a tendina in alto a sinistra) e divide ciascuno di essi in più fasi riguardanti le azioni dell‟installer stesso: 1. “Generale”, dove vengono definiti parametri come la directory dove viene creato l‟eseguibile, il nome dell‟installer, il nome del programma (così come apparirà sul menu di Windows), il titolo della finestra d‟installazione, la lingua ed eventualmente un‟immagine da associare e l‟attivazione di una procedura di disinstallazione (non sempre necessaria) 2. “Per Iniziare”, dove viene definito l‟aspetto della finestra d‟installazione e il testo che deve apparire nella prima schermata (es. consigli su patch da applicare prima della traduzione, crediti e avvisi) 3. “Files”, dove si decide quali file comporranno l‟eseguibile e come saranno strutturati a livello di directory (è altresì possibile costruire la struttura di directory dei file della traduzione in un‟apposita cartella e poi comunicare al programma semplicemente quest‟ultima cartella col suo contenuto, che verrà mantenuto nella struttura facilitando ulteriormente il compito) 4. “Files INI/Registro”, dove si possono definire eventuali file INI o voci da aggiungere al registro di windows (opzione sconsigliata per una semplice traduzione) 5. “Collegamenti”, dove si decide quali link verranno aggiunti durante l‟installazione al menu di Windows (es. link al sito della traduzione, link al file “Leggimi”, ...) 6. “Per Finire”, dove si può definire il contenuto della finestra finale dell‟installer, tra cui il testo (es. ultimi consigli), l‟eventuale presenza di opzioni di avvio di file “Leggimi” o di avvio di gioco (sono le solite opzioni che alla fine di ogni installazione chiedono se leggere il file “Leggimi” o se avviare il gioco)
40
Una volta definiti i campi elencati sopra, è possibile costruire la patch finale tramite il comando “Crea” che si può trovare sulla toolbar in alto a destra. Qui si trovano inoltre i comandi di testing (“Esecuzione”) e di creazione di un nuovo progetto (“Nuovo”). Attenzione: Setup Generator ha, come ogni generatore di setup automatico, varie limitazioni dovute alle impostazioni predefinite che di deve obbligatoriamente seguire. Un altro generatore, il Nullsoft Scriptable Install System (NSIS), offre molta più varietà in quanto il setup finale è completamente programmabile da riga di codice. Per poterlo usare è però richiesta qualche conoscenza di base dei linguaggi di programmazione (nulla di difficile, comunque). Date le tante possibilità offerte grazie a questa strategia, la trattazione dell‟NSIS non viene qui affrontata, ma si possono ugualmente trovare molte guide dettagliate sul sito ufficiale (trovate il link nel paragrafo “Altri programmi”, qualche pagina avanti).
Patch maker (Clickteam Patch Maker)
Fig. 23 – La finestra principale di Clickteam Patch Maker
Questo tipo di programmi, a differenza dei generatori di installer come Setup Generator, si occupa di generare delle patch dalla differenza di dati tra la versione originale e quella aggiornata (che nel caso di questa guida ha il testo tradotto). Ad ogni modo questo programma condivide con Setup Generator la facilità di utilizzo grazie a un‟interfaccia molto semplice e chiara da gestire. C‟è inoltre la possibilità di avviare un comodo wizard che permette di definire passo passo la patch: 1. introduzione al wizard, con una breve spiegazione delle sue funzioni 2. segnalazione della directory con i file originali e quella con i file modificati (comprese o meno le sottodirectory, vedere figura 13) 41
3. scelta del linguaggio, inserimento del nome della patch 4. inserimento di commenti all‟installazione
Fig. 24 – Quarta finestra del wizard, con definizione dei commenti
5. definizione dell‟aspetto grafico della patch (con o senza sfondo a tutto schermo)
Fig. 25 – Definizione dell’aspetto grafico della patch
6. 7. inserimento di una bitmap 8. definizione della directory d‟installazione di default, più eventuali voci di registro e file INI di configurazione
42
Fig. 26 – Definizione dei parametri d’installazione della patch
9. finestra finale in cui scegliere se costruire subito o meno la patch (nel primo caso viene chiesto il nome da assegnare alla patch e dove costruirla) Una volta completati questi passaggi rimangono ancora da definire alcune scritte.
Fig. 27 – Da questa schermata si possono modificare manualmente tutte le voci della patch
Se infatti le scritte nella prima schermata della patch non fanno al caso nostro, allora si possono modificare dalla finestra principale del programma alla voce “Wizard Texts”, come nella figura 27. 43
Qui, cliccando due volte su ciascuna stringa, è possibile ridefinire completamente il testo della patch, inserendo ciò che si desidera (rispettando però la lunghezza massima di parole per ogni schermata). Concludo segnalando che esiste un programma molto più recente di questo, ovvero Clickteam Install Maker, che svolge più o meno le stesse funzioni (con l‟aggiunta di molte altre), ma con un‟interfaccia d‟uso leggermente più complessa. Altresì, esistono moltissimi altri programmi simili a questo su internet. Dizionari in linea (Babylon Translator)
Fig. 28 – Dizionario inglese/italiano più vocabolario inglese
Un traduttore, per quanto bravo, ha sempre bisogno di un buon dizionario sottomano. Babylon Translator (come molti altri suoi simili) ha il grande vantaggio di essere un dizionario in linea che opera direttamente sul proprio PC senza perdere tempo a sfogliare un corposo dizionario cartaceo (operazione che comunque rimane consigliata ogni volta che c‟è qualche dubbio riguardante la possibile presenza di espressioni verbali particolari). Un altro vantaggio di questo tipo di programma è di fornire al traduttore la possibilità di cercare eventuali sinonimi (ricordando ciò che si è detto nel capitolo iniziale di questa guida, ovvero che l‟inglese è meno rigoroso dell‟italiano per quanto riguarda la presenza di ripetizioni all‟interno delle frasi). Attenzione: Babylon Translator non è un traduttore automatico, si limita a dare gli stessi risultati che si otterrebbero semplicemente sfogliando un dizionario cartaceo. Vien da sé, comunque, che la sua utilità non è secondaria, permettendo di risparmiare tempo. Questo programma è comunque in grado riconoscere eventuali espressioni fatte, ma solo se composte da due o tre parole al massimo (es. “get lost” viene riconosciuto come “get out of here” nel vocabolario inglese e tradotto nel dizionario inglese/italiano con “levati dai piedi”). L‟utilizzo è quanto mai semplice: è possibile avviarlo manualmente e quindi inserire una parola nella textbox in alto a sinistra per ottenerne subito la traduzione (da inglese/italiano e italiano/inglese di default, ma esistono moltissimi dizionari disponibili in rete) e anche il significato del termine secondo il vocabolario inglese (o della lingua inserita). È inoltre possibile associare un comando da tastiera e mouse (es. CTRL + bottone destro del mouse) per tradurre una qualunque parola presente su schermo, da una qualsiasi applicazione, puntando il mouse sulla parola e cliccando la combinazione impostata. 44
Infine, se si dispone di una connessione attiva ad internet, Babylon Translator si può connettere ad un server costantemente aggiornato per trovare le ultime novità dei dizionari e vocabolari installati sul proprio PC. Scompattatori (Dragon UnPACKer)
Fig. 29 – Dragon UnPACKer, con un archivio di Delta Force: Black Hawk Down aperto
Come spiegato nel capitolo “Fasi pratiche di una traduzione”, a volte i file di gioco sono compressi in uno o più archivi. Per poter gestire questo tipo di archivi vengono incontro, di tanto in tanto, programmi come Dragon UnPACKer, che conosce i formati dei giochi più famosi (alla versione 5.0.0 RC4 è in grado di aprire i file di oltre 130 videogiochi). L‟uso di questa applicazione è quanto mai semplice a causa di un‟interfaccia che un po‟ tutti abbiamo imparato a conoscere con WinZip®. Possiamo quindi aprire un archivio e se si tratta di un formato conosciuto il programma visualizzerà i file in esso contenuto. A questo punto sarà possibile scompattare in tutta tranquillità. Attenzione: Dragon UnPACKer è solamente uno scompattatore (utile comunque nelle fasi di ricerca del testo), quindi non è possibile inserire nuovi file negli archivi o reinserire un file di testo dopo averlo tradotto. Può comunque essere utile nella fase iniziale di ricerca dei testi. Dragon UnPACKer comunque non si limita solo a questo: è infatti capace di avviare una ricerca su un qualsiasi file per studiarne la struttura e capire se si tratta o meno di un archivio.
45
Fig. 30 – L’elenco dei tipi di file che HyperRipper può cercare in un file
È cioè in grado di capire se ci sono formati di file conosciuti all‟interno del suddetto file. Questa funzione si chiama “HyperRipper” e vi si può accedere direttamente dal menu “File”. Nella nuova finestra che appare ci sono due cose fondamentali: la prima è la selezione dei tipi di file cercare, che si può vedere nella figura 30. La seconda è l‟avvio della ricerca segnalando il file da prendere in esame e il nome del file che conterrà le informazioni sull‟archivio dopo che l‟analisi su di esso sarà terminata (vedere figura 31).
Fig. 31 – La ricerca è stata completata e con essa è stato creato il file HRF che contiene le informazioni sul file analizzato
Naturalmente questa funzione può rivelarsi molto utile quando si ha davanti un file che si ritiene essere un archivio senza averne la certezza.
46
Editor filmati BIK (RAD Video Tools) Xxx Editor filmati (VirtualDub) Xxx Altri programmi Nei paragrafi precedenti ho trattato un programma specifico per ogni tipo. Esistono comunque molte applicazioni simili (ognuna con alcune particolarità) che possono essere o meno preferite. Per questo motivo, ho deciso di pubblicare un piccolo elenco di quelli che ritengo essere i programmi che non dovrebbero mai mancare ad un buon traduttore. Nome
Tipo di programma
Hex Workshop
Editor esadecimale
PE Explorer
Editor di formati Win32
Resource Hacker
Editor di formati Win32
EZ Extract Resource
Editor di formati Win32
eXeScope
Editor di formati Win32
UN-PACK
Unpacker
Nullsoft Scriptable Install System (NSIS)
Generatore di installer
Setup Generator
Generatore di installer
Clickteam Patch Maker
Patch maker
Babylon Translator
Dizionario in linea
Everest Dictionary
Dizionario in linea
Dragon UnPACKer
Scompattatore
Extractor
Scompattatore
MultiEx Commander
Scompattatore
Game Extractor
Scompattatore
Game File Explorer
Scompattatore
RAD Video Tools
Editor filmati BIK
Corel® Paint Shop Pro
Editor grafico
Adobe Photoshop
Editor grafico
VirtualDub
Editor filmati
Link
A ognuno la scelta di quale sia il migliore! Per chi volesse saperne di più su ciascuno di queste applicazioni, si possono reperire molte informazioni sia sui siti direttamente linkati che su molti altri che si possono trovare facendo semplicemente una ricerca su internet. Risorse pubbliche Come paragrafo conclusivo di questo capitolo vorrei segnalare semplicemente due risorse pubbliche su internet, che possono costituire una vera base di partenza per la ricerca di strumenti di estrazione, nonché per l‟implementazione degli stessi (per coloro che si volessero cimentare in questa non facile impresa). La prima si chiama Game Extraction Central gestito da “XeNTaX” e “Watto”, autori di MultiEx Commander e Game Extractor (veri punti di riferimento in materia). Qui è possibile trovare guide dettagliate (e che quindi richiedono una buona base di conoscenze per essere affrontate) circa la ricerca e la gestione di archivi e file, nonché il più aggiornato 47
archivio che esista (attualmente) sulla grande rete. La cosa notevole è che chiunque può partecipare attivamente alla costruzione di questo archivio, segnalando informazioni scoperte su giochi presenti (e non) in elenco. Un vero punto di riferimento da tenere sempre presente! La seconda di cui penso valga la pena dare notizia appartiene a un sito russo (Extractor.ru), quindi incomprensibile ai più: tra i vari caratteri in cirillico si possono però capire ugualmente molte cose, e in particolare trovare una discreta lista di estrattori per svariati giochi. La completezza non raggiunge i livelli di Game Extraction Central, ma è comunque un collegamento su internet da tenere sempre a mente.
48
Esempio 1 – Clive Barker’s Undying Fasi della traduzione Clive Baker’s Undying è stata la prima traduzione del Game Italian Translation, quella che ha segnato la nascita di questo poliedrico gruppo. Impossibile dunque non parlarne. Inoltre la decisione di prendere in esame proprio questo gioco è stata presa anche grazie al fatto che qui è possibile distinguere bene le varie fasi, con tanto di utilizzo pratico di un editor 3D (argomento che non si è direttamente trattato sin qui a causa del fatto che ogni editor funziona a modo suo). Vediamo innanzitutto quali sono state le voci che hanno riguardato questo lavoro, divise per modus operandi (ovvero per procedura di traduzione):
diario, avvisi e sistema (programma usato: Microsoft® Blocco note) eventi script (programmi usati: UndEd o UndEd 2) finestre principali (programmi usati: UndEd e Corel Paint Shop Pro Photo) sottotitoli (programmi usati: UndEd o UndEd 2)
Prima di procedere all‟analisi di ognuna di queste parti, vediamo a livello pratico le fasi illustrate nel capitolo “Fasi pratiche di una traduzione”. Innanzitutto fu eseguita una ricerca dei testi, non esaustiva in prima analisi in quanto, semplicemente sfogliando i file nella directory di installazione del gioco (vedere l‟appendice a fine guida) e aprendo tutti i file con Microsoft® Blocco note alla ricerca di stringhe in chiaro, furono trovati subito i testi del diario, degli avvisi e delle scritte di sistema senza però sapere dove si trovavano tutte le scritte relative alle mappe. In particolare si erano trovati interessanti i file:
“C:\Programmi\Clive “C:\Programmi\Clive “C:\Programmi\Clive “C:\Programmi\Clive “C:\Programmi\Clive “C:\Programmi\Clive “C:\Programmi\Clive “C:\Programmi\Clive
Barker‟s Barker‟s Barker‟s Barker‟s Barker‟s Barker‟s Barker‟s Barker‟s
Undying\System\Aeons.int” Undying\System\Core.int” Undying\System\D3DDrv.int” Undying\System\Engine.int” Undying\System\GlideDrv.int” Undying\System\Startup.int” Undying\System\Window.int” Undying\System\WinDrv.int”
La struttura interna di ciascuno di questi file era molto simile e poteva essere letta con Microsoft® Blocco note grazie al fatto che il testo era completamente in chiaro. Pertanto la fase di ricerca (almeno per quanto riguarda la parte di diario, avvisi e sistema) non fu particolarmente complessa.
Fig. 32 – Struttura generica di uno dei file elencati sopra (“Core.int”)
49
Veniamo ora alla seconda fase, l‟estrazione dei testi, che in questo caso è stata omessa in quanto si trattava di testi in chiaro, senza controlli sulla lunghezza, che potevano essere editati direttamente in loco. Passammo quindi alla fase di traduzione vera e propria (sempre ricordando che alcuni scritte mancavano ancora all‟appello). Diario, avvisi e sistema Il diario, gli avvisi e le scritte di sistema di Clive Barker's Undying si trovavano sotto forma di semplice testo, in file testuali sotto forma di file in formato INT (vedere a ciò proposito l‟elenco dei file nel paragrafo precedente): qui dentro si potevano trovare tutte le note che il protagonista scrive man mano che procede nella sua avventura, le scritte che avvisano di determinati eventi e le scritte delle finestre (esterne al gioco) di configurazione. Non era necessario aprire i file con un editor esadecimale (come per molti altri giochi), ma semplicemente con un programmino come Microsoft® Blocco note ove sostituire le note originali con quelle tradotte, come mostrato nella figura 33.
Fig. 33 – Il file “Engine.int” in versione originale (a sinistra) e in versione tradotta (a destra)
Come si può vedere nei file contenenti le scritte di sistema (quelle del gioco) bastava sostituire le frasi originali, mantenendo intatte le stringhe necessarie al riconoscimenti delle stesse (es. “[Error]” o “NetOpen=”). Inoltre stringhe come “%s” venivano mantenute in quanto identificavano dei nomi variabili assegnati di volta in volta dal gioco in base al tipo di messaggio da generare (es. “NoDownload=Il package XXX non e‟...” o “NoDownload=Il package YYY non e‟...”). Un caso leggermente a parte era invece costituito dalle stringhe contenute nel file “Aeons.int”, ovvero quelle contenenti il diario e gli avvisi in-game.
Fig. 34 – Il file “Aeons.int” con intestazione e i testi del diario
50
Innanzitutto si può notare come il suddetto file presenti una breve intestazione (delimitata dal tag “[General]”) che non deve essere necessariamente editata, seguita dalle scritte del diario. Quest‟ultime sono caratterizzate da:
un tag che identifica la stringa (es. “[JE_DispelMagic]”), DA NON MODIFICARE il titolo della pagina del diario (“Title=”), DA MODIFICARE l‟obiettivo, non sempre presente (“Objectives=”), DA NON MODIFICARE le singole pagine del diario, ciascuna identificata da una linea (es. “Lines[0]=”), DA MODIFICARE
Mentre per le prime voci non c‟è altro da dire rispetto a quanto già scritto sopra, per quanto riguarda l‟ultimo punto ci sono alcune puntualizzazioni da fare. All‟inizio della traduzione, infatti, non si era tenuto conto della lunghezza delle stringhe editate, col risultato che quelle tradotte erano più lunghe di quelle originali. La conseguenza più diretta era che nel gioco i diari risultavano troncati pagina per pagina. Si risolse il problema semplicemente trovando il numero di caratteri massimi per ciascuna pagina facendo prove di inserimento nel gioco e quindi aumentando il numero di pagine ove necessario. Ad esempio, prendiamo la seguente frase: [JE_Invoke] Title=Invoke Lines[0]=&n &n This spell causes creatures I have just killed to be brought back to life, this time to join my cause. &n &n &n &n As disturbing as it is to call the dead back, I'm afraid that if the scroll doesn't work correctly, I may be raising these devilish creatures only to have to fight them all over again. There is no accounting for what might happen should I attempt to use it on a living organism... &n &n &n ~ P &n &n &n &i journalart.invoke &i Questa, tradotta in italiano, diventava: [JE_Invoke] Title=Invocazione Lines[0]=&n &n Questa magia causa il ritorno in vita delle creature che ho appena ucciso, questa volta pero' dalla mia parte. &n &n &n &n Dato che la pratica del richiamare indietro i morti e' molto delicata, temo che se l'incantesimo non funzionasse correttamente, potrei ritrovarmi nella situazione di invocare queste creature infernali solo per doverle combattere un'altra volta. Non c'e' nessun riferimento su cio' che potrebbe accadere se lo usassi su di Lines[1]= un organismo vivente... &n &n &n ~ P &n &n &n &i journalart.invoke &i Come si può facilmente notare, nella versione tradotta era stata aggiunta una linea (“Lines[1]=”) per poter procedere nel lavoro senza essere limitati al numero di caratteri originali (limitando così la creatività di una traduzione). Attenzione: il numero di pagine inseribili era virtualmente infinito! Ad ogni modo il numero massimo di pagine inserite è stato di 7. Questo esempio ci permette inoltre di evidenziare altri tre punti:
all‟interno delle linee c‟erano caratteri speciali che non andavano tradotti (es. “&n” che identifica un a capo) una linea doveva essere necessariamente più corta del testo che una pagina poteva contenere, ma non doveva essere necessariamente uguale (nel caso rimaneva dello spazio libero a fine pagina, il gioco caricava automaticamente parte del contenuto della linea successiva per completare prima di passare alla pagina successiva, ad esempio se
51
dopo “su di” rimaneva spazio per un altro paio di parole nella prima pagina, allora “ un organismo” veniva messo in questa e la seconda iniziava con “vivente”) nella traduzione non furono utilizzati caratteri accentati per evitare problemi di compatibilità col gioco, il quale font manca della “ò” e della “ù”
Passiamo ora alla terza parte del file “Aeons.int” (dopo l‟intestazione e il diario), ovvero quella con gli obiettivi delle mappe e la descrizione degli eventi in-game.
Fig. 35 – “Aeons.int” nella parte degli obiettivi e delle scritte degli avvisi
Per quanto riguarda gli obiettivi, c‟è poco da dire. Semplicemente, infatti, tali stringhe erano composte da:
un tag identificatore (es. “ObjectivesText[77]=1603,”), DA NON MODIFICARE la stringa dell‟obiettivo (es. “-MAGIONE DEI COVENANT-”), DA MODIFICARE
Discorso diverso invece per quanto riguarda gli avvisi che si trovano nella parte finale del file “Aeons.int”. Qui infatti si potevano distinguere può tag, ciascuno con diverse proprietà:
tag d‟intestazione (es. “[Lantern]”), DA NON MODIFICARE nome dell‟oggetto (“ItemName=”), DA NON MODIFICARE messaggi di sistema (“ExpireMessage=”, “GlobalNameChange=”, “NoNameChange=”, “GameName=”, “DamageString=”), DA NON MODIFICARE avviso legato all‟evento ( “PickupMessage=”), DA MODIFICARE avviso particolare (“MessageNoAmmo=”, DA MODIFICARE
Una volta completate queste parti, non restava altro da fare che localizzare la posizione delle altre frasi, ovvero quelle che intervenivano direttamente all‟interno delle mappe. Per trovare quest‟ultime si rese necessario l‟uso di un editor 3D. Eventi script Ecco quindi che arriviamo al punto focale della traduzione di Clive Barker’s Undying, ovvero quella che vide da vicino l‟uso di UndEd e UndEd 2, i due editor ufficiali allegati al gioco. Molte operazioni possono essere svolte sia nell‟uno che nell‟altro, ma per comodità si è preferito compiere determinate azioni sul primo e altre sul secondo (utilizzando il meglio di ciascuno dei due editor). Alla fine del paragrafo precedente mancavano ancora all‟appello varie scritte. Si trattava di quelle scritte che apparivano su schermo ogni volta che il giocatore tentava di compiere qualche azione come aprire le porte o attivare il diario. Dopo aver aperto tutti i file del gioco e non aver trovato traccia di queste scritte, rimase così da controllare la struttura interna alle mappe stesse (essendo molto probabile che si trovassero proprio in quest‟ultime).
52
Fig. 36 – Un esempio di scritte legate ad eventi scriptati
Per questa fase si è preferito utilizzare UndEd, che ha una comoda, e di facile utilizzo, rappresentazione 3D. Le mappe contenevano vari eventi di natura differente tra loro, ognuno con un suo scopo. Le scritte dovute a script (eventi predefiniti a tavolino dagli autori del gioco) si potevano trovare sotto forma di OnScreenMessage, ovvero messaggi che appaiono sullo schermo a intervalli predefiniti. Una volta aperta una mappa (usando il comando da menu “File -> Open level” e scegliendo uno dei file contenuti nella directory “C:\Programmi\Clive Barker‟s Undying\Maps\”) bisognava quindi trovare uno di questi eventi e lo si poté fare usando una visuale 3D oppure una bidimensionale dall'alto, come mostrato nella figura 37.
Fig. 37 – Gli OnScreenMessage possono apparire all’interno dell’editor 3D sotto queste due forme evidenziate in verde a seconda che si usi la visuale 3D o quella 2D
A questo punto restava da capire come trovare questi messaggi all‟interno delle mappe. I metodi erano due:
aprire ciascuna mappa e passarla al setaccio alla ricerca di questi quadratini fare una ricerca tramite UndEd 2
53
La prima soluzione non sto a illustrarvela in quanto è autoesplicativa. Più importante è invece vedere la seconda. Qui, infatti, c‟è un comando che permette di vedere comodamente in una finestra tutti gli oggetti inseriti in una mappa, compresi gli OnScreenMessage, e vi si può accedere tramite il menu “Edit -> Search for Actors...”.
Fig. 38 – L’elenco degli oggetti contenuti in una mappa, tra cui anche un OnScreenMessage
Lo scopo era avere una chiara idea di quanti OnScreenMessage cercare e soprattutto se evitare di perdere tempo su una mappa che magari non aveva nessun messaggio utile. Una volta trovato uno di essi si torna a UndEd, ci si clicca sopra e lo si seleziona (diventando verde come nella figura 37); infine ci si clicca sopra col tasto destro e si seleziona la voce “Properties”. A questo punto non restava altro da fare scorrere il menu appena aperto fino a “OnScreenMessage -> Text -> [x]”, dove “x” varia tra 0 e 31 (di solito solo il primo conteneva del testo).
Fig. 39 – La finestra delle proprietà con il testo dello script
Bastava infine cliccare sulla riga desiderata e sostituire la scritta con quella tradotta per completare il lavoro e procedere al salvataggio tramite “File -> Save level”. Anche gli eventi scriptati erano così tradotti. Restavano solamente i menu del gioco e, eventualmente, l‟inserimento dei sottotitoli nei momenti di dialogo del gioco. Finestre principali Per quanto riguarda i menu, questi erano costituiti da immagini (bottoni e sfondi) gestite come texture, esattamente come quelle che ricoprono i modelli 3D del gioco. Prima di poterle modificare bisogna quindi estrapolarle dal motore grafico. Per poter far ciò bisogna ancora una volta usare uno dei due editor 3D. Vediamo un esempio con il carissimo UndEd. Innanzitutto per visualizzare le texture bisogna scegliere la voce “Textures” nella parte alta dell‟editor alla voce “Browse” (vedere la figura 40), quindi selezionare appena sotto la voce 54
“UndyingShellPC”. In questo modo si potevano visualizzare tutte quelle immagini legate ai menu e, più in generale, all‟interfaccia.
Fig. 40 – Il menu “Browse” dove selezionare le “Textures”
Tra le tante texture che vengono visualizzate in questa parte dell‟editor, ce ne sono alcune (come quella selezionata nella figura 40) che rappresentano appunto dei bottoni o delle schermate dei menu. Per procedere nella traduzione bastava quindi cliccare sulla voce “Export” in basso a destra. Appariva così la finestra di salvataggio dove bisognava necessariamente dare all‟immagine lo stesso nome che si può vedere nel suo riquadro (es. “audio_ok_dn.pcx” nel caso dell‟esempio nella figura 40).
Fig. 41 – Un bottone estratto tramite l’UndEd, con la traduzione a fianco
Si otteneva così un file immagine in formato PCX, come quella sopra nella figura 41. Attenzione: i bottoni appaiono nell‟editor come se fossero quattro uguali uno sopra l‟altro (vedere la texture selezionata nella figura 40), ma in realtà l‟immagine è una sola. Attenzione: ogni bottone è costituito da tre immagini a seconda che il mouse ci sia passato sopra (bottone bruciato), ci sia sopra (bottone bruciato e rosso) o nessuna delle altre due (bottone normale). A questo punto bisognava applicare quelle basi che ho già illustrato nel capitolo “Fasi pratiche di una traduzione”, paragrafo “Elaborazione grafica”, ovvero bisognava eliminare la scritta replicando lo sfondo del bottone. Una volta fatto ciò bisognava prima cercare un font adatto (operazione svolta più che degnamente dai nostri Stefano “An4chr0n” Trivellato e Andrea “InSIDiAS” Mantuano, sempre bravissimi nelle elaborazioni grafiche), poi inserire la scritta carattere per carattere dato che non era allineata. L‟effetto finale lo potete vedere nella figura 41. 55
Lo stesso metodo si poteva usare anche con le schermate dei menu, sulle quali c‟è però una precisazione da fare: ogni schermata è infatti suddivisa in sei parti, ciascuna delle quali utile a ricoprire una parte dello schermo (alto a sinistra, alto in centro, alto a destra, sinistra, centro, destra, basso a sinistra, basso in centro e basso a destra). Dopo aver finito l‟elaborazione di bottoni e schermate di menu, bisognava quindi reinserire i file PCX così modificati all‟interno del gioco. Ancora una volta era UndEd a venirci incontro. Bastava infatti cliccare sul bottone “Import” in basso a destra dell‟editor e impostare le opzioni di importazione dell‟oggetto. I due casi da studiare sono due, a seconda di cosa si stava importando: 1. schermate dei menu, che andavano inserite tenendo le opzioni selezionate come nella figura 42
Fig. 42 – Importazione di un bottone (nel caso di una schermata di menu anche “Masked” deve essere selezionato)
2. bottoni, nei quali oltre alle opzioni selezionate nella figura 42, bisognava anche selezionare la voce “Masked” L‟opzione “Blur the texture” serviva principalmente ad inserire un filtro blur nel caso fosse necessario (noi preferivamo porre questo filtro a monte in modo da aver un maggior controllo sulla qualità finale dell‟immagine). Sottotitoli Arrivati a questo punto credevamo di aver finito: tutti i testi del gioco erano infatti stati localizzati e ormai non restava (apparentemente) più nulla da fare. Ci giunsero però alcune richieste circa la possibilità di inserire dei sottotitoli durante le scene di dialogo del gioco. La cosa era piuttosto interessante poiché il gioco non era predisposto per il loro inserimento (non esiste un vero e proprio evento nell‟editor per i sottotitoli), quindi bisognava tornare ancora una volta a usare UndEd e UndEd 2 per cercare un modo di ovviare a questo problema. Dopo attente ricerche su web (Stefano “An4chr0n” Trivellato trovò documenti molto interessanti a proposito su alcuni siti stranieri) e qualche prova all‟interno dell‟editor, trovammo una soluzione che consisteva nell‟usare determinati oggetti attivabili a tempo, i Trigger. Ma procediamo con ordine e vediamo nel dettaglio i passaggi di questa delicata operazione. Innanzitutto non in tutte le mappe contenenti dei dialoghi si prestavano all‟inserimento dei sottotitoli attraverso il metodo da noi studiato. Solo alcune, denominate “CutScene” permettevano infatti di studiare i tempi di ciascuna frase del doppiaggio, sincronizzando così le voci con le scritte a schermo: 01/03/2003 17/03/2003 20/03/2003 21/03/2003 21/03/2003
21.41 22.21 22.28 00.03 00.24
191.225 178.932 181.218 109.610 154.704
CU_01.sac CU_02.sac CU_03.sac CU_04.sac CU_05.sac 56
07/03/2003 14/03/2003 09/03/2003 04/03/2003 06/02/2003 06/03/2003 12/03/2003 14/03/2003
13.43 19.42 14.36 23.28 00.39 14.36 22.00 19.08 13 File
322.847 CU_06.sac 261.684 CU_07.sac 221.813 CU_08.sac 572.501 CU_09.sac 176.509 CU_10.sac 302.408 CU_11.sac 787.259 CU_12.sac 473.406 CU_13.sac 3.934.116 byte
Queste mappe si caratterizzano per una struttura di dialoghi ben definita essendo mappe studiate solo ed esclusivamente per questo fine, e quindi gli eventi capitavano in un istante definito a priori (a livello temporale). Nelle altre mappe, invece, i dialoghi venivano attivati dal giocatore (ad esempio entrando in una stanza) e non avevano una tempistica ben definita. Una volta capito questo concetto, bisognava capire quali file audio erano coinvolti in una determinata scena. Per far ciò bisognava aprire la mappa con l‟editor e cercare i personaggi, come in figura 43.
Fig. 43 – I protagonisti dei dialoghi visti in 3D e in 2D, con relativo pannello delle proprietà
Una volta trovati, ci si cliccava sopra col tasto destro del mouse e tra i vari menu si trovava quello chiamato “Properties” che indicava quali file sonori erano coinvolti e in quali tempi (in secondi). Il primo menu si trova sotto la voce “CutSceneChar -> CSSounds -> [x]”, dove “x” è un numero progressivo che identifica nomi differenti di file audio. Il secondo si trova invece alla voce “CutSceneChar -> CSDialogTimes -> [x]”, dove per ciascuno dei file audio di prima viene definito l‟istante di avvio (la figura 44 mostra abbastanza chiaramente queste due parti). Si può quindi notare come non esista un evento con i dialoghi di una data scena: ogni personaggio inserito nella mappa possiede infatti solamente i suoi interventi.
57
Per ricostruire l‟intera scena bisognava quindi aprire le proprietà di ciascun personaggio e, ordinando i file audio in base alle tempistiche di attivazione delle voci, vedere quale era la sequenza corretta.
Fig. 44 – Le voci del pannello delle proprietà relative ai file sonori (a sinistra i file audio, a destra le tempistiche di attivazione)
A questo punto non restava che prelevare i file audio per poterli ascoltare con calma e poter fare la trascrizione completa (rigorosamente con UndEd 2, in quanto UndEd deficia un po‟ su questa possibilità). Una volta cliccato su “View -> Sound Browser...” bisognava aprire tutti i file di dialogo (uno ad uno) cliccando su “File -> Open...” e scegliendo il file “Voiceover.uax”, che contiene tutti i file audio del doppiaggio inglese, suddivisi per soggetto (es. Patrick, Aaron, ...). Trovato il file che si desiderava, si apriva di nuovo il menu alle voci “File -> Export to WAV...” per esportarlo sotto forma di file WAV; a questo punto il dialogo poteva essere finalmente ascoltato con tutta calma.
Fig. 45 – I file audio del doppiaggio di Patrick Galloway, protagonista del gioco
Finita l‟operazione di trascrizione e traduzione (qui ricordo che fu indispensabile una nostra amica americana, Jayme "Raevynlocks" Barnes), iniziava la parte complicata del nostro lavoro (come se quello fatto sinora non bastasse). Le scritte in-game potevano essere infatti inserite tramite gli oggetti che abbiamo già visto nel paragrafo “Eventi script”, ovvero gli OnScreenMessage. Questi oggetti semplicemente mostrano a schermo una scritta, senza un controllo sulla lunghezza. Se pertanto viene inserita una stringa eccessivamente lunga, questa non viene mandata a capo e visualizzata nella sua integrità, ma viene tagliata. Bisognava quindi determinare quale fosse la lunghezza massima di 58
una stringa per questi oggetti (a ciò proposito basammo i nostri calcoli su una risoluzione di 1024x768 pixel). Bastò fare qualche esperimento (la procedura d‟inserimento nell‟editor la spiego più sotto) per trovare che la stringa più lunga era ad esempio: Patrick, sono tornato dalla guerra solo per trovare l’intera magione in rovina. Mio fratello Aaron e’ scomparso per primo, Facendo un rapido conto si vede quindi che i caratteri per la stringa massima sono 122 (compresi gli spazi e la punteggiatura). Basandoci su questa cifra, organizzammo le traduzioni. Come esempio prendiamo una parte del dialogo della scena introduttiva del gioco: Non gli avevo dato molta importanza, finche’ non fui di ritorno per trovare questa lettera che Jeremiah mi scrisse quasi sei mesi fa, chiedendomi di tornare in Irlanda e di aiutarlo. Cio’ non e’ qualcosa che desideri veramente fare, poiche’ potrebbe significare la mia morte. Ad ogni modo mi ha salvato la vita, cosi’ ho un debito con lui. Spero solo non sia troppo tardi. Questa frase doveva essere suddivisa nelle seguenti stringhe, ciascuna contenuta in un OnScreenMessage: Non gli avevo dato molta importanza, finche’ non fui di ritorno per trovare questa lettera che Jeremiah mi scrisse quasi sei mesi fa, chiedendomi di tornare in Irlanda e di aiutarlo. Cio’ non e’ qualcosa che desideri veramente fare, poiche’ potrebbe significare la mia morte. Ad ogni modo mi ha salvato la vita, cosi’ ho un debito con lui. Spero solo non sia troppo tardi. Per rappresentare quel file audio servivano quindi 4 oggetti OnScreenMessage. Ma come si può inserirli nel gioco, e come comandarne l‟esecuzione? Per superare quest‟ultimo passaggio bisogna tornare ancora una volta in UndEd. Per poter realizzare i sottotitoli bisognava aprire la mappa che conteneva il dialogo interessato e inserire tre oggetti, ovvero:
un Trigger, che avvii l‟esecuzione delle scritte uno o più Dispatcher, che regoli la temporizzazione di ogni singola stringa (1 ogni 8 OnScreenMessage) uno o più OnScreenMessage, contenenti il testo dei sottotitoli (1 per ogni stringa, come nell‟esempio sopra)
L‟inserimento di questi oggetti avvenne tramite la parte destra di UndEd (la stessa contenente le texture del gioco viste nel paragrafo “Finestre principali”), dove bisognava però selezionare “Classes” alla voce “Browse” (come in figura 46). A questo punto si poteva selezionare i tre tipi di oggetti semplicemente sfogliando l‟elenco delle classi. In particolare, la posizione era: 1. Trigger, “*Actor -> *Invisible -> *Triggers -> *Trigger” 2. Dispatcher, “*Actor -> *Invisible -> *Triggers -> *Dispatcher” 3. OnScreenMessage, “*Actor -> *Invisible -> *Info -> OnScreenMessage”
59
Fig. 46 – Il pannello a destra, con le classi degli oggetti del gioco
Per inserire uno di questo oggetti bastava quindi cliccare sulla corrispettiva voce sul pannello a destra, quindi cliccare col tasto destro del mouse in un qualsiasi punto della mappa (la posizione non è importante) e scegliere la voce “Add [nome_oggetto] here”, fino a ottenere una situazione simile a quella della figura 47.
Fig. 47 – I tre oggetti necessari per l’inserimento dei sottotitoli
Per far funzionare il tutto bisognava però ancora definire le proprietà di questi oggetti. Il Trigger, come detto nella pagina precedente, serviva ad avviare l‟evento dei sottotitoli e andava impostato (sempre tramite la schermata delle proprietà, accessibile cliccando col tasto destro sopra la sua icona) come in figura 47, ovvero:
“Events -> Event” = “[nome_Dispatcher_da_avviare]” (es. “Dispatcher1”), ovvero il nome del Dispatcher che per primo avvia i sottotitoli “Events -> Tag” = “LevelBegin”, ovvero l‟istante in cui deve attivarsi il Trigger, in questo caso a caricamento mappa in quanto tutti i dialoghi sono calcolati in secondi a partire da questo istante
Sotto la voce “Trigger” era inoltre possibile definire se dare la possibilità di saltare la scena cliccando un bottone del mouse (“bPassThru”), se eseguirlo una volta sola (“bInitiallyActive”) e molto altro ancora.
60
Fig. 48 – I parametri con cui configurare un Trigger
Passiamo ora al Dispatcher che, come scritto prima, comanda l‟avvio degli OnScreenMessage e quindi delle stringhe che compongono i sottotitoli. La sua configurazione deve essere nella forma della figura 49:
Fig. 49 – I parametri con cui configurare un Dispatcher
“Dispatcher -> OutDelays -> [x]” = ritardo, rispetto all‟evento precedente dello stesso Dispatcher, con cui eseguire l‟oggetto “x” (ad esempio l‟oggetto 0 veniva eseguito immediatamente, mentre l‟oggetto 1 veniva eseguito 3 secondi dopo l‟inizio dell‟oggetto 0, e via dicendo...) “Dispatcher -> OutEvents -> [x]” = gli oggetti da eseguire, massimo 8 “Events -> Tag” = nome del Dispatcher che si stava configurando
Giunti a questo punto scoprimmo quindi che non potevamo inserire più di 8 oggetti in esecuzione per ciascun Dispatcher: ad ogni modo ciò non ci limitò affatto in quanto bastò far avviare come ultimo oggetto, invece di un OnScreenMessage, un altro Dispatcher che a sua 61
volta coordini altri OnScreenMessage. In questo modo potevamo mettere quante stringhe fosse necessario, senza limitazione alcuna. A questo punto rimangono da vedere proprio quest‟ultimi oggetti, ma visto che sulla loro configurazione ne ho già parlato, vi rimando al paragrafo “Eventi script” senza dilungarmi inutilmente. Per poter vedere tutto ciò in esecuzione, bastava salvare la mappa (“File -> Save level”) con questi nuovi oggetti, e caricare il gioco! La patch finale Tutto il materiale sin qui tradotto, andava quindi inserito in una patch che fosse il più possibile compatibile. Innanzitutto studiammo i file che avevamo tradotto. Per la parte riguardante i testi del gioco (escluse le mappe), erano i seguenti:
Directory principale del gioco “..”
22/11/2003 23/02/2003 18/02/2003 22/11/2003
Help 4.777 Leggimi.txt 88 Sito web del G.I.T..url System 4.865 byte
Directory “..\Help”
18/02/2003 17/02/2003
16.11 <DIR> 19.27 20.15 16.11 <DIR> 2 File
15.27 19.27 2 File
30.520 Logo.bmp 355.400 Splash.bmp 385.920 byte
Directory “..\System”
05/03/2003 25/02/2003 11/02/2003 25/02/2003 11/02/2003 25/02/2003 30/05/2003 25/02/2003 16/02/2003
00.11 19.20 22.48 19.28 22.47 19.37 23.03 19.49 00.14 9 File
99.321 Aeons.int 3.730 Core.int 369 D3DDrv.int 5.891 Engine.int 472 GlideDrv.int 3.981 Startup.int 8.701.139 UndyingShellPC.u 2.297 Window.int 696 WinDrv.int 8.817.896 byte
Il totale in Mb ammontava quindi ad una cifra accettabile di 8,79. Era pertanto possibile costruire un installer con questi file al suo interno che abbastanza semplicemente sostituisse i file originali con quelli tradotti. Per la parte riguardante le mappe il discorso era invece molto più complesso. I file da inserire nell‟installer (ovvero le mappe modificate) erano infatti i seguenti:
Directory principale del gioco “..”
06/03/2003 22/11/2003 21/03/2003 22/11/2003
21.33 16.12 <DIR> 00.36 16.12 <DIR> 2 File
99 Game Italian Translation.url Help 7.930 Leggimi Mappe (parte 1).txt Maps 8.029 byte
Directory “..\Help”
18/02/2003 17/02/2003
15.27 19.27 2 File
30.520 Logo.bmp 355.400 Splash.bmp 385.920 byte 62
Directory “..\Maps” Attenzione: il contenuto della directory “..\Maps” è lo stesso di quello inserito all‟interno dell‟appendice, quindi non sto a riportarlo e vi rimando a tale sezione.
Anche senza fare troppi conti, si vede come il quantitativo in termini di Mb sia piuttosto elevato da inserire in un solo installer (siamo sui 59,4 Mb). Non è comunque troppo elevato, in termini assoluti, per una patch. Non avendo quindi un modo per poter evitare di inserire nella patch le mappe intere (era l‟unico modo per farle funzionare correttamente), decidemmo di suddividere quest‟ultime in due release separate: parte 1 e parte 2 (ciascuno di circa 30 Mb, una cifra abbastanza ragionevole).
Fig. 50 – Una parte della finestra dell’installer della traduzione
Pertanto anche questi installer, come quello dei testi di cui parlavo a inizio paragrafo, non dovevano fare altro che sostituire i file originali con quelli tradotti, senza bisogno di un‟elaborazione successiva (che fu invece necessaria in Delta Force: Black Hawk Down). Note conclusive In conclusione possiamo evidenziare quelle che sono state le fasi che sono state attraversate durante questa traduzione, ovvero:
ricerca dei testi estrazione dei testi elaborazione grafica elaborazione tramite motore grafico inserimento dei testi beta testing patch finale
Come si può notare, questa traduzione è stata molto completa, tralasciando solo l‟elaborazione di file EXE e DLL in quanto nei file di questo tipo non c‟era presenza di testi da tradurre.
63
Ad ogni modo si tratta certamente di un lavoro abbastanza completo da un lato puramente tecnico, motivo per il quale spero che possa esservi utile.
64
Esempio 2 – Delta Force: Black Hawk Down Fasi della traduzione Per questo secondo esempio la scelta era piuttosto varia: avrei infatti potuto parlarvi della traduzione di Master of Orion III, oppure di quella di Thief II: The Metal Age (su cui forse tratterò in futuro a causa dell‟interessante lavoro svolto sull‟inserimento dei sottotitoli nei filmati AVI), ma alla fine ho deciso di prendere in esame un lavoro che ha visto usare molti strumenti diversi e che quindi può essere utile al fine di questa guida, ovvero Delta Force: Black Hawk Down. Vediamo innanzitutto quali sono state le parti principali che ci hanno coinvolto:
menu, sottotitoli, sistema, obiettivi generici, armi e oggetti (programmi usati: PffUtility e BIN Editor) missioni (programmi usati: PffUtility e Corel Paint Shop Pro Photo)
Come si può notare il nostro lavoro è nuovamente spaziato dalla traduzione dei testi a quella di immagini da editare con un programma grafico. Il tutto non si presentava però in forma chiara come nel caso di Clive Barker’s Undying dove bastava aprire i file con un qualsiasi editor testuale, ma si presentavano compattati in particolari archivi in formato PFF. Andiamo comunque in ordine: appena dopo aver pensato di tradurre questo gioco, partì la ricerca dei testi (vedere l‟appendice per avere una chiara idea del listato file). Gli unici file che sembravano essere interessanti erano quelli nei formati SBF, PFF e HRF. Sfogliandoli attentamente con Hex Workshop sembrava che nessuno di essi contenesse del testo significativo. Guardando meglio trovammo però la struttura della figura 51 all‟interno di uno dei file PFF.
Fig. 51 – La parte finale del file “med.pff” vista con Hex Workshop
Questa struttura (che dovrebbe richiamare alla mente quanto detto nel paragrafo “Ricerca dei testi” del capitolo “Fasi pratiche di una traduzione”) è quella tipica di un archivio contenente vari file PCX e non solo. Restava dunque il problema dell‟estrazione di tali file dall‟archivio. Per far ciò si è provato ad usare Dragon UnPACKer e si è subito constatato che il formato PFF era conosciuto. Ad ogni modo Dragon UnPACKer non bastava (scompatta, ma non ricompatta), ma ugualmente è bastato fare una ricerca su web per trovare un validissimo programma che gestiva in tutto e per tutto i file PFF: PffUtility. Grazie a questo programma siamo riusciti a controllare il contenuto dei file PFF, che consisteva nei formati 3DI, ADM, AIN, BAD, BIN, BMS, CPT, DBF, DDS, DEF, KDA, LWF, MDT, PCX, PTL, SSC, TGA, TIL, TRN, WAC, WAV. Di questi alcuni erano piuttosto autoesplicativi, come:
3DI, modelli 3D del gioco 65
PCX, immagini TGA, immagini WAV, file audio
Tra tutti questi file solo le immagini (PCX, TGA) potevano contenere dei testi, quindi provammo a estrarre un file per tipo e ad aprirle con un qualsiasi editor grafico. Il risultato fu la constatazione che i PCX contenevano le immagini d‟introduzione alle missioni (quelle che appaiono durante il caricamento con la spiegazione della missione che si sta per affrontare) e le schermate del menu, mentre i file TGA erano immagini particolari (tipo icone), non interessanti ai nostri fini. Restavano ora gli altri file; anche per questi provammo a estrarne uno per tipo e studiarne il contenuto con l‟editor esadecimale. Gli unici che si rivelarono interessanti erano i file BIN, il cui contenuto (a differenza dei file INT di Clive Barker’s Undying) era però misto a caratteri non editabili. Esigevamo un editor. Menu, sottotitoli, sistema, obiettivi generici, armi e oggetti Questa parte fu senz‟altro quella che più di tutte ci complicò la vita in fase di traduzione, e fu la causa dei tanti ritardi tecnici patiti dal gruppo. I file BIN che contenevano questi testi non erano infatti in chiaro e dunque non riuscivamo a gestirne il contenuto. Facendo alcune ricerche su web trovammo però un programmino che all‟inizio ci sembrò davvero molto utile, ovvero Orion‟s Bin file editor.
Fig. 52 – La finestra di editing delle stringhe di Orion’s Bin file editor
Questo applicativo (nato originariamente per Tachyon: The Fringe, altro gioco della NovaLogic) riusciva apparentemente a gestire i file BIN: molto presto però ci trovammo di fronte ad un tal numero di bug e problemi tali da costringerci a fermare il lavoro. Spesso infatti ci capitava di perdere intere parti già tradotte, in quanto il programma salvando i testi tradotti corrompeva di tanto in tanto i file in maniera irrecuperabile. Dopo quindi un breve avvio fummo costretti a fermarci, almeno finché non avremmo trovato una soluzione migliore. Visto però che non esistevano altri editor già fatti che ci potessero
66
venire incontro, l‟unica soluzione fu quella di procedere da soli alla definizione di un programma di gestione dei file BIN. Contattammo quindi l‟autore di Orion‟s Bin file editor, che cordialmente ci spiegò le sue scoperte su questo formato e sugli indici interni. Qui sotto cercherò di spiegare a parole povere i puntatori interni ai file BIN (giusto come esempio pratico), ma a puro scopo informativo vi informo che in seguito riuscimmo a trovare un applicativo che risolse tutti i nostri problemi. Analizziamo un file BIN di esempio tramite un qualsiasi editor esadecimale: 0000 0010 0020 0030 0040 0050 0060 0070 0080 0090 00A0 00B0 00C0 00D0 00E0 00F0 0100 0110 0120 0130
-
5254 0000 0B00 1600 2200 3100 4000 5000 536F 6567 6E00 0052 4672 5477 0100 4553 5753 0042 455F 524F
5854 0000 0000 0000 0000 0000 0000 0000 6C20 696F 4761 6970 6F6E 696C 0000 0042 455F 524F 3035 5753
E000 0000 0000 0000 0000 0000 0000 0000 5265 6E00 6C73 7374 7469 6967 0F00 524F 3032 5753 0042 455F
0000 0000 0000 0000 0000 0000 0000 0000 6769 426F 7061 6172 6572 6874 0000 5753 0042 455F 524F 3037
5500 0000 0000 0000 0000 0000 0000 0000 6F6E 7261 6E20 2052 2052 2052 0700 455F 524F 3034 5753 00
0000 0000 0000 0000 0000 0000 0000 0000 0048 2052 5265 6567 6567 6567 0000 3031 5753 0042 455F
0700 0000 0000 0000 0000 0000 0000 0000 7562 6567 6769 696F 696F 696F 5449 0042 455F 524F 3036
0000 0000 0000 0000 0000 0000 0000 0000 2052 696F 6F6E 6E00 6E00 6E00 544C 524F 3033 5753 0042
= = = = = = = = = = = = = = = = = = = =
RTXT)...U....... ................ ................ ................ "............... 1............... @............... P............... Sol Region.Hub R egion.Bora Regio n.Galspan Region .Ripstar Region. Frontier Region. Twilight Region. ............TITL ES.BROWSE_01.BRO WSE_02.BROWSE_03 .BROWSE_04.BROWS E_05.BROWSE_06.B ROWSE_07.
Al suo interno si possono evidenziare varie strutture riconoscibili. Innanzitutto evidenziamo tre parti principali: 1. indici generali (dall‟offset 0000 a 0070), con i puntatori alla struttura interna del file 2. lista primaria (dall‟offset 0080 a 00E0), con le stringhe del gioco 3. lista secondaria (dall‟offset 00E0 a 0130), con gli identificatori delle stringhe contenute nella lista primaria Procediamo ora con ordine seguendo gli offset del file (anch‟essi contati in esadecimale, a sinistra del file):
0000 (5254 5854), identifica il tipo di file BIN usato dalla NovaLogic, ovvero “RTXT” 0004 (E000 = E0), offset della lista secondaria 0008 (5500 = 55), numero di byte nella lista secondaria dopo la prima parola 000C (0700 = 70), sommando 10 si ottiene l‟offset della lista primaria, ovvero 0070 + 0010 = 0080 0010 (0000 = 00), indice della prima frase della lista primaria 0020 (0B00 = 0B), indice della seconda frase della lista primaria ... 00E0 (0100 = 01), numero di identificatori contenuti nel file, in questo caso solo “TITLES” 00E4 (0F00 = 0F), offset del primo elemento della lista secondaria, ottenuto sommando 00E4 + 000F = 00F3 00E8 (0700 = 07), numero di stringhe per questo identificatore, in questo caso sette 0138 (00), fine del file
Anche se a una prima analisi può risultare tutto piuttosto complicato, dopo che si è analizzata e studiata per bene questa struttura si possono intravedere più soluzioni per poter editare le stringhe.
67
Mentre stavamo studiando un‟applicazione che ci permettesse di modificare i file BIN senza dover modificare a mano i puntatori, uscì un nuovo programma appositamente studiato per la serie Delta Force: BIN Editor!
Fig. 53 – BIN Editor in esecuzione
Abbandonato il progetto di un programma proprio, ci affidammo interamente a questo tool che si rivelò essere molto affidabile, ricominciando ancora una volta da capo il lavoro. Questo editor presentava un‟interfaccia molto più comoda rispetto a Orion‟s Bin file editor, anche se era necessario fare attenzione in fase di salvataggio dei dati, pena la perdita del lavoro svolto sino a quel momento. Andiamo comunque con ordine... Per aprire un file basta cliccare su “File -> Open...”: a questo punto sulla sinistra appaiono tutte le stringhe che compongono il file BIN, che si possono editare nel riquadro in basso a destra. Fondamentale era però cliccare sul tasto “Update” ogni volta che veniva svolta una modifica, prima di passare ad un‟altra stringa (pena la perdita della traduzione della suddetta). Infine, bisognava ricordarsi di cliccare su “File -> Save...” per scrivere le modifiche sul file vero e proprio. Queste operazioni andavano ripetute per tutti i file BIN del gioco, contenenti i testi che riguardano questo paragrafo. Attenzione: quando si traducono giochi appena usciti sul mercato si può incorrere nell‟uscita di patch per il gioco. Queste di tanto in tanto possono andare a modificare anche i testi del gioco, costringendo i traduttori a ricominciare da capo ove vi sia bisogno di usare editor come quello di cui abbiamo parlato. Anche per questo motivo la traduzione di Delta Force: Black Hawk Down del G.I.T. subì forti ritardi.
68
Missioni Dopo aver tradotto i testi delle missioni e tutto il resto, restavano le schermate di caricamento delle missioni. Essendo molto probabile che si trattassero di immagini precostruite (piuttosto che di scritte sovrapposte a uno sfondo statico), le cercammo tra i file PCX e TGA che erano contenuti negli archivi PFF di cui abbiamo parlato all‟inizio. Non ci volle molto per capire che ciò che cercavamo era nei PCX. Una volta estratti tutti i PCX scoprimmo che erano della forma come in figura 54.
Fig. 54 – Una parte di un testo introduttivo di missione
Il testo era quindi imprescindibilmente legato all‟immagine e quindi si rendeva necessaria una fase di editing grafico. Visto però che questo esempio l‟ho già preso in analisi nel capitolo “Fasi pratiche di una traduzione” (paragrafo “Elaborazione grafica”), vi rimando direttamente a quelle pagine. La patch finale Come per Clive Barker’s Undying, anche per Delta Force: Black Hawk Down giunse (dopo quanto visto sinora) la fase di creazione della patch da distribuire su internet. Questa fase si rivelò essere però notevolmente più complessa rispetto all‟altra, a causa di un notevole problema di spazio. La prima soluzione che ci si palesò davanti era infatti quella di mettere nella patch direttamente gli archivi PFF con il loro contenuto tradotto, rendendo così sufficiente sovrascrivere quelli originali con quelli nuovi (operazione molto facile e rapida al tempo stesso). Non avevamo però fatto i conti con le dimensioni di questi due file: 25/02/2004 17/02/2004
00.18 16.56
233.030.525 localres.pff 343.608.344 resource.pff
Il totale ammontava quindi a un problematico 549 Mb, troppo anche solo per pensare di mettere i file interi all‟interno della patch. Bisognava quindi cercare un‟altra via. Qui, soprattutto grazie a un‟idea di Pierpaolo “Tidus” Onnis, ideammo un programma studiato apposta per questo gioco e che in seguito adattammo anche ad altri giochi: il Patch & Play! Vediamo per bene come funziona la versione che usammo per Delta Force: Black Hawk Down. L‟idea alla base era quella di usare l‟eseguibile ufficiale PACK.EXE (allegato al gioco stesso e presente nella directory principale del gioco) per inserire i singoli file tradotti direttamente nei PFF di ciascun utente, ovvero: 21/02/2004 31/05/2003 12/02/2004 15/02/2004 12/02/2004 25/02/2004 24/07/2003 15/02/2004 23/08/2003 25/02/2004
20.45 16.52 22.17 17.11 22.07 00.28 00.02 17.12 01.42 00.26
1.231.516 85 4.658 72.879 16.645 5.722 10.533 39.594 86.016 192.512
BHD_main.tga Game Italian Translation.url Gameerr.bin Gametext.bin keyhelp.bin Leggimi.txt medmssn.bin menutxt.bin PACK.EXE Patch & Play Base.exe 69
24/02/2004 24/02/2004 25/02/2004 24/02/2004 25/02/2004 24/02/2004 25/02/2004 24/02/2004 25/02/2004 24/02/2004 25/02/2004 24/02/2004 25/02/2004 24/02/2004 25/02/2004 24/02/2004 25/02/2004 24/02/2004 25/02/2004 24/02/2004 25/02/2004 24/02/2004 25/02/2004 24/02/2004 25/02/2004 24/02/2004 25/02/2004 24/02/2004 25/02/2004 24/02/2004 25/02/2004 24/02/2004 25/02/2004 17/02/2004
15.26 15.16 00.13 15.18 00.13 15.22 00.13 15.24 00.13 15.35 00.13 15.34 00.14 15.34 00.13 15.38 00.14 16.25 00.14 15.44 00.14 15.47 00.14 23.26 00.14 23.27 00.15 23.27 00.15 23.27 00.15 23.34 00.15 13.10 44 File
3.172 SPBHD_00.bin 5.794 SPBHD_01.bin 250.630 SPBHD_01.pcx 5.700 SPBHD_02.bin 177.452 SPBHD_02.pcx 6.672 SPBHD_03.bin 226.110 SPBHD_03.pcx 6.111 SPBHD_04.bin 270.134 SPBHD_04.pcx 5.454 SPBHD_06.bin 248.209 SPBHD_06.pcx 5.376 SPBHD_08.bin 224.704 SPBHD_08.pcx 6.110 SPBHD_10.bin 202.421 SPBHD_10.pcx 6.742 SPBHD_11.bin 238.490 SPBHD_11.pcx 5.895 SPBHD_13.bin 234.327 SPBHD_13.pcx 6.177 SPBHD_14.bin 269.281 SPBHD_14.pcx 5.182 SPBHD_15.bin 201.599 SPBHD_15.pcx 6.361 SPBHD_16.bin 216.080 SPBHD_16.pcx 6.253 SPBHD_17.bin 263.186 SPBHD_17.pcx 4.901 SPBHD_18.bin 227.468 SPBHD_18.pcx 4.051 SPBHD_19.bin 233.744 SPBHD_19.pcx 5.645 SPBHD_20.bin 176.098 SPBHD_20.pcx 77 VGameTT.url 5.415.766 byte
Il totale di questi file ammonta a solo 5,16 Mb contro i 549 di prima. Ma come funziona questo PACK.EXE? Abbastanza semplicemente si tratta di un eseguibile DOS, che dato un file e un archivio PFF, compatta il primo nel secondo tramite una chiamata del tipo: pack [nome_archivio.pff] [file_da_inserire.estensione] /force Naturalmente possono essere elencati più file da inserire nell‟archivio. Il comando “/force”, inoltre, forza la sovrascrittura dei file già esistenti con quelli nuovi (in modo da essere certi che i file della traduzione venissero inseriti negli archivi). Da queste considerazioni costruimmo i nostri comandi per eseguire il PACK.EXE, ovvero: pack localres.pff Gameerr.bin Gametext.bin keyhelp.bin menutxt.bin SPBHD_00.bin SPBHD_01.bin SPBHD_02.bin SPBHD_03.bin SPBHD_04.bin SPBHD_06.bin SPBHD_08.bin SPBHD_10.bin SPBHD_11.bin SPBHD_13.bin SPBHD_14.bin SPBHD_15.bin SPBHD_16.bin SPBHD_17.bin SPBHD_18.bin SPBHD_19.bin SPBHD_20.bin BHD_main.tga SPBHD_01.pcx SPBHD_02.pcx SPBHD_03.pcx SPBHD_04.pcx SPBHD_06.pcx SPBHD_08.pcx SPBHD_10.pcx SPBHD_11.pcx SPBHD_13.pcx SPBHD_14.pcx SPBHD_15.pcx SPBHD_16.pcx SPBHD_17.pcx SPBHD_18.pcx SPBHD_19.pcx SPBHD_20.pcx /force E: pack resource.pff medmssn.bin /force
70
In questo modo avevamo costruito un comando che avrebbe funzionato su qualsiasi PC semplicemente allegando i file della traduzione e non gli archivi interi. Restava però il problema di rendere il tutto con un‟interfaccia di facile utilizzo e che permettesse all‟utente di specificare la sua directory di installazione (che di default è “C:\Programmi\NovaLogic\Delta Force Black Hawk Down\”). Nacque così il Patch & Play, in questa forma:
Fig. 55 – Il Patch & Play di Delta Force: Black Hawk Down
Una volta cliccato sul tasto “OK” il programma costruiva i seguenti comandi: [directory_selezionata_nel_Patch_&_Play]\pack localres.pff Gameerr.bin Gametext.bin keyhelp.bin menutxt.bin SPBHD_00.bin SPBHD_01.bin SPBHD_02.bin SPBHD_03.bin SPBHD_04.bin SPBHD_06.bin SPBHD_08.bin SPBHD_10.bin SPBHD_11.bin SPBHD_13.bin SPBHD_14.bin SPBHD_15.bin SPBHD_16.bin SPBHD_17.bin SPBHD_18.bin SPBHD_19.bin SPBHD_20.bin BHD_main.tga SPBHD_01.pcx SPBHD_02.pcx SPBHD_03.pcx SPBHD_04.pcx SPBHD_06.pcx SPBHD_08.pcx SPBHD_10.pcx SPBHD_11.pcx SPBHD_13.pcx SPBHD_14.pcx SPBHD_15.pcx SPBHD_16.pcx SPBHD_17.pcx SPBHD_18.pcx SPBHD_19.pcx SPBHD_20.pcx /force E: [directory_selezionata_nel_Patch_&_Play]\pack resource.pff medmssn.bin /force Naturalmente i file che sono elencati nell‟eseguibile si dovevano trovare nella stessa directory del Patch & Play, quindi c‟era bisogno di un installer che mettesse Patch & Play e file nella directory del gioco. Per questo usammo il nostro solito installer costruito con Setup Generator (che si può vedere nella figura 56). Riassumendo, le fasi principali dell‟installazione sono: 1. esecuzione dell‟installer, che inserisce Patch & Play e file tradotti nella directory del gioco 2. esecuzione del Patch & Play, che inserisce il file nei due archivi contenenti i testi
71
Fig. 56 – Una parte della finestra dell’installer della traduzione
Anche questa fatica fu così superata, senza aver bisogno di costruire più patch come nel caso di Clive Barker’s Undying! Note conclusive Le fasi attraversate da questa traduzione, vero motivo per il quale è stata scelta come esempio, sono state:
ricerca dei testi estrazione dei testi elaborazione grafica inserimento dei testi beta testing patch finale
Mancano quindi solamente la fase di elaborazione di file in formato Win32 (non era necessario in quanto non contenevano i testi del gioco) e l‟elaborazione tramite editor grafico (anche questa non richiesta).
72
Considerazioni finali Una guida in evoluzione Man mano che procedevo alla scrittura di questa (lunghissima) guida, mi rendevo conto che gli argomenti che volevo trattare erano talmente vasti da rendere impossibile la creazione di una guida che fosse un minimo... “completa”. Sebbene infatti mi fossi posto fin dall‟inizio il proposito di costruire nient‟altro che una guida introduttiva, come da titolo, speravo di poter trattare con maggior profondità ciascun argomento. Mi rendo invece ora conto che questo comporterebbe in pratica la scrittura di un manuale ancora più imponente di quello che avete sottomano. Non voglio comunque lasciare questa opera a metà, quindi questa guida è tutt‟altro che in versione definitiva e, nell‟arco del tempo, subirà molte modifiche atte ad aggiornare, aggiungere e migliorare. Per far questo ho però bisogno dell‟aiuto di chiunque abbia avuto la pazienza di leggersi questo documento. Vi invito quindi a farmi sapere cosa ne pensate, cosa modifichereste o aggiungereste alla guida così come è ora, cliccando sull‟icona “www” che trovate all‟inizio di questo paragrafo. Link utili Il web è una risorsa unica per chiunque voglia avvicinarsi alla traduzione di videogiochi. In particolar modo i veri punti di riferimento per ciascun traduttore restano i forum, dove poter chiedere aiuto a gente che lavora in questo campo già da tempo. Quasi sempre potrete trovare gente disposta ad aiutarvi. Nome
Descrizione
Link
Game Italian Translation
Gruppo che ha curato la creazione di questa guida, opera nel campo dal 17 Gennaio 2003 con all‟attivo sia traduzioni amatoriali, sia ufficiali
Neonemesis V
Portale interamente dedicato a traduzioni e conversioni di videogiochi per PC, ottimo punto di partenza per qualunque traduttore
Clomax Dominion
Comunità interamente dedicata alle traduzione, in modo particolare a quella dei videogiochi per console e ROM
Italian Translation Project (ITP)
Uno dei gruppi più conosciuti di traduzioni di videogiochi per PC, attivo da parecchi anni, con anche alcune partecipazioni ufficiali
SadNES cITy Translations
Gruppo molto famoso di traduzioni su console e ROM, con un‟esperienza unica in questo campo
Progetto TIFONE
Sito di Ragfox, curatore della traduzione italiana della serie Fallout
VideoGAme Team Translation (VGAMETT)
Sito variegato dedicato alle traduzioni su PC, con vari progetti attivi
Figli di Gaucci Productions
Gruppo molto attivo in campo di traduzioni per PC, con molti titoli già finiti e molti altri in attivo
Italian A.G. Translators Group (IAGTG)
Gruppo che si occupa principalmente di avventure vecchio stile
Gruppo di traduzione Zuminator (ZTG)
Sito molto ampio, con il più lungo ed esaustivo elenco di guide per traduttori
73
Underground Studio Translations (UST)
Sito principalmente dedicato alla traduzione di videogiochi per ROM e console, con molte guide utili
Come potrete notare, questo elenco include non solo risorse che si occupano di videogiochi per PC, ma anche altre che trattano principalmente ROM e giochi per console. Le conoscenze che infatti stanno alla base della traduzione di videogiochi per PC, sono le stesse di quelle per console e derivati. Pertanto moltissimi traduttori di ROM sono in grado di aiutare chiunque voglia avvicinarsi ai PC. Guide utili Prima di chiudere definitivamente, voglio elencare alcune delle guide (tratte dai siti elencati nella pagina precedente) che ritengo in assoluto tra le più utili ai novelli traduttori. Si tratta di guide che non trattano direttamente il problema delle traduzioni di videogiochi per PC, ma che possono comunque servire per imparare le basi comuni a PC e console. Il resto verrà con la pazienza e l‟esperienza. Nome
Descrizione
Link
Guida all‟Assembly per le Traduzioni
A cura di Syxtem (UST), ottima guida per chiunque volesse avvicinarsi all‟assembly (utile soprattutto per la decompilazione)
L‟Assembly in un passo
A cura di Dark Schneider, altra ottima guida sull‟assembly
Guida completa alla traduzione di ROM in lingua straniera
A cura di D-Chan, mickey, Fraka, Duke, BGies, MJL, _Ombra_ (SadNES cITy Translations), guida completa per la traduzione di ROM (utile soprattutto a capire il funzionamento dei puntatori)
Puntatori
A cura di AnusP (J2E Translations), utilissima guida sui puntatori
Mini guida alle traduzioni
A cura di Macchianera (IAGTG), con una sintetica ma esaustiva spiegazione di come tradurre dei testi con un editor esadecimale
Un consiglio finale Questa guida introduttiva alle traduzioni è ormai giunta alla fine. Sinceramente non credevo di farcela a giungere a questo punto (a metà lavorazione iniziavo a temere che fosse senza fine), ma vedo che tutto sommato ormai sono alle righe finali e, sinceramente, mi resta solo una cosa da raccomandare a ogni traduttore: provare e riprovare! Tutta questa guida unita a tutte le altre che troverete per il web, infatti, non può sostituirsi alla propria esperienza personale, che è fatta di molti tentativi. Non importa se all‟inizio ci saranno più delusioni che soddisfazioni, l‟importante è avere voglia di andare avanti. Scritto questo non mi resta altro da dire, quindi vi saluto augurandomi che la lettura non sia stata troppo pesante.
74
Appendice Istruzioni per l’uso Qui di seguito vengono riportati i listati dei file di Clive Barker’s Undying e Delta Force: Black Hawk Down. Eventuali directory vuote sono state omesse in quanto inutili ai fini di questa guida. Listato dei file di Clive Barker’s Undying
Directory di “C:\Programmi\Clive Barker's Undying”
02/12/2003 03/12/2003 10/02/2004 01/02/2001 10/02/2004 16/03/2004 02/12/2003 24/05/2004 02/12/2003 09/01/2001
1.645 Clive Barker's Undying(tm).lnk Help Maps 10.844 ReadMe.txt Save Sounds Support System Textures 2.238 Undying.ico 14.727 byte
Directory di “C:\Programmi\Clive Barker's Undying\Help”
18/02/2003 17/02/2003
23.56 00.10 <DIR> 18.13 <DIR> 22.07 18.16 <DIR> 01.15 <DIR> 23.56 <DIR> 11.52 <DIR> 23.56 <DIR> 21.50 3 File
13.27 17.27 2 File
30.520 Logo.bmp 355.400 Splash.bmp 385.920 byte
Directory di “C:\Programmi\Clive Barker's Undying\Maps”
05/02/2003 10/02/2004 05/02/2003 05/02/2003 05/02/2003 05/02/2003 05/02/2003 05/02/2003 05/02/2003 05/02/2003 05/02/2003 05/02/2003 05/02/2003 05/02/2003 01/03/2003 17/03/2003 20/03/2003 20/03/2003 20/03/2003 07/03/2003 14/03/2003 09/03/2003 04/03/2003 05/02/2003 06/03/2003 12/03/2003 14/03/2003
22.30 18.13 22.11 22.15 22.16 22.17 22.17 22.18 22.19 22.21 22.24 22.24 22.26 22.28 19.41 20.21 20.28 22.03 22.24 11.43 17.42 12.36 21.28 22.39 12.36 20.00 17.08
1.827 389.353 475.720 446.272 698.437 768.548 208.451 435.983 422.763 650.234 499.766 511.934 640.003 701.692 191.225 178.932 181.218 109.610 154.704 322.847 261.684 221.813 572.501 176.509 302.408 787.259 473.406
Aeons.sac Autoplay.sac Catacombs_Cisterns.sac Catacombs_Cliffs.sac Catacombs_Entrance.sac Catacombs_Exit.sac Catacombs_Exit_After.sac Catacombs_LairOfLizbeth.sac Catacombs_LairOfLizbethPostCU.sac Catacombs_LowerLevel.sac Catacombs_SaintsHall.sac Catacombs_Tunnels.sac Catacombs_WellRoom.sac Catacombs_WindChamber.sac CU_01.sac CU_02.sac CU_03.sac CU_04.sac CU_05.sac CU_06.sac CU_07.sac CU_08.sac CU_09.sac CU_10.sac CU_11.sac CU_12.sac CU_13.sac 75
05/02/2003 07/02/2003 07/02/2003 01/02/2001 07/02/2003 01/02/2001 07/02/2003 07/02/2003 07/02/2003 07/02/2003 07/02/2003 10/02/2003 01/02/2001 01/02/2001 10/02/2003 10/02/2003 10/02/2003 10/02/2003 10/02/2003 10/02/2003 10/02/2003 10/02/2003 10/02/2003 10/02/2003 10/02/2003 10/02/2003 10/02/2003 10/02/2003 10/02/2003 10/02/2003 10/02/2003 10/02/2003 10/02/2003 16/02/2003 16/02/2003 16/02/2003 16/02/2003 16/02/2003 16/02/2003 10/02/2003 10/02/2003 10/02/2003 10/02/2003 01/02/2001 10/02/2003 10/02/2003 10/02/2003 10/02/2003 10/02/2003 10/02/2003 10/02/2003 10/02/2003 10/02/2003 10/02/2003 10/02/2003 10/02/2003 16/02/2003 16/02/2003 16/02/2003 16/02/2003 16/02/2003 16/02/2003 16/02/2003
22.41 16.00 16.00 13.06 16.01 13.06 16.03 16.04 16.04 16.05 16.06 14.44 13.06 13.06 14.45 15.07 15.09 15.09 15.10 15.11 15.11 15.12 15.13 15.14 15.14 15.15 15.16 15.16 15.17 15.18 15.18 15.19 15.19 10.29 10.30 10.34 10.37 10.38 10.39 17.36 17.36 17.38 17.38 13.06 17.40 17.40 17.41 17.42 17.42 17.43 17.49 18.00 18.02 18.03 18.05 18.08 10.49 10.49 10.50 10.50 10.51 10.54 10.55
2.490 564.783 487.009 604.936 1.009.379 950.748 615.707 1.318.921 319.118 677.325 647.301 854 897.190 1.110.209 1.015.505 527.874 545.651 466.874 561.930 407.630 389.237 356.489 531.696 427.044 746.605 367.188 558.487 255.477 602.468 699.387 332.591 334.501 179.606 621.210 369.491 655.448 417.623 417.320 559.371 300.575 262.399 326.260 434.906 346.512 558.467 763.411 372.700 389.379 391.399 472.846 619.547 589.695 144.273 271.057 343.197 581.872 352.471 378.260 596.584 164.026 473.350 281.149 459.280
Entry.sac EternalAutumn_FinalFight_Arch.sac EternalAutumn_FinalFight_Arena.sac EternalAutumn_FinalFight_ArenaBattle.sac EternalAutumn_FinalFight_Ruins.sac EternalAutumn_Ravines_Airie_Interior.sac EternalAutumn_Ravines_Bridge.sac EternalAutumn_Ravines_Chase.sac EternalAutumn_Ravines_Chieftain.sac EternalAutumn_Ravines_Forest.sac EternalAutumn_Transition.sac EternalAutumn_Waterfall_Dwellings_Low EternalAutumn_Waterfall_Dwellings_Lower.sac EternalAutumn_Waterfall_Dwellings_Upper.sac EternalAutumn_Waterfall_Gauntlet.sac Grounds_Cottage.sac grounds_dock_night.sac Grounds_Lighthouse.sac Grounds_Mausoleum_Approach.sac Grounds_Mausoleum_Entrance.sac Grounds_Mausoleum_Tunnels.sac Grounds_OldCemetery.sac Manor_CentralLower.sac Manor_CentralLower_After.sac Manor_CentralLower_night.sac Manor_CentralLower_storm.sac Manor_CentralUpper.sac Manor_CentralUpper_After.sac Manor_CentralUpper_PostOneiros.sac Manor_CentralUpper_storm.sac Manor_Chapel.sac Manor_Chapel_night.sac Manor_Crypt.sac Manor_EastWingLower.sac Manor_EastWingLower_After.sac Manor_EastWingLower_night.sac Manor_EastWingUpper.sac Manor_EastWingUpper_After.sac Manor_EastWingUpper_night.sac Manor_EntranceHall.sac Manor_EntranceHall_FromKitch.sac Manor_EntranceHall_Intro.sac Manor_EntranceHall_Night.sac Manor_EntranceHall_night_ReturnfromCove.sac Manor_EntranceHall_Storm.sac Manor_EntranceHall_ToKitch.sac Manor_FrontGate.sac Manor_FrontGate_night.sac Manor_FrontGate_Night_Return.sac Manor_Gardens.sac Manor_Gardens_night.sac Manor_Gardens_storm.sac Manor_GreatHall_night.sac Manor_GreatHall_Storm.sac Manor_InnerCourtyard.sac Manor_InnerCourtyard_Storm.sac Manor_NorthWingLower.sac Manor_NorthWingLower_After.sac Manor_NorthWingLower_night.sac Manor_NorthWingLower_storm.sac Manor_NorthWingUpper.sac Manor_NorthWingUpper_night.sac Manor_NorthWingUpper_PostOneiros.sac 76
16/02/2003 11/02/2003 11/02/2003 11/02/2003 11/02/2003 11/02/2003 11/02/2003 11/02/2003 16/02/2003 16/02/2003 16/02/2003 16/02/2003 16/02/2003 16/02/2003 16/02/2003 16/02/2003 16/02/2003 18/02/2003 18/02/2003 18/02/2003 18/02/2003 01/02/2001 18/02/2003 18/02/2003 18/02/2003 18/02/2003 18/02/2003 01/02/2001 01/02/2001 18/02/2003 19/02/2003 19/02/2003 19/02/2003 19/02/2003 19/02/2003 19/02/2003 19/02/2003 19/02/2003 19/02/2003 10/02/2003
472.917 Manor_NorthWingUpper_storm.sac 138.671 Manor_PatricksRoom.sac 357.156 Manor_TowerRun_night.sac 605.796 Manor_TowerRun_storm.sac 721.739 Manor_WestWing.sac 188.239 Manor_WestWing_Hall1.sac 235.781 Manor_WestWing_Night.sac 657.028 Manor_WidowsWatch_storm.sac 343.366 Monastery_Past_Church.sac 916.103 Monastery_Past_Exterior.sac 823.625 Monastery_Past_Interior.sac 698.508 Monastery_Past_LivingQuarters.sac 420.499 Monastery_Present_Church.sac 926.364 Monastery_Present_Cove.sac 807.318 Monastery_Present_Entrance.sac 945.230 Monastery_Present_InnerSanctum.sac 411.482 Monastery_Present_Tunnels.sac 537.396 Oneiros_Amphitheater.sac 639.752 Oneiros_City1.sac 712.350 Oneiros_City2.sac 409.668 Oneiros_HowlingWell.sac 529.555 Oneiros_Intro.sac 704.331 Oneiros_Oracle.sac 437.084 Oneiros_RetreatBath.sac 656.684 Oneiros_RetreatExterior.sac 537.206 Oneiros_RetreatSecondFloor.sac 587.678 Oneiros_RetreatStudio.sac 92.602 Oneiros_ZigguratInterior.sac 566.457 Oneiros_ZigguratLower.sac 569.785 Oneiros_ZigguratUpper.sac 727.804 PiratesCove_Barracks.sac 437.427 PiratesCove_Exterior.sac 1.027.606 PiratesCove_Pier.sac 800.722 PiratesCove_Pool.sac 350.526 PiratesCove_TreasureRoom.sac 46.861 playground.sac 54.286 SmokeTest.sac 229.140 StandingStones_FirstVisit.sac 183.076 StandingStones_KingFight.sac 2.216 start.sac 62.721.421 byte
Directory di “C:\Programmi\Clive Barker's Undying\Sounds”
01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 07/12/2003 06/12/2003 01/02/2001
10.56 16.52 16.54 17.04 17.05 17.24 17.26 17.33 10.59 11.03 11.06 11.15 11.16 11.24 11.53 11.55 11.57 13.37 13.42 15.34 15.37 13.07 15.42 15.44 15.48 15.49 15.53 13.07 13.07 16.00 11.55 11.57 12.02 12.05 12.07 12.08 12.12 12.17 12.19 17.43 130 File
13.07 13.07 13.07 13.07 13.07 13.07 13.08 13.08 13.08 11.53 15.15 13.08 12 File
94.457.745 Ambients.uax 9.531.620 CreatureSFX.uax 41.528.047 CutSceneTracks.uax 168.278 Events.uax 2.045.008 Footsteps.uax 1.799.699 Impacts.uax 47.391.598 LevelMechanics.uax 61.969.570 Music.uax 15.507.652 Shell_HUD.uax 37.649.555 Voiceover.uax 33.862.953 Voiceover_Old.uax 9.104.580 Wpn_Spl_Inv.uax 355.016.305 byte
Directory di “C:\Programmi\Clive Barker's Undying\Support”
27/01/2001 27/01/2001
05.37 05.37
217.088 Clive Barker's Undying_Code.exe 700.416 Clive Barker's Undying_eReg.exe 77
27/01/2001 27/01/2001 24/01/2001 27/01/2001 01/02/2001 05/10/2000
05.37 05.37 03.25 05.37 22.07 18.50 8 File
577.536 Clive Barker's Undying_EZ.exe 86.016 Clive Barker's Undying_uninst.exe 879.175 en-uk_eahelp.hlp 65.536 go_ez.exe 10.844 ReadMe.txt 245.760 sip_core.dll 2.782.371 byte
Directory di “C:\Programmi\Clive Barker's Undying\System”
01/02/2001 01/02/2001 04/03/2003 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 25/02/2003 01/02/2001 01/02/2001 01/02/2001 11/02/2003 01/02/2001 01/02/2001 03/12/2003 03/12/2003 01/02/2001 01/02/2001 01/02/2001 01/02/2001 21/05/2004 01/02/2001 01/02/2001 01/02/2001 01/02/2001 25/02/2003 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 11/02/2003 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 25/02/2003 21/05/2004 01/02/2001 01/02/2001
13.08 13.08 21.11 13.47 13.08 13.08 13.08 13.30 16.20 22.38 13.51 13.37 19.48 13.08 13.08 00.12 00.12 13.08 13.29 13.35 13.08 00.55 13.38 13.08 13.08 13.34 16.28 13.38 13.36 13.38 13.37 13.08 13.37 19.47 13.36 13.08 13.38 13.08 13.38 13.08 13.08 13.34 13.08 13.36 13.08 13.08 13.37 13.08 16.37 00.55 13.08 13.08
177.280 355.400 99.321 51.732.804 285.696 609.584 140.288 675.840 3.730 44.018 11.927.411 163.840 369 11.180 6.353 0 2.994 34.304 163.883 1.175.598 3.214 1.556 103.619 82.998 150.528 1.638.400 5.891 955.670 110.592 9.574 249.856 273 65.536 472 122.880 1.153 12.701 301 17.782 84.000 401.462 73.728 82.744 266.286 18.768 96.256 307.200 329 3.981 13.481 200.704 331
00000409.016 00000409.256 Aeons.int Aeons.u binkw32.dll ComCtl32.ocx ComDlg32.ocx Core.dll Core.int Core.u Cutscenes.u D3DDrv.dll D3DDrv.int Default.ini DefUser.ini Detected.ini Detected.log drvmgt.dll DWI.dll Editor.dll Editor.int Editor.log Editor.u EdSplash.bmp Encvag.dll Engine.dll Engine.int Engine.u Fire.dll Fire.u Galaxy.dll Galaxy.int GlideDrv.dll GlideDrv.int IpDrv.dll IpDrv.int IpDrv.u IpServer.int IpServer.u MsOutl32.ocx MSVCP60.dll NGF.dll PicClp32.ocx Render.dll secdrv.sys Smackw32.dll SoftDrv.dll SoftDrv.int Startup.int System.ini Threed32.ocx UBrowser.int 78
01/02/2001 01/02/2001 06/12/2003 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 10/02/2004 30/05/2003 16/03/2004 03/12/2003 01/02/2001 01/02/2001 01/02/2001 01/02/2001 25/02/2003 01/02/2001 15/02/2003
13.38 13.36 14.01 13.08 13.38 13.08 13.38 13.38 13.08 18.17 20.03 10.33 00.17 13.36 13.38 13.38 13.34 16.49 13.37 21.14 72 File
213.622 UBrowser.u 61.440 UCC.exe 1.258 UCC.log 335 UMenu.int 528.465 UMenu.u 1.048.576 UndEd.exe 745.472 UndEd2.exe 910.711 Undying.exe 103 Undying.int 7.471 Undying.log 8.701.139 UndyingShellPC.u 1.012 UnrealEd.ini 7.294 User.ini 45.100 UWeb.dll 19.027 UWeb.u 459.419 UWindow.u 307.200 Window.dll 2.297 Window.int 114.688 WinDrv.dll 696 WinDrv.int 85.867.484 byte
Directory di “C:\Programmi\Clive Barker's Undying\Textures”
01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001
13.08 13.08 13.08 13.08 13.08 13.08 13.08 13.08 13.08 13.08 13.08 13.08 13.08 13.08 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09
633.351 340.324 76.526 27.301 180.352 1.907.914 180.862 269.764 2.816.687 1.320.625 795.513 2.128.658 4.919.088 1.242.225 6.457.677 4.689.682 709.967 537.881 727.644 1.198.309 535.085 806.997 2.426.273 1.144.809 1.139.590 1.474.000 1.038.637 980.739 905.581 3.280.899 6.197.421 453.859 441.077 54.563 2.120.151 435.552 5.281.758 957.277
AaronPaintings.utx AeonsFonts.utx BloodAndGuts.utx BloodFootprints.utx BrianDoors.utx BrianStStns.utx CatcombsFx.utx CatOpt.utx central-cfl.utx ChurchMtH.utx ClaraBogCLG.utx ClaraBogG.utx ClaraFinalClG.utx ClaraForestG.utx ClaraRavinesG.utx ClaraWorldH.utx ClCottage.utx Climb.utx Comic.utx CutSceneTex.utx CutScnG.utx dauphin.utx DoorsH.utx DrkTowerCwH.utx EarthH.utx EastWingH.utx entrance.utx ew-chapl-cfl.utx ew-kies-cfl.utx EWupG.utx FinConfG.utx FX.utx FXB.utx FXB2.utx GenHouseH.utx HCryptG.utx HNWingG.utx HotelRoomH.utx 79
01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001 01/02/2001
13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 13.09 92 File
27.193 HoundSpawn.utx 1.222.339 house-os-cfl.utx 969.942 HouseWwH.utx 2.736.653 HsWestWingG.utx 1.814.078 Interior.utx 5.785.389 JeffCatcombs.utx 1.089.987 jeremiah.utx 1.058.999 JournalArt.utx 396.949 KiesFace.utx 2.526 LightFXs.utx 90.510 Lightning.utx 1.924.131 LivingQrtMtG.utx 1.789.793 ManorPicsH.utx 645.706 Mausoleum.utx 445.254 MeetingHallMtH.utx 577.597 MonasteryB.utx 1.101.188 MonasteryExtMtH.utx 178.416 MonasterySpecia.utx 4.582.874 MonPresH.utx 727.682 Morpheus.utx 208.299 MtFx.utx 6.924.376 MtPresentG.utx 1.176.367 NeoCavesH.utx 1.209.644 OldCemH.utx 2.217.227 OneirosB.utx 4.524.395 OneirosExB.utx 1.644.999 OneirosH.utx 2.217.227 OneirosSkyB.utx 1.674.828 OneirosSkybox.utx 178.474 Oracle.utx 89.721 OracleFxH.utx 264.391 Pages.utx 532.380 Paintings.utx 987.591 parents.utx 1.064.538 ParisSkybox.utx 8.046.154 PiratesCoveG.utx 4.021.575 PirCoveH.utx 134.015 Poultry.utx 58.814 PropsH.utx 269.214 PS2ShellFonts.utx 324.102 Screens.utx 603.359 ScriptMtH.utx 2.217.458 SkyboxFinalH.utx 466.947 SkyBoxH.utx 3.283.349 SkyStStones.utx 907.065 Smoke_Test.utx 279.947 sound_test.utx 231.543 System.utx 266.435 TowerMtG.utx 4.740.105 Transitions.utx 1.789.817 UWindowFonts.utx 4.732.232 WatFallG.utx 23.893 wet.utx 1.306.566 WidowWtchH.utx 146.618.871 byte
Listato dei file di Delta Force: Black Hawk Down
Directory di “C:\Programmi\NovaLogic\Delta Force Black Hawk Down”
28/02/2003 18/12/2003 18/12/2003
15.00 22.49 22.53
49.152 APIClient.dll 4 ASSETS.CD 851 banlist.txt 80
21/01/2004 24/03/2003 18/12/2003 01/07/2002 24/12/2003 14/01/2004 14/01/2004 23/12/2003 20/05/2004 20/05/2004 26/02/2002 10/03/2003 20/05/2004 18/09/2003 13/05/2004 14/05/2004 17/12/2003 25/02/2004 23/04/2003 23/05/2004 11/03/2003 22/12/2003 01/07/2002 23/08/2003 21/02/2004 13/03/2003 17/02/2004 26/02/1999 10/03/2003 18/12/2003 07/01/2004 05/01/2004 25/04/2004 18/12/2003 23/04/2003 21/12/2003 11/03/2003 21/01/2004 20/05/2004
20.34 20.03 22.49 12.35 03.03 23.02 23.10 00.30 00.35 00.35 21.48 21.31 00.35 01.55 15.48 14.52 21.46 00.18 19.21 20.25 20.15 20.54 12.35 01.42 19.08 03.16 16.56 22.35 22.22 22.53 02.38 23.08 16.13 22.50 19.21 01.15 19.14 20.34 00.19 42 File
561 BHDTS.CMD 377.856 BINKW32.DLL 10 cc.bin 28.672 CMPRSSH1.DLL 761 DFBHD.CMD 2.547.712 dfbhd.exe 2.519.040 dfbhdlc.exe 839.680 dfbhdmed.exe 3.023 dfv.cfg 129.764 dfvplr.sav 218 EARLYERR.TXT 175.894.072 gamemus.sbf 1.908 ghw.txt 139.264 IBGL.dll 297 ibgl.ini 5.347 ibrowse.cfg 311.296 IBrowse.dll 233.030.525 localres.pff 114.688 LOCALUPD.exe 1.368 med.hrf 21.098.147 med.pff 12.973.568 menumus.sbf 277.776 MSVCRT.DLL 86.016 PACK.EXE 268 prefs.med 8.987 Readme.txt 343.608.344 resource.pff 32.768 REVUPDAT.EXE 75.204 sample.mis 10.995 score.ini 561 Startup.htm 11.204 STARTUP.PNG 11.918 SYSDUMP.TXT 17.180 Uninst.isu 172.032 UPDATE.EXE 85 UPDATE.WIZ 48 VERSION.TXT 3.740 _FILES.PFF 0 _iberr.txt 794.384.910 byte
81
Indice delle figure Fasi pratiche di una traduzione Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig.
1 2 3 4 5 6 XX 7 8 9 10 11 12 13
Struttura file generico non di testo Testo nascosto e testo in chiaro Struttura archivi Testo in chiaro con stringhe di programma Testo in editor esadecimale UN-PACK in esecuzione Esempio di avviso sezione import successiva a sezione risorse Esempio di glossario Editing immagine: originale Editing immagine: testo contornato Editing immagine: spianamento del colore Editing immagine: eliminazione del testo Editing immagine: inserimento testo tradotto Clickteam Patch Maker in esecuzione
Flusso decisionale di traduzione Fig. XX
Esempio di flusso di ricerca testi
Strumenti utili Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig.
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Hex Workshop in esecuzione Finestra di ricerca di Hex Workshop Finestra di confronto file di Hex Workshop PE Explorer in esecuzione Finestra degli header di PE Explorer Finestra dei dati interni di PE Explorer Finestra di editing di PE Explorer UN-PACK in esecuzione Setup Generator in esecuzione Clickteam Patch Maker in esecuzione Quarta finestra del wizard di Clickteam Patch Maker Quinta finestra del wizard di Clickteam Patch Maker Settima finestra del wizard di Clickteam Patch Maker Finestra di definizione dei testi della patch di Clickteam Patch Maker Babylon Translator in esecuzione Dragon UnPACKer in esecuzione Finestra di selezione formati di HyperRipper (Dragon UnPACKer) Finestra di ricerca di HyperRipper (Dragon UnPACKer)
Esempio 1 – Clive Barker’s Undying Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig.
32 33 34 35 36 37 38 39 40
Struttura interna di “Core.int” “Engine.int” in originale e tradotto “Aeons.int” tra intestazione e diario “Aeons.int” tra obiettivi e avvisi Eventi script nelle mappe OnScreenMessage nelle sue due forme Finestra di elenco oggetti di UndEd Finestra delle proprietà degli oggetti di UndEd Le texture in UndEd 82
Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig.
41 42 43 44 45 46 47 48 49 50
Un bottone in originale e tradotto Finestra d‟importazione texture di UndEd I personaggi visti in UndEd Il pannello delle proprietà dei dialoghi in UndEd (file e tempistiche) La finestra dei file audio del doppiaggio di UndEd 2 Le classi degli oggetti in UndEd Trigger, Dispatcher e OnScreenMessage in UndEd I parametri di definizione di un Trigger I parametri di definizione di un Dispatcher Installer di Clive Barker’s Undying in esecuzione
Esempio 2 – Delta Force: Black Hawk Down Fig. Fig. Fig. Fig. Fig. Fig.
51 52 53 54 55 56
“med.pff” visto con Hex Workshop Orion‟s Bin file editor in esecuzione BIN Editor in esecuzione “SPBHD_04.pcx” visto con un editor grafico Patch & Play di Delta Force: Black Hawk Down in esecuzione Installer di Delta Force: Black Hawk Down in esecuzione
83
Note del lettore Questo spazio è a disposizione del lettore per appunti personali riguardanti la guida.
84
G.I.T. Edizioni 2007
85