[asm Psx] Non Trovo La Routine

Aperto da Infrid, Agosto 09, 2005, 16:33:14

Discussione precedente - Discussione successiva

Infrid

salve a tutti, ho ripreso a dannarmi inutilmente l'esistenza con ace combat 3 jap e per verificare la mia ipotesi che gli ideogrammi non sono altro che immagini TIM ho emulato il gioco con ePSXe, quando mi compariva il "testo" ho messo subito in pausa e ho creato un save state.
Preso il save state mi sembrava assurdo che tutta la memoria volatile fosse 1,5MB e rotti. ho rinominato il file .zip e sono riuscito ad ottenere il file originale!

di corsa ho preso timrip ed ho fatto esaminare il file, è come pensavo! il testo è dentro delle semplici e volgari TIM!! :D
è tutto lì, bello decompresso nella ram.

decompresso perché facendo esaminare i file nel CD a timrip non trova quelle cose quindi (implicazione) i file sono compressi o criptati.

spulciando con un hex editor i file eseguibili ho trovato:

ulz decoder ver.1.05 programmed by Junichi Sakai

bene, credo che questo sia la chiave per decomprimere le immagini con il testo...ulz l'ho riscontrato in diversi punti nell'immagine e sembra un flag (o un tipo di file) per segnalare la chiamata ad una funzione, vado con Adisasm a prendere il file exe dove avevo letto ulz decoder e mi ritrovo le seguenti righe

800BCB44   207A6C75   ulz
800BCB48   6F636564   deco
800BCB4C   20726564   der
800BCB50   2E726576   ver.
800BCB54   35302E31   1.05
800BCB58   6F727020    pro
800BCB5C   6D617267   gram
800BCB60   2064656D   med
800BCB64   4A207962   by J
800BCB68   63696E75   unic
800BCB6C   53206968   hi S
800BCB70   69616B61   akai
j   0x84080420
800BCB78   00000300   ....
800BCB7C   00000000   ....
800BCB80   02000400   ....
800BCB84   800C0418   ...€
800BCB88   00070004   ....
800BCB8C   00000000   ....
800BCB90   03000004   ....
800BCB94   00000000   ....

quel jump non mi porta da nessuna parte nel file :(
il mio obiettivo è localizare la routine di decompressione ma non risco a trovarla. dovrei tracciare del codice asm ma non so come fare con ePSXe, ho letto in giro che si fa con un AR ed una periferica ISA (ed una PSX materiale);ma io non ho una porta isa nel PC e non saprei come arrangiarmi.

il file di salvataggio di ePSXe scompresso ottenuto è 4.182.486 bytes mentre la ram della PSX è di 1,9MB

com'è suddiviso il file di salvataggio? a che offset è salvata la ram?? ho ignorato qualcosa? qual'è la cosa migliore da fare a questo punto???


grazie
Infrid[CODE]
Citizen Infrid :: raccolta di deliri, opere ed opinioni.
RCP64 :: Nintendo 64 Machine
load word team

Gemini

Il procedimento che hai usato tu serve a poco e nulla. Quella che hai trovato non è altro che una semplice stringa di debug, che di norma durante la compilazione viene messa a casaccio nell'eseguibile per essere poi ripresa tramite puntatore annesso.

Per trovare quella routine di decompressione, fai un dump della ram (non save state), segna l'indirizzo in cui viene scritta la tim, poi prendi un debugger PSX (PCSX di un cinese aveva proprio questa funzione, altrimenti il solito kit con Caetla dovrebbe andar bene), controlla quando il gioco scrive nella locazione trovata dal dump della ram e il gioco è fatto. A quel punto tocca semplicemente al tuo cervello capire come funziona, e conoscendo l'asm psx, non ci vorrà molto. ;)

Dimenticavo, sposto nella sezione giusta. In problemi non c'entra nulla. :/

Infrid

grazie, quindi ho trovo il pcsx modificato oppure prendo il kit?
non si potrebbe più semplicemete prendere i sorgenti di epsxe e modificarli per aggiungere funzionalità??

indago...
Citizen Infrid :: raccolta di deliri, opere ed opinioni.
RCP64 :: Nintendo 64 Machine
load word team

Gemini

Citazionegrazie, quindi ho trovo il pcsx modificato oppure prendo il kit?
non si potrebbe più semplicemete prendere i sorgenti di epsxe e modificarli per aggiungere funzionalità??

indago...
ePSXe non ha sorgenti rilasciati, per cui credo sarebbe un po' difficile, inoltre l'ultima versione è, come dire, una porcata. Se vuoi PCSX con il debugger del cinese, prova qui. Appena possibile vedo di farlo mettere nell'archivio a Clomax o chi ne fa le veci.

Infrid

grazie mille, ma mi bisognano dei file che non ricordo più il nome. oltre a zlib c'è bisogno di un'altra cosa...
ho winxp home
Citizen Infrid :: raccolta di deliri, opere ed opinioni.
RCP64 :: Nintendo 64 Machine
load word team

Gemini

Prendi tutti i file mancanti dal normale PCSX.

Infrid

ma quale versione?
con la 1.5 non funziona....
Citizen Infrid :: raccolta di deliri, opere ed opinioni.
RCP64 :: Nintendo 64 Machine
load word team

Gemini

A me funziona perfettamente. Ho 3 versioni dello stesso PCSX, una base, una con tracer e l'ultima con debugger e non fanno una piega. Se configuri una, si configurano nello stesso modo anche le altre due.

Infrid

grazie tante gemini per il tuo aiuto, sono riuscito a fare partire il debugger e per il momento ci sto giocando un po'

...dove trovo la versione con tracer??? :unsure:

grazie.
Citizen Infrid :: raccolta di deliri, opere ed opinioni.
RCP64 :: Nintendo 64 Machine
load word team

Gemini

Ce l'ho conservato, ma ti sconsiglio di usarlo, alla fine non serve a nulla un tracer per giochi scritti in c.

Infrid

quindi ora rimane il problema del dump della ram. se non lo sifa con il save state come si fa? il debugger non mi sembra che abbia una funzione che mi possa aiutare in proposito
Citizen Infrid :: raccolta di deliri, opere ed opinioni.
RCP64 :: Nintendo 64 Machine
load word team

Sephiroth 1311

Citazionequindi ora rimane il problema del dump della ram. se non lo sifa con il save state come si fa? il debugger non mi sembra che abbia una funzione che mi possa aiutare in proposito
Usa PEC (PSX Emulation Cheater), ha la funzione di dump della ram.
Sephiroth 1311
****************
membro di SadNES cITy
I gruppo italiano di traduzione ROM
http://www.sadnescity.it
*****************************
Fidati di chi ama leggere, fidati di chi porta sempre con sé un libro di poesie. Guarda con sospetto chi ti dice che non ha tempo, che la letteratura è una bella  cosa, che quando si è giovani  si può leggere, ma poi? Mente, non gliene importa nulla. Mente sapendo di mentire.
Roberto Cotroneo

Gemini

Oppure, apri un savestate di PCSX, vai all'indirizzo 0x9020 e copia i 2MB (che siano 2MB precisi, non 2.000.000 di byte). Avrai il tuo bel dump di ram.

Infrid

grazie a tutti, mi metto a lavoro!
Citizen Infrid :: raccolta di deliri, opere ed opinioni.
RCP64 :: Nintendo 64 Machine
load word team

Gemini

Infrid, vedi se a te funzionano completamente le memory card. A me, brisma e al saffo proprio non vanno. :/