Förstå grunderna
* LZ-komprimering: GBA ROM använder ofta LZ77-komprimering, som komprimerar data effektivt. "unLZ-gba" är ett verktyg utformat för att dekomprimera LZ77-komprimerade data i GBA ROM.
* Bildindexering: "Indexet" i detta sammanhang hänvisar till ett sätt att mappa den komprimerade datan i ROM till dess motsvarande plats i en större bild. Detta hjälper dekompressionsverktyget att hitta rätt data.
Steg för att indexera en bild för unLZ-gba
1. Fastställ komprimering: Se till att bilddatan i ditt ROM faktiskt är LZ-komprimerad. Du måste konsultera dokumentation, analysera ROM-strukturen eller använda verktyg som upptäcker LZ77-komprimering.
2. Lokalisera komprimerade data: Identifiera den exakta platsen i ROM där bildens komprimerade data finns. Detta innebär vanligtvis att titta på ROM-huvudet eller använda verktyg för att analysera strukturen.
3. Skapa en indexfil: Du måste skapa en textfil som fungerar som ett index. Den här filen säger till "unLZ-gba" följande:
* ROM-offset: Startplatsen för de komprimerade bilddata i ROM.
* Bildmått: Originalbildens bredd och höjd.
* LZ77 Header: Om den komprimerade datan innehåller ett LZ77-huvud kan du behöva inkludera denna information i indexfilen också.
Exempel på indexfil:
```
romoffset=0x08000000
bredd=256
höjd=192
```
Använder "unLZ-gba" med indexet
1. Förbered ROM: Gör en kopia av din ursprungliga ROM-fil, eftersom "unLZ-gba" kan ändra den.
2. Kör "unLZ-gba": Kör kommandoradsverktyget "unLZ-gba" med följande parametrar:
```
unLZ-gba -i index.txt -o output.bmp rom.gba
```
* `-i index.txt` - Sökvägen till din indexfil.
* `-o output.bmp` - Namnet och formatet du vill ha för den dekomprimerade bilden.
* `rom.gba` - Sökvägen till din GBA ROM-fil.
Nyckelpoäng:
* ROM-struktur: Att förstå ROM-strukturen för GBA-spelet du arbetar med är avgörande för korrekt indexering.
* Verktyg: Verktyg som "GBA Rom Tool" eller "GBAExplorer" kan vara till hjälp för att inspektera ROM-data och identifiera komprimeringstyper.
* Dokumentation: Om tillgängligt, se dokumentationen för det specifika spelet eller ROM för att förstå dess dataorganisation.
Exempel (GBA ROM som använder LZ77-komprimering):
Låt oss säga att du har en GBA ROM där bakgrundsbilden är LZ77-komprimerad, med början på adressen `0x08000000`, med en upplösning på 256x192 pixlar.
Din indexfil (t.ex. `bg_index.txt`) skulle innehålla:
```
romoffset=0x08000000
bredd=256
höjd=192
```
Du skulle då köra:
```
unLZ-gba -i bg_index.txt -o background.bmp rom.gba
```
Detta skulle dekomprimera den LZ77-komprimerade bilddatan och spara den som en BMP-bild med namnet `background.bmp`.
Kom ihåg att detta är en allmän guide. De exakta stegen och detaljerna kan variera beroende på ROM och komprimeringsschemat som används.