Воспроизведение озвученной анимации с ROM-Дисков

Советский компьютер Радио-86РК (1986) и его клоны

Moderator: Shaos

User avatar
Alikberov
Doomed
Posts: 347
Joined: 14 Oct 2019 18:10
Location: Tashkent

Re: Воспроизведение озвученной анимации с ROM-Дисков

Post by Alikberov »

Shaos wrote:Апдейтнул первое сообщение топика с последней версией ромдиска и новым видео, где всё реально :roll:
Меня без подписчиков и лайков оставили!? :lol:
Shaos wrote:Уже 25 лайков и 200 просмотров :o
Вот что код РК животворящий делает! :mrgreen:
Shaos wrote:Надо в конвертер добавить возможность подмены текста...
Да. Это очень полезно.
А ещё можно добавить в свободные ячейки побольше разной информации. Типа, ссылок. Вдруг кто-то в дамп заглянёт или Блокнотом откроет! :idea:
Shaos wrote:P.S. Ещё нужно задокумнтировать перемотку - я чото так и не понял какие кнопки делают FF, а какие REW :)
А там всё просто, как я и сказал: На всей матрице - 00, а чётные/нечётные линии - реверс.
(Специально так сделал, чтобы на любой клавиатуре так или иначе всё работало.)
User avatar
Shaos
Admin
Posts: 23763
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Воспроизведение озвученной анимации с ROM-Дисков

Post by Shaos »

Alikberov wrote:
Shaos wrote:Апдейтнул первое сообщение топика с последней версией ромдиска и новым видео, где всё реально :roll:
Меня без подписчиков и лайков оставили!? :lol:
Сорян 8)
Я линк на твой канал в описание вставил :)
Alikberov wrote:
Shaos wrote:P.S. Ещё нужно задокумнтировать перемотку - я чото так и не понял какие кнопки делают FF, а какие REW :)
А там всё просто, как я и сказал: На всей матрице - 00, а чётные/нечётные линии - реверс.
(Специально так сделал, чтобы на любой клавиатуре так или иначе всё работало.)
Ну надо таблицу кнопок составить для классической РК-клавы и для других ;)
Кстати по схеме где MS7007 подключена задом-наперёд тоже будет работать?
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Alikberov
Doomed
Posts: 347
Joined: 14 Oct 2019 18:10
Location: Tashkent

Re: Воспроизведение озвученной анимации с ROM-Дисков

Post by Alikberov »

Shaos wrote:
Alikberov wrote:
Shaos wrote:Апдейтнул первое сообщение топика с последней версией ромдиска и новым видео, где всё реально :roll:
Меня без подписчиков и лайков оставили!? :lol:
Сорян 8)
Я линк на твой канал в описание вставил :)
Спасибо! :idea:
Shaos wrote:Ну надо таблицу кнопок составить для классической РК-клавы и для других ;)
Кстати по схеме где MS7007 подключена задом-наперёд тоже будет работать?
А что там составлять?
Набираем директиву D8000,9FFF и жмём нужные клавиши, пока дамп травится. :no:
(Только нужно запоминалку хорошую иметь.)
Вот только смысл?
В этом плеере - перемотка назад и вперёд: Не игра же! :rotate:
Нужно успеть отреагировать на кой-какие клавиши и играть дальше, не тратя драгоценные такты на церемонии. :mrgreen:

Нет, в принципе, выставить 00, дождаться не FF и опросить как надо - можно, для приличия.
Кстати, я хотел клавиши цифр сделать для мгновенной перемотки в конкретную позицию, как в YouTube.
Не предлагаете же VHS.RKR апгрейдить до YOUTUBE.RKR? :lol:
(Плеер писал же впопыхах. Не всё продумал. Сами понимаете. :roll: Лишь бы хоть какую-то анимацию прогнать, не задумываясь о перемотке.)
Pyk
Maniac
Posts: 250
Joined: 21 Jan 2003 04:08

