Romhacking.it Forums

Traduzioni => Rom Hacking => Discussione aperta da: Rob il Dicembre 29, 2008, 22:13:58

Titolo: Tabella dei puntatori
Inserito da: Rob il Dicembre 29, 2008, 22:13:58
Ehi, mi date qualche dritta su come trovare la tabella dei puntatori??? Sto impazzendo per trovarla :P  
Titolo: Tabella dei puntatori
Inserito da: Phoenix il Dicembre 29, 2008, 23:00:33
Dovresti dare qualche informazione in più...

Che gioco stai traducendo?
Per quale piattaforma?
Titolo: Tabella dei puntatori
Inserito da: Rob il Dicembre 29, 2008, 23:54:36
Ah, menomale che hai risposto tu a questo post, Phoenix. Sul forum dei sadnes sono registrato come Cloud_93 e ieri mi hai postato una mini-guida su come cambiare i puntatori. Ricordi?
Cmq, quando ho cercato di fare cio che avevo appreso da te, non sono riuscito a trovare la tabella dei puntatori. :(  Volevo postare un messaggio nel topic dove avevamo parlato ieri, ma questo cavolo di pc ogni tanto fa i capricci (credo abbia qualche virus) e apriva tutti i siti tranne quello dei Sadnes. Cosi ho dovuto chiedere aiuto qui.
Per favore, aiutami ancora una volta...anke se ormai ho una reputazione da vero rompi... :D  
Titolo: Tabella dei puntatori
Inserito da: Rob il Gennaio 03, 2009, 14:26:51
Grazie per la risposta... <_<  
Titolo: Tabella dei puntatori
Inserito da: Phoenix il Gennaio 03, 2009, 18:51:29
In un forum nessuno è tenuto a rispondere ad una domanda.
Se non l'ho fatto, avrò avuto i miei motivi. Uno tra i tanti è lo studio, visto che il 14 ho da consegnare due progetti.

E cmq, nel frattempo avresti potuto cercare qualche altra info, come ho imparato da solo io, può farlo chiunque altro.

P.S. Qui avrai tutte le risposte alle tue domande puntatori (http://www.romhacking.net/?category=&Platform=&game=&author=&perpage=20&page=documents&level=&docsearch=Go&title=pointer&desc=)

Buona lettura
Titolo: Tabella dei puntatori
Inserito da: Gemini il Gennaio 03, 2009, 20:25:45
Cattivo Phoenix!
(http://data1.blog.de/blog/s/steppina/img/bimbi_cattivo.jpg)
Titolo: Re:Tabella dei puntatori
Inserito da: leotato008 il Aprile 02, 2011, 02:45:03
Salve a tutti ragazzi! Colgo l'occasione per presentarmi dato che sono nuovo!
Mi chiamo Damiano, e sto cominciando solo ora a lavorare sulle ROM.
Ho preso Snake's Revenge, per il semplice fatto che è uno dei giochi per NES che preferisco.
Veniamo al dunque: nonostante mi sia letto e riletto più volte le guide sui puntatori (forse l'ora non mi aiuta), non capisco come modificare il puntatore in modo da fargli leggere correttamente il testo (che ho controllato, non supera la lunghezza originale prevista).
Non mi è proprio chiara la parte di aggiornamento del vecchio e del nuovo puntatore.
Spero la domanda sia chiara, e soprattutto non vinca il premio per 'la domanda più stupida del millennio' :-)
Grazie a tutti intanto!!
Titolo: Re:Tabella dei puntatori
Inserito da: Cid89 il Aprile 02, 2011, 22:59:42
Ciao :)
La tua domanda non mi sembra molto chiara.
A prima impressione, sembra che tu non abbia capito bene che cosa siano i puntatori. Per farla breve, un puntatore è un numero (credo che in questo caso particolare si tratti di una coppia di byte) che indica dove comincia una certa stringa all'interno della ROM.
Se il testo "non supera la lunghezza originale prevista", allora immagino avrai modificato il testo senza spostarlo... In tal caso non dovresti modificare alcun puntatore :O

Ma è probabile che io abbia capito male, magari prova a dare qualche maggiore dettaglio mostrando direttamente quale stringa e quale puntatore ti danno problemi.

PS: non ho mai messo mani su un gioco NES in vita mia, quindi chiedo scusa se sto prendendo una cantonata!
Titolo: Re:Tabella dei puntatori
Inserito da: leotato008 il Aprile 11, 2011, 10:39:06
Ciao Cid (quello di final fantasy magari??) :-)
Ti rispondo così:
Quelle poche cose che so fare, le so fare in c++. Per me, un puntatore è una variabile che punta ad un'altra variabile tramite referenziazione, o tramite la quale puoi assegnare al variabile puntata un valore.
Ora, quello che non ho capito è:
nelle guide normalmente si cita come soluzione la possibilità di individuare il puntatore in questo modo (per il nes almeno):
prendi l'offset del punto in cui comincia il testo (es. 23456), togli l'header, 100 bytes (23446) lasci soli gli ultimi 2 byte (3446) e giri il loro valore (4634). Questo dovrebbe essere il mio puntatore.
Ciò che non capisco è: questo valore ottenuto, lo devo cercare come offset (cioè come indirizzo), o come valore da qualche parte nella rom?
La seconda domanda è: nel caso in cui la risposta fosse la seconda, non è possibile che vi siano più coppie di byte identiche all'interno della rom?
Se invece si tratta invece di un offset, come applico la modifica al testo in modo tale da correggere eventuali errori di ritorno a capo o sovrascrittura del testo?
Spero sia stata esaustiva la spiegazione.
Se non lo fosse, dimmi pure che posto il problema vero e proprio.
Grazie ancora e scusa per il ritardo nel risponderti.
Damiano.  ;D
Titolo: Re:Tabella dei puntatori
Inserito da: Nerox92 il Aprile 11, 2011, 16:05:47
La risposta giusta è la seconda. È vero che nella rom si possono trovare più valori uguali ma i puntatori si trovano o subito prima del testo o subito dopo, quindi è li che devi cercare :)
Titolo: Re:Tabella dei puntatori
Inserito da: Clomax il Aprile 11, 2011, 16:28:23
aggiusto il tiro: "solitamente" subito prima o subito dopo. ma anche da qualche parte nella rom. certo è che QUASI SEMPRE si trovano in BLOCCHI. trovane uno facendo dei tentativi (sostituiscine i valori e verificane gli effetti) e ne avrai trovati un bel pò :P

