YetAnotherTopicAboutPointers

Aperto da inutilities, Agosto 02, 2007, 00:33:08

Discussione precedente - Discussione successiva

inutilities

Diamo per scontate le guide citate nel regolamento, le avevo già lette qualche anno fà e mi erano state utili anzi utilissime(ho letto anche qualche altro topic ma niente), ma ora per lo sviluppo del programma di aiuto per la traduzione di
SMT 1 (Snes - LoRom - senza Header)
mi serve qualche risposta in più. Del tipo :

1) So che esistono puntatori da 3,2 e 1[es. i caratteri, giusto?] byte, è possibile trasformare ad esempio un puntatore da 2byte in uno da 3?

2) I puntatori puntano solo a testo,grafica e suoni, o c'e' dell'altro?

3) Come è possibile sapere dell'esistenza di un puntatore che punta a qualcosa che non sia testo?

4) L'unico modo per trovare dei puntatori e quello manuale o esistono dei tools(debugger , disassemblatori)?

5) Come si fà ad essere certi di aver trovato tutti i puntatori?

[P.s] Spero che la risposta a tutte e 5 le domande non sia ASM 65816.

[Post P.s.]Se indicate qualche tipo di programma, vi prego di indicarne anche il nome o alcuni esempi, anche per evitare un inutile post in cui io vi chieda più informazioni su tale programma.

Gemini

1) Sì, basta andarci di asm e puoi cambiare i puntatori come ti pare. Diverse rom presentano puntatori a 24 bit per ovviare ai problemi di spazio nei banchi.
2) Puntano a qualsiasi tipo di informazione.
3) Debugger e tanta pazienza, oppure un culo della madonna. :P
4) Se conosci i trucchi tipici puoi anche sgamarli a colpo d'occhio, ma il più delle volte è meglio andare con il sistema metodico: debugger.
5) Non puoi mai esserne certo. I programmatori possono benissimo buttare puntatori dove capitano, a volte anche nel codice.

Morpher

Citazione5) Non puoi mai esserne certo. I programmatori possono benissimo buttare puntatori dove capitano, a volte anche nel codice.
Oppure li puoi trovare anche nei banchi di testo

inutilities

Citazione[Post P.s.]Se indicate qualche tipo di programma, vi prego di indicarne anche il nome o alcuni esempi, anche per evitare un inutile post in cui io vi chieda più informazioni su tale programma.

Qualche buon debugger per Snes?

Morpher si ma il problema è
Citazione3) Come è possibile sapere dell'esistenza di un puntatore che punta a qualcosa che non sia testo?

Morpher

Qui li trovi tutti (o quasi)
http://www.romhacking.net/?category=17&Pla...Go&title=&desc=

A mio parere il migliore è il Geiger's SNES9x Debugger.

Per vedere se punta a testo o grafica dovresti, sempre con il debugger, segnarti i comandi (vedi qualche guida sull'asm del snes) utilizzati per caricare il testo e spostare i dati e quelli utilizzati per caricare e spostare la grafica

Gemini

CitazioneOppure li puoi trovare anche nei banchi di testo
Sì, ma non è detto che siano nello stesso pezzo, e soprattutto che facciano parte di un banco di soli puntatori. Se si trovano nel codice, come succede in una marea di giochi, sono leggermente difficili da individuare.

inutilities

[Premessa - Io non so praticamente nulla di asm, tutto il lavoro sui puntatori l'ho fatto per mezzo dei soli editor esadecimali, dell'intuito e della fortuna.]

Non mi è ben chiara una cosa, è necessario che io sospetti che qualcosa sia un puntatore per vedere con il debugger se questo qualcosa sia un puntatore o meno,
o dal debugger si evincono i puntatori a prescindere dall'analisi della rom con l'editor esadecimale?