Romhacking.it Forums

Traduzioni => Rom Hacking => Discussione aperta da: sawakita29 il Marzo 16, 2010, 01:21:13

Titolo: [Snes] Goof Troop
Inserito da: sawakita29 il Marzo 16, 2010, 01:21:13
Ciao a tutti!
Ho trovato qualche giorno fa delle vostre traduzioni e subito mi ha affascinato l idea di provare a tradurre qualche gioco con le mie manine.
Ho letto varie guide e ben o male pian pianino sono arrivato penso ad un buon punto :)
vi spiego cosa ho fatto e il problema che mi ritrovo ora.

1. Ho aperto il gioco con l emu e ho individuato la prima parte di testo che compare.
2. Tramite il testo sono riuscito a trovare la tabella dei caratteri del gioco e l'ho creata.
3. Ho aperto il gioco con translhextion e la tabella creata in precedenza
4. Ho cercato il dialogo che avevo trovato in precedenza con il gioco.
5. Ho fatto espandere la rom con Lunar Expander

E qui il problema... Ho letto della questione dei puntatori anche se non sono riuscito sinceramente a capire bene come funzionano, da quello che ho capito ne esistono diversi tipi e a seconda del gioco si potrebbero avere anche determinati problemi.

Questo è il testo cancellato di una sola finestra di dialogo:

(http://img687.imageshack.us/img687/7120/gooftroop.th.jpg) (http://img687.imageshack.us/i/gooftroop.jpg/)

Ovviamente il testo che ho tradotto in italiano non entra e quindi in teoria dovrei usare la tecnica dei puntatori giusto?
Ma come faccio a far si che quello spazio vuoto vada a cercarsi il testo di quella finestra in un altro offset?

scusate se sono ignorante in questo campo ma sono determinato a riuscire a tradurre perchè mi piace un sacco sta cosa! :)
Titolo: [Snes] Goof Troop
Inserito da: Nerox92 il Marzo 16, 2010, 23:29:51
Cosa non hai capito di preciso?
Comunque hai gia letto le guide dei sadnes vero?
Titolo: [Snes] Goof Troop
Inserito da: sawakita29 il Marzo 17, 2010, 00:09:32
sisi le ho lette...
praticamente non ho capito bene la storia dei puntatori anche se ne ho capito il funzionamento...
se ad es. dopo aver fatto l'espansione alla rom e aver scritto la frase in una parte di memoria completamente libera non riesco a far si chi nella parte di memoria originale si colleghi a quel determinato offset per prendere il testo italiano
se vedete lo screenshot forse riuscite a capire meglio :)
Titolo: [Snes] Goof Troop
Inserito da: Phoenix il Marzo 19, 2010, 21:30:37
Tutto sta nel trovare la tabella dei puntatori (che solitamente si trova poco sopra o poco sotto il testo).
La tabella dei puntatori non è altro che una lista di indirizzi in cui andare a prendere il testo.
Il gioco passa in rassegna uno alla volta questi indirizzi per capire dove andare a trovare il testo da visualizzare. Per le Rom SNES i puntatori hanno un formato fisso che dovrebbe essere esplicato nelle guide che hai letto.

Dovresti provare a cercare il puntatore relativo alla tua frase e vedere se dopo di quello si trovi il puntatore alla frase successiva.
Se così è hai trovato la tabella.

Fatto questo dovrai calcolare, a partire dall'offset in cui vuoi mettere il nuovo testo, il nuovo puntatore e sostituirlo a quello vecchio. In questo modo il gioco, quando leggerà quel puntatore, andrà a prendersi il testo dalla nuova posizione.
Titolo: [Snes] Goof Troop
Inserito da: sawakita29 il Marzo 21, 2010, 15:09:18
sembra semplice ma non ne vengo fuori.
allora mi sono posizionato all inizio dove inizia la frase che si trova all offset 389098
come da guid ho calcolato 389098-200=388898 che poi diventa 8898 e infine 9888.
quindi 9888 dovrebbe essere quello che mi serve giusto? Ma ora che cosa devo fare? come trovo il puntatore e come lo sostituisco? Leggendo la guida non capisco  :(  
Titolo: [Snes] Goof Troop
Inserito da: Phoenix il Marzo 21, 2010, 22:08:18
a parte che se non ho intuito male. Tu gli offset li stai considerando in decimale, mentre quel 200 è un valore in esadecimale.

0x200 -> 512 in decimale. Quindi, anceh volendo, il puntatore è calcolato male.

Devi convertire tutti i valori in esadecimale. Translhextion, accanto all'offset in decimale mette quello in esadecimale (0x)