Решил для себя разобрать, как же устроена палитра в SMD играх. Объясню можно сказать на пальцах, так что бы всем было понятно. Данные знания можно будет применить в ромхакинге (romhacking) или при создании своей игры для Sega MegaDrive.
Умных слов говорить не буду, так как сам их не знаю .
Вы запросто сможете отыскать нужную вам палитру в роме и заменить её на созданную вами.
Даже не знаю с чего и как начать, так что строго не судите, если что-то будет не так или непонятно.
Палитра приставки состоит всего из 512 цветов. Для редактирования палитры нам понадобится Hex-редактор и стандартный Paint.
Допустим, мы хотим вставить какой-то цвет в игру, для этого нам нужно знать RGB (Красный, Зелёный, Синий) этого цвета. Допустим это рыжий (оранжевый) со значениями:
R (Красный) 255
G (Зелёный) 130
B (Синий) 0
В сеге палитра хранится в 12 битном значение, но занимает два байта (16 бит).
Таблица для конвертации РГБ (КЗС) / RGB значений в быйты понятные SMD.
240 (F)
224 (E)
208 (D)
192 (C)
176 (B)
160 (A)
144 (9)
128 (8)
112 (7)
96 (6)
80 (5)
64 (4)
48 (3)
32 (2)
16 (1)
0 (0)
Таким образом, получается, что значению 255 ничего не соответствует, собственно говоря, как и значению 130. Поэтому мы берём самые близкие значения: F и 8
Таким образом, после конвертации это будет выглядеть так:
R (Красный) F
G (Зелёный) 8
B (Синий) 0
Но постойте, это ещё не всё. Теперь изменения нужно внести в ром, или в тот файл, в котором храниться палитра формата SMD.
В Хекс редактор данное значение стоит записать следующим образом:
00 8F
То есть фактически перевернуть число и записать так BGR (0BGR).
Надеюсь, объяснил более-менее понятно, может иллюстрация более наглядно объяснит. Не стесняйтесь, задавайте вопросы, попытаюсь на них ответить.
Иллюстрация, поясняющая визуально все действия по изменению палитры в SMD: