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

User Tag List

Страница 2 из 5 ПерваяПервая 12345 ПоследняяПоследняя
Показано с 11 по 20 из 46

Тема: Игра "Вера". Что еще можно ускорить?

  1. #11

    Регистрация
    20.01.2005
    Адрес
    Россия, Вологда
    Сообщений
    957
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Shiru
    Вообще, если адреса хранить - они будут не просто чётные, а все младшие 5 бит будут в нуле. Т.е., в принципе, там можно чего-нибудь дополнительное хранить, а на выводе младший байт and %11100000
    Я это уже понял. Но все же буду анимацию одним битом отмечать. Т.е. при скопе анимации (чего не будет) в принципе будут небольшие тормоза.

    Но все-таки 10000 тактов это не 100000 Нужно бы что-то более кардинальное. Но наверное такого не может быть. Или я ошибаюсь?

    Надо идти к Димке кланяться
    axor/Perspective
    http://abzac.retropc.ru/

  2. #12

    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    11,571
    Спасибо Благодарностей отдано 
    207
    Спасибо Благодарностей получено 
    188
    Поблагодарили
    83 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от axor
    Но все-таки 10000 тактов это не 100000 Нужно бы что-то более кардинальное.
    100000 тут не откуда взять. Однако я думаю, что остальной код у тебя оптимизорован на том же уровне, что и этот. Соотвественно можно и нужно
    его тоже оптимизировать. Например было бы интересно взглянуть на твою процедуру печати юнитов.

  3. #13

    Регистрация
    20.01.2005
    Адрес
    Россия, Вологда
    Сообщений
    957
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от newart
    100000 тут не откуда взять. Однако я думаю, что остальной код у тебя оптимизорован на том же уровне, что и этот. Соотвественно можно и нужно
    его тоже оптимизировать. Например было бы интересно взглянуть на твою процедуру печати юнитов.
    Понятно, что 100000 мы нигде не возьмем.

    За выходные написал модуль для Maper`а, который конвертит карту в формат высказанный в "Идея". Все получилось.

    Но я, кстати, там нашел еще порядка 4000 Осталось еще кое-что.

    Благодаря этому без турбо обновление экрана теперь успевает за 5 фреймов, ранее было за 6. С турбо все гораздо лучше - 2 фрейма. Но наверно 4 фрейма уже не светит. Вернее можно, но нужно памяти как минимум 9 Кб Но если в конце работы будет оставаться, то непременно сделаю это!

    А печать юнита тоже тормоз. Там слишком много проверок на выходы за экран и т.п. Выкладываю...
    Вложения Вложения
    • Тип файла: zip Pr_hero.zip (960 байт, Просмотров: 190)
    Последний раз редактировалось axor; 18.07.2005 в 10:03.
    axor/Perspective
    http://abzac.retropc.ru/

  4. #14

    Регистрация
    20.01.2005
    Адрес
    Россия, Вологда
    Сообщений
    957
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Кто быстрее?

    Если кто-то сможет ускорить нижепредложенный кусок, памятник поставлю

    LD C,(HL) ;Делаем именно так, чтобы прерывание не испортило спрайт поэтому в BC у нас уже есть первые 2 байта спрайта
    INC L
    LD B,(HL)
    INC L
    LD SP,HL ;Теперь стек указывает на начало спрайта
    EX DE,HL ;hl-экран
    LD DE,#FF20

    ;Непосредственно сам вывод спрайта
    LD (HL),C
    INC L
    LD (HL),B
    INC H
    POP BC
    LD (HL),B
    DEC L
    LD (HL),C
    ADD HL,DE

    DUP 6
    POP BC
    LD (HL),C
    INC L
    LD (HL),B
    INC H
    POP BC
    LD (HL),B
    DEC L
    LD (HL),C
    ADD HL,DE
    EDUP

    POP BC
    LD (HL),C
    INC L
    LD (HL),B
    INC H
    POP BC
    LD (HL),B
    DEC L
    LD (HL),C
    BL22SP LD SP,0
    RET

    Меня здесь смущает присутствие команды ADD HL,DE. Но пока ничего лучшего в голову не пришло
    Последний раз редактировалось axor; 18.07.2005 в 17:22.
    axor/Perspective
    http://abzac.retropc.ru/

  5. #15

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

    По умолчанию

    Для начала надо-бы перенести вывод спрайта в место вызова, тысячу-другую тактов сэкономит.

    Насчёт ADD HL,DE - в принципе, можно попытаться выдумать какую-нибудь хитрую перетасовку строк экрана. Пока ничего не надумалось, я вывод раньше также делал (L туда-сюда, потом ADD HL,DE).

  6. #16

    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    11,571
    Спасибо Благодарностей отдано 
    207
    Спасибо Благодарностей получено 
    188
    Поблагодарили
    83 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от axor
    Благодаря этому без турбо обновление экрана теперь успевает за 5 фреймов, ранее было за 6. С турбо все гораздо лучше - 2 фрейма.
    Ничего не путаешь?
    У тебя что спринтер?
    Я что-то не помню спеков с турбой более 200%...

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

  8. #17

    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    11,571
    Спасибо Благодарностей отдано 
    207
    Спасибо Благодарностей получено 
    188
    Поблагодарили
    83 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от axor
    А печать юнита тоже тормоз. Там слишком много проверок на выходы за экран и т.п.
    У меня в игре для каждого размера спрайта отдельная процедура, и для каждого смещения (по X) тоже. Кроме того используется стек, но прерывания запрещены, просто каждую строчку проверяется сколько прошло тактов и не пора ли сделать прерывания.

  9. #18

    Регистрация
    20.01.2005
    Адрес
    Россия, Вологда
    Сообщений
    957
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от newart
    Ничего не путаешь?
    У тебя что спринтер?
    Я что-то не помню спеков с турбой более 200%...
    Нет, у меня Кай-256. Турбо есть.

    Может я конечно что-то не так считаю, но определял фреймы так:

    1. На прерывании висит счетчик. x=x+1

    2. Вне прерываний цикл, который проверяет не достиг ли счетчик опред. числа. В начале цикла естественно стоит halt.

    3. После этого обнуляю счетчик, вывожу карту на экран, формирую теневой экран, печатаю героя.

    4. Снимаю со счетчика число, которое, по-моему, и должно означать за сколько времени я вывел экран и напечатал его в теневом экране, ну и герой там же.

    Что-то не так?
    Последний раз редактировалось axor; 18.07.2005 в 22:51.
    axor/Perspective
    http://abzac.retropc.ru/

  10. #19

    Регистрация
    20.01.2005
    Адрес
    Россия, Вологда
    Сообщений
    957
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Shiru
    Для начала надо-бы перенести вывод спрайта в место вызова, тысячу-другую тактов сэкономит.
    Ну это-то сделать не проблема. Нужно что-то еще придумать. Я просто пока не загромождаю процедуру, чтобы отличать что где.

    Цитата Сообщение от Shiru
    Насчёт ADD HL,DE - в принципе, можно попытаться выдумать какую-нибудь хитрую перетасовку строк экрана. Пока ничего не надумалось, я вывод раньше также делал (L туда-сюда, потом ADD HL,DE).
    Вот кто бы выдумал Это бы значительно ускорило бы все. Ну хотя бы для не турбированных машин. На турбо меня все устраивает.

    Сейчас вот смотрел "ЧВ". Так там все просто летает, по сравнению с моим вариантом. Хотя оценка конечно субъективна. Но на глаз вроде заметна.

    А как Медный выводил теневой экран? И спрайтики 2*2 печатал? Кто-то знает?
    axor/Perspective
    http://abzac.retropc.ru/

  11. #20

    Регистрация
    20.01.2005
    Адрес
    Россия, Вологда
    Сообщений
    957
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от newart
    У меня в игре для каждого размера спрайта отдельная процедура, и для каждого смещения (по X) тоже. Кроме того используется стек, но прерывания запрещены, просто каждую строчку проверяется сколько прошло тактов и не пора ли сделать прерывания.
    Может быть. Но у меня всего один герой и поступать так я пока не буду. Тем более, что ускорив вывод героя ничего кардинально не решить. Если бы у меня их 50 штук бегало.

    Мне важно ускорить вывод тайлов (2*2), ну может еще вывод теневого экрана.
    axor/Perspective
    http://abzac.retropc.ru/

Страница 2 из 5 ПерваяПервая 12345 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 5
    Последнее: 20.06.2005, 00:10
  2. "Ремейк или плагиат?" или "про FIRE & ICE..."
    от antiplagiat в разделе Игры
    Ответов: 27
    Последнее: 04.06.2005, 02:55
  3. Призы конкурса "Твоя игра-2004"
    от axor в разделе Игры
    Ответов: 12
    Последнее: 25.05.2005, 14:17
  4. Результаты "Твоя игра-2004"
    от axor в разделе Игры
    Ответов: 23
    Последнее: 21.05.2005, 19:23
  5. Ответов: 4
    Последнее: 01.02.2005, 22:37

Ваши права

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