Дмитрий, копию сайта делал давно, сейчас заполз к нему и повторно на всякий случай всё выдернул. куда залить на долгое хранение, а то в дропе у меня там уже место жим жим...
Яндекс-Диск или лучше облако на mail.ru, там места больше даётся.
Может, мы обидели кого-то зря,
Сбросив пару лишних мегатонн,
И горит зелёным пламенем земля,
Там, где был когда-то Пентагон!..
Profi-576 v3.2/AY-3-8912A GI/FDD-5.25'
сдую-ка я пыль с этой темы.
многие знают, что для zx-evolution (или как ещё её называют pentevo) есть такая штука, как evosdk. посидел я над ним, почитал, подумал, попробовал. отложив в сторону основной проект я прикинул, а что если...кинуть к Спринтеру и этот сдк? но нет. логика работы самого сдк мне не сильно нравится. особенно по части кодогенерации. Я имею в виду то, что весь багаж процедур, занимающий около 9кб (там 8 с копейкой) погружается всегда и никак иначе. даже пустой пример их комплекта всегда занимает около 10кб (9кб того, что в либе и ещё сколько-то того. что нагадил сам sdcc). поскольку с sdcc я знаком плохо, да и большая часть народу всячески ненавидит версии 3.х.х (а 2.9 сильно не оптимальный), я решил расчехлить Hi-Tech C 3.09. Да, цпмный, ну и что. зато я с ним знаком. начал переписывать стоковые либы под спринтер. так же наковырял некоторые процедуры из исходников библиотек для z88dk (там хоть как то Спринтер был поддержан). Хотя почти все процедуры пришлось переписать даже от туда. Например, несколько некорректно (с моей точки зрения или я просто не понял всего) были реализованы всякие fputc, и другие подобные процедуры. про read, open и другие файловые процедуры можно сказать тоже самое. начал ковырятельства где то с пятницы прошлой недели. а может с четверга. не важно. в качестве ближайшей цели я поставил себе адаптацию примера из evosdk - sprites - демка с шариками на фоне статичной картинки. во вложении к посту как раз результат. он сильно отличается от того, что есть в примерах evosdk. например:
1. образец_1 (evosdk) после сборки занимает в памяти 224кб (там после сборки есть инфа о ресурсах).
1.1. Мой вариант везде занимает около 90кб.
2. Код образца_1 в любом случае не менее 10кб (скорей всего больше, т.е. либа напихает 9кб + код генерированный sdcc из main.c).
2.1. мой вариант по коду занимает всего 5.2кб со всеми включёнными процедурами/функциями из библиотеки + код "main.c".
3. Образец_1 не имеет file oi.
3.1. мой образец имеет. хотя тут спорный момент - есть универсальность - можно подгрузить любую фоновую картинку, палитру для фона, спрайт с шариками и палитра для шариков. Сборка всего проекта не требуется, достаточно подменить файлы. Но это сильно спорно, может оно и не нужно.
4. По данным образца_1, макс.кол-во шариков на кадр не должно превышать 22, якобы начинает тормозить. на деле ощутимые тормоза начинаются от 30 шариков. на 64х шариках уже почти слайд-шоу.
4.1. Мой обращей, без затупа и мерцания может выдать 118 шариков. дальше нужно думать с синхрой, т.к. некоторые шарики начинают "помигивать". Второй экран не использую (если честно, не разобрался как с ним работать). Хотя этот момент тоже спорны и не совсем честный, т.к. у спринтера есть аксель, у pentevo baseconf его нет. возможно, на tsconf будет быстрее, с его дма и кэшем.
Файлы данных - отражённые по вертикали бмп файлы, с откушенным заголовком. фоновая картинка (bgspr.spr) имеет размер 320на256, отдельно файл палитры - bgspr.act в формате BGRa (32 бита), 128 цветов (512 байт). Файл с шариками balls.spr. То же отражённый бмп без заголовка, но имеет размеры 64на16. Файл палитры balls.act, так же 128 цветов в том же формате.
для тех, у кого нет возможности просмотреть эту "демку", вот скриншот:
Скрытый текст
[свернуть]
для сравнения - оригинальные шарики:
Скрытый текст
[свернуть]
Пока на работе и дёрнуть ролик с эмуля не могу - комп затупливает. может дома смогу.
Архив можно распаковать прям на спринтере - есть утилита unzip.exe прекрасно понимающая текущий формат zip. ну или просто кинуть на винт/дискету. для просмотра на эмуляторе - подключить образ дискеты или винта и туда закинуть содержимое архива.
Для тех у кого есть реал - просьба отписаться о работоспособности на реале, включая баги. Известный мне баг - при запуске демки из под консоли, комп зависает (зависание в досе на процедуре опроса клавиатуры). Если запускать из под Флекса, то проблем я не нашёл. Выход из демы по кнопке Esc.
Последний раз редактировалось Sayman; 25.03.2015 в 16:14.
Sayman, сильно не бей - баги таки есть.
1.шарики пропадают в некоторых плоскостях
2.шарики стают полосатыми в некоторых плоскостях
в эмуляторе для сравнения отрисовки шаров.на тормоза не обращать внимания![COLOR="Silver"]
3. в эмуле шариков больше
на скриншоте лучше видно полосатые шарики.те которые двоятся визуально в анимации отлично смотрятся
Последний раз редактировалось palsw; 27.03.2015 в 21:43.
Радио-Губитель Канал на YouTube
palsw,
1. чем ты грабил видео с эмулятора и что там у тебя за комп? у меня в эмуле нет вообще тормозов.
2. на реале всё понятно, нужно копать работу с синхрой видимо. буду разбираться, Спасибо!
видео не хочет вставляться...
http://www.youtube.com/watch?v=lPvrnrLzIYM
Последний раз редактировалось Sayman; 28.03.2015 в 11:00.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
palsw, A4 слабый проц. у меня на работе почти такой же (атлон 2 х2). тормоза при граблении почти постоянно
Господа. Прошу помощи. Чувствую, что сам не справляюсь, руки уже опускаются. нужна помощь в разборе работы видеоконтроллера Спринтера по исходникам его конфы написанные, как известно, на AHDL. Очень сильно требуется узнать особенности работы бита номер 2 который устанавливается в номере видеостраницы.
попробую пояснить то, что сам знаю или понял:
предположим, что работаем с режимом 320на256 8bpp. включаем через дос режим, включаем видеостраницу 50h в (например) третье окно проца и выводим фоновую картинку. вывод осуществляется путём вброса данных картинки в видео память. чтобы картинку увидеть нужно обязательно сделать ei halt. точнее, ei может быть в любом другом месте, а вот halt сделать чтобы увидеть картинку это обязательное условие.
так же у номера видеостраницы есть второе назначение - управление режимом вывода. бит номер 3 указывает на использование прозрачности (цвет FF). с ним проблем нет. так же есть бит 2 указывающий на то, что данные записываемые в видеопамять не будут дублироваться в озу. согласно документации, при выводе на экран (записи в видеопамять данных) все данные дублируются в озу (номера страниц озу соответствуют номеру видео страницы). бит 2 должен отключает запись в озу. т.е., как написано в доке, это даёт возможность для временного вывода каких-то объектов на экран, без сохранения под ними области и последующего восстановления. я предполагал, что включив этот бит и выводя какие- то объекты поверх фона, я делаю sync() (т.е. ei:halt), эти объекты и фоновая картинка показались, но после, как я думал, данные объекты будут затёрты тем, что было ранее записано в озу, т.е. данными фоновой картинки. а вот фига! или я что-то не так понял или есть какая-то ошибка в конфе или иная особенность работы именно этого бита. я всё исковырял уже как могу в силу своих познаний и умений. при выводе объектов на каком-то фоне всегда остаётся "шлейф" (если эти объекты двигаются). хоть какой я там бит выставляю. работает идеально только бит прозрачности или совсем без битов. было бы хорошо, если бы знающие люди посмотрели в исходник конфы и нашли как там работает этот бит 2. работает ли он вообще, может разработчик его не включил в конфу?!
У кого есть собранный и рабочий Sprinter - проверьте как у Вас работает balls.
От Вас зависит многое - надеюсь на взаимопонимание
Радио-Губитель Канал на YouTube
проверил balls на sprinter'e работает так же как на первом видео из поста #1467
ZX-777
Sprinter 2000s
Macintosh-разные
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)