PDA

Просмотр полной версии : Рива Рейд для Вектора



svofski
27.12.2017, 03:25
Теперь на Векторе в некотором смысле тоже есть River Raid, причем синглфреймовый. Приглашаю попробовать:

https://github.com/svofski/incursiondelrio/releases/latest

Это не конверсия. Все написано с нуля по мотивам версии Атари 2600. Особенно интересно услышать как работает на реале, потому что реала у меня нет. Для реалов без прибамбасов есть wav.

ivagor
27.12.2017, 08:22
svofski, рива рейд - супер! Сначала производит впечатление, как будто это не вектор. Все быстро, стильно, молодежно. Таких бы игрушек (которые используют возможности вектора и невозможно повторить один в один на спеке) побольше.
Крошечный багрепорт - один раз, когда перед смертью подбил вертолетик вверху, там с секунду оставался синий фон выше игрового поля.

Ramiros
27.12.2017, 11:05
svofski, Клевая игрушка получилась! Наверное это лучшая динамичная игра на вектор за все его 30 лет существования!

tnt23
27.12.2017, 11:08
(страдая) выложите же кто-нибудь уже видео :)

ivagor
27.12.2017, 11:24
Насчет видео - если с реала, то очень желательно с тюнера и c FPS=50. Пусть даже будет ч/б, зато четко по кадрам. Чтобы сделать FPS=50 я захватывал с "полным" разрешением (типа 720x576) при FPS=25 (при этом четные строки относятся к одному кадру, а нечетные - к следующему) и потом в virtualdub доводил до кондиции (итоговое разрешение в два раза меньше по высоте и ширине, зато FPS=50).
Хотя интересно посмотреть на любое видео с реала, даже с телефона.

Ramiros
27.12.2017, 12:19
Видео (https://cloud.mail.ru/public/Gs4t/AbcxkThw8)

ivagor
27.12.2017, 12:35
Ramiros, спасибо за видео, на сетчатый мост на 25 fps несколько колбасит, уверен, что на реале такого не будет.

tnt23
27.12.2017, 12:41
Повод наконец-то переделать свои реалы в нормальный неинверсный цвет и возложить один на алтарь поклонения svofski!

CityAceE
27.12.2017, 14:31
Видео
Спасибо! Для всеобщего удобства выложил и на YouTube:


https://youtu.be/FtninRCQwyQ

svofski
27.12.2017, 15:24
Всем спасибо за отзывы! Прошу прощения, что поторопился и выложил без скриншотов и видео. За видео отдельное спасибо! В перспективе хотелось бы видео потом все-таки зацепить с реала тюнером, или умеренно приличной камерой типа телефон. Сам я отлаживался (последний месяц скорее просто играл) в своем эмуляторе и в VV, на компьютере младше 10 лет проблем с кадрами быть не должно.

Баги есть, но можно было до конца века их исправлять, а можно было поздравить вектористов с Новым Годом таким необычным образом. Я выделил те, которые меня лично сильно огорчали и их исправил. Остальное на когда-нибудь. Мне этот проект порядком уже поднадоел, потому что начал я его так давно, что вспомнить год могу только по датам некоторых файлов (2012). Это не значит, конечно, что я все это время его писал, просто месяц назад достал из загашника и со свежими силами доделал.

Единственное, что я хотел бы доделать в ближайшем будущем, это поддержку джойстика. Подозреваю, что владельцам реалов, особенно с емкостной клавиатурой, может прийтись нелегко в этой игре. Поэтому я жду какой-то статистики о том, какой именно джойстик надо поддержать и надо ли. Я про них совсем ничего не знаю.


tnt23, можно попробовать схему (http://zx-pk.ru/threads/8739-vektor-06ts-videovykhod-podklyuchenie-k-tv.html?p=942725&viewfull=1#post942725) blackinwoman и воткнуть RGB в ЕЙЦО от Ямахи.

Hacker VBI
27.12.2017, 15:40
svofski, это супер.
просто отлично!

tnt23
27.12.2017, 15:43
svofski, на pouet зарелизил уже как playable demo? :)

svofski
27.12.2017, 16:12
tnt23, почему демо? Это полный гейм.

Я думал подождать ЦЦ, но еще 8 месяцев пробулькивать готовый продукт я бы не смог. К тому же чего-то немного для Вектора было сделано в 2017 году, хотя еще осталось несколько дней — кто знает?

Можно будет добавить на pouet, проду не обязательно быть с пати.

Mx_Serg
27.12.2017, 17:41
Можно поздравить Вектористов и автора, конечно, с событием. Комп без риве-рэйда это даже и не комп )) Немного ёлок с домиками на земле не хватает - в остальном выглядит аутентично. Мне еще MSX-овая интерпретация нравится... Но на ПК8000 ее, вродь-как никто так и не решился перевести.

svofski
27.12.2017, 18:38
ёлок с домиками на земле не хватает
Согласен, это одна из таких фич, с которыми мне было жалко расставаться. И в принципе ресурсы позволяют, просто моего личного терпения уже не хватило.

