Разбиране на основите
* LZ компресия: GBA ROM често използват LZ77 компресия, която компресира данните ефективно. "unLZ-gba" е инструмент, предназначен за декомпресиране на LZ77-компресирани данни в GBA ROM.
* Индексиране на изображения: „Индексът“ в този контекст се отнася до начин за картографиране на компресираните данни в ROM към съответното им местоположение в рамките на по-голямо изображение. Това помага на инструмента за декомпресия да намери правилните данни.
Стъпки за индексиране на изображение за unLZ-gba
1. Определяне на компресията: Уверете се, че данните за изображение във вашия ROM действително са LZ-компресирани. Ще трябва да се консултирате с документация, да анализирате структурата на ROM или да използвате инструменти, които откриват LZ77 компресия.
2. Намерете компресираните данни: Идентифицирайте точното местоположение в ROM, където се намират компресираните данни на изображението. Това обикновено включва разглеждане на заглавката на ROM или използване на инструменти за анализ на структурата.
3. Създайте индексен файл: Ще трябва да създадете текстов файл, който действа като индекс. Този файл казва на "unLZ-gba" следното:
* ROM Offset: Началното местоположение на компресираните данни за изображение в ROM.
* Размери на изображението: Ширина и височина на оригиналното изображение.
* LZ77 Header: Ако компресираните данни включват заглавка LZ77, може да се наложи да включите и тази информация в индексния файл.
Примерен индексен файл:
```
romoffset=0x08000000
ширина=256
височина=192
```
Използване на "unLZ-gba" с индекса
1. Подгответе ROM: Направете копие на вашия оригинален ROM файл, тъй като "unLZ-gba" може да го промени.
2. Изпълнете "unLZ-gba": Изпълнете инструмента от командния ред "unLZ-gba" със следните параметри:
```
unLZ-gba -i index.txt -o output.bmp rom.gba
```
* `-i index.txt` - Пътят до вашия индекс файл.
* `-o output.bmp` - Името и форматът, които искате за декомпресираното изображение.
* `rom.gba` - Пътят до вашия GBA ROM файл.
Ключови точки:
* Структура на ROM: Разбирането на структурата на ROM на играта GBA, с която работите, е от решаващо значение за точното индексиране.
* Инструменти: Инструменти като "GBA Rom Tool" или "GBAExplorer" могат да бъдат полезни за проверка на ROM данни и идентифициране на типове компресия.
* Документация: Ако има такава, вижте документацията за конкретната игра или ROM, за да разберете организацията на данните в нея.
Пример (GBA ROM, използващ LZ77 компресия):
Да приемем, че имате GBA ROM, където фоновото изображение е LZ77-компресирано, започвайки от адрес `0x08000000`, с разделителна способност 256x192 пиксела.
Вашият индексен файл (напр. `bg_index.txt`) ще съдържа:
```
romoffset=0x08000000
ширина=256
височина=192
```
След това ще стартирате:
```
unLZ-gba -i bg_index.txt -o background.bmp rom.gba
```
Това ще декомпресира данните за изображението, компресирани с LZ77, и ще го запази като BMP изображение с име „background.bmp“.
Не забравяйте, че това е общо ръководство. Точните стъпки и специфики могат да варират в зависимост от ROM и използваната схема за компресиране.