Re: Программное перемещение видеопамяти в РК-совместимых ком

Post by Pyk »

Shaos wrote:Теперь надо избавиться от F1 и F3 в видеопамяти и переконфигурировать ПДП (с некоторой потерей FPS, но зато с более чистым звуком)
Тут палка о двух концах: если не избавляться от F1/F3, то получится изменить режим работы ПДП на 26, что вроде бы должно дать более равномерное торможение и более чистый звук (без F1/F3 ПДП не успевает). С другой стороны, сами F1/F3 вносят свой вклад в ухудшение чистоты звука. Думаю, нужно сравнивать. Можно еще попробовать с F1, но без F3, кстати.
User avatar
Shaos
Admin
Posts: 23763
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Воспроизведение озвученной анимации с ROM-Дисков

Post by Shaos »

Alikberov wrote:
Shaos wrote:Уже 25 лайков и 200 просмотров :o
Вот что код РК животворящий делает! :mrgreen:
Уже 662 просмотра и 50 лайков :o
Alikberov wrote:
Shaos wrote:Надо в конвертер добавить возможность подмены текста...
Да. Это очень полезно.
А ещё можно добавить в свободные ячейки побольше разной информации. Типа, ссылок. Вдруг кто-то в дамп заглянёт или Блокнотом откроет! :idea:
Поддержал файл description, чтобы его содержимое писалось в текст плеера и в тайтл видео со сдвигом на 1 символ каждую страницу:
https://gitlab.com/shaos/super-86rk/-/commit/9920c389c6d7df60f37c8e82a2668d4ecd64860a
(кроме того прицепил обновлённый архив с исходниками конвертера vhs5t.zip в первое сообщение этой темы)


https://youtu.be/cviFCs9BV4k

P.S. Образ этого ромдиска можно найти в Секретах
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23763
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Воспроизведение озвученной анимации с ROM-Дисков

Post by Shaos »

О как
IMG_6252.jpeg
IMG_6254.jpeg
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Alikberov
Doomed
Posts: 347
Joined: 14 Oct 2019 18:10
Location: Tashkent

Re: Воспроизведение озвученной анимации с ROM-Дисков

Post by Alikberov »

Вам в пору снимать видеокурс, как с помощью РАДИО-86РК ракрутить себе канал! :lol:
User avatar
Shaos
Admin
Posts: 23763
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Воспроизведение озвученной анимации с ROM-Дисков

Post by Shaos »

В истории моего канала было только 2 момента, когда пики дневных просмотров поднимались выше, чем сейчас - и оба раза это была самодельная электроника, распиаренная на Hackaday.io (2 видео про цветного Мандельброта на микроконтроллере PIC32 в 2015 году и 1 короткое видео про самодельную софткорку RISC-V на FPGA в 2019 году, причём этот видеоролик внезапно "выстрелил" почти через год после загрузки) :dj:
Screenshot from 2024-04-15 17-05-41.png
Хотя "ещё не вечер" - завтра нынешний пик уже будет выше второго (2019), а вот будет ли он выше первого (2015) - это ещё большой вопрос и самое главное - никакого хакадея в этот раз я не привлекал :lol:
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23763
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Воспроизведение озвученной анимации с ROM-Дисков

Post by Shaos »

Shaos wrote:
Shaos wrote:P.S. Каждый четвёртый символ это 16 отсчётов звука на строку - может не мудрствовать лукаво, а просто тупо в 2 байта их упаковать и записывать в начало каждой строки побитно двигая в порт по ходу отрисовки символов этой строки?

P.P.S. Тогда уже и адрес строки можно туда же присовокупить до кучи (адрес с конца для LXI SP) - будет 68 байт на строку или 9.6 полных кадров на страницу (коих может быть больше, если от кадра к кадру будет много повторяющихся строк)

