User Tag List

Страница 136 из 224 ПерваяПервая ... 132133134135136137138139140 ... ПоследняяПоследняя
Показано с 1,351 по 1,360 из 2231

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

  1. #1351

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

    По умолчанию

    Надо эмулировать тр дос 2.0 или выбор версии сделать. ДИВ ИДЕ эмуляция тоже не помешала бы.

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

  3. #1352

    Регистрация
    24.12.2006
    Адрес
    р.п. Маслянино, Новосибирская обл.
    Сообщений
    5,605
    Спасибо Благодарностей отдано 
    254
    Спасибо Благодарностей получено 
    269
    Поблагодарили
    188 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ZXMAK2 помню качал когда-то, эта прога мне кучу каких-то ошибок выдала, запустить не смог, короче слишком сложная и непонятная штука, этот ваш ZXMAK.

    Относительно TR-DOS, могу сказать, что у меня +2B прекрасно работает с Beta Disk Interface. (брал у MV1971) И в том режиме когда ПЗУ подменяется, и с оригинальным ПЗУ.

    C +3 ситуация, по слухам, такая: в режиме подмены ПЗУ - всё работает идеально. С оригинальным ПЗУ +3 - непонятки, есть данные, что работать - работает, но половина наших игрушек (со всякими заковыристыми интрами) не идёт. Но этот вопрос требует дальнейшего изучения! К сожалению пока нет желающих вплотную протестировать совместимость BDI и "+3 с оригинальным ПЗУ."
    ___________

  4. #1353

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

    По умолчанию

    перекрасил рилтайм граф, добавил лимит 50 Гц (уже зачекинил изменения), теперь выглядит так



    Зеленый цвет - время между present frame (обновление на дисплее);

    Красный - время затрачиваемое на эмуляцию кадра, обновление текстуры и аудиобуфера;

    Желтая линия - период частоты дисплея

    Сиреневая линия - период 50 Гц

    ---------- Post added at 19:07 ---------- Previous post was at 19:02 ----------

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

  5. #1354

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,394
    Спасибо Благодарностей отдано 
    1,702
    Спасибо Благодарностей получено 
    2,219
    Поблагодарили
    873 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    Так нужно было написать про ошибку, описать ее вместе с самим сообщением об ошибке из лога. Вот ты не написал, я об этом не узнал и ошибка так и продолжала существовать, пока ктото не заметил и не дал мне знать
    Подозреваю, что этой ошибкой было отсутствие .NET в системе)

  6. #1355

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

    По умолчанию

    Цитата Сообщение от Eltaron Посмотреть сообщение
    А что ему помешает работать? Порты не пересекаются, а при обращении к нужным адресам контроллер BDI подключит свой ром и всё.
    По-моему главная и единственная причина того, что TR-DOS не пашет в эмуляции +2/+3, это то, что ром с TR-DOS вообще не предусмотрен в их маппинге. Тут бы какую-нибудь возможность для устройств добавлять свои ромы сделать. Без этого ни DivIDE, ни даже мультифейс проэмулировать не выйдет.
    а как должна работать подмена ROM устройствами? Если несколько устройств захотят одновременно подменить ROM как быть?

    Тут возникает ситуация как с портами. Отслеживать конфликты сложно. Я думаю правильнее было-бы завести устройство порт-менеджер, через который другие устройства могут подписываться на порты. Соответственно вся логика портов в одном устройстве.
    С ROM'ами видимо можно аналогично поступить - добавить в интерфейс MMU методы для замены ROM. Только пока не совсем понятно что именно требуется заменять?

    Как вообще работает эта подмена ромов в DivIDE? Ром всегда подменяется или только по какомуто условию?

    ---------- Post added at 19:24 ---------- Previous post was at 19:22 ----------

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

  7. #1356

    Регистрация
    19.06.2014
    Адрес
    г. Харьков, Украина
    Сообщений
    731
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    15 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    Только пока не совсем понятно что именно требуется заменять?
    На оригинальных компьютерах в область 0x0000-0x3fff при помощи специального сигнала на шине можно заблокировать сигнал выбора встроенного на плату ПЗУ, внешние устройства в момент чтения из памяти из этой области при активном сигнале, могу выставлять свои данные на шину, простейший случай - подставляют ПЗУ
    Последний раз редактировалось s_kosorev; 11.01.2015 в 20:48.

  8. #1357

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

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    а как должна работать подмена ROM устройствами? Если несколько устройств захотят одновременно подменить ROM как быть?
    Цитата Сообщение от s_kosorev Посмотреть сообщение
    На оригинальных компьютерах в область 0x0000-0x3fff при помощи специального сигнала на шине можно заблокировать сигнал выбора встроенного на плату ПЗУ, внешние устройства в момент чтения из памяти из этой области при активном сигнале, могу выставлять свои данные на шину, простейший случай - подставляют ПЗУ
    Вот именно это поведение и проэмулировать. Если два устройства хотят выставить этот ROMCS, то срабатывает то, которое выше (ниже) в списке устройств.

    Может даже так
    Код:
    var mem = bus_manager.FindDevice<IMemoryDevice>();
    mem.SetROMCS(false, CustomRead0000); // отключили ПЗУ, вместо него все запросы чтения уходят делегату CustomRead0000
    ....
    mem.SetROMCS(true); // включили ПЗУ обратно
    Ну или тупо массив передавать в IMemoryDevice, если падение скорости будет значительным. Если у эмулируемого устройства больше 16к ПЗУ - пусть само пейджингом рулит.

    Поглядел, кстати, шину - на +3 и +2A этого ROMCS нет. Вот и не работает бетадиск. Но там сходные сигналы есть на других пинах. Новодельный BDI вроде же на плисине, возможно, что проблема решается прошивкой.



    Цитата Сообщение от Velesoft
    Original BETADISK and all Czech BETADISC clones is designed for ZX48 or 128/+2(no +2A) only. BETADISK detect only bit D4 of port #7FFD = enable trdos if 48rom is set (D4=1). ZX48 use only 48 rom = work correct after switching to 48mode. On ZX128 and +2(grey model) work also without problem.

    +2A/+2B and +3 machines use different ZX bus pinout and use two singals ROMOE1 and ROMOE2. This bus also absent next signals as 9V etc.... If you connect original BETADISC to +2A, then ZX will destroyed - romcs signal from betadisc will on +2A ignored and trdos rom will collide with +2A rom of RAM memory of with ULA (if you set allram mode)
    Отсюда

    ---------- Post added at 02:32 ---------- Previous post was at 02:15 ----------

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    Как вообще работает эта подмена ромов в DivIDE? Ром всегда подменяется или только по какомуто условию?
    Управляемо, там есть соответствующий порт.
    Дока http://baze.au.com/divide/files/pgm_model.txt
    Последний раз редактировалось Eltaron; 12.01.2015 в 00:17.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

  9. #1358

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

    По умолчанию

    Цитата Сообщение от Eltaron Посмотреть сообщение
    Вот именно это поведение и проэмулировать. Если два устройства хотят выставить этот ROMCS, то срабатывает то, которое выше (ниже) в списке устройств.

    Может даже так
    Код:
    var mem = bus_manager.FindDevice<IMemoryDevice>();
    mem.SetROMCS(false, CustomRead0000); // отключили ПЗУ, вместо него все запросы чтения уходят делегату CustomRead0000
    ....
    mem.SetROMCS(true); // включили ПЗУ обратно
    Ну или тупо массив передавать в IMemoryDevice, если падение скорости будет значительным. Если у эмулируемого устройства больше 16к ПЗУ - пусть само пейджингом рулит.
    для производительности лучше чтобы одно устройство памятью рулило. Для обычного спектрума понятно, но как быть в случае, если это какой-нибудь PENTEVO, АТМ или Scorpion PROF-ROM? У них уйма страниц пзу, в том числе и разные TRDOS. Когда подмена в таком случае должна работать?
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  10. #1359

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

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    для производительности лучше чтобы одно устройство памятью рулило. Для обычного спектрума понятно, но как быть в случае, если это какой-нибудь PENTEVO, АТМ или Scorpion PROF-ROM? У них уйма страниц пзу, в том числе и разные TRDOS. Когда подмена в таком случае должна работать?
    Никак, оставить как есть. У них и устройства бетадиска свои, так что ничего не поломается А новый функционал реализовать только для классических спектрумов и их наследников.

    Хотя вообще можно, наверное, по схеме логику проследить. Но непонятно, какие устройства к пентеве имеет смысл подключать. Бетадиск незачем, дивиде, мультифейс тоже. Разве что спектранет, у него тоже свое ПЗУ вроде есть. Не факт, впрочем, что он и на реальной пентеве заведется.

    ---------- Post added at 10:58 ---------- Previous post was at 10:54 ----------

    Ну или да, реализовать менеджер ром-страниц с возможностью добавлять и переключать страницы извне. Все проблемы это решит, хоть решение и будет дальше от того, как работает железо.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

  11. #1360

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

    По умолчанию

    Наконецто порезал эмулятор на части, теперь движок независим от реализации хоста, нет референсов на winforms или xna

    В самом ZXMAK.exe остались только реализации устройств без каких-либо ссылок на winforms или xna Можно их тоже порезать на части

    Реализации для разных платформ задаются в unity.config в отдельных контейнерах с именами соответствующими платформе. Сейчас это winforms или xna.
    Какую платформу запускать по дефолту можно задать в том-же unity.config (переменная viewType). А можно задать через командную строку:
    ZXMAK2.exe /host:xna [<snapshot>]
    На самом деле эта опция просто перегружает значение viewType в unity.config

    Для добавления новой платформы нужно реализовать сборку с реализацией IMainView и IHost и добавить новый контейнер в unity.config, в котором прописать мапинг на реализацию. Остальные вью можно не добавлять, тогда их вызов будет просто игнорироваться (команды возвращают CanExecute()==false).
    Вообще mainview нужно переписать, чтобы реюзать winforms для opengl, да и код mainpresenter/mainview получился кривоватый

    Пока новый релиз не делал, но все изменения доступны в тфс

    Заодно пофиксилась синхронизация звука в xna, теперь 50 Гц, правда стабильность синхронизации под XNA4 оставляет желать лучшего, но уже более-менее юзабельно, даже звук нормальный
    Последний раз редактировалось ZXMAK; 12.01.2015 в 10:52.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

Страница 136 из 224 ПерваяПервая ... 132133134135136137138139140 ... ПоследняяПоследняя

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

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

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

Ваши права

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