Решил для себя разобрать,
как же устроена палитра в SMD играх. Объясню можно сказать на пальцах, так что бы всем было понятно. Данные знания можно будет применить в
ромхакинге (
romhacking) или
при создании своей игры для Sega MegaDrive.
Умных слов говорить не буду, так как сам их не знаю :) .
Вы запросто сможете отыскать нужную вам палитру в роме и заменить её на созданную вами.
Даже не знаю с чего и как начать, так что строго не судите, если что-то будет не так или непонятно.
Палитра приставки состоит всего из
512 цветов. Для редактирования палитры нам понадобится
Hex-редактор и стандартный
Paint.
(http://pscd.ru/forum/uploads/monthly_12_2013/post-95-0-23101700-1386249486.jpg)
Допустим, мы хотим вставить какой-то цвет в игру, для этого нам нужно знать
RGB (Красный, Зелёный, Синий) этого цвета. Допустим это рыжий (оранжевый) со значениями:
R (Красный)
255G (Зелёный)
130B (Синий)
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 (Красный)
FG (Зелёный)
8B (Синий)
0 Но постойте, это ещё не всё. Теперь изменения нужно внести в ром, или в тот файл, в котором храниться
палитра формата SMD.
(http://pscd.ru/forum/uploads/monthly_12_2013/post-95-0-06680100-1386249485.png)
В
Хекс редактор данное значение стоит записать следующим образом:
00 8F То есть фактически перевернуть число и записать так
BGR (0
BGR).
(http://pscd.ru/forum/uploads/monthly_12_2013/post-95-0-48679600-1386249484.png)
Надеюсь, объяснил более-менее понятно, может иллюстрация более наглядно объяснит. Не стесняйтесь, задавайте вопросы, попытаюсь на них ответить.
Иллюстрация, поясняющая визуально все действия по изменению палитры в SMD:
(http://pscd.ru/forum/uploads/monthly_12_2013/post-95-0-55071000-1386249485.jpg)
Суперски всё разжевали, даже я понял. Вот ещё одна статья про политру, но не обучающего характера. Так скорее просто чьи-то размышления. Палитровые эффекты в видеоиграх 80-90ых. (http://pscd.ru/info/2238-palitrovye-effekty-v-videoigrah-80-90yh.html)
Цитата: Mefistotel от 18 марта 2015, 02:00
Цитировать
Суперски всё разжевали, даже я понял. Вот ещё одна статья про политру,
Поллитра? :)
Оговорка (ошибка) по Фрейду :)
Палитра (цвета) Sega MegaDrive / Genesis формируется совершенно по другой "формуле / схеме"
Не буду вдаваться в подробности и говорить о различных режимах (
Normal, Hilight, Shadow), будем рассматривать обычный режим.
Таблица выглядит примерно так:
- 0/1 = 0
- 2/3 = 36
- 4/5 = 72
- 6/7 = 109
- 8/9 = 145
- A/B = 182
- C/D = 218
- E/F = 255
Расчётная формула:
R или G или B = 255/7 * (MD / 2)
Где
MD значение от 0 до E.
Пример
255/7 * (
0xA / 2) = 182,1428... что вполне можно округлить до 182
(http://pscd.ru/forum/uploads/monthly_08_2017/post-1-0-65818900-1502135557.png)
Палитра Sega MegaDrive / Genesis