P.P.P.S. В этом случае даже прогрессбар можно сделать опциональным (и со звуком), правда оно не будет кратно 256 и придётся либо химичить, либо укорачивать видимую область строки до 60 символов...
Я тут прикинул - теперешний плеер декодирует около 377 строк в секунду, т.е. если строки будут иметь адреса (предположим, что в скорости оно не сильно потеряет), то для пущей эстетики можно делать видео не в полный рост, а скажем letterbox (16:9 с чёрными полосками сверху и снизу) - это будет примерно 37 строк, что должно дать 10 FPS...
кстаааааати - если биты звука скомкать в кучу, то можно несколько упростить (?) вывод в INTE - т.е. вместо первоначального варианта со сдвигами:

Code: Select all

   RAL ; +4=4
   JC CPI_DI+1 ; +10=14
   EI ; +4=18
CPI_DI:
   CPI   0F3h ; +7=25 or +4=18
   ORA   A ; +4=29 or +4=22
   RAR ; +4=33 or +4=26 (avg=29.5)
сделать И по маске (и заодно вычитку значения для SP в начале строки наряду с битами звука) примерно так:

Code: Select all

   INR M ; от предыдущей строки
; начало следующей строки
   JNZ L0 ; +10
   INX H ; 5 \
   INR M ; 10 (инкремент старшего байта адреса один раз на каждые 4 строки - это в среднем +20/4=5 тактов на строку)
   DCX H ; 5 /
L0: ; тут будет усреднённо 15 тактов
   LDAX D ; +7=22
   INR     M ; +10=32
   STA SND1 ;  +13=45
   RLC ; +4=49 (играем первый бит звука в преамбуле)
   JNC LD+1 ; +10=59
   EI ; +4=63
LD: CPI   0F3h ; +7=70 или +4=63 (DI)
   LDAX D ; +7=77 или 70 - в среднем 73.5
   INR     M ; +10=83.5
   STA SND2 ; +13=96.5
   ; далее вычитываем значение для SP этой строки
   LDAX D ; +7=103.5
   INR     M ; +10=113.5
   MOV C,A ; +5=118.5
   LDAX D ; +7=125.5
   INR     M ; +10=135.5
   MOV H,A ; +5=140.5
   MOV L,C ; +5=145.5
   SPHL ; +5=150.5 (SP=HL)
   LHLD ADRVAR ; +16=166.5 (восстанавливаем адрес) <<<< преамбула около 167 тактов на строку
; далее повторяющаяся часть для каждых 4 пикселов (повторяется 15 раз)
   LDA SND1 ; +13
   ANI 40H ; +7=20 (играем второй бит звука)
   JZ L3 ; +10=30
   EI ; +4=34
   JMP L4 ; +10=44
L3:
   DI ; +4=34
   MOV A,A ; +5=39 (для равномерности)
   MOV A,A ; +5=44 (для равномерности)
L4:
   LDAX    D ; +7=51
   INR     M ; +10=61
   MOV     B,A ; +5=66
   LDAX    D ; +7=73
   INR     M  ; +10=83
   MOV     C,A ; +5=88
   PUSH    B  ; +11=99
   LDAX    D ; +7=106
   INR     M ; +10=116
   MOV     B,A ; +5=121
   LDAX    D ; +7=128
   INR     M  ; +10=138
   MOV     C,A ; +5=143
   PUSH    B  ; +11=154 <<<<<< повторяющаяся часть
; следующая четвёрка пикселов
   LDA SND1
   ANI 20H ; (следующий бит звука)
   JZ L5
   ; и т.д.
т.е. имеем 154*15+167=2477 тактов на строку, что даст 330.1 строк в секунду (с учётом того, что ПДП сожрёт 54% процессорного времени) или 6.6 FPS при 50 строках в кадре или 9.17 FPS при 36 строках (letterbox с чёрными полосками сверху и снизу) или ещё больший FPS, если от кадра к кадру будут меняться лишь некоторые строки.

