П.П.С. Кто готов помочь с графикой?
Сделал сжатие для графики. Используется простой LZSS. У меня обычное сжатие, по размеру как оригинал, но можно лучше.
Чтобы узнать позицию в файле сжатых данных, в Mesen в Debugger установить breakpoint на выполнение CPU $C0EB51, справа от
LDA [$0F],Y будет CPU адрес на сжатые данные:
Сначала найти в Tile Viewer нужную графику, отмотать время назад до появления, включить breakpoint, будет несколько срабатываний, в Tile Viewer отобразится после срабытания, поэтому сохранять адреса заранее. Например, для LINUS на фоне - CPU $DEFC83, значит в роме $1EFC83 (разница 0xC00000), для разжатия:
snoopy_comp.exe -d "Snoopy Concert (Japan).sfc" tiles.bin -p 0x1EFC83Для сжатия:
snoopy_comp.exe tiles.bin tiles_compressed.binВручную вставить назад или в другое место и изменить адрес.
UPD v2: Добавил больше проверок на допустимость (правильность) при разжатии и добавил разжатие всех данных из файла:
snoopy_comp.exe -a "Snoopy Concert (Japan).sfc" "Extracted"Нужно создать папку Extracted, чтобы в неё сохранились разжатые файлы. Имена вида 000_00FF4A_0044.bin - десятичный порядковый номер, позиция в файле (hex), размер сжатых данных (hex). Встречаются ложные данные.