Перейти к содержимому


Фотография

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 21

#1 PSXDev

PSXDev

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 135 сообщений

Отправлено 13 Март 2015 - 12:34

В ваших переводах часто можно встретить, что вы используете Пакер / Анпакер графики. Проще говоря, вам приходится работать со сжатой графикой. Интересует, как вы пишите эти распаковщики / запаковщики графики?

Например:

- Находите пожатую графику.

- Разбираетесь в её устройстве (Как? Используя дизассемблер или просто в Hex-редакторе).  

- Как пишется программа.

Если вас не затруднит, уделите пару минут и ответьте на эти вопросы.

 

И ещё, а для денди проще написать распаковщик графики, чем для сеги?


  • 0

#2 Mefistotel

Mefistotel

    Продвинутый пользователь

  • Журналисты
  • PipPipPip
  • 148 сообщений
  • ГородМагадан

Отправлено 14 Март 2015 - 13:25

Почитай документацию про сжатие в играх. Может быть, станет немного понятнее.

http://www.shedevr.o...iewtopic.php?t=3590&start=0

Изначально разбирается алгоритм распаковки сжатых данных, а потом запаковки. Разбирается на ассемблере процессора (язык программирования низкого уровня), на котором работала консоль (к примеру, для NES это MOS6502). В этом помогают эмуляторы, имеющие дебаггеры (средства для отладки игры). Дебаггер или IDA отображают машинный код в понятном виде.  После того как алгоритм сжатия разобран, он переписывается на языке высокого уровня (дельфи, си). Незапакованные данные даже без написания утилиты можно запросто увидеть в дампах видеопамяти или сохранения.

 

На NES в 90 % случаях используется примитивный RLE (Run-length encoding). В сети куча исходных кодов для кодеров под NES игры. В остальных 10 % используется Хаффман (Huffman).

 

На SEGA чаще всего встречается куча разновидностей алгоритма Лемпеля-Зива (LZ).

Необходимо понять, что для взлома сжатых данных, необходимо обладать неплохими навыками программирования.

Что, к сожалению, я и сам не освоил в своё время.


  • 0

#3 PSXDev

PSXDev

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 135 сообщений

Отправлено 14 Март 2015 - 14:16

Mefistotel, можно узнать название игры для NES с простым пожатием RLE? Что бы можно было поэкспериментировать.


  • 0

#4 Greengh0st

Greengh0st

    Продвинутый пользователь

  • Администраторы
  • 1 500 сообщений

Отправлено 14 Март 2015 - 15:16

Любые игры от KONAMI. Плюс пиратки.


  • 0

#5 PSXDev

PSXDev

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 135 сообщений

Отправлено 15 Март 2015 - 08:11

Любые игры от KONAMI. Плюс пиратки.

А поточнее можно, там где самая простая RLE.

Проверил контру, там вроде как, лого начинается с $012A10. Но там такое впечатление, что графика в перемешку идёт с тайловой картой.


  • 0

#6 Mefistotel

Mefistotel

    Продвинутый пользователь

  • Журналисты
  • PipPipPip
  • 148 сообщений
  • ГородМагадан

Отправлено 15 Март 2015 - 09:51

Какая ещё "самая простая RLE"? Ты ссылку читал на Шедевр, что  я дал или нет?

RLE - это алгоритм сжатия данных, и ОН на NES везде практически одинаковый.

Графику видно в любом тайловом редакторе, а тайловая карта - это "код", задающий порядок вывода этой графики,который чаще всего и жмётся RLE.

Вложил исходники для пакера/анпакера данных из игр Конами на НЕС. Чаще всего они жали тайловые карты титульников.

Прикрепленные файлы

  • Прикрепленный файл  source.rar   47,15К   153 Количество загрузок:

  • 0

#7 Greengh0st

Greengh0st

    Продвинутый пользователь

  • Администраторы
  • 1 500 сообщений

Отправлено 15 Март 2015 - 10:22

Ну в Балбесах вторых пожаты и сами тайлы для заставки или для примера игра Шакал, где всё пожато.


  • 0

#8 PSXDev

PSXDev

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 135 сообщений

Отправлено 15 Март 2015 - 10:48

Mefistotel, имел в виду не RLE+LZ77.

Greengh0st, спс гляну.


  • 0

#9 Greengh0st

Greengh0st

    Продвинутый пользователь

  • Администраторы
  • 1 500 сообщений

Отправлено 15 Март 2015 - 23:49

