ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Со звуком много непонятно как он реализован в спринтере, информация конечно какая-то есть, но ее недостаточно - нужно инвестигейтиь, пробовать разные варианты. Времени на это пока не было.
Например непонятно как из 8-битной памяти получаются 16-битные значения для ацп (в каком порядке читаются, за один инкремент позиции или за два, в каком формате -- signed или unsigned, как формат задается и т.п)
Последний раз редактировалось ZXMAK; 05.06.2015 в 22:34.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Пофиксил баги в новом многопоточном рендерере.
Вот новый вариант для тестов: https://drive.google.com/file/d/0B3U...ew?usp=sharing
Что фиксилось:
1) исправлен детект изменения текущего дисплея;
2) удалено ограничение DeviceClip (ограничивает обновление текущим дисплеем), которое случайно попало в флаги инициализации;
3) Direct3D теперь всегда работает и создается из своего потока
4) исправлена проблема с фликами и артефактами (как будто нет синхронизации), возникавшими из-за одновременного чтения и обновления видео-кадра (актуально и для последних релизных версий)
5) небольшие оптимизации для снижения активности выделения памяти и лишних проверок секьюрити при вызовах winapi
Просьба протестить, т.к. новый рендерер использует недокументированное поведение для нормальной работы в многопоточном режиме. Майкрософт предупреждает что нужно быть внимательным т.к. при неаккуратной синхронизации может возникнуть дедлок (зависание программы).
Последний раз редактировалось ZXMAK; 07.06.2015 в 13:03.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
нет, это не связано с рендерером и не связано с дотнетом
Просто плагин GDB сервера поднимает TCP сервер, а файл сборки, в которой он находится помечен на диске, как загруженый с инета. Поэтому секьюрити системы не дает его загрузить.
Нужно в проводнике кликнуть на свойства файла Hardware.GdbServer.dll и нажать кнопку Unblock. Или не добавлять в конфигурацию машины GDB Server.
Я уже писал об этом тут: http://zx-pk.ru/showpost.php?p=788956&postcount=1574
---------- Post added at 02:09 ---------- Previous post was at 01:44 ----------
Обновил тестовую версию: https://drive.google.com/file/d/0B3U...ew?usp=sharing
1) переработан рендер цикл
2) добавлена обработка ошибок
3) исключены вызовы загрузки DirectX ресурсов для потерянного устройства
4) Добавлены оптимизации, исключены лишние вызовы меняющие sampler и render стейт;
5) Исправлено освобождение Direct3D, теперь оно происходит из потока рендерера
6) Исправлен детект видеоадаптера на WinXP/Win2003
7) Добавлено отображение ошибки вместо изображения, если не удалось загрузить DirectX
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
на всех предыдущих версиях у меня звучали щелчки первую минуту-две после старта эмулятора. очень раздражало.
на 2.9.2.4 исчезли. спасибо!!
это потому, что после запуска еще не весь код скомпилирован JIT компилятором, по первому обращению могут компилироваться редкоиспользуемые методы, например для для редких инструкций Z80. Это может приводить к небольшим лагам сразу после запуска.
От этого можно избавиться заранее обработав библиотеки генератором нативного кода. Тогда система будет сразу запускать готовый код.
Новая версия работает асинхронно, поэтому лаги в одной части слабо влияют на другие части.
А генерация нативного кода делается в командной строке с помощью ngen.exe:
Неудобство в том, что библиотек у эмулятора много и для каждой нужно запускать. Но можно сгенерить нативный код только для тяжелых библиотек, например:Код:ngen.exe install <filename.dll>
ZXMAK2.Engine.dll
ZXMAK2.Host.WinForms.dll
ZXMAK2.Hardware.dll
ZXMAK2.Hardware.WinForms.dll
ZXMAK2.Hardware.Circuits.dll
Нужно будет тул сделать, который это будет автоматизировать.
Последний раз редактировалось ZXMAK; 08.06.2015 в 12:41.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Последний раз редактировалось Alex Rider; 09.06.2015 в 21:57.
выложил немного обновленный тестовый билд: https://drive.google.com/file/d/0B3U...ew?usp=sharing
фикс косметический - исправлен размер текстуры для mimic tv эффекта (сломался в процессе переделок). Новый рендерер похоже нормально себя ведет.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Обновил эмулятор до версии 2.9.2.39319: https://zxmak2.codeplex.com/releases/view/615729
Кроме нового многопоточного рендерера, который был в тестовых релизах, тут проведен рефакторинг кода эмуляции Z80, также поправлена обработка ошибок в новом рендерере. В остальном - мелкие фиксы, присутствовавшие в тестовом билде.
Ожидал увидить некоторый прирост скорости от переработки кода Z80, но эффект незначительный. Основное время едят рендеринг видео и звука. Тем не менее прирост на ~100 фпс в Maximum Speed есть, но скорее за счет фиксов в рендерере.
Последний раз редактировалось ZXMAK; 14.06.2015 в 18:14.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)