Давайте и я свою лепту внесу
Как это цпу никто не мешает? он же всё своё время будет занят выводом ГРАФИКИ, при 4-21 такта на команду это более чем страшно даже при 28 МГц, мешают ему ВНУТРЕННИЕ ПРОЦЕССЫ, z80 сделан по старому принципу поочередного выполнения микрокода, медленее в принципе уже ничего нет, он ВООБЩЕ НЕ ДОЛЖЕН ЗАНИМАТЬСЯ всем что связанно с графикой, музыкой и дисками, он ЦПУ......он УПРАВЛЯТЬ должен а не камазы гравия детской лопаткой разгружать, любая видеокарта современного компа в тысячи раз мощнее цпу, а дма потоки фигачат на скоростях недостижимых для цпу.
Сколько на zx занимает времени вывод текста того же ассм-редактора? 100% мощности? так какой же это цпу? это текстовый контроллер, давно пора уже было сделать именно текстовый режим для работы с текстом, сделали? нормальный 64x24 с 8x8 символами? ну да ну да, сколько там протреккер тратит времени на анимацию текста? децл на простые звуки с квантованием 50 Гц еле остаётся?
Дальше...
Теневое видео-озу это класс, проц типа не занят, 2 экрана, тоже класс, то есть перерисовку спрайтов 50 раз в секунду делать не надо? и чтение-модификация-запись тоже не надо? спрайт что по горизонтали двигается кратно 8 пикселям? а если часть попала в 1 байт а часть в соседний? факт что надо считать из озу процессора, потом считать байт из видео-озу, потом наложить одно на другое со смещением, а уже потом записать в видео-озу и так сделать 2 раза, или я что-то не так понимаю?
Итог - наш чахленький проц должен заниматься только распределением и работой с синтаксисом и интеллектом в играх, и желательно на частотах до 28 МГц, если видеокарта то только со встроенным специализированным dma и хранением всей графики ВНУТРИ, в том числе и символьной таблицой.
Порой старую игру проще сделать заново чем впихивать в тело костыли с бинтами, тем более если лезть так и делать уже с учетом mouse, hdd/ssd (окно сохранений/загрузок), video....возврат в коммандер без сброса...........а всё это требует какой то доработки dos в плане обслуживания накопителей из игр и программ, не в каждой программе пилить а вызов окна доса короткой командой которая после себя восстановит графику которая была на этом месте (вариант как параметр).
НЕ ПОЛУЧИТСЯ ТАК ПРОСТО, уже нагорбатили кучи портов с жидкой адресацией и программеры наши лентяи по (BC) полностью порт указывать.
По сути любой спек переделывается в 7 МГц на ура, это уже компенсирует мелкие потери, но это из прошлого....никто сейчас не мешает воткнуть в панельку z80 платку с плисиной в которой зашит z80 с 1-4 тактом на команду и LDIR с 2 тактами на байт, работать будет абсолютно в любом спеке и прирост мощности НА ПОРЯДОК даже без увеличения частоты.
По мне так достаточно жёсткого спрайтирования с 1 байтовым цветом на пиксель и плавающим размером спрайта, 256x192 вполне хватает, а список координат спрайтов, их размеров и адресов начал пусть хранятся в видеокарте, пусть сама этот список читает, очищает экран и рисует каждый кадр чередуя с буфером, она всё равно каждый пиксель пересчитывает, итог - картинка будет всегда на экране, а если надо какой то спрайт передвинуть то достаточно изменить два байта в таблице, в следующем кадре спрайт будет в другом месте, то есть цпу тратиться только если надо сдвинут спрайт, даже для таблички 192x64 летающей по экрану достаточно каждый кадр менять всего 2 байта координат, про планы наложения и хочется и колется, такая система уже умерла, сейчас быстрее будет просто затереть поверх того что уже есть, тем более при экране с таким маленьким разрешением там и размещать то особо нечего, количество пулек поверх графики?





Ответить с цитированием