Spellcross - *.LZ dekomprese
Větší část dat ve hře naštěstí není nijak komprimovaná, nicméně některé soubory přeci jen
jakousi kompresi používají. Jsou to ty, které není třeba načítat rychle, takže například veškerá MIDI hudba, grafika
jednotek uložená v "UNITS.FSU" archivu apod. Tyto soubory mívají zpravidla příponu *.LZ nebo *.LZ0.
Že se jedná o kompresi mi sice bylo zřejmé podle zřetelného slovníku na začátku souboru a
že to bude, soudě dle přípony, nějaká varianta Lempel-Ziv bylo rovněž celkem zřejmé, ale těch variant je celkem dost.
Osobně se mi tu metodu hledat nechtělo, takže jsem to odložil, ale naštěstí se mi ozval kolega programátor
Michal alias MacJariel a tomu se to překvapivě rychle povedlo, takže tímto mu patří můj dík za funkční kód, který jsem sprasil k
obrazu svému. ;-)
Produktem tohoto sprasení je snad plně funkční utilitka "spell_delz.exe", která by si měla poradit se všemi
komprimovanými soubory. Zatím jsem nenarazil na žádný soubor, který by to dekédovalo špatně (bez problému
to zvládá všech 20000+ spritů z UNITS.FSU).
K této utilitce jsem navíc přibalil dávkový soubor "spell_midlz.bat", který automaticky generuje
výstupní název souboru s příponou *.mid, takže se jako parametr zadává pouze cesta k *.LZ. Nakonec jsem ještě přidal
skript "spell_midlz_all.bat", který zavolá "spell_midlz.bat" pro všechny *.LZ soubory v adresáři. Stačí to tedy všechno
nakopírovat do dearchivaného adresáře "SPELCROS\DATA\DATA\MUSIC" a spustit bez parametrů. Pokud se nic nepokazilo, tak by
měly být dekomprimovány všechny MID soubory. Jedná se o ne až tak obvyklý formát XMI, ale měl by jít normálně přehrát.
Utilitka ke stažení: spell_delz.zip
(c) 2011, Stanislav Mašláň - Všechna práva vyhrazena.
Poslední aktualizace: 29.9.2011 |
|
|
|
|