Скрытый текст
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[свернуть]
В смысле с 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-х банок. Но уже ничего не изменить, имеем то, что имеем.
Полтора инта! Если игра не совсем уж на весь экран, то тут и ldi справится.
---------- Post added at 15:52 ---------- Previous post was at 15:50 ----------
Зачем ждать? Можно отрендерить 2-3 фрейма музыки в дампы регистров, а в следущие прерывания играть из ее этого дампа.
Нет, не полтора. Переброска через POP HL : LD (NN), HL занимает 13 тактов на байт. Это ~80 тыс тактов на полный экран. А если экран чуть-чуть меньше то укладывается в INT. Но тем не менее. Очевидно что ТОЛЬКО бекбуфер для сравнительно большой площади сожрёт не меньше 1.5 интов. А 25fps это 2 инта на полный игровой цикл.
---------- Post added at 16:58 ---------- Previous post was at 16:55 ----------
Ну нарендеришь ты 3000 фреймов музыки вперёд. А дальше что ? Основная проблема в том что мы не можем начать рисовать новый кадр не перекинув хотя бы часть данных. Иначе мы будем стирать ещё не отрисованные данные. А значит какую бы условно-полезную нагрузку в это ожидание не впихивай - рендеринг она не ускорит.
У нас тема о чем? О том что игры вполне себе можно писать и под 128к в том как оно есть.
Да с нормальным менджером они работали бы быстрее, но и с буфером можно делать отличные играбельные игры, типа ЧВ/UFO, которые под 48к ну никак было бы не сделать.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)