seconda domanda: certo che possono esserci.
Titolo: Re:Tabella dei puntatori
Inserito da: leotato008 il Aprile 11, 2011, 16:44:59
Ok, ora che mi avete confermato che non si tratta di un offset, bensì di una coppia di byte il cui valore è l'offset del nostro testo, modificato secondo le regole che ho descritto prima (nel mio esempio 4634, giusto?), pongo il quesito successivo.
Supponendo di trovare il puntatore giusto (leggo nelle Vostre guide che spesso ci si accorge che sono un blocco di puntatori non solo perchè si trovano prima del testo, ma anche perchè uno dei 2 byte ricorre spesso), come modifico il valore, in modo da dire al testo puntato "comincia li e non la")???
Cioè, quei 2 byte (4634), come li devo modificare? Se io li modificassi in 4633 per esempio, cosa accadrebbe? (Probabilmente questa domanda è stupida, ma non conoscendo se c'è una risposta precisa oppure se cambia in funzione delle diverse rom ve la pongo ugualmente).
Grazie mille intanto per le rapide risposte!! :-)
Damiano.
Titolo: Re:Tabella dei puntatori
Inserito da: Nerox92 il Aprile 11, 2011, 18:24:24
Per modificare il puntatore per adattarlo al testo basta che traduci la parte che ti interessa e dopo ti posizini sulla prima lettera della frase ti calcoli il puntatore e dopo lo sostituisci all'originale. Ti faccio un esempio:
Allora diciamo di avere un blocco di testo con due frasi e di conseguenza due puntatori

4364 4388

Hi my name is Gianni. Nice to meet you.

Ora il risultato finale sarà

Ciao il mio nome è Gianni. Piacere di conoscerti.

E di conseguenza i puntatori saranno:

4364 4392

Cioè il primo puntatore rimane invariato mentre il secondo viene modificato visto che ora la frase inizia in un altra posizione.

