Amstrad CPC Colours - PullRequest
       4

Amstrad CPC Colours

6 голосов
/ 08 декабря 2011

В последнее время я копал аппаратные функции Amstrad CPC, и меня смущает информация о цветовой палитре.

Эта ссылка;

http://www.exotica.org.uk/mirrors/gfxzone/articles/cpc_graphics-article_01.html

говорит

Не все эти 27 возможных цветов могут использоваться на одном экране, максимально 16 цветов могут использоваться одновременно.

, что имеет смысл для меня, поскольку все 4-битные графические режимы ограниченына 2 ^ 4 = 16 цветов.Но ссылка на Википедию;

http://en.wikipedia.org/wiki/Amstrad_CPC

говорит

Переработанное видеооборудование позволяет использовать аппаратные спрайты и мягкую прокрутку с цветовой палитрой, расширенной с 17 изОт 27 до 32 из 4096 цветов

эта информация находится в разделе «Плюс», но, сравнивая старое оборудование с плюсом, она говорит «17 из 27», а не «16».

Другая ссылка;

http://cpcwiki.eu/index.php/Video_modes

Amstrad Plus отображает те же режимы, но, естественно, благодаря аппаратным спрайтам можно отображать еще 15 цветов.Это означает, что 32 цвета на экране без трюков (включая границу).

Итак, снова 32-15 = 17.

Я думаю, 17-й цвет может быть фоновым, но яне уверен в этом.Может ли кто-нибудь, кто кодировал на платформе Amstrad CPC, подтвердить это?

Также первая ссылка выше говорит

only 16 out of those 4096 colours can be used at the same time

для диапазона Plus, но другие говорят, что 32 вместо 16. Возможно, эта страница нерассчитывать цвета спрайтов и цвет фона.Я просто хотел быть уверен.

Ответы [ 6 ]

4 голосов
/ 18 декабря 2011

Я могу ответить на этот вопрос только приятными воспоминаниями, а не должным опытом программирования.Это был 464, который привел меня в программирование, но мои программы были очень, очень просты!

Я помню, что при программировании на бейсике 16 цветов были максимальными.Я не знаю, удалось ли чему-нибудь более хардкорному протянуть еще один.Ваша третья ссылка упоминает цвет границы как 17-й, я думаю, что это наиболее вероятное объяснение очевидного конфликта в спецификациях.

Теперь вы чувствуете себя старым.

3 голосов
/ 26 марта 2014

То, что все на самом деле сказали, 16 основных цветов (попробуйте INK x, y в Basic, где x = от 0 до 15 и y = от 0 до 26), плюс один цвет границы (введите BORDER z в Basic, где z = от 0 до 26 для границыцвет (большая область за пределами основной видеограммы, используется для вспышек в играх)).

В аппаратных спрайтах CPC + доступно 15 цветов, поскольку 1 цвет зарезервирован для прозрачного между спрайтом и фоновым gfx.Это делает 32, 16 цветов фона + 1 цвет рамки + 15 цветов спрайта.

Однако, поскольку вы можете изменить палитру любого из них в любое время во время восстановления экрана, типичный эффект для большинства компьютеров старой школы,у вас могут быть разные цветовые спрайты и фон, где каждая строка или часть строки изменяет палитру (для этого требуется большая синхронизация с лучом обратного хода, что немного проще сделать для каждой строки в CPC + с прерываниями IRQ строки).Таким образом, технически CPC может одновременно отображать все 27 цветов и плюс все 4096 цветов (см. Снимок экрана здесь, http://www.cpc -power.com/index.php? Page = detail & num = 8308 ,это всего лишь предварительный просмотр, и он выглядит некрасиво, но показывает, что возможно с ценой за клик плюс)

3 голосов
/ 27 октября 2012

FWIW, я только что натолкнулся на эту статью и предложение сегодня и почувствовал необходимость изменить его, чтобы уточнить его значение, которое совпадает с ответами всех остальных здесь.

Немного больше информации. Как намекнул Мэтью, CRTC КПК имеет бит, который определяет, должен ли он писать выделенный цвет границы. Это установлено, когда луч находится вне фактической графической области. Указанные размеры ограничены размером оперативной памяти, доступной для CPC для дисплея. По умолчанию это значение равно 16 КБ, но его можно изменить с помощью различных хитростей, как это видно в некоторых играх, и особенно во многих выпусках демосцены.

Кроме того, в данный момент я перехожу к тому, как реализовать рамку прокрутки в стиле Spectrum во время загрузки лент. Это делается путем изменения цвета границы всякий раз, когда изменяется полярность входного бита, и это достигается с помощью массива Gate, а не CRTC. Быстрые изменения границы таким образом, опять же, часто используются в демонстрациях для выполнения ранее «невозможных» вещей, чаще всего растеризованных линий и тому подобного.

1 голос
/ 30 января 2013

Amstrad CPC имеет 16 чернил от 0 до 15 , а границы доступны чернилами 16 .Для каждой краски можно выбрать цвет, выбранный в палитре 27 разных цветов. 17 цветов фактически присутствуют в списке 32 цветов , но некоторые цвета присутствуют два раза.

Итак, теоретически вы можете отобразить 17Максимум цветов на стандартном экране (конфигурация экрана при включенном аппарате):

  • 1 цвет для границы
  • 16 цветов для каждых 16 чернил экрана, когдавыбран режим 0

Конечно, на практике вы можете использовать 27 цветов на экране с растровыми приемами, изменяя цвет чернил: - более одного раза на VBL, для растров - один разза HBL, для растровых баров - более одного раза за HBL, для разделенных растров

Более подробные объяснения можно найти здесь: http://www.grimware.org/doku.php/documentations/devices/gatearray

1 голос
/ 01 февраля 2012

У меня был Amstrad CPC 6128 в те дни.Я могу подтвердить, что 17-й цвет был цветом границы.

1 голос
/ 19 декабря 2011

Статья в Википедии о растровых столбцах , в которой упоминается Амстрадская КПК, гласит:

Компьютеры эпохи 8 и 16 бит обычно не отображали или не могли отображать видеопамять по всему экрану, оставляя границы вокруг обычной области отображения. Графический чип обычно использовал фиксированную запись в таблице соответствия цветов (CLUT) для окраски этой области границы.

Это не доказательство, но, безусловно, подойдет 16 основных цветов плюс один для границы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...