V6Z80P - Back for Good
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Давайте продолжим обсуждение.
Было предложение сделать координаты X и Y по два байта. Если X от 0 до 255 (319), а Y от 0 до 191 (239) - точку спрайта копировать на экран. Иначе - нет, эта точка за границами экрана.
Тогда для изображения части спрайта у левой границы экрана нужно...
Последний раз редактировалось zx-kit; 24.06.2013 в 19:42.
"L-256"
Ветка конкретно по расколу платформы. Любые просьбы о совместимости автор отметает.
Я сказал по технической части больше, чем любой другой в этой теме. И я не хрен с горы.
Для таких решений нужна серьёзная аргументация.
И да, в V9990 блиттер есть. Как насчёт совместимости?
Совместимость с огромным количеством программ для ZX SPECTRUM остается, даже более, чем в других клонах. Добавляется совместимость с демами Pentagon-128.
Ваши замечания ценны, но вы уперлись в АТМ и несколько игр для него. Возможно на тот момент это было единственно верное расширение графики. Но на данный момент, можно уже и сменить свое мнение. Давайте вернемся к первоисточнику - ZX SPECTRUM и начнем заново, а не будем повторять тупиковые ветви по развитию железа.
Я сказал по технической части больше, чем любой другой в этой теме. И я не хрен с горы.
Мы предлагаем новую графику без портов, без страниц и т.п. сложностей. Обычные координаты на экране и номера спрайтов. Вы что не видите ни одного достоинства? Например, спрайты могут быть произвольного размера, а не 16 х 16.
Посмотрел бегло. Там спрайты фиксированного размера 16 х 16. Мы же предлагаем выбор в размере спрайтов, 256 цветов без палитры, один слой, на котором можно наложить несколько объектов.
Для таких решений нужна серьёзная аргументация.
И да, в V9990 блиттер есть. Как насчёт совместимости?
Почему вы все критикуете. Давайте сделаем НОВЫЙ РЕЖИМ без оглядки на предыдущие разработки.
Кроме этого, старые расширения графики можно добавить ПОТОМ.
Последний раз редактировалось zx-kit; 24.06.2013 в 20:51.
"L-256"
По программированию игр вам виднее. Как хранится уровень в памяти, я только предполагаю. Я видел только карту без монстров в виде копий экрана (ftp://ftp.worldofspectrum.org/pub/si...r/R-Type_4.png). Можно предположить, что там спрайты фона размером 8 х 64 точек. Для экономии многие спрайты имеют зеркальную копию.
В первом уровне около 13 экранов ZX SPECTRUM. Видимо есть карта уровня, где указаны номера спрайтов фона. При движении мы получаем карту экрана, где указаны спрайты, которые нужно изобразить и смещение левого спрайта относительно границы экрана.
Для нового режима мы можем загрузить те же спрайты в ОЗУ видеокарты, преобразовывая на ходу их 256-ти цветные. По номерам спрайтов карты экрана мы копируем соответствующие спрайты из ОЗУ спрайтов в ОЗУ экрана. Видеокарте при этом передаем адрес области спрайтов, размер спрайта, номер спрайта и координаты спрайтна на экране. Это нужно делать после прерывания. В результате получаем плавный скроллинг фона.
Поверх фона копируем движущиеся объекты таким же образом, как и спрайты фона. При этом не надо заботиться о клэшинге атрибутов, так как вокруг спрайтов используется прозрачный цвет. Объекты правильно перекрывают друг друга без всяких усилий со стороны программиста. Количество наложенных на одно место объектов не ограничено количеством слоев. Слой всего один. Работаем только с координатами на экране и номерами спрайтов. Нет необходимости в управлении портами и страницами. Чтобы устранить мелькания экрана, можно использовать два экрана, как в ZX SPECTRUM 128 К - на одном готовим изображение, а другой вы это время показываем.
Можно сделать и по 8 бит на каждый канал цвета, как в Speccy2010. Мы то будет работать с 8 битами на точку. Что это изменит ?Можно сразу закапывать. Палитра нужна, и минимум 12 бит.
Ну что, есть в этом что-то разумное ?
Последний раз редактировалось zx-kit; 24.06.2013 в 21:36.
"L-256"
zst
Мне непонятно, как рассчитывать адрес начала спрайта номер такой-то, если будут области с разными размерами (банки) спрайтов. А если этих банков будет 100 ?Видеокарте при этом передаем адрес области спрайтов, размер спрайта, номер спрайта и координаты спрайтна на экране.
Идея alone c расположением всех картинок в одну шириной 256 мне нравится, т.к. удобно в редакторе рисовать сразу все спрайты.
Без палитры вообще жуть будет, тем более, ее на внутреннем ОЗУ Циклона сделать несложно.
ZXM-Phoenix rev.01 2048K, VG93 hw emulator
Тайлы там скорее всего 16х16. То есть для получения плавного скроллинга, надо каждый кадр пересчитывать данные для 204 спрайтов только для одного слоя фона. И это на Z80 3,5 МГц. Не сказал бы что это проще и быстрее, чем на тайловом VDP. Там для скроллинга надо каждый инт менять только TileXOffset, и раз в 16 кадров дорисовывать столбик из 10 тайлов. Процессорного времени это займет намного меньше.
Мы решили, что при переходе к области спрайтов с другими размерами мы сообщаем видеокарте размер спрайтов в этой области и начало области. Дальше ко всем спайтам в этой области можно обращаться по номеру. Адрес спрайта при копировании будет рассчитывать сама видеокарта.
Так сделано в V9990, но это для фиксированного размера спрайтов 16 х 16 точек. Нам же это будет только ограничивать фантазию при разработке игр.Идея alone c расположением всех картинок в одну шириной 256 мне нравится, т.к. удобно в редакторе рисовать сразу все спрайты.
Вы, извиняюсь, не видите преимущества ОДНОВРЕМЕННОГО присутствия 256 цветов на экране по сравнению с оригинальными 15 с атрибутами или с 16 цветами из платры 256 ? Я думаю, что вы шутите.Без палитры вообще жуть будет, тем более, ее на внутреннем ОЗУ Циклона сделать несложно.
А сделать палитру можно, но это не главное. У некоторых компьютеров всего 64 цвета, а какие рисунки получаются. Да и на 15 цветах тоже. Вам что надо для игры палитру BMP - по 6 битов на один канал ? Можно и такую сделать.
---------- Post added at 23:11 ---------- Previous post was at 22:59 ----------
Ну вы сгущаете краски. Нет такой проблемы, ведь в игре Z80 все успевает делать. А с новой видеокартой будет еще быстрее успевать. Там ведь не надо сдвигать каждый байт при движении экрана. Просто сдвигаем координаты каждого спрайта. Если бы такие простые вещи Z80 не успевал делать, то игр бы было очень мало.
Какая разница, если Z80 успеет за кадр вывести все координаты и номера спрайтов в видеокарту. При этом нет ограничений в скорости движений разных планов экрана. Кроме тайлов и спрайтов остается возможность наложить сверху на этот же экран цветные линии, как Элите.Не сказал бы что это проще и быстрее, чем на тайловом VDP. Там для скроллинга надо каждый инт менять только TileXOffset, и раз в 16 кадров дорисовывать столбик из 10 тайлов. Процессорного времени это займет намного меньше.
Последний раз редактировалось zx-kit; 24.06.2013 в 22:04.
"L-256"
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)