Апдейтнул первое сообщение топика с последней версией ромдиска и новым видео, где всё реально
Меня без подписчиков и лайков оставили!?
Shaos wrote:
Уже 25 лайков и 200 просмотров
Вот что код РК животворящий делает!
Shaos wrote:
Надо в конвертер добавить возможность подмены текста...
Да. Это очень полезно. А ещё можно добавить в свободные ячейки побольше разной информации. Типа, ссылок. Вдруг кто-то в дамп заглянёт или Блокнотом откроет!
Shaos wrote:
P.S. Ещё нужно задокумнтировать перемотку - я чото так и не понял какие кнопки делают FF, а какие REW
А там всё просто, как я и сказал: На всей матрице - 00, а чётные/нечётные линии - реверс. (Специально так сделал, чтобы на любой клавиатуре так или иначе всё работало.)
14 Apr 2024 12:45
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23398 Location: Silicon Valley
Апдейтнул первое сообщение топика с последней версией ромдиска и новым видео, где всё реально
Меня без подписчиков и лайков оставили!?
Сорян Я линк на твой канал в описание вставил
Alikberov wrote:
Shaos wrote:
P.S. Ещё нужно задокумнтировать перемотку - я чото так и не понял какие кнопки делают FF, а какие REW
А там всё просто, как я и сказал: На всей матрице - 00, а чётные/нечётные линии - реверс. (Специально так сделал, чтобы на любой клавиатуре так или иначе всё работало.)
Ну надо таблицу кнопок составить для классической РК-клавы и для других Кстати по схеме где MS7007 подключена задом-наперёд тоже будет работать?
Апдейтнул первое сообщение топика с последней версией ромдиска и новым видео, где всё реально
Меня без подписчиков и лайков оставили!?
Сорян Я линк на твой канал в описание вставил
Спасибо!
Shaos wrote:
Ну надо таблицу кнопок составить для классической РК-клавы и для других Кстати по схеме где MS7007 подключена задом-наперёд тоже будет работать?
А что там составлять? Набираем директиву D8000,9FFF и жмём нужные клавиши, пока дамп травится. (Только нужно запоминалку хорошую иметь.) Вот только смысл? В этом плеере - перемотка назад и вперёд: Не игра же! Нужно успеть отреагировать на кой-какие клавиши и играть дальше, не тратя драгоценные такты на церемонии.
Нет, в принципе, выставить 00, дождаться не FF и опросить как надо - можно, для приличия. Кстати, я хотел клавиши цифр сделать для мгновенной перемотки в конкретную позицию, как в YouTube. Не предлагаете же VHS.RKR апгрейдить до YOUTUBE.RKR? (Плеер писал же впопыхах. Не всё продумал. Сами понимаете. Лишь бы хоть какую-то анимацию прогнать, не задумываясь о перемотке.)
Теперь надо избавиться от F1 и F3 в видеопамяти и переконфигурировать ПДП (с некоторой потерей FPS, но зато с более чистым звуком)
Тут палка о двух концах: если не избавляться от F1/F3, то получится изменить режим работы ПДП на 26, что вроде бы должно дать более равномерное торможение и более чистый звук (без F1/F3 ПДП не успевает). С другой стороны, сами F1/F3 вносят свой вклад в ухудшение чистоты звука. Думаю, нужно сравнивать. Можно еще попробовать с F1, но без F3, кстати.
Надо в конвертер добавить возможность подмены текста...
Да. Это очень полезно. А ещё можно добавить в свободные ячейки побольше разной информации. Типа, ссылок. Вдруг кто-то в дамп заглянёт или Блокнотом откроет!
В истории моего канала было только 2 момента, когда пики дневных просмотров поднимались выше, чем сейчас - и оба раза это была самодельная электроника, распиаренная на Hackaday.io (2 видео про цветного Мандельброта на микроконтроллере PIC32 в 2015 году и 1 короткое видео про самодельную софткорку RISC-V на FPGA в 2019 году, причём этот видеоролик внезапно "выстрелил" почти через год после загрузки)
Attachment:
Screenshot from 2024-04-15 17-05-41.png
Хотя "ещё не вечер" - завтра нынешний пик уже будет выше второго (2019), а вот будет ли он выше первого (2015) - это ещё большой вопрос и самое главное - никакого хакадея в этот раз я не привлекал
You do not have the required permissions to view the files attached to this post.
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:
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:
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. Для пущей плавности звука можно преамбулу ещё пооптимизировать, чтобы она стала ближе к длительности сегмента...
В принципе, так как подгружаемый SP - это универсально, можно обойтись штатным компактным кодом прогрывания. То есть, оставить оптимизированный шаблон, но при переключении страницы проверять некий флаг, чем её проигрывать (сжато / не сжато). Тогда на одной странице можно больше кадров поместить.
Но вот со звуком как? Быстро сменить картинку, а потом весь период потратить на более качественный звук? Не слишком ли сложно получится для кода обработки исходного файла? (Разработчики DivX позавидуют! ) Так и до страницы со "словарём" дойти можно для пущего сжатия.
P.S.: Кстати, пока не забыл. Думаю, в перспективе, желательно при обработке кадров задействовать хотя бы простую нейросеть для распознания текста, чтобы явно помечать регионы кадра и при перекодировке там более качественнее, с использованием псевдографики, выводить исходные надписи. (Последний ролик прямо на эту идею и наталкивает.)
16 Apr 2024 04:47
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23398 Location: Silicon Valley
Но вот со звуком как? Быстро сменить картинку, а потом весь период потратить на более качественный звук? Не слишком ли сложно получится для кода обработки исходного файла?
Не - не очень сложно. Звук будет идти всегда по строкам имеющимся в наличии, надо просто адаптивный алгоритм выбора следующего кадра сделать - если мы из текущего кадра взяли меньше строк, то и следующий кадр надо брать поближе на оси времени (а если совсем ничего не поменялось между кадрами, то всё равно надо перекодировать 22% кадра для сохранения 30 FPS) - как то так короче...
P.S. Ютюб практически перестал показывать бэдаппл и стал активно крутить рикролл:
You do not have the required permissions to view the files attached to this post.
P.S. Если в ромдиске будет автоинкремент адреса, то можно сэкономить порядка 660 тактов, убрав все INR M, что выльется в 1816 тактов на строку или 450.3 строки в секунду, что даёт почти ровно 9 FPS при 50 строках и 7205 Гц для звука!
Автоинкремент - уже не Православно! Придётся ещё проводочки кидать внутрь всей схемы РК конкретно.
16 Apr 2024 09:33
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23398 Location: Silicon Valley
Не - просто эту платку надо будет ставить вместо ВВ55, чтобы непосредственно ловить /RD В моей версии срам86рк на разъём уже подаётся без ВВ55, причём 2 раза
Users browsing this forum: Claude AI [Bot], Google [Bot] and 0 guests
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum