Цитата Сообщение от ZXMAK Посмотреть сообщение
Главная причина, почему выборка опкодов для анализа без выполнения инструкции невозможна, связана с состоянием внешней схемы и стейт-машин, которые реагируют на действия процессора. Для внешней схемы каждая выборка Z80 из памяти - это реальная операция с шиной, которая изменяет её состояние.
Еще раз: главная причина МНИМОЙ "невозможности" - твоя ЛЕНЬ. Никакой непреодолимой технической проблемы здесь НЕТ. Если у тебя процедура-монолит производит выполнение вместе с выборкой - РАЗДЕЛИ. Или напиши отдельную для сейва, с КОПИЕЙ ЧАСТИ (связанного только с выборкой, "полностью" НЕ нужно) аппаратного контекста, в конце концов. ВСЁ РЕШАЕМО.

Цитата Сообщение от ZXMAK Посмотреть сообщение
Ваше утверждение о полной детерминированности эмуляции некорректно. Даже в эмуляторе есть недетерминированные факторы, такие как пользовательский ввод, время прихода внешних сигналов (например, от дисплея, звуковой карты, системного таймера), а также поведение схемы при загрузке снэпшота. (...)
Моё утверждение абсолютно корректно. Детерминированность - это когда для одних и тех же исходных данных получаем одинаковый результат. Отличающийся пользовательский ввод (который, кстати, сохраняется в szx, да и в типичном эмуле скорей всего сканируется и фиксируется перед прогонкой кадра) или "малейшие" (на практике многие проходят незамеченными) несовпадения чего-то для rzx, или недостаток апппаратных данных в снапшоте - это нарушение условия по исходным данным. Но мы здесь говорим пока что ТОЛЬКО о ВЫБОРКЕ. Для неё условие одинаковых исходных обеспечить технически возможно и не так уж сложно. Тем более, что возможность форка состояний вообще полезна.

Цитата Сообщение от ZXMAK Посмотреть сообщение
Однако, как рассмотрено выше, предсказать следующий опкод невозможно, что делает такой подход ненадёжным, т.к. при загрузке снэпшота может оказаться, что из памяти читается далеко не префикс, а информация о том что процессор должен быть в префиксном режиме уже потеряна, т.к. снэпшот её не сохранил.
Если в снапе чего-то не хватает, восстановить недостающий контекст - на совести пользователя. Но уж для ДОСТАТОЧНО корректно восстановленного пользователем, будь так добр обеспечить правильные результаты после загрузки. Это на твоей совести. А в идеале - даже для недостаточного восстановления максимально снизить вероятность проблем.