Просмотр полной версии : Как это работает? тред
Здесь задавайте вопрос, если хотите знать, как работает тот или иной эффект в той или иной деме.
Я не понимаю как ты объясняешь :) но все же.
полноэкранный ротатор атрибутов. никогда не мог врубиться
70000/768 = 91 такт. Это вполне достаточно для честного ротатора.
Например:
add hl,bc ;U+=dU
ld a,h ;U
exx
add hl,bc ;V+=dV
ld d,h ;V
ld e,a ;U
ld a,(de) ;байт из текстуры по координатам VU
exx
ld (de),a ;вывод на экран
inc e
:60 тактов на байт
Есть более быстрые ротаторы. Например, с использованием патчей:
inc h/dec h/nop
inc l/dec l/nop
ld d,(hl)
inc h/dec h/nop
inc l/dec l/nop
ld e,(hl)
push de
Патч делается на одну строку, один раз за экран. То есть на всех строках шаги одинаковые. Зритель этого не замечает.
На вопрос о трассе может ответить Shiru. Он копал этот вопрос.
В общих чертах: дорога выводится построчно. Возможно, готовыми строками. На приставках для этого применяется что-то вроде мультиколора. Расположение строк считается не по всему растру, а только на нескольких линиях, между ними происходит интерполяция.
Хранить надо, разрезав трассу на довольно большие части. Это можно видеть в игре Scalextric. Там топорный движок (вроде даже совсем ничего не считается, тупо таблица), но идея понятна, даже можно нарисовать свою трассу.
Я не понимаю как ты объясняешь :) но все же.
полноэкранный ротатор атрибутов. никогда не мог врубиться
Обьяснения Алона в основном понимает только тот, кто и сам знает, как это работает)
Я думал, будут вопросы по более сложным эффектам.
а можно про игры? если можно меня всегда интересовало как сделаны гонки, тоесть дорога в гонках, для примера crazy cars 2 и wec le mans. И применительно к спеку какую часть лучше отабличить а где посчитать? и как трассу хранят?
+1
---------- Post added at 14:18 ---------- Previous post was at 14:17 ----------
Я думал, будут вопросы по более сложным эффектам.
Хорошобы обьяснять в псевдокоде, а уже потом исходником пугать.
---------- Post added at 14:19 ---------- Previous post was at 14:18 ----------
Патч делается на одну строку, один раз за экран. То есть на всех строках шаги одинаковые. Зритель этого не замечает.
Назови имена дем.
Цитата:
Сообщение от alone Посмотреть сообщение
Патч делается на одну строку, один раз за экран. То есть на всех строках шаги одинаковые. Зритель этого не замечает.
Назови имена дем.
Eye Ache, Tryptomine Dream.
---------- Post added at 13:29 ---------- Previous post was at 13:26 ----------
ну коли так яб хотел узнать про мультиколор фрактал зумер из eye ache 2 и воксельный полет там же
Не знаю, как сделан фрактал зумер в Eye Ache 2, но я делал такой во весь экран. Заготавливается до фига картинок фрактала в разных масштабах и между ними делается зум.
Воксельный полёт, по словам Rst7, рассчитан честно. Это так называемый эффект "Mars". Он есть ещё в Higher State и Over the Top. Рисуется по столбцам. Про его математику вроде как есть статьи на английском.
Башенка - векторная анимация, kkolor - растровая анимация заготовленными знакоместами (то же в Weed в конце).
Дим, расскажи алгоритм зум-скролла (Greets из EYEACHE2) или Intro из Dizzy 7.2 (by Titus). Код не смотрел, догадки так есть кое-какие. По вертикали увеличение понятно, делается дублированием строк. А вот по горизонтали какой способ наиболее быстрый? Придумал только, что можно расчитывать координаты и соединять точки линией.
Можно ссылку на Dizzy 7.2?
В Eye Ache заранее рассчитана графика на все масштабы строк.
Если не рассчитывать заранее, то можно брать графику целыми байтами или даже знакоместами. Это почти не исказит рисунок при масштабировании на +-20%. А для более крупных и мелких масштабов можно заготовить копии другого размера.
Ротатор в The Link как раз целыми байтами (там заготовлено по байту на каждое из 8 направлений от каждой точки текстуры).
Intro из Dizzy 7.2 (by Titus).
эм... может у меня спросить? )
---------- Post added at 15:58 ---------- Previous post was at 15:56 ----------
Хотя ладно, пускай Алоне ответит, это же его тема)
---------- Post added at 16:03 ---------- Previous post was at 15:58 ----------
Можно ссылку на Dizzy 7.2?
http://vtrdos.ru/gamez/d/DIZZY_7.ZIP
Что ж я за автора буду отвечать :) Я там увидел какой-то поток масок по 2 байта, где в C вроде как закодирована маска, а в B - ширина в байтах.
Что ж я за автора буду отвечать :) Я там увидел какой-то поток масок по 2 байта, где в C вроде как закодирована маска, а в B - ширина в байтах.
Ну не совсем)
эм... может у меня спросить? )
Так спрашивал уже, ответ был копать код. Смотреть чужой я не любитель :) Был интересен алгоритм расчета горизонтальной строки, а не реализация :)
Кстати, версия с расчитанным шрифтом не подходит. Просто памяти не хватит, чтобы все варианты строк хранить.
А это не шрифт, а только маски на случай установленного пикселя. Шрифт там в (DE), по байту на пиксель.
А это не шрифт, а только маски на случай установленного пикселя. Шрифт там в (DE), по байту на пиксель.
А откуда берутся маски? ;-)
Придумал только, что можно расчитывать координаты и соединять точки линией.
Кстати, насчёт заливки по горизонтали есть тупой способ, который никто не использовал:
or d;#fe
ld b,a
ld c,(hl)
ld a,(bc) ;#fexx/#ffxx
ld (hl),a
inc l
:33 такта на байт
---------- Post added at 15:25 ---------- Previous post was at 15:23 ----------
А откуда берутся маски? ;-)
Да 64 байта не влом и каждый фрейм посчитать :)
Да 64 байта не влом и каждый фрейм посчитать :)
Верно)
Интересует скролл из интро Titus'а к Navy Seals.
Как уже где-то писал ранее, до сих пор встает при виде этого интро и при звуках этой музыки.
Цитата:
Сообщение от alone Посмотреть сообщение
Кстати, насчёт заливки по горизонтали есть тупой способ, который никто не использовал:
or d;#fe
ld b,a
ld c,(hl)
ld a,(bc) ;#fexx/#ffxx
ld (hl),a
inc l
:33 такта на байт
Я немного не в теме можно поподробнее что где? объясните тугому плз.
Сначала рендерим точки (места цветопереходов) на экран. Потом по таблице 512 байт ксорим их слева направо.
Сверху вниз проще :)
Скоро Forever, эффекты под 48K в фаворе :)
Не понял. Все вымерли. Никто уже не интересуется демоэффектами?
Не понял. Автор топика вымер. Никто уже не ответит на мой вопрос про интересующий демоэффект?
Не знаю, о чём речь. Дайте ссылку на этот эффект. Я знаю интро Rst7 к Navy Seals.
Не знаю, о чём речь. Дайте ссылку на этот эффект. Я знаю интро Rst7 к Navy Seals.
http://vtrdos.ru/gamez/n/NAVY_S_A.ZIP
Не знаю, о чём речь. Дайте ссылку на этот эффект. Я знаю интро Rst7 к Navy Seals.
http://vtrdos.ru/gamez/n/NAVY_S_A.ZIP
Лас, как ты мог? Рассекретил Алону такой сайт. Теперь он догадается там смотреть и другие интрушки, ай-яй-яй. А так все было засекречено здорово.
Titus, кстати ты про алгоритм зум-скролла так и не рассказал :) Подробности будут?))
Titus, кстати ты про алгоритм зум-скролла так и не рассказал :) Подробности будут?))
Алоне сейчас расскажет) Там все просто)
http://zxaaa.untergrund.net/get.php?f=DEMO3/csa.zip
Как сделан этот эффект эквалайзера (который волной черно белый), возможно ли увеличение колличества линий или там тактовый голод?
http://cs406324.userapi.com/v406324991/4e22/4ScJJ2Cu2I8.jpg
Цитата:
Сообщение от alone Посмотреть сообщение
Не знаю, о чём речь. Дайте ссылку на этот эффект. Я знаю интро Rst7 к Navy Seals.
http://vtrdos.ru/gamez/n/NAVY_S_A.ZIP
8 вариантов строк, 128 фаз поворота, 8 сдвигов, каждая копия по 6 байт. Итого 48 килобайт.
Простое копирование на экран.
http://zxaaa.untergrund.net/get.php?f=DEMO3/csa.zip
Как сделан этот эффект эквалайзера (который волной черно белый), возможно ли увеличение колличества линий или там тактовый голод?
Там складывается три синуса, получается Y-координата. По этой координате выставляется точка. Времени остаётся вагон.
Это ещё и залить можно ксором. Rst7 заливал.
moving shit - Illusion X-Trade?
http://zxaaa.untergrund.net/get.php?f=DEMO/illusion.zip
Объясни как в предыдущем посте
Алоне сейчас расскажет) Там все просто)
Я так понимаю, там буфер скроллера 4 байта на строку? Задаём параметр SIZE — получаем фазу строки. Собственно этот кусочек интересен.
moving shit - Illusion X-Trade?
http://zxaaa.untergrund.net/get.php?f=DEMO/illusion.zip
Объясни как в предыдущем посте
Имеется текстура. Наша задача - вывести её на экран, двигаясь по экрану линейно, а по текстуре синусоидально. Код не смотрел, но скорее всего там сделано несколько процедур синусоидального обхода (в разных фазах).
От строки к строке начальная координата в текстуре тоже двигается синусоидально.
Лучшая реализация - в дентре от BW на CC000. Там во весь экран и фреймово.
alone, поделись мыслями как сделено 3D в Коронис Рифт
http://www.worldofspectrum.org/showscreen.cgi?screen=screens/in-game/k/KoronisRift.gif
Движки в буржуйских играх довольно сумасшедшие. Наши такие не осиливали никогда.
Это именно линии, а не полигоны. См. Rescue On Fractalus! и The Eidolon от тех же авторов.
В данном случае, скорее всего, используются чанки 4x1. Возможно, строится от заднего плана к переднему, но от переднего к заднему может быть быстрее.
Линии легче (но не факт, что быстрее) рисовать от задних к передним и сразу с заливкой. Как вычисляется само расположение линий с отсечением по границе экрана - это матан.
Движки в буржуйских играх довольно сумасшедшие. Наши такие не осиливали никогда.
Считаешь, что подобные игры писали уже взрослые дяди?
См. Rescue On Fractalus! и The Eidolon от тех же авторов.
В данном случае, скорее всего, используются чанки 4x1. Возможно, строится от заднего плана к переднему, но от переднего к заднему может быть быстрее.
как строятся линии я не понял, но на экран они кидаются из буфера (LDI), при этом каждая строка дублируется.
Цитата:
Сообщение от alone Посмотреть сообщение
Движки в буржуйских играх довольно сумасшедшие. Наши такие не осиливали никогда.
Считаешь, что подобные игры писали уже взрослые дяди?
Loren C. Carpenter (born 1947)
Noah Falstein was born in 1957
Aric Wilmunder was born in 1961
Вот история: http://mixnmojo.com/features/sitefeatures/LucasArts-Secret-History-Maniac-Mansion/6
непосредственное отношение к игре имеет David Fox - "Designer/Project leader, programmer"
в компьютерной индустрии эта игра оказалась первой где использовались фракталы.
вот что делает время (на первой фотке усатый в центре).
другое дело что конверсию на спектрум делала совсем другая команда.
в компьютерной индустрии эта игра оказалась первой где использовались фракталы.
Какую роль они там исполняют? (игру сегодня увидел впервые)
Какую роль они там исполняют? (игру сегодня увидел впервые) горы строются с помощью них (но конкретных формул я не знаю).
я на эту игру тоже внимания не обращал, а она оказалась революционной в плане технологий.
Rescue On Fractalus! вообще вроде считают лучшей игрой на атари 8 бит.
Чумавая игрушка! Пойду врублю проектор на всю стену и буду рубаться! :)
Понравилать статейка Flying/DR.
вот это я понимаю разжёвано! Чтобы все так писали статьи....
Извиняюсь что тут но вроде по теме. Решил почитать как бамп на спектруме делают. Понравилать статейка Flying/DR.
В ZX-Guide #4 описан более быстрый код. См. статью "Ускорение".
Начните с
ld hl,...
add hl,bc
ld d,(hl)
ld hl,...
add hl,bc
ld e,(hl)
push de
И всё станет понятно.
Надеюсь по теме.
"Как это НЕ работает" :)
Ссылка на самуУ демУ (http://zx.pk.ru/showpost.php?p=430425&postcount=147)
Было бы хорошо, если разжевали ту самую бегущую строку, бордюрно-экранную.Особенно в части как именно по экрану двигают, и синхронят с бордюром. Как по бордюру оно движЫЦЦАа - немного и так понятно. Но вопрос вообще-то не в этом. Что такого "хитрого" в этом коде, что в одних эмулях замечательно работает, в других, частичЬно, (хе-хе, не буду указывать авторство), но самое интересное и главное - совершенно не работает в железном эмууляторе Speccy2010 :((((((
Пробовал несколько прошивок, и старых и новых, и от автора, которому похоже бесполезно задавать этот вопрос, ибо он проект забросил(???).
Ну, кто еще проверит , и объяснит мне, где я не прав?
Ах да, скрины двух эмулей, для сравненийя:
http://savepic.ru/3753988.jpg
В Спекки2010 вообще только верхняя красНаЙя "указка" отображаеЦЦо.
Что с кодом не так? Или с железом у мну?:v2_conf2:
Было бы хорошо, если разжевали ту самую бегущую строку, бордюрно-экранную.Особенно в части как именно по экрану двигают, и синхронят с бордюром. Как по бордюру оно движЫЦЦАа - немного и так понятно. Но вопрос вообще-то не в этом. Что такого "хитрого" в этом коде, что в одних эмулях замечательно работает, в других, частичЬно, (хе-хе, не буду указывать авторство), но самое интересное и главное - совершенно не работает в железном эмууляторе Speccy2010 (((((
Пробовал несколько прошивок, и старых и новых, и от автора, которому похоже бесполезно задавать этот вопрос, ибо он проект забросил(???).
Ну, кто еще проверит , и объяснит мне, где я не прав?
Ах да, скрины двух эмулей, для сравненийя:
Эту дему досканально разбирал тибох. Надеюсь у него остались запчасти. Автор демы Величайший кодер Бузи.
http://busy.speccy.cz/tvorba/clanky.htm
Кодер РСТ 7 ой делал такое же, токма буквы там дюкались.
http://zxaaa.untergrund.net/get.php?f=DEMO3/inshid.zip
http://zxaaa.untergrund.net/screen4/inshid.png
Вопрос в том, что такого есть в коде интересного, что в анриле и стелсе, zxmak2 он работает, и в SpecEmu то жи кстати, а в Xpeccy и zymosys - нет, ну и в Speccy2010 - совсем нет. На анрИле и пресвятой пентеве клин светом не сошёлся, не?
Свет клином конечно не сошёлся. Клин быстрее всего в другом. Дело в том, что RST7 делал свои бордюрные эффекты под Пентагон. А в вышеперечисленых эмулях нужно сделать соответствующие настройки. Speccy2010 стоит вообще своим клоном Спека. Там свои характеристики INT-а.
Вот и всё вроде.
З.Ы. А сорцами не поделишься? Неохота дизассемблить;-)
Значит дизассемлил когда-то. Токо где искать - не помню. Скинь, плз, если не затруднит. Есть задумки кой-какие.
А вот тут косяк (
ну к примеру скрол тырдос дергает, в Speccy2010 проц останавливается пока arm все не сообразит
Ребята, я это фиксил под Пентагон. Именно бордюр. В деме куча всяких проверок. Наличие AY(по своему), проверка ПЗУ.....
ТОчно щас не вспомню. Единственное что я сделал, то увеличил паузу и "обрезал" лишние такты на строку растра.
"Дёрганья", не переделывая код, устранить невозможно. Потому как фирменные Спектрумы нечётнотактвые команды "дотягивают" до кратным 4-м.
---------- Post added at 17:02 ---------- Previous post was at 16:59 ----------
Это же короткая адресация???
Конечно нет. Самая короткая, как применял RST7 - (OUT#fd),r
Говнокод детектед:
LD BC,#7FFC
INC HL
OUTI
OUTI
OUTI
OUTI
.....
Я имел ввиду, что подогнал на нужное место и чтоб не коверкалось. Да под унрыл с пенагоновскими настройкам.
А точной настройки не делалось. Там надо всё по новому переписывать. Есть желание смотреть на других клонах - подстрой прогу и смотри.
Хорошо, как ёлку со стола уберём - сразу попробую.
Посля начну ковырять и рихтовать :-)
Елку убирают к 8муу марта:) я и так скажу, ниче ты на пентевЕ не увидишь. Тут или сильно-сильно код рихтовать, или ПентевУ переписывать, вряд ли кто-то из-за одной демки и выдумщиков-поляков будет переписывать прошивку:)
Отвечаю про бегущую строку на бордюре и экране. Для бордюра генерится битмап, где каждый пиксель имеет ширину 16 тактов (32 экранных пикселей). Он выводится через OUTI - и поэтому проблема в случае полной адресации портов. Экран, скорее всего, выводится через push af/bc/de/hl.
Сам такое не писал, ибо изврат и незрелищно с такими огромными пикселями. Я делал мячик, см. Sinclair Club #5. http://trd.speccy.cz/press/sin_club/S_CLUB05.ZIP
Под Анрил оно конечно хорошо адаптировать))
Анрил эмулирует неполную адресацию настоящего пентагона(тот который на микросхемах, эталонный 1991 года), Пентева и Speccy 2010 нет. Так что в данном случае анрил прав.
что такого хитрого
запись одновременно в 2 порта
7FFD и FE
---------- Post added at 21:14 ---------- Previous post was at 21:13 ----------
что это надо сильно поискать такой пентагон, на котором ЭТО будет работать
На классике будет работать
добавить вот такой костыль
правильней было бы поправить выборку портов, а не лепить костыли, запись в любой порт с двумя нулевыми младшими битами приведет к тому же эффекту на классике
Ну у мну только костыли и получаюЦЦо, увы и ах...
запись в любой порт с двумя нулевыми младшими битами
elsif cpuA( 1 downto 0 ) = "00" then
specPortFe <= cpuDout;specPort7ffd <= cpuDout;
нееее, ну так то жи работает, но не будет ли конфликта с другими портами?
но не будет ли конфликта с другими портами
я не знаю все порты Speccy 2010, но по идее такой вариант кое в чем может быть лучше чем "правильная" адресация по 1биту в младшем байте адреса
Как это выводится? И как называется FX?
http://zxaaa.untergrund.net/get.php?f=DEMO/jam.zip
FX называется "анимация" :) Всё описано в Scenergy #2.
FX называется "анимация" Всё описано в Scenergy #2.
Цитата:
C64 плеер. Этот плеер использует
метод вывода изображения, который я
впервые увидел на C64. Этот метод
был впервые применен мной в деме
Binary Love (в начале второй части,
где вращаются кубики). Этот метод
дает эффект "разорванности" картинки
на экране и, кроме того, позволяет
обсчитывать изображение в 4 раза
меньшее, чем изображение на экране.
Соответственно единственным отличием
упакованных данных будет то, что
исходное изображение будет сжато по
X и по Y в два раза.
Меня интересует "метод вывода изображения"
Я долго всматривался, но так и не понял по какому принципу "разрывается" картинка
Знакоместа берутся из текстуры по координатам, кратным 4.
Как работает туннель в NedoDemo 2:
Это мультиколор 640х200, атрибуты онли.
Естественно, я не шлёпаю каждый слой поверх другого. Строится сверху вниз (или снизу вверх, не важно).
Сначала создаём чистый буфер строки (цветом наружного слоя).
Компилим его в ld: push (оптимизированный, т.е. с минимумом ld - есть быстрая генерилка такого кода).
Потом начинаем перебирать строки (выводя их на экран этим ld: push'ем), пока не дойдём до места, где строка должна меняться.
Применяем все изменения в слоях на этой строке к буферу строки.
Опять компилим его в ld: push.
И так далее, пока не переберём все строки экрана.
Самое сложное - сгенерировать дату, по которой можно быстро находить переходы (ведь слои закрывают друг друга):
Сначала генерим всю геометрию всех слоёв.
Потом клипируем слои по x.
Потом создаём копии описателей слоёв в обратном порядке.
И клипируем всё по y.
В итоге получаем список вида y,x,ширина,цвет - по этому списку и работаем.
Стирание слоя - его шириной, но цветом предыдущего слоя.
Hacker VBI
07.02.2014, 02:12
Парни, а как это работает (http://zxaaa.untergrund.net/view_demo.php?id=2656)?
из спрайтов вижу набор треугольников.
офигеть
После построения очередного кадра он заносится в буфер (не на экран!). На экран выводится картинка, скомбинированная из строк, надёрганных из нескольких буферов, начиная с самого свежего. В данном случае чем ниже строка, тем более старый буфер.
После построения очередного кадра он заносится в буфер (не на экран!). На экран выводится картинка, скомбинированная из строк, надёрганных из нескольких буферов, начиная с самого свежего. В данном случае чем ниже строка, тем более старый буфер.
Хорошее решение) По кодозатратам равно обычному 3D-кручению фигуры, а эффект более навороченный получается.
Hacker VBI
08.02.2014, 16:00
таки не очень понял)
таки не очень понял)
Представь, что у тебя есть эффект, который может строиться в линейный буфер, допустим, 8x8 знакомест с заданным начальным адресом.
Ты с каждым новым кадром эффекта меняешь номер буфера: N=N+1.
А на экран выводишь так:
строки 0..3 - из текущего буфера, № N
строки 4..7 - из предыдущего буфера, № ((N-1)mod 16)
строки 8..11 - из предпредыдущего буфера, № ((N-2)mod 16)
...
строки 60..63 - из самого старого буфера, № ((N-15)mod 16)
Эффект юзали на амиге году эдак в 1992.
Hacker VBI
10.02.2014, 12:21
очень интересно! спасибо!
уже есть над чем подумать :)
denpopov
12.02.2014, 08:02
А вот как это делалось в Betraying, исходник дал g0blinish, говорит, что делал по образцу из амижного Blitz Basic:
http://www.blitzbasic.com/codearcs/codearcs.php?code=167
ну а на писи я видел эффект в разных интрах, все скатилось в злобный матан, исходники давно утрачены.
denpopov
20.02.2014, 20:33
http://zxaaa.untergrund.net/view_demo.php?id=2833
интересно, как это работает?
Подозреваю, что это фигуры Лиссажу x=sin(w1*t + a), y=sin(w2*t + b) со сдвигом на k*t по вертикали и масштабированием на k2*t.
http://zxaaa.untergrund.net/view_demo.php?id=2833
интересно, как это работает?
Вот так) http://www.youtube.com/watch?v=UW8p3AXBVTw
Titus, я ничего не понял :(
Titus, я ничего не понял :(
Это юмор) Просто похожий эффект, но в реальности)
denpopov
26.02.2014, 10:09
По привычке эффект называют как Moving Shit из Illusion:
http://zxaaa.untergrund.net/screen2/illusion5.png
статьи в прессе описывают эффект по-другому:
http://zxpress.ru/article.php?id=11869
http://zxpress.ru/article.php?id=2325
а в Illusion эффект похож на комодоровский dxypp. Интересно, как он делается?
denpopov, это другая процедура
итак у нас есть 2 синусоиды и разный шаг по осям
еще у нас есть картинко разложенное поточечно 1 точка = 1байт
далее рисуем картинку поточечно но очередную точку берем со смещением по Х и У взятом из синусоид.
вот тут (http://trd.speccy.cz/press/inferno/INFERNO1.ZIP) в интро как раз такой эффект
поточечно там до второго пришествия будет рисоваться...
программно генерируется процедура вывода экранной линии, произвольно идущей по текстуре.
потом повторно вызывается по числу строк экрана.
можно выводить moving shit, можно ротатор организовать и т.д.
denpopov
26.02.2014, 16:16
нашелся эффект, но с задуманной картинкой вышло слишком медленно.
denpopov
08.05.2014, 13:10
как такой эффект делается?
http://www.reservoir-gods.com/gfx/demos/rewind.gif
как такой эффект делается? це не спiктрум. Если столько битпланов - то наверное спрайт с прекалькуляцией если только, А по честному - синусовая таблица и сдвиг, пожалуй все что рисуется в мозгу. А это наверное комод, я его не знаю архитектуры, рискну предположить что у него есть аппаратный скроллинг
denpopov
09.05.2014, 19:51
А это наверное комод
скриншот с Atari ST. на Atari XL видел два похожих эффекта, поэтому интересно.
---------- Post added at 19:51 ---------- Previous post was at 19:50 ----------
и на комодоре есть похожий эффект, без синусоиды, но как такое делается?
Кстати у меня вдруг родилась идея как это сделать. Тупо строим в буфер построчно все это дело заранее. А потом при выводе на экран из буфера начинаем выбирать строки, на каждом кадре смещаяясь на определенное количество строк. (по синусу или так - это надо прикинуть) ну важно что выбираем из одного и того же буфера начиная каждый раз с нового место, за счет этого получаем "болтанку" этих полос. Мне кажется просто
Kakos_nonos
10.05.2014, 16:17
Может ещё так: при каждом фрейме (или обновлении экрана):
1.Затемняем то, что есть.
2.Рисуем новые полосочки (что сиреневые на первом плане).
Таким образом получаем плавно затемняющееся "эхо" эффекта.
Но тут видео нужно, по картинке трудно понять какой эффект.
Делаются все фазы со сдвигом одной или нескольких строк
Так сделано в 7reality. Если выводить строки по cos табличке (со смещением) то получится такая же канитель.
Про МovingShit - 4 страница в этой теме
denpopov
11.05.2014, 17:23
Делаются все фазы со сдвигом одной или нескольких строк
и как фазы считаются?
и как фазы считаются?
даг синус там. Важно то что строим все возможные варианты смещений строк. выйдет этакий спрайт высотой экрана в три. где уже по синусу все раскорячено. и наверное выводить тоже по синусу выбирая нужные строки. важно периоды подобрать правильные
denpopov
14.05.2014, 19:12
http://wab.com/?screen=123
и как это я забыл про почти что энциклопедию m(
denpopov
23.06.2014, 07:51
introspec, расскажи пожалуйста, как эффект в Down работает?
мне ничего в голову не пришло.
introspec
29.06.2014, 04:51
introspec, расскажи пожалуйста, как эффект в Down работает? мне ничего в голову не пришло.denpopov, мне реально трудно рассказать, т.к. рассказывать вроде не о чем. Анимация работает путём показа в цикле нескольких кадров: первый, второй и т.д. У меня абсолютно все анимы на 4 кадра. Они работают на раз-два-три-четыре. В отличие от руководства молодого бойца здесь на форуме, все анимы оригинальные, приготовленные в Processing. Это позволило приготовить хитрые анимы, в каждой из которых всего 4 кадра, причём такие, что 2 кадра - в точности инверсии двух других кадров. Т.е. анимы в Down работают так: грузим 2 кадра в 2 страницы памяти, показываем первую страницу, показываем 2 страницу, потом показываем инвертированную первую страницу, потом инвертированную вторую. Инверсия делается атрибутами, что даёт очень-очень высокую скорость. Считай, что анимация в Down вся бесплатная.
Т.к. в аниме всего 4 кадра, крутить её на 50гц легко, но не очень красиво. Down работает в цикле по 3 фрейма. В первом фрейме каждая нечётная строка текущего экрана заливается новым шумом (3кб шума на кадр) и заливаются корректные атрибуты для текущего экрана.
Во втором фрейме, анима кидается из буфера в экран (это делается не всегда, а только тогда, когда анима поменялась или если спрайт сдвинулся, т.е. экран под спрайтом не сохраняется). Большую часть времени второй фрейм свободен.
В третьем фрейме накладывается маска экрана (старый телевизор) и рисуется спрайт (если на экране нужен спрайт).
Зачем нужно столько свободного времени? Во-первых, это позволяет переключать анимации мгновенно, т.е. реально мгновенно, без швов. Во-вторых, ядро в Down умеет занять время, когда на экране играет анимация. Например, одновременно с проигрыванием можно распаковывать новую анимацию. Одна анимация у меня занимает 6кб (2 кадра по 3кб). Как правило, у меня сделаны замесы из 1-2 анимаций, а третья анимация распаковывается в это время в третий буфер. Все спрайты также хранятся сжатыми. Когда ядро ничего не распаковывает, оно отдаёт инструкции, в какие моменты времени переключать анимации, т.е. весь фикс тупо "нарисован" в ядре. Общий объём скрипта в деме - почти 4кб.
Не знаю, что тут ещё написать. Надеюсь, что-то пригодится.
denpopov
29.06.2014, 06:09
ээээ... а я-то думал..
introspec
29.06.2014, 12:18
ээээ... а я-то думал..Если бы думал, тебе не пришлось бы канючить в другом треде.
denpopov
29.06.2014, 12:40
Если бы думал, тебе не пришлось бы канючить в другом треде.
если бы я думал, то не пришлось бы занять первое место в *сомнительном* демопати.
introspec
29.06.2014, 12:49
если бы я думал, то не пришлось бы занять первое место в *сомнительном* демопати.Шок! Тебе и правда не пришлось!
denpopov
29.06.2014, 12:50
Шок! Тебе и правда не пришлось!
Не завидуй!
denpopov
04.07.2014, 11:20
Интересное описние ротозумера (https://github.com/fforw/jamrot/blob/master/README.md)
хотя и псевдокод описан через задницу..
В свете поднятия темы исходников интро от Dizzy-7 на другом форуме - специально для фанатов и истории!
Исходники интро Dizzy-7.
Загрузка исходника: W, затем имя файла MASB (последняя версия) или MASA (предпоследняя).
Затем ассемблируем: A
И запускаем: R
Или выходим в мой отладчик: Q
А вместе с ними и мой личный дебаггер/дизассемблер, который я писал в 1992 году для себя еще на 48кб машинке. На нем я вскрывал все самые крепкие защиты, вплоть до Elite-3 от Кладова.
Написан он был еще на ZEUZ'е. Занимал, если мне не изменяет память, 2кб и находился в одной из третей экрана. В другой же трети было само окно дебаггера. В данной сборке (вместе с TASM) дебаггер, очевидно, модифицирован чтобы располагаться в одной из страничек 128Кб памяти. Команды, и как им пользоваться - почти не помню) Помню, что в нем был жутко извращенный по коду дизассемблер. А еще печать текста зауженной ширины. Буковки брались из ПЗУ, из них вырезалось все ненужное, и получались узкие буквы.
Скриншоты дебаггера:
Режим дизассемблера (D):
http://s015.radikal.ru/i333/1701/0a/cbb5d7096696.png
Режим просмотра памяти в ASCII (L):
http://s018.radikal.ru/i525/1701/11/c802ca7d1b78.png
Режим редактирования памяти и просмотра бейсик-команд (E):
http://s020.radikal.ru/i719/1701/11/e4143f78badb.png
Режим отладчика (T):
http://s020.radikal.ru/i700/1701/02/2e5c169b546c.png
Titus, дебагер даже интереснее скроллера)) релиз!! лучше поздно, чем никогда)) интересно, вот, он полностью автономный или использует подпрограммы ПЗУ? Исходники есть? :)
Исходники были для zeus'а где-то. Нет, пзу тока для шрифта вроде.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot