Compressioni Gba

Aperto da mentz, Febbraio 14, 2005, 14:43:57

Discussione precedente - Discussione successiva

mentz

Ho trovato un gioco bastardo che usa huffman per decomprimere i dati nella memoria 0x02000000 e poi chiama lzss per decomprimere quei dati....

Doppia compressione quindi per lo stesso dato...

sembra come uno zip chiuso dentro un file rar...

Bastardi !!!!

Il programmino di mat supera le lzss
(ho fatto dei test approfonditi anche su questo...)

ma per Huffman e quell'altra ??

Brisma

Benvenuto nel fantastico mondo di Seiken Densetsu 3 :D
<- [ BrISmA | BloG ] - >
********************
Membro di SadNES cITy
I gruppo italiano di traduzione ROM
http://www.sadnescity.it/
********************
MsN: brisma@hotmail.it - ICQ: 321995513 - eM@il: brisma@alice.it

Chester

Compressione Huffman:
http://www.gamedev.net/reference/articles/article286.asp

Codice sorgente di un decompressore Huffman molto semplice scritto in C:
http://rr.exhedra.com/upload_PSC/ftp/Compr...73381012001.zip

Vedi se può esserti utile...
Close the world, txEn eht nepO

mentz

Il problema delle compressioni gba è che sono personalizzate !!!

Mat ha dovuto sfacchinare un bel pò per trovare l'algoritmo giusto, perché una qualsiasi lzss non va bene...

La rogna più grande non è poi decomprimere (si potrebbero usare le routine del gba), quando ricomprimere (che non è previsto...)

ma Seiken Densetsu 3 è per gba ???

Chester

Citazionema Seiken Densetsu 3 è per gba ???
...
...
...
Secret of Mana 2 ti dice qualcosa?
SNES...


se son personalizzate allora è difficile che trovi qualcosa.
Se è una compressione huffman standard allora quel programmino comprime anche.
Close the world, txEn eht nepO

Brisma

CitazioneLa rogna più grande non è poi decomprimere (si potrebbero usare le routine del gba), quando ricomprimere (che non è previsto...)
Pensa che invece io con SD3 ho il problema opposto, ho il compressore perfetto, ma non ho il dumper :(  
<- [ BrISmA | BloG ] - >
********************
Membro di SadNES cITy
I gruppo italiano di traduzione ROM
http://www.sadnescity.it/
********************
MsN: brisma@hotmail.it - ICQ: 321995513 - eM@il: brisma@alice.it

|GeO|

Mentz, fra la roba che ti ho passato tempo fa c'erano dei sorgenti per le varie compressioni specifiche gba... (Me li aveva dati Gemini mi sa...). Cmq al massimo chiedi a Gemini se ti mette in contatto con pixel, lui s'era studiato il bios gba per bene (e relative SWI e compressioni :P).

Cronaldo, quel link non mi è nuovo... ;)

Brisma

Povero gemini, gira e rigira è sempre in mezzo :D
<- [ BrISmA | BloG ] - >
********************
Membro di SadNES cITy
I gruppo italiano di traduzione ROM
http://www.sadnescity.it/
********************
MsN: brisma@hotmail.it - ICQ: 321995513 - eM@il: brisma@alice.it

Gemini

CitazionePovero gemini, gira e rigira è sempre in mezzo :D
Io sono sempre ovunque. :*
Perché noi siamo tanti...


:clomax mode:


Confermo comunque, i sorgenti delle varie compressioni GBA li ho passati io a GeaoMiaoMeravigliao, peccato manchi la decompressione. :9

mentz

per la decompressione si può sfruttare l'arm....facendogli decomprimere della rom in un punto del gba... poi vai lì e lo dumpi...

hehehehe.....

Chester

CitazioneCronaldo, quel link non mi è nuovo...
;)
cmq è piuttosto completo.
Close the world, txEn eht nepO

mentz

CitazioneMentz, fra la roba che ti ho passato tempo fa c'erano dei sorgenti per le varie compressioni specifiche gba... (Me li aveva dati Gemini mi sa...). Cmq al massimo chiedi a Gemini se ti mette in contatto con pixel, lui s'era studiato il bios gba per bene (e relative SWI e compressioni :P).

Cronaldo, quel link non mi è nuovo... ;)
Sì, è vero... ci sono dei sorgenti delle compressioni...

Però sono buttate lì...

bisogna mettergli tutto quello che serve per poter comprimere/decomprimere un file....

Però ci si può smanettare sopra....
(peccato che ho poco tempo...)

mentz

anche se riguarda la lz77gba, riporto lo stesso quest'info...

r0   Source address, pointing to data as such:
       Data header (32bit)
         Bit 0-3   Reserved
         Bit 4-7   Compressed type (must be 1 for LZ77)
         Bit 8-31  Size of decompressed data
       Repeat below. Each Flag Byte followed by eight Blocks.
       Flag data (8bit)
         Bit 0-7   Type Flags for next 8 Blocks, MSB first
       Block Type 0 - Uncompressed - Copy 1 Byte from Source to Dest
         Bit 0-7   One data byte to be copied to dest
       Block Type 1 - Compressed - Copy N+3 Bytes from Dest-Disp-1 to Dest
         Bit 0-3   Disp MSBs
         Bit 4-7   Number of bytes to copy (minus 3)
         Bit 8-15  Disp LSBs
 r1   Destination address


mentz

A quanto pare il problema è risolto....

esiste un tool che può comprimere i dati per gba con le compressioni:

Differential 16 bit
Differential 8 bit
RLE
Huffman 8 bit
Huffman 4 bit
LZ77
LZ77 VRAM safe


Per decomprimere ho già visto che può essere usato l'arm per creare una piccola rom con i dati da decomprimere e si può decidere di farglieli decomprimere dove vuole, così si può fare un dump...(usando VBA)

Dalle header dei file compressi ricaviamo anche la lunghezza del blocco compresso...(siamo a cavallo)

L'ho già sperimentato con Klonoa Empire of Dreams(ma che gioco è ??)

Certo un tool che decomprimesse sarebbe l'ideale (come quello di mat)
ma non si può avere tutto dalla vita...

yuumeikai

CitazioneL'ho già sperimentato con Klonoa Empire of Dreams(ma che gioco è ??)
Il tizio alato con il cappello blu... una sorta di Sonic  <_<
Lo hanno riciclato (come è successo per tanti titoli come Kirby) su varie console.

Per il resto, a quanto pare ti stai dando da fare  :o