Дак эмуль же сам умеет отписывать видео. Или я не понял замысла?
Вид для печати
С такой задачей проще на самом Спеке видео и делать, дергая скрины =)) Повесить на прерывания или по факту смены кадра процедуру записи экрана на диск (CF или куда там), а потом обратно загружать.
Анреал вроде как может отписывать видео... на крайняк, можно воспользоваться сторонними утилитами для записи виндового экрана.
Попробовал сделать видео стандарта UHD (640*200). Качество картинки всё-таки заметно лучше, чем 160*200. Особенно на мелком тексте видно.
Стабильно идёт 6 кадр/с, а 7 кадров уже немного не успевает. Думаю сделать 5 кадров, потому что 50/6 ровно не делится, получается не стандартная скорость.
Ещё надо сделать звук не только 11025 моно, но и 22050 моно. Или же 11025 стерео. По размеру одинаково.
По-моему, 22050 моно звучит лучше, чем 11025 стерео. Так и должно быть в теории.
Как бы да... до 15 КГц люди с более-менее оставшимся слухом частоты хорошо улавливают =) некоторые до 20. А выше 22 разницу на бюджетной аппаратуре никто не услышит.
Почему для GS выбрали нестандартные 37 КГц, до сих пор не пойму. Разве что так было проще схему слепить. По большому счету, там вдвое можно было снизить частоту выборки.
Частотный диапазон сигнала нужно делить на от частоты дескретизации.
Да, имелось ввиду делить на 2.)
Звук 22050 не получился. Работает, но не стабильно как-то. На эмуляторе записал пример.
После экспериментов оставил 11025 моно.
Сделал второй формат, 640*200, 5 кадров. Этакое слайд-шоу. Зато качество!
В первом ролике 22050 герц, в остальных 11025:
Круто нереально!
- - - Добавлено - - -
А что за проблема с 22050?
Проблема подобрать оптимальный размер порции звука, подгружаемого с каждым кадром. Для 11025 герц подобрал, но надо проверять на длинном ролике. Например, часовом ). Если порцию сделать чуть меньше, то буфер успеет опустеть, и звук будет заикаться, а если чуть больше, то буфер переполнится и будет притормаживать картинка. А на 22050 в два раза больше поток, быстрее виден результат.
В WP звук грузится порциями по 2048, а тут я подобрал опытным путём размер в 1112 байт. И, если грузить такими неровными порциями, то иногда, наверно, какой байтик может потеряться. Тогда слышны щелчки, но главное, размер порции звука, реально загруженного, может плавать. Но тут я не уверен.
В теории бы должно 11025/10 кадров = 1102 байта на кадр. Но у меня почему-то пока прижилось 1112, проверено практикой.
В общем, может ещё проведу опыты и найду оптимальное значение для 22050 герц.
Да, хороший вариант. Можно и саму игру запускать с FAT через fatall, например.
А ещё бывают муз. клипы, сделанные в такой технике, с медленным fps. Это такой художественный эффект получается задаром.
Может соберусь сделать для обычного экрана, да ещё цветной вариант. Вячеслав М. же делал с дискеток.
Все же SMK не дает (не имеет) улучшения графических режимов, а это одна из основных его (GMX) фишек.
Другое дело, что их реализация в GMX могла быть и получше. Особенно если бы прислушивались к пожеланиям кодеров/пользователей/демоделов.
Вместо малоприменимого в реальности атрибутно-аппаратного мультиколора можно было сделать 16 цветов на точку, например.
А для стандартного разрешения, если не ошибаюсь, там и вовсе 256 бы было, если воткнуто два модуля памяти.
Ну дак было заявлено, что SMK для БК это круче, чем GMX для Скорпиона, хотя у каждого свои преимущества.
А главное - совершенно разный функционал. Из общего разве что расширение памяти компа.
Тем более дисковый (FDD) контроллер уже вмонтирован в Скорпион, а остальные накопители подключаются через другие платы.
1. Теперь нормально работает звук 22050 герц Моно в режиме 10 кадр/с. На каждый кадр уходит 1124*2 байта звука.
Проверял на ролике длиной 18 минут, в эмуле.
2. Для режима 5 кадр/с звук остался 11025 герц. И 22050, в принципе, работает, но по-моему, комп иногда не успевает загрузить в GS 1124*4 байт звука за кадр. Надо же за раз в два раза больше грузить, потому что кадров в два раза меньше. А загрузка в GS будет помедленнее,
чем загрузка просто в память. С одной стороны, общий объём примерно тот же, но, видимо, GS легче забирать меньшими порциями?
Не понятно. Ну да ладно, 5 кадров всё равно шутошный режим.
3. Заметил, что качество звука портится, если менять его скорость. Во всяком случае, с помощью софта, что у меня есть, так получается.
Так что, в примере оставил как есть, но теперь не точно совпадает с видео ). Можно менять частоту кадров исходного ролика, если очень надо.
4. Плеер научился ходить по папкам. Теперь можно закидывать видео не только в корень.
5. Звук в Bad Apple плотный и зачем-то амплитуда выкручена на максимум. Можно сделать более подходящие примеры, демонстрирующие кристальное качество звука ).
Вот старый ролик, но теперь звук 22050 и 100% скорость. Разница должна быть слышна:
https://youtu.be/KnKJ7_hc_kk
Нет слов! Офигенски!
Может, и в этом дело, может, в тройном перекодировании gs-эмуль-ютуб, но вместо высоких частот жуткое шипение.
Низкие - да, качественно долбят. Но на 22 КГц совсем не тянет... хотя намного лучше, чем первая версия.
- - - Добавлено - - -
Послушал оригинал (по ссылке с ютуба) - да, это исходник такой. Есть версии с более качественным звуком.
Было бы интересно сконвертить под родной спектрумовский экран (с ч/б дитерингом) вот эту версию, для черно-белого самое то:
https://www.youtube.com/watch?v=9Xz4NV0zsbY
У меня слух не очень, но по-моему да. Высокие частоты через GS уже не те получаются, чем если просто в плеере под Win слушать. А в записанном видео ещё похуже. Но на реальном компе получше, чем в эмуляторе. Но всё равно глуховаты получаются. Оно как бы от 11 герц отличается, но не то чтоб очень сильно.
Да, должно хорошо получится.
1. Оказывается, скорость звука через WP примерно 98%. Поэтому, получаются небольшие нестыковки.
2. Сделана попытка подстройки скорости воспроизведения под звук. Некоторые паузы между кадрами пропускались. Значения подобраны экспериментально. В целом работает на 640*200 и 256*192, но для режима 160*200 и 10 кадров лишних пауз нет. Нечего пропускать. Если сделать звук 11025, то может быть. Решил не применять такой метод. Качеством звука жертвовать нельзя. Оставил как было.
3. Звук должен стать лучше. Может я перепутал, может в инструкции к плееру ошибка, но звук 22050 Моно лучше звучит в режиме 11025 Стерео. Но зато съедает больше тактов на загрузку. Видео 160*200 уже не совсем успевает...
4. Добавлен формат для стандартного экрана ZX.
5. Ролик BA Metal сделан в цветном режиме, хотя сам он ч.б. Так лучше выглядит, чем версия чисто ч.б.
6. Подстройка нового видео сделана через частоту кадров исходного ролика. Путём сложнейших расчётов на калькуляторе подобрана частота 29,4 кадра. Примерно совпадает, но можно сделать и точнее.
Это обычный ZX экран и новый улучшенный (наверно) звук:
https://youtu.be/yGB8acLAZSI
Во, то, что нужно =) Изображение вполне приемлемое за счёт изначально подходящей "палитры".
По идее, fps можно поднять, экран-то намного меньше, чем расширенный GMX, но и так неплохо.
Звук, насколько могу судить по прослушке на динамике мобилы, довольно чистый, верхи улавливаются.
Видео чуток отстает от звука, хотя это может быть субъективным ощущением из-за частоты кадров.
Наиболее заметно расхождение на певичке, артикуляция визуально не совпадает со словами.
Видимо, дело реально в образующемся "пинге" из-за небольшого fps. В целом, не критично.
Последнее видео надо было сдвинуть на кадр, так лучше совпадает со звуком. Уж не буду перезаливать.
Попробовал сделать плеер "классик", который только для обычного экрана и обычного ZX. Но работает это в турбо режиме. В режиме Композит работает, но звук чуть сдвигается. В режиме Пентагон немного не успевает, видимо, - через пару минут звук срывается. Странно. Может потому, что при работе этой версии не включена страница DOS. Если сделать звук похуже, 11025 герц, то будет стабильно, я думаю. Если кому не лень, можете потестировать на обычных компах версию Классик. Но нужна турбо.
Ещё эксперименты делал:
Частота кадров 25 в режиме турбо - немного не хватает мощи компа.
Частота 10 кадров и на 3.5 мегагерц - опять немного не хватает тактов.
Через контроллер Nemo в эмуляторе не смог запустить.
Заметил, что в режиме 160*200 некоторые кадры будто режутся лучом. Но на записи видео, если смотреть покадрово, ничего такого нет. Может, оптический обман из-за частоты 10 кадров?
Упд. На частоту 10 кадров при 3.5 мегагерц и звуке 11025 должно хватить производительности.
А без записи где смотрелось, в эмуляторе или на реале? Убедиться все же стоит на реале. Желательно кинескопном =)
На котором ход луча, вернее, смена кадра по ходу луча, будет стопроцентно видна, если программа работает без VSync.
Имею в виду, что смена кадров происходит по факту их загрузки, без ожидания прерывания.
В идеале, конечно, стоит заморочиться с потоком, подстраивающем частоту кадров под скорость компа.
Выглядеть это будет как пропуск кадров (падение FPS), когда мощности не хватает на полновесный объем данных.
При этом звук должен стабильно работать и не рваться. В общем, чтобы мощь компа влияла только на FPS, как в играх на PC.
Для этого наверняка придется переписывать драйвер, сидящий внутри GS, или вообще менять принцип проигрывания.
Теперь создать ролик можно одним движением мышки. Просто перетащить видео на файл vid2zx.bat.
Сделал на основе батника для Эвы (автор по-моему DimkaM).
Ну и благодаря автору DaDither можно регулировать качество видео на свой вкус.
Сначала я сделал версию 4.01, в которой преобразование кадров в нужную палитру и размеры происходило с помощью ffmpeg. А потом из bmp в формат gmx конвертировала моя прога. Но качество мне не понравилось ).
Здесь версия 4.02. Применил метод Atkinson, а также увеличил яркость на 10%. Шума стало меньше, на мой взгляд.
Также плеер немного поправил, чтобы он мог работать на разделах с разным размером кластера. Но это надо проверять.
Когда-нибудь, возможно, попробую выводить звук на ковокс, тогда можно будет обойтись без ГС.
Видео:
Скрытый текст
https://youtu.be/a_tSfwZf4TY[свернуть]
Сделал версию 5, которая выводит звук через ковокс LPT или GS.
Плюсы:
Звук точно синхронизирован с видео.
Можно ставить на паузу (в будущем и перемотку можно сделать).
Минусы:
Качество звука пока хромает, но наверное можно немного стабилизировать. Главное сделать более равномерный вывод в порт.
На реале проверил через SMUC. В эмуле через ZC тоже работает, но успевает выдать чуть меньше байт звука. Возможно, на реальном компе будет наоборот.
Лежит в папке Video05. Ссылка в подписи.
Upd. Немного улучшил звук при работе через smuc.
Можно любой порт добавить. Лишь бы в один какой-то выводить. Попробовал в эмуле порты 0f и 4f - есть звук слева или справа. А как переводить SD в режим моно что-то не нашёл. А звук в одном ухе как-то не очень красиво.
Наверное у всех давно есть ГС, так что не очень и надо ).
SD (версия 1.51 как минимум) имеет поддержку портов обычного COVOX'а и автоматически (как я понял из описания) отправляет звук в оба (лево и право) канала.
еще вариант сделать как в программе ultrasonic:
https://i.postimg.cc/65tBDqWp/image-8.png
можно выбрать вообще любой порт COVOX'а (соотвественно включая GS) и дополнительно какие команды в какие порты отправить (или не отправлять) до начала проигрывания и после него - таким образом можно сначала перевести GS в режим COVOX, проиграть видео, потом перевести GS в обычный режим.
Хотя, соглашусть - все это от лукавого... с учетом того, что программа рассчитана только на Scorpion GMX (или простой Скорпион, если про .ZXV говорить) то тут вариантов не много - GS или Covox #DD - в таком случае проще выбраит один из двух вариантов, и не заморачиваться. можно пожалуй #FB добавить для владельцев SD или MultiSound'а
з.ы.
я вроде скачал последний архив с ГДрайва и в файле Hystory вижу версию 0.1.6, но при запуске все равно показывает 0.1.5 и нет выбора GS/LPT, поэтому и задал вопрос.