VV и v06x точно, emu80v2 думаю тоже. b2m, когда я проверял последний раз, вел себя слегка девиантно, но не так существенно, чтобы повлиять на тестирование разрывов.
VV и v06x точно, emu80v2 думаю тоже. b2m, когда я проверял последний раз, вел себя слегка девиантно, но не так существенно, чтобы повлиять на тестирование разрывов.
Больше игр нет
parallelno(04.07.2022)
ivagor, в моем варианте прерывания тоже разрешены.
А как восстанавливать испорченный фрагмент спрайта? Есть разные варианты, но я не увидел или не понял, какой именно здесь.
- - - Добавлено - - -
Если конкретнее, то проблема возникнет, если прерывание попадет в промежуток от SPHL до DRAW_EVEN_LINE_PARALLELNO2(). Вероятность этого не такая уж большая, чтобы проблема сразу проявилась, но при долгой работе это произойдет.
Если мы ещё ничего не считали со стека, то sp указывает на начало спрайта. Если прерывание произойдет, то оно испортит те два байта перед данными спрайта, а это не страшно.
А если прерывание произойдёт чуть позже, то адрес возврата затрёт спрайт. Использование регистров BC позволяет всегда хранить эти два байта на регистрах и восстановить их в обработчике прерывания.
А перед самым началом спрайта делается двухбайтовая дырка, из которой мы никогда ничего не читаем. Затрёт -- так затрёт.
Можно уж было дать и развёрнутое объяснение. Вас же и другие люди читают.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Последний раз редактировалось ivagor; 05.07.2022 в 07:08.
Sandro, Извини пожалуйста. спасибо что дал развёрнутое объяснение. Но хочу уточнить что притензия не принимается, так как я отвечал не всем, а только
05ivagor
В этой теме кажется кто-то написал о том что нужно держать 2 safety байта до данных. И KTSerg в этой теме выложил свой вариант исходника где так же это было. Поэтому я посчитал что вроде бы все уже этой используют. Сорян.Да, jerri предложил этот вариант в теме robotz (PPC). Точнее он предложил оставлять между спрайтами (минимум) по 2 байта. Просто переход от варианта с "любым" размещением спрайтов к "разреженному" произошел без комментария.
Базырь в новом v06x позволил увидеть механизм возникновения артефакта. В игре, как я понимаю, есть ограничение области рисования спрайта по высоте, если на него наезжает шторка. Если при движении главгероя по вертикали шторка наехала на спрайт врага, то под шторкой останется нестертый фрагмент. Пока его не видно, но когда главгерой сместится по вертикали обратно и врага в это время не будет рядом со шторкой, то из под нее проявится нестертый фрагмент. По моему разумению возможный вариант борьбы - разрешить рисование спрайта под шторкой, чтобы он продолжал затирать.
metamorpho(19.07.2022)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)