Ландшафт, спрайты и анимацию я делал первым чередом и старался экономить циклы. В принципе не зря, потому что в синглфрейме если один раз одного цикла не хватило, то все пропало. И опять же, взявшись за шашки спустя много лет я смог доделать игру не особенно трясясь над каждой инструкцией благодаря заложенной в начале экономии. Домики изначально я не заложил, потому что они не являются абсолютно необходимой частью игры и я не знал, сколько всего я могу успеть за кадр в конце концов. Сейчас мне кажется, что на домик-другой циклов бы наверное хватило, да и в основном коде сэкономлено отнюдь не все. Это чисто фантазия, потому что хоть код и выставлен на всеобщее посмешище, трудно представить себе, чтобы кто-нибудь захотел в этом разбираться. А у меня в следующий раз запал появится опять лет через 5 не раньше.

NEO SPECTRUMAN
27.12.2017, 18:41
Теперь на Векторе в некотором смысле тоже есть River Raid, причем синглфреймовый. Приглашаю попробовать:
а нельзя "легким движением руки"
сделать нефреймовые версии для ориона и специалиста ?

svofski
27.12.2017, 19:42
NEO SPECTRUMAN, я очень плохо осведомлен об этих компьютерах, но рискну предположить, что легким нельзя. Насколько я знаю графика по слоям и аппаратная прокрутка довольно специфичные именно для Вектора особенности.

Я могу рассказать вкратце как все устроено:

Три слоя отведены для обычных цветов, нулевой цвет - вода. 4-й слой (в Векторовской терминологии он кажется называется наоборот первый, но это не важно) работает как маска, он закрывает все грязные дела, которые остаются за кадром после прокрутки. Обычные спрайты просто по нулевому фону летают и сами себя затирают слева и справа. Игровое поле выдавливается из виртуального тюбика сверху, с ним же появляются новые враги и затирается черная рамка, чтобы открыть новую строку поля. Снизу наоборот зарисовывается 4-м слоем то, что уехало вниз. Все спрайты перерисовываются каждый кадр. Экономия от прокрутки только на собственно игровом поле: перерисовывается только верх и низ, остальное сдвигается вниз за счет аппаратной крутилки.

Если выбросить из головы то, что все это задумано именно как способ использовать наконец знаменитую Векторовскую аппаратную прокрутку, которая кроме Полета и текстовых режимов по-моему так нигде и не была использована и согласиться выкинуть немного разноцветности, то, может быть, можно прикинуть способ сделать все то же самое без нее и не медленнее. Дело в том, что хоть игровое поле и не приходится обновлять, но приходится бежать со всех ног, чтобы только остаться на том же месте в статических областях экрана: например счет, топливо итд все приходится рисовать каждый кадр. И очень даже может быть, что можно вообще все то же самое сделать без аппаратной прокрутки. Спрайты и так рисуются каждый кадр, в игровом поле можно вычислять разность и перерисовывать только изменившиеся участки. А за счет того, что статическое поле не надо перерисовывать каждый кадр, может быть будет какой-то выигрыш во времени.

Кому интересно, в VirtualVector-е предусмотрены разные способы издевок: там можно отключать слои по одному, запрещать звуковые каналы, снижать входное напряжение, щелкать по лампам и т.д. Правда по-моему нельзя запретить прокрутку: в текущей версии можно затереть для этого нулями $d3 $03 (out 03) по адресу $0251.

NEO SPECTRUMAN
27.12.2017, 19:48
я очень плохо осведомлен об этих компьютерах
ну строение экрана у всех троих по одному принципу
в орионе есть похожий 4 цветный режим только с 2-мя слоями
в специалисте только один черно белый слой


но рискну предположить, что легким нельзя
походу да
сходу решил что там не сильно много векторных возможностей используется

Ramiros
27.12.2017, 22:52
Кому интересно, в VirtualVector-е предусмотрены разные способы издевок: там можно отключать слои по одному, запрещать звуковые каналы, снижать входное напряжение, щелкать по лампам и т.д. Правда по-моему нельзя запретить прокрутку: в текущей версии можно затереть для этого нулями $d3 $03 (out 03) по адресу $0251.

Можно отключить и скроллинг, и изменение палитры с предварительной загрузкой палитры по умолчанию )). смотрите screen->rendering...

svofski
27.12.2017, 23:49
Можно отключить и скроллинг, и изменение палитры с предварительной загрузкой палитры по умолчанию )). смотрите screen->rendering...
А, ну вот! Самое забавное это оставить все в норме, но запретить скроллинг. Получается немного другая игра, тоже по своему потешная.

