Nodame Cantabile

Aperto da mazzolatore, Giugno 05, 2008, 19:08:00

Discussione precedente - Discussione successiva

Morpher

Guarda, la Lz è la più semplice compressione che abbiano mai inventato...
Nel tuo caso ci sono 3 soluzioni:

1) Se sai programmare scaricati la guida di phoenix sulla lz, nel pacchetto dovresti trovare dei sorgenti in c++ e vb6 (ahhh che ricordi :P) che puoi facilmente adattare per il tuo caso;

2) Se non sai programmare dumpa il font decompresso, modificalo e reinseriscilo tenendo conto che ogni 8 byte dovrai inserire il byte 0x00. Diciamo che non è molto "elegante" come metodo ma serve per eludere la compressione stessa;

3) Qualcuno di buona volontà dovrebbe scriverti il de/compressore.... (se trovo tempo posso farlo io).


Phoenix

Ad occhio e croce, a me sembra più un archivio di file che un file compresso.
Oddio potrebbe anche essere che i sottofile siano compressi, però se non intuisco male, il primo byte (o meglio il primo uint) indica il numero di sottofile e poi ogni 8 byte hai (i primi 4 da invertire) l'offset nel font.bin da cui inizia un sottofile e (gli altri 4 sempre da invertire) la dimensione in byte di quel file.

Esempio:

03000000 <-invertito-> 0x00000003 (3 sottofile)

1C000000 <-invertito-> 0x0000001c (offset nel font.bin in cui inizia il primo file)
10350200 <-invertito-> 0x00023510 (dimensione in byte del primo sottofile)

2C350200 <-invertito-> 0x0002352c (offset nel font.bin in cui inizia il secondo file)
74EB0100 <-invertito-> 0x0001eb74 (dimensione in byte del secondo sottofile)

A0200400 <-invertito-> 0x000420a0 (offset nel font.bin in cui inizia il secondo file)
D4710100 <-invertito-> 0x000171d4 (dimensione in byte del terzo sottofile)
Phoenix
****************
membro di SadNES cITy
I gruppo italiano di traduzione ROM
http://www.sadnescity.it
*****************************

Morpher

Dopo un breve consulto col mio collega Phoenix  B) siamo giunti a conclusione che:

1) L'archivio contiene sottofile e ti basta seguire le indicazioni di Phoenix per capire come estrarre ogni file;

2) Una volta estratti puoi usare tranquillamente un decompressore lz77 (anche roba per gba; a quanto pare la nintendo ricicla lo stesso codice). Qui trovi quello di mat linkuzzo;

3) Quando hai modificato tutto ricomprimi e crei anche a mano lo stesso archivio prestando attenzione nel ricreare l'header principale...

Tutto chiaro???

mazzolatore

Morpher & PhOeNiX siete geniali! :clomax mode:
In due secondi mi avete fornito le migliori delucidazioni sulla LZ77 (che mi sembrava diabolica) e avete risolto il "mistero del header farlocco"! :applauso:

Non mi date nemmeno il tempo di dire che avete ragione... :favorevole: