Вход

Просмотр полной версии : Как это работает? тред



alone
23.12.2012, 13:28
Здесь задавайте вопрос, если хотите знать, как работает тот или иной эффект в той или иной деме.

GM BIT
23.12.2012, 13:33
Я не понимаю как ты объясняешь :) но все же.
полноэкранный ротатор атрибутов. никогда не мог врубиться

alone
23.12.2012, 13:40
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

Патч делается на одну строку, один раз за экран. То есть на всех строках шаги одинаковые. Зритель этого не замечает.

alone
23.12.2012, 13:51
На вопрос о трассе может ответить Shiru. Он копал этот вопрос.
В общих чертах: дорога выводится построчно. Возможно, готовыми строками. На приставках для этого применяется что-то вроде мультиколора. Расположение строк считается не по всему растру, а только на нескольких линиях, между ними происходит интерполяция.

Хранить надо, разрезав трассу на довольно большие части. Это можно видеть в игре Scalextric. Там топорный движок (вроде даже совсем ничего не считается, тупо таблица), но идея понятна, даже можно нарисовать свою трассу.

Titus
23.12.2012, 14:01
Я не понимаю как ты объясняешь :) но все же.
полноэкранный ротатор атрибутов. никогда не мог врубиться

Обьяснения Алона в основном понимает только тот, кто и сам знает, как это работает)

alone
23.12.2012, 14:07
Я думал, будут вопросы по более сложным эффектам.

newart
23.12.2012, 14:19
а можно про игры? если можно меня всегда интересовало как сделаны гонки, тоесть дорога в гонках, для примера 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
23.12.2012, 14:29
Цитата:
Сообщение от 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. Рисуется по столбцам. Про его математику вроде как есть статьи на английском.

alone
23.12.2012, 15:12
Башенка - векторная анимация, kkolor - растровая анимация заготовленными знакоместами (то же в Weed в конце).

drbars
23.12.2012, 15:24
Дим, расскажи алгоритм зум-скролла (Greets из EYEACHE2) или Intro из Dizzy 7.2 (by Titus). Код не смотрел, догадки так есть кое-какие. По вертикали увеличение понятно, делается дублированием строк. А вот по горизонтали какой способ наиболее быстрый? Придумал только, что можно расчитывать координаты и соединять точки линией.

alone
23.12.2012, 15:33
Можно ссылку на Dizzy 7.2?
В Eye Ache заранее рассчитана графика на все масштабы строк.

Если не рассчитывать заранее, то можно брать графику целыми байтами или даже знакоместами. Это почти не исказит рисунок при масштабировании на +-20%. А для более крупных и мелких масштабов можно заготовить копии другого размера.

Ротатор в The Link как раз целыми байтами (там заготовлено по байту на каждое из 8 направлений от каждой точки текстуры).

Titus
23.12.2012, 16:03
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

alone
23.12.2012, 16:11
Что ж я за автора буду отвечать :) Я там увидел какой-то поток масок по 2 байта, где в C вроде как закодирована маска, а в B - ширина в байтах.

Titus
23.12.2012, 16:15
Что ж я за автора буду отвечать :) Я там увидел какой-то поток масок по 2 байта, где в C вроде как закодирована маска, а в B - ширина в байтах.
Ну не совсем)

drbars
23.12.2012, 16:18
эм... может у меня спросить? )
Так спрашивал уже, ответ был копать код. Смотреть чужой я не любитель :) Был интересен алгоритм расчета горизонтальной строки, а не реализация :)

Кстати, версия с расчитанным шрифтом не подходит. Просто памяти не хватит, чтобы все варианты строк хранить.

alone
23.12.2012, 16:20
А это не шрифт, а только маски на случай установленного пикселя. Шрифт там в (DE), по байту на пиксель.

Titus
23.12.2012, 16:21
А это не шрифт, а только маски на случай установленного пикселя. Шрифт там в (DE), по байту на пиксель.
А откуда берутся маски? ;-)