Дмитрий2012
28.12.2017, 21:43
Хотя интересно посмотреть на любое видео с реала, даже с телефона.
Вот https://www.youtube.com/watch?v=v-Cr3CaGtpE
Сори за качество видео. Так и не научился снимать видосы с экрана телека, сплошные помехи:( на видео видно, что есть отличия в работе игрушки в эмуляторе и на реале Вектор-06Ц 2014
http://zx-pk.ru/threads/22616-vektor-06ts-2014.html

svofski
28.12.2017, 22:09
Дмитрий2012, спасибо большущее! Я вижу лажу в бордюре (он синий, должен быть черный) и, когда игра начинается с моста тоже видно, как выезжает ландшафт (все должно быть в этот момент черным). Так вроде все остальное прилично, или есть еще что-то, что я проглядел?

Отлично переливается фон, просто АМИГААААА!!!!11111

Дмитрий2012
28.12.2017, 22:27
Так вроде все остальное прилично, или есть еще что-то, что я проглядел?
В остальном вроде все нормально. На эмуляторе практически не играл, "залип" в игре на реале:)

svofski
28.12.2017, 22:36
Немного удивлен бордюром. С палитрой это конечно как всегда, у меня всего четыре раза out $c.

svofski
29.12.2017, 13:50
Дмитрий2012, когда будет время, посмотри пожалуйста на этот вариант. Надеюсь, что починились и бордюр и палитра:
ROM (http://sensi.org/~svo/b/incurzion.rom) WAV (http://sensi.org/~svo/b/incurzion.wav)

Дмитрий2012
29.12.2017, 16:11
Дмитрий2012, когда будет время, посмотри пожалуйста на этот вариант. Надеюсь, что починились и бордюр и палитра:
С бордюром ничего не изменилось, а вот ландшафт больше не выезжает. На цвета не обращайте внимание, это фотик мой дурит, или мои кривые руки. На самом деле фон синий, а не фиолетовый ))) потом сотру видео.

svofski
29.12.2017, 16:28
Дмитрий2012, скажи, а как ты загружаешь в реал? Есть смысл мне паковать и делать вав, или без разницы?

NEO SPECTRUMAN
29.12.2017, 16:32
этот вариант.
а можно в 2-х словах о изменениях
чтоб знать какие не эмулируемые грабли еще есть у вектора кроме пол литры

Дмитрий2012
29.12.2017, 16:33
Дмитрий2012, скажи, а как ты загружаешь в реал? Есть смысл мне паковать и делать вав, или без разницы?
Загружаю с помощью "магнитофона" http://zx-pk.ru/threads/25622-magnitofon-dlya-spektruma-na-atmega128.html В принципе мне без разницы, ром в wav могу и сам конвертнуть.

svofski
29.12.2017, 16:46
NEO SPECTRUMAN, с палитрой все просто — я увеличил количество и уменьшил средоточье out $c. А вот с бордюром я пока с помощью Дмитрия ломаю голову, для меня это новое что-то.

Пока я готовлю новую версию, вопрос Дмитрию — а бордюр точно исправен? Например в Бейсике 2.5: COLOR7,0,4 (желтый текст, черный фон, красный бордюр).

- - - Добавлено - - -

Вдогонку про загадочность и ее эмуляцию — VirtualVector весьма убедительно эмулирует глюки с программированием палитры, но все-таки многовато прощает. Для теста на совместимость с реалом хорошо бы как-то ужесточить глючность.

NEO SPECTRUMAN
29.12.2017, 16:48
Вдогонку про загадочность и ее эмуляцию
1. ну реал не реальный а реплика 2014 года (мало ли там каких косяков добавили)
2. зная качество эмуляции отечественных компьютеров...

svofski
29.12.2017, 16:57
NEO SPECTRUMAN, не обижай наших птичек. Реплика реплицирована один в один. А качество софтверной эмуляции Вектора всеми нашими стараниями по выуживанию мельчайших глюков на самом высоком уровне.

Запись палитры это где-то на уровне квантовой механики и она сильно варьировалась даже в реалах своего времени. Проще сделать эмулятор SID-а про который два комодорофила согласятся, что он правильно звучит, чем добиться реалистичных глюков в программировании Векторовской палитры.

Mx_Serg
29.12.2017, 17:00
Надо после праздников свой 6128ц расчехлить. Вроде-как и Ауты повторять в нем уже не нужно было...

Дмитрий2012
29.12.2017, 17:16
Пока я готовлю новую версию, вопрос Дмитрию — а бордюр точно исправен? Например в Бейсике 2.5: COLOR7,0,4 (желтый текст, черный фон, красный бордюр).
Вроде все нормально.

