В ваших переводах часто можно встретить, что вы используете Пакер / Анпакер графики. Проще говоря, вам приходится работать со сжатой графикой. Интересует, как вы пишите эти распаковщики / запаковщики графики?
Например:
- Находите пожатую графику.
- Разбираетесь в её устройстве (Как? Используя дизассемблер или просто в Hex-редакторе).
- Как пишется программа.
Если вас не затруднит, уделите пару минут и ответьте на эти вопросы.
И ещё, а для денди проще написать распаковщик графики, чем для сеги?
Почитай документацию про сжатие в играх. Может быть, станет немного понятнее.
http://www.shedevr.org.ru/forum/viewtopic.php?t=3590&start=0
Изначально разбирается алгоритм распаковки сжатых данных, а потом запаковки. Разбирается на ассемблере процессора (язык программирования низкого уровня), на котором работала консоль (к примеру, для NES это MOS6502). В этом помогают эмуляторы, имеющие дебаггеры (средства для отладки игры). Дебаггер или IDA отображают машинный код в понятном виде. После того как алгоритм сжатия разобран, он переписывается на языке высокого уровня (дельфи, си). Незапакованные данные даже без написания утилиты можно запросто увидеть в дампах видеопамяти или сохранения.
На NES в 90 % случаях используется примитивный RLE (Run-length encoding). В сети куча исходных кодов для кодеров под NES игры. В остальных 10 % используется Хаффман (Huffman).
На SEGA чаще всего встречается куча разновидностей алгоритма Лемпеля-Зива (LZ).
Необходимо понять, что для взлома сжатых данных, необходимо обладать неплохими навыками программирования.
Что, к сожалению, я и сам не освоил в своё время.
Mefistotel, можно узнать название игры для NES с простым пожатием RLE? Что бы можно было поэкспериментировать.
Любые игры от KONAMI. Плюс пиратки.
Цитата: Greengh0st от 14 марта 2015, 15:16Любые игры от KONAMI. Плюс пиратки.
А поточнее можно, там где
самая простая RLE.
Проверил
контру, там вроде как, лого начинается с $
012A10. Но там такое впечатление, что графика в перемешку идёт с тайловой картой.
Какая ещё "самая простая RLE"? Ты ссылку читал на Шедевр, что я дал или нет?
RLE - это алгоритм сжатия данных, и ОН на NES везде практически одинаковый.
Графику видно в любом тайловом редакторе, а тайловая карта - это "код", задающий порядок вывода этой графики,который чаще всего и жмётся RLE.
Вложил исходники для пакера/анпакера данных из игр Конами на НЕС. Чаще всего они жали тайловые карты титульников.
Ну в Балбесах вторых пожаты и сами тайлы для заставки или для примера игра Шакал, где всё пожато.
Mefistotel, имел в виду не RLE+LZ77.
Greengh0st, спс гляну.
Из того что мы переводили, любой файтинг возьми пиратский все пожаты таким же способом, что и игры от конами. Типа морталов или стрит файтеров.
Вот как хранится несжатая графика в NES играх (http://pscd.ru/forum/index.php?/topic/316-khranenie-neszhatoi-grafiki-na-razlichnykh-igrovy/).
Мне что-то сложно представить как её можно пожать в RLE. Хотя, можно сжать тайлы одного цвета.
Интересна тема, хотелось бы увидеть непосредственное сжатие графики в RLE на примере какой-то игры. То как этот кусок выглядит в hex-редакторе.
Из так называемой графики, чаще всего жмут шрифты.Ну и тайлы титульника. К примеру, возьми игру ракетчик.
Мы помним про ракетчика))) принцип сжатия обычно очень прост идет байт-тайла который надо сжать и следующий байт количество этих самых тайлов типа 15 0a. 15 - это номер тайла, а 0а сколько раз он повторяется. Дальше я не вникал, но перед несжатыми файлами обычно идет байт начинающийся с 8... тут что-то с битами мне рассказывали, но я пропустил мимо ушей. Короче особо сложного ничего нет. Но для примера завтра выну кусок кода и прикреплю сюда для наглядности с пояснениями.
Цитата: Greengh0st от 19 марта 2015, 00:10 Но для примера завтра выну кусок кода и прикреплю сюда для наглядности с пояснениями.
Обещанного три года ждут. Но, всё же, хотелось бы побыстрее :) .
Извините народ, закрутился))) Сделаем)))
Цитата: Greengh0st от 25 марта 2015, 21:15Извините народ, закрутился))) Сделаем)))
Просто напомню о себе :)
Цитата: Greengh0st от 25 марта 2015, 21:15Извините народ, закрутился))) Сделаем)))
Я тоже не отказался бы посмотреть. Думаю, данная информация будет многим полезна.
Видимо ждать придётся всё-таки три года.
Вот материал очень близкий по теме [Видеоурок] Распаковка сжатой графики на примере игры Herzog Zwei. (http://pscd.ru/forum/index.php?/topic/417-videourok-raspakovka-szhatoi-grafiki-na-primer/)
Нашёл интересную программу на old-games. Анализ недокументированных растровых форматов с алгоритмами RLE сжатия.
http://www.old-games.ru/forum/threads/analiz-nedokumentirovannyx-rastrovyx-formatov-s-algoritmami-rle-szhatija.46595/
А меня интересует сжатие в играх Кодемастерс. Его вообще осилить можно, нет?..
Цитата: lancuster от 11 января 2016, 13:43А меня интересует сжатие в играх Кодемастерс. Его вообще осилить можно, нет?..
Ты не про это Пакер-анпакер IMP (http://pscd.ru/forum/index.php?/topic/118-paker-anpaker-imp/)?
Цитата: lancuster от 11 января 2016, 13:43А меня интересует сжатие в играх Кодемастерс. Его вообще осилить можно, нет?..
Можно. Уже один чел на забугорном форуме на его основе написал свой вариант сжатия, который немного улучшает степень сжатия.
Я тоже как-то переписывал его на дельфи. Но я только компрессор написал, а потом забросил.