Форум PSCD.ru

Игровые приставки и Эмуляция => Ромхакинг и программирование => Уроки / Документация => Тема начата: SPOT от 05 декабря 2013, 15:16

Название: Sega MegaDrive палитра
Отправлено: SPOT от 05 декабря 2013, 15:16
Решил для себя разобрать, как же устроена палитра в SMD играх. Объясню можно сказать на пальцах, так что бы всем было понятно. Данные знания можно будет применить в ромхакинге (romhacking) или при создании своей игры для Sega MegaDrive.
Умных слов говорить не буду, так как сам их не знаю :) .
Вы запросто сможете отыскать нужную вам палитру в роме и заменить её на созданную вами.
Даже не знаю с чего и как начать, так что строго не судите, если что-то будет не так или непонятно.
Палитра приставки состоит всего из 512 цветов. Для редактирования палитры нам понадобится Hex-редактор и стандартный Paint.
 
(http://pscd.ru/forum/uploads/monthly_12_2013/post-95-0-23101700-1386249486.jpg)
Допустим, мы хотим вставить какой-то цвет в игру, для этого нам нужно знать 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.
 
(http://pscd.ru/forum/uploads/monthly_12_2013/post-95-0-06680100-1386249485.png)
В Хекс редактор данное значение стоит записать следующим образом:
 
00 8F
 
То есть фактически перевернуть число и записать так BGR (0BGR).
 
(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)
Название: Re: Sega MegaDrive палитра
Отправлено: Diablo от 06 февраля 2014, 14:14
Суперски всё разжевали, даже я понял. Вот ещё одна статья про политру, но не обучающего характера. Так скорее просто чьи-то размышления. Палитровые эффекты в видеоиграх 80-90ых. (http://pscd.ru/info/2238-palitrovye-effekty-v-videoigrah-80-90yh.html)
Название: Re: Sega MegaDrive палитра
Отправлено: Mefistotel от 18 марта 2015, 02:00
Цитировать 
 
Суперски всё разжевали, даже я понял. Вот ещё одна статья про политру, 
Поллитра? :)
Название: Re: Sega MegaDrive палитра
Отправлено: SPOT от 18 марта 2015, 11:44
Цитата: Mefistotel от 18 марта 2015, 02:00 

Цитировать 
 
Суперски всё разжевали, даже я понял. Вот ещё одна статья про политру, 
Поллитра? :)
 
Оговорка (ошибка) по Фрейду :)
Название: Re: Sega MegaDrive палитра
Отправлено: admin от 04 августа 2017, 21:35
Палитра (цвета) Sega MegaDrive / Genesis формируется совершенно по другой "формуле / схеме"
Не буду вдаваться в подробности и говорить о различных режимах (Normal, Hilight, Shadow), будем рассматривать обычный режим.
 
Таблица выглядит примерно так:

Расчётная формула:
R или G или B = 255/7 * (MD / 2)
Где MD значение от 0 до E.
 
Пример
 
255/7 * (0xA / 2) = 182,1428... что вполне можно округлить до 182
Название: Re: Sega MegaDrive палитра
Отправлено: admin от 07 августа 2017, 22:56
(http://pscd.ru/forum/uploads/monthly_08_2017/post-1-0-65818900-1502135557.png)
Палитра Sega MegaDrive / Genesis