alone
23.12.2012, 16:25
Придумал только, что можно расчитывать координаты и соединять точки линией.
Кстати, насчёт заливки по горизонтали есть тупой способ, который никто не использовал:

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 байта не влом и каждый фрейм посчитать :)

Titus
23.12.2012, 16:37
Да 64 байта не влом и каждый фрейм посчитать :)
Верно)

Лас
23.12.2012, 16:57
Интересует скролл из интро Titus'а к Navy Seals.
Как уже где-то писал ранее, до сих пор встает при виде этого интро и при звуках этой музыки.

alone
23.12.2012, 17:08
Цитата:
Сообщение от alone Посмотреть сообщение
Кстати, насчёт заливки по горизонтали есть тупой способ, который никто не использовал:

or d;#fe
ld b,a
ld c,(hl)
ld a,(bc) ;#fexx/#ffxx
ld (hl),a
inc l
:33 такта на байт
Я немного не в теме можно поподробнее что где? объясните тугому плз.
Сначала рендерим точки (места цветопереходов) на экран. Потом по таблице 512 байт ксорим их слева направо.

Сверху вниз проще :)

alone
23.12.2012, 17:42
Скоро Forever, эффекты под 48K в фаворе :)

alone
24.12.2012, 12:17
Не понял. Все вымерли. Никто уже не интересуется демоэффектами?

Лас
24.12.2012, 13:57
Не понял. Автор топика вымер. Никто уже не ответит на мой вопрос про интересующий демоэффект?

alone
24.12.2012, 14:15
Не знаю, о чём речь. Дайте ссылку на этот эффект. Я знаю интро Rst7 к Navy Seals.

Лас
24.12.2012, 14:23
Не знаю, о чём речь. Дайте ссылку на этот эффект. Я знаю интро Rst7 к Navy Seals.

http://vtrdos.ru/gamez/n/NAVY_S_A.ZIP

Titus
24.12.2012, 14:42
Не знаю, о чём речь. Дайте ссылку на этот эффект. Я знаю интро Rst7 к Navy Seals.


http://vtrdos.ru/gamez/n/NAVY_S_A.ZIP

Лас, как ты мог? Рассекретил Алону такой сайт. Теперь он догадается там смотреть и другие интрушки, ай-яй-яй. А так все было засекречено здорово.

drbars
24.12.2012, 14:51
Titus, кстати ты про алгоритм зум-скролла так и не рассказал :) Подробности будут?))

Titus
24.12.2012, 14:53
Titus, кстати ты про алгоритм зум-скролла так и не рассказал :) Подробности будут?))
Алоне сейчас расскажет) Там все просто)

AAA
24.12.2012, 14:55
http://zxaaa.untergrund.net/get.php?f=DEMO3/csa.zip

Как сделан этот эффект эквалайзера (который волной черно белый), возможно ли увеличение колличества линий или там тактовый голод?

http://cs406324.userapi.com/v406324991/4e22/4ScJJ2Cu2I8.jpg

alone
24.12.2012, 18:25
Цитата:
Сообщение от 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 заливал.

GM BIT
24.12.2012, 18:55
moving shit - Illusion X-Trade?
http://zxaaa.untergrund.net/get.php?f=DEMO/illusion.zip

Объясни как в предыдущем посте

drbars
24.12.2012, 19:30
Алоне сейчас расскажет) Там все просто)
Я так понимаю, там буфер скроллера 4 байта на строку? Задаём параметр SIZE — получаем фазу строки. Собственно этот кусочек интересен.

alone
24.12.2012, 20:43
moving shit - Illusion X-Trade?
http://zxaaa.untergrund.net/get.php?f=DEMO/illusion.zip

Объясни как в предыдущем посте
Имеется текстура. Наша задача - вывести её на экран, двигаясь по экрану линейно, а по текстуре синусоидально. Код не смотрел, но скорее всего там сделано несколько процедур синусоидального обхода (в разных фазах).
От строки к строке начальная координата в текстуре тоже двигается синусоидально.

