User Tag List

Страница 53 из 71 ПерваяПервая ... 495051525354555657 ... ПоследняяПоследняя
Показано с 521 по 530 из 703

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

  1. #521

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

    По умолчанию

    Цитата Сообщение от s_kosorev Посмотреть сообщение
    так не бывает, рисовать можно на экране 4 способами
    1. Процессором хоста
    2. Спрайтовый движок
    3. Блиттер
    4. Процессор в видеокарте (шейдер)

    Теперь, речь идет о ускорении, при этом последние 3 варианта исключаются, каким образом достигается ускорение? Объем данных увеличивается и при этом процессор хоста одновременно быстрее рисует? ну так не бывает.
    Ускорение при переделке старых игр достигается за счет таких улучшений:

    • Аппаратное наложение маски при рисовании спрайта.
    • Рисование тайлов и спрайтов в разных слоях без перерисовки фона.
    • Линейная адресация с адреса 0000 без деления экрана на секторы. А это ускорение вычисления адреса и возможность рисования спрайта более быстро другими командами.
    • Один байт атрибутов вместо 768, что экономит время на вычислении адреса атрибута.
    • Возможность освободить старую экранную область для оптимизации других задач.


    Объем данных не увеличивается. В большинстве игр на каждый байт пикселей итак есть байт маски.

    Пример копирования спрайта с маской для стандартного режима (40*8=320 такта):

    Код:
    ; hl - адрес спрайта с маской 
    ; de - адрес в области пикселей экрана      
            dup 8
    
            ld a,(de)
            and (hl)
            inc l
            or (hl)
            inc l
            ld (de),a
            inc d
    
            edup
    Пример копирования спрайта с маской для нового режима с линейной адресацией с адреса 0000 (36*8=288 тактов):
    Код:
    ; hl - адрес спрайта с маской 
    ; de - адрес в области пикселей экрана      
            dup 8
    
            ldi
            dec e
            ldi
    
            edup
    Пример копирования спрайта с маской для стандартного режима с использованием стека (36*8=288)
    Код:
    ; стек - адрес спрайта с маской 
    ; hl - адрес в области пикселей экрана      
            dup 8
    
            pop de
            ld a,(hl)
            and e
            or d
            ld (hl),a
            inc h
    
            edup
    Пример копирования спрайта с маской для нового режима с линейной адресацией с адреса 0000 с использованием стека (28*8=224 тактов):
    Код:
    ; стек - адрес спрайта с маской 
    ; hl - адрес в области пикселей экрана      
            dup 8
    
            pop de
            ld (hl), e
            ld (hl), d
            inc l
    
            edup
    Цитата Сообщение от s_kosorev Посмотреть сообщение
    Мне кажется Alex_Rider не понимает принципа действия карты, который как мне кажется еще и zst не понимает
    Вам виднее...
    Последний раз редактировалось zx-kit; 12.09.2015 в 16:40.
    "L-256"

  2. #522

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

    По умолчанию

    Цитата Сообщение от zx_ Посмотреть сообщение
    ицых с гвоздями!
    вот у компьютера Специалист восемь цветов на точку не тормозили совсем процессор
    и раскрашивать легко
    и всего штук пять дип и немного озу
    и схему цветности к чему угодно подключить, порт только выбрать
    а в ВГА преобразовать уже совсем другая и решенная задачка

    от нищеты люди гораздо лучше придумывали (с)
    У него 384*256 ЧЕРНО-БЕЛЫЕ
    А цвета только в текстовом режиме
    И где ты нам нём 5 DIP увидел?
    http://www.old-games.ru/wiki/%D0%A1%...D0%B5%D1%80%29

  3. #523

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

    По умолчанию

    Цитата Сообщение от s_kosorev Посмотреть сообщение
    какой профит в играх где фрейм заново рисуется каждый кадр? тот же R-Type
    В таких играх, да никакого профита.
    Цитата Сообщение от s_kosorev Посмотреть сообщение
    маска это для спрайтов, обычно малая часть экрана, для фонов сцен толку 0
    Только вывод спрайтов с маской - довольно жрущая операция (для одного знакоместа):
    Код:
            dup 8
            ld a,(de)
            and (hl)
            inc hl
            or (hl)
            inc hl
            ld (de),a
            inc d
            edup
    Цитата Сообщение от s_kosorev Посмотреть сообщение
    Вот где экономия! ну сколько тех атрибутов на спрайт? тоже мизер
    Атрибутов на спрайт - мизер, но пересчет координат в адрес атрибута для каждого знакоместа - тоже не мгновенная операция.
    Цитата Сообщение от s_kosorev Посмотреть сообщение
    Какое планируемое ускорение в 2-3 раза? или хотя бы 2-3%
    В среднем по больнице не знаю. Для Саботера могу оценить ускорение процентов в 30 от текущей реализации и процентов 200 от оригинальной (если уж полностью переписывать рендерер)
    Цитата Сообщение от s_kosorev Посмотреть сообщение
    Да не вижу я архитектуры, кроме списка портов, которые не о чем собсно не говорят
    Цитата Сообщение от Nesser Посмотреть сообщение
    Я в описании ничего не нашёл о том как аппаратно это устройство выглядит
    zst, можешь-таки собрать в первом посту не ссылки на топики, а попытаться создать нормальную спецификацию. Ну вот правда не найдешь в этой теме про новую адресацию ничего...
    Nesser, планируется сдедать так: если нам нужен байт по координатам x, y (x в знакоместах, y в пикселах), то его адрес - y + x * 256, то есть, в старшем байте пары будет x (0..31), в младшей - y (0..191), соответственно inc/dec - переход к соседним координатам по x и y.

  4. #524

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

    По умолчанию

    А какое устройство будет производить определение коллизии спрайтов? И где будут храниться данные о том какой спрайт сейчас затирается?

    ---------- Post added at 22:54 ---------- Previous post was at 22:52 ----------

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    Только вывод спрайтов с маской - довольно жрущая операция (для одного знакоместа):
    Код:
            dup 8
            ld a,(de)
            and (hl)
            inc hl
            or (hl)
            inc hl
            ld (de),a
            inc d
            edup
    А у меня спрайт с маской быстрее выводиться

    Задача вывести спрайт под номером 217 в координаты 200, 140

    LD L,200
    LD H,140
    LD DE,217
    -----------------
    LD (204),HL
    LD (206),DE

    ---------- Post added at 23:01 ---------- Previous post was at 22:54 ----------

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    планируется сдедать так: если нам нужен байт по координатам x, y (x в знакоместах, y в пикселах), то его адрес - y + x * 256, то есть, в старшем байте пары будет x (0..31), в младшей - y (0..191), соответственно inc/dec - переход к соседним координатам по x и y.
    То есть по иксу я могу двигать спрайты только с кратность 8 точек? Это чё за прикол такой.

    Нуууу ты немного недоучёл...

    LD L,191 (Y=0-191)
    LD H,10 (X=0-31)

    После INC HL будет странная ситуация, X не изменит своего положения а Y уйдёт за пределы экрана, то есть надо ещё и детектировать переход за 191 ???

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

    В старом экране хотя бы по русски слева-направо и сверху вниз
    А тут вообще получается сверху-вниз с детекцией выхода и слева-направо с кратностью 8.

    Что то тут не так Оо

  5. #525

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

    По умолчанию

    Цитата Сообщение от Nesser Посмотреть сообщение
    А какое устройство будет производить определение коллизии спрайтов? И где будут храниться данные о том какой спрайт сейчас затирается?
    Кстати, да, zst, интересный вопрос... А что будет читаться из видеопамяти для при включенной отрисовке слоя? Стандартный экран? Хотелось бы байт, с включенными битами там, где непрозрачно.
    Цитата Сообщение от Nesser Посмотреть сообщение
    А у меня спрайт с маской быстрее выводиться
    Неправда твоя. У тебя нет такой видеокарты, в которой так можно сделать. А, если продолжать говорить о том, какая эта карта плохая и никому не нужная, то и ни у кого никогда ее не будет, будут лишь 100500 идей о том, как ее сделать. У zst стальные нервы, надо сказать. Я бы уже на середине темы сказал послал бы всех и, либо забил бы совсем, либо сделал бы как хочется мне. Давай договоримся, что, идеи о том, как сделать другую видеокарту в этой теме будут считаться офтопом и наказываться соответствующе, ok? Никто не запрещает тебе завести рядом тему о том, какая карта на самом деле нужна, глядишь, сообща придумается концепт и найдется тот, кто сделает.

  6. #526

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

    По умолчанию

    С слоями я вообще не догнал, 8 слоёв это аппаратные или программные?
    Карта в реальном времени выкидывает поочередно 8 слоёв на экран 50 раз в секунду ?

    ---------- Post added at 23:09 ---------- Previous post was at 23:08 ----------

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    Неправда твоя. У тебя нет такой видеокарты, в которой так можно сделать. А, если продолжать говорить о том, какая эта карта плохая и никому не нужная, то и ни у кого никогда ее не будет, будут лишь 100500 идей о том, как ее сделать. У zst стальные нервы, надо сказать. Я бы уже на середине темы сказал послал бы всех и, либо забил бы совсем, либо сделал бы как хочется мне. Давай договоримся, что, идеи о том, как сделать другую видеокарту в этой теме будут считаться офтопом и наказываться соответствующе, ok? Никто не запрещает тебе завести рядом тему о том, какая карта на самом деле нужна, глядишь, сообща придумается концепт и найдется тот, кто сделает.
    Я не говорю что это плохая карта
    Я пытаюсь понять как она работает с точки зрения программиста

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

  8. #527

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

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    Кстати, да, zst, интересный вопрос... А что будет читаться из видеопамяти для при включенной отрисовке слоя? Стандартный экран? Хотелось бы байт, с включенными битами там, где непрозрачно.
    Пока чтение для новых режимов не предусмострено, FLASH тоже. Читаться будет стандартный экран или ПЗУ при линейной адресации.
    "L-256"

  9. #528

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

    По умолчанию

    Надо же мне понять какой редактор для этого писать

  10. #529

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

    По умолчанию

    Цитата Сообщение от Nesser Посмотреть сообщение
    То есть по иксу я могу двигать спрайты только с кратность 8 точек? Это чё за прикол такой.
    Это как на Спектруме принято. Скроллировать битыки в байте для попиксельного сроллинга тебе никто не запрещает. Спрайтовы движок будет позже (если автора тут не замучают совсем критикой).
    Цитата Сообщение от Nesser Посмотреть сообщение
    После INC HL будет странная ситуация, X не изменит своего положения а Y уйдёт за пределы экрана, то есть надо ещё и детектировать переход за 191 ???
    Ну как бы границу экранной области надо детектить всегда и везде inc hl делать в этом режиме совсем не надо, операция бессмысленная и жрет 2 лишних такта.
    Цитата Сообщение от Nesser Посмотреть сообщение
    В старом экране хотя бы по русски слева-направо и сверху вниз
    А тут вообще получается сверху-вниз с детекцией выхода и слева-направо с кратностью 8.
    В старом режиме (с кратностью 8) надо еще и переход через трети детектить на кажом сдвиге на одно знакоместо вниз, а по пиксельным строкам вообще только на 7 ниже можно опуститься без фокусов

  11. #530

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

    По умолчанию

    Я одного не могу понять, если пытаться вкорячить это в старые игры переделывая им только часть вывода на экран то что измениться? мне лично эти наползания цвета никогда не мешали
    Кроме того почти во всех играх спрайты ЧЁРНО-БЕЛЫЕ, а атрибуты выставляются принудиловкой после вывода спрайтов, то есть самих цветов то и нет, если накладывать сверху цветовую маску в 2 бита так это увеличение объёма спрайта на 2 раза, был 1 бит ч/б стал 1 бит ч/б+2 бита цвета, то есть надо раздвигать код и скорее всего всё это не влезет в память и придётся делать драйвер страниц. Да и получается что надо делать редактор спрайтов, выковыривать старые и дорабатывать их из 1 бита в 1+2 бита, то есть по сути заново сделать саму игру.
    Или я что то не так понял?

    п.с. не судите строго, я только ЗА

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

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

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

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

Ваши права

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