P.S. Если в ромдиске будет автоинкремент адреса, то можно сэкономить порядка 660 тактов, убрав все INR M, что выльется в 1816 тактов на строку или 450.3 строки в секунду, что даёт почти ровно 9 FPS при 50 строках и 7205 Гц для звука!

P.P.S. Для пущей плавности звука можно преамбулу ещё пооптимизировать, чтобы она стала ближе к длительности сегмента...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Alikberov
Doomed
Posts: 347
Joined: 14 Oct 2019 18:10
Location: Tashkent

XviD нервно курит в сторонке...

Post by Alikberov »

Предлагаете переходить к сжатию?

В принципе, так как подгружаемый SP - это универсально, можно обойтись штатным компактным кодом прогрывания.
То есть, оставить оптимизированный шаблон, но при переключении страницы проверять некий флаг, чем её проигрывать (сжато / не сжато).
Тогда на одной странице можно больше кадров поместить.

Но вот со звуком как?
Быстро сменить картинку, а потом весь период потратить на более качественный звук?
Не слишком ли сложно получится для кода обработки исходного файла? :mrgreen:
(Разработчики DivX позавидуют! :lol: )
Так и до страницы со "словарём" дойти можно для пущего сжатия.

P.S.: Кстати, пока не забыл.
Думаю, в перспективе, желательно при обработке кадров задействовать хотя бы простую нейросеть для распознания текста, чтобы явно помечать регионы кадра и при перекодировке там более качественнее, с использованием псевдографики, выводить исходные надписи.
(Последний ролик прямо на эту идею и наталкивает.) :roll:
User avatar
Shaos
Admin
Posts: 23763
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: XviD нервно курит в сторонке...

Post by Shaos »

Alikberov wrote: Но вот со звуком как?
Быстро сменить картинку, а потом весь период потратить на более качественный звук?
Не слишком ли сложно получится для кода обработки исходного файла? :mrgreen:
Не - не очень сложно. Звук будет идти всегда по строкам имеющимся в наличии, надо просто адаптивный алгоритм выбора следующего кадра сделать - если мы из текущего кадра взяли меньше строк, то и следующий кадр надо брать поближе на оси времени (а если совсем ничего не поменялось между кадрами, то всё равно надо перекодировать 22% кадра для сохранения 30 FPS) - как то так короче...

P.S. Ютюб практически перестал показывать бэдаппл и стал активно крутить рикролл:
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Alikberov
Doomed
Posts: 347
Joined: 14 Oct 2019 18:10
Location: Tashkent

Re: Воспроизведение озвученной анимации с ROM-Дисков

Post by Alikberov »

Shaos wrote:P.S. Если в ромдиске будет автоинкремент адреса, то можно сэкономить порядка 660 тактов, убрав все INR M, что выльется в 1816 тактов на строку или 450.3 строки в секунду, что даёт почти ровно 9 FPS при 50 строках и 7205 Гц для звука!
Автоинкремент - уже не Православно! :roll:
Придётся ещё проводочки кидать внутрь всей схемы РК конкретно.
User avatar
Shaos
Admin
Posts: 23763
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Воспроизведение озвученной анимации с ROM-Дисков

Post by Shaos »

Не - просто эту платку надо будет ставить вместо ВВ55, чтобы непосредственно ловить /RD
В моей версии срам86рк на разъём уже подаётся без ВВ55, причём 2 раза ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23763
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Воспроизведение озвученной анимации с ROM-Дисков

Post by Shaos »

А тем временем RickRoll outperformed BadApple :esurprised:
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23763
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Воспроизведение озвученной анимации с ROM-Дисков

Post by Shaos »

Перевалило за 1000 просмотров у Рикролла :o
IMG_6256.jpeg
P.S. Статистика по странам любителей Рикролла :lol:
Screenshot from 2024-04-16 18-03-01.png
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net