Какую роль они там исполняют? (игру сегодня увидел впервые)
Вид для печати
Начните с
ld hl,...
add hl,bc
ld d,(hl)
ld hl,...
add hl,bc
ld e,(hl)
push de
И всё станет понятно.
Надеюсь по теме.
"Как это НЕ работает" :)
Ссылка на самуУ демУ
Было бы хорошо, если разжевали ту самую бегущую строку, бордюрно-экранную.Особенно в части как именно по экрану двигают, и синхронят с бордюром. Как по бордюру оно движЫЦЦАа - немного и так понятно. Но вопрос вообще-то не в этом. Что такого "хитрого" в этом коде, что в одних эмулях замечательно работает, в других, частичЬно, (хе-хе, не буду указывать авторство), но самое интересное и главное - совершенно не работает в железном эмууляторе Speccy2010 :((((((
Пробовал несколько прошивок, и старых и новых, и от автора, которому похоже бесполезно задавать этот вопрос, ибо он проект забросил(???).
Ну, кто еще проверит , и объяснит мне, где я не прав?
Ах да, скрины двух эмулей, для сравненийя:
http://savepic.ru/3753988.jpg
В Спекки2010 вообще только верхняя красНаЙя "указка" отображаеЦЦо.
Что с кодом не так? Или с железом у мну?:v2_conf2:
Эту дему досканально разбирал тибох. Надеюсь у него остались запчасти. Автор демы Величайший кодер Бузи.
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
Свет клином конечно не сошёлся. Клин быстрее всего в другом. Дело в том, что RST7 делал свои бордюрные эффекты под Пентагон. А в вышеперечисленых эмулях нужно сделать соответствующие настройки. Speccy2010 стоит вообще своим клоном Спека. Там свои характеристики INT-а.
Вот и всё вроде.
З.Ы. А сорцами не поделишься? Неохота дизассемблить;-)
Значит дизассемлил когда-то. Токо где искать - не помню. Скинь, плз, если не затруднит. Есть задумки кой-какие.
Ребята, я это фиксил под Пентагон. Именно бордюр. В деме куча всяких проверок. Наличие 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
Как это выводится? И как называется FX?
http://zxaaa.untergrund.net/get.php?f=DEMO/jam.zip
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,ширина,цвет - по этому списку и работаем.
Стирание слоя - его шириной, но цветом предыдущего слоя.
Парни, а как это работает?
из спрайтов вижу набор треугольников.
офигеть
После построения очередного кадра он заносится в буфер (не на экран!). На экран выводится картинка, скомбинированная из строк, надёрганных из нескольких буферов, начиная с самого свежего. В данном случае чем ниже строка, тем более старый буфер.
таки не очень понял)
Представь, что у тебя есть эффект, который может строиться в линейный буфер, допустим, 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.
очень интересно! спасибо!
уже есть над чем подумать :)
А вот как это делалось в Betraying, исходник дал g0blinish, говорит, что делал по образцу из амижного Blitz Basic:
http://www.blitzbasic.com/codearcs/c...s.php?code=167
ну а на писи я видел эффект в разных интрах, все скатилось в злобный матан, исходники давно утрачены.
http://zxaaa.untergrund.net/view_demo.php?id=2833
интересно, как это работает?
Подозреваю, что это фигуры Лиссажу x=sin(w1*t + a), y=sin(w2*t + b) со сдвигом на k*t по вертикали и масштабированием на k2*t.
Titus, я ничего не понял :(
По привычке эффект называют как 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. Интересно, как он делается?