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