Важная информация

User Tag List

Страница 22 из 71 ПерваяПервая ... 181920212223242526 ... ПоследняяПоследняя
Показано с 211 по 220 из 703

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

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

    По умолчанию

    Цитата Сообщение от MVV Посмотреть сообщение
    Для начала я бы сделал 24-разрядный базовый регистр указывающий на блок регистров карты в памяти, тогда будет возможность включать их по любому адресу конкретно в любой из страниц памяти, ну или кратно 256.
    Т.е. нужен видео порт карты IN/OUT n, доступный после её подключения. Чтение его даст информацию о наличии и состоянии карты, а запись включит блок регистров карты по указанному адресу в памяти в нужной нам странице.
    Подожди, давай пока не будем усложнять. Базовый адрес установим в фиксированное место. Понадобится - добавим выбор. Но порты занимать не надо. Давай пока 0, 3F или AF. Это не существенно.

    Можно было бы и порт занять, но сразу вопросы - какой ? не занят ли он ? не помешаем ли мы разработчикам будущего железа ?
    Я предложил использовать адреса буфера атрибутов, так как в новом режиме атрибуты не используются. Давайте выбирать.

    Я вот тут пересмотрел начало топика. Еще раз посмотрел твои картинки QuadSpeccy. Раз у нас режим VGA 640x480 60 Гц как основа всего - может быть добавить режим, когда в ОДНОЙ игре 4 окна, как у тебя на фотке и видео 4 РАЗНЫХ игры ? Это позволило бы без затирания основного динамического окна остальные окна использовать как вспомогательные, например, тексты, карты, выбор предметов и т.п. Как вам такая возможность ? То есть, кроме основного режима на весь экран добавить возможность отображать 4 экрана сразу.

    Тогда надо добавить адреса еще для трех экранов. Для динамического будет 2 номера. Это на будущее. Программист сможет выбрать расположение в памяти каждого экрана или не использовать эту возможность.
    Последний раз редактировалось zx-kit; 28.06.2015 в 19:51.
    "L-256"

  2. #211
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #212
    Super Moderator Аватар для Alex Rider
    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,910
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    89
    Поблагодарили
    31 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zst Посмотреть сообщение
    Подожди, давай пока не будем усложнять. Базовый адрес установим в фиксированное место. Понадобится - добавим выбор. Но порты занимать не надо. Давай пока 0, 3F или AF. Это не существенно.
    Ты никогда не угадаешь какой софт какие адреса как использует. Некоторые клоны умеют ставить ОЗУ в 0-ю банку, они тебе в карту такого понапишут... Опять же, никто не мешает софту (STS, например) рисовать все только в 1-й экран, а 0-й использовать как обычную память. Никто никогда не гарантирует, что софт не будет писать в твою память не то, что надо тебе. Так что карта должна уметь включаться и выключаться через порты. Ну и определяться тоже - не хорошо выпускать игру, которая не может при загрузке сказать, что ей нужно вот такое вот железо, и без него она работать не будет.

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

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    Ты никогда не угадаешь какой софт какие адреса как использует. Некоторые клоны умеют ставить ОЗУ в 0-ю банку, они тебе в карту такого понапишут... Опять же, никто не мешает софту (STS, например) рисовать все только в 1-й экран, а 0-й использовать как обычную память. Никто никогда не гарантирует, что софт не будет писать в твою память не то, что надо тебе. Так что карта должна уметь включаться и выключаться через порты. Ну и определяться тоже - не хорошо выпускать игру, которая не может при загрузке сказать, что ей нужно вот такое вот железо, и без него она работать не будет.
    Хорошо, давайте добавим порт для чтения состояния, готовности, выбора адреса и т.п.
    "L-256"

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

    По умолчанию

    Цитата Сообщение от MVV Посмотреть сообщение
    Это верно, но так как мы всё строим в песочнице, то порт можно взять практически любой из диапазона 0-65535, но это будет незаконно, поэтому на это нужно получит разрешение в "Стандартизация портов и сертификация", а это не безплатно. Нужно подать заявку на рассмотрение Black_Cat.
    PS. Это даже не штука.
    Да, он этим занимался. Может у него есть список свободных портов.
    А пока для отладки обойдемся без портов ? Или взять порт FF. Пока проект в FPGA - ничего не погорит.

    Я подумал, если тактовую FPGA и SDRAM сделать кратно тактовой точек VGA, может это нам упростит разработку.
    Последний раз редактировалось zx-kit; 28.06.2015 в 20:32.
    "L-256"

  6. #215
    Activist
    Регистрация
    21.07.2010
    Адрес
    Ukraine
    Сообщений
    276
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zst Посмотреть сообщение
    Да, он этим занимался. Может у него есть список свободных портов.
    А пока для отладки обойдемся без портов ?
    Нельзя, нужно дождаться ответа от Black_Cat. Спонсоров проекта нет, сейчас только ты да я, так-как порт по любому нужен, то придется скидываться на 1 (один) порт, очень надеюсь, что его будет достаточно, иначе просто не потянуть, очень дорогое хобби выйдет...
    Цитата Сообщение от zst Посмотреть сообщение
    А пока для отладки обойдемся без портов ? Или взять порт FF. Пока проект в FPGA - ничего не погорит.
    Пока проект в песочнице, то можно брать любой на выбор из свободных. Думаю тут никто возражать не будет.

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

    По умолчанию

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



    Имеется ввиду, что в каждом окне своя информация. Конечно не 3D.

    ---------- Post added at 23:15 ---------- Previous post was at 23:01 ----------

    При этом в динамическом окне у нас возможно изображение 320х240 точек. А на последней картинке динамическое окно 144х144 точек.
    Таким образом у нас экран как бы имеет разрешение 640х480 точек, а спрайты и затраты на отображение экрана не увеличиваются.

    Хотя, если пойти дальше, добавив еще один режим 640х480, но закрашивая динамическим изображением только часть экрана получим тоже самое, но границы статических частей будут произвольного размера, а не четверть экрана...
    Последний раз редактировалось zx-kit; 28.06.2015 в 21:26.
    "L-256"

  8. #217
    Master
    Регистрация
    15.02.2015
    Адрес
    г. Могилёв, Беларусь
    Сообщений
    837
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    99
    Поблагодарили
    66 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Новая видеокарта нужна обязательно. Разработку игр нужно упростить до предела. Мне после высокоуровнего программирования графики неохота мучиться со стандартным спектрумовским экраном( а его структура не из самых простых).
    Если у вас получится, напишу что-нибудь под эту железку!

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

    По умолчанию

    Цитата Сообщение от Smalovsky Посмотреть сообщение
    Новая видеокарта нужна обязательно. Разработку игр нужно упростить до предела. Мне после высокоуровнего программирования графики неохота мучиться со стандартным спектрумовским экраном( а его структура не из самых простых).
    Если у вас получится, напишу что-нибудь под эту железку!
    Хорошо, а я пока займусь написанием первого теста на ассемблере.

    На экране в режиме 320х240 будут изображены 10 горизонтальных полос высотой по 24 точки. Каждая полоса будет состоять из 64 прямоугольников шириной по 5 точек.

    Цвета полос такие:
    1. От черного до красного и от красного до белого.
    2. От черного до зеленого и от зеленого до белого.
    3. От черного до синего и от синего до белого.
    4. От черного до сиреневого и от сиреневого до белого.
    5. От черного до желтого и от желтого до белого.
    6. От черного до голубого и от голубого до белого.
    7. От черного до белого и от белого до черного.
    8-10. В центре красный, зеленый, синий соответственно. Налево и направо - постепенный переход в другой оттенок (сиреневый, желтый, голубой).

    Рисоваться все будет пока по точкам с помощью команды PLOT со смещением 0. Предварительно загружать координаты и цвет точки соответствующими командами, адреса которых приведены выше.

    Включение командой записи в порт FFFF старшего байта блока адресов видеокарты. Можно проверить наличие видеорежима/видеокарты чтением из порта FFFF. Должно читаться 0.
    Последний раз редактировалось zx-kit; 29.06.2015 в 10:59.
    "L-256"

  10. #219
    Activist
    Регистрация
    21.12.2005
    Адрес
    Kyiv/Ukraine
    Сообщений
    415
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zst Посмотреть сообщение
    Как насчет многооконного интерфейса в играх.
    Как-то надуманно, лишнее усложнения.
    Проще 640x480 сделать и нет проблем для программера.

    Цитата Сообщение от zst Посмотреть сообщение
    Хотя, если пойти дальше, добавив еще один режим 640х480
    Да, просто добавить 640x480, хотя конечно блиттер-у там будет побольше работы.
    (если частоты провисают - смело дропайте полосу для блитера, режимчик важнее, пусть даже помедленее)

    ---------- Post added at 12:59 ---------- Previous post was at 12:22 ----------

    Цитата Сообщение от zst Посмотреть сообщение
    Рисоваться все будет пока по точкам с помощью команды PLOT
    Линия конечно обязательно.
    (кружочки, прямоугольники - опционально)

    ---------- Post added at 13:07 ---------- Previous post was at 12:59 ----------

    Цитата Сообщение от zst Посмотреть сообщение
    ожно проверить наличие видеорежима/видеокарты чтением из порта FFFF. Должно читаться 0.
    Лучше чтоб строка (ноль в конце строки) читалась.
    Каждый IN читает след байт.
    типа "super video card ", 0

    Потом, откуда-то, нужно прочитать "версия прошивки FPGA" и "версия платы". Это уже в байтами читается, не строкой.


    Насчет инта:
    Кадровый инт генерить как обычно, не сдвигать никуда.
    Но, чтобы можно было карте задать номера линий, на этих линиях карта будет генерить строчный инт.
    Последний раз редактировалось Valen; 29.06.2015 в 14:17.
    V6Z80P - Back for Good

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

    По умолчанию

    Цитата Сообщение от Valen Посмотреть сообщение
    Да, просто добавить 640x480, хотя конечно блиттер-у там будет побольше работы.
    (если частоты провисают - смело дропайте полосу для блитера, режимчик важнее, пусть даже помедленее)
    Посмотрел картинки из игр на плоском мониторе с соотношением сторон 3х4 в WINDOWS в режиме 640х480@60Hz. Удвоенного размера (имитация размера точек в режимах 256х192 и 320х240) отлично, даже крупновато. Одинарного размера - тоже хорошо различимо. Если большую часть экрана занять статическими изображениями, параметрами, предметами и т.п., а действие будет происходить только на части экрана, то скорость может быть приемлемой.

    В режиме 640х480 только затраты времени на сканер выше, так как точки надо выводить в два раза чаще. Тут может помочь буфер VGA. Буфер имеет две границы MAX и MIN. Пока к памяти нет обращений от Z80 и блиттера заполнять буфер по максмуму по 8 точек зараз. Частоту тактов SDRAM сделать 100 или 125 МГц. Это кратно частоте точек VGA 25 МГц в режиме 640х480 или 12.5 МГц в режиме 320х240. Как только объем данных в буфере становится MIN - приостанавливается блиттер и производится чтение данных в буфер VGA, пока не заполнится до MAX. Естественно, Z80 имеет больший приоритет при доступе к SDRAM.
    Линия конечно обязательно.
    (кружочки, прямоугольники - опционально)
    Как только сделаем блиттер, перейдем к линиям. А точку сделать очень просто. Цвет мы записываем в регистр COLOR, координаты в регистры Y и X. А по координатам легко вычислить адрес точки на экране.
    Лучше чтоб строка (ноль в конце строки) читалась.
    Каждый IN читает след байт.
    типа "super video card ", 0
    Потом, откуда-то, нужно прочитать "версия прошивки FPGA" и "версия платы". Это уже в байтами читается, не строкой.
    Это конечно интересно, но нам важно не название карты, а наличие режима. Он должен быть на всех видеокартах с разным названием. Нет режима - название уже не важно. Хотя потом, может быть, добавим.
    Насчет инта:
    Кадровый инт генерить как обычно, не сдвигать никуда.
    Но, чтобы можно было карте задать номера линий, на этих линиях карта будет генерить строчный инт.
    В стандартном режиме INT использовался для начала построения изображения в ОЗУ экрана, запуска очередной ноты в музыке, опроса клавиатуры. Самое важное - определить время, когда можно начать рисовать на экране новый кадр игры, а музыке и клавиатуре не важно положение инта на экране.

    Поэтому, если сделать выбор, в какой строке генерировать INT - этого будет достаточно. Если делать два или больше интов - то нужно уже будет генерировать разные вектры прерываний. Может когда-нибудь. Пока оставим один с выбором строки (для справки - их 525).
    Последний раз редактировалось zx-kit; 29.06.2015 в 19:25.
    "L-256"

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

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

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

Эту тему просматривают: 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

Ваши права

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