svofski
29.12.2017, 17:18
Дмитрий2012, те же ссылки и rom и wav ( http://sensi.org/~svo/b/incurzion.wav ). Проверь снова, пожалуйста. Пока я просто переставляю местами программирование бордюра. Если и в этот раз не поможет, надо будет сочинять какой-то тест, потому что это явление мне до сих пор не было известно.

- - - Добавлено - - -


Вроде все нормально.
Да, выглядит хорошо.

ivagor
29.12.2017, 17:27
svofski, насчет бордюра - попробуй emu, там в рива рейде бордюр не черный.

- - - Добавлено - - -

Дмитрий2012 - спасибо за проверку на реале!

Дмитрий2012
29.12.2017, 17:28
Дмитрий2012, те же ссылки и rom и wav ( http://sensi.org/~svo/b/incurzion.wav ). Проверь снова, пожалуйста.
Отлично!!! Теперь все работает как и в эмуляторе:) видео попозже сделаю.

+Добовлено
https://youtu.be/e7SqQ2slicE

ivagor
29.12.2017, 17:30
В emu, кстати, новая версия тоже дает черный бордюр.

svofski
29.12.2017, 17:32
Ух! Отлично. Дмитрий2012, cпасибо еще раз за проверку! Тогда эту версию я замораживаю. А на досуге надо будет как-то разобраться почему же не всегда получается программировать бордюр.

- - - Добавлено - - -


В emu, кстати, новая версия тоже дает черный бордюр.

Вот казалось бы, сколько мы уже все это пилим, а продолжаем находить новые сюрпризы :)

ivagor
29.12.2017, 17:46
А b2m сидит гордо - у него то все как у реала.

- - - Добавлено - - -

Причина "нечерного бордюра" очень простая. Установка режима ВВ55 на реале (и в emu) приводит к соответствующему изменению порта B (02)

svofski
29.12.2017, 17:47
А b2m сидит гордо - у него то все как у реала.

Чего-то я недавно видел у него подозрительное не то с ВИ53, не то с моментом записи в порт $0c :)

Обновил ссылки итд. В этот раз обошлось еще малой кровью. Помню, как 8-битную улитку мне пришлось вообще переделывать, чтобы на реале выглядело прилично.

ivagor
29.12.2017, 17:48
Упс, мы как-то сразу запостили, ты успел увидеть мою версию причины?

svofski
29.12.2017, 17:50
Причина "нечерного бордюра" очень простая. Установка режима ВВ55 на реале (и в emu) приводит к соответствующему изменению порта B (02)

Установка режима сбрасывает выход в 0?

ivagor
29.12.2017, 17:53
Судя по emu - установка B на ввод приводит к FF, на вывод - сбрасывает в 0.

svofski
29.12.2017, 17:58
Я припоминаю, что в каждом сорце 8255 на моей памяти эти строчки робко закомментированы, причем обычно видно, что по несколько раз туда-сюда :)

NEO SPECTRUMAN
29.12.2017, 17:59
документация к вв55 об этом видимо тоже молчит...
...нужно будет посмотреть...
...не помню там такого

ivagor
29.12.2017, 18:05
Мой букварь (Щелкунов, Дианов МПСиС 1989 - книга, не журнал) говорит - (стр. 99)
При записи нового управляющего слова все буферные регистры портов устанавливаются в 0.

svofski
29.12.2017, 18:06
Беглый взгляд в сорцы mamedev говорит то же самое.

NEO SPECTRUMAN
29.12.2017, 18:11
А качество софтверной эмуляции Вектора
так что вы там говорили про качество эмуляции? :v2_dizzy_vodka2:

ivagor
29.12.2017, 18:18
С техническими моментами вроде разобрались, можно пару слов про игру написать.
Кто куда доходил? Без всяких посторонних средств дошел до 10го моста. Потом стал пользоваться сохранением/загрузкой в VV и снизил частоту прерываний до 25 Гц (я старый казуальщик). Прошел до 105 (последнее сохранение 99й мост) и устал. Но может еще полетаю. В паре мест (в районе 63 и, вроде 80какого-то) сильная напряженка с топливом, прям еле-еле дополз.

- - - Добавлено - - -


так что вы там говорили про качество эмуляции?
В данном случае emu оказался на высоте.
Просто желательно проверять и в VV и в emu (можно и в js). Но кроме проверки нужна и внимательность. Я вот смотрел в emu, но не обратил внимание на цвет бордюра.

- - - Добавлено - - -

Вобще, столько сил, сколько вложено в улучшение эмуляции вектора, не вложено ни в один комп на 580ВМ80.

svofski
29.12.2017, 18:37
NEO SPECTRUMAN, все хорошо с качеством — всего одна проблема на игру. Сейчас сделаю тест, поправим эмуляторы и в следующий раз будет лучше.

У меня до первого бабаха обычно, а потом теряю ритм и все плохо. Доходил до 13. Обычно где-то там получается накопить на бонусную жизнь и тут же разумеется она кончается ;)

Лайфхак с топливом — лететь быстро выгодно, лететь медленно дорого.

ivagor
29.12.2017, 18:48
Лайфхак с топливом — лететь быстро выгодно, лететь медленно дорого.
С какого-то моста я это понял :)

- - - Добавлено - - -

Но над топливом вроде лучше медленно

b2m
30.12.2017, 00:20
Вобще, столько сил, сколько вложено в улучшение эмуляции вектора, не вложено ни в один комп на 580ВМ80.
Ага. Демомейкеры, мать их ети. А началось всё со Скайнета, если я не ошибаюсь.

svofski
30.12.2017, 00:27
А началось всё со Скайнета, если я не ошибаюсь.
С их домашнего доктора, ага.

svofski
31.12.2017, 03:13
Заметил в самой верхушке бордюра мельтешню, которая осталась после поисков бордюрной проблемы. Переставил местами пару строк, мельтешня ушла. Очень надеюсь, что ничего при этом не запорол. Ссылка в первом сообщении.

Довел до ума билд. Если вдруг кто-то захочет собрать сам, на Linux или macOS это в два счета. В README.md описание процесса.

KTSerg
31.12.2017, 09:05
На моём ч/б мониторе слишком контрастные цвета получаются.
От тёмных вертолётов виден только очень яркий винт, а корпус почти не различим, как и рубка у ПЛ.

svofski
31.12.2017, 16:35
KTSerg, самое время подключить цветной значит ;)

ivagor
06.01.2018, 19:01
svofski, возможно в базисе стоит заменить на последнюю версию?

svofski
06.01.2018, 19:17
Спасибо, что напомнил. Обновил.

ivagor
06.01.2018, 19:23
Это точно последняя версия?

svofski
06.01.2018, 19:37
MD5 (incurzion.rom) = eb3725b67038a464443c0f220a49cda1

Почему ты спрашиваешь?

ivagor
06.01.2018, 20:09
Обновляю страницу с ромом, скачиваю - все тот же старый файл: e1d813c10ede7956b307f4ab072b9879

svofski
06.01.2018, 20:23
Это был заворот кешок. Файл точно уже 49cda1, новый. Полезная фича кстати в Хроме, в девелоперском режиме если долго кликнуть на иконку перезагрузки, появится пункт "почистить кеш и насильно все перезагрузить". Он бывает помогает, когда более очевидные способы не приносят плодов.

ivagor
06.01.2018, 20:27
Firefox обманул через режим приватного просмотра. В нем скачивается новый файл, а в основном окне все еще старый.

svofski
06.01.2018, 20:33
Бетон. Вообще я конечно мог бы настроить HTTP хедеры для файлов из Картотеки, но это не нужно. Обычный ритм обновления ~ 1 файл в два года.

svofski
08.01.2018, 01:29
Собрались сегодня с tnt23 и доделали его Вектор до состояния почти полностью совместимого с цветным ЭЛТ монитором. Об этом наверное надо отдельно в теме про подключение к ЦТВ. Ничего нового мы не изобрели, но документировать как-то надо. Заодно проверили супер-мега-турбо-загрузчик ivagor-a. Его тоже надо восхвалить где-то в отдельной теме.

Записали как могли видео:

https://youtu.be/MPCPI_RYuyM

К сожалению я не подготовился достаточно хорошо для съемки, да и не уверен, что смог бы снять хорошо с экрана даже с подготовкой. После съемки телефоном, конверсий форматов и пережатия ютубой, снова стало трудно разглядеть насколько плавно прокручивается экран. Я смотрел во все глаза, прокручивается плавно, мельтешни на мосту нет. К сожалению ни c одним из эмуляторов подобной плавности увидеть не получается. Чините, реплицируйте, подключайте реалы к ЭЛТ.

Фотоальбом https://photos.app.goo.gl/0aacX03IYMN8ljK32

NEO SPECTRUMAN
08.01.2018, 02:20
Чините, реплицируйте, подключайте реалы к ЭЛТ.
допиливайте эмуляторы

svofski
08.01.2018, 02:28
Мы стараемся.

ivagor
08.01.2018, 07:41
На основном домашнем мониторе у меня 50 Гц режимы выглядят неадекватно (зато он IPS), но у меня есть 2 TN (1280x1024), которые нормально показывают 50 Гц (хорошо подходят для всяких DE).
Попробовал на неосновном компе создать пользовательское разрешение с 50 Гц - создалось, показывает. Но эмуляторы (VV, emu, первый v06x) с ним не дают ожидаемой плавности, хоть в окне (VV, emu), хоть в полноэкранном (VV, emu, v06x). У VV включал vsync - разницы нет.
И, кстати, настройка полноэкранного в emu - это нечто странное. На основном компе с графикой intel (дискретку давно продал за ненадобностью) вобще не смог добиться приемлемого результата. На неосновном с amd (тоже встройка) почти нормально.

- - - Добавлено - - -

Надо будет DE попробовать в среду, уж там то все должно быть железно.

svofski
08.01.2018, 12:18
Я смог добиться неземной плавности на специально заточенной Raspberry Pi 3 и специально захаченным vector06sdl, но пока рано торжествовать. Только на композитном выходе.

То же самое через HDMI (другой монитор) дергается. Я практически уверен, что этот монитор внутри себя кадры подводит к одной своей любимой частоте.

На DE будет железно, но это и не софтовый эмулятор.

BYTEMAN
08.01.2018, 12:55
Собрались сегодня с tnt23 и доделали его Вектор до состояния почти полностью совместимого с цветным ЭЛТ монитором. Об этом наверное надо отдельно в теме про подключение к ЦТВ. Ничего нового мы не изобрели, но документировать как-то надо. Заодно проверили супер-мега-турбо-загрузчик ivagor-a. Его тоже надо восхвалить где-то в отдельной теме.

Летом бился почти неделю с подключением вектора к 32ВТЦ, вариант с перекидыванием резюков не сработал - картинка очень тусклая, не видно практически ничего... Буду пробовать вариант с инверторами.

KTSerg
08.01.2018, 13:22
Летом бился почти неделю с подключением вектора к 32ВТЦ, вариант с перекидыванием резюков не сработал - картинка очень тусклая, не видно практически ничего... Буду пробовать вариант с инверторами.
Цвета тусклые но правильные?
Если сделать инверторы, цвета будут инвертированы...
Вектор какой 06Ц или .02 ?
Может на 315-ых эмиттерные повторители собрать (как выход Видео на 02-ом) ?

tnt23
08.01.2018, 13:34
Обладатели .02, сняли бы осциллограмму видеосигнала. Интересует уровень черного, и заодно где он в схеме .02 формируется? Упоминался какой-то резистор или перемычка.

svofski
08.01.2018, 14:51
BYTEMAN, я понимаю, что моя схема в альбоме не самая легко читаемая, но ты уверен, что перекидывал именно так? У нас были сомнения в нагрузочной способности ЛН1, но по крайней мере с монитором, что у нас был, они не оправдались. Картинка вышла достаточно яркой (хотя могла бы быть сочнее).

KTSerg
08.01.2018, 19:38
Обладатели .02, сняли бы осциллограмму видеосигнала. Интересует уровень черного, и заодно где он в схеме .02 формируется? Упоминался какой-то резистор или перемычка.
Я в какой-то из тем писал про модификацию своего 02-го.
Заменил резистор R50 на переменник и смог регулировать "уровень черного".

ТС-у извинения за офф-топ...

svofski
08.01.2018, 19:41
ТС-у извинения за офф-топ...
Любая тема про Вектор заканчивается обсуждением неудачных попыток подключения реала к телевизору. Это прекрасно.

ivagor
08.01.2018, 19:48
неудачных попыток подключения реала к телевизору
Уточню - к современному телевизору. В начале 90х отец подключал наш 06Ц (не .02) к двум цветным ТВ (и к нескольким ЧБ, но про это совсем не интересно).
1. Юность Ц404 (вроде не спутал название). Потребовалось добавить инверсию (насколько помню, вектор он не трогал, инверсию сделал "ближе к ТВ") и все заработало нормально.
2. Горизонт (букв и цифр не помню) со скартом. Тут он сделал инверсию в векторе. Был один недостаток - изображение было смещено по горизонтали.
А вот с новыми тв (в 2000х) уже потребовалась доработка синхры.

svofski
08.01.2018, 23:08
У современного телевизора есть понятие видео входа, а у телевизора современного Вектору ничего подобного в помине не было. Негласно ожидалось, что человек с компьютером умеет заодно чинить телевизоры и само собой разумеется, что ему придется в него закопаться. Наверняка где-то там внутри типового телевизора есть место, где сигналы идут в инверсном виде и куда очень удобно вклиниться, поэтому схема Вектора кому-то в то время показалась очень ловкой.

TomaTLAB
09.01.2018, 02:57
Если мне склероз не изменяет, то между "матрицей" и видеоусилителями. Хотя могу врать, давно дело было :)
Зато это наиболее "близкое" к кинескопу место, ничем не "замутненное", так сказать. А та же К174АФ5 могла мути намутить - ой вей.

LeoN65816
10.01.2018, 00:49
Любая тема про Вектор заканчивается обсуждением неудачных попыток подключения реала к телевизору. Это прекрасно.
Будучи пацаном в конце 80-х, подключал свой Вектор-06Ц к телеку "Горизонт Ц-280Д" (вроде как переходная модель, модуль цветности "МЦ-3-1" на К174ХА17). Ну, и на управление окном ХА17 подал по глупости 12В. И домашний телек благополучно переключился в вечный режим монитора... Отец (педагог, электронщик), конечно "для порядка" пожурил меня доходчиво, но не отбил любовь к компам и электронике и желание "кулибничать". В тот же вечер, благодаря другу отца - телемастеру, была проведена удачная операция замены дорогущей ХА17. Через некоторое время я осмелился повторить попытку, но уже через резюк. Цвета показывал правильные (не помню, чтобы делал что-либо с инверсией).

ivagor
10.01.2018, 06:49
Надо будет DE попробовать в среду
Попробовал, работает нормально, подробности письмом.

KTSerg
27.01.2018, 06:56
Разбился перед вертолетами, которые летают поперёк дороги. Пока стоял перед вылетом, вертолёты перед носом летают а несущим винтом не крутят. Винт у вертолётов начинает крутиться только после начала движения самолёта.

