Просмотр полной версии : Chaos Constructions 2009
(для тех кто в танке =)
#cc9 Сейчас демонстрируются работы конкурса ZX Spectrum 640k demo. Среди работ была также работа для Вектора (в соотв. с правилами).
Все прошло не без накладок, но — была показана демка для Вектора на большом экране в формате конкурса. Гы.
Все прошло не без накладок, но — была показана демка для Вектора на большом экране в формате конкурса. Гы.
Супер! Выложи демку и видео!
Ага, вот только придумаю, как видео со вги зацифровать.
В общем вот. Быстродема 8 Bit Snail (2009) by svo, 4-е место в ZX/Oldskool Demo на Chaos Constructions 2009 (http://party.cc.org.ru).
http://sensi.org/~svo/scalar/ware/767/
http://pouet.net/prod.php?which=53805
http://www.youtube.com/watch?v=7Z0dsZUAyd0
http://ftp.cc.org.ru/2009/cc2009results.txt -- не уверен, что значит "55" в числе голосов, потому что сам до голосования не добрался. Но то, что это меньше чем в два раза меньше, чем первое место, греет душу. Особенно при том, что улитку на экране вообще видно не было.
Отдельное спасибо Prog Master-у за музыку, которую я взял без спроса и SES-у за плеер этой музыки, которого я тоже не спрашивал ;) Вроде бы я ничьих заветов при этом не нарушил. Ивагору тонны респекта за десодо\h\h\h\hэкзомайзер и Tim0xe за общую мотивацию. Извините, что преведов в самой демке нет, я ступил, а потом поздно было.
Демка работает на Векторе-06цц в FPGA, на котором я ее и показывал. На реале проверить не получилось по известным причинам. Эту версию может быть будет сложно запустить на выживших Векторах, потому что ей нужен кваз. Когда появится что-нибудь живое, можно будет сделать сборку для бесквазья.
Эмуляторы, к сожалению, не очень хорошо справляются с растровыми эффектами, на которых построена эта дема. VV вообще ничего не показывает в экранной зоне, а b2m показывает в общем прилично, но разводит недопустимую асинхронщину из-за чего все мельтешит ;) Поэтому лучше смотрите ютубу.
Ыгыгыгы!
svofski, классная дема! Спасибо, порадовал :)
Эту версию может быть будет сложно запустить на выживших Векторах, потому что ей нужен кваз. Когда появится что-нибудь живое, можно будет сделать сборку для бесквазья.
Если под живым подразумевается Вектор, то могу подогнать для вивисекции. Если кваз, то зыко было бы его изобразить с какой-нибудь мелкой CPLD и SIMM.
А так - присоединяюсь к общему хору славословий!
Если CPLD и SIMM, то прикольно было бы заодно еще в той же плате оформить и видео "кондиционер", чтобы не надо было в плату залезать и заодно уж АЫ, раз все равно АЫ нужна. Эдакая док станция для Вектора. Для последних двух оставшихся.
Если CPLD и SIMM, то прикольно было бы заодно еще в той же плате оформить и видео "кондиционер", чтобы не надо было в плату залезать и заодно уж АЫ, раз все равно АЫ нужна. Эдакая док станция для Вектора. Для последних двух оставшихся.
Ты забыл еще Человека Из Вологды!
Про АЫ мне не жалко, пусть будет и АЫ. Сделаешь?
Человека Из Вологды я как раз посчитал. Его и твой, вот и два.
У меня не хватает лицензии моего Игла, чтобы развести такую длииииннную плату =)
Человека Из Вологды я как раз посчитал. Его и твой, вот и два.
У меня не хватает лицензии моего Игла, чтобы развести такую длииииннную плату =)
Я готов развести ее в пикаде, была бы схема!
Да тут вообще звезды в твою сторону поворачиваются. И пикад у тебя и Вектор у тебя и опыт работы с SIMM-ами у тебя. Заметь, что в этой штуке можно заодно и контроллер флопа развести и эмулятор прямо в него воткнуть. Не понимаю, как ты можешь сопротивляться такому соблазну!
У меня овладевание фпга как-то скрипуче движется :(
а b2m показывает в общем прилично, но разводит недопустимую асинхронщину из-за чего все мельтешит ;)
Мелькает не из-за "асинхронщины", а потому что правый край растрового эффекта в эмуляторе не попадает между букв, как у тебя. Это ещё вопрос, будет ли он попадать на реальном Векторе. Вопрос о количестве тактов от момента прерывания до появления "луча" на экране (или наоборот) пока открыт.
Это да, вопрос безусловно открыт.. Мы все ждем с замиранием когда Tim0xA прогреет паяльник =)
Количество тактов тут мало чего меняет, в таких пределах это скорее фаза.
Эх, если б растровое прерывание было на произвольную строку, да еще бы процессор был с инструкциями покороче, такого можно было бы навернуть...
Между прочим, если внимательно посмотреть правую границу растрового эффекта, то у тебя она не вылазит за пределы второй буквы (там где они пересекаются), а у меня справа от буквы есть один пиксель эффекта. Однако у меня цвет задаётся для группы из 8 точек, т.е. ширина эффекта у тебя на один пиксель меньше, чем число кратное восьми. Почему?
И это при том, что за один такт выдаются 2 точки (соответственно, за минимальный цикл процессора из 4-х тактов - 8 точек).
Я сам этим вопросом интересуюсь.
always @(posedge clk24) begin
if (iports_write & ~WR_n & cpu_ce) begin
video_palette_value <= DO;
video_palette_wren <= 1'b1;
end
else
video_palette_wren <= 1'b0;
end
Поскольку video_palette_wren (ну и value) -- это регистры, запись в них происходит по clk24. В ОЗУ палитры запись произойдет на один клок позже.
wire [3:0] paletteram_adr = (retrace/*|video_palette_wren*/) ? video_border_index : coloridx;
palette_ram paletteram(paletteram_adr, video_palette_value, clk24, clk24, video_palette_wren, realcolor2buf);
Тут интересней paletteram_adr, который в основном равен coloridx и именно от момента перещелкивания coloridx зависит то, куда ж мы запишем реальную цифирь. Тактом раньше -- записали в цвет предыдущего пикселя, тактом позже -- в цвет следующего. Это при том, что отображаться может один и тот же в этот момент.
Для храбрых, coloridx берется из модуля video.v и обновляется примерно вот так:
reg [3:0] xcoloridx;
wire [3:0] coloridx_modeless;
always @(negedge clk24) begin
if (mode512) begin
if (ce6)
xcoloridx <= {2'b00, coloridx_modeless[2], coloridx_modeless[3]};
else
xcoloridx <= {2'b00, coloridx_modeless[1], coloridx_modeless[0]};
end
else
xcoloridx <= coloridx_modeless;
end
// coloridx is an output port, address of colour in the palette ram
assign coloridx = border ? border_idx : xcoloridx;
На спаде клока, что занятно. Сейчас трудно сообразить, но скорее всего это означает, что индекс цвета, то есть адрес палитры, обновляется раньше, чем формируется сигнал записи в ОЗУ палитры.
Из всего этого я пока делаю вывод, что ширина отрезка от инструкции out $0c до out $0c короче быть вряд ли способна. А вот то, что она все out-ы сдвинуты по фазе "влево" -- это похоже на правду.
К анализу кода приглашаются все желающие, на то он и открытый =)
К анализу кода приглашаются все желающие, на то он и открытый =)
Нет уж, спасибки :)
Мне, как программисту с солидным стажем, будет трудно осмысливать программу, в которой все операторы выполняются одновременно. Я люблю по-тихоньку, шаг за шагом :rolleyes:
Мы все ждем с замиранием когда Tim0xA прогреет паяльник
Готовь версию без квазидиска :)
На сколько хватит твоего терпения, я успею поужинать? =)
Да, я пока проверю, как работает команда INR с флагом AC...
Ну вот, вроде так. Очень o_o страшно, ведь наверняка не заработает как хотелось бы.
Растровый эффект смещен
http://pic.ipicture.ru/uploads/090929/15427/jWKCdfB4vc.jpg
Интересно, где-то на 6-8 точек что ли.. Надо будет какой-то тест написать. Зато как я смачно отсортировал цвета по светимости :D
Ну вот, вроде так. Очень o_o страшно, ведь наверняка не заработает как хотелось бы.
http://www.youtube.com/watch?v=WAi3svNXmCc
Эх.. вот ведь незадача. Смещено на предположительно 8 пикселей влево и момент записи в ОЗУ палитры отличается. Еще я чего-то не понял где надпись в начале.
Еще я чего-то не понял где надпись в начале.
Меня тоже это удивило. Только что еще раз проверил - надписи нет. А в эмуляторе есть.
Ага. И улитка в сеточку. Значит наверное у тебя Вектор из тех, в которых out $0c нужно повторять по десять раз. Чорт, Black Ice не проверить. В нем тоже по одному разу out $0c.
---------- Post added at 00:18 ---------- Previous post was at 00:17 ----------
Я когда-то ковырялся и находил где-то про этот out $0c. А сейчас снова забыл уже, в чем там дело. Вроде бы там дело было в гонках и делался для этого какой-то очень простой фикс.
Сделал доработку для D32,D39 http://zx.pk.ru/showpost.php?p=156712&postcount=10
Появилась надпись в начале и улитка теперь без сетки.
---------- Post added at 00:58 ---------- Previous post was at 00:50 ----------
Вот только изображение теперь стало подергиваться, как будто срывается КСИ.
---------- Post added at 01:29 ---------- Previous post was at 00:58 ----------
Рекомендуется также доработать D83/5
"5.Выводы D32/2, D39/2, D83/5 соединить с общей шиной. Это позволит правильно запрограммировать палитру при одноразовом выполнении команды OUT OCh."
Вообще-то D83/5 - это выход, возможно в тексте опечатка или у владимирцев была другая схема.
Быстро ты =)
А я сижу, думаю как мне такты разрулить, чтобы было похоже на настоящий вектор. Пока не получается.
В VU 28-29 (стр. 6) приведена альтернативная доработка схемы программирования цветов от Шашкова.
---------- Post added at 10:50 ---------- Previous post was at 10:12 ----------
Загадка:
Знаете ли вы, в каком эмуляторе хорошо (лучше чем в b2m, и тем более VV) работают snail, clrspace и lscroll? :)
Это не значит, что этот эмулятор правильный, но, по крайней мере, он ближе к текущей реализации на DE1.
---------- Post added at 11:19 ---------- Previous post was at 10:50 ----------
Значит наверное у тебя Вектор из тех, в которых out $0c нужно повторять по десять раз.
У таких векторов (мой тоже такой) можно и одним outом "попасть" в палитру, но нужно делать это в подходящий момент. Почему-то никто в прошлом не озадачился вопросом разработки соответствующей процедурки.
В "Секретах вектора и кристы" написано, что для записи в ОЗУ палитры доступны (вверху бордюра) 2/3 длительности строки. В форуме b2m после анализа схемы писал, что (если не ошибаюсь) запрет на запись длится 1/4 длительности строки.
Короче, если записывать в палитру на верхнем бордюре дольше 64 тактов - будет ОК, хотя это годится только для "обычного" применения.
Смещено на предположительно 8 пикселей влево и момент записи в ОЗУ палитры отличается.
У меня в эмуляторе момент записи в ОЗУ палитры, судя по мограющим линиям, ровно на 5 точек позже. Буду думать, как это пофиксить.
Знаете ли вы, в каком эмуляторе хорошо (лучше чем в b2m, и тем более VV) работают snail, clrspace и lscroll?
Не знаем. Расскажи, не томи душу :)
Так не интересно :)
Две подсказки, после которых невозможно ошибиться:
1. Доступны исходники (ассемблер).
2. В XP не работает звук.
Таких эмуляторов, как я помню, штук 10 разных и все в разной степени неработоспособности. В ve27a относительно убедительно выглядели растровые эффекты, но сказать, что в нем на xp не работает только звук —*это ничего не сказать.
Проблема пофиксить в том, что распределение тактов процессора и видеосистемы должно совпасть строго определенным образом. Я вчера устроил несколько довольно радикальных экспериментов и в некоторых случаях добился похожести, но не 100% соответствия. Я использую статическую картинку clrspace.com в качестве эталона.
В ve27a относительно убедительно выглядели растровые эффекты
какой ты злой, однако :).
сказать, что в нем на xp не работает только звук —*это ничего не сказать.
Обрати внимание - слова только в моем посте нет (к слову, интересно, почему даже в DOSbox звук не работает, вернее работает только вариант со спикером). А по растровым эффектам чем он хуже b2m? И какие у тебя к нему серьезные претензии кроме звука (у меня буквально пара)?
Таких эмуляторов, как я помню, штук 10 разных
Я проверил свои эмуляторы, к которым есть исходники на asm (полностью или частично). Ни один из них (Кузнецов, Вьюнов, Ашихмин+Пересадов) не дал результата, лучшего, чем у b2m.
ivagor, у тебя есть исходники к ve27a?
ivagor, расссказывай...
дык ve27
дык ve27
Скинь исходники мне на мыло, плиз.
ivagor, а чего ты так обостренно относишься к моему отношению к ve27a? Я ничего плохого про него не сказал. Просто под XP он не работает принципиально и почти так же принципиально, у меня по крайней мере, он не работает и под dosbox-ом -- все очень медленно, раз в 100, даже если запрещено абсолютно все, включая ви53. А так ничего, отличный наверное эмулятор. Я им много пользовался на ранних стадиях разработки, потому что в нем хороший дебуггер. Чего и b2m и VV желаю =)
все очень медленно, раз в 100, даже если запрещено абсолютно все, включая ви53.
? А у меня почти нормальная скорость, всего процентов на 20 медленнее, чем b2m и VV (под XP, а под DOSbox очень медленно, это да). Там куча настроек, раньше у меня тоже было медленно, потом что-то подкрутил - стало нормально.
а чего ты так обостренно относишься к моему отношению к ve27a?
Ну как же, это был первый нормальный эмулятор вектора! И лучший для ДОС до сих пор.
Я им много пользовался на ранних стадиях разработки, потому что в нем хороший дебуггер.
А первый очень хороший и удобный кросс-отладчик, кое в чем опережающий ve27 и другие - tdv. Ну это я так, ностальгия, понимаешь.
Я обновил эмулятор, попытался добиться тех же мограющих эффектов, как и на видео, которое выложил Tim0xA. Однако качество видео не позволяет сравнить попиксельно :) Просьба к Tim0xA сравнить визуально похожесть эффектов с реалом.
Просьба к Tim0xA сравнить визуально похожесть эффектов с реалом.
Вечером сравню. А так на первый взгляд очень похоже получилось.
А так на первый взгляд очень похоже получилось
Кроме нижней части экрана, где шахматная текстура и улитка.
Чорт, Black Ice не проверить. В нем тоже по одному разу out $0c.
В Black Ice оказывается можно включить режим многократной записи out $0c
Но проверить всё равно не получится, т.к. у меня нет ни квазика ни дисковода.
http://pic.ipicture.ru/uploads/090930/14301/Cjgks79TBT.gif
Кроме нижней части экрана, где шахматная текстура и улитка.
Я имел в виду реал с исправленной палитрой, там улитка в порядке. Видео с него я не выкладывал, т.к. там кадры подергиваются. Попробую еще сегодня сделать доработку из VU.
b2m, а запусти с clrspace.com - там нету движущихся изображений и все сразу понятно. Образец фотографии с Tim0xИнОгО экрана где-то рядом.
---------- Post added at 15:31 ---------- Previous post was at 15:24 ----------
А у меня почти нормальная скорость, всего процентов на 20 медленнее, чем b2m и VV (под XP, а под DOSbox очень медленно, это да). Там куча настроек, раньше у меня тоже было медленно, потом что-то подкрутил - стало нормально.
Может быть ты сделаешь дистро ve27a от ivagor-a? А то я уже не первый раз слышу какие-то общие слова вроде "надо правильно настроить", но почему-то правильных настроек ни разу ни от кого так и не увидел.
Black Ice можно расчленить. Думаю что у вооруженного супердебаггером ivagor-a это не займет много сил и времени. Достаточно сдампить память во время телевизорного эффекта, подправить точку входа и убрать вызовы плеера: их почему-то два. В $a000+смещение и их хорошо видно, они обрамлены клацанием портами квазидиска.
Так понимаю, что тебе тоже не очень хочется заниматься этой "полезной, но не интересной задачей". Может я в выходные попробую, если к тому времени еще будет необходимость.
Просто у тебя это обычно ловчее всех получается =)
Просто никому больше такой фигней заниматься неохота.
Просто никому больше такой фигней заниматься неохота.
И я это слышу от человека, который заставил меня перефотографировать экран с переделанной таблицей цветов с композитного выхода только для того, чтобы сказать мне же, что мне еще есть над чем поработать :D
а запусти с clrspace.com - там нету движущихся изображений и все сразу понятно. Образец фотографии с Tim0xИнОгО экрана где-то рядом.
Ну запустил. В общем и целом - похоже. Однако непонятно, почему буква "а" в слове "цвета" не обрезалась, и с девяткой внизу такая же картина, хотя буква "ц" - нормально. Загадка. Ты там только один цвет для букв использовал?
А ещё непонятно, каким образом сформировалась широкая полоса после буквы "а", даже шире, чем последняя колонка чёрных пикселов в этой букве.
---------- Post added at 18:43 ---------- Previous post was at 18:21 ----------
Блин, такое возможно лишь в случае, если цвета программируются аж для 3-х соседних точек: предпоследней и последней по горизонтали в букве "а" и следующая точка, т.к. именно она на данный момент используется и скрывает хвостик у буквы "ц".
Мне тоже не очень-то понятно. Черный цвет в картинке только один, но полоса после буквы "а" по-моему не шире. Если мы говорим про скрин с реала. Твой фикс у меня пока не было возможности оценить.
Если по букве L судить, все вроде бы понятно. Запись происходит в цвет "предыдущего" пикселя. А вот буквы "a" и "ц" мне одинаково непонятны. В "ц" как будто бы запись в "следующий", а в "а" сразу во все.
Давно не видел схему, но подозреваю, что сигнал записи в ОЗУ палитры держится не один пиксельклок, а сильно дольше. Что при этом происходит в реальной микросхеме, кто знает? Запись по фронту происходит, или по спаду? И, например, 12МГц могут немного превышать возможности декодера адреса в микросхэме ОЗУ палитры.
---------- Post added at 17:51 ---------- Previous post was at 17:48 ----------
Блин, такое возможно лишь в случае, если цвета программируются аж для 3-х соседних точек: предпоследней и последней по горизонтали в букве "а" и следующая точка, т.к. именно она на данный момент используется и скрывает хвостик у буквы "ц".
Пропустить адрес ячейки через ФНЧ? =)
---------- Post added at 17:52 ---------- Previous post was at 17:51 ----------
И, кстати, так же ли выглядит картинка с исправлением для однократного out $c?
Обновил одну DLL-ку, теперь всё как у Tim0xA-и на фото и видео :)
---------- Post added at 18:55 ---------- Previous post was at 18:53 ----------
И, кстати, так же ли выглядит картинка с исправлением для однократного out $c?
Это которая?
---------- Post added at 18:59 ---------- Previous post was at 18:55 ----------
Кстати, насчёт трёх точек - вполне реально. Если сигнал вывода в порт длится один такт, то за это время на экране пробегают два пикселя, но если сигнал записи в порт смещён на "полпикселя", то он захватит три точки.
Вот эта:
http://pic.ipicture.ru/uploads/090929/15427/jWKCdfB4vc.jpg
Интересно, после перепаивания вектора на срабатывание от однократного out $c, изменилась эта картинка или нет?
И непонятно, что именно ты исправил? Что значит "для 3-х соседних точек". Ты записываешь теперь значение сразу в три ячейки, или в ячейку, адрес которой получен какой-то логической операцией между индексами этих точек?
С этой картинкой я и сравнивал. Теперь она у меня один в один.
Я сделал считывание номера цвета для трёх точек подряд, и меняю палитру для всех номеров цветов, которые считались.
Гы! Понятно. Но непонятен пока эквивалент происходящего в реальном мире. Вроде ОЗУ статическое асинхронное, запись по /WR, значит чтобы записать 3 раза надо подать три /WR, а не три раза поменять адрес при одном опущенном /WR...
Подождем Tim0xУ c паяльником.
Видимо запись происходит не по фронту, а по уровню, и при смене адреса запись происходит в обе ячейки, до смены адреса и после.
http://pdf1.alldatasheet.com/datasheet-pdf/view/132986/TI/SN7489N.html
Похоже, что это вполне вероятно.
Гы! Я уже читал этот документ полчаса назад :)
256 цветов на весь экран:
Подождем Tim0xУ c паяльником.
Доработка из VU дала хороший результат. Картинка стабильна, палитра пишется за один раз, стали видны градации цветов.
http://i054.radikal.ru/0909/89/96d82ae74c1b.jpg
Отличие от b2m в том, что на реале растровый эффект не мелькает и не выходит на бордюр.
"8 bit snail" практически не отличается от b2m
---------- Post added at 23:44 ---------- Previous post was at 23:41 ----------
"256 цветов" - картинка тоже стабильна
http://i066.radikal.ru/0909/55/73b05b266677.jpg
Хмм.. Про бордюр занятно.
Уже уснул, на телике и тюнере v06cc не успеешь посмотреть?
Мелькающие и выходящие на бордюр полосы - это артефакты эмуляции, я всё никак не могу избавиться от них. А в остальном - пиксель в пиксель.
Зато стало понятно, в каком направлении копать: они появляются при очень частом выводе в порт 0Ch.
---------- Post added at 12:13 ---------- Previous post was at 11:57 ----------
Кстати, там ошибочка у меня в 256 цветах есть, порт 02 забыл инициализировать. Исправленный вариант тут (http://bashkiria-2m.narod.ru/files/clrs.rar).
Уфф.. Кажись поборол я этот артефакт эмуляции! Качайте и сравнивайте с реальным Вектором :)
Сравним :)
Кстати, есть такой вот "чудовищно быстрый скроллер" (http://www.sensi.org/~svo/scalar/ware/18/)
http://sensi.org/~svo/scalar/media/s/scroller.com.png
В эмуляторах текст совершенно нечитабельный. На реале еще не проверял.
И вдобавок о наболевшем: Попалось еще одно видео с CC'2009 (http://www.youtube.com/watch?v=1EyvffxbvaY). Демонстрируется 8-битное барахло по порядку, как выставлено. Ну думаю, хоть тут покажут фильму про любимую ПЭВМ. Но нет! Как только оператор подходит к вектору, камера отворачивается (3:00). Ну сделай еще два шага, оператор, задержись на 5 секунд, ведь там еще много интересного! Фигушки. Это какой-то заговор...
crazy_bender/ex-PLACEBO
01.10.2009, 16:20
это точно. там как раз 2 вектора были живых - "оригинал" и "реинкарнация". тот что оригинал тогда еще мой был. кста человек писал что смог его подключить :)
И вдобавок о наболевшем: Попалось еще одно видео с CC'2009 (http://www.youtube.com/watch?v=1EyvffxbvaY). Демонстрируется 8-битное барахло по порядку, как выставлено. Ну думаю, хоть тут покажут фильму про любимую ПЭВМ. Но нет! Как только оператор подходит к вектору, камера отворачивается (3:00). Ну сделай еще два шага, оператор, задержись на 5 секунд, ведь там еще много интересного! Фигушки. Это какой-то заговор...
Это еще с прошлого года так. Еще ничего. В этом году Вектор стоял в углу, но народ хоть немного ходил на него смотреть и кнопку тыкал. В прошлом году он стоял можно сказать в центре экспозиции, но все равно все умудрились обойти его так, как будто это секретный объект за съемку которого -- расстрел. Надо понимать посетителя: magic glow в ламповом усилителе -- это суперкруто (ну правда круто, как с этим поспоришь). Страдающий хореей китайский робот с синими светодиодами -- это суперкруто (вау, лошадка). А чем крут Вектор, тем более не старый прокуренный, а какой-то подозрительно ярко блестящий, обычному человеку объяснить очень трудно, потому что никаких певичных признаков крутизны у него нет. Ну штука какая-то стоит.. Какие-то буквы на ней.. И правда, чем он крут-то? ;)
@crazy_bender: Значит два живых Вектора есть =)
---------- Post added at 18:03 ---------- Previous post was at 17:55 ----------
Кстати, есть такой вот "чудовищно быстрый скроллер"
Кстати о чудовищно быстрых программах. Кроме безумного скроллера, есть еще Spy's Demise (http://sensi.org/~svo/scalar/ware/82/). Шпион в Векторовской версии носится в совершеннейшем неадеквате. Хотелось бы убедиться, что это правда так.
svofski, подтверждаю, заговор. Объяснить не могу. Когда на прошлом СС'08 подходил к оргам и просил сделать "прямое включение" про Вектор - они начинали задумчиво смотреть сквозь меня и связь терялась.
Вероятно на следующем СС надо сделать сеть из десятка Векторов (на DE, живых и на эмуляторе), тогда произойдет разрыв.
В этом ЦЦ было включение и я сказал пару слов про Вектор. Другое дело, что говоритель из меня никакой и я не знаю, сохранилось ли это эпическое действие где-нибудь. Может оно и к лучшему, если не сохранилось =)
В этом ЦЦ было включение и я сказал пару слов про Вектор. Другое дело, что говоритель из меня никакой и я не знаю, сохранилось ли это эпическое действие где-нибудь. Может оно и к лучшему, если не сохранилось =)
http://www.youtube.com/watch?v=zsEKkafyCgE&feature=player_embedded
Может следующее ЦЦ байкотировать?
омфг, этот позор все теперь увидят =)))
---------- Post added at 23:11 ---------- Previous post was at 23:00 ----------
SKcorp:
Цель этой игры решиться спрыгнуть с петлёй на шее с места, располагающегося достаточно высоко над землёй для того, чтобы упав, повиснуть. Цель этой игры -- наказать тех, кто причиняет великие несчастья своими эгоистическими поступками. Это самая лучшая игра потому что победитель в то же время оказывается и проигравшим и решение судьи всегда окончательно.
SKcorp., спасибо за видео. Это просто бальзам на душу :)
Tim0xA, жду-не дождусь посмотреть как оно на реале.
P.S. b2m - респект, теперь ничего не мельтешит!
Tim0xA, жду-не дождусь посмотреть как оно на реале.
На реале не мельтешит, а на DE1 подглючивает.
Шрифт поменялся не в лучшую сторону, конечно.
Странно, как это подглючивает? Я смотрел, было нормально.
С шрифтом ничего не поделаешь, увы.
На тюнере все отлично, а вот на телеке синхронизация срывается.
А-а, ты об этом, а я уж испугался. Ну тут я не знаю даже, там все так мельтешит, вот телику и страшно =)
А буквы-то в полосочку ты не просто так сделал :)
С шрифтом ничего не поделаешь, увы.
Можно было между слов вывод в порт сделать, пробел как минимум 8 точек. Хотя для шахматки сложно будет подобрать, но там оно и так нормально смотрится.
---------- Post added at 12:59 ---------- Previous post was at 12:42 ----------
Нет, какой всё-таки шикарный тест - этот clrspace.rom
Вот был-бы "out 0Ch,a" где-нибудь в другом месте, фиг бы мы догадались про "три точки" :)
Можно было между слов вывод в порт сделать, пробел как минимум 8 точек. Хотя для шахматки сложно будет подобрать, но там оно и так нормально смотрится.
Большие буквы имеют неровный правый край и скроллятся через весь экран. То, что ты предлагаешь можно, но не в этом случае. Изначально-то получилось оттого, что хватало обычного зазора между буквами.
clrspace — да, удачно вошло. Black Ice тоже был бы полезен, если б его было попроще запустить на выживших реалах.
Я понимаю, вся фишка была в том, чтобы буквы пересекались, но может лучше было гасить большие буквы раньше, чтобы они не залазили на маленькие? По крайней мере для тех сканлиний, где есть маленькие буквы.
---------- Post added at 14:49 ---------- Previous post was at 14:35 ----------
Или такой вариант: в кадре, где большая буква начинает наезжать на маленькую, стирать у пересекающихся букв одну полоску, а где наезд заканчивается, восстанавливать. Получится, как будто большие буквы сверху проезжают, а не под маленькими.
Как гасить большие буквы раньше?
Горизонтальное разрешение равно ширине одного NOP-а, но фактически ничего нельзя изменить без одной модификации A и OUT-a: ты ведь только что писал 256-тицветик. В таких буквах как S, например, лесенки перекрываются и это удачно красиво, потому что сдвинуть четырехноповую черту можно с разрешением в один NOP. Но минимальная ширина черты -- 4 нопа (ana b/out $c vs ora c/out $c, например). У меня все буквы из трех таких четырехноповых столбиков и кое-где есть одноноповые лесенки, но черточки все равно широкие.
Есть другие варианты. Можно, например, вместо гашения того же цвета менять цвет экрана (просто иметь там картинку), а реальное гашение делать где-то за кадром. Но это требует редизайна всего экрана и в рамки фикса демы это никак уже не вписывается. Это простор для дальнейшего творчества.
svofski, а музыки в демке уже не будет?
Почему же, будет. Просто я фикс делал на "реаловой" версии, чтобы была возможность проверять. Теперь когда известно, что работает, можно вставить музыку обратно. На днях будет, но скорее всего не сегодня. Perjantai.
Есть другие варианты. Можно, например, вместо гашения того же цвета менять цвет экрана (просто иметь там картинку), а реальное гашение делать где-то за кадром.
Правильно. Чёрный цвет у букв должен быть другим цветом, а гашение делать за экраном. Только вот с бордюром надо чего-то придумать, его цвет задаётся в начале строки. Можно, например, вместо гашения менять номер цвета бордюра. Но тогда "за кадром" нужно будет не только изменить палитру основного цвета, но и цвет бордюра вернуть на место - хватит ли тактов?
---------- Post added at 16:45 ---------- Previous post was at 16:36 ----------
В принципе, должно хватить: в А приготовить заранее ноль, а как только вышли за экран сделать out 2 и out 0Ch, итого 24 такта.
Если мы говорим про улитку -- нет. А если про какую-то гипотетическую демку будущего, то вполне. Но мельтешня где-то на бордюре по-моему будет по-любому.
К слову сказать, вообще возможности всех этих эффектов очень сильно ограничены временем, которое уходит на сканирование экрана. Если при классическом отношении к экрану во время прямого хода луча можно подготавливать данные, играть музыку и вообще делать почти все на свете, тут мы тратим драгоценное время процессора на то, что ему делать не к лицу. Причем не только на время видимого хода луча, но и все время от прерывания до верхней границы экрана тоже. В это время можно делать только такие вещи, которые всегда занимают одинаковое количество циклов. Хочется, например, вызвать в это время плеер, а нельзя -- уж очень он ветвист.
Иногда мне кажется, что большую ценность имела бы возможность устанавливать номер строки, по которой происходит прерывание, а не номер строки, с которой начинается сканирование экрана. Скролл всего экрана в целом все равно применим лишь очень ограниченно, а возможность мельтешить хоть чем-нибудь при полном отсуствии спрайтов могла бы быть в свое время очень полезной. Но это так. Вектор и без того нехарактерно весел для выходца из СССР.
В это время можно делать только такие вещи, которые всегда занимают одинаковое количество циклов. Хочется, например, вызвать в это время плеер, а нельзя -- уж очень он ветвист.
Можно таймером вычислять, сколько тактов осталось ждать. 1 nop = 2 тика.
Так а получается неровно. Выходит всегда примерно там, но плюса-минуса на "ширину" цикла опроса все равно не избежать.
Можно, если использовать несколько NOP-ов и прыгать на них при помощи PCHL
Чего-то туплю. А что будет в HL?
А что будет в HL?
IMHO (обработанное) значение, считанное из таймера
---------- Post added at 18:52 ---------- Previous post was at 18:49 ----------
А в памяти участок NOPов, в нужное место которого попадем после разборок с таймером и на котором можно "выровняться"
Да, значение таймера поделить на 16, частное использовать как количество циклов, остаток поделить на 2 и сложить с адресом начала NOP-ов, а после окончания цикла сделать PCHL.
Я с интересом посмотрю на пример реализации.
Я обновил clrs на своём сайте (тот, что по ссылке выше), добавил музыку. Иногда подмаргивает, но это потому, что плеер делает свою работу слишком долго, я не разбирался с кодом плеера.
svofski, ты не гонял 256 цветов с музыкой на своём агрегате? А то у меня похоже таймер глючит: засекал количество тактов, которое выполняется процедура плеера - не бывает очень долго. Не должно мограть.
Судя по EXOLONу, в последних версиях таймер уехал. Последняя версия, на которой exolon не чудит - от 21.09, т.е. до внесения правок программирования палитры.
Tim0xA, ты ведь можешь и последнюю версию clrs проверить. Музыки без ST не будет слышно, но стабильность картинки можно оценить.
clrs с музоном у меня держится в общем ровно. Периодически мыргает чуть-чуть, а иногда срывается на мощное ШШШШШ, видимо вообще сильно мимо кассы пролетает. Может быть можно сместить картинку так, чтобы гарантировано плееру места хватало? Заодно и оценить сколько времени нужно плееру.
Вообще респект. Я бы никогда до такого не допер.
Я, вобщем, разобрался. В понедельник будет новая версия.
Неофициальный хак
13586
как будет официальный - уберу
Собственно, можно и этот хак считать официальным. :)
Просто по другому не сделаешь, буквально 10 сканлиний нехватало. Однако гарантии, что на других мелодиях не будет моргать, я дать не могу.
Хмм.. а у меня clrslow продолжает срываться. Сначала мыргает несколько раз с интервалом секунд 4-6, потом какое-то время держится, а потом начинает мыргать весьма интенсивно.
Обновил эмулятор. clrslow стабилен.
Просьба к svofski - может ты напишешь пару строк, что то вроде "Дополнения к техническому описанию вектора" по последним достижениям реверс-инжиниринга? b2m, конечно, тоже мог бы, но он даже к своему эмулятору не хочет доку писать :) .
Ыы.. А чего писать-то? Ничего принципиально нового с точки зрения программирования для Вектора мы не узнали. Все новое по-моему про процессор да таймер, в основном это важно для эмуляции, а не для создания чего-то нового. Ну разве что про растровые эффекты? Составь оглавление =)
1. Особенности программирования палитры
Если про процессор и таймер тоже напишешь - совсем хорошо будет.
Еще было бы здорово откорректировать карточки таблицы PAL и 8snail в базисе (b2m уже упоминал ранее).
Еще было бы здорово откорректировать карточки таблицы PAL и 8snail в базисе (b2m уже упоминал ранее).
b2m цинично издевался =) А откорректировать надо не карточки, а программы. Я об этом помню.
А откорректировать надо не карточки, а программы
8snail тоже планируешь откорректировать, чтобы было как на скриншоте?
Я не понимаю, ты предлагаешь откорректировать скриншот так, чтобы было как будет, или что?
Ну разве что про растровые эффекты?
Учитывая твой накопленный опыт было бы интересно прочитать статью на эту тему (с примерами, диаграммами, расчетами и т.п).
На скрине 8snail сейчас буквы HULLO! сплошные.
ivagor, я в курсе. И что ты предлагаешь мне сделать? Бросить абсолютно все, завести MS Paint и стереть каждую вторую строку? Стереть карточку? Или может быть все-таки ты согласишься подождать, пока я найду время собрать окончательную версию и проапдейтить все сразу?
svofski, спокойствие, только спокойствие. Ход мой мысли был такой: в одном из постов, после варианта snail с чересстрочными буквами ты написал, что доделывать ее уже не планируешь (только музыку вернешь), поэтому я подумал, что про скрин в базисе со сплошными буквами ты забыл. Раз ты все помнишь - это замечательно (я так частенько забываю).
ivagor, ок. Просто я не успеваю сделать все сразу, вот и получается что что-то залипает надолго. Улитка ждет своего часа: когда будет версия с музыкой, будет и скриншот.
Неофициальный хак clrslow.zip
На реале все ОК.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot