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

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 15

Тема: Переброска ЧБ картинки...

  1. #1
    Guru Аватар для newart
    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    11,435
    Спасибо Благодарностей отдано 
    191
    Спасибо Благодарностей получено 
    145
    Поблагодарили
    61 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Переброска ЧБ картинки...

    Подскажите как быстрее перекинуть ЧБ картинку на экран, с учетом того
    что память очень ограничена. Размер и формат картнки стандартный 6144
    байт. Всего есть пять картинок, в каждой из них есть некоторое кол-во
    повторяющихся байтов. (0, 255, и %01010101)
    Изначально я использовал процедуру вида:

    ld af,#ffff
    ld bc,#0
    ld hl,#%0101010101010101
    ld de,10
    push de
    ld de,14
    push de
    push bc
    push bc
    push bc

    За счет повтора байтов удавалось перекинуть
    картнку за фрейм и сэкономить память.
    Но 48-я память кончилась, и я решил отказаться
    от фрейма в пользу памяти.

    Однако пока кроме банального LDI в голову ничего не
    приходит.
    От процедуры зависит судьба игры.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Veteran Аватар для lvd
    Регистрация
    23.01.2005
    Сообщений
    1,113
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от newart
    Подскажите как быстрее перекинуть ЧБ картинку на экран, с учетом того
    что память очень ограничена. Размер и формат картнки стандартный 6144
    байт. Всего есть пять картинок, в каждой из них есть некоторое кол-во
    повторяющихся байтов. (0, 255, и %01010101)
    Изначально я использовал процедуру вида:

    ld af,#ffff
    ld bc,#0
    ld hl,#%0101010101010101
    ld de,10
    push de
    ld de,14
    push de
    push bc
    push bc
    push bc
    Найти ещё несколько частых вордов и запхнуть их в hl'/bc'/af'/ix/iy ?

  4. #3
    Guru Аватар для newart
    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    11,435
    Спасибо Благодарностей отдано 
    191
    Спасибо Благодарностей получено 
    145
    Поблагодарили
    61 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от lvd
    Найти ещё несколько частых вордов и запхнуть их в hl'/bc'/af'/ix/iy ?
    Я же говорю страый метод уже не приемлем, слишком много места занимает.
    Уже решил, буду юзать ldi, тормозно, но других вариантов не вижу.
    Резка экран на спайты (чтобы исключить залитые знакоместа) выйгрышь дает смехотворный.

  5. #4
    Veteran Аватар для lvd
    Регистрация
    23.01.2005
    Сообщений
    1,113
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от newart
    Я же говорю страый метод уже не приемлем, слишком много места занимает.
    Уже решил, буду юзать ldi, тормозно, но других вариантов не вижу.
    Резка экран на спайты (чтобы исключить залитые знакоместа) выйгрышь дает смехотворный.
    А ещё можно повторяющиеся последовательности типа dup N:push hl: edup и любые другие загонять в лупы и 'процедуры' (ld ix,$+7:jp proc .... proc: ... :jp (ix) ).

  6. #5
    --- Аватар для Shadow Maker
    Регистрация
    01.03.2005
    Адрес
    Саранск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    235
    Поблагодарили
    100 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    И в чем тогда будет выйгрыш? В скорости не будет, примерно как тот же ldi... В общем похож оставь ldi либо почему бы не сделать один раз декранч этой хрени предварительно, поюзать, потом убить? Или она тебе постоянно нужна в памяти? Или игра сугубо 48k и не больше?
    Свирепый агрессивно-депрессивный мордовец!
    Не уверен - не напрягай!

    Не сдавайся. Дыши?

    Virtual TR-DOS

  7. #6
    Guru Аватар для newart
    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    11,435
    Спасибо Благодарностей отдано 
    191
    Спасибо Благодарностей получено 
    145
    Поблагодарили
    61 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Shadow Maker
    В общем похож оставь ldi либо почему бы не сделать один раз декранч этой хрени предварительно, поюзать, потом убить? Или она тебе постоянно нужна в памяти? Или игра сугубо 48k и не больше?
    Картинка каждый игровой цикл заново выводится, игра 128к.

  8. #7
    Guru Аватар для newart
    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    11,435
    Спасибо Благодарностей отдано 
    191
    Спасибо Благодарностей получено 
    145
    Поблагодарили
    61 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Кто-нибудь знает во сколько фреймов укладывался ЧВ? (в среднем)
    У меня получается порядка 4-7, и это без всяких алгоритмов поиска
    пути.
    Да и в турбо режиме у меня скорость игры не увеличивается.

  9. #8
    Master
    Регистрация
    16.01.2005
    Сообщений
    615
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Картинка, которую ты перекидываешь - она статична? Т.е., её исходные данные никогда не изменяются?

  10. #9
    Activist Аватар для Alex/AT
    Регистрация
    14.03.2005
    Адрес
    Russia, Saint-Petersburg
    Сообщений
    213
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Стоп... а почему "классический" подход типа LDSP/POP HL/DE/BC/AF/EX/EXA/POP HL/DE/BC/AF/LDSP/PUSH ... не катит?

  11. #10
    Master
    Регистрация
    04.03.2005
    Адрес
    Ukraine, Kiev
    Сообщений
    792
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Talking

    Цитата Сообщение от newart
    Подскажите как быстрее перекинуть ЧБ картинку на экран, с учетом того
    что память очень ограничена. Размер и формат картнки стандартный 6144
    байт. Всего есть пять картинок, в каждой из них есть некоторое кол-во
    повторяющихся байтов. (0, 255, и %01010101)
    Изначально я использовал процедуру вида:

    ld af,#ffff
    ld bc,#0
    ld hl,#%0101010101010101
    ld de,10
    push de
    ld de,14
    push de
    push bc
    push bc
    push bc

    За счет повтора байтов удавалось перекинуть
    картнку за фрейм и сэкономить память.
    Но 48-я память кончилась, и я решил отказаться
    от фрейма в пользу памяти.

    Однако пока кроме банального LDI в голову ничего не
    приходит.
    От процедуры зависит судьба игры.
    Опиши более точно задачу, картинка статическая ? Может это спрайтовая картинка ?
    AAA когда меня режут, я терплю, но когда дополняют, становится нестерпимо.

Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Графический редактор ZX-картинки на PC
    от Dr.Lion/RSM в разделе Графика
    Ответов: 45
    Последнее: 21.06.2014, 17:31
  2. Ограничение на размер картинки!
    от CHRV в разделе Форум
    Ответов: 2
    Последнее: 21.04.2005, 01:24

Ваши права

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