Benvenuto Visitatore(Log In|Registrati)
![]() ![]() |
10 Jul 2025, 22:05
Messaggio
#51
|
|
Gruppo: Gamer Messaggi: 207 Iscritto il: 8 September 17 Da: Emilia Romagna Utente Nr.: 21.621 SO Altro |
Grazie mille TheRuler... l'asm che hai guardato tu è quello relativo all'eseguibile del 1991 e da tuo suggerimento ora sto lavorando su quello del 1992.
Quindi è leggermente diverso ma fondamentalmente quindi i puntatori che hai trovato li dovrei capire verso la fine del file. Ci ero già arrivato a capire che potevano essere in quella zona perchè avevo sovrascritto usando degli zeri una zona simile e le lettere di quelle stringhe erano diventate tutte incomprensibili, però senza cambiare la loro lunghezza. Devo indagare meglio e scusa sai magari per te è facile da capire e intuire essendo programmatore, ma per me è molto più difficile capire di salti, opcode eccetera. Certe cose le intuisco e altre vado per tentativi. Ho quasi finito di tradurre il file eseguibile del 1992. Quindi il primo step è completo. Poi devo modificare alcuni verbi dandogli più spazio spostando determinate stringhe, quindi attendere che si possa aggiungere le lettere accentate in modo da abbreviare certe stringhe e rimettere certi punti di punteggiatura. Tutto sommato sono soddisfatto anche se alcune frasi non sono proprio colloquiali in italiano, ma giocare in italiano è davvero tutta un'altra cosa. Qui non riesco ad allegare il nuovo txt.asm e il file excel work in progress |
|
|
|
10 Jul 2025, 22:53
Messaggio
#52
|
|
Gruppo: SMod Messaggi: 14.545 Iscritto il: 20 January 06 Da: Bologna Utente Nr.: 2.653 Entropologo part-time BGE AG: Indy3 Arcade: Silpheed Free Roaming: Shadow of the Colossus RTS: Praetorians Playing Magari... SO Windows7 OGI Supporter |
Certo nessun problema. Allega qui l'eseguibile del 1992 che ci do una occhiata. Ma immagino che la struttura sia la stessa o molto simile.
Per allegare qui basta che zippi. -------------------- |
|
|
|
11 Jul 2025, 06:45
Messaggio
#53
|
|
Gruppo: Gamer Messaggi: 207 Iscritto il: 8 September 17 Da: Emilia Romagna Utente Nr.: 21.621 SO Altro |
Certo nessun problema. Allega qui l'eseguibile del 1992 che ci do una occhiata. Ma immagino che la struttura sia la stessa o molto simile. Per allegare qui basta che zippi. Ecco non capisco perchè non ci riuscivo. Dentro ho messo l'eseguibile, il file asm decompilato e l'excel con gli offset di praticamente ormai tutto l'eseguibile. Ho notato che verso la fine alcune stringhe ci sono dei puntatori diversi che non sono 487A ma sono 41FA
Files allegati
|
|
|
|
11 Jul 2025, 08:59
Messaggio
#54
|
|
Gruppo: SMod Messaggi: 14.545 Iscritto il: 20 January 06 Da: Bologna Utente Nr.: 2.653 Entropologo part-time BGE AG: Indy3 Arcade: Silpheed Free Roaming: Shadow of the Colossus RTS: Praetorians Playing Magari... SO Windows7 OGI Supporter |
Ok, credo di averli trovati. E contrordine, questi sono DAVVERO puntatori, ma sono strani lo stesso, tanto per cambiare. ;-) Si trovano all'offset 0x0311FC. L'ho capito esaminando il decompilato Excal-CrackT.asm che mi avevi fornito, ecco l'estratto: CITAZIONE dl $7C8A6891 ho cercato la stringa 71210000 e mi ha portato al gruppo di puntatori, che si trovano LONTANISSIMO dalla loro effettiva posizione. Ma ci sta, sono degli status che cambiano in base questa tabella, mentre il resto sono testi che vengono composti al volo in base a determinate condizioni.dl $6497312E dl $5118312E dl $71210000 _aszHth dl dead.MSG dl dying.MSG dl grave.MSG dl wounded.MSG dl injured.MSG dl hale.MSG _aszPow dl None.MSG dl Feeble.MSG dl Moderate.MSG dl Potent.MSG dl Strong.MSG dl Mighty.MSG Una cosa che non ho capito è il perché sia necessario sottrarre 0x28 byte per ottenere l'indirizzo corretto. quindi gli offset: 0000D13E 0000D143 0000D149 corrispondono a: mort agoni grave per spostare in avanti di un byte "agoni" ti basta modificare D143 in D144 Subito dopo questa tabella di puntatori (che puntano tutti nella zona D1xx) c'è una tabella che punta ad altre stringhe, ovvero a F1xx. Ho visto che lì hai più spazio ma alcune potresti sistemarle meglio (e combat è troncato) CITAZIONE difesa magica.arte magica .....forza magica .potenza .forza vita .combattimento .agilita.nobilta' .fede in Dio¬...magia........combat..nobilta'.fede Se non fosse chiaro chiedi pure. Valgono le stesse regole che ho descritto qui sopra, ma l'offset di riferimento è 0x02E542 con questo nuovo eseguibile hanno ottimizzato lo spazio, riducendo gli "spazi vuoti", quindi risulta più piccolo di 20KB circa. CITAZIONE Ho notato che verso la fine alcune stringhe ci sono dei puntatori diversi che non sono 487A ma sono 41FA Ottima scoperta. Effettivamente 41FA è un altro opcode (LEA) che fa praticamente la stessa cosa di PEA, ma mette l'indirizzo in un registro diverso.
Screenshot_2025_07_11_100220.png ( 61.16k )
Numero di download: 0-------------------- |
|
|
|
11 Jul 2025, 22:26
Messaggio
#55
|
|
Gruppo: Gamer Messaggi: 207 Iscritto il: 8 September 17 Da: Emilia Romagna Utente Nr.: 21.621 SO Altro |
|
|
|
|
12 Jul 2025, 00:49
Messaggio
#56
|
|
Gruppo: SMod Messaggi: 14.545 Iscritto il: 20 January 06 Da: Bologna Utente Nr.: 2.653 Entropologo part-time BGE AG: Indy3 Arcade: Silpheed Free Roaming: Shadow of the Colossus RTS: Praetorians Playing Magari... SO Windows7 OGI Supporter |
Grande.
Per la traduzione, se dovesse servirti più spazio, sappi che uno o due termini li puoi anche delocalizzare, l'imporatante che modifichi il puntatore e che la zona che scegli sia libera. Verso la fine del file ci sono diversi blocchi 0x00 che forse possono essre usati, opppure sovrascrivendo alcuni testi, che tanto non useresti, come la protezione.
Files allegati
Screenshot_2025_07_12_014219.png ( 87.76k )
Numero di download: 2
Screenshot_2025_07_12_014228.png ( 9.4k )
Numero di download: 0
Screenshot_2025_07_12_014424.png ( 19.23k )
Numero di download: 0
Screenshot_2025_07_12_014447.png ( 10.36k )
Numero di download: 0-------------------- |
|
|
|
12 Jul 2025, 10:16
Messaggio
#57
|
|
Gruppo: Gamer Messaggi: 207 Iscritto il: 8 September 17 Da: Emilia Romagna Utente Nr.: 21.621 SO Altro |
|
|
|
|
13 Jul 2025, 16:26
Messaggio
#58
|
|
Gruppo: Gamer Messaggi: 207 Iscritto il: 8 September 17 Da: Emilia Romagna Utente Nr.: 21.621 SO Altro |
Nel tentativo di rendere più appropriati i valori degli attributi ho sostituito un po' di cose in modo che si riferissero all'attributo e non al personaggio,
cercando anche di rendere neutra la definizione essendo sia personaggi Maschili che Femminili anche se in quest'ultimo caso mi pare ci sia solo un personaggio femminile. Quindi la lista ora è questa: Salute: esanime agonia critica inabile lesa piena Magia: no lieve scarsa potente forte alta Grado: Neofita Recluta Decano Guru Campione Sommo Difesa: No Cuoio Maglia Piastra Incantata Celeste Valore: Vile Canaglia Conforme Nobile Signorile Regale Fede: Pagana Infedele Fedele Pia Santa Divina Messaggio modificato da SimonPPC il 13 Jul 2025, 20:01 |
|
|
|
13 Jul 2025, 20:02
Messaggio
#59
|
|
Gruppo: Gamer Messaggi: 207 Iscritto il: 8 September 17 Da: Emilia Romagna Utente Nr.: 21.621 SO Altro |
Ho trovato anche i puntatori dei punti cardinali così anche quel problema è risolto.
|
|
|
|
13 Jul 2025, 20:15
Messaggio
#60
|
|
|
Gruppo: OldGamer Messaggi: 2.695 Iscritto il: 15 September 17 Da: España Utente Nr.: 21.627 SO Sono un BOT, cancellami l'account |
A poco a poco, il gioco viene sventrato e la cosa migliore è che può essere utilizzato per altri giochi dell'azienda.
|
|
|
|
14 Jul 2025, 10:16
Messaggio
#61
|
|
Gruppo: SMod Messaggi: 14.545 Iscritto il: 20 January 06 Da: Bologna Utente Nr.: 2.653 Entropologo part-time BGE AG: Indy3 Arcade: Silpheed Free Roaming: Shadow of the Colossus RTS: Praetorians Playing Magari... SO Windows7 OGI Supporter |
Ho trovato anche i puntatori dei punti cardinali così anche quel problema è risolto. Ottimo. Una ottimizzazione che puoi fare in caso di ripetizioni è anche quella di far puntare più puntatori allo stesso termine. Ad esempio vedo "no". Ok, è un termine corto, ma se i termini fossero più lunghi il risparmio di byte sarebbe più significativo. agonia, credo sarebbe migliore "in agonia". -------------------- |
|
|
|
14 Jul 2025, 10:51
Messaggio
#62
|
|
Gruppo: Gamer Messaggi: 207 Iscritto il: 8 September 17 Da: Emilia Romagna Utente Nr.: 21.621 SO Altro |
Si ci ho già pensato di delocare determinate stringhe per guadagnare spazio.
Infatti ho utilizzato questo sistema per poter trasformare "%S%sin viaggio %s%s" in questo modo "Sir Constantine e' in viaggio verso NordOvest" ;-) Purtroppo "in agonia" diventa lungo non tanto per gli spazi nell'eseguibile, ma come appare a schermo. Cercherò comunque un vocabolo migliore, al momento è sempre tutto in fase Beta. Ho appena risolto anche un altro problema. Nelle azioni dei personaggi durante la Battaglia il videogioco fa distinzione tra Comandi "Accesi" e Comandi "Spenti". Così quando ho spostato l'azione Fuga più avanti non si è accesa perchè in un altro punto era presente il puntatore per "Accendere" la stringa. Dato che i personaggi non compiono tutti le stesse azioni. Grazie a te "TheRuler" ho imparato più cose rileggendo bene quello che hai scritto. Così ora conosco i puntatori "a salto" e quelli "diretti" che si possono trovare come nel caso delle famose 36 stringhe ;-) ecco le schermate di battaglia di esempio
|
|
|
|
14 Jul 2025, 12:31
Messaggio
#63
|
|
|
Gruppo: OldGamer Messaggi: 2.695 Iscritto il: 15 September 17 Da: España Utente Nr.: 21.627 SO Sono un BOT, cancellami l'account |
Madre di Dio, questa conoscenza è troppo per me. Non so se riuscirò a tradurre questo gioco.
|
|
|
|
14 Jul 2025, 14:43
Messaggio
#64
|
|
Gruppo: Gamer Messaggi: 207 Iscritto il: 8 September 17 Da: Emilia Romagna Utente Nr.: 21.621 SO Altro |
Madre di Dio, questa conoscenza è troppo per me. Non so se riuscirò a tradurre questo gioco. Tranquillo ti aiutiamo noi... Non credere che io sia bravissimo... mi impegno per quello che posso e come vedi c'è chi mi ha aiutato. E' proprio il bello di potersi confrontare oggi più di ieri. 30 anni fa non sono riuscito ad andare avanti. Mentre adesso quel sogno si sta avverando aprendo le porte a tantissimi altri videogiochi Amiga che in Italiano avrebbero tutto un altro sapore. |
|
|
|
14 Jul 2025, 14:49
Messaggio
#65
|
|
Gruppo: Gamer Messaggi: 207 Iscritto il: 8 September 17 Da: Emilia Romagna Utente Nr.: 21.621 SO Altro |
Ho trovato anche i puntatori dei punti cardinali così anche quel problema è risolto. Ottimo. Una ottimizzazione che puoi fare in caso di ripetizioni è anche quella di far puntare più puntatori allo stesso termine. Ad esempio vedo "no". Ok, è un termine corto, ma se i termini fossero più lunghi il risparmio di byte sarebbe più significativo. agonia, credo sarebbe migliore "in agonia". Ho sostituito "agonia" con "morente" così resta in attributo neutro che va bene sia per maschio che per femmina ;-) |
|
|
|
15 Jul 2025, 14:16
Messaggio
#66
|
|
Gruppo: Gamer Messaggi: 207 Iscritto il: 8 September 17 Da: Emilia Romagna Utente Nr.: 21.621 SO Altro |
come procede? Intanto per il decoder ho provato a sentire mariush via messaggio privato. Nel frattempo io ho dato uno sguardo alla struttura del file HINT.RES Ho visto che le stringhe hanno una numerazione progressiva e immagino che venga identificata la loro lunghezza totale. Il valore 80 dovrebbe riferirsi alla compressione/replicazione perchp ho provato a rimuoverlo e nel videogioco quelle schermate dove dovrebbero apparire sono rimaste vuote. Ecco la lista iniziale subito alla fine del file HINT.RES se può essere di aiuto a mariush
|
|
|
|
16 Jul 2025, 08:26
Messaggio
#67
|
|
Gruppo: Gamer Messaggi: 207 Iscritto il: 8 September 17 Da: Emilia Romagna Utente Nr.: 21.621 SO Altro |
Dato che sto cercando di affinare la traduzione nell'eseguibile sono incappato in un problema:
Nella stringa che si vede nell'eseguibile "%S %s %d punto/i di %s.%c" tutti quei valori vengono calcolati dal gioco inserendo i vari personaggi attributi eccetera quindi la stringa diventa: "Sir Villars vince 2 punto/i di grado." ebbene se si cerca di delocare altrove questa stringa purtroppo quelle funzioni continuano a puntare in questa locazione e si perdono mostrando a schermo soltanto il testo semplice. Quindi se fosse proprio necessario bisognerebbe scandagliare il disassemblato per capire anche come spostare quelle funzioni. Comunque aggiungendo una cosa che ho imparato con l'aiuto dell'IA è stato come far effettuare un salto in negativo del puntatore, qui vi aggiungo cosa mi ha scritto Google Gemini: Per modificare l'istruzione PEA +$98 a offset 00012414 in modo che il puntatore vada in negativo, devi capire che $98 è un offset relativo alla posizione corrente dell'istruzione. L'istruzione PEA calcola un indirizzo efficace e lo spinge sullo stack. Nel caso di PEA +$98, sta spingendo sullo stack l'indirizzo corrente (00012414) più $98 (che in decimale è 152). Quindi, 00012414+152=000124AE. Per far sì che vada in negativo, devi sottrarre un valore dall'indirizzo corrente. Ad esempio, se vuoi che punti a 00012300, dovrai calcolare la differenza: 00012300 - 00012414 = -$114 (o -276 in decimale). Quindi, l'opcode che devi inserire al posto di 0098 sarà il complemento a due del valore negativo desiderato. Se vuoi che il valore sia, ad esempio, -100 (decimale), in esadecimale è -$64. Per ottenere il complemento a due di -$64: Prendi il valore assoluto: $64 Inverti tutti i bit: $64 (0110 0100) diventa 1001 1011 ($9B) Aggiungi 1: $9B + 1 = $9C Quindi, per ottenere un offset di -$64, l'istruzione PEA dovrebbe essere 487A FF9C. In sintesi, per modificare PEA +$98 a 00012414 e farlo puntare a un indirizzo negativo rispetto alla sua posizione, devi calcolare l'offset desiderato e poi trovare la sua rappresentazione in complemento a due per il campo di offset a 16 bit. Esempio: Se l'obiettivo è far sì che PEA punti a 00012300: Indirizzo corrente dell'istruzione PEA: 00012414 Indirizzo di destinazione desiderato: 00012300 Offset = Indirizzo di destinazione - Indirizzo corrente = 00012300 - 00012414 = -00000114 (esadecimale) Ora convertiamo 00000114 in complemento a due su 16 bit: 00000114 (esadecimale) = 0000 0000 0000 0000 0000 0001 0001 0100 (binario) Prendiamo gli ultimi 16 bit: 0001 0001 0100 ($114) Invertiamo i bit: 1110 1110 1011 Aggiungiamo 1: 1110 1110 1100 ($EEBC) Quindi, per puntare a 00012300, l'istruzione modificata sarebbe: 00012414 487A EEBC PEA -$144 (o $EEBC in complemento a due, che rappresenta -276 decimale). Dovrai determinare l'indirizzo specifico a cui vuoi che il puntatore salti e poi calcolare l'offset relativo come mostrato sopra. |
|
|
|
16 Jul 2025, 09:04
Messaggio
#68
|
|
Gruppo: Gamer Messaggi: 207 Iscritto il: 8 September 17 Da: Emilia Romagna Utente Nr.: 21.621 SO Altro |
Ho ripristinato gli articoli inserndoli direttamente nei nomi dei personaggi.
Così "frate" diventa "un frate" e sembra funzionare bene all'interno del gioco. Sto effettuante vari test di gameplay per capire se combacia tutto. |
|
|
|
16 Jul 2025, 14:09
Messaggio
#69
|
|
Gruppo: Gamer Messaggi: 207 Iscritto il: 8 September 17 Da: Emilia Romagna Utente Nr.: 21.621 SO Altro |
Dai test effettuati non tutti i nomi possono essere allungati.
Un sergente aveva impedito alla schermata allegata di comparire. Uscivano solo le virgolette "" Quindi resta sergente, che poi non stona affatto. Sto effettuando sempre piccole correzioni nei nomi, nei verbi, negli attributi, sempre per rendere migliore la traduzione e l'adattamento.
|
|
|
|
16 Jul 2025, 22:58
Messaggio
#70
|
|
Gruppo: Gamer Messaggi: 207 Iscritto il: 8 September 17 Da: Emilia Romagna Utente Nr.: 21.621 SO Altro |
Un ulteriore passo in avanti per la comprensione della struttura del videogioco
Siccome avevo bisogno di aumentare l'altezza di una finestra perchè non volevo rinunciare al termine che ho utilizzato: Sir villars è al seguito di Sir constantine che nel videogioco compare quando si clicca un personaggio e lo si dirige verso un altro, quindi è una specie di inseguimento per i nemici e un raggiungimento per gli amici. Il videogioco però non fa distinzione e quindi ho usato questo termine neutro. Ho quindi imparato dove sono i valori per aumentare larghezza, altezza della finestra e volendo anche posizione iniziale sullo schermo, devo capire però come centrare anche il testo dato che in questo caso che ho modificato il testo resta in alto, mentre nella finestra dalla quale ho preso esempio il testo è centrato. Comunque i valori si trovano subito dopo il puntatore di stringa: 00016D98 487A 02A0 PEA +$2A0 -> 0001703A 00016D9C 42A7 CLR.L -(A7) 00016D9E 42A7 CLR.L -(A7) 00016DA0 4878 0014 PEA $14 00016DA4 4878 0104 PEA $104 00016DA8 4878 000A PEA $A 00016DAC 4878 000A PEA $A 00016DB0 4878 1440 PEA $1440 Quei PEA non sono altro che: 14 altezza della finestra 104 larghezza della finestra A coordinate sullo schermo X o Y A coordinate sullo schermo X o Y molto interessante perchè in ASCII si vedono come Hx..Hx..Hx..Hx.. e quindi si identificano in fretta. |
|
|
|
17 Jul 2025, 07:08
Messaggio
#71
|
|
Gruppo: SMod Messaggi: 14.545 Iscritto il: 20 January 06 Da: Bologna Utente Nr.: 2.653 Entropologo part-time BGE AG: Indy3 Arcade: Silpheed Free Roaming: Shadow of the Colossus RTS: Praetorians Playing Magari... SO Windows7 OGI Supporter |
Stai facendo un LAVORONE Simo. E cosa non meno importante, stai capendo sempre di più come funziona assembly. Questa è la prima volta che fai una mappatura del codice! Il tuo è diventato un reverse engineeering a tutti gli effetti! ;-)
-------------------- |
|
|
|
17 Jul 2025, 07:59
Messaggio
#72
|
|
Gruppo: Gamer Messaggi: 207 Iscritto il: 8 September 17 Da: Emilia Romagna Utente Nr.: 21.621 SO Altro |
Grazie mille per i complimenti Stefano, ovviamente come hai letto mi sono fatto aiutare dall'IA...
Si piano piano sto iniziando a entrare nel meccanismo e assimilare il funzionamento. Purtroppo manca lo spazio per poter centrare la scritta nella finestra dato che serve una riga di comando in più. Eh pazienza la perfezione non esiste e già così è un bel passo in avanti, non solo ora possiamo allungare le scritte andando di rilocazione, ma possiamo anche modificare la dimensione delle finestre rendendo il gioco molto gradevole. Questa la comparazione una volta aumentata altezza e modificato la larghezza della finestra e sotto la finestra dalla quale ho preso esempio. |
|
|
|
17 Jul 2025, 09:39
Messaggio
#73
|
|
Gruppo: SMod Messaggi: 14.545 Iscritto il: 20 January 06 Da: Bologna Utente Nr.: 2.653 Entropologo part-time BGE AG: Indy3 Arcade: Silpheed Free Roaming: Shadow of the Colossus RTS: Praetorians Playing Magari... SO Windows7 OGI Supporter |
CITAZIONE Purtroppo manca lo spazio per poter centrare la scritta nella finestra dato che serve una riga di comando in più. Mi viene in mente un trucchetto, non so però se poi sia esteticamente piacevole: potresti modificare la coordinata Y della finestra, invece di 0A, mettere magari 06 per spostarla su di 4 pixel.
-------------------- |
|
|
|
17 Jul 2025, 09:59
Messaggio
#74
|
|
Gruppo: Gamer Messaggi: 207 Iscritto il: 8 September 17 Da: Emilia Romagna Utente Nr.: 21.621 SO Altro |
Ho provato non funziona.
A quanto pare il gioco prevede degli step e nonostante io provi a correggere l'altezza in pixel della finestra, questa superato un certo intervallo di valore aumenta in automatico. Ad esempio la finestra singola ha un valore di 14 (esadecimale) in altezza ho provato semplicemente a aumentare a 18, ma esteticamente è diventata come nelle schermate allegate. Almeno del doppio. |
|
|
|
17 Jul 2025, 10:16
Messaggio
#75
|
|
Gruppo: SMod Messaggi: 14.545 Iscritto il: 20 January 06 Da: Bologna Utente Nr.: 2.653 Entropologo part-time BGE AG: Indy3 Arcade: Silpheed Free Roaming: Shadow of the Colossus RTS: Praetorians Playing Magari... SO Windows7 OGI Supporter |
Potrebbero aver fissato i salti a multipli di 20 pixel.
convertendo hex to deimal, 14 x 104 è 20x260 pixel 260 per la lunghhezza mi torna anche, ma quel 20 no. sono troppo pochi per essere l'altezza della finestra secondo me. Va capito come interpreta lui quel 14. -------------------- |
|
|
|
![]() ![]() |
| Versione Lo-Fi | Oggi è il: 13th November 2026 - 18:59 |