Сильнее скажу. Под твой тулчейн писать тоже некому.
Вид для печати
Под мой тулчейн пишут как минимум LVD и VNN. А под Sjasm ещё больше.
жирновасто...
браво! :)))) но вот не все это понимают...
и тогда народ будет говорить: фу, понаделали ламерства! что за дема без кодера, анимация какая-то...
---------- Post added at 16:25 ---------- Previous post was at 16:23 ----------
и это, хорош пиписьками-то мериться, больше пишешь, меньше пишешь... весь вопрос в том, возможна ли +1 софтина хотя бы потенциально или нет.
Потому что, во-первых, мы делаем 8-битный компьютер, во-вторых, тулчейн заточен под Z80, а в-третьих, надо иметь и прямую, и обратную совместимость.
Z80 в FPGA это уже эмуляция :v2_wink2:
ткните дураку ссылку что за тулчейн от Элоун и за верккзеуг?
---------- Post added at 13:47 ---------- Previous post was at 13:46 ----------
alone, а можно статью как у бриза про видео, для ламера?
охи, ахи и жалобы на судьбинушку горькую были и будут всегда...
для начала, достаточно написать простейше:
1. автозаброс блока данных в карту
2. поворот принятых массивов точек
3. сортировка в лоб
4. вывод полигонов на экран
все неоднократно отвелосипедено в демках
добавить еще заброс в карту внутренних процедур от пользователя для генераций / обработки текстур в самой карте ...
и - уперед, "даже распоследние буржуи на 48к бейсике" могут бацать игры, демки с 3D объектами и окружением...
дальше, по желанию, уже допиливать, ускорять, понтоваться заменами сортировок ради 5 процентного ускорения... ;)
Вывод графики - далеко не самая сложная часть игры. Это на 48K это была самая сложная часть, и то не всегда. А на АТМ нет никаких проблем ни с памятью, ни со скоростью, ни с лучом.
У тебя есть две экранных области. Пока одна видна, ты заполняешь другую. Потом видна другая и ты заполняешь первую. Переключаются 3-м битом порта #7ffd, как и на 128K.
Одна экранная область лежит в 1 и 5 страницах, другая в 3 и 7 страницах. Ты можешь подключить страницу в любую четверть памяти Z80. Для этого есть порты #3ff7, #7ff7, #bff7 и #fff7. Туда надо писать номер страницы XOR #7f. Содержимое младших битов порта #7ffd при этом игнорируется.
Каждая экранная область в режиме EGA делится на 4 части по 8000 (40*200) байт. В одной части лежат пиксели X mod 7 = 0,1, в другой 2,3, в третьей 4,5, в четвёртой 6,7. Таким образом, полный столбец всегда целиком доступен через элементарный ADD HL,DE (DE=40).
В каждом байте лежит 2 пиксела: %RLRRRLLL (представь, что это байт атрибутов).
Каждый из 16 цветов можно задать. Для этого надо выставить на бордере нужный номер цвета (цвета 8..15 задаются через порт #f6) и потом записать в порт #ff значение для этого цвета в формате %grbG11RB.
---------- Post added at 14:07 ---------- Previous post was at 14:02 ----------
Каких данных и в каком формате?
Ты целиком уровень с монстрами собрался в карту закидывать?
Всех полигонов уровня?
Опять всех?
Страдает. Звук засран и видео дёргается. И запускается минуту, а то и больше. И жужжит.
>>1. автозаброс блока данных в карту
>Каких данных и в каком формате?
всех нужных объектов.
3 координаты на точку.
текстуры.
пользовательские процедуры.
>>2. поворот принятых массивов точек
>Ты целиком уровень с монстрами собрался в карту закидывать?
для демок / игр - объекты.
можно вращать не все, а выбранный набор.
в чем проблема?
>>3. сортировка в лоб
>Всех полигонов уровня?
карта занимается выводом пачек повернутых объектов.
для строгающих очередной вульф, пущай отдельно рассчитывают массив расположения объектов, например.
вращая карточкой же.
>>4. вывод полигонов на экран
>Опять всех?
это уже как будет угодно заклинателю.
по списку нужных / рассчитанных / повернутых объектов.
на выбор.
все это детали, которые решает конкретный реализатор карточки при ее создании.
Обычный юзер не обладает столь тонким слухом и столь острым взглядом :)
А жужжание и скорость загрузки можно исправить - PC без вентилятора и с SSD давно существуют...
P.S. IMHOmode=ON
Проц должен быть настоящим (Z80 до сих пор производятся)
Музыкальный сопроц должен быть настоящим
Остальное не столь важно...
IMHOmode=OFF
глюк
Детекчу неуметеля многопроцессорных систем и сбрасывателя НГС, а также синхронизатора модок с демкой.
И тебе - не сдохнуть :)
Реквестирую тесты корки з80. Поскольку там будут 50% фейлов всех тестов, предсказамусываю игнор на этот реквест.
Он - школота и нацист.
Конечно, при фпс=5. Больше ты там не вытянешь на реальном коде, а не на 1.5 демоэффектах. Сделаешь полноэкранный шутор на 50фпс?
---------- Post added at 15:43 ---------- Previous post was at 15:42 ----------
Я конечно извиняюсь, но как это возможно "совсем"?
Ну я в том смысле спросил, что на "взрослых" процессорах кэша бывает всё же поменьше, чем памяти. Бывает, попадаешь, бывает, не очень. Но на нашем "игрушечном" процессоре памяти так мало, что я готов вообразить себе кэш на всю адресуемую в данный момент память. Why the hell not. Поэтому и уточнил.
Ну, если в качестве основной памяти использовать СРАМ, тогда при скорости доступа к ней томожений не будет, она по сути и будет кешем.
На пентеве же стоит ДРАМ, а он имеет рандомный доступ 7МГц. Кеш накрывает последние 512 адресов (адрес физический 22 бита, не 64к), с которых было чтение. Если з80 ломится в адрес, который лежит в кеше - он не формирует цикл доступа к ДРАМ.
По тестам - вполне эффективно.
Не пройдет и полгода как Алон сумеет запустить тест корки на "своем" "проце". Ждем-с.
50 MHz это не Speccy. Поэтому не нужна совместимость со старым софтом. Главное сделать что-то одно, не меняющееся со временем, а только дополняющееся. Должна быть одна комплектация ! Должен быть один стандарт. Не называйте spectrum spectrum'ом, если это уже не spectrum. У меня дома стоит Pentevo, я не могу практически ничего на ней запустить из разряда софта для Pentevo. Поскольку выясняется что софту нужно - NeoGS или NemiIDE или новая прошивка или прошивка TSConf или TurboSound или TurboSoundFM, и пошло-поехало-уехало. В итоге у меня на флешке валяется около 20 каких-то игр и пару демок под Pentevo, ни одну из которых я запустить не смог.
Если не будет создано что-то единое, которое будет работать у всех одинаково, то всегда будет спор о том, у кого лучше болт, а у кого хуже гайка. Вместо того что бы друг друга обливать грязью, ОБЪЕДИНИТЕСЬ и создайте единую платформу с единым СВОИМ языком, СВОИМ звуком и СВОЕЙ графикой. Но один раз и все вместе. Главное не надо к Speccy прикручивать инопланетные болты, это уже сделали один раз в 1981 году.
Аминь вэ шаббат. Так и сделаем. Приступать когда?
подписываюсь.
ибо
out #FF77 = %1x1111xx01110111
(A0=A2=A4=1; A3=A7=0)
Значения шины данных:
D0 - RG0 \
D1 - RG1 > переключение экранных режимов.
D2 - RG2 /
RG0=1 RG1=1 RG2=0 - обычный sinclair режим 256x192 пикселей
RG0=0 RG1=1 RG2=0 - аппаратный мультиколор 640x200 пикселей
RG0=0 RG1=0 RG2=0 - EGA 320x200 (16 цветов) пикселей
RG0=0 RG1=1 RG2=1 - текстовый режим 80x25 символов
vs
#00AF(175) — VConfig. Видеорежим. Биты 0-1 – режим графики, биты 6-7 – размер рамки (разрешение).
#01AF(431) — VPage. Видеостраница. Диапазон 0-255. Для режима 16 цветов должна быть кратна 8, для режима 256 цветов – кратна 16.
#02AF(687) и #03AF(943) — XOffsL и XOffsH. Младшая (8 бит) и старшая (1 бит) часть смещения изображения по горизонтали.
#04AF(1199) и #05AF(1455) — YOffsL и YOffsH. Младшая и старшая часть смещения изображения по вертикали.
#0FAF(4015) — Border. Цвет бордера.
#15AF(5551) — FMAddr. Выбор адреса и включение маппинга внутренней памяти альтеры (палитра и спрайтовые регистры) в адресное пространство Z80 для записи.
- это не гуд
Вопрос:
можно ли было, впилить минимальный блиттер в бэйз-конфу pentevo ?
---------- Post added at 17:59 ---------- Previous post was at 17:53 ----------
Я вот согласен.
Но на практике, получается, что человек, делает то, что понимает,
то что он хорошо осознаёт.
Если какой-то концепт "не ложится" кому-то в мозги,
(по тем или иным причинам)
то его (этот концепт), ну никак в голову ему не вложить.
В бейзе места много - можно было бы.
Моя мысль была такая, что наличие кэша может, потенциально, сильно усложнить счёт тактов. Попал - одни такты, промазал - другие. Можно пытаться спланировать работу с памятью так, чтобы учесть ещё и это. Но аlone, конечно, прав склоняя существительно "рукоблудство" в этом контексте. С таймером почти всё то же самое можно делать более комфортно, плюс - запас на будущее, т.к. коды привязанные к таймеру не будут, по идее, ускоряться на более быстрых процессорах.
Слушай, если тебе нужны точные времянки, то 3.5МГц пентагон/резинка.
В любых нормальных системах никто такты не считает. Для этого есть таймеры.
Вспомнил: была книга по интелу 386. В ней для всех инструкций были приведены формулы рассчета тактов (попадание в кеш/граница слова и т.д.) Можно просчитать то же самое и для тсконфового кеша. Кодинг становится еще жостче, тока успевай проявлять мастерство! Ведь в этом сила спектрума, не так ли?