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


Фотография

Хранение сжатой графики SMS (Sega Master System)

Хранение сжатой графики SMS Sega Master System Сжатая графика Ромхакинг

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

#1 SPOT

SPOT

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

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

Отправлено 30 Ноябрь 2016 - 11:25

Хранение сжатой графики SMS

В этой статье я хочу рассмотреть один из примеров сжатия графики в играх. В частности, мы будем рассматривать игру Double Hawk для Sega Master System (SMS).

 

Так же будет полезно ознакомится со статьёй «SMS/GG (Метод хранение несжатой графики в играх для SMS/GG)».

 

Метод хранения схож с методом описанном в статье «Хранение сжатой графики 1BBP».

 

post-95-0-87249200-1480497695.png

В игре много пожатой графики, мы же будем рассматривать надпись Mission.

 

post-95-0-06756300-1480497696.png

Так называемый архив со сжатой графика хранится в роме (игре) с $CCAD по $D0BE.

 

post-95-0-22001300-1480497696.png

Первые два байта 60 01 эта что-то вроде размера архива. Переворачиваем значение и получаем 01 60. В переводи в десятичные это 352. Это значение сколько пикселей по 8 мы запишем в видеопамять консоли. Проще говоря «размер архива».

 

Начнём рассматривать по порядку.

 

post-95-0-36121100-1480497696.png

Байт 01 это число сколько графических дынных будет до следующего «служебного байта».

 

post-95-0-51556000-1480497696.png

post-95-0-68345300-1480497695.png

В нашем случае мы считываем одно значение FF 00 00 00 равное 4 байтам.

 

post-95-0-01369000-1480498044.png

Далее идёт «служебный байт» 81, который указывает на количество повторений.

 

post-95-0-20154500-1480498044.png

post-95-0-50393600-1480497695.png

В нашем случае 3 повторения значения 47 B8 00 00.

 

То есть 0x81 – 0x7E = 3

 

post-95-0-37873900-1480498162.png

Для наглядности

 

Прикрепленные изображения

  • Double Hawk M 2.png
  • Double Hawk Mission ff000000.png
  • Double Hawk Mission.png
  • p1.png
  • p2.png
  • p3.png
  • p4.png
  • p5.png
  • p6.png
  • p7.png

  • 5

#2 PSXDev

PSXDev

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

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

Отправлено 30 Ноябрь 2016 - 11:41

Большое дело делаешь, ведь раньше так подробно никто это не расписывал и не объяснял.

Надеюсь, благодаря вашим усилиям появится ещё больше хороших ромхакеров, а с ними и новых качественных переводов игр.

 

 

То есть 0x81 – 0x7E = 3

P.S. Откуда взялась 0x7E?


  • 0

#3 SPOT

SPOT

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

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

Отправлено 30 Ноябрь 2016 - 11:50

P.S. Откуда взялась 0x7E?

 

«Служебный байт» делится на два типа. Один считывает значения данных подряд, другой повторяет.

От 01 до 7E это количество которое будет считываться подряд.

От 7F до FF – количество повторов.


  • 3





Темы с аналогичным тегами Хранение сжатой графики, SMS, Sega Master System, Сжатая графика, Ромхакинг

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

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

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