Лучшая реализация - в дентре от BW на CC000. Там во весь экран и фреймово.

newart
25.12.2012, 10:38
alone, поделись мыслями как сделено 3D в Коронис Рифт

http://www.worldofspectrum.org/showscreen.cgi?screen=screens/in-game/k/KoronisRift.gif

alone
25.12.2012, 13:07
Движки в буржуйских играх довольно сумасшедшие. Наши такие не осиливали никогда.

Это именно линии, а не полигоны. См. Rescue On Fractalus! и The Eidolon от тех же авторов.

В данном случае, скорее всего, используются чанки 4x1. Возможно, строится от заднего плана к переднему, но от переднего к заднему может быть быстрее.

Линии легче (но не факт, что быстрее) рисовать от задних к передним и сразу с заливкой. Как вычисляется само расположение линий с отсечением по границе экрана - это матан.

newart
25.12.2012, 13:18
Движки в буржуйских играх довольно сумасшедшие. Наши такие не осиливали никогда.
Считаешь, что подобные игры писали уже взрослые дяди?

goodboy
25.12.2012, 16:13
См. Rescue On Fractalus! и The Eidolon от тех же авторов.

В данном случае, скорее всего, используются чанки 4x1. Возможно, строится от заднего плана к переднему, но от переднего к заднему может быть быстрее.

как строятся линии я не понял, но на экран они кидаются из буфера (LDI), при этом каждая строка дублируется.

alone
25.12.2012, 18:04
Цитата:
Сообщение от 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

goodboy
25.12.2012, 19:19
непосредственное отношение к игре имеет David Fox - "Designer/Project leader, programmer"
в компьютерной индустрии эта игра оказалась первой где использовались фракталы.

вот что делает время (на первой фотке усатый в центре).

другое дело что конверсию на спектрум делала совсем другая команда.

newart
25.12.2012, 19:39
в компьютерной индустрии эта игра оказалась первой где использовались фракталы.
Какую роль они там исполняют? (игру сегодня увидел впервые)

goodboy
25.12.2012, 19:47
Какую роль они там исполняют? (игру сегодня увидел впервые) горы строются с помощью них (но конкретных формул я не знаю).
я на эту игру тоже внимания не обращал, а она оказалась революционной в плане технологий.

newart
25.12.2012, 20:02
Rescue On Fractalus! вообще вроде считают лучшей игрой на атари 8 бит.
Чумавая игрушка! Пойду врублю проектор на всю стену и буду рубаться! :)

BYTEMAN
26.12.2012, 00:15
Понравилать статейка Flying/DR.
вот это я понимаю разжёвано! Чтобы все так писали статьи....

alone
26.12.2012, 18:26
Извиняюсь что тут но вроде по теме. Решил почитать как бамп на спектруме делают. Понравилать статейка Flying/DR.
В ZX-Guide #4 описан более быстрый код. См. статью "Ускорение".

alone
26.12.2012, 19:18
Начните с
ld hl,...
add hl,bc
ld d,(hl)
ld hl,...
add hl,bc
ld e,(hl)
push de

И всё станет понятно.

