Zrozumienie podstaw
* Kompresja LZ: ROMy GBA często korzystają z kompresji LZ77, która skutecznie kompresuje dane. „unLZ-gba” to narzędzie przeznaczone do dekompresji danych skompresowanych w formacie LZ77 w pamięciach ROM GBA.
* Indeksowanie obrazów: „Indeks” w tym kontekście odnosi się do sposobu mapowania skompresowanych danych w pamięci ROM do odpowiadającej im lokalizacji na większym obrazie. Pomaga to narzędziu dekompresyjnemu znaleźć prawidłowe dane.
Kroki indeksowania obrazu dla unLZ-gba
1. Określ kompresję: Upewnij się, że dane obrazu w pamięci ROM są rzeczywiście skompresowane LZ. Będziesz musiał zapoznać się z dokumentacją, przeanalizować strukturę ROMu lub użyć narzędzi wykrywających kompresję LZ77.
2. Zlokalizuj skompresowane dane: Określ dokładną lokalizację w pamięci ROM, w której znajdują się skompresowane dane obrazu. Zwykle wiąże się to ze sprawdzeniem nagłówka ROM lub użyciem narzędzi do analizy struktury.
3. Utwórz plik indeksu: Musisz utworzyć plik tekstowy, który będzie pełnił funkcję indeksu. Ten plik przekazuje „unLZ-gba” następujące informacje:
* Przesunięcie ROM: Początkowa lokalizacja skompresowanych danych obrazu w pamięci ROM.
* Wymiary obrazu: Szerokość i wysokość oryginalnego obrazu.
* Nagłówek LZ77: Jeśli skompresowane dane zawierają nagłówek LZ77, może być konieczne uwzględnienie tej informacji również w pliku indeksu.
Przykładowy plik indeksu:
```
romoffset=0x08000000
szerokość=256
wzrost=192
```
Używanie „unLZ-gba” z indeksem
1. Przygotuj ROM: Zrób kopię oryginalnego pliku ROM, ponieważ „unLZ-gba” może go zmodyfikować.
2. Uruchom „unLZ-gba”: Uruchom narzędzie wiersza poleceń „unLZ-gba” z następującymi parametrami:
```
unLZ-gba -i indeks.txt -o wyjście.bmp rom.gba
```
* `-i indeks.txt` - Ścieżka do pliku indeksu.
* `-o Output.bmp` - Nazwa i format, jaki chcesz dla zdekompresowanego obrazu.
* `rom.gba` - Ścieżka do pliku GBA ROM.
Kluczowe punkty:
* Struktura ROMu: Zrozumienie struktury ROM gry GBA, z którą pracujesz, ma kluczowe znaczenie dla dokładnego indeksowania.
* Narzędzia: Narzędzia takie jak „GBA Rom Tool” lub „GBAExplorer” mogą być pomocne przy sprawdzaniu danych ROM i identyfikowaniu typów kompresji.
* Dokumentacja: Jeśli to możliwe, zapoznaj się z dokumentacją konkretnej gry lub pamięci ROM, aby zrozumieć organizację danych.
Przykład (GBA ROM z kompresją LZ77):
Załóżmy, że masz pamięć ROM GBA, na której obraz tła jest skompresowany LZ77, zaczynając od adresu `0x08000000` i o rozdzielczości 256x192 pikseli.
Twój plik indeksu (np. `bg_index.txt`) będzie zawierał:
```
romoffset=0x08000000
szerokość=256
wzrost=192
```
Następnie uruchomiłbyś:
```
unLZ-gba -i bg_index.txt -o tło.bmp rom.gba
```
Spowoduje to dekompresję danych obrazu skompresowanych przy użyciu LZ77 i zapisanie ich jako obrazu BMP o nazwie `background.bmp`.
Pamiętaj, że jest to ogólny przewodnik. Dokładne kroki i szczegóły mogą się różnić w zależności od używanej pamięci ROM i schematu kompresji.