Что-то мне это не нравится. Попахивает лишним теневым буфером и лишней перекидывалкой графики, которой хотелось бы избежать чуть больше, чем полностью.структура движка подразумевает клиппирование по умодчанию
Значит, говорю ясно и чётко, что мне нужно:
- кидалки из памяти на экран со сдвигами по таблицам чёрно белых спрайтов 2х2 и 3х3 знакоместа
- кидалки должны уметь кинуть в #4000 пятой банки и в #C000 седьмой банки по моему желанию
- никаких промежуточных экранных буферов быть не должно
Этот движок соответствует моим запросам? Ну, или хотя бы может быть допилен до кондиции, отвечая требованиям ТЗ?
Последний раз редактировалось DragonsLord; 23.03.2021 в 13:58.
под твои хотелки требуется абсолютно другой движок.
с учетом забросов на 5/7 экран рекомендую взять процедуру Barsа она больше соответствует твоему ТЗ.
- - - Добавлено - - -
вот оно
https://zx-pk.ru/threads/23544-vyvod...ta-po-x-y.html
С уважением,
Jerri / Red Triangle.
DragonsLord (26.03.2021)
Барс, наверное, ликует
Только вот зачем там ЭТО:
— Буфер подложки 256 байт?
Также мне не нужно:
— Есть возможность зеркалирования и изменения спрайта "на лету";
— Таблица зеркалирования 256 байт
Хотелось бы максимально оптимизированный на скорость мегабыстрый вывод без излишеств.
А также в предложенной демке НЕТ клипирования от слова совсем. Именно поэтому я успешно игнорировал этот код до сих пор. Клиппинг полюбасу нужен.
Последний раз редактировалось DragonsLord; 23.03.2021 в 17:11.
Убери лишнее да и всё. Клиппирование в общем-то легко сделать. Надо допилить всего лишь одну процедуру SHOW_MOVE_BUF.Хотелось бы максимально оптимизированный на скорость мегабыстрый вывод без излишеств.
А также в предложенной демке НЕТ клипирования от слова совсем. Именно поэтому я успешно игнорировал этот код до сих пор. Клиппинг полюбасу нужен.
Вот, какую-то процедуру делал с клипированием, но оно под другие задачи. В новой диззи на ней интро сделано, буковки где вылетают)
https://zx-pk.ru/threads/20554-vyvod...ts-ekrana.html
- - - Добавлено - - -
Эт достаточно быстрый вывод без таблиц движения.. упор на размер кода. Было бы прикольно если кто-то бы смог убыстрить \
Буфер нужен, чтобы восстановить фон затираемый спрайтом, а изменение спрайта это для анимации.
Пихаешь процедуре свой спрайт, она сама просчитывает фазу смещения, и рисует всё на экран. Без таблиц, с таблицами по скорости почти также, только памяти ещё +3Кб под таблицы, что в играх лютая роскошь.
Последний раз редактировалось drbars; 23.03.2021 в 19:13.
DragonsLord (26.03.2021)
В RTS лютая роскошь - это игнорировать потребности в максимально возможной скорости.
Санчез давал растактовку своих табличных процедур. Я конечно такты считать не умею, но на мой ламерский взгляд, я насчитал, что вывод Санчеза в 1,68 раз быстрее Аллодовского вывода Алония. А Алоний жутко гордился, что сделал быстрее Медноногова. Делайте выводы.
В код барса трудно лапы свои пихать, потому что у него мания объединять ВСЁ в одну процедуру. В результате, только автор и понимает, как сие работает. Плюс нигде не озвучены такты. Посему никак не могу прикинуть, подходит ли мне это или нет.
Чтобы вы понимали, на сколько я жажду скорости, то я готов держать две копии процедур и таблиц, для кидания в 5 и 7 банку. Если уж не будет возможно как-то впихнуть адрес вывода в одну версию подпрограмм.
Был бы признателен Джери за труды следующего характера:
- Взять выводилку Санчеза с табличным методом из этой ветки
- Набросить на неё поверх предпросчёт входящих параметров, выхватив его из core_48 (как ты сказал, они совместимы по логике)
- По дороге добавив кидание в 5 и 7 банку.
- Выводить маску НЕ НАДО (но оставить возможность выбора типа вывода: or xor and). Посему, можно уложиться в малое количество регистров и хорошо оптимизировать на скорость.
- Клипирование быть обязано.
И выдать всё это хозяйство мне в виде исходников с маленьким экземплом, демонстрирующим как эти процедуры юзаются. И я начну собирать WarCraft.
Последний раз редактировалось DragonsLord; 23.03.2021 в 22:55.
С уважением,
Jerri / Red Triangle.
а если так?
Ты забыл, что Капоне требовал в обмен на свои услуги? Дружбу я тебе давно кинул и ты её принял
P.S.: Тут Алоний просит дать ему мой 3D уровень + исходник. Типа в новый журнал опубликовать. И я ему конечно же их дам. Я добро помню.
Последний раз редактировалось DragonsLord; 24.03.2021 в 16:54.
речь не о том
в твоей логике есть огромные дыры. и это неуважение.
теперь по дырам.
бросание спрайта на экран 7 - это вообще ниачем.- По дороге добавив кидание в 5 и 7 банку.
у тебя есть тайлы местности - ты их держишь в странице
у тебя есть спрайты персонажей - ты их держишь в страницах тоже
Экран 7 это тоже страница.
как ты собрался с одной страницы в другую кидать спрайты и тайлы БЫСТРО?
рисуй распределение памяти - иначе сам ничего не поймешь.
или спрайт с маской или без. с маской но без маски не бывает.- Выводить маску НЕ НАДО (но оставить возможность выбора типа вывода: or xor and). Посему, можно уложиться в малое количество регистров и хорошо оптимизировать на скорость.
С уважением,
Jerri / Red Triangle.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)