zebest
04.01.2013, 14:24
Надеюсь по теме.
"Как это НЕ работает" :)
Ссылка на самуУ демУ (http://zx.pk.ru/showpost.php?p=430425&postcount=147)
Было бы хорошо, если разжевали ту самую бегущую строку, бордюрно-экранную.Особенно в части как именно по экрану двигают, и синхронят с бордюром. Как по бордюру оно движЫЦЦАа - немного и так понятно. Но вопрос вообще-то не в этом. Что такого "хитрого" в этом коде, что в одних эмулях замечательно работает, в других, частичЬно, (хе-хе, не буду указывать авторство), но самое интересное и главное - совершенно не работает в железном эмууляторе Speccy2010 :((((((
Пробовал несколько прошивок, и старых и новых, и от автора, которому похоже бесполезно задавать этот вопрос, ибо он проект забросил(???).
Ну, кто еще проверит , и объяснит мне, где я не прав?
Ах да, скрины двух эмулей, для сравненийя:
http://savepic.ru/3753988.jpg
В Спекки2010 вообще только верхняя красНаЙя "указка" отображаеЦЦо.
Что с кодом не так? Или с железом у мну?:v2_conf2:

AAA
04.01.2013, 16:57
Было бы хорошо, если разжевали ту самую бегущую строку, бордюрно-экранную.Особенно в части как именно по экрану двигают, и синхронят с бордюром. Как по бордюру оно движЫЦЦАа - немного и так понятно. Но вопрос вообще-то не в этом. Что такого "хитрого" в этом коде, что в одних эмулях замечательно работает, в других, частичЬно, (хе-хе, не буду указывать авторство), но самое интересное и главное - совершенно не работает в железном эмууляторе 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

VNN_KCS
04.01.2013, 17:33
Вопрос в том, что такого есть в коде интересного, что в анриле и стелсе, zxmak2 он работает, и в SpecEmu то жи кстати, а в Xpeccy и zymosys - нет, ну и в Speccy2010 - совсем нет. На анрИле и пресвятой пентеве клин светом не сошёлся, не?
Свет клином конечно не сошёлся. Клин быстрее всего в другом. Дело в том, что RST7 делал свои бордюрные эффекты под Пентагон. А в вышеперечисленых эмулях нужно сделать соответствующие настройки. Speccy2010 стоит вообще своим клоном Спека. Там свои характеристики INT-а.
Вот и всё вроде.
З.Ы. А сорцами не поделишься? Неохота дизассемблить;-)

VNN_KCS
04.01.2013, 17:48
Значит дизассемлил когда-то. Токо где искать - не помню. Скинь, плз, если не затруднит. Есть задумки кой-какие.

ZEK
04.01.2013, 17:52
А вот тут косяк (
ну к примеру скрол тырдос дергает, в Speccy2010 проц останавливается пока arm все не сообразит

VNN_KCS
04.01.2013, 19:02
Ребята, я это фиксил под Пентагон. Именно бордюр. В деме куча всяких проверок. Наличие AY(по своему), проверка ПЗУ.....
ТОчно щас не вспомню. Единственное что я сделал, то увеличил паузу и "обрезал" лишние такты на строку растра.
"Дёрганья", не переделывая код, устранить невозможно. Потому как фирменные Спектрумы нечётнотактвые команды "дотягивают" до кратным 4-м.

---------- Post added at 17:02 ---------- Previous post was at 16:59 ----------


Это же короткая адресация???
Конечно нет. Самая короткая, как применял RST7 - (OUT#fd),r

Blade
04.01.2013, 19:12
Говнокод детектед:


LD BC,#7FFC
INC HL
OUTI
OUTI
OUTI
OUTI
.....

VNN_KCS
05.01.2013, 14:07
Я имел ввиду, что подогнал на нужное место и чтоб не коверкалось. Да под унрыл с пенагоновскими настройкам.
А точной настройки не делалось. Там надо всё по новому переписывать. Есть желание смотреть на других клонах - подстрой прогу и смотри.

VNN_KCS
05.01.2013, 15:38
Хорошо, как ёлку со стола уберём - сразу попробую.
Посля начну ковырять и рихтовать :-)

zebest
05.01.2013, 16:11
Елку убирают к 8муу марта:) я и так скажу, ниче ты на пентевЕ не увидишь. Тут или сильно-сильно код рихтовать, или ПентевУ переписывать, вряд ли кто-то из-за одной демки и выдумщиков-поляков будет переписывать прошивку:)

alone
05.01.2013, 21:03
Отвечаю про бегущую строку на бордюре и экране. Для бордюра генерится битмап, где каждый пиксель имеет ширину 16 тактов (32 экранных пикселей). Он выводится через OUTI - и поэтому проблема в случае полной адресации портов. Экран, скорее всего, выводится через push af/bc/de/hl.

Сам такое не писал, ибо изврат и незрелищно с такими огромными пикселями. Я делал мячик, см. Sinclair Club #5. http://trd.speccy.cz/press/sin_club/S_CLUB05.ZIP

ZEK
05.01.2013, 22:02
Под Анрил оно конечно хорошо адаптировать))
Анрил эмулирует неполную адресацию настоящего пентагона(тот который на микросхемах, эталонный 1991 года), Пентева и Speccy 2010 нет. Так что в данном случае анрил прав.

ZEK
05.01.2013, 22:14
что такого хитрого
запись одновременно в 2 порта
7FFD и FE

---------- Post added at 21:14 ---------- Previous post was at 21:13 ----------


что это надо сильно поискать такой пентагон, на котором ЭТО будет работать
На классике будет работать

ZEK
06.01.2013, 15:13
добавить вот такой костыль
правильней было бы поправить выборку портов, а не лепить костыли, запись в любой порт с двумя нулевыми младшими битами приведет к тому же эффекту на классике

zebest
06.01.2013, 15:49
Ну у мну только костыли и получаюЦЦо, увы и ах...


запись в любой порт с двумя нулевыми младшими битами

elsif cpuA( 1 downto 0 ) = "00" then
specPortFe <= cpuDout;specPort7ffd <= cpuDout;
нееее, ну так то жи работает, но не будет ли конфликта с другими портами?

ZEK
06.01.2013, 21:54
но не будет ли конфликта с другими портами
я не знаю все порты Speccy 2010, но по идее такой вариант кое в чем может быть лучше чем "правильная" адресация по 1биту в младшем байте адреса

GM BIT
04.02.2013, 12:19
Как это выводится? И как называется FX?
http://zxaaa.untergrund.net/get.php?f=DEMO/jam.zip

alone
04.02.2013, 20:34
FX называется "анимация" :) Всё описано в Scenergy #2.

GM BIT
05.02.2013, 05:05
FX называется "анимация" Всё описано в Scenergy #2.
Цитата:
C64 плеер. Этот плеер использует
метод вывода изображения, который я
впервые увидел на C64. Этот метод
был впервые применен мной в деме
Binary Love (в начале второй части,
где вращаются кубики). Этот метод
дает эффект "разорванности" картинки
на экране и, кроме того, позволяет
обсчитывать изображение в 4 раза
меньшее, чем изображение на экране.
Соответственно единственным отличием
упакованных данных будет то, что
исходное изображение будет сжато по
X и по Y в два раза.

Меня интересует "метод вывода изображения"
Я долго всматривался, но так и не понял по какому принципу "разрывается" картинка

alone
05.02.2013, 10:25
Знакоместа берутся из текстуры по координатам, кратным 4.

alone
30.01.2014, 15:05
Как работает туннель в 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)?
из спрайтов вижу набор треугольников.
офигеть

alone
07.02.2014, 18:11
После построения очередного кадра он заносится в буфер (не на экран!). На экран выводится картинка, скомбинированная из строк, надёрганных из нескольких буферов, начиная с самого свежего. В данном случае чем ниже строка, тем более старый буфер.

Titus
07.02.2014, 19:30
После построения очередного кадра он заносится в буфер (не на экран!). На экран выводится картинка, скомбинированная из строк, надёрганных из нескольких буферов, начиная с самого свежего. В данном случае чем ниже строка, тем более старый буфер.

Хорошее решение) По кодозатратам равно обычному 3D-кручению фигуры, а эффект более навороченный получается.

