Benvenuto Visitatore(Log In|Registrati)
![]() ![]() |
16 Jul 2015, 13:26
Messaggio
#76
|
|
Gruppo: Admin Messaggi: 30.471 Iscritto il: 18 April 04 Da: Britannia Utente Nr.: 1.377 pulley-in-the-middle BGE Ultima 7 Playing Ultima 7: "Il Portale Oscuro" IN ITALIANO! Dungeon Master 1 (PC - DosBox) Sonic (Wii) Runaway (PC) SO WinXP |
Non c'hi capito nulla, ma.... Immenso!
-------------------- |
|
|
|
16 Jul 2015, 13:32
Messaggio
#77
|
|
Gruppo: UST Member Messaggi: 497 Iscritto il: 17 February 03 Utente Nr.: 2.153 SO Win95 |
Completo il discorso sui file compressi (ossia i singoli file nei DAT).
Molto probabilmente ognuno di loro comincia con 4 byte che indicano la dimensione del file decompresso. Segue una sequenza di un byte che indica lo stato degli otto simboli seguenti e quindi gli otto simboli, a ripetersi fino alla fine del file compresso. -------------------- ![]() ![]() |
|
|
|
16 Jul 2015, 15:20
Messaggio
#78
|
|
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 |
Sulla base di queste supposizioni, che avevo fatto anche io (sese, come no ;-) ) stamatina ho estratto il textz.lzw ma non ho trovato un decompressore adeguato che lo decomprimesse. Hai qualcosa Syxtem?
http://s000.tinyupload.com/?file_id=19704625153039152206 Se qualcuno volesse già proporsi come betatester per il gioco (senza le negoziazioni) mi aiuterebbe a testarlo. In PM giro il file. -------------------- |
|
|
|
16 Jul 2015, 17:50
Messaggio
#79
|
|
Gruppo: UST Member Messaggi: 497 Iscritto il: 17 February 03 Utente Nr.: 2.153 SO Win95 |
C'ho guardato, ma probabilmente il dizionario viene costruito seguendo alcune regole particolari.
Solitamente nella decompressione LZW, c'è un dizionario da cui si vanno a prendere i caratteri decompressi da applicare al posto di quelli compressi. Questo dizionario viene creato in fase di decompressione e può contenere anche delle voci che non verranno applicate mai. In textz.lzw la prima parola che viene cercata nel dizionario è quella con indice 35, perciò significa che vi sono probabilmente altrettante voci che sono state create prima di arrivare considerare quella. Solitamente le voci vengono formate unendo i caratteri successivi che vengono individuati, ma possono essere create in molti altri modi. Purtroppo applicando le regole standard dell'algoritmo LZW non mi sembra di ottenere le voci del dizionario compatibili per effettuare la decompressione corretta. -------------------- ![]() ![]() |
|
|
|
16 Jul 2015, 19:24
Messaggio
#80
|
|
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 questo. Ho già fatto prove e genera un file molto simele al nostro. Purtroppo non lo decomprime.
Sembra che intervalli ogni byte con il byte di controllo 0x00 non compresso e 0x01 compresso. Magari potrebbe esserci utile. Mi pare di aver capito che LZW abbia problemi di copyright -------------------- |
|
|
|
20 Jul 2015, 17:45
Messaggio
#81
|
|
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 |
Riporto in vista la richiesta.
Se qualcuno volesse già proporsi come betatester per il gioco (senza le negoziazioni) mi aiuterebbe a testarlo. In PM giro il file. Sia mai che col proprio portatile, all'ombra dell'ombrellone, a qualcuno non venga voglia di giocarsi questa piccola perla... -------------------- |
|
|
|
25 Jul 2015, 14:39
Messaggio
#82
|
|
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 |
Alpo, DK, Syxt, questo codice potrebbe funzionare?
Come potrei testarlo? -------------------- |
|
|
|
4 Aug 2015, 14:53
Messaggio
#83
|
|
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 |
Dopo un mese di test e modifiche sono arrivato alla prima release beta, presto pubblica. Per ora la traduzione delle negoziazioni è ferma, sebbene comprendano una parte cospiqua di testo, non sono "strettamente importanti" ai fini del gioco. Verranno comunque di sicuro tradotte.
Segue schermata riassuntiva di fine gioco, non si direbbe ma si è trattato di un piccolo lavoro di cesello e incastro. ![]() E' una parte importante del gioco. Riassume tutto quello che è stato fatto durante la partita e regala quel senso di completezza tipico dei wargame da tavolo, al termine del quale ci si ferma a rimirare la propria opera di conquista in tutta la sua magnificenza. Una autocelebrazione bella e buona. ;-) Suggerimenti ben accetti. -------------------- |
|
|
|
4 Aug 2015, 16:55
Messaggio
#84
|
|
Gruppo: Admin Messaggi: 30.471 Iscritto il: 18 April 04 Da: Britannia Utente Nr.: 1.377 pulley-in-the-middle BGE Ultima 7 Playing Ultima 7: "Il Portale Oscuro" IN ITALIANO! Dungeon Master 1 (PC - DosBox) Sonic (Wii) Runaway (PC) SO WinXP |
Notevolissimo!!!
A vederlo così è praticamente perfetto! -------------------- |
|
|
|
4 Aug 2015, 18:21
Messaggio
#85
|
|
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 |
Grazie Ancient! 'OPPOBBUONO! XD
Ancora non mi convince quel "Passare" al posto di "End Turn". Purtroppo in questo il box, a differenza degli altri come quello di fine gioco (come si può vedere nel mio post precedente), è statico e quindi bisogna stare per forza dentro gli 8 caratteri. "Fine Turno" sarebbe perfetto ma sborda. Stesso dicasi per l'originale "Melee" che ho dovuto tradurre in "Caos": è il comando con il quale il generale in battaglia scioglie la legione dagli ordini e comanda a tutte le unità sul campo di ingaggiare l'unità nemica più vicina. Poi, a proposito dei nomi dei condottieri, ho pensato di tradurre quelli scritti in inglese come Caswallon che, sebbene sia britanno ho preferito riportarlo con Cassivellauno (ma ho trovato anche Cassibelano e Cassibelauno). Gli altri invece li ho lasciati con il loro nome originale: CITAZIONE Cinna Annibale Cleopatra Filippo Macedone Vercingetorix Darius il Grande Antiochus Thorax di Tracia Mithridates Attalus Absolna il marcio Vindelic Arminius Bato Decebalus Asdrubale Re Juba Bocchus Mamud il terribile Horaxus Bertonus Hamilcar Darminus Cassivellauno Galba Chrysogones Maldor l'impalatore Condottieri romani: CITAZIONE Scipio Africanus Marcantonio Pompeo il Grande Cornelius Scipio Agrippa Sulla Marius Crassus Lucullus Flaminius Fabius il Prudente Marcus il Mite Fabius Hirrus Rebilus Decimus Curio Labienus Marcus Pedius Lentulus Trebonius Nasidius Lucius Cotta Sabinus Albertus Discreditus Publius Rufus Suggerimenti? -------------------- |
|
|
|
4 Aug 2015, 18:41
Messaggio
#86
|
|
Gruppo: Admin Messaggi: 30.471 Iscritto il: 18 April 04 Da: Britannia Utente Nr.: 1.377 pulley-in-the-middle BGE Ultima 7 Playing Ultima 7: "Il Portale Oscuro" IN ITALIANO! Dungeon Master 1 (PC - DosBox) Sonic (Wii) Runaway (PC) SO WinXP |
Non ho letto tutto, ma il principio mi pare giusto!
-------------------- |
|
|
|
14 Aug 2015, 20:00
Messaggio
#87
|
|
|
Gruppo: IAGTG Member Messaggi: 2.658 Iscritto il: 1 June 05 Da: Roma Utente Nr.: 1.733 SO Altro OGI Supporter ![]() Spolveratore (2) |
Alpo, DK, Syxt, questo codice potrebbe funzionare? Come potrei testarlo? Innanzitutto grazie per il reminder privato eh. Ma stavo sbragato al sole senza pc connesso. Adesso che l'idillio è finito... immersione. Dunque, non so rispondere alla tua domanda , ma se , invece di provare a casaccio il dialetto di LZW che ci fa magicamente azzeccare i codici giusti dell'albero di ricerca (non esiste una maniera univoca di creare il dizionario, questo credo che ormai sia chiaro a tutti, l'importante è che l'algoritmo che lo crea sia coerente tra programma di compressione e programma di decompressione) , provassimo invece a decrittare a mano un po' intuitivamente , un po' con controlli in game, i file? Ovviamente poi una volta tradotte le frasi ricostruiremmo la serie di offset che sta all'inizio e comprimeremmo "senza compressione" ossia con gli 0xFF. L'unica perplessità è se quello che hai postato è un file "tipo" o è soltanto uno dei più piccoli e ve ne sono altri molto più intricati. Ciao, Alberto [EDIT] Lo sai cosa non mi convince del codice che hai linkato? Non vedo traccia della gestione (o perlomeno non la riconosco; cos'è, perl?) del flagbyte, il byte con la maschera di 0 e 1, 1 per byte grezzo, 0 per indice del dizionario, che invece abbiamo trovato nel file. Anche per questo motivo sarei stato più tentato di considerarlo un dialetto di LZSS più che di LZW. Messaggio modificato da Alpobemp il 14 Aug 2015, 20:29 -------------------- --
alpobemp at libero punto it |
|
|
|
15 Aug 2015, 10:33
Messaggio
#88
|
|
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 |
Innanzitutto grazie per il reminder privato eh. Prego Mr. Alpo Theruler -breaking idylls since '70- In merito al file tipo, verifico. Ci sono sicuramente file più grossi. Io ho preso, l'ultimo, vedo di estrarli con calma tutti, tanto prima o poi va fatto. Potremmo creare un tool che estrae tutti i file all'interno di MNEGO.DAT basandosi sulla tabella presente in MNEGO.DIR che faccia anche il lavoro opposto, modificando la tabella in base alle nuove dimensioni di ogni singolo LZW. Esattamente come faceva il tool di DK per la traduzione di Kyrandia. Credo sarebbe meglio averlo, un tool per lavorare più velocemente e testare al volo le modifiche, ma purtroppo non sono in grado di scriverlo quindi... andrò a manoni modificando solo l'ultimo file così da lavorare meno. quello che mi preoccupa però è il contenuto non testuale che si può trovare dentro questi LZW. Ogni file è relativo ad una regione della mappa e contiene una serie di doamnde e risposte che vengono visualizzate in base alle scelte del giocatore e della AI. Il giocatore può rispondere "aggressivo", "diplomatico", "Amichevole" ecc... ci devono quindi essere dei caratteri speciali o dei puntatori prima o dopo i testi che indentifichino le scelte. Quei caratteri come li "intuiamo"? -------------------- |
|
|
|
15 Aug 2015, 11:05
Messaggio
#89
|
|
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 |
Sulla base di quanto scoperto da Syxt per il file .DIR contenente la tabella (ho corretto il flag compresso da 0xB0 in 0x80) :
Giusto per confermare che effettivamente i file .DIR indicizzano i file contenuti negli archivi .DAT Ogni DIR è formato da questi byte in sequenza (per ogni file contenuto nel DAT): [4 byte] posizione del file all'interno del DAT (dal inizio del file DAT) [2 byte] dimensione del file [13 byte] nome del file (nome del file più 0x00 di terminazione) [1 byte] flag: 0xB0/0xC0 Il significato del flag discrimina probabilmente i file compressi da quelli solamente archiviati, secondo questo significato: 0x80 -> file compresso 0xC0 -> file in chiaro Questa congettura si basa sul fatto che ho notato che tutti i file con estensione LZW hanno quel byte a 0xB0, mentre quelli con diversa estensione hanno 0xC0. Nel .DIR metteremo il flag 0xC0 anche per i file LZW per evitarci così di intervallare il flag degli 8 byte successivi all'interno del file ed avere quindi un testo "piano". E' quello che hai fatto in Dragonsphere e suggerivi tu Alpo, giusto? -------------------- |
|
|
|
15 Aug 2015, 22:11
Messaggio
#90
|
|
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 |
Dopo le imbeccate di Alpo e Syxt ho provato con una richiesta mirata al forum encode.ru, i guru della compressione, e 6 ore dopo un tizio ha buttato il codice (e il relativo binario così, per gradire)...
https://encode.su/threads/2267-Help-on-comp...om-OLD-DOS-game CENTURIONS - POTERE ASSOLUTO! ![]() ecco il codice by Jan Ondrus: CODICE #include <stdio.h> #include <stdlib.h> int main(int argc, char **argv) { int buffer[65536]; int b1, b2, pos = 0; FILE *in=fopen(argv[1],"rb"); if (!in) perror(argv[1]), exit(1); FILE *out=fopen(argv[2],"wb"); if (!out) perror(argv[2]), exit(1); for (int k = 0; k < 22; k++) { int c1=getc(in); } // skip first 22 bytes for (;;) { int c=getc(in); if (c==EOF) break; for (int i = 0; i < 8; i++) { if ((c & (1 << i)) != 0) { // literal int x=getc(in); putc(x, out); buffer[pos] = x; pos++; } else { // match if ((b1=getc(in)) == EOF) break; if ((b2=getc(in)) == EOF) break; int matchpos = b1 + ((b2 / 16) * 256) + 2; for (int j = 0; j < (b2 & 15) + 3; j++) { int x = buffer[matchpos + j]; putc(x, out); buffer[pos] = x; pos++; } } } } return 0; } Funziona! Ecco ad esempio TEXTZ.LZW CITAZIONE ¼ê8½ÝSarmatia has no room for Romans. You must leave. Rome sends a great warrior. We have heard of you.~A great general arrives! Your fame precedes you.~Others have told us you would come. They also told us what you would want. Ah yes, the peace of slavery. There can be no peace between us. We are not stupid. Your weakness is apparent. No, friend. There will be no surrender. We trust no one. It profits us not. This can never be, for we will not serve you. You are a windbag. You bore me. Lay down your weapons and we will spare you. Surrender and we can talk. Or would you fight us?~No. Unless you leave Sarmatia, we must fight.~No, Roman. You may surrender now. Sarmatians make war, not peace. Adesso faccio qualche prova di traduzione, incapsulo il file non compresso in MNEGO.DAT e vado ad invadere la Poloni.. ehm, la Sarmatia. -------------------- |
|
|
|
15 Aug 2015, 23:38
Messaggio
#91
|
|
Gruppo: Admin Messaggi: 2.672 Iscritto il: 27 August 04 Utente Nr.: 1.509 BGE Indy and The Last Crusade SO Windows7 OGI Supporter |
Sì, quelli di encode.ru mangiano pane e lz+varianti
C'è anche un italiano molto bravo che fa esperimenti E proprio oggi mi è venuto in mente che più o meno poteva essere una variante di LZSS tipo quella usata in Star Trek 25th. Sono quasi sicuro comunque che i primi 4 byte del file .LZW indicano la sua dimensione da scompresso. È possibile che i primi 20 caratteri (o quelli che sono) potrebbero essere indici delle varie frasi che seguono? Oppure magari son dati che servono al gioco, boh. |
|
|
|
16 Aug 2015, 00:03
Messaggio
#92
|
|
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 |
Bentrovato DK!
Tutte le frasi sono intervallate dal classico 0x00. Ci sono alcuni gruppi che iniziano con ~ che sta ad indicare, ho notato, una frase randomica. Cioè il puntatore punta l'inizio del gruppo e il codice sceglie a caso una delle tre frasi. Il problema sono i primi byte. Non ho trovato per ora nessuna corrispondenza. questi sono i primi 12 byte di textz.txt BC 01 EA 01 0B 02 38 02 BD 02 DD 02 Ho fatto qualche prova. Ho decompresso il file, senza modificarlo l'ho sostituito alla posizione relativa aggiornando le dimensioni e il flag 0x80 nel file MNEGO.dir ma purtroppo il gioco va in crash. allego qualche file decompresso. http://s000.tinyupload.com/index.php?file_...137335625152923 Mi sa che ci hai preso DK con le dimensioni del file da scompresso. Solo che c'è una piccola differenza magari dovuta al codice di decompressione. E potrebbe essere la ragione perché non funziona. Prendendo il file textz.lzw, i primi due byte indicano 02DD mentre il file decompresso è grosso 02CD. Ho notato nel codice che il tizio salta i primi 22 Byte. La ragione? In effetti confrontando vari file compressi quei byte sembrano non far parte del testo decompresso. -------------------- |
|
|
|
16 Aug 2015, 00:27
Messaggio
#93
|
|
|
Gruppo: IAGTG Member Messaggi: 2.658 Iscritto il: 1 June 05 Da: Roma Utente Nr.: 1.733 SO Altro OGI Supporter ![]() Spolveratore (2) |
In merito al file tipo, verifico. Ci sono sicuramente file più grossi. Io ho preso, l'ultimo, vedo di estrarli con calma tutti, tanto prima o poi va fatto. Potremmo creare un tool che estrae tutti i file all'interno di MNEGO.DAT basandosi sulla tabella presente in MNEGO.DIR che faccia anche il lavoro opposto, modificando la tabella in base alle nuove dimensioni di ogni singolo LZW. Esattamente come faceva il tool di DK per la traduzione di Kyrandia. Credo sarebbe meglio averlo, un tool per lavorare più velocemente e testare al volo le modifiche, ma purtroppo non sono in grado di scriverlo quindi... andrò a manoni modificando solo l'ultimo file così da lavorare meno. quello che mi preoccupa però è il contenuto non testuale che si può trovare dentro questi LZW. Ogni file è relativo ad una regione della mappa e contiene una serie di doamnde e risposte che vengono visualizzate in base alle scelte del giocatore e della AI. Il giocatore può rispondere "aggressivo", "diplomatico", "Amichevole" ecc... ci devono quindi essere dei caratteri speciali o dei puntatori prima o dopo i testi che indentifichino le scelte. Quei caratteri come li "intuiamo"? Il tool di estrazione è il meno. I file che citi li avevi già postati? Posso lavorarci. Il contenuto di questi lzw mi sembra che di non testuale abbia solo l‘indice dei puntatori all‘inizio. Hai sempre tutte le sfumature a disposizione, o a volte solo alcune? Ciao, Alberto [EDIT] oooops avevate già risolto. Non avevo ricaricato la pagina, rispondevo alla cache. Raga, vi ribadisco che quelli all'inizio sono puntatori alle frasi, l'avevo notato ieri decomprimendo a mano. Ciao, Alberto Messaggio modificato da Alpobemp il 16 Aug 2015, 01:07 -------------------- --
alpobemp at libero punto it |
|
|
|
16 Aug 2015, 00:59
Messaggio
#94
|
|
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 |
-------------------- |
|
|
|
16 Aug 2015, 01:12
Messaggio
#95
|
|
|
Gruppo: IAGTG Member Messaggi: 2.658 Iscritto il: 1 June 05 Da: Roma Utente Nr.: 1.733 SO Altro OGI Supporter ![]() Spolveratore (2) |
Allora. Per sfumature intendo le opzioni diverse che hai a disposizione per rispondere (amichevole, aggressivo, etc) a cui accennavi.. Per quanto riguarda i puntatori all'inizio del file, occhio, perché sono compressi anche quelli!!! Bisogna togliere gli 0xFf anche da lî!!! Se il russo li ha saltati, ha toppato!!! [EDIT] In altre parole il file compresso inizia dopo 0x000002DD Ciao, Alberto Messaggio modificato da Alpobemp il 16 Aug 2015, 01:17 -------------------- --
alpobemp at libero punto it |
|
|
|
16 Aug 2015, 08:40
Messaggio
#96
|
|
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 |
Capito.
I casi sono questi: 1.Arrivi in una regione con un ceto basso e ti scrive che sei un pivello e vai subito alla guerra (ogni regione ha il suo ceto minimo per cominciare le trattative, ad esempio L'egitto richiede il livello prima di quello finale, proconsole) 2.Arrivi con un ceto alto e cominci a parlare: 3.Amichevole 4.Diplomatico 5.Aggressivo 6.Ultimatum 7.Offri alleanza 8.Guerra! 9.Ritirati Ogni scelta mostra subito una risposta romana che è presente nell'OVL, ed è quindi già tradotta. Se è "giusta" prosegue e mostra la risposta dell'avversario e una nuova scelta. Alpo potresti provare a ricompilare il codice provando a saltare solo i primi 2 o 3 byte? Io intanto faccio una prova a mano -------------------- |
|
|
|
16 Aug 2015, 09:07
Messaggio
#97
|
|
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 |
Test OK. Hai avuto ragione Alpo. Bisogna saltare solo i primi 4 byte. Ho preso i due gruppi di 8 byte mancanti a mano togliendo i due 0xFF siccome sono tutti non compressi e le dimensioni del file decompresso ora coincide con quanto riportato dai primi due byte dell'LZW originale.
Ancora non funziona. Però va in crash nella schermata successiva. Per un attimo si vede un messaggio di errore di "mem alloc" e dove ci dovrebbe essere il testo è tutto bianco, si vede solo la grafica. Mi ha fatto questo scherzo anche quando ho tradotto le frasi romane. Quelle sono nell'OVL ma vengono scritte a video in questa schermata. In pratica la schermata di negoziazioni prende le frasi da 3 file diversi: OVL0.OVL scout.lzw (dentro mnego.dat) textz.lzw (dentro mnego.dat) nel caso della regione Sarmatia. e la grafica da altri 2 (tutti .CBM non compressi all'interno di MNEGO.DAT, i portrait, i box e l'immagine di sfondo) però quelle si vedono bene. Lo scherzo consisteva nel farmi vedere tutto bianco nel caso in cui provassi a cambiare le dimensioni delle frasi. In tutto il resto del gioco non lo faceva, in questa schermata si. Sono dovuto riamanere dentro la lunghezza delle stringhe originali. Che ci sia da cambiare un valore per allocare più memoria in quella specifica schermata? -------------------- |
|
|
|
16 Aug 2015, 09:24
Messaggio
#98
|
|
Gruppo: Admin Messaggi: 2.672 Iscritto il: 27 August 04 Utente Nr.: 1.509 BGE Indy and The Last Crusade SO Windows7 OGI Supporter |
Allora, velocemente, il file .LZW è così composto:
4 byte - dimensione del file decompresso .... seguono dati compressi Per decomprimere, va bene quell'algoritmo di sopra, ma bisogna fare un paio di modifiche CODE for (int k = 0; k < 4; k++) { int c1=getc(in); } // skip first 4 bytes ... int matchpos = b1 + ((b2 / 16) * 256) + 2 + 16; Invece di 22 byte bisogna saltare solo i 4 della dimensione. Inoltre la posizione del buffer LZ deve saltare i 16 byte iniziali. Ho ricompilato l'eseguibile, dovrebbe andar bene, fai le prove.
unlzw_cent.zip ( 17.43k )
Numero di download: 11Infine, nel file decompresso, i primi byte sono puntatori di 2byte alle varie stringhe nel file. |
|
|
|
16 Aug 2015, 09:32
Messaggio
#99
|
|
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 |
Purtroppo da qualche tempo a questa parte non si riescono più a scaricare gli allegati al forum. DK, tu riesci?
Io non riesco neanche sui miei. Mi dice che non sono connesso al forum. -------------------- |
|
|
|
16 Aug 2015, 09:37
Messaggio
#100
|
|
Gruppo: Admin Messaggi: 2.672 Iscritto il: 27 August 04 Utente Nr.: 1.509 BGE Indy and The Last Crusade SO Windows7 OGI Supporter |
Boh, a me funziona, te l'ho mandato via mail comunque. Prova a cancellare cache e cookie dal browser magari.
|
|
|
|
![]() ![]() |
| Versione Lo-Fi | Oggi è il: 6th November 2026 - 03:47 |