Spero di essere stato chiaro e di non averti confuso...
Titolo: Re:Tabella dei puntatori
Inserito da: leotato008 il Aprile 11, 2011, 18:39:50
Quindi se non ho capito male:
- 1 byte = 1 posizione; (4388 + 4 = 4392) quindi 4 posizioni in avanti.
- 1 frase = 1 puntatore;
- Il puntatore punta al primo carattere della stringa.
- E' possibile che modificando 4388 in 4392 io vada a rompere le balls a qualche altra frase, il cui puntatore dovrà a sua volta essere sistemato.

L'ultima domanda e poi la smetto, giuro!  ;D
Per citare il tuo esempio, può essere che la parola successiva a 'conoscerti', sia "puntata" da un puntatore che si trova da tutt'altra parte sulla rom, invece che successivamente ai 2 puntatori menzionati?

Stasera faccio un po' di prove, e se ci riesco poi vi faccio le domande più complicate (tipo come mai alcuni testi dei menù o del trcvr di snake's revenge per esempio) non si trovano con la ricerca relativa..
ma ogni cosa a suo tempo..
Grazie infinite intanto, sei stato molto chiaro!
;)
Titolo: Re:Tabella dei puntatori
Inserito da: Nerox92 il Aprile 11, 2011, 20:10:39
Se hai trovato 2 puntatori vicino vuol dire che molto probabilmente il terzo sia a fianco visto che di solito sono sequenziali. Ovviamente quello che hai detto è giusto però sul fatto il puntatore è sempre sulla prima lettera va aperta una parentesi:
Spesso viene puntata la prima lettera ma non è detto può darsi che venga puntato un byte prima o più ma tutto questo dipende da come è stato programmato il gioco.
Altra cosa importante sono i byte a capo, su questa c'è una guida qui su RH ti consiglio di leggerla per capirne bene il funzionamento.
Ora ti rispondo anche all'altra domanda, se non riesci a trovare nel testo le voci del menu ci sono tre possibili alternative:
Il testo per i menu può usare una tabella diversa da quella del testo normale, quindi prova a cercare con Monkey Moore le parole che ci sono nel menù. Se la ricerca va male c'è l'alternativa che sia grafica, quindi munito di Tile Molester dovrai trovare e modificarle. Nel caso più sporadico è testo compresso.
Titolo: Re:Tabella dei puntatori
Inserito da: leotato008 il Aprile 18, 2011, 23:13:11
Ciao amici!
Scusate il ritardo ma come sempre tanti impegni tra lavoro e famiglia!
Ne ho beccato uno, a conferma di quanto mi dicevate lunedì scorso.
Adesso devo capire un po' il meccanismo di applicazione dei puntatori al gioco!
Grazie infinite intanto! :-)
Damiano

EDIT:
Sono un drago ormai.  8)
Ho capito come vengono caricati i dialoghi e come invece vengono applicati all'interno dei blocchi di testo (i ritorno a capo per esempio).
Adesso mi diverto un po' con la grafica e vediamo cosa ne esce! :-)
Grazie ancora a quelli che mi hanno aiutato!!
Titolo: Re:Tabella dei puntatori
Inserito da: Clomax il Aprile 19, 2011, 16:04:12
tienici informati sui tuoi progressi. in bocca al lupo!  ;D
Titolo: Re:Tabella dei puntatori
Inserito da: leotato008 il Aprile 19, 2011, 16:28:59
Ieri notte, intorno all'una, sono riuscito a finire la traduzione di tutto il testo che va dal menù principale alla descrizione di snake e compagni che appare all'inizio del gioco.
Ho notato che i puntatori che riguardano l'inizio del blocco di testo vero e proprio sono tutti posizionati poco prima dell'inizio del grande blocco di testo che contiene tutta la parte relativa all'introduzione e all'epilogo del gioco.
Per quanto riguarda invece i puntatori che indicano dove comincia la nuova frase dopo un . o un crlf, essi si trovano proprio prima dell'inizio della nuova frase. In questo caso, ho visto che le coppie di byte stanno ad indicare proprio la posizione in termini di coordinate all'interno della finestra (mantenendo per esempio costante una coppia di byte e variando l'altra, il testo rimane allineato al bordo di sinistra e si sposta in alto e in basso; mentre invertendo i ruoli sposto a destra e sinistra il testo mantenendo inalterata la posizione sulle ordinate).
Stasera c'è RIS, ma domani proseguo!  ;)
Buona giornata a tutti!!