Pokemon Verde e valori variabili

Aperto da RyuH, Dicembre 18, 2008, 15:18:25

Discussione precedente - Discussione successiva

RyuH

Ho aperto un topic nella sezione apposita per spiegare un mio piccolo progetto(non lo vedo però presumo ci sia O.o)e ho bisogno di alcuni aiuti.

Allora, il problema è questo:

Il gioco utilizza dei valori per richiamare specifici particolari.Es:

Il valore 52 richiama il nome del protagonista(qualunque esso sia). Il 53 quello del rivale. Il 54 però rappresenta il vero problema. Questo valore scrive PET nel gioco ed è usato sia nelle frasi normali che nei menu(laddove nelle versioni italiane è scritto pokemon qui ritroviamo PET). Ho provato a cambiare questo valore, riuscendoci, e inserendo un bruttissimo POK. Infatti agli inizi della rom si trova, controllando con hexeditor, una scritta PET piu grande di una casa, e modificando quella modifico il valore inerente. Il problema è: come faccio ad aggiungere lettere a questo valore rendendolo cosi, non POK, ma POKEMON?

Phoenix

Non so ora come il gioco carichi quel testo, ma se subito dopo PET c'è un sfilza di 00 e sono abbastanza da ficcarci POKEMON più uno zero finale, potresti provare in questo modo, può essere che venga gestita a mo di null terminated string (alla C) e cioè che carica la parola lettera per lettera fino ad incrontrare il carattere terminatore (00 appunto).
Se così non fosse allora ci vuole un po' asm.
Phoenix
****************
membro di SadNES cITy
I gruppo italiano di traduzione ROM
http://www.sadnescity.it
*****************************

RyuH

Avevo vagamente calcolato questa possibilità ma non penso sia fattibile..infatti nell editor è scritto cosi "pet?missile."

(?=non ricordo il valore)

E quel missile non so che voglia dire O.o però con l asm non saprei che combinare..non lo saprei proprio...

ps:sto usando il tuo convertitore di table per Hex Workshop per fare questa traduzione..grazie per averlo creato mi sta rendendo le cose molto piu semplici!anche perchè il thingy non mi parte(non è un applicazione di win32 valida), però pazienza è piu comodo cosi XD grazie.

Mi chiedevo piu che altro..sarebbe fattibile espandere la rom e cavarmela coi puntatori per aggiungere testo in quel frangente?

Vash

tutto è possibile, potresti anche trovare uno spazio di padding e puntare la parola lì
Vash the stampede
il tifone umanoide
la calamità naturale
l'uomo da 60 miliardi di $$


TRIGUN ONE WORD ONE WORLD

RyuH

Ok...allora ci provo...anche se devo un po informarmi sui puntatori perchè, se teoricamente non son carente, lo sono praticamente...

Vash

bhè qua si tratta di un puntatore solo, non sarà facile da trovare, se non vi a asm
Vash the stampede
il tifone umanoide
la calamità naturale
l'uomo da 60 miliardi di $$


TRIGUN ONE WORD ONE WORLD

RyuH

Ora cerco una soluzione alternativa..vediamo se funge(anche se dubito)..ho intenzione di fare una cosa simile a quella che ha suggerito Phoenix..è una possibilità remota. Vi faccio sapere.

EDIT:ho ottenuto un mezzo successo(solo mezzo..dunque anche mezzo fallimento).

B0AFABA550ADA9B3B3A9ACA550ADC1C3C3C8C9CEC1B3C5C7D2FFFFFF00

La sequenza di valori è questa. E corrisponde a:

POKE.MISSILE.Macchinasegr(prima corrispondeva, con valori originali, a PET.MISSILE.Secretmachine)

(sono riuscito ad aggiungere una lettera al POK)

Come si puo vedere ci sono una sfilza di F e poi di 0. Ho provato a "posticipare" i valori fino a quel punto. Ovvero reso pok-pokemon, ho lasciato missile invariato e cambiato secretmachine in qlksa di piu breve. In pratica ho rubato lo spazio del missile che a sua volta l ha rubato al secret machine. Il problema è che quando questo valore viene richiamato si vedono parti di testo sparse per lo schermo. Dunque ho diminuito la cosa (anche perchè, inspiegabilmente, nel menu non ci sta la parola pokemon O.o)e ho ottenuto una lettera in piu..piu che sufficiente per qualcosa di accettabile..anche perchè non da nessun problema. Però non mi piace accontentarmi di questo..

Il problema è uno solo..il box che contiene il menu è molto ridotto rispetto a quello delle traduzioni ufficiali degli altri pokemon(me ne sono accorto solo adesso..).Come faccio mo?O.o