Хранение сжатой графики SMS
В этой статье я хочу рассмотреть один из примеров сжатия графики в играх. В частности, мы будем рассматривать игру Double Hawk для Sega Master System (SMS).
Так же будет полезно ознакомится со статьёй «SMS/GG (Метод хранение несжатой графики в играх для SMS/GG)».
Метод хранения схож с методом описанном в статье «Хранение сжатой графики 1BBP».
В игре много пожатой графики, мы же будем рассматривать надпись Mission.
Так называемый архив со сжатой графика хранится в роме (игре) с $CCAD по $D0BE.
Первые два байта 60 01 эта что-то вроде размера архива. Переворачиваем значение и получаем 01 60. В переводи в десятичные это 352. Это значение сколько пикселей по 8 мы запишем в видеопамять консоли. Проще говоря «размер архива».
Начнём рассматривать по порядку.
Байт 01 это число сколько графических дынных будет до следующего «служебного байта».
В нашем случае мы считываем одно значение FF 00 00 00 равное 4 байтам.
Далее идёт «служебный байт» 81, который указывает на количество повторений.
В нашем случае 3 повторения значения 47 B8 00 00.
То есть 0x81 – 0x7E = 3
Для наглядности