User Tag List

Страница 2 из 5 ПерваяПервая 12345 ПоследняяПоследняя
Показано с 11 по 20 из 45

Тема: ZXMAK.NET 2 alpha небольшой ремикс :)

  1. #11

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

    По умолчанию

    Цитата Сообщение от Eltaron Посмотреть сообщение
    А развитие не-DirectX версий прекращено? Оно, конечно, и под wine отлично запустилось и работает, но потенциальная кросс-платформенность грела душу
    вобщем-то не DirectX версию из DirectX сделать несложно. Поэтому я на этом концентрироваться не буду, у меня идея удобный эмулятор сделать
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  2. #12

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

    По умолчанию

    Версия 2.0.1 alpha

    - добавлен отладчик;
    - опять переработан основной цикл и отрисовка (painting);
    - добавлен полноэкранный режим;
    - добавлены кнопки управления F5 (пауза), F7 (перемотка магинтофона на начало), F9 (продолжить работу), Alt+Enter (полноэкранный режим);


    В архив также вкладываю бенчмарк производительности движка, просьба запустить его на слабых машинах и выложить результаты с указанием конфигурации машины (процессор, частота, ОС)


    Открыт прием заявок на фичи
    Вложения Вложения
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  3. #13
    ZEK
    Гость

    По умолчанию

    Цитата Сообщение от Alexander Makeev Посмотреть сообщение
    Открыт прием заявок на фичи
    возможность расширять плагинами:

    как минимум возможность работать через порты и подставлять в свое ПЗУ (для устройств не завязаных на видео и звук можно обойтись к привязкам эмулируемого времени)

    как максимум делать свою отрисовку, менеджеры памяти, читать блокировать "набортные устройства", расширять дебагер своими данными.

  4. #14

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

    По умолчанию

    Цитата Сообщение от ZEK Посмотреть сообщение
    возможность расширять плагинами:

    как минимум возможность работать через порты и подставлять в свое ПЗУ (для устройств не завязаных на видео и звук можно обойтись к привязкам эмулируемого времени)
    к этому и идет, правда есть опасения что если раскидать дешифрацию портов/памяти по плагинам, то может заметно пострадать быстродействие


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

    насчет остального, не совсем ясно, если можно - поподробней что под этим понимается:
    Цитата Сообщение от ZEK Посмотреть сообщение
    менеджеры памяти, читать блокировать "набортные устройства", расширять дебагер своими данными.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  5. #15
    ZEK
    Гость

    По умолчанию

    Цитата Сообщение от Alexander Makeev Посмотреть сообщение
    дешифрацию портов/памяти по плагинам, то может заметно пострадать быстродействие
    Тут мысль есть. Выглядит примерно так

    Делаем табличку на 64к делегатов и при регистрации порта чтения передаем строку (например для регистрации порта FE клавиатуры строка будет выглядеть так "xxxx_xxxx_xxxx_xxx0" где в строке могут быть x бит не имеет значения для дешифрации; 0,1 конкретное значение бита при дешифрации _ для визуального удобства) по этим строкам можно заполнить табличку делегатов и не будет влиять на скорость работы зарегистрирован один порт на чтение или 200, для записи сложнее по идее несколько устройств могут одновременно откликнуться на запись в порт, тут надо подумать, думаю можно сделать 4 таблички и обрабатывать их каскадом в реальности (в железе) не могу представить себе ситуации что бы больше 2х устройств откликнулось на запись по одному адресу.


    Цитата Сообщение от Alexander Makeev Посмотреть сообщение
    Вопрос пока только в перехвате вывода в порты (который понадобится для нестандартных видеорежимов)
    ну тут вопрос еще есть с лучом развертки, как по мне правильная отрисовка не совсем тривиальная задача, в идеале было бы нарисовать какой нить базовый класс и классы хелперы что бы как то стандартизировать и упростить их реализацию, но тут тебе виднее как оно должно быть как всегда упирается все в компромиссы между быстро и удобно.

    Цитата Сообщение от Alexander Makeev Посмотреть сообщение
    насчет остального, не совсем ясно, если можно - поподробней что под этим понимается:
    Под менеджером памяти подразумевается - плагин который к примеру позволит использовать память по стандарту пентагона 1024 или там пентевы, опять же как я вижу есть 4 ссылки на массивы по 16кил (страницы), для каждой четверти адресного пространства, плагин регистрирует порты на запись, заказывет у эмулятора что ему надо к примеру 32 страницы по 16 кил, отдает ссылки на страницы с которых будет браться картинка (ну простейший вариант на 5 и 7 страницы) и будет по записи в порт изменять ссылки того что подключено к адресному пространству.

    Под "читать блокировать набортные устройства", блокировку набортных устройств отчасти можно решить табличкой делегатов на 64к адресов с битовой строкой как описывал выше, под читать это имел ввиду что бы можно было по какому то идентификатору прочитать к примеру значение порта 7FFD или там значение флага TR-DOS (хотя чтение портов опять же можно решить с регистрацией в плагине функции реагирующую на запись к примеру по маске "xxxx_xxxx_xxxx_xx0x"), тут додумать надо, можно взяться пописать плагины и тогда уже точно сложатся функциональные требования.

    Под расширением дебагера, добавить возможность выводить где нить (к примеру в области окна там где выводится текущий такт и значения флагов IFF1 IFF2 свои значения, добавлю к примеру порт 1FFD и очень неплохо видеть его значение в дебагере, или к примеру добавлю флаг SHADOW_ROM который будет показывать что нахожусь в теневом ПЗУ, в общем позволить регистрировать там подписчики на вывод значений bool, byte, short, string)


    Надеюсь не много набредил

    ---------- Post added at 00:17 ---------- Previous post was at 00:16 ----------

    Цитата Сообщение от Alexander Makeev Посмотреть сообщение
    дешифрацию портов/памяти по плагинам, то может заметно пострадать быстродействие
    Тут мысль есть. Выглядит примерно так

    Делаем табличку на 64к делегатов и при регистрации порта чтения передаем строку (например для регистрации порта FE клавиатуры строка будет выглядеть так "xxxx_xxxx_xxxx_xxx0" где в строке могут быть x бит не имеет значения для дешифрации; 0,1 конкретное значение бита при дешифрации _ для визуального удобства) по этим строкам можно заполнить табличку делегатов и не будет влиять на скорость работы зарегистрирован один порт на чтение или 200, для записи сложнее по идее несколько устройств могут одновременно откликнуться на запись в порт, тут надо подумать, думаю можно сделать 4 таблички и обрабатывать их каскадом в реальности (в железе) не могу представить себе ситуации что бы больше 2х устройств откликнулось на запись по одному адресу.


    Цитата Сообщение от Alexander Makeev Посмотреть сообщение
    Вопрос пока только в перехвате вывода в порты (который понадобится для нестандартных видеорежимов)
    ну тут вопрос еще есть с лучом развертки, как по мне правильная отрисовка не совсем тривиальная задача, в идеале было бы нарисовать какой нить базовый класс и классы хелперы что бы как то стандартизировать и упростить их реализацию, но тут тебе виднее как оно должно быть как всегда упирается все в компромиссы между быстро и удобно.

    Цитата Сообщение от Alexander Makeev Посмотреть сообщение
    насчет остального, не совсем ясно, если можно - поподробней что под этим понимается:
    Под менеджером памяти подразумевается - плагин который к примеру позволит использовать память по стандарту пентагона 1024 или там пентевы, опять же как я вижу есть 4 ссылки на массивы по 16кил (страницы), для каждой четверти адресного пространства, плагин регистрирует порты на запись, заказывет у эмулятора что ему надо к примеру 32 страницы по 16 кил, отдает ссылки на страницы с которых будет браться картинка (ну простейший вариант на 5 и 7 страницы) и будет по записи в порт изменять ссылки того что подключено к адресному пространству.

    Под "читать блокировать набортные устройства", блокировку набортных устройств отчасти можно решить табличкой делегатов на 64к адресов с битовой строкой как описывал выше, под читать это имел ввиду что бы можно было по какому то идентификатору прочитать к примеру значение порта 7FFD или там значение флага TR-DOS (хотя чтение портов опять же можно решить с регистрацией в плагине функции реагирующую на запись к примеру по маске "xxxx_xxxx_xxxx_xx0x"), тут додумать надо, можно взяться пописать плагины и тогда уже точно сложатся функциональные требования.

    Под расширением дебагера, добавить возможность выводить где нить (к примеру в области окна там где выводится текущий такт и значения флагов IFF1 IFF2 свои значения, добавлю к примеру порт 1FFD и очень неплохо видеть его значение в дебагере, или к примеру добавлю флаг SHADOW_ROM который будет показывать что нахожусь в теневом ПЗУ, в общем позволить регистрировать там подписчики на вывод значений bool, byte, short, string)


    Надеюсь не много набредил

  6. #16

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

    По умолчанию

    Немного о бенчмарке Test.exe, бенчмарк измеряет время эмуляции 500 кадров (10 секунд) заложенных в exe снэпшотов. После выполнения 500 кадров состояние сохраняется в снэпшот на диск для возможности проверки корректности эмуляции.

    Следует отметить что из-за особенностей сохранения Z80 снэпшотов (не сохраняется состояние HALT), результирующий снэпшот videoTest.z80 будет нерабочий, чтобы сделать его рабочим нужно после загрузки уменьшить PC на единицу. Может кто-то знает где в Z80 можно сохранить состояние HALT?

    ---------- Post added at 01:57 ---------- Previous post was at 01:35 ----------

    Цитата Сообщение от ZEK Посмотреть сообщение
    Тут мысль есть. Выглядит примерно так

    Делаем табличку на 64к делегатов и при регистрации порта чтения передаем строку (например для регистрации порта FE клавиатуры строка будет выглядеть так "xxxx_xxxx_xxxx_xxx0" где в строке могут быть x бит не имеет значения для дешифрации; 0,1 конкретное значение бита при дешифрации _ для визуального удобства) по этим строкам можно заполнить табличку делегатов и не будет влиять на скорость работы
    хорошая идея
    Последний раз редактировалось ZXMAK; 09.09.2011 в 02:38.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

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

  8. #17

    Регистрация
    31.10.2005
    Адрес
    Кемерово
    Сообщений
    1,390
    Спасибо Благодарностей отдано 
    118
    Спасибо Благодарностей получено 
    20
    Поблагодарили
    11 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alexander Makeev Посмотреть сообщение
    Версия 2.0.1 alpha
    Открыт прием заявок на фичи
    плэйлист сделай http://zx.pk.ru/showthread.php?t=16726

  9. #18

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZEK Посмотреть сообщение
    для записи сложнее по идее несколько устройств могут одновременно откликнуться на запись в порт, тут надо подумать, думаю можно сделать 4 таблички и обрабатывать их каскадом в реальности (в железе) не могу представить себе ситуации что бы больше 2х устройств откликнулось на запись по одному адресу.
    Не совсем так.
    Если зарегистрировано несколько делегатов на запись (а это обычная ситуация, например SounDrive и BDI висят на одних и тех же портах), то здесь нюансом может быть блокирование дальнейшей записи устройством. Например, тот же BDI может решить, что порт предназначается ему и не разрешить передавать его следующему делегату. Т.е. возникает проблема порядка, которую надо решать конфигурациями.
    Если зарегистрировано несколько делегатов на чтение- вот это уже плохо, ибо конфликт на шине.

  10. #19
    ZEK
    Гость

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Если зарегистрировано несколько делегатов на чтение- вот это уже плохо, ибо конфликт на шине.
    Тут может быть такое же решение как и в железе - приоритеты, тобиш логика IOQGE
    если откликнулось устройство которое сидит раньше в цепочке (к примеру в первом слоте слотовых машин) IORQGE то остальные идут лесом.

    Цитата Сообщение от Vitamin Посмотреть сообщение
    сли зарегистрировано несколько делегатов на запись (а это обычная ситуация, например SounDrive и BDI висят на одних и тех же портах), то здесь нюансом может быть блокирование дальнейшей записи устройством.
    Вот теперь я вспомнил где конкретно надо логика блокировки "набортных устройств", то есть работать с устройствами пересекающиеся с BDI это исключение из правил а не практика.
    В то же время есть вполне законное право что бы несколько устройств отреагировало на запись в один порт, так можно сделать в железе без каких либо доработок было бы отлично если бы была бы такая возможность в эмуляторе, тогда можно макетировать всякие внешние видяхи (которым надо слушать на запись порты 7FFD и FE). Как вариант можно конечно предоставить функции которые позволят в любой момент прочитать 7FFD и FE, но это не совсем честное макетирование получится.

    В общем все мои хотелки это то что я в какой то мере делал на предыдущем zxmak для отладки железяк, но там как по мне не совсем удобно надо создавать платформу и в неё всовывать железку, тобиш нельзя железку потестиь с Profi Kay Pentagon, это надо везде полазить.

    ---------- Post added at 10:02 ---------- Previous post was at 08:42 ----------

    Бажка с востановление контекста графического устройства, видать обрабатывается только состояние DeviceNoReset или как то так, а на DeviceLost вываливает исключение (ноут усыпил с включеным эмулятором, после пробуждения красный крест вместо картинки)

  11. #20

    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,082
    Записей в дневнике
    11
    Спасибо Благодарностей отдано 
    173
    Спасибо Благодарностей получено 
    493
    Поблагодарили
    343 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alexander Makeev Посмотреть сообщение
    Версия 2.0.1 alpha
    О, из этой версии я понял, что значит "VMWARE Workstation для Speccy"
    Да, отличная идея!
    А исходники-то будут?

    Цитата Сообщение от ZEK Посмотреть сообщение
    Бажка с востановление контекста графического устройства, видать обрабатывается только состояние DeviceNoReset или как то так, а на DeviceLost вываливает исключение (ноут усыпил с включеным эмулятором, после пробуждения красный крест вместо картинки)
    еще под Wine если скрыть окно, а потом показать обратно, то практически всегда сурфейс отваливается, видео больше не обновляется и звук останавливается. Меню при этом работает нормально.
    Последний раз редактировалось Eltaron; 09.09.2011 в 12:35.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

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

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

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

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

Похожие темы

  1. EmuZGL alpha preview
    от Vladimir Kladov в разделе Эмуляторы
    Ответов: 207
    Последнее: 09.10.2011, 03:34
  2. Retro-X [Alpha 6]
    от riskej в разделе Софт
    Ответов: 14
    Последнее: 20.10.2008, 02:46
  3. Ответов: 8
    Последнее: 29.10.2007, 15:47
  4. MEMos alpha demo
    от jim в разделе Софт
    Ответов: 11
    Последнее: 16.09.2007, 14:18
  5. Это ремикс???
    от newart в разделе Музыка
    Ответов: 9
    Последнее: 09.02.2005, 15:38

Ваши права

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