Razumevanje osnov
* LZ stiskanje: ROM-i GBA pogosto uporabljajo stiskanje LZ77, ki učinkovito stisne podatke. "unLZ-gba" je orodje, zasnovano za dekompresijo podatkov, stisnjenih z LZ77, znotraj ROM-ov GBA.
* Indeksiranje slik: "Indeks" se v tem kontekstu nanaša na način preslikave stisnjenih podatkov v ROM-u na njihovo ustrezno lokacijo znotraj večje slike. To pomaga orodju za dekompresijo najti pravilne podatke.
Koraki za indeksiranje slike za unLZ-gba
1. Določite stiskanje: Zagotovite, da so slikovni podatki v vašem ROM-u dejansko LZ-stisnjeni. Preučiti boste morali dokumentacijo, analizirati strukturo ROM-a ali uporabiti orodja, ki zaznajo stiskanje LZ77.
2. Poiščite stisnjene podatke: Določite točno lokacijo znotraj ROM-a, kjer so stisnjeni podatki slike. To običajno vključuje ogled glave ROM-a ali uporabo orodij za analizo strukture.
3. Ustvarite indeksno datoteko: Ustvariti boste morali besedilno datoteko, ki deluje kot indeks. Ta datoteka pove "unLZ-gba" naslednje:
* Odmik ROM-a: Začetna lokacija stisnjenih slikovnih podatkov v ROM-u.
* Dimenzije slike: Širina in višina izvirne slike.
* Glava LZ77: Če stisnjeni podatki vključujejo glavo LZ77, boste morda morali vključiti tudi te informacije v indeksno datoteko.
Primer indeksne datoteke:
```
romoffset=0x08000000
širina=256
višina=192
```
Uporaba "unLZ-gba" z indeksom
1. Pripravite ROM: Naredite kopijo izvirne datoteke ROM, saj jo lahko »unLZ-gba« spremeni.
2. Zaženite "unLZ-gba": Izvedite orodje ukazne vrstice "unLZ-gba" z naslednjimi parametri:
```
unLZ-gba -i index.txt -o output.bmp rom.gba
```
* `-i index.txt` - pot do vaše indeksne datoteke.
* `-o output.bmp` - Ime in oblika, ki ju želite za dekompresirano sliko.
* `rom.gba` - Pot do vaše datoteke GBA ROM.
Ključne točke:
* Zgradba ROM-a: Razumevanje strukture ROM-a igre GBA, s katero delate, je ključnega pomena za natančno indeksiranje.
* Orodja: Orodja, kot sta »GBA Rom Tool« ali »GBAExplorer«, so lahko v pomoč pri pregledovanju podatkov ROM in prepoznavanju vrst stiskanja.
* Dokumentacija: Če je na voljo, si oglejte dokumentacijo za določeno igro ali ROM, da boste razumeli organizacijo podatkov.
Primer (GBA ROM z uporabo kompresije LZ77):
Recimo, da imate GBA ROM, kjer je slika ozadja stisnjena z LZ77, z začetkom na naslovu `0x08000000`, z ločljivostjo 256x192 slikovnih pik.
Vaša indeksna datoteka (npr. `bg_index.txt`) bi vsebovala:
```
romoffset=0x08000000
širina=256
višina=192
```
Nato bi zagnali:
```
unLZ-gba -i bg_index.txt -o background.bmp rom.gba
```
To bi razpakiralo slikovne podatke, stisnjene z LZ77, in jih shranilo kot sliko BMP z imenom `background.bmp`.
Ne pozabite, da je to splošni vodnik. Natančni koraki in podrobnosti se lahko razlikujejo glede na ROM in uporabljeno shemo stiskanja.