Важная информация

User Tag List

Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 21 по 30 из 37

Тема: Вывод на экран со сдвигом в 4px

  1. #21

    Регистрация
    03.01.2006
    Адрес
    Рязань
    Сообщений
    2,935
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Весь экран в ширину!
    Ты сначала готовишь строку тайлов, потом её сдвигаешь и выводишь!
    Насчёт вывода через push - невыгодно получается, я же забыл dec l. Надо rld:ldd.

    ---------- Post added at 14:58 ---------- Previous post was at 14:57 ----------

    Цитата Сообщение от NovaStorm Посмотреть сообщение
    Это для одного спрайта, так как адреса фиксированные. Если делать pop hl:ld hl,(nn), то будет 13 тактов вместо 12,5 на байт, но и перемещать в буфер можно будет любой спрайт, а не один =)
    Если делать pop hl:ld (nn),hl, то будет 12 килобайт кода.
    Последний раз редактировалось alone; 30.01.2013 в 16:22.

  2. #22

    Регистрация
    06.05.2006
    Адрес
    Ливны, Орловская обл
    Сообщений
    1,169
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да что ж я не могу объяснить-то? =(
    Мне не надо весь экран, мне надо один столбик.
    А кода на перекидывание спрайтов будет максимум 2*размер. Килобайт-полтора где-то от силы.

  3. #23

    Регистрация
    03.01.2006
    Адрес
    Рязань
    Сообщений
    2,935
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Зачем выводить один столбик?
    И я не про перекидывание спрайтов, а про перекидывание экранного буфера на экран.

  4. #24

    Регистрация
    06.05.2006
    Адрес
    Ливны, Орловская обл
    Сообщений
    1,169
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Буфер я итак кидаю 12kb pop:ld.
    А кроме этого столбца у меня всё уже нарисовано.
    Я бы конечно мог показать, но спойлерить (если конечно что-то будет) не хочу.

  5. #25

    Регистрация
    06.05.2006
    Адрес
    Ливны, Орловская обл
    Сообщений
    1,169
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Поменял inc de на inc e, где можно. 360 тактов-то на экран не лишние =)

  6. #26

    Регистрация
    03.01.2006
    Адрес
    Рязань
    Сообщений
    2,935
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не понимаю, зачем выводить один столб и при этом так загоняться с его оптимизацией... Он же весит всего 5% времени от силы.

  7. #27

    Регистрация
    06.05.2006
    Адрес
    Ливны, Орловская обл
    Сообщений
    1,169
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    У меня он жрёт до 15-20% от перерисовки(без учёта спрайтов) _всего_ экрана.
    Сейчас у меня за два прерывания скроллится экран по 2px и выводятся(из страницы 2го экрана, без переброса) три спрайта с маской 48х48. Ну и ещё остаётся чуток времени.
    Проблема в том, что надо сделать вывод этих спрайтов в оба экрана из банок. В нижний-то можно непосредственно, а во второй напрямую и быстро мне способ неизвестен, а с перебросом в буфер нужно будет примерно ещё 7.5-8к тактов на спрайт, что уже не влезет в остаток времени от второго прерывания. Плюс музыка или хотя бы звук и логика ещё тыщи на три-четыре тактов =\.
    Кроме вывода этого столбца оптимизировать уже нечего. Остальные алгоритмы предельно дубовы и эффективны =)

  8. #28

    Регистрация
    03.01.2006
    Адрес
    Рязань
    Сообщений
    2,935
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если имеется скролл, то половина знакоместа уже нарисована.
    Надо только наложить вторую половину:
    1/2*pop bc
    ld e,c/b
    ld a,(de) ;таблица сдвига на 4
    or (hl)
    ld (hl),a
    inc h

    ---------- Post added at 10:45 ---------- Previous post was at 10:44 ----------

    Цитата Сообщение от NovaStorm Посмотреть сообщение
    Плюс музыка или хотя бы звук и логика ещё тыщи на три-четыре тактов =\.
    Музыку можно разложить на регистры.

    ---------- Post added at 10:47 ---------- Previous post was at 10:45 ----------

    Цитата Сообщение от NovaStorm Посмотреть сообщение
    Сейчас у меня за два прерывания скроллится экран по 2px
    Хинт: можно хранить 4 сдвинутых копии экрана и перекидывать их на активный экран по очереди. И никаких битовых сдвигов.

  9. #29

    Регистрация
    06.05.2006
    Адрес
    Ливны, Орловская обл
    Сообщений
    1,169
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    >Если имеется скролл, то половина знакоместа уже нарисована.
    >Хинт: можно хранить 4 сдвинутых копии экрана и перекидывать их на активный экран по очереди. И никаких битовых сдвигов.
    Ты меня обижаешь =)
    Разумеется так и сделано, поэтому и нарисованной половины знакоместа нету и надо нарисовать его целиком.

    ---------- Post added at 11:04 ---------- Previous post was at 11:03 ----------

    >Музыку можно разложить на регистры.
    Всё равно ведь не меньше тыщи-полутора?

  10. #30

    Регистрация
    03.01.2006
    Адрес
    Рязань
    Сообщений
    2,935
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NovaStorm Посмотреть сообщение
    Разумеется так и сделано, поэтому и нарисованной половины знакоместа нету и надо нарисовать его целиком.
    Какой код переброски? Давай оптимизируем.
    Кстати, если выводить спрайты в эти буфера, то второй экран вообще не нужен. Спрайты могут лежать в верхней памяти. Код переброски на экран тоже.

    Цитата Сообщение от NovaStorm Посмотреть сообщение
    >Музыку можно разложить на регистры.
    Всё равно ведь не меньше тыщи-полутора?
    Можно и меньше, но это уже будет экономия на спичках
    Последний раз редактировалось alone; 31.01.2013 в 11:55.

Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Вывод ВСЕХ картинок на экран :)
    от Nomy Graphics в разделе Для начинающих
    Ответов: 33
    Последнее: 12.04.2011, 19:25
  2. zx-777 черный экран
    от omaxlab в разделе Несортированное железо
    Ответов: 20
    Последнее: 13.10.2010, 19:21
  3. Вывод картинки на экран
    от Alex Clap в разделе Для начинающих
    Ответов: 17
    Последнее: 22.08.2010, 15:46
  4. Экран...
    от Sonic в разделе Изображение
    Ответов: 9
    Последнее: 26.12.2006, 16:15
  5. ZX 128 - второй экран
    от icebear в разделе Несортированное железо
    Ответов: 8
    Последнее: 06.03.2006, 18:21

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •