Скрытый текст
Profi 5.06 1024K 12Mhz (кварц на 24), палитра, COM-порт, часы, hdd, covox, программатор
ZX-Spectrum +3, ZX-Spectrum +2B, ZX-Spectrum +2, ZX Spectrum 48, ZX Spectrum 48+
ZX Evolution Rev B.
Color 48 + Beta Disk Interface +FDD+YM2149F
Орель-08БК
Pentagon-48 (недоссобранный кем-то)
Pentagon-128 (полуубитый)
Кворум-128 (в ремонте)
Магик-05 (в ремонте)
Robotron 1715
Корвет ПК8020 и ПК8010
Amstrad CPC 464
Amstrad CPC 6128[свернуть]
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
В смысле с RAM вместо ROM? Извиняюсь за глупый вопрос, их что, каким-то образом менять на ходу можно?
А как насчет варианта с промежуточным экранным буфером с линейной адресацией, который после построения кадра стеком кидается на экран? Да, не очень шустро, но руки развязывает.
zxart.ee - архив программ, графики и музыки ZX Spectrum.
На некоторых спеках вместо ПЗУ с адреса 0 можно втыкать банки (на скорпе например это юзается для запуска cp/m).
Черный ворон, UFO... а вот интересно много ли и какие именно фирменные игры делают так же?
---------- Post added at 15:12 ---------- Previous post was at 15:11 ----------
Screw - ты как то признавался что ковырял много фирменных игрушек. Может напишешь обзорную статью по движка в следующий Крик? Было бы очень интересно почитать.
В том смысле что в банку 0000-3FFF включается страница ОЗУ вместо ПЗУ.
У меня цель - 25fps. С промежуточным буфером моего размера скорость будет значительно ниже. Хотя это сильно упрощает подход к ущербным машинам, согласен. Прибитый в 5-ую банку экран и будет буфером. А перекидывать его в 7-ую банку стеком. Мерцание уйдёт и геммороиться со спрайтами не придётся. Надо подумать. А что до тормозов - да и фиг с ними, пусть мучаются. Или переходят на нормальную машину, типа АТМ или фирменного +3. Только Tear-инг этим всё равно не победить. Перекидывание всего экрана без вариантов пересечётся с лучом.
---------- Post added at 16:18 ---------- Previous post was at 16:14 ----------
Если бы банкИ. Точнее страницЫ. Только одну, захардкоженную страницу. И это печально.
Да практически все. Но лишнее копирование сжирает очень много ресурсов. Очень немногие наоборот, рисуют сразу в экран. С кучей геммороя при наложении спрайтов. Зато они самые шустрые и самые плавные. Например Stormlord, Zynaps, Ghouls'n'Ghosts и т.д.
Не так уж и много. Jerri ковырял гораздо больше, вот его бы уговорить на статью...
Ну можно ведь начать переброску выше луча...
---------- Post added at 15:25 ---------- Previous post was at 15:23 ----------
Буу. Вот ведь маразм, что стоило отвести 1 бит? 0 - работа с окном #c000, 1 работа с окном #0000. Хотя я не железячник, может очень сложно?
Чрезвычайно сложно. Либо дополнительные тормоза. Банальный пример: ты закончил рендерить в буфер. Это не дема, где всё можно заранее расчитать. Откуда ты знаешь где луч ? Правильно, ниоткуда.
Вариант банальный:
1) ждём прихода прерывания (в среднем это пол-инта)
2) после прерывания ждём, когда луч уйдёт достаточно далеко
3) начинаем переброску, луч успевает отрисовать предыдущий кадр и нагоняет нас сзади. Это порядка инта.
Итого тратится больше 1.5 инта ТОЛЬКО на переброску без теаринга. Слишком дорогая цена.
---------- Post added at 16:38 ---------- Previous post was at 16:37 ----------
Несложно.В АТМ2 можно включать любую страницу, хоть RAM хоть ROM, в любую из 4-х банок. Но уже ничего не изменить, имеем то, что имеем.
Не надо ничего ждать. Пришел инт, начинай рисовать нижнюю часть экрана. Когда нарисовал, луч уже пройдет верхнюю часть. Далее игровая логика, подготовка ифнформации для следующего кадра и рисуй верхнюю часть экрана информацией предназначенной для следующего кадра. А луч в это время рисует нижнюю часть экрана. Это для случая, если игра 50фпс, но с одним экраном.
Полтора инта! Если игра не совсем уж на весь экран, то тут и ldi справится.
---------- Post added at 15:52 ---------- Previous post was at 15:50 ----------
Зачем ждать? Можно отрендерить 2-3 фрейма музыки в дампы регистров, а в следущие прерывания играть из ее этого дампа.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)