Из того что мы переводили, любой файтинг возьми пиратский все пожаты таким же способом, что и игры от конами. Типа морталов или стрит файтеров.


  • 0

#10 SPOT

SPOT

    Продвинутый пользователь

  • Журналисты
  • PipPipPip
  • 600 сообщений

Отправлено 18 Март 2015 - 11:43

Вот как хранится несжатая графика в NES играх.

Мне что-то сложно представить как её можно пожать в RLE. Хотя, можно сжать тайлы одного цвета.

Интересна тема, хотелось бы увидеть непосредственное сжатие графики в RLE на примере какой-то игры. То как этот кусок выглядит в hex-редакторе.


  • 0

#11 Mefistotel

Mefistotel

    Продвинутый пользователь

  • Журналисты
  • PipPipPip
  • 148 сообщений
  • ГородМагадан

Отправлено 18 Март 2015 - 23:44

Из так называемой графики, чаще всего жмут шрифты.Ну и тайлы титульника. К примеру, возьми игру ракетчик.
  • 0

#12 Greengh0st

Greengh0st

    Продвинутый пользователь

  • Администраторы
  • 1 500 сообщений

Отправлено 19 Март 2015 - 00:10

Мы помним про ракетчика))) принцип сжатия обычно очень прост идет байт-тайла который надо сжать и следующий байт количество этих самых тайлов типа 15 0a. 15 - это номер тайла, а 0а сколько раз он повторяется. Дальше я не вникал, но перед несжатыми файлами обычно идет байт начинающийся с 8... тут что-то с битами мне рассказывали, но я пропустил мимо ушей. Короче особо сложного ничего нет. Но для примера завтра выну кусок кода и прикреплю сюда для наглядности с пояснениями.


  • 0

#13 SPOT

SPOT

    Продвинутый пользователь

  • Журналисты
  • PipPipPip
  • 600 сообщений

Отправлено 23 Март 2015 - 11:26

 Но для примера завтра выну кусок кода и прикреплю сюда для наглядности с пояснениями.

Обещанного три года ждут. Но, всё же, хотелось бы побыстрее :) .


  • 0

#14 Greengh0st

Greengh0st

    Продвинутый пользователь

  • Администраторы
  • 1 500 сообщений

Отправлено 25 Март 2015 - 21:15

Извините народ, закрутился))) Сделаем)))


  • 0

#15 SPOT

SPOT

    Продвинутый пользователь

  • Журналисты
  • PipPipPip
  • 600 сообщений

Отправлено 04 Апрель 2015 - 14:52

Извините народ, закрутился))) Сделаем)))

Просто напомню о себе :)


  • 0

#16 PSXDev

PSXDev

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 135 сообщений

Отправлено 07 Апрель 2015 - 09:36

Извините народ, закрутился))) Сделаем)))

Я тоже не отказался бы посмотреть. Думаю, данная информация будет многим полезна.


  • 0

#17 zetper

zetper

    Новичок

  • Пользователи
  • Pip
  • 6 сообщений
  • ГородМосква

Отправлено 29 Август 2015 - 15:07

Видимо ждать придётся всё-таки три года.


  • 1

#18 admin

admin

    Администратор

  • Администраторы
  • 1 381 сообщений

Отправлено 15 Ноябрь 2015 - 08:31

Вот материал очень близкий по теме [Видеоурок] Распаковка сжатой графики на примере игры Herzog Zwei.


  • 1

#19 zetper

zetper

    Новичок

  • Пользователи
  • Pip
  • 6 сообщений
  • ГородМосква

Отправлено 04 Декабрь 2015 - 14:42

Нашёл интересную программу на  old-games. Анализ недокументированных растровых форматов с алгоритмами RLE сжатия.

http://www.old-games...szhatija.46595/


  • 0

#20 lancuster

lancuster

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 443 сообщений
  • ГородМурманск

Отправлено 11 Январь 2016 - 13:43

А меня интересует сжатие в играх Кодемастерс. Его вообще осилить можно, нет?..
  • 0

Мой канал на YouTube: https://www.youtube....studiolancuster

Канал на Twitch: https://www.twitch.t...reamerlancuster

Группа в ВК: https://vk.com/virtu...tudio_lancuster

 






Темы с аналогичным тегами распаковщик графики, распаковщик графики для Dendy, Пакер / Анпакер, Пакер, Анпакер, Dendy, запаковщики графики, распаковщики графики, Ромхакинг, Romhacking

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Рейтинг@Mail.ru Яндекс.Метрика