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

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Hard Аппаратные спрайты на IBM PC, где они?

Тема в разделе "Hard & Soft", создана пользователем Взрывастер, 23 июн 2020.

  1. Взрывастер

    Взрывастер

    Регистрация:
    12 апр 2019
    Сообщения:
    13
    Почему в видеокартах CGA, EGA, VGA не добавили режима поддержки аппаратных спрайтов?
    Я так понимаю, что, IBM PC создавался как офисная машина, и режим со спрайтами там просто не нужен.
    Но IBM пыталось создать компьютер для дома! IBM PCjr, юниор, или джуниор, 3-х голосный звук, немного улучшенный CGA, упрощённая конструкция, а значит более дешёвая, но это был полный провал, в этой машине, не было не только аппаратных спрайтов, и сама реализация оказалась неудачная.
    Потом в видеокартах типа SVGA были добавлены аппаратные функции по перемещению экранных областей, что можно считать спрайтами. Но они небыли стандартизированы как VGA, у разных производителей были реализованы по разному, и их могло не быть. По этому требовали драйверов, и слоя абстракции в виде API, таких как OpenGL, DirectX и др. Но это уже более современная эпоха, середина 90-х, когда появились и 3д ускорители, Windows 95. И прямое аппаратное программирования стало не возможно. Инструкции OUT, IN стали привилегированные(начиная с 386), и в защищенном режиме, могут выполнятся только на уровне ринг 0, т.е. драйвера.

    Как я бы их реализовал, если бы работал в IBM в то время.
    Я не особо специалист в железе, но все же начнём.
    Режим с аппаратными спрайтами создан на основе цветного текстового режима 40 на 30 символов, символ это тайл, или tile, т.е. плитка. Структура такая же как и у текстового режима, первый байт - номер тайлы, следующий байт - атрибут тайлы, в атрибуте тайла можно задать приоритет отрисовки поверх спрайтов, надо для кустов. В отличии от текстового режима, на один пиксель используется не один, а 4 бита, а значит 15 цветов, нулевой цвет - цвет прозрачности. Далее сами спрайты, их должно быть 256, размер может быть от 8 или 4 и до скажем 64, размер кратен 4 или 8. В атрибутах так же можно задать приоритет над приоритетными тайлами, это надо надписей(например GAME OVER), взрывов. Вот как то так.
     
  2.  
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление