Обалденно смотрится! Мандрил вообще как живой. По моим подсчетам получается 54 цвета. Dec и ivagor, респект!
Обалденно смотрится! Мандрил вообще как живой. По моим подсчетам получается 54 цвета. Dec и ivagor, респект!
Больше игр нет
Decу несомненно респект.
В картинках должно быть (и ирфан говорит что есть) 50 цветов в котенке и 51 в мандриле. 51 в vv, в других эмуляторах может быть 54. А 50 везде должно быть 50.
Что касается просмотрщиков. Если вдруг "одноцветный" не заработает на реале, то его точно можно подстроить, исходник в помощь. С "двухцветным" сложнее, но я сделал все что мог, за счет xor там достигается максимальная скорость изменения цветов, эмуляторам хватает и есть небольшой запас для подстройки.
Ты сам писал, что надо искать подходящие картинки, могу только согласиться. Вероятно должны подходить пейзажи (сверху небо, внизу что-то не синее), восходы, закаты. Возможно Dec еще заборет полосатость, которая проявляется в некоторых конверсиях.
К сожалению нет. Можно ограничить полезную ширину картинки и использовать часть активной области для третьего цвета.
Использование xor (при желании можно заменить на add или sub) позволяет обеспечить минимальное возможное время между первым и вторым out 0Ch. Нужно ли это для реалов - пока не могу сказать с полной уверенностью, но это максимально гибкий вариант, обеспечивающий наибольшие возможности настройки.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Третий съест минимум 8 точек, каждый следующий - еще минимум по 32 точки (по 16 тактов). Речь о точках в режиме 256. И скорее всего получится медленнее, т.к. регистров не хватает.
Наверное можно попробовать прогнать первую палитру через что-либо такое, сравнивая получившиеся от 0 до 17 уровни.
Скрытый текст
Код:ClrLum: push b mov b,a ani 111B mov c,a mov a,b rrc rrc rrc ani 111B add c mov c,a mov a,b rlc rlc ani 11B add c pop b ret[свернуть]
Найти индекс с самым минимальным и использовать его как индекс цвета бордюра, надеясь что он не станет сильно ярче (или вообще не поменяется) в следующих далее палитрах.
Скрытый текст
Код:;DrkBrd Set border to darkest color in palette ;INPUT <HL> = 16-byte palette address ;OUTPUT [Border] becomes index of darkest color in palette DrkBrd: lxi b,10FFh DrkB01: mov a,m call ClrLum ; <A> is guaranteed to be [0..11h] cmp c jnc DrkB02 mov c,a mov e,b ; 16 - index DrkB02:inx h dcr b jnz DrkB01 mvi a,10h sub e jmp SetBrd[свернуть]
Если в картинке отсутствует чёрный, то бордюр будет каким-то из тёмных цветов (в Robotz в меню опций бордюр вышел тёмно-синим). По нормальному, надо ещё разную яркость компонент с одним уровнем учесть.
В пределе можно пробежать по всем палитрам, найти minimum minorum, замутить его с частотой изменений и выбрать индекс самого тёмного цвета с наименьшей частотой изменений.
Можно ещё "нормализовать" биты изображения так чтобы нулёвой индекс палитры всегда получался наиболее тёмным. Но это наверное при конверсии удобнее делать.
Восемью точками можно было бы пожертвовать ради многоцветия. Даже 40 точками во многих случаях, если котенок все еще влезает в кадр на фоне заката.
Больше игр нет
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)