ivagor
27.01.2018, 06:59
Тоже видел такое.

svofski
27.01.2018, 11:14
Да, такая фича ;)

Руслан
07.10.2018, 12:55
Ребята, мне для магнитофона нужна. Как на ленту залить игру?

svofski
07.10.2018, 14:26
На первой странице в самом первом сообщении ссылка, вот эта:
https://github.com/svofski/incursiondelrio/releases/latest
Там есть для скачивания wav-файл.

Кроме того, в Картотеке напротив имени .rom-а есть треугольничек, который запускает проигрыватель:
http://sensi.org/scalar/ware/897/

Руслан
07.10.2018, 15:20
Спасибо. Нашёл. Отличная игра!

svofski
07.10.2018, 15:21
Кланяюсь.

Ратмир
08.10.2018, 19:26
У меня есть Атари. Если получиться запустить на ней эту игру, то сравню.

dbk
04.05.2019, 11:51
А где в исходниках спрайты?

svofski
04.05.2019, 13:27
dbk, они заданы в скрипте, который генерит их сдвиги итд. Вот скрипт:
https://github.com/svofski/incursiondelrio/blob/master/makesprites.py
А вот то, что из него выходит:
https://github.com/svofski/incursiondelrio/blob/master/ship.inc

ivagor
04.05.2019, 15:27
svofski, почему решил использовать двухстрочный вывод вместо столбцового (столбцами было бы быстрее и короче)?

svofski
04.05.2019, 16:22
ivagor, спрайты -- это самое первое, что я вообще сделал для этой игры и это было ~8 лет назад. Не очень хорошо помню. Может быть у меня была какая-то мысль, может быть она была о чем-то не том и дала помеху. Это отмазка.

А теперь про твой вопрос -- ты собственно о чем? ;) Вот смотрю сейчас на ship_ltr (https://github.com/svofski/incursiondelrio/blob/master/ship.inc#L57), и вижу четкий паттерн, 4 пуша, lxi h, 256+8, dad sp, sphl, 4 пуша, lxi h, 256+8, dad sp, sphl.. В некоторых местах скипаются начальные пуши, если есть такая возможность. Это по-моему вывод по столбцам. А что такое двухстрочный вывод и где он?

ivagor
04.05.2019, 16:41
Про двухстрочность протормозил. Посмотрел на layer 0 и не сообразил сразу, что там в связи с оптимизацией под конкретную картинку выводятся только две строки.

svofski
04.05.2019, 17:18
Спрайты я делал в первую очередь и по-моему они в общем неплохо оптимизированы. Что же касается более высокоуровневых вещей, там оптимизация очень прагматичная. Что мешало и тормозило, я переделывал. Все остальное, если гуденаф, то остается как есть. Иначе я бы никогда его не доделал.

ivagor
04.05.2019, 17:24
Еще вопрос про спрайты и оптимизацию. Нулевые строки ты не выводишь, а нулевые двухбайтные push b делаешь. Зачем они нужны?

svofski
04.05.2019, 17:49
ivagor, затирать предыдущий кадр? Как именно выбирается стратегия в каких случаях я сейчас точно не скажу, это все подгонялось под конкретные кораблики-вертолетики.

ivagor
04.05.2019, 18:09
затирать предыдущий кадр?
Тогда push b должен был бы быть в каждом столбце, а смотрю ship layer 0 и там только в одном столбце. Ну и кажется, что полностью нулевые столбцы можно было бы соптимизировать и пропустить. Наверно я тут тоже что-то недопонимаю.

svofski
04.05.2019, 18:51
Зависит еще от того, что именно затирается. Если движемся слева направо и текущая фаза сдвига по границе столбца, то надо затереть столбец слева и там все нули. Если справа налево, то левые нули не нужны, зато нужны справа.

ivagor
04.05.2019, 19:27
Понятно, я про движение по горизонтали не подумал. Но тогда часть push b все же можно сократить (кроме затирающих) - пачки или даже одиночные push b, которые первые или последние в столбце. И соответственно откорректировать приращение sp, если столбец не последний. В кораблике плывущем направо есть такие пустые места справа.

- - - Добавлено - - -

Ну и видны моменты, когда меняется один байт, не два. Для них lxi h можно заменить на mvi h или mvi l. Стоят ли эти крошки усложнения генератора - не знаю. В болдере++ совсем мало тайлов и я вручную оптимизировал. Тупо, но просто.

svofski
05.05.2019, 01:09
Оценить стоят крошки или нет можно в случае, когда мы решаем какую-то проблему. Мы какую проблему решаем?

ivagor
05.05.2019, 05:53
При наличии достаточного запаса по быстродействию (теоретически) можно было бы добавить домик или ёлку на берегу.
Оптимизация по содержимому требует усложнения генератора. А вот оптимизировать переход между столбцами очень просто. Отказываемся от хранения опорного адреса в DE и храним текущий адрес в HL (а в DE - данные для push). Тогда переход между столбцами станет просто inr h. Переход между плоскостями меняется на lxi d+dad d, но в случае одинакового Y можно использовать mvi a+add h+mov h,a.

svofski
05.05.2019, 10:36
ivagor, дерзай, я ж не просто так сорцы опубликовал :)

