User Tag List

Страница 4 из 5 ПерваяПервая 12345 ПоследняяПоследняя
Показано с 31 по 40 из 47

Тема: Как распознать, что опрос #FE игнорит магнитофон?

  1. #31

    Регистрация
    28.08.2023
    Адрес
    г. Брест, Беларусь
    Сообщений
    142
    Спасибо Благодарностей отдано 
    15
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    33 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Тише, тише, горячие парни Я, как любитель уточнить детали, встряну с оффтопом:

    Как со всякой проприетарщиной, ни о каких единых стандартах тут речи нет. Вернее, есть спецификация PKZIP от PKWARE. Кто этим пользуется, я лично не знаю, наверное, какие-то клиенты у них есть. Педивикия говорит, что есть какой-то ISO стандарт, что ему соответствует тоже не интересовался. И есть то, чем большинство пользуется и за «настоящий ZIP» считает -- Info-ZIP. Так вот, PKZIP дошёл где-то до версии 6.3, а Info-ZIP со времён 4.x (4.5?) не трогали за ненадобностью, это был уже XXIй век, там было и чем получше сжать/упаковать.

    Поэтому практический совет: если у вас не Info-ZIP, предупредите получателя, это я старый больной |Пью, а кто помоложе или подальше от этой teh drama последние двадцать лет провёл, может в этих хитросплетениях и не разбираться

  2. #31
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #32

    Регистрация
    04.08.2005
    Адрес
    Nizhnevartovsk
    Сообщений
    1,086
    Спасибо Благодарностей отдано 
    102
    Спасибо Благодарностей получено 
    151
    Поблагодарили
    99 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    потому что можно намного проще
    Работает для всех возможных загрузчиках? Есть имплементация, чтобы потестировать?

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    вот нафига? что он даст при выключенном мафоне?
    Каждое прерывание будет заполняться буфер со статистикой. Который должен будет в фоне мониториться (если стоит крыж "автозапуск ленты").
    Длина 4000 - это условно. По факту после тестирования на всех возможных загрузчиках (и в других режимах работы программ) будет видно, сколько уже хватит. В идеале, конечно коротенький. Но его "мониторинг" много ресурсов не отнимет. Во-первых, его заполнение практически не удлинит логику эмуляции (что происходит в том же Fuse, когда постоянно анализируется исполняемый код). Во-вторых мониторить его можно не часто, и вообще в другом потоке - реактивность тут вообще не нужна.

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    мне уже и после некоторых понятно, что без наличия фронтов на входе опрос мафона от иных опросов клавы - не отличить
    Да, это я уже тоже понял. Но фронт на входе в идеале должен быть фейковым, с периодом в 1 (менять состояние каждое новое чтение, без привязки к cpu-t). Это позволит в загрузчиках максимально "уплотнить" и стабилизировать период чтения из порта в подпрограмме вылавливания пилота. Вовсе не обязательно пускать первые секунды tap, tzx, или wav, в котором может быть вообще что угодно, просто начальный хруст, или даже пауза.

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

    Даже не так.
    Считать статистику в четном прерывании, с генерируемым каждый in(#fe) тоном максимальной частоты (каждое новое чтение = измененное значение), и в нечётном - полная тишина (значение 0). Может быть не по 1 прерыванию а типа 2 с писком и 1 с тишиной, в общем чтобы было как-то идентифицируемо то что "там" происходит обработка магнитофонного бита.
    Статистика в буферах будет сильно различаться, если присутствует подпрограмма чтения.
    Вопрос в том как такой буфер устроить наиболее простым способом, чтобы и меньше памяти тратить на это, и меньше логики для обработки.
    Но смысл в том, чтобы чередовать писк с тишиной, и мониторить тайминги между чтениями из #fe.

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

    Далее когда всё воспроизводится, уже в ходе чтения смотреть статистику, зафиксировать её паттерн (фингерпринт воспроизведения). И если он поменяется, ленту останавливать.
    Последний раз редактировалось Dexus; 29.12.2024 в 21:31.

  4. #33

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,963
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    312
    Поблагодарили
    236 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    но могу принцип и сейчас описать, благо коротко:
    помним три последних уровня (просто вдвигаю биты в переменную) и знаем промежуток в тактах между получением двух последних уровней
    смотрим на ПРЕДпоследние два уровня (бита) - если они одинаковые, запомним промежуток как "короткий" (он реально может быть и длинный, не важно)
    если они разные, то прошлое чтение пришлось на фронт, на который реальный загрузчик реагирует увеличением промежутка из-за обработки фронта
    тогда сравниваем последний с "коротким" - при реакции должен быть длиннее... на сколько-то (хотя на практике работает и просто "длиннее")
    для надёжности увеличиваем счётчик отсутствия реакций до некоторого порога, прежде чем сигнализировать автостоп
    я сделал так: два подряд фронта без реакций +2, два фронта подряд с реакциями -1 (до нуля)

    на удивление, такой примитив работает хорошо
    при достаточно большом пороге (но не больше половины символов в блоке) ложно не срабатывает
    пока что почти все проверенные tzx (с нарочно удалёнными стоп-блоками) тормозит где нужно
    вот только в единственном bloodaxe пока не разбирался, что в конце происходит

    Цитата Сообщение от Dexus Посмотреть сообщение
    Каждое прерывание будет заполняться буфер со статистикой. Который должен будет в фоне мониториться (если стоит крыж "автозапуск ленты").
    Длина 4000 - это условно. По факту после тестирования на всех возможных загрузчиках (и в других режимах работы программ) будет видно, сколько уже хватит. В идеале, конечно коротенький. Но его "мониторинг" много ресурсов не отнимет. Во-первых, его заполнение практически не удлинит логику эмуляции (что происходит в том же Fuse, когда постоянно анализируется исполняемый код). Во-вторых мониторить его можно не часто, и вообще в другом потоке - реактивность тут вообще не нужна.
    зачем, просто автозапуск и проверка реакций, и при их отсутствии - остановка с перемоткой в начало блока
    главное - после остановки не повторять автозапуска, пока длится тот же самый опрос))

    Цитата Сообщение от Dexus Посмотреть сообщение
    Да, это я уже тоже понял. Но фронт на входе в идеале должен быть фейковым, с периодом в 1 (менять состояние каждое новое чтение, без привязки к cpu-t). Это позволит в загрузчиках максимально "уплотнить" и стабилизировать период чтения из порта в подпрограмме вылавливания пилота. Вовсе не обязательно пускать первые секунды tap, tzx, или wav, в котором может быть вообще что угодно, просто начальный хруст, или даже пауза.
    зачем фейковый (на который прога может вдруг и неадекватно отреагировать), когда можно настоящий подать?

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

    Цитата Сообщение от Chwe Посмотреть сообщение
    практический совет: если у вас не Info-ZIP, предупредите получателя,
    в моём тотале вроде инфозип как раз и встроен, такой же старый, но PPMd понимает
    Прихожу без разрешения, сею смерть и разрушение...

  5. #34

    Регистрация
    04.08.2005
    Адрес
    Nizhnevartovsk
    Сообщений
    1,086
    Спасибо Благодарностей отдано 
    102
    Спасибо Благодарностей получено 
    151
    Поблагодарили
    99 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    зачем фейковый (на который прога может вдруг и неадекватно отреагировать), когда можно настоящий подать?
    Потому что в tzx и тем более в wav'ках на выходе может быть нерелевантный хруст, хоть пол секунды, хоть секунду, хоть дольше. Я понимаю, с tap'ом вариантов нет - все стандартно, но нас же интересуют нестандартные образы (tzx/wav), которые никто не обязан вылизывать. В wav вообще модет быть несколько секунд тишины, и может голос объявлять номер уровня. Потому фейковый - более надежный.

    помним три последних уровня (просто вдвигаю биты в переменную) и знаем промежуток в тактах между получением двух последних уровней
    Ты смотрел tzx'ы, которые генерируются конвертером https://zx-pk.ru/threads/21336-novyj...yj-format.html ?
    Еще есть конвертер снапов в tzx, что-то не могу пока найти (там пачка алгоритмов и режимы с разной скоростью) - нашел. Называется k7zx.
    Схема загрузчика может быть с автоподстройкой под скорость, и 3х может не хватить.
    Последний раз редактировалось Dexus; 29.12.2024 в 22:58.

  6. #35

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,963
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    312
    Поблагодарили
    236 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Dexus Посмотреть сообщение
    Потому что в tzx и тем более в wav'ках на выходе может быть нерелевантный хруст, хоть пол секунды, хоть секунду, хоть дольше. Я понимаю, с tap'ом вариантов нет - все стандартно, но нас же интересуют нестандартные образы (tzx/wav), которые никто не обязан вылизывать. В wav вообще модет быть несколько секунд тишины, и может голос объявлять номер уровня. Потому фейковый - более надежный.
    наоборот, нет гарантии, что твой фейк нерелевантнее не окажется - в отличие от уже проверенной загрузкой записи с любым треском
    потом, нужно ведь определить только факт наличия стабильной реакции на фронты

    алсо, на wav (а также direct и csw) автостоп лучше вообще отрубать, ведь неясно, где там данные, где пилот, где полезный шум, а где мусор
    да и в принципе автостоп опасная штука; я вообще себе автостарт не делал, а вместо автостопа у меня пауза - юзер сам решает, как продолжать

    Цитата Сообщение от Dexus Посмотреть сообщение
    Ты смотрел tzx'ы, которые генерируются конвертером https://zx-pk.ru/threads/21336-novyj...yj-format.html ?
    Схема загрузчика может быть с автоподстройкой под скорость, и 3х может не хватить.
    да какая разница, фронты везде одинаковые))
    не хватить с любым форматом в принципе может, даже с пзушным стандартным
    ЕСЛИ нестандартный загрузчик на фронты будет с отставанием реагировать
    но мне пока такие не попадались - вероятно, потому что бессмысленно
    просто код получается сложнее - ради чего?

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

    глянул логи 8b10b - разница после фронта совсем небольшая, но различимая, и без отставания появляется
    Прихожу без разрешения, сею смерть и разрушение...

  7. #36

    Регистрация
    04.08.2005
    Адрес
    Nizhnevartovsk
    Сообщений
    1,086
    Спасибо Благодарностей отдано 
    102
    Спасибо Благодарностей получено 
    151
    Поблагодарили
    99 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    наоборот, нет гарантии, что твой фейк нерелевантнее не окажется - в отличие от уже проверенной загрузкой записи с любым треском
    потом, нужно ведь определить только факт наличия стабильной реакции на фронты
    Потому уповать на релевантность информации с tzx/wav - наивно, гарантия есть только когда пробная запись синтетическая.

    алсо, на wav (а также direct и csw) автостоп лучше вообще отрубать, ведь неясно, где там данные, где пилот, где полезный шум, а где мусор
    да и в принципе автостоп опасная штука; я вообще себе автостарт не делал, а вместо автостопа у меня пауза - юзер сам решает, как продолжать
    Сам выше же писал, что отвлекать юзера плохо (то есть в идеале - автоматизировать и запуск, и остановку всего, включая wav), и сам же от этого фактически отказываешься, tap автоматизируется - и ладно (tzx не каждый сработает)... И по итогу тему можно закрывать на словах "Пусть пользователь решает".

    На этом я откланиваюсь (для себя я уже все моменты уяснил, вижу дальше только бодания на пустом месте). Удачи с охватом всех tzxов.

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

    Еще только добавлю про игру locomotion (которая в обычном tap). В ней после загрузки картинки идут фейковые звуки продолжающейся загрузки, а програма просто играет в пятнашки, имитируя загрузку (а по факту вообще ничего не читает), на примерно минуту. И этих мусорных данных на ленте хватает дл момента окончания "пятнашек", и далее снова нормальная загрузка. Плохо представляю как автоматизироватать такой tap.
    Последний раз редактировалось Dexus; 29.12.2024 в 23:48.

  8. #37

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,963
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    312
    Поблагодарили
    236 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Dexus Посмотреть сообщение
    Потому уповать на релевантность информации с tzx/wav - наивно, гарантия есть только когда пробная запись синтетичнская.
    еще раз - tzx/wav УЖЕ проверен успешной загрузкой без автостопа
    (ну, или безуспешной, но тогда он не загрузится в любом случае)
    "пробная синтетическая запись" - не проверена

    Цитата Сообщение от Dexus Посмотреть сообщение
    Сам выше писал что отвлекать юзера плохо (то есть в идеале - автоматизировать и запуск, и остановку), и сам же от этого фактически отказываешься,
    не отказываюсь, в идеале - меньше телодвижений
    вот, допустим, автостоп сработал неправильно, вся загрузка похерена, надо запускать заново
    перед этим отключить автостоп, после этого включить обратно, если он понадобится потом
    куча лишних телодвижений вместо одного жмака по кнопке при маловероятном ложном срабатывании
    а при нормальной паузе, где и надо - всё равно после загрузки юзер в проге что-то нажимать будет

    Цитата Сообщение от Dexus Посмотреть сообщение
    И по итогу тему можно закрывать на словах "Пусть пользователь решает".

    На этом я удаляюсь (для себя я уже все уяснил).
    "как-ничего-не-понять,но-не-подать-виду-и-гoрдo-удалиться.жпг"

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

    Цитата Сообщение от Dexus Посмотреть сообщение
    Еще только добавлю про игру locomotion (которая в обычном tap). В ней после загрузки картинки идут фейковые звуки продолжающейся загрузки, а програма просто играет в пятнашки, имитируя загрузку (а по факту вообще ничего не читает), на примерно минуту. И этих мусорных данных на ленте хватает дл момента окончания "пятнашек", и далее снова нормальная загрузка. Плохо представляю как автоматизироватать такой tap.
    один жмак по кнопке - и до конца фейкового блока остановок больше не будет
    Прихожу без разрешения, сею смерть и разрушение...

  9. #38

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,378
    Спасибо Благодарностей отдано 
    1,697
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    будет в следующей версии юлакс-эмуля
    Кстати, почему эмуляторописатели в основном остались на устаревшем движке Direct3D 9-й версии?

    Никто не пишет под современные Direct2D?

  10. #39

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,963
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    312
    Поблагодарили
    236 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Кстати, почему эмуляторописатели в основном остались на устаревшем движке Direct3D 9-й версии?

    Никто не пишет под современные Direct2D?
    это мне вопрос? я вообще пишу под SDL2 не интересуясь, что под капотом
    да и зачем лёгкий софт лишать возможности работать на старом (уже) железе
    Прихожу без разрешения, сею смерть и разрушение...

  11. #40

    Регистрация
    30.01.2006
    Сообщений
    1,921
    Спасибо Благодарностей отдано 
    73
    Спасибо Благодарностей получено 
    119
    Поблагодарили
    80 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    стати, почему эмуляторописатели в основном остались на устаревшем движке Direct3D 9-й версии?

    Никто не пишет под современные Direct2D?
    Direct3D 9 это по сути последняя версия поддерживаемая на WinXP. Direct2D на WinXP нет, также как и на других платформах. Та-же беда с DXGI расширениями. Библиотека интересная и неплохо рисует, но код под нее оказывается жестко привязан к Windows, даже портировать его под OpenGL будет проблематично. В этом вобщемто и суть. Наиболее портабельный вариант - это OpenGL, который почти не уступает Direct2D по качеству, но проще и работает практически на всех платформах. Из кроссплатформенных либ SDL2 хорош легкостью портирования, правда имеет баги. GLFW получше, правда имеет свои грабли.


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

    Обновил zip на ново-модный, теперь понимает файлы от Lethargeek


    Кстати вот наткнулся на любопытный загрузчик, в ZXMAK2 при чтении с автостопом приводит к ложному срабатыванию остановки магнитофона, т.е. метод распознавания чтения магнитофона методом анализа регистров дал сбой. Заодно тест для TZX блока #15, что не часто встретишь:
    Вложения Вложения
    Последний раз редактировалось ZXMAK; 30.12.2024 в 01:29.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

Страница 4 из 5 ПерваяПервая 12345 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Помогите распознать...
    от joub в разделе Несортированное железо
    Ответов: 4
    Последнее: 23.03.2022, 00:06
  2. Помогите распознать!
    от Вадим Димтревич в разделе Музыка
    Ответов: 9
    Последнее: 15.04.2020, 13:37
  3. MP3 плеер, как магнитофон для ZX?
    от Addison в разделе Звук
    Ответов: 12
    Последнее: 27.09.2007, 20:19

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •