[snes] Brain Lord

Aperto da Romhacking.it, Febbraio 14, 2006, 23:47:00

Discussione precedente - Discussione successiva

Clomax

ho riletto il tuo messaggio... beh si, sullo 00 c'ero arrivato :P

Clomax

scusate se utilizzo tre messaggi... :P

allora, all'inizio del blocco di testo c'è il dialogo di benvenuto dello shop che si trova nel primo villaggio.
se gli rispondi BUY lui salta al terzo dialogo presente qui sotto che inizia con un puntatore che punta ad una zona del banco di testo contenente questo:

 I don't have
 very much...

probabilmente è la frase che verrà restituita più avanti nel gioco (quindi al verificarsi di un evento).



Welcome to the Arcs
Tool Shop.
We have everything!
What would you like
today?
[arcs shop]

Welcome to Toronto,
the world's cheapest,
best-stocked Tool Shop.
What can I get you today?
[shop2]

0ndseIt's all cheap, but good.
What would you like?


beh, quindi lui trova f9f6xx, salta nella routine e si serve del byte xx per capire che negozio è. dopodichè si apre il menù di scelta buy, sell e quit. a seconda della scelta del giocatore verrà restituita una risposta e, successivamente, verrà aperta la finestra contenente la merce in vendita o da comprare. ora bisogna capire al momento della selezione (buy, sell, quit) come fa (e dove) la routine e puntare la risposta nel banco di testo. il puntamento alle descrizioni degli oggetti e delle fatine dovrebbe essere analogo.

se domani vi trovo su msn ne parliamo :P

Morpher

Si, c'è una bella routine ma alla fine ci sono i relativi puntatori alle descrizioni. Basta semplicemente modificare quelli.

Esempio:

Citazione
<white>[0x8B]<white>?
This Fairy is a master
of lightning.

Il suo puntatore è D7193B e si trova all'offset 0x18EE4.
[0x8B] è invece il richiamo all'oggetto.

Clomax

ok, il ripuntatore attualmente ripunta anche qui puntatori correttamente. quindi non è quello il problema.

ho notato poi che quei puntatori sono nelal forma 01xxxxd7 (01).
cmq se rileggi un pà di post indietro ti renderai conto che le variabili

TEXT_POINTER3_BLOCK_START = 0x18ea1
TEXT_POINTER3_BLOCK_END = 0x18f9b

inlcudono quel range e ripuntano a dovere.

il problema è un'altro: è la scelta!

allora...

0x170000 - il tizio del negozio ti saluta e ti apre il menù di scelta con i byte f9f6(1f).
se si sceglie buy il testo riprende da 0x170092.

ecco, come fa questo salto è un mistero (per me) ed evande dalla logica attuale del repointer.

:P

Morpher

E' usata una variabile per la scelta che implica l'avvio di una particolare routine per caricare i puntatori e successivamente il testo. A te interessa solo ripuntare; inseriscigli l'offset dei puntatori alle frasi e il repointer dovrebbe fare il resto. Non vedo a che servirebbe modificare gli eventi...

Clomax

morpher, sono proprio i puntatori che mancano...
prova a cercare il puntatore all'indirizzo 0x170092 (ovvero 9200d7).
non c'è! me ne vorrei sbattere della routine ma CHI DICE ALLA ROUTINE DOVE PUNTARE? un puntatore! where is it? i dunno.

:lol:


Morpher

Se riesci a passarmi un save state quando compare quella frase saprò dirti di più...

Clomax

ti ho mandato il save state via mail.
sappi che TI ODIO perchè non leggi ATTENTAMENTE i miei post. VI HATO (che foneticamente suona come viados...)!!!

:clomax mode:  

Clomax

ok, morpher m'ha amndato una mail QUASI chiarificatrice.

in ogni caso, queste sono le statistiche stampate dal repointer:

puntatori totali: 809
indirizzi totali: 4854
indirizzi modificati: 789
puntatori non trovati: 80
indirizzi modificati: 789
puntatori non modificati: 20


ora si tratta di trovare quegli 80 puntatori con la nuova logica del morpho e di cercare di capire perchè venti puntatori al testo rimangono fuori (e quali sono). ah, in quegli 80 ci sono anche i testi consecutivi. :P enjoy.

Clomax

ok, grazie a morpher ora anche i testi dei negozi vengono ripuntati a dovere.
sto ottimizzando il ripuntatore poichè, a casa di un grosso bug, oggi ho perso molto tempo per cercare di capire perchè non ripuntasse a dovere alcuni dialoghi.

i prossimi passi sono:
- correzione di un dialogo che, dopo aver scelto yes, non viene ripuntato (analizzerò il caso specifico)
- la rom va a modificare qualche puntatore (per i negozi, quindi nel nuovo modulo) che non deve modificare quindi sputtana graficamente qualcosina (non bloccante). quindi dovrò localizzare un range per circoscrivere la modifica di questi puntatori o sensibilizzarla maggiormente.
- ottimizzazioni

beh, ci siamo quasi... io domani passo i testi a feanor... considerando che è un solo banco di testo, che ci sono dei byte alla fine della rom utilizzabili, che le mte sono ripuntabili e ampliabili, che il vwf è realtà, che il repointer è a buon punto...

... incorciamo le dita! :P

Morpher

Clò, il vwf è di chester, io ho incrementato la lunghezza dei nomi :P

Clomax

Copia del topic originale. Novità in vista!

Autore: Clomax
Versione: Statunitense
Lingue: Inglese -> Italiano
Stato: In corso
Percentuale: 0%

Cosa è stato fatto (aggiornato al 24/09/2008):
  • lettere accentate 100% (clomax)
  • tables 99% (clomax)
  • ampliamento mte (morpher)
  • lunghezza dei nomi (chester)
  • vwf (morpher)
  • tool di ripuntamento 50% (clomax)
  • traduzione 0% (feanor, clomax)
24 settembre 2008
aggiornato lo stato della traduzione.

1° settembre 2008
ritrovati i puntatori alle mte, ai luoghi e ai nomi.

26 agosto 2008
progetto riaperto, scritta documentazione delle scoperte. effettuate altre ricerche sui puntatori. scrittura preliminare di un tool che ricerchi i puntatori sparsi all'intento della rom. ricerca dei puntatori dalle mte).

14 febbraio 2006
Ho ripreso questo vecchio progetto e, grazie a Gemini, Mat e Saffo sono riuscito a:
  • aggiungere le lettere accentate
  • trovare una delle due table (l'altra è relativa agli oggetti e ci penserò poi)
  • trovare le MTE
  • trovare i puntatori al testo
  • trovare GLI ALTRI puntatori al testo
  • trovare i puntatori alle MTE
Tutto questo in una settimana circa. Ora arrivano i dolori. Ho deciso infatti di tradurre e di ripuntare tutto a mano a causa della NON esistenza di un unico blocco di puntatori. Parte di questi, infatti, è sparsa nel blocco di testo. In ogni caso il testo è inferiore (di poco) ai 64kbyte (eccetto descrizione degli oggetti e varie) e lo spazio alla fine del blocco (di zeri) è sfruttabile. Tutto il testo è ripuntabile (ora so dove trovare i puntatori) e quindi, con un'ottimizzazione delle MTE, sarà agevolmente traducibile. Non so quanto tmepo impiegherò ma in questi giorni vorrei prendermela con calma e cercare di scoprire qualche altra cosetta sia sui tool (translhexion) sia sulla rom. Ad esempio SEMBRA si vada a prendere delle parole dalla RAM (???). Possibile?! Mah, volevo analizzare per bene i blocchetti di puntatori alle MTE e agli oggetti... L'uso di queste "paroline" l'ho scoperto dumpando il testo del gioco e sembra che possano essere richiamate solo in determinati momenti. Inoltre c'è mooooolto spazio nella rom per aggiungere altre lettere. Manca, ad esempio, il carattere ')' mentre è presente il carattere '('. Non che serva a nulla ma una volta aggiunto potrei trovare il modo di utilizzarlo.

Mi sono sorpreso di essere riuscito, piano piano, a capire la logica perversa di questo gioco. È stato angosciate ma allo stesso tempo divertente. Spero di non bloccarmi al momento della traduzione.