User Tag List

Страница 57 из 71 ПерваяПервая ... 535455565758596061 ... ПоследняяПоследняя
Показано с 561 по 570 из 703

Тема: Новый графический режим для игр

  1. #561

    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,928
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    124
    Поблагодарили
    44 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zst Посмотреть сообщение
    Я предлагаю такую аппаратную палитру отображения для стандартных цветов с учетом прозрачного:
    Да черт его знает как правильнее... Надо подумать. Основной как бы посыл - при переключении в такой режим не должно быть необходимости сразу перепахивать всю графику.

  2. #562

    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    67
    Поблагодарили
    52 сообщений
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от zx_ Посмотреть сообщение
    использовать кеш 16 кб статики для памяти кода цвета вот, по такому принципу http://www.spetsialist-mx.ru/index23.html
    В Метеоре применяется почти такой же способ формирования цвета, как в контроллере цвета Специалиста, только разрешение экрана остается 256х192 для совместимости со старыми играми:
    КОНТРОЛЛЕР ЦВЕТА ДЛЯ ПК "СПЕЦИАЛИСТ_МХ" В состав компьютера был введён контроллер цвета, допускающий 16 цветов на точку при разрешении 384 х 256 точек и имеющий своё собственное ОЗУ. Появилась возможность создавать "цветные" программы.
    Основным отличием данной версии от предыдущих является наличие собственного порта цвета, реализованного на регистрах D1, D2. Это существенно облегчило программную поддержку контроллера цвета. Код цвета записанный в контроллер постоянно хранится в нём. При записи информации в экранную область памяти, код цвета из регистров порта параллельно записываются в ОЗУ цвета на элементах D3...D10. При отображении информации на экране монитора, одновременно с извлечением из видео ОЗУ байта посылки (8 горизонтальных точек), из ОЗУ цвета извлекается код цвета и фиксируется в регистре D12. Далее, при выводе битов полок видеоизображения на экран, код цвета записывается в регистры D13, D14.
    Отдельное ОЗУ в видеокарте Метеор. В режиме COLOR2 в качестве порта цвета используется переменная attr. Режим экрана с линейной адресацией также похож на адресацию Специалиста. При увеличении младшего адреса с 0 до 191 экран заполняется вертикальными столбиками из горизонтальных байтов. Для перехода к следующему столбику надо увеличить адрес старшего байта.

    Если бы Синклер не добавил в атрибут бит FLASH, то у нас тоже было бы по 16 цветов для PAPER и INK, как в Специалисте. Но видимо, не подумали об этом тогда. А сейчас уже ничего не изменить - игры написаны под стандартный байт атрибута. Но в Метеоре мы можем использовать режим COLOR2P, где PAPER и INK круче, чем в Специалисте, по 8 бит на цвет !



    ---------- Post added at 06:20 ---------- Previous post was at 06:00 ----------

    Цитата Сообщение от Nesser Посмотреть сообщение
    Так и где всё таки хранить палитры? На диске? И подгружать их с диска в видеокарту использую cpu ? А как тогда переделывать старые игры? 7 кБ игра и 24 кБ палитры?
    Не слишком ли навороченная карта для вывода 2-х цветного спрайта ?
    После RESETа все цвета стандартные, используются аппаратные палитры для совместимости. Для устранения клешинга атрибутов палитры загружать не надо. Если в игре нужно использовать свою палитру - ее можно загрузить в загрузчике. Естественно все данные игры лежат на диске и их в начале игры загружают в ОЗУ, только палитры в ОЗУ видеокарты. Палитра не занимает ОЗУ компьютера - она в ОЗУ видеокарты Метеор.

    ---------- Post added at 06:25 ---------- Previous post was at 06:20 ----------

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    Да черт его знает как правильнее... Надо подумать. Основной как бы посыл - при переключении в такой режим не должно быть необходимости сразу перепахивать всю графику.
    В Спектуме 15 цветов из 16 возможных. Два одинаковых цвета 0 и 8. Видеокарта при записи в память слоя цвет 0 преобразовывает в 8. То есть получаются цвета 1-15. На мониторе при этом все цвета останутся стандартными.

    ---------- Post added at 06:40 ---------- Previous post was at 06:25 ----------

    В режиме COLOR2P видеокарта Метеор получает байт, который Z80 записывает в область пикселов экрана. Если бит 0, то в ОЗУ видекарты записывается байт цвета для 0 бита, если 1 - записывется байт цвета для 1 бита. Цвета берутся из палитры для рисования с номером в переменной pl2. Один байт для цвета бита 0, другой для цвета бита 1. Это позволит перекрашивать игры в момент рисования на экран в требуемые цвета. Можно использовать одну палитру, постоянно меняя два байта для выбора цвета или в загрузчике игры загрузить несколько палитр, а в игре выбирать номер соответствующей палитры.[COLOR="Silver"]
    Последний раз редактировалось zx-kit; 11.09.2015 в 04:36.
    "L-256"

  3. #563
    zx_
    Гость

    По умолчанию

    у Вектора еще была (есть) быстрая графика
    http://emu80.org/dev/dev_v.html

    в копилку идей, тс
    схемотехнику при медленном проце

  4. #564

    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    67
    Поблагодарили
    52 сообщений
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от zx_ Посмотреть сообщение
    у Вектора еще была (есть) быстрая графика
    http://emu80.org/dev/dev_v.html

    в копилку идей, тс
    схемотехнику при медленном проце
    Спасибо, но в Векторе режимы не имеют особых преимуществ перед режимами Метеора:
    В БПЭВМ "Вектор-06Ц" используется общая оперативная память для микропроцессора и контроллера графического дисплея объемом 64Кбайта. Объем экранного ОЗУ, при числе адресуемых точек изображения 256х256 и 16-и цветах, равен 32Кбайт.
    Метеор не занимает основную память.
    Для удобства описания экрана он делится на 4-е плоскости.
    Таблица плоскостей экранного ОЗУ :
    ¦ Адресное ¦ Номер ¦
    ¦ пространство ¦ плоскости ¦
    ¦ E000-FFFF ¦ 0 ¦
    ¦ C000-DFFF ¦ 1 ¦
    ¦ A000-BFFF ¦ 2 ¦
    ¦ 8000-9FFF ¦ 3 ¦
    В Метеоре 8 дополнительных слоев и у всех одинаковые адреса пикселей c 0000 или 4000.
    Каждый байт плоскости соответствует сразу 8-и точкам, расположенным рядом на одной горизонтальной линии. Причем старший бит соответствует самой левой точке.
    В Метеоре также.
    Вся плоскость графического экрана состоит из 8-и точечных черточек. Самому младшему адресу "черточки" соответствует левая нижняя черточка. Следующая черточка расположена над ней и т.д. до самого верха (8000H-80FFH). Черточка с адресом 8100Н геометрически расположена правее черточки с адресом 8000Н. Адрес самой верхней правой черточки в этой плоскости - 9FFFH.
    В Вектрое байты идут снизу-вверх. В Метеоре в линейном режиме L=0 - это верхний байт в столбике, L=191 - это нижний байт. Также как в Специалисте.
    каждой геометрической точке экрана соответствует по одному биту в каждой из 4-х плоскостей. Эти четыре бита и определяют номер цвета 0-15
    В Метеоре также - от 1 до 4 битов на точку.
    аппаратная поддержка вертикального сдвига отображаемой информации
    А вот над этим надо подумать. Как в Метеор на второй ступени расширения графических возможностей добавить аппаратный скроллинг.
    Последний раз редактировалось zx-kit; 12.09.2015 в 07:11.
    "L-256"

  5. #565

    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    67
    Поблагодарили
    52 сообщений
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    256 точек по-горизонтали это 32 столбика байтов с номерами 0-31 в старшем байте. Чтобы создать иллюзию сдвига экрана надо задавать смещение от 0 до 7. При 0 - смещения нет.

    Скроллинг влево.
    При смещении 1 бит D7 в левом байте не виден, зато появляется бит D7 в байте из столбика 32. Перед сдвигом фона влево надо заполнить дополнительный столбец 32 тайлами фона.

    Скроллинг вправо.
    Также предварительно заполняем тайлами 32 дополнительный столбец экрана.

    Давайте, думать как сдвигать и заполнять экран, если смещение больше 7.
    Последний раз редактировалось zx-kit; 12.09.2015 в 09:35.
    "L-256"

  6. #566

    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,928
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    124
    Поблагодарили
    44 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да и не надо двигать больше, чем на 8 пикселей за раз. Другое дело, что в расширенной адресации для дополнительного столбца место есть, а вот в стандартном режиме дополнительный столбец надо класть в атрибуты, пострадает графика стандартного слоя. Олсо сдвиги вверх и вниз тоже нужны. Предлагается двигать слои отдельно (например, завести байтовую переменную, включенные биты которой говорят какие слои сдвинутся следующей командой. Еще хочется циклический сдвиг - это позволит выделить слой под спрайт, вывести его один раз и двигать по экрану аппаратным скроллингом.

  7. #567

    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    67
    Поблагодарили
    52 сообщений
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    Да и не надо двигать больше, чем на 8 пикселей за раз. Другое дело, что в расширенной адресации для дополнительного столбца место есть, а вот в стандартном режиме дополнительный столбец надо класть в атрибуты, пострадает графика стандартного слоя. Олсо сдвиги вверх и вниз тоже нужны. Предлагается двигать слои отдельно (например, завести байтовую переменную, включенные биты которой говорят какие слои сдвинутся следующей командой. Еще хочется циклический сдвиг - это позволит выделить слой под спрайт, вывести его один раз и двигать по экрану аппаратным скроллингом.
    По-вертикали понятно тоже надо, там тоже есть запас 16 точек (при линейной адресации с адреса 0). Стандартный экран сдвигаться не будет. Если надо сдвиг подпрограмму рисования фона надо будет преобразовать в режим цвета COLOR2 и линейную адресацию.

    Видеокарта будет сдвигать текущий слой. Надо графические переменные типа направление сдвига слоя shift_direct (LEFT, RIGHT, UP, DOWN), величину сдвига shift_value (1-8). Про циклический сдвиг не понятно. Может достаточно за 1 кадр сдвигать на 1-8 точек ?
    Последний раз редактировалось zx-kit; 12.09.2015 в 10:10.
    "L-256"

  8. #568

    Регистрация
    02.11.2007
    Адрес
    г. Краснодар
    Сообщений
    293
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я как представлю каким образом придётся переделывать к примеру Soldier of Fortune то что то аж голова болеть начинает.
    Весь блок отображения надо менять ПОЛНОСТЬЮ, он однозначно будет увеличен в размере, как минимум раза в 2-3, время выполнения соответствующее. Ко всем спрайтам придётся дорисовывать цветовую маску которая в 2-3 раза больше самого спрайта, принцип хранения спрайтов естественно надо будет менять, размер будет увеличен как минимум в 3 раза. Безостановочный рекодинг цветов из байтового представления в битовое убьёт процессор на первой же трети экрана.
    Не совсем понятен в какой части карты здесь идёт разгрузка процессора?

    ---------- Post added at 11:53 ---------- Previous post was at 11:50 ----------

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

    ---------- Post added at 12:30 ---------- Previous post was at 11:53 ----------

    Эммм, а если вдруг потом загорится увеличить возможное разрешение, то я что то не понимаю как это предусмотреть программно без переделки части отображения, формат хранения пикселей очень неудачен для разрешения больше 256, это моё мнение, не берите в голову

  9. #569

    Регистрация
    11.04.2009
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,603
    Записей в дневнике
    15
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    67
    Поблагодарили
    52 сообщений
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Nesser Посмотреть сообщение
    Я как представлю каким образом придётся переделывать к примеру Soldier of Fortune то что то аж голова болеть начинает.
    Весь блок отображения надо менять ПОЛНОСТЬЮ, он однозначно будет увеличен в размере, как минимум раза в 2-3, время выполнения соответствующее. Ко всем спрайтам придётся дорисовывать цветовую маску которая в 2-3 раза больше самого спрайта, принцип хранения спрайтов естественно надо будет менять, размер будет увеличен как минимум в 3 раза.
    Если в игре нет масок у спрайтов - значит в ней нет и клешинга.
    Безостановочный рекодинг цветов из байтового представления в битовое убьёт процессор на первой же трети экрана.
    Не совсем понятен в какой части карты здесь идёт разгрузка процессора?
    Нет никагого преобразования байтов в биты. Этим занимается карта. Процессор пишет байтами. Про причины ускорения и разгрузки процессора есть ссылка в 1 посту.
    Кстати, мне уже кажется что сам программный код управляющий этой карточкой будет на несколько килобайт, может как нибудь подменяющееся пзу с программным кодом? а то пихать в каждую игру драйвер как то не айс
    Пзу убрать нельзя - оно нужно для старых игр. Да и что туда писать - какие драйвера ?


    ---------- Post added at 12:30 ---------- Previous post was at 11:53 ----------

    Эммм, а если вдруг потом загорится увеличить возможное разрешение, то я что то не понимаю как это предусмотреть программно без переделки части отображения, формат хранения пикселей очень неудачен для разрешения больше 256, это моё мнение, не берите в голову
    Про линейную адресацию экрана есть ссылка в 1 посту.
    "L-256"

  10. #570

    Регистрация
    02.11.2007
    Адрес
    г. Краснодар
    Сообщений
    293
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Непонятные для меня моменты:

    Если карта успевает отображать только 5 слоёв с прозрачностью, то какой смысл в 8 слоях?
    Что подразумевается под прозрачностью, просто отсутствие пикселя на данном плане и оставленный пиксель с предыдущего плана или же настоящая прозрачность - цвет пикселя на данном плане интерполированный с цветами пикселей предыдущих планов

    при переделке игре надо оставлять стандартный вывод в 16384 и добавлять вывод цветов в пзу или полностью делать заново и всё выводить в пзу? если по 1 варианту так это явное увеличение выполнения, а если по 2-му то какой тогда смысл оставлять такую "неудобную" работу с пикселями если всё равно придётся всё перелопачивать
    скроллинг экрана надо будет делать по принципу 15 летней давности аля денди? мож у кого посвежей идея есть?

    ---------- Post added at 14:03 ---------- Previous post was at 13:59 ----------

    ; hl - адрес символа
    ld de, x * 256 + y * 8
    dup 8
    ldi
    dec e
    ldi
    edup

    я не понимаю как мне вывести спрайт в координаты x=243, y=179

Страница 57 из 71 ПерваяПервая ... 535455565758596061 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 18
    Последнее: 11.04.2021, 10:54
  2. графический редактор
    от yur в разделе Вектор
    Ответов: 1
    Последнее: 08.11.2012, 13:01
  3. графический режим на Атари
    от goblinish в разделе Atari
    Ответов: 3
    Последнее: 06.01.2012, 11:19
  4. графический софт для 48 К
    от goglus в разделе Софт
    Ответов: 6
    Последнее: 02.08.2006, 15:33

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •