Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Algoritmi - Algoritmo compressione generico
Forum - Algoritmi - Algoritmo compressione generico

Avatar
johnwhile (Normal User)
Newbie


Messaggi: 15
Iscritto: 31/10/2009

Segnala al moderatore
Postato alle 19:20
Sabato, 19/11/2011
Non sò se è lecito chiedere, vorrei un'opinione da voi dato che sicuramente siete più esperti.
Io sto cercando di capire un algoritmo di compressione usato da una casa produttrice di giochi, premetto che loro stessi hanno divulgato un programmino per decomprimere i loro file per il modding, quindi suppongo non mi metteranno agli arresti se pongo la questione.:-|
Il due file di confronto sono stati ottenuti dal gioco originale compresso e dal programma usato da loro per decomprimere (se volete ve li passo con anche il formato usato in linguaggio c++).
Ovviamente è proprietario quindi di sicuro non lo divulgano ma da una prima analisi del file aperto con un Hex editor sembra che sia abbastanza intuitivo :
Se vedete la stringa "Scene Root" viene riscritta uguale mentre la stringa "bone_root" viene scritta "bone_r" perchè suppondo la parte "oot" già presente nella precedente.

Dopo questa premessa non è che per caso qualcuno di voi mi possa illuminare ? ne sarei molto grato !!!
Lo scopo di questo è solo capire se lo stesso metodo è stato usato per comprimere delle animazioni usate dal gioco in alcuni casi particolari, comunque è datato e ormai già spacchettato al 99%, con programmi fatti proprio dalla casa produttrice per favorire il modding, solo che questo aspetto l'hanno trascurato e ormai non offrono più assistenza per questo gioco.


johnwhile ha allegato un file: compression.PNG (33832 bytes)
Clicca qui per guardare l'immagine
PM
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6404
Iscritto: 03/01/2010

Up
1
Down
V
Segnala al moderatore
Postato alle 19:41
Sabato, 19/11/2011
Non ho capito questo

Testo quotato


Il due file di confronto sono stati ottenuti dal gioco originale compresso e dal programma usato da loro per decomprimere (se volete ve li passo con anche il formato usato in linguaggio c++).



vuoi dire che hai i sorgenti del programma che decomprime?

no, intendo che il file di confronto è stato scelto tra quelli che hanno delle stringhe e il cui formato è stato ampiamente scoperto, solo per vedere se la conversione si basa sul tipo di file o viene usato per qualsiasi serie di byte. - johnwhile - 19/11/11 19:51
----------------------------------------------------------------------------------------------------------------- - johnwhile - 20/11/11 00:04
Non ho capito ancora ma non importa ... continuo a pensare che non valga la pena diventare matti per moddare un gioco ... - nessuno - 20/11/11 00:23
come non hai capito ? io ho solo chiesto se per caso qualcuno riesce a rconoscere che metodo di compressione del file è stato usato. Cercando su internet sembra sia simile al metodo di "string matching". Volete che vibpassi i due file che sto usando per il confronto ? - johnwhile - 20/11/11 10:59
Questo l'ho capito, infatti ti ho detto che non vale la pena per moddare un gioco ... Quello che non era chiaro era il discorso sul linguaggio C++ .. - nessuno - 20/11/11 11:05
no, il programmino che hanno dato loro per decomprimere è un exe, la compressione non è unica per tipo di file ma viene usata per tutti i file (lascia perdere il c++). Comunque i due file in esame sono questi :http://dl.dropbox.com/u/47659776/ballista_crank.zip. dai primi byte si vede che assomigl - johnwhile - 20/11/11 11:37
-iano, ma io di metodi di compressione non ne conosco neanche uno, volevo sapere se riuscite a riconoscerlo dal modo in cui sono stati scritti i dati o se è troppo complesso. grazie in anticipo. - johnwhile - 20/11/11 11:39
Perché non hai aggiunto anche l'exe? - nessuno - 20/11/11 11:54
perché ? bob credo ti sia utile anche perché quell'exe di 300kb comunque carica delle dll del gioco, quindi bob so quanto possa essere utile. - johnwhile - 20/11/11 16:16
ok, sempre allo stesso link ho aggiunto il programma, in realtà esso spacchetta i file .pack (semplice database di file compressi) mentre un utente ha scompattato i file pack ma senza devomprimerli. Ecco perchè posso fare il confronto tra due file. - johnwhile - 20/11/11 16:22
un utente ha scoperto che si tratta di LZOP , ho provato a usare lzop.exe e si vede che il risultato è praticamente identico tranne per l'header del file, adesso si tratta di capire il suo algorithmo per poterlo implementare nel mio script (cioè in 3dstudio max) - johnwhile - 20/11/11 18:25
Si basa su questa libreria http://www.oberhumer.com/opensource/lzo/download/ che è open source - nessuno - 20/11/11 18:37
si, proprio adesso stavo guardando, io il c lo mastico poco, preferisco python, sarà un'impresa capirci qualcosa - johnwhile - 20/11/11 18:50


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM