Надо эмулировать тр дос 2.0 или выбор версии сделать. ДИВ ИДЕ эмуляция тоже не помешала бы.
Надо эмулировать тр дос 2.0 или выбор версии сделать. ДИВ ИДЕ эмуляция тоже не помешала бы.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
ZXMAK2 помню качал когда-то, эта прога мне кучу каких-то ошибок выдала, запустить не смог, короче слишком сложная и непонятная штука, этот ваш ZXMAK.
Относительно TR-DOS, могу сказать, что у меня +2B прекрасно работает с Beta Disk Interface. (брал у MV1971) И в том режиме когда ПЗУ подменяется, и с оригинальным ПЗУ.
C +3 ситуация, по слухам, такая: в режиме подмены ПЗУ - всё работает идеально. С оригинальным ПЗУ +3 - непонятки, есть данные, что работать - работает, но половина наших игрушек (со всякими заковыристыми интрами) не идёт. Но этот вопрос требует дальнейшего изучения! К сожалению пока нет желающих вплотную протестировать совместимость BDI и "+3 с оригинальным ПЗУ."
___________
перекрасил рилтайм граф, добавил лимит 50 Гц (уже зачекинил изменения), теперь выглядит так
Зеленый цвет - время между present frame (обновление на дисплее);
Красный - время затрачиваемое на эмуляцию кадра, обновление текстуры и аудиобуфера;
Желтая линия - период частоты дисплея
Сиреневая линия - период 50 Гц
---------- Post added at 19:07 ---------- Previous post was at 19:02 ----------
Так нужно было написать про ошибку, описать ее вместе с самим сообщением об ошибке из лога. Вот ты не написал, я об этом не узнал и ошибка так и продолжала существовать, пока ктото не заметил и не дал мне знать
С времен "когда-то" прошло много времени, за это время много чего поменялось![]()
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
а как должна работать подмена ROM устройствами? Если несколько устройств захотят одновременно подменить ROM как быть?
Тут возникает ситуация как с портами. Отслеживать конфликты сложно. Я думаю правильнее было-бы завести устройство порт-менеджер, через который другие устройства могут подписываться на порты. Соответственно вся логика портов в одном устройстве.
С ROM'ами видимо можно аналогично поступить - добавить в интерфейс MMU методы для замены ROM. Только пока не совсем понятно что именно требуется заменять?
Как вообще работает эта подмена ромов в DivIDE? Ром всегда подменяется или только по какомуто условию?
---------- Post added at 19:24 ---------- Previous post was at 19:22 ----------
или DirectX )))
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
На оригинальных компьютерах в область 0x0000-0x3fff при помощи специального сигнала на шине можно заблокировать сигнал выбора встроенного на плату ПЗУ, внешние устройства в момент чтения из памяти из этой области при активном сигнале, могу выставлять свои данные на шину, простейший случай - подставляют ПЗУ
Последний раз редактировалось s_kosorev; 11.01.2015 в 20:48.
Вот именно это поведение и проэмулировать. Если два устройства хотят выставить этот ROMCS, то срабатывает то, которое выше (ниже) в списке устройств.
Может даже так
Ну или тупо массив передавать в IMemoryDevice, если падение скорости будет значительным. Если у эмулируемого устройства больше 16к ПЗУ - пусть само пейджингом рулит.Код:var mem = bus_manager.FindDevice<IMemoryDevice>(); mem.SetROMCS(false, CustomRead0000); // отключили ПЗУ, вместо него все запросы чтения уходят делегату CustomRead0000 .... mem.SetROMCS(true); // включили ПЗУ обратно
Поглядел, кстати, шину - на +3 и +2A этого ROMCS нет. Вот и не работает бетадиск. Но там сходные сигналы есть на других пинах. Новодельный BDI вроде же на плисине, возможно, что проблема решается прошивкой.
ОтсюдаСообщение от Velesoft
---------- Post added at 02:32 ---------- Previous post was at 02:15 ----------
Управляемо, там есть соответствующий порт.
Дока http://baze.au.com/divide/files/pgm_model.txt
Последний раз редактировалось Eltaron; 12.01.2015 в 00:17.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Никак, оставить как есть. У них и устройства бетадиска свои, так что ничего не поломаетсяА новый функционал реализовать только для классических спектрумов и их наследников.
Хотя вообще можно, наверное, по схеме логику проследить. Но непонятно, какие устройства к пентеве имеет смысл подключать. Бетадиск незачем, дивиде, мультифейс тоже. Разве что спектранет, у него тоже свое ПЗУ вроде есть. Не факт, впрочем, что он и на реальной пентеве заведется.
---------- Post added at 10:58 ---------- Previous post was at 10:54 ----------
Ну или да, реализовать менеджер ром-страниц с возможностью добавлять и переключать страницы извне. Все проблемы это решит, хоть решение и будет дальше от того, как работает железо.
Наконецто порезал эмулятор на части, теперь движок независим от реализации хоста, нет референсов на winforms или xna![]()
В самом ZXMAK.exe остались только реализации устройств без каких-либо ссылок на winforms или xnaМожно их тоже порезать на части
Реализации для разных платформ задаются в unity.config в отдельных контейнерах с именами соответствующими платформе. Сейчас это winforms или xna.
Какую платформу запускать по дефолту можно задать в том-же unity.config (переменная viewType). А можно задать через командную строку:
На самом деле эта опция просто перегружает значение viewType в unity.configZXMAK2.exe /host:xna [<snapshot>]
Для добавления новой платформы нужно реализовать сборку с реализацией 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
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)