Посмотрите вложение. Что-то еще можно ускорить? Может кто подскажет какой-либо более "удобный" формат для скорости?
Посмотрите вложение. Что-то еще можно ускорить? Может кто подскажет какой-либо более "удобный" формат для скорости?
axor/Perspective
http://abzac.retropc.ru/
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
да фиг его знает... и так вроде намана... ведь это же спек, и предел близок...
Мои интры: [Kukarachess][Super boot rmx][tRUSHE MOSAIc][BLAZE]
Мои игры: [Overload][Removal]
Список игр для ZX-Spectrum: [2015] [2014]
ADD HL,HL ;HL=HL*32Сообщение от axor
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,HL
Этот кусок точно можно ускорить, странно но подобное я видел и в ЧВ.
А как ускорить?Сообщение от newart
Подскажи, как можно быстро по коду в HL - 0-511 высчитать адрес спрайта? Спрайты, понятно, выровнены по адресу (#c000), но формат линейный (почти).
Или подскажите кто-нибудь, как можно быстро умножить на 32.
axor/Perspective
http://abzac.retropc.ru/
Если бы не формат анимации на карте, то можно было бы карту хранить в более выгодном формате. А именно, уже сразу умножить код спрайта на 32. Все равно в карте он занимает 2 байта. Но, блин, у меня там анимацияХотя... Надо подумать
![]()
axor/Perspective
http://abzac.retropc.ru/
Можно не только хранить в карте уже умноженное число на 32, а сразу адрес спрайта. Таким образом у меня на выводе карты будет экономиться порядка 10000 тактов.
Пока правда не придумал как быть с анимацией. Но вроде выход есть. Ведь все адреса спрайтов четные. Поэтому можно задействовать 1-й бит в числе...
axor/Perspective
http://abzac.retropc.ru/
Вообще, если адреса хранить - они будут не просто чётные, а все младшие 5 бит будут в нуле. Т.е., в принципе, там можно чего-нибудь дополнительное хранить, а на выводе младший байт and %11100000
Я так понял, выводишь на экран асинхронно прерываниям.Сообщение от axor
Вопросец - за один игровой "тик", один оборот игрового цикла, сколько спрайтов выводятся на экран? Сколько раз отработает этот кусочек кода?
Alex Raider, Flash inc. 1992-1997 Новосибирск
Теперь вывод экрана привязан к прерываниям. Но может отказаться от этого?Сообщение от Raider
В первой деме вывод экрана не был привязан и выводился асинхронно.
Если ты имеешь ввиду вывод тайла, то один тайл за цикл (формирование теневого экрана) выведется 144 раза. Это происходит после того, как теневой экран выкидывается на видимый экран.Сообщение от Raider
axor/Perspective
http://abzac.retropc.ru/
Ну мож имеет смысл убивать 512 байт памяти и заменять серию ADD..Сообщение от axor
на такое:
LD H,XX
LD L,YY
LD A,(HL)
INC H
LD H,(HL)
LD L,A
. . .
хотя в гейме я бы не стал. в демке - обязательно.
Alex Raider, Flash inc. 1992-1997 Новосибирск
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)