Sayman, окей, я тоже.
ты видишь вот этот набор:
dup пицот
pop hl
ld (hl),a
edup
и дальше
dup стопицот
pop hl
sub e
jr nc,$+3
ld (hl),b
add a,c
edup
и это по твоему всё дма?
Sayman, окей, я тоже.
ты видишь вот этот набор:
dup пицот
pop hl
ld (hl),a
edup
и дальше
dup стопицот
pop hl
sub e
jr nc,$+3
ld (hl),b
add a,c
edup
и это по твоему всё дма?
Sayman, доку читать приучен?
"Скорость пересылки составляет 7 Мгц, копирование происходит по два байта (16 бит) при условии что в этот такт к памяти нет обращения от ЦПУ, видео или ТСУ.
В среднем: 4 байта — 2 такта, дма обращается к озу за 1 такт 7 мгц, 16 бит, для пересылки надо 2 обращения
Получаем: скорость DMA 7 МБ/с"
это не баг, дядя.
я вот не могу укусить себя за локоть. это тоже баг?
Последний раз редактировалось Hacker VBI; 18.08.2016 в 15:58.
Найдем.
Я про скорость копирования писал. За 10 ns можно будет прочитать в два раза больше данных.и еще с выравниванием возиться? лучше подумать на тему будущего блитинга с распаковкой
А блиттер что пересылать будет ?что еще за тайлоспрайты опять полезли?
- - - Добавлено - - -
Это в стандартном режиме Спектрума надо читать с экрана и накладывать байт маски и байт спрайта. Я предлагаю байт маски и спрайта просто переслать в видеокарту.
Есть способ рисовать спрайты с точностью до точки. При этом память сможет записывать 2 точки.это тоже очередной костыль. ТСлаб тоже сделал подобный баян в своём конфиге, только в дма, который умеет только по 2 байта (кратность 2 байта). если надо кратно 1 байту, то ловим пачку багов. нет уж, сами с этим играйтесь...
- - - Добавлено - - -
В Метеоре скорость пересылки при одном банке SRAM составит до 7*14=98 Мбайт/c. С двумя банками 196 Мбайт/c. В моменты, когда не идет чтение слоев для вывода на телевизор и нет записи от Z80. Точка занимает 2 байта.
Сколько памяти SRAM и SDRAM желательно установить для игр?
Последний раз редактировалось zx-kit; 18.08.2016 в 16:21.
"L-256"
ну, нормально. картинка рассыпалась вся и это не баг.это не баг, дядя.
на картинке, я ещё раз повторю - баг работы дма тсконфы. я указал вместо кратного 2м байтам размер транзакции, кратность в 1 байт (младший бит = 1). в результате картинка при работе дма разрушилась вся. включая выводимый спрайт, хотя он, вообще-то, якобы не должен быть разрушен. а ты мне про:
ты тоже не всё в доке читаешь. там же чёрным по белому: "...и минимальных затрат логики ...". вот с этого и надо было начинать писать, а не мегагерцы.Скорость пересылки составляет 7 Мгц
и почему движок тупо не игнорирует 0й бит, а позволяет ему участвовать в операциях? что, опять программист должен побеспокоиться о заднице железячника?
Последний раз редактировалось Sayman; 18.08.2016 в 17:29.
Sayman,
я вижу по твоему размытому скриншоту следующее:
- странная палитра, она прописана вообще? правильно отправлена в систему? она для этого изображения? правильно ли установлены биты регистра palsel для неё?
- что с очисткой экрана, не нужно?
- доку писал я, и она проверялась TSL
но продолжим:
кратность пересылки - 2 байта. даже если ты указываешь 0 длину - это 2 байта. установить 1 байт нереально.
так же, указав нечётный адрес источника или приёмника - всё выравнивается системой (это относится к "0й бит" ).
пример бага в студию, ща разберём все допущенные тобою ошибки.
Hacker VBI, окэй, сейчас всё перепроверю (но проверяю один фиг по эмулю, т.к. реального тсконфига у меня нет)
Sayman, ок.
заодно проверь следующее:
- Какая видеопага включена для отображения
- в каком она режиме (16/256 цветов)
- в какой паге ты производишь обновление памяти экрана.
- значения в G X/Y Offset, это интересно - возможно в них не 0, и у тебя сдвинуто положение экрана.
ну и стоит исходить из архитектуры системы, а не своих ожиданий и настроений.
а эмуль - это нормально.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)