| Разработка и ромхакинг > Ромхакинг и программирование |
| [SS] RLE сжатие графики |
| << < (2/2) |
| DrMefistO:
Сжатие RLE, только хитрое, со словарём. |
| DrMefistO:
Короче, выкладываю скрипт, который умеет анпачить (сразу разворачивает байты). Скрипт также умеет искать PX и PZ данные в других файлах. Второй скрип умеет паковать (хуже, чем оригинал, т.к. в оригинале используется умный подбор оптимальных последовательностей, а у меня оптимизации практически нет). Если есть у кого желание доделать (например, у Марата), было бы круто. Сссылка на скрипты: https://gist.github.com/lab313ru/caf056c30ae1a866c4c7ced257f09d4d |
| ViToTiV:
DrMefistO, пасиб, это для phyton? Ставить просто последнюю версию и все, или ещё что-то надо установить? |
| DrMefistO:
Да, питон любой третьей версии |
| paul_met:
--- Цитата: ViToTiV от 14 Май 2021, 23:21:03 ---а как вытащить дамп VDP1? и что это вообще такое?) я с Сатурном только начал знакомство. --- Конец цитаты --- VDP1 - один из видеочипов Сатурна, отвечающих за обработку спрайтов и полигонов. В отладчике VDP1 эмуля Yabause можно видеть все активные в конкретный момент времени спрайты и их характеристики (адрес в видеопамять, размеры, формат цвета и т.д.). Оттуда и дампишь нужный тебе спрайт. |
| ViToTiV:
всем спасибо, всё пучком) только в скрипте "pack_cel.py" на 251 строке к аргументам надо "sys." добавить, иначе ошибка. |
| DrMefistO:
Для того, чтобы многокадровые собирало, там в скрипте сборщика нужно на строке 242 передавать в квадратные скобки данные и остальных блоков, просто я тестировал на одном, и не успел добавить открытие списка файлов. А про 'sys.' - да, перед публикацией скрипта в конце добавлял аргументы, на скорую руку уже, поэтому забыл:). |
| Марат:
--- Цитата: DrMefistO от 15 Май 2021, 06:56:55 ---Второй скрип умеет паковать (хуже, чем оригинал, т.к. в оригинале используется умный подбор оптимальных последовательностей, а у меня оптимизации практически нет). Если есть у кого желание доделать (например, у Марата), было бы круто. --- Конец цитаты --- Вот. Ещё в идеале надо добавить обработку переполнения словаря: когда словарь заполнится отправлять словарь и ссылки на фразы в словаре в выходной поток, и дальше работать с новым пустым словарём. Перезалил. |
| Марат:
Кстати, здесь --- Код: ---dest += pack_word(len(data)) --- Конец кода --- в оригинале указан размер сжатого файла без хедера. А у тебя указан размер несжатого файла. --- Код: --- for data in blocks: dest += pack_word(len(data)) packed, woff = pack_block(data) dest += pack_word(woff) dest += packed return dest --- Конец кода --- изменил на --- Код: --- for data in blocks: packed, woff = pack_block(data) dest += pack_word(len(packed) + 2 + 2) dest += pack_word(woff) dest += packed --- Конец кода --- |
| DrMefistO:
Супер, спасибо:) |
| Навигация |
| Главная страница сообщений |
| Предыдущая страница |