-
А нельзя как то попроще всё это сделать?
Хочу в программах нормальные окна делать :) а это по сути обычные большие спрайты, и тут уже без дма не обойтись. Гонять по памяти придётся :) Да и шрифт выводить надо не в текстовом режиме а в графическом, а это пистец какая нагрузка.
На экране 256*192 находится 49152 пикселя, при 50 кадрах и 3,5 МГц CPU это всего лишь 1,4 такта на пиксель, то есть программно всё это делать бредовая идея, надо как можно больше задач убрать от CPU, но при этом продумать всё так что бы в последствии без ущерба можно было сделать более скоростной камень и более мощное видео...
-
Посмотри игры RimWorld и Factorio, может какие мысли дадут :)
-
Цитата:
Сообщение от
Nesser
А нельзя как то попроще всё это сделать?
Хочу в программах нормальные окна делать :) а это по сути обычные большие спрайты, и тут уже без дма не обойтись. Гонять по памяти придётся :) Да и шрифт выводить надо не в текстовом режиме а в графическом, а это пистец какая нагрузка.
На экране 256*192 находится 49152 пикселя, при 50 кадрах и 3,5 МГц CPU это всего лишь 1,4 такта на пиксель, то есть программно всё это делать бредовая идея, надо как можно больше задач убрать от CPU, но при этом продумать всё так что бы в последствии без ущерба можно было сделать более скоростной камень и более мощное видео...
Если надо еще проще - обращайтесь к MVV. У него крутая видеокарта uGFX с текстовым режимом.
Я текстом и блиттером пока заниматься не собираюсь. Итак много чего надо реализовать. Надо ограничивать функции видеокарты иначе в попытке сделать идеальную можно не сделать ничего.
-
Я не просил текстовый режим :)
Надо текст в графическом режиме, а идеальные уже сделаны, нам надо наоборот продуманную и примитивную.
-
Поздравляю всех с этим знаменальным днем ! Сегодня к нам из прошлого прилетали на машине времени Док Браун и Марти Макфлай !
http://s019.radikal.ru/i607/1510/31/8c8d4d94155ct.jpg
Цитаты из фильма "Назад в будущее":
Дороги? Там, куда мы направляемся, дороги не нужны.
Марти МакФлай: Ты что, сделал машину времени… из DeLorean?
Эмметт Браун: Если ты делаешь машину времени из автомобиля, то почему бы ей не выглядеть стильной ?
Я встал на унитаз, чтобы повесить часы, но подскользнулся и стукнулся головой о край умывальника — так мне было явлено откровение, видение, картинка в моём мозгу, видение вот этого — потокового накопителя.
- А у вас есть телевизор?
- Да, у нас их два.
- Ну вы и богачи!
- Сынок, он просто тебя дразнит. Ни у кого нет двух телевизоров.
— Ваше будущее еще не написано. И ничье. Будущее такое, каким вы его сделаете сами. Так что старайтесь!
Давайте продолжим творить будущее ! В комплекте с первыми видеокартами будет идти плата-переходник TRITON для подключения к старым компьютерам без ZX-BUS и новым компьютерам с ZX-BUS. Для них уже заказаны разъемы DIN-64.
Что-то авторы эмуляторов не хотят добавлять режим Meteor в свои эмуляторы. Наверно он очень сложный в реализации. Давайте подумаем, как можно упростить. Наверно, надо убрать ВСЕ, что не требуется для устранения клешинга атрибутов ! Тогда модель будет конечно упрощенная, зато работать в эмуляторах.
-
Чтобы рисовать спрайты ГГ без клешинга атрибутов в игре THREE WEEKS IN PARADISE надо записать в видеокарту Meteor Graphics следующие параметры:
Включение режима Метеор
Координаты X и Y по одному байту
Выбрать 1 (дополнительный), а потом вернуть в 0 (основной) слой для рисования
3 байта для маски спрайта
3 байта для данных спрайта
Режим COLOR2M для рисования спрайта с маской
Режим COLOR1C для стирания спрайта с дополнительного слоя
Этого достаточно для устранения клешинга. Его можно на большинстве девборд и в эмуляторах.
Посмотрел исходники Xpeccy - ничего не понял. Наверно я не смогу сам доработать эмулятор.
Может кто в этом лучше меня разбирается ? Я бы помог с объяснениями, что надо сделать.
-
zst, сделай документ с техническим описанием видеокарты и ее видеорежимов. Нарисуй схему размещения слоев, поясни организацию графических данных в каждом слое и для различных режимов наглядно на схеме. Не хватает именно схем и рисунков. На словах все путано. Эмуляторщикам нужно помочь врубиться в работу видеокарты.
-
Так как в игре TWIP спрайт рисуется горизонтальными линиями, причем сначала 3 байта маски, а затем 3 байта спрайта можно будет использовать команды:
ld hl, адрес первого байта маски спрайта
ld de, A1 ; адрес 1 байта маски в переменных видеокарты
записать координаты X, Y верхней линии спрайта на экране
ldi ; копируем 3 байта маски
ldi
ldi
ld e, мл. байт A2 ; адрес 1 байта данных спрайта в переменных видеокарты
ldi ; копируем 3 байта маски
ldi
ldi
ld e, мл. байт A1 ; адрес 1 байта маски спрайта в переменных видеокарты
изменить координату Y
...
-
Цитата:
Не хватает именно схем и рисунков. На словах все путано. Эмуляторщикам нужно помочь врубиться в работу видеокарты.
кстати да.. странно что с этого не начинают
-
Описание конфигурации Meteor Light
-
я правильно понял что данное решение позволяет медленно на старте загрузить спрайты в област памяти карты и потом их быстро выводить клмандой? но нельзя будет сделать полноценный скажем эффект "плазма" или текстовый редактор раскрасить который 64 символа выводит?
-
Цитата:
Сообщение от
Raydac
я правильно понял что данное решение позволяет медленно на старте загрузить спрайты в област памяти карты и потом их быстро выводить клмандой? но нельзя будет сделать полноценный скажем эффект "плазма" или текстовый редактор раскрасить который 64 символа выводит?
Нет, спрайты предварительно не загружаются в память видеокарты. Спрайты остаются в том же формате, что и в игре и остаются в том же месте. Попутно удалось перейти от 15 цветов к 255 цветов без палитры и рисовать спрайты по координатам с точностью до пиксела. Также просто реализовать режимы цвета: 3 цвета + прозрачный для спрайтов и 4 цвета для тайлов. Точки тоже просто рисовать в режиме COLOR1C, указывая координаты и выбирая цвет.
Эффект плазмы сделать нельзя, так как палитра не используется. Символы можно раскрасить, меняя перед рисованием спрайта буквы соответствующие переменные цвета. Но при 64 символах в строке ширина символа получится 4 бита, что плохо читаемо. Разрешение экрана ведь остается 256х192 пиксела.
Пока считаю указанные возможности достаточным для облегчения устранения клешинга в старых играх и увеличения цветности в новых. Также это достаточно просто реализовать в эмуляторах и компьютерах на FPGA. Было бы желание ...
-
Цитата:
Сообщение от
MVV
Raydac, у тебя русскоязычного описания ZX-Poly не осталось? Есть кое-какие моменты для уточнения. Решил продолжить работу над конфигурацией.
На днях собрал
Spec256, но файлы для софт эмулятора совсем не то, что нужно для аппаратного.
MVV, а режим Meteor Light по приведенному описанию можешь добавить в Speccy2010 и ReVerSE ?
-
Цитата:
Сообщение от
MVV
Raydac, у тебя русскоязычного описания ZX-Poly не осталось? Есть кое-какие моменты для уточнения. Решил продолжить работу над конфигурацией.
ты тогда лучше так списком спроси, а то описание косноязычное и старое, заодно и я получу фокус на непонятные моменты и опишу их более детально
-
Копирую сюда нашу переписку из резервного форума:
Цитата:
Сообщение от Titus
Я так понимаю, что идет преобразование 50Hz->60Hz, т.е. можно смело сказать досвидания плавному обновлению экрана.
Цитата:
Сообщение от zst
Так его уже как бы и нет. Большинство любителей Спектрума для запуска игр используют эмуляторы с частотой экрана 60 Hz. На видеокарте можно сделать и 50 Hz, но это погоды не сделает и не все мониторы такую частоту корректно отображают. Надо подумать, как приспособиться к новой реальности. Возможно для новых игр с плавным скроллингом в эмуляторах и на LCD мониторах придется игры делать с частотой INT 60 Hz.
Цитата:
Сообщение от Titus
Вот именно, ключевое слово 'как бы' )
Настоящий спектрумист никогда не откажется от возможности насладиться плавностью one-frame демы или игры. Даже та же новая проектируемая Dizzy 7 заточена под one-frame.
А на счет частоты инта 60Hz - та это вообще фантастика, уводящая от совместимости далеко-далеко)
-
Цитата:
Сообщение от
Titus
Копирую сюда нашу переписку из резервного форума:
Спасибо, понял. Добавил в первую картинку режим 50Hz/60Hz. Посоветуй, что еще доработать в режиме Meteor.
-
Цитата:
Сообщение от
zst
Спасибо, понял. Добавил в первую картинку режим 50Hz/60Hz. Посоветуй, что еще доработать в режиме Meteor.
Советую) Пойти по пути ZX-Poly) Только усовершенствованому)
Таким образом в играх достаточно будет лишь раскрасить графику, что в 100 раз быстрее, чем переписывать код под новую архитектуру)
-
Цитата:
Советую) Пойти по пути ZX-Poly) Только усовершенствованому)
тогда получится ZX-Poly, а человеку хочется своего ))
у ZXPoly перед темами с "акселератором" есть один приличный минус - организация многопроцессорного взаимодействия заставляет делать весьма неслабые аппаратные и программные выкрутасы, в то время как "акселератор" как темная сторона силы - "проще, доступнее" ))
-
Raydac, а ты что посоветуешь ? Я пока делаю что-то между программым и аппаратным рисованием спрайтов. Может усовершенствую до такой степени, что для рисования спрайта нужно будет только указать координаты на экране, размеры спрайта и скопировать все командой LDIR. Но тогда игры будет писать слишком легко.
---------- Post added at 17:28 ---------- Previous post was at 17:18 ----------
Цитата:
Сообщение от
Titus
Советую) Пойти по пути ZX-Poly) Только усовершенствованому)
Таким образом в играх достаточно будет лишь раскрасить графику, что в 100 раз быстрее, чем переписывать код под новую архитектуру)
Выдирать и перекрашивать графику тоже время надо. Само ничего не делается. Даже аппаратные спрайты сами не нарисуются.
-
Цитата:
Сообщение от
Raydac
тогда получится ZX-Poly, а человеку хочется своего ))
у ZXPoly перед темами с "акселератором" есть один приличный минус - организация многопроцессорного взаимодействия заставляет делать весьма неслабые аппаратные и программные выкрутасы, в то время как "акселератор" как темная сторона силы - "проще, доступнее" ))
Я сам бы сделал нечто типа ZX-Poly, только с большей глубиной цвета и множественными другими наворотами. Чтобы были слои и т.д. Тогда для любой игрушки можно будет сделать цветную графику, спрайты с маской (даже если в игре спрайты накладывались по XOR, OR или другой фигне), при этом совсем не трогая код игры. Это идеал для меня.
-
Цитата:
Сообщение от
Titus
Я сам бы сделал нечто типа ZX-Poly, только с большей глубиной цвета и множественными другими наворотами. Чтобы были слои и т.д. Тогда для любой игрушки можно будет сделать цветную графику, спрайты с маской (даже если в игре спрайты накладывались по XOR, OR или другой фигне), при этом совсем не трогая код игры. Это идеал для меня.
Совсем не трогать код - это сложно. А слои, прозрачный цвет и 255 цветов из палитры ULAplus у меня есть. Плюс рисование спрайтов с точностью до точки. Для новых игр - хорошие возможности. Кто бы написал. Ведь есть же у кого-то идеи игр, которые нельзя нарисовать в цвете из-за клешинга атрибутов. Потренировались бы и отладили заодно видеорежимы. Знающие люди могли бы и эмулятор допилить до Meteor Light. Что для одного сложно - для другого просто и наоборот. Я режим придумал - давайте вместе его продвигать в массы.
-
Цитата:
Сообщение от
zst
Совсем не трогать код - это сложно. А слои, прозрачный цвет и 255 цветов из палитры ULAplus у меня есть.
Легко при подходе типа ZX-Poly.
Да и ULAplus палитра по нашим временам уже бедновата (если уж раскрашивать графику).
-
Цитата:
Сообщение от
Titus
Легко при подходе типа ZX-Poly.
Да и ULAplus палитра по нашим временам уже бедновата (если уж раскрашивать графику).
Начал рисовать палитру. Нормальная палитра.
http://s004.radikal.ru/i205/1510/75/535509abd530t.jpg http://s017.radikal.ru/i403/1510/a6/6257373f0f45t.jpg
Слева из описания на ULAplus. На мой взгяд - бледновато. Справа - закрашиваю посчитанными для Meteor Graphics цветами - выглядит сочно. И оттенков достаточно. Нам же не фотографии рассматривать - нам цвет для игр нужен. Тем более, для Спектрума рисунки должны закрашиваться не ровными цветами, а для красоты их надо рисовать в крапинку. Тогда все будет отлично даже если цветов всего 255 !
-
Цитата:
а ты что посоветуешь ?
сделать черновое описание платформы, а потом обязательно сделать прогрфммный (а не аппаратный) эмуль и на нем обкатать расцвечивание какойнить игрухи, сразу удастся выяснить слабые стороны и дешево подкорректить
Цитата:
Я сам бы сделал нечто типа ZX-Poly, только с большей глубиной цвета и множественными другими наворотами.
потенциально по схеме ZXPoly можно сделать хоть TrueColor на спеке без задержек будет работать на Z80 )) но как то не уверен что спрос на такое будет + добавление каждого нового юнита в систему это геометрическое усложнение системы взаимодействия, ZXPoly всеж не только расцвечивать позволяет, но там процы могут друг другом рулить и можно взять скажем и сделать из одного процессорного юнита симуляцию какой то переферии, типа муз процессора
-
Цитата:
Сообщение от
Raydac
но там процы могут друг другом рулить и можно взять скажем и сделать из одного процессорного юнита симуляцию какой то переферии, типа муз процессора
Это никто не смог сделать даже на существующем GS, а про ZX-Poly и мечтать бестолку.
-
http://s008.radikal.ru/i303/1510/5c/39fb80540582t.jpg
Палитра ULAplus V.1. Менялись старшие 3 бита, младшие 5 для PC равны 0.
http://s019.radikal.ru/i632/1510/a9/08f082359e6et.jpg
Прикинул цвета по-своему. Добавил простые цвета и 16 оттенков серого.
-
Цитата:
Сообщение от
Raydac
потенциально по схеме ZXPoly можно сделать хоть TrueColor на спеке без задержек будет работать на Z80 )) но как то не уверен что спрос на такое будет + добавление каждого нового юнита в систему это геометрическое усложнение системы взаимодействия, ZXPoly всеж не только расцвечивать позволяет, но там процы могут друг другом рулить и можно взять скажем и сделать из одного процессорного юнита симуляцию какой то переферии, типа муз процессора
Не так 'в лоб' разумеется.
В моей идее там не много процессоров (каждый на свой бит), а особый процессор, у которого сразу 128-битные (или более) регистры. Кроме того, есть возможность манипуляции спрайтами, но на совместимый с игровым кодом манер. Т.е. менять в коде ВООБЩЕ НИЧЕГО не надо. Только нарисовать true-color графику, сделать маски и практически все.
-
Цитата:
а особый процессор, у которого сразу 128-битные (или более) регистры.
ну так то понятно что можно, но это уже специальный кастомный проц, мне с zxpoly было интересно что то что потенциально можно из элементной базы 80-х собрать, пускай и шкафчик получится, интересно было могли ли тогда уже на коленке дома собрать что то по мощности как PC XT или нет
-
Цитата:
Сообщение от
Eagle
Это никто не смог сделать даже на существующем GS, а про ZX-Poly и мечтать бестолку.
Были проекты General Sound AY Emulator v1.0 http://www.zxpress.ru/article.php?id=9503
-
Цитата:
Сообщение от
Djoni
А на выхлопе даже демки нет.
-
Мне кажется или все завяло?
-
Наверно будет с выходом FULL HD на основе видеоадаптера VGA SPUTNIK.
Z80-MUX + VGA SPUTNIK = METEOR.
-
Ребят, а не проще на MSX-2 переползти и велисапед не изобретать ?
-
ram_scan, а смысл? мсх-2 совершенно другая идеология
-
интересно:
Цитата:
Палитра - 3х6 бит (как BMP 256), размещена во внутренней памяти FPGA 256 * 18 бит.
Только у БМП 256 цветов, палитра хранится в формате 4x8 (RGBa, последний байт всегда равен 0, в заголовке под палитру 1024 байта отведено, proof:In most cases, each entry in the color table occupies 4 bytes, in the order blue, green, red, 0x00 (see below for exceptions). This is indexed in the BITMAPINFOHEADER under the function biBitCount.). Это можно видеть при выгрузке картинки из фотошопа. Про другие редакторы и конвертилки я не знаю и на них не полагаюсь. Хотя знаю, что, например, xnView, если в картинке меньше 256 цветов, то он в заголовок кидает соответствующую палитру. т.е. если будет 128 цветов, то половина заголовка будет выкушена из файла. Возможно какие-то другие программки пихают палитру ещё как-то иначе. Кроме того, Спринтер имеет такой же формат палитры и я просто беру БМП файл, из его заголовка выгребаю как есть палитру, применяю её и далее кидаю сам битмап в экран.
И в целом не понятно, к чему ограничиваться 5+5+5 палитрой, когда можно свободно сделать 8+8+8 и ни о чём не парится?!
Цитата:
размещена во внутренней памяти FPGA 256 * 18 бит.
5+5+5 = 15 бит. От куда ещё 3 бита взялось и для чего? С точки зрения математики и просто удобства, проще и удобнее хранить как 24бита (8+8+8).
да и опять-таки, несколько раз предлагалось в теме - вкарячить в карту подобие шейдеров - описание того, что и как делать со спрайтами/тайлами/адерсами их хранения. Без этого получается очередной тайлоспрайтовый двиг аля ТС на котором даже ротозум полноэкранный будет тормозить...
-
Цитата:
Сообщение от
Sayman
5+5+5 = 15 бит. От куда ещё 3 бита взялось и для чего?
ты странный, непонятный кусок без контекста и ссылки на оригинал процитировал, хочешь ответа, ладно бы если поиск работал, а так вообще в воздух
но можно предположить 18 бит это ширина рам блока в альтерах, то есть один М512 блок позволяет хранить 256x18 данные, удобно
-
Цитата:
ты странный, непонятный кусок без контекста и ссылки на оригинал процитировал, хочешь ответа, ладно бы если поиск работал, а так вообще в воздух
вопрос адресован разработчику. Он в курсе от куда эта цитата. Но если так нужно и другим, то это от сюда.
Цитата:
то есть один М512 блок позволяет хранить 256x18 данные, удобно
Вопрос в том, что это удобно только одному - тот кто девайс разрабатывает, а не тем для кого он его разрабатывает. Удобнее работать с полной палитрой, а не с её огрызком. А как там в плисине это выглядит, кодеру/пользователю фиолетово!
-
Цитата:
Сообщение от
Sayman
Вопрос в том, что это удобно только одному - тот кто девайс разрабатывает, а не тем для кого он его разрабатывает. Удобнее работать с полной палитрой, а не с её огрызком. А как там в плисине это выглядит, кодеру/пользователю фиолетово!
тут 2 варианта: не укладываемся в емкость чипа, все идет лесом, либо работаем с 5 бит на компоненту, что по удобности не сильно отличается от 6 бит на компоненту, а цветовое разрешение в 8 раз меньше
тем более это палитра, с ней хоть на бейсике работай
- - - Добавлено - - -
Цитата:
Сообщение от
Sayman
вопрос адресован разработчику.
у разработчика тоже поиск не работает, он у всех не работает
-
Цитата:
Сообщение от
s_kosorev
тут 2 варианта: не укладываемся в емкость чипа
ОПА?!
в Метеоре хотят использовать FPGA EP2C5Q208. Кол-во логических ячеек - 4608.
У Спринтера используется более древняя EP1K30QC208. Кол-во логических ячеек - 1728.
А теперь вопрос - почему в плисину по объёму почти в 2 раза меньше засунули целый комп с палитрой 32 бита, а в Метеоре в жирную плисину кое как влезает 15бит? что за приколы такие?
Не жирновато потратить такую жирную плисину фиг знает на что?
-
Со временем параметры возможностей и аппаратуры меняются/уточняются. Разработка так затянулась...
Сейчас это VGA выход FULL HD 1920х1080 60Hz 15 бит. Количество цветов 32768 как в SUPER NINTENDO.
Внутри FPGA развертка с частотой 50 Hz. Масштабирование разрешения 256х192 в 4 раза по-вертикали и по-горизонтали.