Hacker VBI
08.02.2014, 16:00
таки не очень понял)

alone
10.02.2014, 11:26
таки не очень понял)
Представь, что у тебя есть эффект, который может строиться в линейный буфер, допустим, 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

интересно, как это работает?

alone
23.02.2014, 18:41
Подозреваю, что это фигуры Лиссажу x=sin(w1*t + a), y=sin(w2*t + b) со сдвигом на k*t по вертикали и масштабированием на k2*t.

Titus
25.02.2014, 13:42
http://zxaaa.untergrund.net/view_demo.php?id=2833

интересно, как это работает?

Вот так) http://www.youtube.com/watch?v=UW8p3AXBVTw

jerri
25.02.2014, 13:44
Titus, я ничего не понял :(

Titus
25.02.2014, 13:48
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. Интересно, как он делается?

jerri
26.02.2014, 10:53
denpopov, это другая процедура

итак у нас есть 2 синусоиды и разный шаг по осям
еще у нас есть картинко разложенное поточечно 1 точка = 1байт

далее рисуем картинку поточечно но очередную точку берем со смещением по Х и У взятом из синусоид.

вот тут (http://trd.speccy.cz/press/inferno/INFERNO1.ZIP) в интро как раз такой эффект

char
26.02.2014, 15:50
поточечно там до второго пришествия будет рисоваться...

программно генерируется процедура вывода экранной линии, произвольно идущей по текстуре.
потом повторно вызывается по числу строк экрана.

можно выводить moving shit, можно ротатор организовать и т.д.

jerri
26.02.2014, 16:06
char, качество же :)

denpopov
26.02.2014, 16:16
нашелся эффект, но с задуманной картинкой вышло слишком медленно.

denpopov
08.05.2014, 13:10
как такой эффект делается?
http://www.reservoir-gods.com/gfx/demos/rewind.gif

kotsoft
09.05.2014, 18:49
как такой эффект делается? це не спiктрум. Если столько битпланов - то наверное спрайт с прекалькуляцией если только, А по честному - синусовая таблица и сдвиг, пожалуй все что рисуется в мозгу. А это наверное комод, я его не знаю архитектуры, рискну предположить что у него есть аппаратный скроллинг

denpopov
09.05.2014, 19:51
А это наверное комод
скриншот с Atari ST. на Atari XL видел два похожих эффекта, поэтому интересно.

---------- Post added at 19:51 ---------- Previous post was at 19:50 ----------

и на комодоре есть похожий эффект, без синусоиды, но как такое делается?

kotsoft
10.05.2014, 12:57
Кстати у меня вдруг родилась идея как это сделать. Тупо строим в буфер построчно все это дело заранее. А потом при выводе на экран из буфера начинаем выбирать строки, на каждом кадре смещаяясь на определенное количество строк. (по синусу или так - это надо прикинуть) ну важно что выбираем из одного и того же буфера начиная каждый раз с нового место, за счет этого получаем "болтанку" этих полос. Мне кажется просто

Kakos_nonos
10.05.2014, 16:17
Может ещё так: при каждом фрейме (или обновлении экрана):
1.Затемняем то, что есть.
2.Рисуем новые полосочки (что сиреневые на первом плане).

Таким образом получаем плавно затемняющееся "эхо" эффекта.
Но тут видео нужно, по картинке трудно понять какой эффект.

GM BIT
11.05.2014, 16:44
Делаются все фазы со сдвигом одной или нескольких строк

Так сделано в 7reality. Если выводить строки по cos табличке (со смещением) то получится такая же канитель.

GM BIT
11.05.2014, 16:48
Про МovingShit - 4 страница в этой теме

denpopov
11.05.2014, 17:23
Делаются все фазы со сдвигом одной или нескольких строк
и как фазы считаются?

kotsoft
11.05.2014, 22:08
и как фазы считаются?
даг синус там. Важно то что строим все возможные варианты смещений строк. выйдет этакий спрайт высотой экрана в три. где уже по синусу все раскорячено. и наверное выводить тоже по синусу выбирая нужные строки. важно периоды подобрать правильные

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)

хотя и псевдокод описан через задницу..

Titus
08.01.2017, 13:49
В свете поднятия темы исходников интро от 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

drbars
12.01.2017, 09:11
Titus, дебагер даже интереснее скроллера)) релиз!! лучше поздно, чем никогда)) интересно, вот, он полностью автономный или использует подпрограммы ПЗУ? Исходники есть? :)

Titus
12.01.2017, 13:22
Исходники были для zeus'а где-то. Нет, пзу тока для шрифта вроде.