Forstå det grunnleggende
* LZ-komprimering: GBA ROM-er bruker ofte LZ77-komprimering, som komprimerer data effektivt. "unLZ-gba" er et verktøy utviklet for å dekomprimere LZ77-komprimerte data i GBA ROM-er.
* Bildeindeksering: "Indeksen" i denne sammenhengen refererer til en måte å kartlegge de komprimerte dataene i ROM-en til dens tilsvarende plassering i et større bilde. Dette hjelper dekompresjonsverktøyet med å finne de riktige dataene.
Trinn for å indeksere et bilde for unLZ-gba
1. Fastgjør komprimering: Sørg for at bildedataene i ROM-en din faktisk er LZ-komprimert. Du må konsultere dokumentasjon, analysere ROM-strukturen eller bruke verktøy som oppdager LZ77-komprimering.
2. Finn de komprimerte dataene: Identifiser den nøyaktige plasseringen i ROM-en der bildets komprimerte data ligger. Dette innebærer vanligvis å se på ROM-overskriften eller bruke verktøy for å analysere strukturen.
3. Opprett en indeksfil: Du må lage en tekstfil som fungerer som en indeks. Denne filen forteller "unLZ-gba" følgende:
* ROM-forskyvning: Startplasseringen for de komprimerte bildedataene i ROM-en.
* Bildedimensjoner: Bredde og høyde på originalbildet.
* LZ77 Header: Hvis de komprimerte dataene inkluderer en LZ77-overskrift, må du kanskje inkludere denne informasjonen i indeksfilen også.
Eksempel på indeksfil:
```
romoffset=0x08000000
bredde=256
høyde=192
```
Bruke "unLZ-gba" med indeksen
1. Forbered ROM: Lag en kopi av den originale ROM-filen din, siden "unLZ-gba" kan endre den.
2. Kjør "unLZ-gba": Kjør kommandolinjeverktøyet "unLZ-gba" med følgende parametere:
```
unLZ-gba -i index.txt -o output.bmp rom.gba
```
* `-i index.txt` – Banen til indeksfilen din.
* `-o output.bmp` – Navnet og formatet du ønsker for det dekomprimerte bildet.
* `rom.gba` - Banen til GBA ROM-filen din.
Nøkkelpoeng:
* ROM-struktur: Å forstå ROM-strukturen til GBA-spillet du jobber med er avgjørende for nøyaktig indeksering.
* Verktøy: Verktøy som "GBA Rom Tool" eller "GBAExplorer" kan være nyttige for å inspisere ROM-data og identifisere komprimeringstyper.
* Dokumentasjon: Hvis tilgjengelig, se dokumentasjonen for det spesifikke spillet eller ROM-en for å forstå dataorganisasjonen.
Eksempel (GBA ROM som bruker LZ77-komprimering):
La oss si at du har en GBA ROM der bakgrunnsbildet er LZ77-komprimert, starter på adressen `0x08000000`, med en oppløsning på 256x192 piksler.
Indeksfilen din (f.eks. "bg_index.txt") vil inneholde:
```
romoffset=0x08000000
bredde=256
høyde=192
```
Du vil da kjøre:
```
unLZ-gba -i bg_index.txt -o background.bmp rom.gba
```
Dette vil dekomprimere de LZ77-komprimerte bildedataene og lagre dem som et BMP-bilde kalt `background.bmp`.
Husk at dette er en generell veiledning. De nøyaktige trinnene og spesifikasjonene kan variere avhengig av ROM og komprimeringsskjemaet som brukes.