Важная информация

User Tag List

Страница 168 из 198 ПерваяПервая ... 164165166167168169170171172 ... ПоследняяПоследняя
Показано с 1,671 по 1,680 из 1975

Тема: ZXMAK2 - Виртуальная машина ZX Spectrum

  1. #1671
    Veteran Аватар для ZXMAK
    Регистрация
    30.01.2006
    Адрес
    Харьков
    Сообщений
    1,406
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    20
    Поблагодарили
    14 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    Это не так. RZX специально разработан таким образом, чтобы отвязаться от точности эмуляции таймингов - для каждого фрейма в RZX файл пишется количество выборок кода операции.
    да, задумывался. Но по факту RZX зависит от точности эмуляции таймингов. Там дело не в том сколько выборок перед прерыванием. А в том, что в RZX не предусмотрена информация когда начался импульс прерывания и когда закончился. Из-за неточности эмуляции таймингов в некоторых эмуляторах, может быть разброс в несколько тактов. В итоге это приводит к тому, что при других таймингах прерывание может отработать не в тот-же момент, как на эмуляторе, на котором производилась запись. Из-за этого происходит рассинхронизация.

    Для многих программ это вобщемто никак не вредит. Но если в программе используются какие-то выкрутасы на прерываниях. Например, если выполнение кода зависит от того, в какой именно момент сработало прерывание, то с такими программами могут быть проблемы, если есть ошибки эмуляции таймингов, хотябы на 1 такт.

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

    Корректно записать и воспроизвести такие моменты в RZX невозможно, т.к. в этом формате не предусмотрено сохранение полной информации о состоянии сигнала INT.
    Последний раз редактировалось ZXMAK; 30.03.2016 в 22:10.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  2. #1672
    --- Аватар для Shadow Maker
    Регистрация
    01.03.2005
    Адрес
    Саранск
    Сообщений
    5,824
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    239
    Поблагодарили
    101 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    Корректно записать и воспроизвести такие моменты в RZX невозможно, т.к. в этом формате не предусмотрено сохранение полной информации о состоянии сигнала INT.
    А галки типа "игнорить потерю синхронизации" нет? Как бы это реально в 90% случаев глубоко фиолетово, где там инт болтается.
    Свирепый агрессивно-депрессивный мордовец!
    Не уверен - не напрягай!

    Не сдавайся. Дыши?

    Virtual TR-DOS

  3. #1673
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,643
    Спасибо Благодарностей отдано 
    243
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    да, задумывался. Но по факту RZX зависит от точности эмуляции таймингов. Там дело не в том сколько выборок перед прерыванием. А в том, что в RZX не предусмотрена информация когда начался импульс прерывания и когда закончился. Из-за неточности эмуляции таймингов в некоторых эмуляторах, может быть разброс в несколько тактов. В итоге это приводит к тому, что при других таймингах прерывание может отработать не в тот-же момент, как на эмуляторе, на котором производилась запись. Из-за этого происходит рассинхронизация.

    Для многих программ это вобщемто никак не вредит. Но если в программе используются какие-то выкрутасы на прерываниях. Например, если выполнение кода зависит от того, в какой именно момент сработало прерывание, то с такими программами могут быть проблемы, если есть ошибки эмуляции таймингов, хотябы на 1 такт.

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

    Корректно записать и воспроизвести такие моменты в RZX невозможно, т.к. в этом формате не предусмотрено сохранение полной информации о состоянии сигнала INT.
    Всё намного проще. RZX формат изначально полностью отвязан от тактов и задержек, в том числе и от длительности сигнала INT. Есть пара неприятных нюансов, связанных с прерываниями, они решаемы (правда, через пень-колоду), но к тактам не имеют никакого отношения. Один я подробно изложил ранее в теме "Тестирование эмуляторов", второй связан с ретриггерингом прерываний.

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

    Цитата Сообщение от Shadow Maker Посмотреть сообщение
    А галки типа "игнорить потерю синхронизации" нет? Как бы это реально в 90% случаев глубоко фиолетово, где там инт болтается.
    Такая галка нифига не решает, синхронизация для проигрывания RZX критически важна.

  4. #1674
    Veteran Аватар для Bedazzle
    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,486
    Спасибо Благодарностей отдано 
    221
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    115 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    нужно выбрать ту-же конфигурацию спектрума, на которой записан RZX файл.
    А как узнать машину, если запись делал кто-то из интернетов? В начале файла виден текст Spectaculator.

    Под рукой есть Emuzwin, запустил, тот переключился на +3.
    Выбрал в Zxmak2 +2A/+3, загрузил rzx - ошибка. :/

  5. #1675
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,775
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    143
    Спасибо Благодарностей получено 
    1,179
    Поблагодарили
    775 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bedazzle Посмотреть сообщение
    А как узнать машину, если запись делал кто-то
    zxmak давал информацию при открытии rzx которая пишется в логах,
    но потом вроде текст про это удалил
    SpecEmu спокойно показывает этот rzx (+3)
    Последний раз редактировалось goodboy; 03.04.2016 в 11:21.

  6. #1676
    Veteran Аватар для Bedazzle
    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,486
    Спасибо Благодарностей отдано 
    221
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    115 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    SpecEmu спокойно показывает этот rzx (+3)
    Угу, я в трёх эмулях гонял без проблем, а с zxmak не сложилось.

  7. #1677
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,643
    Спасибо Благодарностей отдано 
    243
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    проблема в tzx`e который выложил betamen - один блок в нём неправильный (loop=0), проверяйте версии с wos`a - они все рабочие.

    если не трудно проверьте загрузку программ последней ревизии tzx 1.20 http://newton.sunderland.ac.uk/~mikie/examples120.zip
    Если у кого-нибудь остался этот файл (examples120.zip) - поделитесь, плиз.

  8. #1678
    Master
    Регистрация
    12.04.2009
    Адрес
    Одесса
    Сообщений
    617
    Спасибо Благодарностей отдано 
    311
    Спасибо Благодарностей получено 
    82
    Поблагодарили
    60 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    Если у кого-нибудь остался этот файл (examples120.zip) - поделитесь, плиз.
    http://web.archive.org/web/*/http://...xamples120.zip
    (снапшот за 10-е февраля)
    Последний раз редактировалось anasana; 04.04.2016 в 12:23.
    LodeDome: http://lodedome.no-ip.com/lodedome.php - Lode Runner 2010 Game Archive. KryoFlux, FluxEngine, Gotek boards
    Ищу пересылкой любые (неисправные/дефективные/некомплектные) платы и узлы корпуса Электроники-85 (МС-0585); дискеты 5,25".
    По_трошки: Поиск, УКНЦ, БК0010, МС1502, П-н 128, Вектор 06Ц, C64, MAC LC475, Львов ПК-01, ДВК-3Ш (ВМ2, ВМ3, MX, MY, КСМ, КЦГД, КТлК, MY4)
    Контакты: скайп: ana-sana, почта: [email protected], email: [email protected], TG: https://t.me/adesodesa

  9. #1679
    Sinclair User Аватар для Eltaron
    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,045
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    144
    Спасибо Благодарностей получено 
    463
    Поблагодарили
    326 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    Всё намного проще. RZX формат изначально полностью отвязан от длительности сигнала INT.
    Ага, отвязан... В rzx хранится всё, что читается из портов в каждый фрейм. Если у проигрывающей машины инт длинней, чем у записывающей, и из-за этого она успевает сделать дополнительный IN - синхронизация рвется, ибо ответить на этот запрос нечем. Если наоборот, инт длинней у записывающей, то при проигрывании пропустятся какие-то нажатия клавы - синхронизация один фиг тоже рвется.

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

    Кстати, я собрал ZXMAK2 из сорцов и в этой версии heavyonthemagick.rzx (это ведь о нём речь?) играется без ошибок. Там со времен "релизной" 2.9.2 много изменений было, например "add Spectrum +3 support for Z80 snapshot" - возможно, это оно.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI

  10. #1680
    Guru Аватар для CodeMaster
    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,234
    Спасибо Благодарностей отдано 
    140
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    182 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    RZX формат изначально полностью отвязан от тактов и задержек, в том числе и от длительности сигнала INT.
    Формат форматом, но его имплементация зависит от конкретного эмулятора. В описании RZX раздел посвящённый INT'у с рекомендациями как сделать воспроизведение INT-независимым.
    "Во времена всеобщей лжи говорить правду - это экстремизм" - афоризм.

Страница 168 из 198 ПерваяПервая ... 164165166167168169170171172 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 7
    Последнее: 06.04.2012, 21:37
  2. Машина Тьюринга для Z80
    от ZXMAK в разделе Эмуляторы
    Ответов: 4
    Последнее: 15.08.2011, 03:26
  3. Продвинутая Мелко Машина 1
    от Black_Cat в разделе Зарубежные компьютеры
    Ответов: 74
    Последнее: 03.03.2009, 09:05
  4. Что за машина такая??? Commodore 128...
    от ILoveSpeccy в разделе Commodore 16/64/128
    Ответов: 5
    Последнее: 31.10.2007, 10:25
  5. Java-машина
    от Error404 в разделе Программирование
    Ответов: 2
    Последнее: 15.01.2007, 15:11

Ваши права

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