User Tag List

Показано с 1 по 10 из 45

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

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #17

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

    По умолчанию

    Цитата Сообщение от ZEK Посмотреть сообщение
    Тут может быть такое же решение как и в железе - приоритеты, тобиш логика IOQGE
    если откликнулось устройство которое сидит раньше в цепочке (к примеру в первом слоте слотовых машин) IORQGE то остальные идут лесом.
    попробовал вариант с массивами делегатов, я пошел дальше и на обращение к памяти тоже делегатами рулится. Сделал так - есть менеджер шины, в котором регистрятся все девайсы реализующие IBusListener. Менеджер шины при регистрации вызывает метод BusInit у каждого девайса в котором девайсы сообщают на какие события они подписываются, например:
    Код:
    public void BusInit(IBusManager bmgr)
    {
       // false - это M1
       bmgr.AddListenerReadMemory(0xC000, 0x4000, false, readPage4000);
    
       bmgr.AddListenerReadPort(0x0001, 0x0000, readPortFE);
    }
    
    private void readPage4000(long cpuTact, ushort addr, ref byte value)
    {
       value = RAMS[5][addr&0x3FFF];
    }
    
    private void readPortFE(long cpuTact, ushort addr, ref byte value)
    {
       value = (value & 0xBF) | GetTapeBit(cpuTact)? 0x40:0x00;
    }
    к сожалению производительность упала на 30-40%, при том-же функционале Может написать часть эмулятора на Си?
    Пока рано делать окончательные выводы, т.к. при вызове делегатов многовато лишнего происходит, нужно посмотреть что можено соптимизировать...


    в аттачменте пробный вариант с BusManager (глубоко не проверял, но с виду все вроде работает)

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

    Бажка с востановление контекста графического устройства, видать обрабатывается только состояние DeviceNoReset или как то так, а на DeviceLost вываливает исключение (ноут усыпил с включеным эмулятором, после пробуждения красный крест вместо картинки)
    хм, на десктопе проверял в разных режимах все ок, иногда только в лог пролетают единичные InvalidCall на текстуре после манипуляций с фокусом и старт-стопом. Проверю на ноутбуке...
    Вложения Вложения
    Последний раз редактировалось ZXMAK; 09.09.2011 в 15:41.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

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

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

Эту тему просматривают: 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

Ваши права

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