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