ivagor
05.05.2019, 10:51
Опубликованные сорцы - это очень-очень здорово. Но они несовместимы с моим инструментарием, поэтому если я захочу что-то менять, то мне нужно или делать патчи или дизассемблировать и потом менять. Пока на это недостаточно мотивации. Сейчас мотивацию коплю на океаноид, там ведь тоже исходник мне не пойдет и придется дизассемблировать.

svofski
05.05.2019, 11:49
Вот не могу представить себе, что такое можно написать в прекрасме, что не съест любой другой инструментарий для 8080. Хотя бы после пары итераций поиска замены. Зачем сразу пускаться во все тяжкие и дизассемблировать?

ivagor
05.05.2019, 11:52
Насчет RR я возможно погорячился, давно примерялся и уже забыл, что в нем смущало. А насчет океаноида дизассемблирование более чем вероятно из-за нетрадиционных мнемоник.

svofski
05.05.2019, 12:08
Взглянул бегло на сорцы ark.asm. Трудно понять, что в них непоправимо не так, но хозяин барин. Я могу себе представить например, что фаза дизассемблирования активирует какие-то области в мозгу, которые нужны для продуктивного кодинга, но обычно спят. Таким образом объективно лишняя стадия переносит кодера в зону комфорта и положительно влияет на процесс.

ivagor
05.05.2019, 12:26
А еще это дополнительная отмазка, почему я буду откладывать перенос. "Ну это же надо сначала дизассемблировать, а это сложно".

dbk
07.05.2019, 17:10
По-поводу спрайтов River Raid несколько вопросов:
1. спрайт представляет из себя квадратик 16x8, увеличение этого квадратика повлечет за собой увеличение оперативной используемой памяти в программе?
2. цвета пикселей могут быть любые из палитры 256 цветов, но не более 16 для одновременного отображения?
3. цвета пикселей задаются цифрой в рисунке спрайта?

svofski
07.05.2019, 19:02
dbk,
1) Спрайты могут быть любого размера, он определяется тем, сколько пикселей и строк задано в makesprites.py. Память увеличивается при увеличении спрайта. Для типичного кораблика будет сгенерировано 16 сдвигов (8 в одну сторону + 8 в другую), для моста же, например, только один, потому что ему не надо ездить.
2) Палитра хитрая, один бит все делает черным, это нужно для рамки для прокрутки. Поэтому цветов 9: 8 + черный. Палитра определена в palette.inc (обычная называется просто palette_data).
3) Я привык думать о цифрах как о слоях, потому что Вектор и потому что когда я их планировал приходилось думать где там чего. Но это конечно же цвета.

Если ты думаешь использовать это для чего-то своего, то может быть например тебе маска будет неактуальной и можно использовать все 16 цветов. Также можно обратить внимание на критику ivagor-а в предыдущих сообщениях. Если будешь чего-то менять, сначала желательно отладить вывод какого-то тестового спрайта независимо от всего, а потом уже этот шаблон засовывать в питонский генератор.

dbk
07.05.2019, 20:23
dbk,
Если ты думаешь использовать это для чего-то своего, то может быть например тебе маска будет неактуальной и можно использовать все 16 цветов. Также можно обратить внимание на критику ivagor-а в предыдущих сообщениях. Если будешь чего-то менять, сначала желательно отладить вывод какого-то тестового спрайта независимо от всего, а потом уже этот шаблон засовывать в питонский генератор.
Спасибо, что разложил, но нет, ни для чего своего я использовать не буду ))) я программировать не умею. Просто подумалось, как тяжело подправить спрайтики ) ну те же самолетики врагов на типа такой который я сейчас приаттачил (поднятно, что он большеват). Я так понимаю, как минимум нужно писать конвертер png в твою систему кодирования, ну и правка кода новые палитру и т.д. Думал, тупо ручками по "чистым" цветам подправить спрайт, ну и попробовать вручную перенести в твой формат ) тупо влоб ))) а потом посмотреть что получится )
68951

ivagor
09.05.2019, 12:55
Для пробы чуть изменил makesprites.py (всего -8 тактов на спрайт), сгенерировал ship.inc и собрал бинарник. Результат работает. А вот чтобы менять серьезнее, например оптимизировать переходы между столбцами надо или разбираться с математикой или использовать самомодифицирующийся код, для которого еще нужно генерировать метки. svofski, я понял, почему ты мог остановиться на текущем варианте :)

svofski
09.05.2019, 13:33
ivagor, Спасибо за понимание =)))) Метки несложно генерировать, хотя я взаимно понимаю, почему ты не хочешь более плотно разбираться с makesprites.py. Я и сам в него обратно лезть не хочу.

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