User Tag List

Показано с 1 по 10 из 87

Тема: Edge Grinder для ZS GMX

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #33

    Регистрация
    03.07.2021
    Адрес
    г. Кировск
    Сообщений
    922
    Спасибо Благодарностей отдано 
    87
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    156 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от izzx Посмотреть сообщение
    сделал так, чтобы в тот момент, когда проседал FPS, второстепенный код не выполнялся
    Если он "второстепенный" и не критичен для работы - может, его вообще убрать? =))
    Поглядел изменения - не во все въехал. Трудновато вникать в чужие исходники, да еще переписанные по диагонали (эт я про адаптацию с Амстрада).
    Но озадачил вот этот момент (файл EG_Sprites10.asm):

    Код:
    ; sprites are 6 bytes wide, so repeat another 5 times
        ld a,(hl)
        ld (de),a
        inc e;
    ;    res 3,h
    ;---
    	push de
    	ld de,80
    	and a
    	sbc hl,de
    	pop de
    ;---
        ldi
    ;    set 3,h
    ;---
    	push de
    	ld de,80
    	add hl,de
    	pop de
    ;---
    ;
        ld a,(hl)
        ld (de),a
        inc e
    ;    res 3,h
    ;---
    	push de
    	ld de,80
    	and a
    	sbc hl,bc
    	pop de
    ;---
        ldi
    ;    set 3,h
    ;---
    Если это вывод спрайтов - он так и остался вертикально-побайтово. Но даже если это что-то иное - процедура значительно похудеет и ускорится, если убрать LDI оттуда.
    Заменяем LDI на 4 команды (LD A,(HL):LD (DE),A:INC E/DE:INC L/HL), зато освобождаем пару BC, и можно убрать PUSH-POP DE, заменив в сложении/вычитании DE на BC:

    Код:
    	and a
    	sbc hl,bc
    Еще и не нужно будет каждый раз загружать число 80 в BC.

    - - - Добавлено - - -

    Подумал - LDI можно оставить, просто после каждого LDI добавить команду INC C (чтобы восстановить значение 80) - это быстрее и короче, чем 4 команды вместо LDI.
    Достаточно загрузить один раз 80 в начале процедуры и все. Основное же изменение останется (уборка PUSH-POP DE и замена DE на BC).

    Этот пользователь поблагодарил reddie за это полезное сообщение:

    izzx(04.09.2021)

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

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

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

Похожие темы

  1. EYEACHE2 и Across The Edge на GMX
    от Evgeny Muchkin в разделе Демо
    Ответов: 1
    Последнее: 12.08.2019, 21:23
  2. Ответов: 0
    Последнее: 24.11.2017, 03:24
  3. ZX BUS EDGE!
    от ZXFanat в разделе Устройства ввода
    Ответов: 10
    Последнее: 15.07.2013, 19:16

Ваши права

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