Просмотр полной версии : ZXMAK2 - Виртуальная машина ZX Spectrum
Страницы :
1
2
[
3]
4
5
6
7
8
9
NEO SPECTRUMAN
07.06.2012, 14:44
так озвучьте, для тогдо чтобы стал не хватает ...
1) ...
2) ...
3) ...
Ладно вспомню всё чего мне не хватает и перечислю.
Только попробуйте потом не сделать!
1) Эмуляцию ATM Turbo2+
2) PentEVO с хорошей эмуляцией HDD
3) Поддержку звуковых девайсов GS и прочих
4) Не обязательно, но желательно - плеер *.rzx, можно и запись
NEO SPECTRUMAN
11.06.2012, 22:28
так озвучьте, для тогдо чтобы стал не хватает ...
I. Дебагер
Самая главная часть эмуля.
Чего не хватает?
1. нормального GUI первое что нужно продублировать кнопками функции F1-F12 клавиш.
К сбросу(в дебагере) нужно подтверждение (будто во время дебаганья настолько часто нужен сброс. А вот нажать случайно и всё похереть это раз плюнуть.)
Load/Save Block... продублировать в главном окне эмуля File/...
2. Редактор регистров сейчас просто чамарашный.
Пример для подражания
http://zx.pk.ru/attachment.php?attachmentid=36007&d=1339435670
z80stealth
Почти идеален. Правка осуществляется быстро (не то что в ZXMAK).
Отличное решение вывести содержимое регистров и в двоичном виде.
Еще бы рядом возле десятичного значения вывести десятичное со знаком. А редактирование бинарных значения сделать по образу и подобию редактора флагов (чтоб просто кликать).
3. Редактор памяти
С редактором памяти аналогичная ситуация.
Что нужно правка как в любом HEX редакторе (включая правую колонку с текстом). А не только одного байта в открывшемся окошке.
И еще одно.
Я поражаюсь как можно не ставить скроллбар в редакторе памяти. (10-ки и 10-ки эмулей разных платформ).
А и ногда даже нет Goto Address... как сдесь
Также нужна возможность просматривать и редактировать страницы в памяти которые вне адресного пространства процессора.
4. Виевер памяти
Кроме редактора нужен виевер памяти. (отдельным окном)
На подобии редактора памяти. (будет просто замечательно если и им можно будет редактировать)
Главная особеность виевера это динамическое обновление и паральная работа вместе с запущенным эмулем.
Для чего?
Им можно легко находить некоторые переменные.
5. Виевер теневого экрана
Также нужна возможность вывести в отдельное окно содержимое теневого экрана.
6. Правка кода
В Унриале и UKV есть замечательная возможность править код прям в окне дебагера. так же необходима эта функция.
7. Трасировка
Часто сталкиваюсь с проблемой когда нужно промотать какойто время до начала процедуры. Шагом в одну команду долго а шагом с пропуском циклов легко проскочить процедуру.
Очень бы хотелось шаг 50, 100, 500 тактов
Брекпоинты
В ZXMAK нашел только Брекпоинты по PC
А вот Breakpoints manager в унриале
http://zx.pk.ru/attachment.php?attachmentid=36008&d=1339436662
(подобное есть и в EmuZwin и еще где то видел)
также как и в унриале нужно 3 типа брекпоинтов.
1. по выполняемому адресу
2. по обращению к памяти (чтение или запись)
3. по условию
Для первых двух также нужна возможность выставлять диапазон адресов.
брекпоинты по условию
В унриале для установки брекпоинта по условию используется си подобный синтаксис. Возможностей конечно много. Но хотелось бы что нибудь более человеческое. (выбор вариантов брекпоинта и подставка значений)
8. Выдиралка процедур.
В унриале присутствует выдиралка процедур
Крайне полезен будет её аналог.
Перед запуском ставим галочки возле пунктов:
выполнение
чтение
запись
Запускаем
байты памяти с которыми совершились эти действия помечаются.
При остановке
Или (по выбору или оба сразу) сохраняем дамп памяти в котором все не помеченные байты заменяются на выбранное пользователем значение
или просто заменяем все не помеченные байты и продолжаем выполнение.(как в унриале)
9. счетчики выполнения процедур
Нужна возможность подсчета количества выполнений процедуры за определенное время. Например инкремент счетчика если PC указывает на заданный адрес. Таких счетчиков штук 8-м.
10. MCdebuger
Дебагер для мультиклора.
Такое уже было в ZXMAK
http://zx.pk.ru/attachment.php?attachmentid=36011&d=1339438694
Но хотелось бы большего.
Второй экран в котором отображается содержимое видео памяти без оверскана
сетку знакомест и отделить яркостью бордер.
http://zx.pk.ru/attachment.php?attachmentid=36010&d=1339438656
11... ...всё надоело печатать... хотя мыслей еще полно...
I. Дебагер
Самая главная часть эмуля.
я вобщемто считал что дебагер то вспомогательная часть :smile:
Дебагер практически не обновлялся и присутствует в том виде в котором появился в ZXMAK.NET (где-то 2005 год)
Все это конечно можно сделать, но на это нужно время, я сейчас стараюсь в первую очередь функционалом наполнять :)
Замечания понятны, как появится время, постараюсь заняться и дебагером
11... ...всё надоело печатать... хотя мыслей еще полно...
а кроме дебагера пожелания есть?
P.S.: может ктото подскажет софт для отладки NEMO-IDE?
NEO SPECTRUMAN
14.06.2012, 23:40
а кроме дебагера пожелания есть?
Конечно есть.
11. Нужна возможность замедленной и ускоренной работы эмулятора.
Желательно чтоб скорость задавалась пользователем.
Для чего?
Например для того чтоб быстро пролистать 15 минутный, скучный, не пропускаемый, скролл в демке.
12. Disk Browser
Есть такая замечательная фича в emuZwin.
http://zx.pk.ru/attachment.php?attachmentid=36053&d=1339698177
По возможности хотелось бы подобное.
В нем можно создавать образы дисков.
Импортировать и Экспортировать в Нobeta файлы.
И есть замечательная возможность запускать исполняемые файлы двойным кликом.
Или хотя бы автоматическое добавление boot.b (как в унриале) желательно опциональное.
13. Нужен редактируемый ULA девайс с максимальным количеством изменяемых настроек.
Так же хотелось бы иметь возможность менять назначения битов в системных портах.
Было бы не плохо иметь возможность загружать/сохранять настройки в ini файл.
14. ASM
http://zx.pk.ru/attachment.php?attachmentid=36054&d=1339699504
Очень бы хотелось ZXASM из emuZwin
Начиная с версии 2.7, компилятор ZXAsm++ вынесен в отдельную DLL, и его исходный код (на языке Pascal, Delphi) опубликован полностью (т.е. он теперь может быть использован в других эмуляторах Spectrum или может быть построен самостоятельный кросс-компилятор на его основе).
15 TIME BACK
Еще одна замечательная функция в emuZwin
Позволяющая отматывать время назад.
Состояние памяти, регистров.. спектрума вроде сохраняется каждые 2 секунды.
Шикарная тулза для прохождения очень сложных игр.
16-17 ULAPLUS и FLASHCOLOR
Я буйный фанатик этих режимов :v2_dizzy_roll: :v2_clapp::v2_dizzy_turn: :v2_lol:
ХАЧУ ЭТИ ДЕВАЙСЫ ПРЯМ СЧАС!:)
Но могу потерпеть.
Нужно чтоб они были отдельными устройствами а не входили в состав девайса ULА.
Для ULAPLUS потребуется редактор палитры.
http://zx.pk.ru/attachment.php?attachmentid=36060&d=1339702264
18... ...есть еще пожелания по дебаганью но пока озвучивать их не буду...
...а то уже сильно много хотелок но еще много чего не зделано.
А увеличение количества хотелок прямо пропорционально замедлению развития проекта.
а кроме дебагера пожелания есть?
P.S.: может ктото подскажет софт для отладки NEMO-IDE?
А можно добавить поддержку командной строки и при запуске эмулятора через опции ZXMAK2.exe [option...] [filename]
выбирать с каким менеджером памяти запустится ZXMAK2...
Неплохая утилита дискдоктор для винчестера by Alone Coder HDDoctor (http://alonecoder.nedopc.com/zx/HDDOCT12.rar)
Alex Rider
21.07.2012, 16:17
Давненько нету новостей... Оно живое еще?
NEO SPECTRUMAN
21.07.2012, 16:58
Давненько нету новостей...
Такое уже было.
А потом снова наступило активное развитие.
Запилил проигрывание RZX.
Сыровато, но практически все RZX, что я пробовал, проигрались без проблем. В оставшихся используются выкрутасы с регистром R (Green Beret, например), а у меня синхронизация только по нему. Видимо, надо лезть глубже, в эмуляцию процессора.
В аттаче патч и последняя svn-версия эмулятора, собранная с его использованием.
Запилил проигрывание RZX.
Сыровато, но практически все RZX, что я пробовал, проигрались без проблем. В оставшихся используются выкрутасы с регистром R (Green Beret, например), а у меня синхронизация только по нему. Видимо, надо лезть глубже, в эмуляцию процессора.
здорово! :v2_thumb:
посмотрел код, смысла дельту по регистру R вычислять нету- его могут в любой момент перегрузить. Если я правильно понял описание RZX, то вместо PostCycle нужно было просто добавить счетчик с проверкой в обработчик события RDMEM_M1 (чтение операции, похоже RZX оперирует именно с этим значением).
Можешь выложить RZX который не работает? Хочу поковыряться как время будет :)
вместо PostCycle нужно было просто добавить счетчик с проверкой в обработчик события RDMEM_M1 (чтение операции, похоже RZX оперирует именно с этим значением).
Не выйдет, RDMEM_M1 для префиксированных инструкций вызывается только один раз, а регистр R для них увеличивается на двойку.
Я счас пока привязался к REFRESH (патч в аттаче), Green Beret заработал, но там счас с длительностью INT косяк, похоже - сирена в заставке звучит чуть быстрей, чем надо, и спрайты в игре мерцают.
И другой неработающий RZX - gunstar.rzx. Точнее, он работает в 48к режиме (даже с привязкой по R), а в 128 синхронизация сбивается.
Если будешь смотреть, обрати внимание на два закоментированных throw exception в RzxHandler.cs, некоторые игры на них валятся - тоже признак того, что длина INT неверная.
Я счас пока привязался к REFRESH (патч в аттаче), Green Beret заработал, но там счас с длительностью INT косяк, похоже - сирена в заставке звучит чуть быстрей, чем надо, и спрайты в игре мерцают.
а ты мог бы сделать Shelve в TFS вместо patch файла. Честно говоря даже не знаю чем этот патч накатывать - нашел на SF проект patch.exe, но он файлы почему-то не находит. Пришлось патч файл руками применять. Я привык в TFS'е все делать :v2_rolley
а ты мог бы сделать Shelve в TFS вместо patch файла. Честно говоря даже не знаю чем этот патч накатывать - нашел на SF проект patch.exe, но он файлы почему-то не находит. Пришлось патч файл руками применять. Я привык в TFS'е все делать :v2_rolley
Попробую, но мой TFS-опыт ограничивается двумя часами тотальной ненависти, когда я этот TFS пытался поставить на сервер :)
"-Так, а теперь поставь мне все обновления дотнета и еще миллион нужных пакетов"
"-Так, а теперь я хочу базу. И не подсовывай мне свой SQL 2000!"
"-Так, а теперь мне надо Sharepoint, иначе я не играю. Нет шарепоинта? Ну тогда нет и TFS'а" :)
Но попробую, может клиентская часть более дружелюбна :)
Кстатида, а этот эмулятор не пробовал запускать под серверной операционкой??
ну случайно. А то вот автор утверждает, что на w2k3 эмуль не должОн работать , ну и вообще у меня руки кривые :(((
В Win2k8 никаких проблем вообще. 2k3 не помню, может и не пробовал. Но под XP работает, значит и там должно. Ну, разумеется после включения всех отключенных по умолчанию сервисов и ускорений.
вот и я говорю, что не должно быть с ХР разниЦЦы
но тем не менее :(
Буквально сейчас попробовал - появляется в процессах и сразу исчезает.
Если собираю через VS2010, да, работает, до ошибки. Если вылезла ошибка, а она вылезет обязательно, даже при закрытии, то компилю заново - и а5 работает.
Видно все же радиус кривизны сказываеЦЦо (
upd - ан нет, даже если корректно закрывается, без сообщения об ошибке, то все равно, второй раз не запускается. Только что два раза компилил)))
ошибка эта в драйвере видеокарты. Т.к. под w2k3 официально твоя видеокарта не поддерживается, производитель чинить эту ошибку в неофициальном хаке врядли будет. В официальных дровах этой ошибки нет.
Попытки компилить или еще чтото делать бесполезны. Эффект этот проявляется только за счет того что память может не так распределяться при каких либо действиях (компиляция и т.п.) и ошибка драйвера проявляется уже по другому.
---------- Post added at 18:33 ---------- Previous post was at 18:27 ----------
Попробую, но мой TFS-опыт ограничивается двумя часами тотальной ненависти
а чем ты эти патчи генеришь и накатываешь?
а чем ты эти патчи генеришь и накатываешь?
Генерил через TortoiseSVN (я проект через svn вытянул)
Накатывать можно им, а можно руками через старый добрый GNU patch
patch -p1 <filename.patch
-p1 игнорирует сегменты пути, прописанные в patch-файле, зависит от того, где находимся, когда запускаем эту команду
если в /SRC - то -p0
если в /SRC/ZXMAK2 - то -p1
А TFS у меня крутая ошибка при коннекте - "The supplied email address is invalid. Parameter name: emailAddress". При том, что мыло у меня корректное, и с codeplex'а письма на него доходят. Написал в техподдержку, авось разберутся.
Установил себе наконец этот дотнет, запускаю эмулятор и бац!
http://s018.radikal.ru/i511/1210/35/37d54efa8167.png
SoftLight
11.10.2012, 20:40
Установил себе наконец этот дотнет, запускаю эмулятор и бац!
Да просто ты забыл скачать и установить с сайта MS еще стотыщпицот версий дотнета и всевозможных redistributable пакетов для VS. Зато блин модная технология.
Да просто ты забыл скачать и установить с сайта MS еще стотыщпицот версий дотнета и всевозможных redistributable пакетов для VS. Зато блин модная технология.
Нужен всего лишь свежий DirectX
Установил себе наконец этот дотнет, запускаю эмулятор и бац!
http://s018.radikal.ru/i511/1210/35/37d54efa8167.png
эта ошибка говорит о том что у тебя не установлен DirectX 9. прогони установку DirectX и все заработает :v2_wink2:
---------- Post added at 20:08 ---------- Previous post was at 20:05 ----------
Да просто ты забыл скачать и установить с сайта MS еще стотыщпицот версий дотнета и всевозможных redistributable пакетов для VS. Зато блин модная технология.
нет, в отличие от C++, никаких redistributable пакетов не нужно, достаточно установить DirectX 9.
Никаких сторонних либ, кроме DirectX эмулятор не использует :smile:
Только главное устанавливать именно DirectX 9, т.к. инсталляция DirectX 10/11 не устанавливает DirectX 9.
Чтобы весь DirectX не качать, можешь веб-инсталлер запустить, он сам закачает только то что нужно: http://www.microsoft.com/en-us/download/details.aspx?id=35
эта ошибка говорит о том что у тебя не установлен DirectX 9. прогони установку DirectX и все заработает :v2_wink2:
А Директикс 9 не испортит мне тот директикс, который по умолчанию идет в XP sp3?
А Директикс 9 не испортит мне тот директикс, который по умолчанию идет в XP sp3?
Дявятка (DirectX 9.0c) - это последняя версия, что поставится на ХР. Так что он просто обновит старую. 10 и выше уже не пойдут.
Товарищи, оказывается DirectX 9 еще в сервис паке 2 идет, а у меня даже 3. Так что у меня директ икс 9. Значит глючит не из-за него.
Да, проверил, действительно у меня 9.0c - самая последняя стоит.
---------- Post added at 03:02 ---------- Previous post was at 02:53 ----------
Теперь на счет, какой я устанавливал дотнет.
Вот такой:
NetFx20SP2_x86.exe
NDP20SP2-KB958481-x86.exe
Все, как на сайте микрософта говорилось. Один файл это дотнет, второй какая-то заплатка, как положено.
---------- Post added at 03:22 ---------- Previous post was at 03:02 ----------
А вот что пишет утилита версии дотнета.
http://img13.imageshost.ru/img/2012/10/12/image_5077553c805ce.png
Товарищи, оказывается DirectX 9 еще в сервис паке 2 идет, а у меня даже 3
Если во время установки последних DX9 не было .NET 2 то не ставится и Managed DX (приблуда нужнаю для .net? даже и некуда регистрировать, нет инфраструктуры .net 2) дополнение, попробуй переставь через вебинтсалер http://www.microsoft.com/en-us/download/details.aspx?id=35 он дотягивает обычно нудные компоненты DX
Дявятка (DirectX 9.0c) - это последняя версия, что поставится на ХР.
есть неофициальная фанатская сборка 10й версии под "хрюшу" :rolleyes:
есть неофициальная фанатская сборка 10й
пофик она не подходит, надо 9
Если во время установки последних DX9 не было .NET 2 то не ставится и Managed DX (приблуда нужнаю для .net? даже и некуда регистрировать, нет инфраструктуры .net 2) дополнение, попробуй переставь через вебинтсалер http://www.microsoft.com/en-us/download/details.aspx?id=35 он дотягивает обычно нудные компоненты DX
Очень странно.
Могу поставить 9.0c еще раз поверх, у меня она есть уже скачанная в архивах.
---------- Post added at 10:19 ---------- Previous post was at 10:10 ----------
Не, не помогло. Наверное все-таки с дотнетом что-то не так.
---------- Post added at 10:19 ---------- Previous post was at 10:19 ----------
кстати той утилью можно и /verify и /clean сделать, есичО.
А че такое verify и clear?
А, понятно, прочитал. Проверю.
solegstar
12.10.2012, 10:23
Очень странно.
Могу поставить 9.0c еще раз поверх, у меня она есть уже скачанная в архивах....Не, не помогло...
DX 9.0c еще отличается как ни странно версиями сборок, с дополнительными библиотеками. надо веб-инсталлером устанавливать...
Проверил ключиком /verify, он нашел у меня версию 2.0 SP2, проверил ее и написал, что все окейно.
---------- Post added at 10:57 ---------- Previous post was at 10:28 ----------
Выяснил. Дело действительно в директиксе оказалось. Поставил вебинсталлерскую, сразу все заработало.
Хорошенький эмуль, но есть несколько замечаний.
1. Цвет Bright 0 очень темный.
2. Нет сканлайнов.
3. Нет ковокса.
4. Нат автобута, когда бросаешь дискету в эмулятор
5. Вроде бы при турбозагрузке в тр-досе грузит медленнее, чем на реале. Но это еще надо проверять.
---------- Post added at 11:08 ---------- Previous post was at 10:57 ----------
Блин, ZXMak заработал, т.к. ему 2.0 .NET нужен. А другая прога требует 3.5. Что мне и 3.5 ставить? Зачем такая путаница? Одним 1.1, другим 2.0, третьим 3.5? И это все нужно одновременно иметь.
Titus, у меня этих файлов .NET аж девять штук, начиная от 1.1 и далее везде. Зато всё работает, а они мне не мешают. ;)
Блин, ZXMak заработал, т.к. ему 2.0 .NET нужен. А другая прога требует 3.5. Что мне и 3.5 ставить? Зачем такая путаница? Одним 1.1, другим 2.0, третьим 3.5? И это все нужно одновременно иметь.
Ну, есть два варианта развития таких платформ - или ломать совместимость с более старыми версиями, или держать в языке кучу атавизмов. Дотнет идет по первому пути, джава - по второму. Вообще обычно инсталляторы программ сами тянут себе нужную версию, и пользователю не приходится в них разбираться.
Нофлик, очень хочу нофлик =)
Один из немногих эмулей, который мне нравится в полном экране, а при своем непростом видео-сетапе вывода картинки на монитор это плюс.
Могу поставить 9.0c еще раз поверх, у меня она есть уже скачанная в архивах.
именно так и нужно сделать. Только ставить нужно свежий DirectX 9, т.к. их много было.
Запусти веб инсталлер он доустановит несколько файлов и все.
---------- Post added at 15:06 ---------- Previous post was at 15:01 ----------
Проверил ключиком /verify, он нашел у меня версию 2.0 SP2, проверил ее и написал, что все окейно.Блин, ZXMak заработал, т.к. ему 2.0 .NET нужен. А другая прога требует 3.5. Что мне и 3.5 ставить? Зачем такая путаница? Одним 1.1, другим 2.0, третьим 3.5? И это все нужно одновременно иметь.
ты мог сразу 4.0 поставить. Эмулятору требуется минимум 2.0 или выше. У меня он работает на 4.0. Это даже лучше для производительнсоти :) Одновременно их ставить необязательно :)
Правда есть исключение для программам требующих дотнет 1.0, им может потребоваться обязательная установка 1.0, даже если уже установлена 4.0.
В твоем случае можешь просто поверх еще 3.5 или сразу 4.0 поставить
---------- Post added at 15:17 ---------- Previous post was at 15:06 ----------
Нофлик, очень хочу нофлик =)
Один из немногих эмулей, который мне нравится в полном экране, а при своем непростом видео-сетапе вывода картинки на монитор это плюс.
я сам подумываю нофлик и др. фильтры прикрутить, но с фильтрами в DX никогда не работал, поэтому нужно разбираться
поэтому нужно разбираться
на .net вряд ли получится, SMT юзал для этих целей в том числе и ассемблер с SIMD инструкциями.
Интересно другое, можно ли, для этих целей привинтить пиксельные шейдера.
Интересно другое, можно ли, для этих целей привинтить пиксельные шейдера.
так я об этом и говорю. Накрайняк конечно можно прикрутить unmanaged либу, но интересно на чистом дотнете :)
Обновил эмулятор до версии 2.6.4.0 (http://zxmak2.codeplex.com/releases/view/96260), благодаря Eltaron добавил RZX, кроме того изменено поведение сброса.
RZX довольно чувствителен к ПЗУ, поэтому перед открытием нужно выбрать соответствующую модель памяти - ZX Spectrum 48 или ZX Spectrum 128. Иначе на некоторых играх может наблюдаться десинхронизация.
Синхронизации развертки под INT нету, поэтому если запись была сделана на машине у которой тайминги отличались, могут быть флики. Чтобы исправить нужно рефакторить код - вычисление текущего такта сильно размазано по коду.
Gunstar.rzx который приводил выше Eltaron работает на 48 пзу, но через две минуты почемуто рассинхронизируется. Вероятно пзу отличается от оригинала.
Обновил до версии 2.6.5.0 (http://zxmak2.codeplex.com/releases/view/96626) - добавился API для иконок. Устройства теперь могут регистрировать свои иконки, которые будут появляться в правом верхнем углу экрана. Добавлены иконки для паузы, магнитофона, винчестера (SMUC).
2 zebest: попробуй на W2k, насколько помню у тебя при ресайзе крешилось. Возможно эта версия исправит проблему, отпиши тут результат плиз
no problem, но, во-вторых, у мну w2k3, а не win2k, ну это как winXP vs win98, а в третьих - ровно один раз запустилось, 200% экран, поменял на 100%, размер уменьшился и все зависло, вплоть до снятия задачи. На этом все, больше не запускается, до перезагрузки. всё как обычно.
попробуй заменить EXE вот этой версией из аттачмента - напиши помогло или нет. В этом варианте я перенес в другой поток сброс Direct3D при ресайзе.
Обновил до версии 2.6.6.0 (http://zxmak2.codeplex.com/releases/view/96629) - добавил фильтр NoFlic и исправил обновление отладчика после загрузки RZX файла.
http://savepic.net/3481585.png
Правда есть исключение для программам требующих дотнет 1.0, им может потребоваться обязательная установка 1.0, даже если уже установлена 4.0.
Хм... у нас программеры умудряются писать проги, которые при установленном FW4, требуют установки 3.5 :)
По поводу RZX обнаружил странную вещь. Дело в том что через время синхронизация по непонятной причине теряется. Следил по отладчику в сравнении со спектакулятором и обнаружил что поведение онного зависит от того исполняется ли сейчас RZX или обычный снэпшот :eek:
Тест на Gunstar.rzx приведенный выше - ставим точку останова на #0038 (прерывание) и открываем gunstar.rzx. Выполняем первый кадр - смотрим число тактов. Выполняем второй кадр - смотрим число тактов:
frame 1: 15T (по спектакулятору 19)
frame 2: 16T (по спектакулятору 19)
если инициализировать RZX счетчик значением -1, то на первом кадре получим 19T, как в спектакуляторе. Однако на втором кадре получим 20T. Если же спектакулятором открыть SZX файл, то прерывание происходит как положено. Куда девается 1T в спектакуляторе, если выполняется RZX? :eek:
Пишу - не помогло.
Exception System.AccessViolationException at Microsoft.DirectX.Direct3D.Device.Reset(PresentPar ameters[] presentationParameters)
хм, а у тебя вообще какие-то приложения использующие Direct3D работают при ресайзе окна? Даже не представляю почему вызов Direct3D::Reset может при частом вызове приводить к AccessViolation. Единственное что приходит в голову - сбоит видеопамять или просто хакнутый драйвер для w2k3 вообще не позволяет сделать несколько вызовов Direct3D::Reset. Если это так, то твой драйвер видеокарты просто не совместим с ресайзом окна, т.к. ресайз окна требует выполнить Direct3D::Reset
Видеокарта старенькая по нынешним временам, ATI4870, но все равно довольно мощная, чтобы вот так вот выкинуть и поменять. Могу конечно для чисто эксперимента пару-тройку воткнуть других, в том числе и нВидивских
было бы неплохо
ну хорошо, а тест - будет?:)))
держи :)
выложи полный лог если тоже крешится будет
Теперь по тесту. ЗапускаеЦЦо, но как то не так, чтобы совсем ровно, окно прозрачное( по началу прозрачное, после масштабирования становиццо обычным, серым). Но мышой цепляеЦЦа и масштабируется от нуля до плюс бесконечности и обратно. Лог собственно:
окно должно быть черным. По логу видно что на системе, где было запущено приложение, Direct3D вообще не доступен. Видимо ты какие-то драйверы не установил после переустановки видеоплат. Эмулятор на такой системе вообще не должен запускаться. Попробуй установи драйвера чтобы работали 3D проги и эмулятор чтобы хотябы запускался. И после этого запусти этот тест еще раз.
Попробуй выполнить вот эти шаги перед тем как запускать тест:
Windows Server 2003 Graphics Acceleration is disabled by default, which disables DirectX functionality. This is to enhance server stability and is not needed in standard server scenarios.
To enable DirectX, you must first enable graphics acceleration. To do so follow the next steps:
1) Right click on the desktop and go to Properties, Settings, Advanced, Troubleshooting.
2) Set the Hardware acceleration bar to Full.
http://www.petri.co.il/images/graphics_accel.gif
3) Click Ok all the way out.
To activate Direct3D and DirectDraw (DirectX) follow the next steps:
1)Go to Start/Run and type "dxdiag".
2)Click OK.
3) Click on the Display tab, then click on the Enable button for DirectDraw and Direct3d.
http://www.petri.co.il/images/graphics_accel1.gif
4) Click Ok all the way out.
Не совсем понятно, на nvidia тоже крэш был?
Я тут просмотрел логику кода и похоже что Direct3D::Reset у тебя вообще не работает. Крэш по всей видимости при первой-же попытке Direct3D::Reset происходит. Нужно будет посмотреть стандартные примеры приложений в DirectX SDK и попробовать запустить те, которые выполняют Direct3D::Reset, если будет крэш, то обойти это на твоих дровах видеокарты скорей всего не получится.
Попробую еще под виртуалкой в WS2003 потестить.
память три раза поменять 6Гиг-> 8Гиг -> 4Гиг
а разве win2000 (XP) видит >4Gb ???
а разве win2000 (XP) видит >4Gb ???
речь об win server 2003. А XP тоже с помощью хаков видит, только от этих хаков иногда могут быть синие экраны. Хотя в данном случае врядли захаченая поддержка памяти влияет, ошибка в драйвере видеокарты происходит. Такое впечатление что на любой вызов Direct3D::Reset крешится память.
Включил, теперь тест совсем-совсем не запускается
[06:40:04 DEBUG TESTDX] begin init()
[06:40:05 DEBUG TESTDX] begin create D3D
а дальше что? DirectX 9 последний (веб инсталлером) устанавливал?
а дальше ничего. веб-инсталлер говорит, что у нас послендие дрова типа.
что значит ничего? Должна быть либо какая-то ошибка, либо сообщение end init
это не веб инсталлер, а dxdiag - дигностический тул. То что он говорит еще не значит что все компоненты присутствуют. Веб инсталлер тут: http://www.microsoft.com/en-us/download/details.aspx?id=35
Установил Windows Server 2003 x86 Standard Edition, установил DirectX с помощью веб инсталлера (ссылка выше), установил дотнет фреймворк 2.0 с сервис паком SP2.
Запускаю - все работает, ресайзится без проблем :smile:
Может у тебя какой-то утилит установлен, который в играх FPS или другие сообщения поверх изображения игры показывает?
Попробуй вот этот вариант теста, в архиве также запаковано тестовое приложение от DirectX SDK - Text3d.exe, попробуй его тоже.
Попробую конечно. Но не считаешь ли ты, что например любой из 3DMark-ов - довольно серьезный тест для Direct3D, directX в частности и системы в целом?
Да любой профессиональный тест могу запустить, любой с HWBoot пройдет с несамыми худшими резальтами:)
минутку, ща проверю.
3DMark мало о чем скажет, во первых он DX10/DX11 использует, во вторых он в полноэкранном режиме работает. А проблема как-раз с оконным режимом. Без ресайза окна эмулятор и на твоем драйвере работает. Вопрос в том - как обойти проблему в драйвере, если это вообще возможно.
Есть у меня мысли, что крэш этот связан может даже не с драйвером, а с софтом, который у тебя установлен и перехватывает вызовы к Direct3D::Reset. В этом софте ошибка. Вот правда как найти кто это гадит, будет наверно непросто.
Text3D работает без проблем, как и ожидалось, твой тест не запускается. Как и ожидалось). Да, лог
[08:56:52 INFO TESTDX] Windows Server 2003 Enterprise Service Pack 2
[08:56:52 INFO TESTDX] Version 5.2.3790.131072 - 32 bit
[08:56:52 DEBUG TESTDX] begin init()
[08:56:52 DEBUG TESTDX] begin create D3D
сразу крешится? а эмулятор запускается? чудеса...
Попробуй еще вот этот вариант теста, тут я вообще вызовы Reset убрал совсем.
в пэйнте окна как видишь ресайзятся...
Так он же вообще DirectX не использует?
там ниже прога запущена Tex3D - в ней текст крутится, уж она то точно DirectX использует?!
использует но не Managed DirectX. Ситуация усугубляется тем что я протестил на точно такой-же системе установленой с нуля все работает без проблем. Вероятно проблема связана с несовместимостью Managed DirectX с твоей видеокартой. Или все-же у тебя установлен какой-то кривой перехватчик DirectX, который и баламутит воду.
Попробуй вот этот тест.
PS: я в шоке - погуглил по MDX, сколько было софта -игры и т.п. Все сайты как сговорились - либо сайта нет, либо страница удалена. Информацию про контест игр на Managed DirectX с интела потерли, гугл уже ничего не находит. Ссылка SDK на сайте майкрософта говорит файл не найден...
окна ресайзяЦЦо. Что еще???
вот, нашел наконец программку которая MDX использует: http://sourceforge.net/projects/nasa-exp/files/World%20Wind%20.NET/1.4/World_Wind_1.4.0_Full.exe/download?use_mirror=ignum
Попробуй ее запустить. Это аналог Google Earth, только попроще, от NASA.
---------- Post added at 23:54 ---------- Previous post was at 23:36 ----------
хех, проверил на Windows Server 2003 Enterprise и проблема на ней действительно наблюдается. В этой системе какие-то проблемы с поддержкой Direct3D.
Что интересно в Windows Server 2003 Standard все работает как окей. :)
Покопаюсь, может найду чего именно нехватает в Enterprise версии.
а нет, я ошибся дело оказалось в том чтов Enterprise по дефолту был выключен сервис аудио устройств. Включил и эмулятор заработал без каких либо проблем - все ресайзится без проблем.
Уверен, что работать будет. Кстате Google Earth то работает. Но и это еще не все:)
я бы на твоем месте не был так уверен, если она заработает то и эмуль должен без проблем работать и ресайзиться.
с тестом тоже все интересно.
Если запускать в режиме совместимости с WinXP, то как бы запускается правильно, черное окошко, как положено, но ресайзить его ниЗЗя, сразу убивается, зато лог появляется правильный и осмысленный хоть чуть-чуть!
ты видимо тест #1 запустил. А что с #2 и #3?
лог немного сократил, он что-то повторяется, или так кажется
не совсем, там два стек трейса выводится, чтобы увидеть где произошла ошибка и откуда пришел вызов. Они немного пересекаются.
---------- Post added at 00:20 ---------- Previous post was at 00:14 ----------
у меня NASA тиоже без проблем. Но и теперь третий последний тест почти! без проблем. Запускаю его в режиме совместимости. Все ресайзица. вот лог.
а вот это уже интересно, в третьем тесте вообще не используется Reset, только классическая отрисовка в OnPaint. Там нет вообще ничего такого что могло бы дать ошибку.
Попробуй NASA подольше подергать. По идее тоже крэш выскочит. Если нет будем думать, заметил что NASA использует более старую версию Managed.DirectX.Direct3DX, возможно неспроста.
Есть еще мысль, не исключено что у тебя на видеокарте сбоит видеопамять. Такие ошибки в этом случае - обычное дело.
нашел ошибочку - в какие-то давние времена был утерян флаг Multithreading в параметрах девайса, не знаю в ней ли причина, но поправил. Пробуй :)
Обновил до версии 2.6.6.0 (http://zxmak2.codeplex.com/releases/view/96629) - добавил фильтр NoFlic и...
Отлично! На фулскрине красота. Вот бы нофлик еще на горячие клавиши повесить, было бы совершенно шоколадно.
А вообще, по горячим клавишам еще очень хочется Pause/Resume.
А вообще, по горячим клавишам еще очень хочется Pause/Resume.
Кнопка Pause ;)
Кнопка Pause ;)
OMG!
У меня заработало Alt+Pause.
Может на этом изыскания в данном направлении можно пока прекратить?:v2_wink2:
не-не, еще не все дорешено :v2_dizzy_biggrin2:
Раз NASA WorldWind у тебя не падает, значит возможно есть способ обойти это и в эмуляторе. Или хотябы понять из-за чего это происходит.
Попробуй вот этот тест #4.
Товарищи, ну почему с дотнетовскими вещами столько проблем?
Нет бы писать под MFC например, как я)
Товарищи, ну почему с дотнетовскими вещами столько проблем?
Нет бы писать под MFC например, как я)
а при чем тут вообще дотнет? :confused:
Тут проблема в связке многопоточность-DirectX-видеокарта, на конкретной машине zebest, в единичном случае.
Вот мы и пытаемся разобраться в чем причина - толи дрова привередливые, толи чтото плохо установилось, толи в железе проблема.
---------- Post added at 15:48 ---------- Previous post was at 15:36 ----------
[02:30:09 INFO TESTDX] ProcessorCount: 6
[02:30:09 INFO TESTDX] ProcessorAffinity: 0x63
а что это у тебя affinity mask такая необычная?
6 ядер, а процессу доступно только 4... причем старшие биты както странно установлены, как будто ядер не меньше 7...
Кстати, а сколько у тебя дисплеев?
Вот новый тест #5 - отключил аппаратное ускорение 3D, в этом варианте как в NASA World Wind - программное. Может проблема в аппаратном ускорении...
а при чем тут вообще дотнет? :confused:
Тут проблема в связке многопоточность-DirectX-видеокарта, на конкретной машине zebest, в единичном случае.
Вот мы и пытаемся разобраться в чем причина - толи дрова привередливые, толи чтото плохо установилось, толи в железе проблема.
У меня тоже были проблемы. Сначала установи .нет 2.0, т.к. 1.1. ему не подходит. Потом оказалось, что рирект икс 9 нужен ну самого препоследнего билда.
У меня тоже были проблемы. Сначала установи .нет 2.0, т.к. 1.1. ему не подходит. Потом оказалось, что рирект икс 9 нужен ну самого препоследнего билда.
Проблемы у тебя были другого плана - старая система и не полностью установленный DirectX.
1.1 не подходит, т.к. используются фичи 2.0. ДиректX потребовалось устанавливать заново, т.к. у тебя он не полностью был установлен, потому что когда ты его без дотнета устанавливал, он не полностью установился.
Собственно директ икс нужен от апреля 2006 года. Я не думаю что установить 6-летней давности директикс - это такая уж требовательность к новизне. :)
Тест5. Запускается, окно прозрачное, как и положено при отключенном ускорении:((
не-не, ты в системе ускорение Direct3D не выключай в операционной системе Direct3D должен быть включен, иначе не будет работать.
Я расчитываю что ты все эти тесты запускаешь при выкрученом на полную ускорении видеоадаптера (закладка Advanced в свойствах дисплея) и при включенном ускорении Direct3D на закладке dxdiag->Display. Если эти значения не включены, то смысла чтото проверять нет - Direcr3D будет просто недоступен.
Проблемы у тебя были другого плана - старая система и не полностью установленный DirectX.
1.1 не подходит, т.к. используются фичи 2.0. ДиректX потребовалось устанавливать заново, т.к. у тебя он не полностью был установлен, потому что когда ты его без дотнета устанавливал, он не полностью установился.
Собственно директ икс нужен от апреля 2006 года. Я не думаю что установить 6-летней давности директикс - это такая уж требовательность к новизне. :)
Какие же есть фичи в 2.0, которых нет в 1.1, чтобы сделать обычный вывод в окошко и звук?
Нет, у меня стоял DX9, который был в составе SP3, а у тебя требовался чуть более новый билд, который пришлось ставить отдельно.
Какие же есть фичи в 2.0, которых нет в 1.1, чтобы сделать обычный вывод в окошко и звук?
generics - упрощают читаемость кода и значительно повышают производительность при работе с коллекциями. Кроме того, фреймворк 1.1 не совместим с последующими версиями. Код написаный под 1.1 и использующий специфические операции, может сбоить, если установлен фреймворк 2.0 или выше.
Чтобы было понятнее, фреймворк 1.1 - это была по сути демо-версия в которую не успели добавить важный функционал. А 2.0 - это уже полноценный релиз. Все последующие фреймворки - это расширение фреймворка 2.0. Поэтому смысла ориентироваться на 1.1 нет никакого.
---------- Post added at 19:07 ---------- Previous post was at 18:58 ----------
Нет, у меня стоял DX9, который был в составе SP3, а у тебя требовался чуть более новый билд, который пришлось ставить отдельно.
у тебя не хватало 4 файлов от DirectX, последний из этих файлов появился в 2006 году. Эмулятор ругался на то что у тебя нет файла который устанавливается с DirectX от 2005 года.
Ты эти файлы мог руками подкинуть в папку эмулятора, но правильнее запустить установку DirectX. Это нужно для того, чтобы быть увереным, что DirectX у тебя содержит все необходимые файлы и DirectX не поврежден. Ну и чтобы для остальных программ эти файлы не нужно было подкидывать руками.
Какие же есть фичи в 2.0, которых нет в 1.1, чтобы сделать обычный вывод в окошко и звук?
Начнем с того, что этот эмулятор крут не только снаружи, но и внутри.
Попробуй написать подержку нового устройства и в Unreal, и в ZXMAK2, сразу почувствуешь разницу. А там и до разницы между 1.1 и 2.0 недалеко :)
Начнем с того, что этот эмулятор крут не только снаружи, но и внутри.
Попробуй написать подержку нового устройства и в Unreal, и в ZXMAK2, сразу почувствуешь разницу. А там и до разницы между 1.1 и 2.0 недалеко :)
Удобство программирования - это одна сторона медали.
Но удобство установки и скорость работы/загрузки - другая.
Попробуй написать подержку нового устройства и в Unreal, и в ZXMAK2, сразу почувствуешь разницу
Не надо сравнивать хрен с пальцем. Если архитектура продумана, то написать расширяемый софт можно практически на чем угодно. А если не продумана, то будь у тебя самый распоследний дотнет, получится фуфло.
Удобство программирования - это одна сторона медали.
Но удобство установки и скорость работы/загрузки - другая.
А разве .NET 2.0 не ставится автообновлением системы в первые же несколько часов жизни свежеустановленной XP SP3?
Error404
23.10.2012, 21:36
.
Не надо сравнивать хрен с пальцем. Если архитектура продумана, то написать расширяемый софт можно практически на чем угодно. А если не продумана, то будь у тебя самый распоследний дотнет, получится фуфло.
Витамин, вот объясни, как один и тот же человек может в одном треде утверждать, что-то в духе "на ассемблере невозможно написать сложную программу", а в другом писать "Если архитектура продумана, то написать расширяемый софт можно практически на чем угодно". Я вижу только одно объяснение - день считается неполноценным, если вечерком никого не затроллить :) Сорри, но я отказываюсь вступать в холивар C++ vs .NET.
часов жизни свежеустановленной XP SP3?
ставится от 1.1 до 4, неделю назад проверял
А разве .NET 2.0 не ставится автообновлением системы в первые же несколько часов жизни свежеустановленной XP SP3?
Любые автообновления я отключаю, как класс. Не люблю самодеятельности)
Витамин, вот объясни, как один и тот же человек может в одном треде утверждать, что-то в духе "на ассемблере невозможно написать сложную программу", а в другом писать "Если архитектура продумана, то написать расширяемый софт можно практически на чем угодно". Я вижу только одно объяснение - день считается неполноценным, если вечерком никого не затроллить Сорри, но я отказываюсь вступать в холивар C++ vs .NET.
Рассказываю. Язык (среда, фреймворк и т.п.) определяет предельные уровни абстракции , а расширяемость - свойство архитектуры. Можно написать на асме расширяемую прогу (небольшую), а можно на дотнете нерасширяемую. Так что опять же - не путай ортогональные понятия:)
какого х и где он запоминает, что уже запускалсО и более отказывается?
Сейчас перегружу и посмотрю на это чЮдо еще раз :(((((((((((((((((
чЮдны дела твои, Госсподи..
Пойду в основную системуу
а где ты фреймворк брал? с сайта microsoft или с варезника?
Систему на вирусы проверял?
Эмулятор кстати с фиксом я еще не выкладывал, тестить надо было тесты которые я выкладывал, а эмулятор если тестить так вот эту тестовую версию: http://zx.pk.ru/attachment.php?attachmentid=37867&d=1350942731 (в ней есть исправления под твой тазик).
Как тесты на чистой машине отработали?
Вообще чудеса, не то слово - на всех машинах которые я видел, везде работает без проблем, уверен что на любой другой также будет работать. А тут попадается одна, на которой какие-то странные выкрутасы с видеокартой. И не поймешь причину, т.к. приложение крэшится прямо в момент инициализации Direct3D. Вдвойне удивительно то что крешится с С++-ым эксепшеном чистое дотнет приложение, где таких ошибок вообще фактически не бывает.
можешь дать ремоут десктоп к тазику на котором это происходит?
Alex Rider
24.10.2012, 00:11
Вдвойне удивительно то что крешится с С++-ым эксепшеном чистое дотнет приложение, где таких ошибок вообще фактически не бывает.
Почему, бывает. Крешится нативный поток, например. А если снять дамп в момент крэша WinDbg'ой или студией и посмотреть его с M$-символами - не поможет?
Почему, бывает. Крешится нативный поток, например. А если снять дамп в момент крэша WinDbg'ой или студией и посмотреть его с M$-символами - не поможет?
во первых эмулятор не использует нативных потоков.
А во вторых креш происходит в приложении не имеющем никаких потоков кроме основного. Крешится прямо в момент старта приложения во время создания Direct3D.Device. Или в момент вызова Direct3D.Device.Reset(PresentParameters presentParams). Крешится просто пустое приложение состоящее из пустого окна и инициализации Direct3D. Крешится с исключением AccessViolation. Поэтому в чем тут может быть причина и непонятно. Это примерно как hello world на си написал, а он крешится с AccessViolation - поди разбери откуда там такая ошибка.
Alex Rider
24.10.2012, 00:56
во первых эмулятор не использует нативных потоков.
Это ты их не создаешь. А DirectX создает. Или не DirectX. Остановил эмулятор под MSVS после ZX-сброса - там 22 потока, из них только 3 managed. Может, есть смысл посмотреть на дамп, а? Положите его сюда, например. Я мож что интересного найду.
Shadow Maker
24.10.2012, 01:10
Возможно полезная информация http://dlcorp.nedopc.com/viewtopic.php?f=24&t=1117
Возможно полезная информация http://dlcorp.nedopc.com/viewtopic.php?f=24&t=1117
хех, да, с affinity mask косяк вышел :v2_rolley в спешке забыл вписать формат вывода и вывод по дефолту в десятичной системе счисления прозводился :) Значит тут все в порядке 63 - это 0x3F, все 6 ядер доступны...
По поводу скорости, даже на Dual Core 2GHz без проблем 50 Hz стабильно тянет. Ну да, на машинках 7-15 летней давности с производительностью туговато. Но так ли актуальны тазики 2005 года выпуска в 2012 году?
В остальном deathsoft видимо невнимательно читал - крешится не на любой WS2003, а только на той что у zebest. Я проверял и под WS2003 STANDARD и на ENTERPRISE - везде окей.
Проблема только на машине у zebest и то что мы тут делаем - пытаемся разобраться почему :)
---------- Post added at 00:48 ---------- Previous post was at 00:44 ----------
Это ты их не создаешь. А DirectX создает. Или не DirectX. Остановил эмулятор под MSVS после ZX-сброса - там 22 потока, из них только 3 managed. Может, есть смысл посмотреть на дамп, а? Положите его сюда, например. Я мож что интересного найду.
эмулятор где-то 3 потока создает, остальное - системные потоки, они вылизаны микрософтом до блеска, туда можно даже не заглядывать.
Только речь то идет о том что крешится не только эмулятор, но даже пустое приложение, без потоков и без логики - просто окно и инициализация Direct3D, больше ничего нет.
---------- Post added at 00:56 ---------- Previous post was at 00:48 ----------
та не проблема в логах, вот свежий, тут все нормально запускается. Если конечно не ресайзить.
Error 00:59:52.203 Exception System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
...
at System.Windows.Forms.MainMenu.Dispose(Boolean disposing)
at System.ComponentModel.Component.Dispose()
at System.ComponentModel.Container.Dispose(Boolean disposing)
at System.ComponentModel.Container.Dispose()
at ZXMAK2.Controls.FormMain.Dispose(Boolean disposing)
at System.ComponentModel.Component.Dispose()
at System.Windows.Forms.Form.WmClose(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
...
[ну вот английский framework - отлично, теперь хоть сообщения об ошибках по человечески пишутся :)]
судя по логу эта ошибка при закрытии. При закрытии окна вначале уничтожается менюшка, при этом рабочая область увеличивается и успевает отработать Direct3D.Reset чтобы привести размеры буфферов в соответствие с новыми размерами окна.
Короче говоря, при закрытии происходит тот-же самый ресайз... Т.е. тут ничего нового. Тот-же самый Reset по ресайзу.
при VBlanc Sync - то жи резет деиЦЦа? Причем на этом и все, кнопкЕ не нажимаюЦЦо, лог не пишеЦЦа, только диспетчер задач и помогает.
да, при каждом изменении параметров делается Reset. VBlank меняет параметр, поэтому тоже выполняется Reset
zebest а 3D игрушки использующие DirectX у тебя не крешатся при переходе из полноэкранного режима в оконный и наоборот?
попробуй вот этот вариант
Говорю же, это первое приложение, с которым вообще какие-то проблемы именно в плане совместимости.
из тестов ясно одно, что креш у тебя происходит только при вызове Direct3D.Reset. Почему - хз. В обычных приложениях этот вызов происходит редко, например если меняются настройки графики. Может поэтому и не проявляется. Непонятно только почему на всех остальных системах, в том числе и с ATI картой, такая проблема не наблюдается...
Попробуй включить/выключить в настройках системы отрисовку окна при перетаскивании. Изменится ли поведение?
Попробовал. Еще хуже предыдущего. При ресайзе сразу выскакивает табличка с вышеприведенного скриншота
Что в логе?
попробуй вот этот тест. Он по всей видимости тоже будет крэшиться, но интересует содержимое лога который он успеет записать до крэша.
Т.к. крэш может помешать записи лога, тест в двух вариантах - во втором Reset не вызывается вообще. Выложи логи от этого теста.
Первый тест, который TESTDX-RESET. Запускается красиво, черное окно, но при ресайзе сразу исчезает. Лога нет.
Второй тест, который TESTDX-NORESET. Запускается красиво, черное окно. РесайзиЦЦа без проблем. Лога НЕТ!???
блин забыл фалы конфигурации для логгера приаттачить :)
вот с конфигурацией, пробуй
[/COLOR]убираю config-и - запускаются тесты, как прежде. Н-да.. Однако.
раз начало лога пишется, значит эксперимент не чистый - ты чтото изменил. Конфиг только указывает логгеру куда логи писать. Раз логгер смог создать файл, значит с логгером все в порядке.
Бред какой-то, выглядит все так, будто типичный сбой железа. Но ведь другой софт у тебя работает...
Попробуй еще запустить, убрав из конфига вот эту строку:
<supportedRuntime version="v2.0.50727"/>
я так тебя понимаю, чтог если у меня тест не запускается с конфигом, то и БЕЗ конфига он то жи не должен запускаться? Это однозначно???
совершенно верно, конфиг в данном случае влияет только на то куда логи писаться будут.
отличЬненько :) Всё чудесатее и чудесатее. (с)
ну это в идеале, но видно не на моей системе.
Значит так, очередной раз постараюсь объяснить, как оно работает на моей системе.
Для чистоты эксперимента - перегрузил. После перезагрузки не запускается ни с конфигом, ни БЕЗ! НО!!! маленькое но...
Беру запускаю ту же самую игру Puzzle Dimension, видно она срабатывает как какой-то активатор фиг знает чего, и ПОСЛЕДНИЕ тесты начинают запускаться, но только без конфига. Весело??
похоже проблема как-то связана с неудачным моментом инициализации Direct3D... :v2_conf2:
Попробуй вот этот тест. Кроме того, я еще приложил другое тестовое приложение из примеров инициализации Direct3D...
-2005530585 (D3DERR_DRIVERINTERNALERROR)
при определенных манипуляциях. Силён, однако))))
ну вот - внутреняя ошибка драйвера... По этой-же причине и эмулятор на вызове Direct3D.Reset крешится. Но насколько я понял, пример инициализации с зеленым окном, у тебя запускается и более менее стабильно работает и ресайзится, да?
Попробуй еще этот вариант теста, я оконце желтым подкрасил, чтоб видно было работает отрисовка или нет. Если окно желтое - значит все ок.
Оффтоп: интересно, где ты такую систему откопал, это какая-то специальная сборка QA Edition? :v2_dizzy_biggrin2:
неееееееееее. и все же - это не чЮдо, это полная ЖжжжжжЖ.:mad:
а что ,если я скажу, что я и поД ХР зелененький тест могу закрашить?
а еще скажу, что под ХР все точно так же (не) работает.
а еще скажу, что вот щаз буквально твой эмуль ресайзится без всяких проблем.
как впрочем и тест:
[04:06:22 INFO TESTDX] ProcessorCount: 2
[04:06:22 INFO TESTDX] ProcessorAffinity: 0x3
И что ты на ЭТО скажешь??? Подозреваю, что так
---------- Post added at 03:13 ---------- Previous post was at 03:11 ----------
впрочем в логе видно, что я изменил. это пипец!!!! какие с. писали эту операционку и прочие неты!!?
хех, видимо твой драйвер видеокарты не поддерживает 6 ядер, что странно, потому как должен поддерживать.
Но тут возможно еще накладываются особенности WIN API. Проверь как ведет себя TESTDX-8 на всех ядрах.
Кстати, эти два ядра, которые ты отключал, они случайно не "разлоченые"? :v2_wink2:
У deathsoft эмулятор без сбоев на 12 ядрах работает, так что тут дело не в эмуляторе и не в дотнете. Я тоже проверял на 6 ядрах под Windows Server 2003 R2 Enterprise - все ок.
Нет, ядра у проца родные, не разлоченные.
---------- Post added at 03:26 ---------- Previous post was at 03:25 ----------
и не разогнаные, по дефолту[COLOR="Silver"]
Вот это очень странно. Потому как я тестил и на 1, на 2, на 4 и на 6 ядрах - везде все ок.
А драйвер процессора у тебя правильный стоит? После апгрейда процессора обновлял? Может у тебя какой-то однопроцессорный драйвер стоял?
Может и странно. Драйвер процессора правильный. По всем тестам.
Включил обратно 6 ядер.
Желтенький тест - работает!!! Ты - демон! Уличная магия прям какая то :)
Эмуль - не ресайзиЦЦа, зависает:) Утром на 4х ядрах попробую.
лог выложи пожалуйста от желтого :) Причина похоже в том что инициализация в эмуляторе работает в довольно опасный момент (событие OnHandleCreated). На твоей системе это по какой-то причине дестабилизирует работу драйвера видеокарты.
Обновил эмулятор до версии 2670 (http://zxmak2.codeplex.com/releases/view/96845) - небольшие оптимизации и фиксы Direct3D рендерера, с учетом замеченых особенностей поведения на некоторых системах (zebest).
Браво! Не прошло и полгода, как мы это выяснили :)
Значит моя система и железо как бы и не очень то при чём? :)))
с системой у тебя все-же что-то не так, но я подкорректировал момент инициализации Direct3D, чтобы не нервировать твой драйвер :)
Остальные системы не столь требовательны к моменту инициализации.
Что касается зеленого приложения, то в нем просто нет проверки на нулевой размер окна, т.к. его цель продемонстрировать инициализацию, а не обработку событий
Обновил до версии 2680 (http://zxmak2.codeplex.com/releases/view/96957) - добавил модель спектрума ZX Spectrum +3, пока только ULA и память, контроллера диска нет
http://savepic.su/2709100.png
Обновил до версии 2682 (http://zxmak2.codeplex.com/releases/view/97127) - исправлено сохранение в SZX для модели Spectrum+3 и подкорректированы тайминги ULA Spectrum+3
Очень рад, что этот эмулятор активно развивается и поддерживается, появляются новые фичи/фикы и активно выслушиваются "хотелки" пользователей. Совсем недавно спрыгнул с Unreal именно на ZXMAK2 и практически не почувствовал душевной боли =)
Многие знают, что я записываю видео и звук с эмулятора (как софтово, так и железом) и в сравнении с тем же Unreal все таки есть небольшая разница. Во-первых звук, в ZXMAK2 очень резкий и звонкий и на слух воспринимается не так приятно, как с Unreal, ну и соответственно в записи тоже, с чем это связано? К выводу картинки вообще никаких претензий, но очень не хватает подвешенного на горячие клавиши NoFlick. Вот именно в моем случае (а он практически клинический) это решило бы массу проблем недовольных зрителей =) Т.е. эти пресловутые горячие клавиши хочется очень-очень, и если есть такая возможность на лету переключать режимы без лазанья по менюшкам и без каких-либо задержек, то это было бы очень кстати.
А вообще, я очень рад, что не Unreal`ом и Spectaculator`ом единым наслаждаются пользователи под Windows =)
В эмуляции звука есть ошибки, у бипера грубоватое округление фронтов между фреймами, что дает небольшие биения. Нсть путаница с форматом сэмплов. Звонкость проявляется от того что нет НЧ фильтра. Были фиксы для этого, но не отлаженные, нужно время чтобы повозиться и довести все до рабочего вида.
---------- Post added at 12:06 ---------- Previous post was at 10:21 ----------
очень не хватает подвешенного на горячие клавиши NoFlick. Вот именно в моем случае (а он практически клинический) это решило бы массу проблем недовольных зрителей =) Т.е. эти пресловутые горячие клавиши хочется очень-очень, и если есть такая возможность на лету переключать режимы без лазанья по менюшкам и без каких-либо задержек, то это было бы очень кстати.
вобщем-то повесить переключение на горячую клавишу - это вообще не проблема, минутное дело. Но тут вопрос в том - на какую именно клавишу? Т.к. некоторые клоны используют клавиатуру практически полностью, могут быть пересечения и нажатие на такую комбинацию будет приводить не только к переключению, но и к обработке ее внутри эмулятора...
Но тут вопрос в том - на какую именно клавишу? Т.к. некоторые клоны используют клавиатуру практически полностью, могут быть пересечения и нажатие на такую комбинацию будет приводить не только к переключению, но и к обработке ее внутри эмулятора...
Ctrl+F12 например?
Обновил до версии 2684 (http://zxmak2.codeplex.com/releases/view/97187) - улучшено звучание бипера (позаимствовал алгоритм в unreal), исправлена работа иконки магнитофона для некоторых состояний.
Добавлено - перезалил 2684, исправил отвалившийся автостоп для магнитофона :)
Обновил до версии 2701 (http://zxmak2.codeplex.com/releases/view/97225):
- исправлены тайминги Spectrum+3 ULA
- теперь, если Direct3D не доступен, то эмулятор рисует черное окно с предупреждением
- добавлено окно с раскладкой клавиатуры спектрума
- исправлена кемпстон мышь (левая/правая кнопки поменялись местами)
- добавлена поддержка памяти Pentagon 1024
- добавлена поддержка теневой ПЗУ для Pentagon 512/1024
- небольшой фикс исправляющий конфликт обработки NMI между BDI и некоторыми модулями памяти (Scorpion, Pentagon 512/1024)
- изменена структура проекта, поменялись нэймспейсы устройств
В связи с изменением нэймспейсов, старые VMZ файлы с именами устройств от старой версии не поддерживаются. Если у вас есть старый VMZ файл - удалите его создайте конфигурацию машины заново.
Буржуинские компутеры - оно конечно хорошо, но может про правильнуйю эмууляцию наших не будем забывать??
надеюсь в чем трабла - и так видно??? Как-то неаккуратненько, доктор?(с)
Ах, да, Profi 3.xx, если не понятно из картинок.
зы- за качество картинки извиняюсь, тивилизеру 20 лет, стока не живут, ну максимуум 10.
это не трабла, все так и должно быть. ULA Profi 3.xx требует более старой прошивки, иначе будет то что ты привел на скриншоте :)
ну а в чем проблема-то? ну положи еще старую прошивку в свой архив и привяжи ее к Profi 3.xx / Не? Уж лучше так, чем невидимый курсор :(
у меня она к сожалению не сохранилась :(
это не проблема то жЫ, щаз в личку кину ссылку на пак, с моими комментами в ридми. Может подберешь и засунешь в свой zip, у мну не получаеЦЦо)
да там ничего сложного - создаешь рядом с эмулятором папку ROMS. Кидаешь в нее файл ~mapping.xml из ROMS.PAK, рядом кладешь новый ром файл и редактируешь ~mapping.xml (заменяешь в разделе "Profi" имя ром файла).
Обновил до версии 2710 (http://zxmak2.codeplex.com/releases/view/97248):
+ в отладчике теперь отображается состояние RZX (текущий номер инструкции во фрейме, номер чтения из порта, номер фрейма);
+ наконец-то исправлен RZX playback :)
+ добавлена опция "Maximum Speed" (см. меню VM->Maximum Speed)
+ добавлен модуль памяти PROFI с прошивкой v1.0 (необходима для PROFI ULA 3.XX)
http://savepic.su/2862465.png
а тайминги в PROFI с чем ровнял? у тебя тест быстродействия показывает 1,15 вместо 1,00 (ТУРБО у мну 1,65), ну и соответственно у тебя бордюрные полоски в тесте атрибутов значительно выше. Вряд ли это от прошивки видео-ПЗУ зависит, хотя как вариант - все возможно. но что имеем, увы....
тайминги нечем было ровнять, взял из unreal цифры и все :)
Никакой другой информации не было.
Используются такие значения:
Line Time = 224T
First Paper Line = 56
First Paper Tact = 64T
Int Start At = 32T
Int Length = 28T
замедление памяти/портов не используется. То что на реале 1.00 показывает, не ты первый заметил. Но параметров развертки вроде никто не знает.
Печалька :) чОрный ящик, значиЦЦо. ну для начала.
TactsTest:
мой комп - 71680 (Пент?)
твой эмуль - 69888
TestInt Ковалевского:
мой комп - 40 (ну в норму как укладывается)
твой эмуль - 28
заменил на 71680/40, в итоге тест быстродействия стал давать 1.20 :v2_dizzy_biggrin2:
попробуй mctest2.tap.zip (http://zx.pk.ru/attachment.php?attachmentid=29641&d=1317715805)
мой комп - 71680 (Пент?)
у тебя ПЗУ синхрогенератора с пентагоновскими таймингами, его в профиках все кому не лень ставили, дальше поток сознания не имеет смысла
у тебя ПЗУ синхрогенератора с пентагоновскими таймингами, его в профиках все кому не лень ставили, дальше поток сознания не имеет смысла
было когдато и пзу синхрогенератора, но тоже потерялось. Интересно а по содержимому этого пзу, можно тайминги расчитать? Было бы неплохо - пзу синхрогенератора подсунул, по нему таблички посчитались и готово! :) Кто-то знает как его расшифровать?
Вроде даже програмка есть, эту ПЗУху править. и даже есть те, кто это делал :)
что за программка, где взять?
с бордюром вообще полная Жэ - ну могу я конечно подогнать свою картинку, но это - НЕЧТО:) Надо бы еще живой профик, желательно и 3 и 5.
ничего не понял, что там с бордюром-то? Вообще нету чтоли? :v2_conf3:
solegstar
05.11.2012, 17:54
Alexander Makeev, в расширенном экране область синхрогенератора не менялась (второй килобайт прошивки). только первая часть со спековским экраном (первая соотв.).
---------- Post added at 15:32 ---------- Previous post was at 15:25 ----------
оригинальные синхрогенераторы от 3(4) и 5 версий Профи - http://zx-pk.ru/showpost.php?p=421483&postcount=430
---------- Post added at 15:41 ---------- Previous post was at 15:32 ----------
В прошивке под пятногон поправляют положение INT-a...на общее количество тактов это не должно влиять, не ?
еще изменен бит сброса счетчиков адреса D5 - в пентагоновской прошивке он переходит из 0 в 1 на 0297h, в оригинальном профи он меняется по адресу - 0299h.
---------- Post added at 15:54 ---------- Previous post was at 15:41 ----------
Было бы неплохо - пзу синхрогенератора подсунул, по нему таблички посчитались и готово! :) Кто-то знает как его расшифровать?
это было бы просто замечательно, может тогда и Профи 5 можно было бы до конца доделать под пентагон. я когда возился с прошивкой, так до конца и не раскурил её :( фактически методом научного тыка экспериментировал. перешивал синхрогенератор. Длина сигнала Int в профи 3.2 и 4 можно было чуть ограничить прошивкой (это было некорректно), в Профи 5 сделали как надо - длина Int ограничивалась по /M1 (OR) /IORQ.
solegstar
06.11.2012, 01:41
вобщем как-то так... не то пальто совсем :(
вобщем как-то так... не то пальто совсем :(
очень близко к эмулятору, а у тебя прошивка синхрогенератора родная или модифицированная?
solegstar
06.11.2012, 02:05
модифицированая под пентагон. вот эта SAMX6P - http://zx-pk.ru/showpost.php?p=440683&postcount=36, ссылку на родную samx6 я давал чуть выше.
---------- Post added at 00:05 ---------- Previous post was at 00:01 ----------
родную к сожалению сейчас не прошью, надо рфку стирать, возможно завтра.
Оно? :) Только это совсем не пятногон :)
http://savepic.su/2855232.png
Было бы хорошо на оригинальной посмотреть
а что это? :)
тайминги почти как у пятногона, но paper начинается на 4 такта раньше и прерывание сдвинуто на 21 такт вперед относительно развертки
Ну! А я что говорил ?! (с)
а ко всемуу прочемуу - на твоей картинке ( и в эмуле тоже:) на бордюре нет черного цвета, а у мну - есть? Что, проц "правильный" или как
Цвет белый от того что z80 не фирменный. out (c),#00 пишет #ff
а программно как то можно определить, что возвратит(вернее "пошлёт") проц на команду out (c),0 - ноль или #FF ?
Косвенно как-нибудь, например, дать эту команду в известный порт и сразу же считать из него, что считает, нули или идиниЦЦы ?
Можно в AY попробовать писать, правда не везде из AY читать можно. Или в Глюк часы, если они есть. Еще на КМОП процессорах должны правильно работать команды LD A,R, LD A,I.
Возможно что он "правильно" отрабатывает OUT (C),0
строго говоря, такой команды нет;) поэтому закладываться на то, что выведется 0 - нельзя.
кстати тогда да, глупый вопрос к господам-эмумулеписателям - а программно как то можно определить, что возвратит(вернее "пошлёт") проц на команду out (c),0 - ноль или #FF ?
можно писать в любой порт, из которого потом можно считать. и в этом весь вопрос.
можно сделать out в порт #7FFD, если память после этого залочилась, то это КМОП клон :)
если память после этого залочилась
да, при условии, что это не клон-кастрат какой-нибудь или пентагон 1024 (хотя с ним-то как раз "без последствий" опыт может пройти)... если на залочивание пофиг, можно на стандартном экране написать, что out (c),0, а на расширенном - out(c),#ff.
в общем, четкого решения тут нет.
в своем очень старом тестере я делал такой тест, там вроде был и ay предусмотрен, и даже gs. но, естественно, не на любом клоне этот тест проца мог работать.
Еще на КМОП процессорах должны правильно работать команды LD A,R, LD A,I.
А как они работают неправильно?
сделан какой-то левой фирмОй ZiLOG
посмотрел свои процы - вроде на фирменном буквы O и G переплетены,
а Z сливается с i
http://mixeurpc.free.fr/SITE_x86-guide/Photos/Grandes/25/Zilog%20Z80%20DART%20-%20Z0847006PSC%2001.jpg
http://mixeurpc.free.fr/SITE_x86-guide/Photos/Grandes/25/Zilog%20Z80%20DART%20-%20Z0847004PSC%20(Logo%20rond)%2001.jpg
Titus, если прерывание произойдет во время выполнения этих команд, то в P/V будет 0 вместо 1.
Titus, если прерывание произойдет во время выполнения этих команд, то в P/V будет 0 вместо 1.
Интересно, как такое сумели выяснить.
Titus, у нас нашел Иван Рощин: http://code-zx.zxnet-archive.ru/id/465. А вообще это в UserManual на Z80 написано. Но в 90-е годы в его мало кто видел.
А вообще это в UserManual на Z80 написано. Но в 90-е годы в его мало кто видел.
Что написано? Чем отличаются КОМПовский от неКМОПовского? Этого ни в каких юзермануалах не написано.
В UM написано, что есть баг с командами LD A,I LD A,R. Где было написано, что в CMOS процессорах это исправлено не помню, надо искать. Сейчас проверил на Z84C0020 определялку из статьи Рощина - возвращает 0, т.е. бага с этими командами нет.
solegstar
06.11.2012, 21:36
вот, что показывает profi_test и test 4.30 на оригинальном синхрогенераторе samx6, который поставлялся с софтом к программатору Profi.
Интересно, как такое сумели выяснить.
на ксорках это иногда приводило к неправильным результатом. Так и выяснили - при выполнении этих команд состояние сигнала INT читается...
вот, что показывает profi_test и test 4.30 на оригинальном синхрогенераторе samx6, который поставлялся с софтом к программатору Profi.
а можешь еще для чистоты эксперимента вот этот тест mctest2.tap.zip (http://zx.pk.ru/attachment.php?attachmentid=29641&d=1317715805) запустить и сфоткать что получилось на телевизоре?
И еще такой вопросик - в test 4.30 длина INT (Length of INT) стабильно стоит 32 или если подождать с минуту, то можно заметить как мелькает другое знаение? если мелькает - какое именно?
держи.
PS: переделал тест под диск. для тапа у меня кабеля нет :)
ну вот, параметры развертки для синхрогенератора SAMX6 теперь известны точно:
c_ulaLineTime = 224;
c_ulaFirstPaperLine = 56;
c_ulaFirstPaperTact = 42;
c_frameTactCount = 69888;
а для синхрогенератора SAMX6P (пентагон мод) параметры такие:
c_ulaLineTime = 224;
c_ulaFirstPaperLine = 80;
c_ulaFirstPaperTact = 43; // тут небольшой сдвиг, т.к. у пентагона 68
c_frameTactCount = ???;
мелькает - 28.
а вот это плохо - непонятна длительность INT. Она лежит где-то в пределах 36...38T. А сколько именно, не ясно. А какое значение чаще горит и как часто меняется?
Возник еще один вопрос по профи - может кто-то знает, каково назначение бита D7 на порту #FE в профи? Предполжительно его назначение как-то связано с палитрой
solegstar
07.11.2012, 01:47
а вот это плохо - непонятна длительность INT. Она лежит где-то в пределах 36...38T. А сколько именно, не ясно. А какое значение чаще горит и как часто меняется?
я ошибся, она меняется, когда wait`ится мультикартой ZXMC2, отключил действие мультикарты на WAIT (переключил на механическую клаву с PS2), теперь четко 32.
Возник еще один вопрос по профи - может кто-то знает, каково назначение бита D7 на порту #FE в профи? Предполжительно его назначение как-то связано с палитрой
в профи 5 используется для чтения сигнала бита цвета GX0 с 155РУ2. видимо для определения наличия палитры в сервисном меню профи V2.0. можно найти в эмулях.
---------- Post added at 23:38 ---------- Previous post was at 23:34 ----------
а для синхрогенератора SAMX6P (пентагон мод) параметры такие:
c_ulaLineTime = 224;
c_ulaFirstPaperLine = 80;
c_ulaFirstPaperTact = 43; // тут небольшой сдвиг, т.к. у пентагона 68
c_frameTactCount = ???;
эх, его бы добить до конца, на счастье владельцев 3.2 и 4.х Профиков...
---------- Post added at 23:42 ---------- Previous post was at 23:38 ----------
а почему неизвестен c_frameTactCount? по фотке теста 4.30, что я выкладывал, он 71680.
---------- Post added at 23:47 ---------- Previous post was at 23:42 ----------
PS: уточню еще вот что, при тестах мультиколора, я мультикарту отключал ессно, т.е. результаты без ошибок.
я ошибся, она меняется, когда wait`ится мультикартой ZXMC2, отключил действие мультикарты на WAIT (переключил на механическую клаву с PS2), теперь четко 32.
плохо, проверь не повлияло ли это на картинки mctest2 и profi-test от zebest'a? (не сместилась ли картинка на бордюре относительно экрана? по сравнению с тем что ты привел выше)
Значит длительность INT по всей видимости 39T, но нужно проверять другими тестами.
PS: уточню еще вот что, при тестах мультиколора, я мультикарту отключал ессно, т.е. результаты без ошибок.
а ну тогда все в порядке :)
а почему неизвестен c_frameTactCount? по фотке теста 4.30, что я выкладывал, он 71680.
ну значит 71680 :)
в профи 5 используется для чтения сигнала бита цвета GX0 с 155РУ2. видимо для определения наличия палитры в сервисном меню профи V2.0. можно найти в эмулях.
да, я уже вспомнил. В ZXMAK2 этот бит эмулируется, без него не работает UniCopy by Michael Markowsky.
Однако с этим битом что-то не так. На твоем скрине тест 4.30 показывает что порт #FE в порядке. А в эмуляторе говорит что порт #FE не исправен. Именно из-за этого бита...
А ты можешь проверить, может этот бит GX0 читается только в течении определенного промежутка времени после INT? а в остальное время всегда 1 возвращает?
solegstar
07.11.2012, 02:07
я сейчас тестирую на Профи 3.2, там этот бит не используется из-за отсутствия палитры.
можно будет потестить профи 5, но уже завтра. в 5й версии синхрогенератор изменен. скорее всего при инициализации палитры (она находится в сервисном меню 0 банки ПЗУ), в GX0 записывается 1, для корректной работы программ.
я сейчас тестирую на Профи 3.2, там этот бит не используется из-за отсутствия палитры.
можно будет потестить профи 5, но уже завтра. в 5й версии синхрогенератор изменен. скорее всего при инициализации палитры (она находится в сервисном меню 0 банки ПЗУ), в GX0 записывается 1, для корректной работы программ.
ааа, вот оно в чем дело :) Но это нужно будет проверить
solegstar сделай пожалуйста снимок экрана с синхрогенератором SAMX6 для этого теста, это тест мультиколора для расширенного видеорежима (не забудь отключить ZXMC2 чтобы лишних вайтов не было). Выравнивание INT на нулевой такт почемуто не работает в этом тесте, но это пока не важно. Интересно по строкам сравнить
Запускается из трдоса RUN "mcprofi" CODE
я вот только не совсем понял - это что, на чб экране Профи 3.2 можно мультиколоры цветные делать??? :eek:
да, судя по тому что бордюрные эффекты повлияли на изображение основного экрана, ты это тестил на PROFI 3.XX, я правильно понял?
Исходя из скрина, в расширенном видеорежиме процессор чем-то замедляется, ты отключал на время теста ZXMC, чтобы wait'ов не было?
Интересно посмотреть результаты и на 5.XX
Такое пожелание пришло в голову - хорошо бы кроме плагинов к виртуальной машине (=устройств) можно было бы делать еще плагины к эмулятору. Вот, скажем, есть у меня такой плагин - просмотрщик бейсик-программы (в аттаче, если что. Писанное за 5 минут уродство, но был довольно полезен при оцифровке кассет). Идеологически это ну совершенно не устройство, это именно что расширение эмулятора. И очень лень добавлять его заново каждый раз при выборе другой конфигурации через wizard :)
Да и отладчик - это же тоже совсем не устройство.
Было бы, как мне кажется, логично разделить плагины по возможности их реализации в железе. Если что-то может быть спаяно (или хотя бы теоретически с точки зрения здравого смысла может) - то это BusDevice, иначе - какой-нить VmPlugin.
solegstar
09.11.2012, 00:05
Вот что получилось с Профи 5, результаты настолько неоднозначные, что просто нет слов. :( снимки во вложении - это режим 128 с отключенной памятью и режима асинхронности, т.е. третьего кварца и понятное дело без теста мультиколора в расширенном экране.
В тесте zebest`a наблюдаем черный бордюр на том же проце + отсутствие мультиколора, как с закрытыми портами, так и с открытыми.
В архиве те же тесты, но с отжатой кнопкой CP/M, т.е. с открытыми портами и третьим кварцом, там всё НЕ статично, т.е. мультиколор постоянно плывет (waitится жестко видимо) и скорее всего будет зависеть от частоты третьего кварца.
по схеме электрической принципиальной v3.2, wait`ы попадают на проц только в турборежиме (без переделок печатной платы), c системного разъема от плат расширения. мультикарту я ессно отключал, турборежимом не пользовался. я ж говорил, что в расширенном экране, там своя часть прошивки синхрогенератора и используется кварц на 12мгц вместо 14.
хм, значит в расширенном видеорежиме строка не 224 такта занимает
---------- Post added at 22:51 ---------- Previous post was at 22:43 ----------
В тесте zebest`a наблюдаем черный бордюр на том же проце + отсутствие мультиколора, как с закрытыми портами, так и с открытыми.
странно, может палитра какими-то outами в порт портится
а мультиколор для расширенного видеорежима не пробовал?
Update:
По моим подсчетам, в расширенном видеорежиме, у PROFI 3.xx строка 192 такта.
Скорректировал тест для мультиколора, solegstar запусти пожалуйста вот этот вариант
Запускается соответственно из трдоса: RUN "mcprofi2" CODE
solegstar
09.11.2012, 02:43
я думаю с Профи 5 стоит пока подождать с реальными таймингами, т.к. синхрогенератор SAMX12 кривоватый. Тормоз еще тот. Думаю стоит сделать для Профи 5 тайминги такие же, как в 3.2. Попробую сделать его более похожим на один из клонов, а вообще есть на форуме синхрогенератор PR503PEN, но это модификация, некая смесь 3.2 и 5, на него тоже не стоит ориентироваться, он ближе к пентагону, но всё равно не то. Хотя комп с ним ведет себя значительно шустрее! спасибо alvis`у, который, в то далекое время переделал его.
результат во вложении.
а побольше картинку можно? тут же-ж пикселы рассматривать нужно :)
---------- Post added at 03:15 ---------- Previous post was at 02:48 ----------
Да, похоже что так. Скорректировал и свой тест.
Осталось подкорректировать эмууль??
подкорректировал, но пока похоже не все совпадает, нужно по фотке с большим разрешением сравнивать...
http://savepic.su/2853668.png
При включении расширенного экрана, кроме 12Мгц кварца для видеоконтроллера есть ещё тонкость. Цвет бордер делается инверсный. Не знаю для чего это было сделано, но это идёт с версии 3.2 И ещё есть различие версий 5.02 и 5.03 в режиме спектрума. На 5.02 без турбо и при 2-х кварцах на проц не поступает WAIT, в 5.03 даже при 2-х кварцах wait есть, если его убрать в режиме 3.5Мгц - комп замечательно работает. В турбе оно понятно, что wait нужен. При 3-х кварцах в 5.02 wait будет при отжатой on/off, т.к. в 5.02 выбор кварца делается именно этой кнопкой (нажата - для проца юзаем кварц 14Мгц/2 отжата - третий/2). У 5.03 не так. Кварц выбирается видеорежимом. 256x192 (ZX) - кварц 14. 512/240 - 3-й кварц.
Все равно, 115% скорости дают о себе знать, и идентичности точно не будет :(((((((((((((((((
115% скорости связаны с тем что в расширенном видеорежиме один кадр занимает 59904 такта, а не 69888 (как в обычном). А эмулятор сейчас не поддерживает смену частоты прямо во время работы, для этого нужно доработать цикл фрейма. Поэтому частота прерываний в эмуляторе при переключении не меняется и соответственно для теста это выглядит как 115%.
Но на мультиколор это не должно влиять
---------- Post added at 11:49 ---------- Previous post was at 11:41 ----------
поправил картинку в моём предыдущем сообщении, если честно, не думал что возникнут трудности с увеличением изображения, ведь предыдущие картинки, так же были размазаны из-за фильтров видеовхода+масштабировани .
о, спасибо, теперь стало видно в чем проблема - я немного ошибся с началом развертки строки - есть смещение
и скорее всего будет зависеть от частоты третьего кварца.
однозначно будет и это нужно учитывать. Но боюсь может не ограничиться ТОЛЬКО частотой третьего кварца, а упереться еще и в набор используемой логики...
Alexander Makeev, А ATM Turbo 2+ и PentEVO с поддержкой HDD нет в планах добавить в ZXMAK2?
Возможно . Но тем не менее между твоим эмулем и моим профи-ком - 56 строк разницы судя по тесту. И ? Расширенное видео-ПЗУ вроде никто не редактировал.
Печалька?
а ты какую версию тестил? Из исходников собирал? я для исправленной еще релиз не делал, т.к. исправлено еще не полностью
---------- Post added at 17:06 ---------- Previous post was at 17:03 ----------
Alexander Makeev, А ATM Turbo 2+ и PentEVO с поддержкой HDD нет в планах добавить в ZXMAK2?
для ATM2 нужно добить менеджер памяти, т.к. у него довольно запутанное управление страницами (по крайней мере для человека не работавшего на нем), а документации по особенностям работы с памятью в ATM2 маловато. Видеорежимы уже реализованы.
Может здесь чего найдете. http://atmturbo.nedopc.com/ Или с автором сайта можно попробовать связаться, думаю он не откажет в помощи
т.к. у него довольно запутанное управление страницами
Выкладывал где то недоделанную пентеву, там менеджер есть
---------- Post added at 21:45 ---------- Previous post was at 21:44 ----------
Во, нашел (http://zx.pk.ru/showthread.php?p=518803#post518803)
Во, нашел (http://zx.pk.ru/showthread.php?p=518803#post518803)
а где ROM файл pevo.rom взять? Ну и ROM файл для ATM2 тоже...
и в каком порядке в нем страницы лежат?
а где ROM файл pevo.rom взять?
официальный, тут (http://zx-evo-fpga.googlecode.com/svn/trunk/rom/zxevo.rom), страницы не помню точно как лежат, вроде предпоследние 4 страницы с сервисом.
официальный, тут (http://zx-evo-fpga.googlecode.com/svn/trunk/rom/zxevo.rom), страницы не помню точно как лежат, вроде предпоследние 4 страницы с сервисом.
а для ATM2?
а для ATM2?
http://atmturbo.nedopc.com/emulator/unreal/us_roms.zip
xBIOS который
что-то я не пойму, а этот модуль памяти PentEvo совместим с ATM2?
Разве в ATM2 все окна могут маппится на любую страницу RAM/ROM?
а этот модуль памяти PentEvo совместим с ATM2?
у петево немного расширен атм мапер, и да в каждое окно может мапиться ROM/RAM и даже триггер 3Dxx может срабатывать, щас сырок октрою скажу отличия
---------- Post added at 01:46 ---------- Previous post was at 01:40 ----------
void WrXXF7(ushort addr, byte val, ref bool iorqge)
{
if (mem.SHADOW && iorqge)
{
#if LOG
System.Diagnostics.Debug.WriteLine("OUT(" + addr.ToString("X4") + ")," + val.ToString("X2"));
#endif
iorqge = false;
if ((addr & 0x0800) != 0) // xFF7
{
pages[mem.P7FFD_MEMMAP] = (byte)((val | 0xC0) ^ 0xFF);
type[mem.P7FFD_MEMMAP] = ((val & 0x40) == 0) ? RamType.Rom : RamType.Ram;
dos_7ffd[mem.P7FFD_MEMMAP] = ((val & 0x80) != 0);
}
else // x7F7
{
pages[mem.P7FFD_MEMMAP] = (byte)(val ^ 0xFF);
type[mem.P7FFD_MEMMAP] = RamType.Ram;
}
UpdateMapping();
}
У АТМ только эта часть порта есть, соотвественно нет способа записать старшие 2битна номера страницы, и получается всего 1мб, ну еще по мелочам каких то кусков нет
if ((addr & 0x0800) != 0) // xFF7
{
pages[mem.P7FFD_MEMMAP] = (byte)((val | 0xC0) ^ 0xFF);
type[mem.P7FFD_MEMMAP] = ((val & 0x40) == 0) ? RamType.Rom : RamType.Ram;
dos_7ffd[mem.P7FFD_MEMMAP] = ((val & 0x80) != 0);
}
---------- Post added at 02:10 ---------- Previous post was at 01:46 ----------
Нет порта EFF7, xxBF, xxBE и всей логики связанной с ними, типа принудительного включение 0 страницы в окно 0, включения скрытых портов при выключенном режиме трдос, чтения подключеных страниц
SAM style
10.11.2012, 10:49
Страницы в прошивке ATM2 лежат в таком порядке:
0:basic 48
1:trdos
2:basic 128
3:cp/m
и располагаться должны в последних 4 страницах ПЗУ.
Все прошивки - http://atmturbo.nedopc.com/atmshem.htm#roms
не могу найти описание - каким образом и при каких условиях TRDOS ром маппится в окна на ATM 7.1?
Может кто-то подскажет?
SAM style
11.11.2012, 10:19
PEN=0: во всех банках последняя страница ПЗУ
PEN=1: номер страницы и тип (ПЗУ/ОЗУ) высчитываются из записанных через out FFF7 значений
если в номере страницы, записанном через FFF7 bit6=0 - это ROM, иначе RAM.
если bit7=0 - номер страницы берется из инверсных бит 0..5 записанного для этой банки значения
если RAM и bit7=1, берутся инверсные биты 3..5 из карты памяти, и неинверсные 0..2 из порта 7FFD
если ROM и bit7=1, берется инверсные биты 1..5 из карты памяти, а вместо 0го бита подставляется сигнал DOSEN (1 при подключении трдос, 0 при отключении, всегда 1 в режиме CPM).
void atmSetBank(ZXComp* comp, int bank, unsigned char val) {
unsigned char page = ~val & 0x3f; // inversed b0..5
if (val & 0x80) {
if (val & 0x40) {
page = (page & 0x38) | (comp->prt0 & 7); // mix with 7FFD bank;
} else {
page = (page & 0x3e) | (comp->dosen ? 1 : 0); // mix with dosen
}
}
memSetBank(comp->mem,bank,(val & 0x40) ? MEM_RAM : MEM_ROM, page);
}
если в номере страницы, записанном через FFF7 bit6=0 - это ROM, иначе RAM.
если bit7=0 - номер страницы берется из инверсных бит 0..5 записанного для этой банки значения
тогда непонятен такой кейс:
1) ставим точку останова на #5C92
2) делаем сброс
3) из менюшки ATM заходим в Spectrum 128
3) из менюшки Spectrum 128 заходим в BASIC 48
4) выполняем RANDOMIZE USR 15616
5) вываливаемся на точке останова - замаплено пзу trdos
6) делаем шаг - маппится пзу basic 48 (чтение из ram)
7) делаем шаг - происходит вывод в порт out (#00F7),#00 и вот тут происходит непонятное...
По логике должна замаппиться страница пзу #7, т.к. D7=0, D6=0, D0,D1,D2=0 (инверсное значение 7). Однако в unreal остается замаппленой страница пзу basic 48... В чем-же дело, что не так? :v2_confu:
SAM style
11.11.2012, 16:13
тогда непонятен такой кейс:
1) ставим точку останова на #5C92
2) делаем сброс
3) из менюшки ATM заходим в Spectrum 128
3) из менюшки Spectrum 128 заходим в BASIC 48
4) выполняем RANDOMIZE USR 15616
5) вываливаемся на точке останова - замаплено пзу trdos
6) делаем шаг - маппится пзу basic 48 (чтение из ram)
7) делаем шаг - происходит вывод в порт out (#00F7),#00 и вот тут происходит непонятное...
По логике должна замаппиться страница пзу #7, т.к. D7=0, D6=0, D0,D1,D2=0 (инверсное значение 7). Однако в unreal остается замаппленой страница пзу basic 48... В чем-же дело, что не так? :v2_confu:
OUT (F7),A не срабатывает, т.к в этот момент dosen становится 0, теневые порты закрыты
IN (F7) после него тоже не срабатывает как открытый и должен быть воспринят как IN (FF) - чтение атрибутов
OUT (F7),A не срабатывает, т.к в этот момент dosen становится 0, теневые порты закрыты
IN (F7) после него тоже не срабатывает как открытый и должен быть воспринят как IN (FF) - чтение атрибутов
вот, теперь заработало :v2_dizzy_drink:
---------- Post added at 16:11 ---------- Previous post was at 14:38 ----------
Обновил эмулятор до версии 2720 (http://zxmak2.codeplex.com/releases/view/97564):
- добавлено отображение расширенной информации об ошибках RZX
- исправлен лаг возникавший при сбросе PROFI ULA 5.xx
- исправлено поведение сброса
- исправлены тайминги PROFI ULA (thanks to solegstar)
- исправлена обработка порта #FF для PROFI ULA
- добавлен модуль памяти ATM2 (v7.10)
- добавлены новые предустановленные конфигурации: ATM Turbo 2+, PROFI 3.XX
http://savepic.su/2941367.png
http://savepic.su/2900465.png
Doronetty
12.11.2012, 14:08
В режиме АТМ2+ не могу загрузить ни одну программу: отказывается читать диски. С грехом пополам получается ещё по команде DIR прочитать каталог (и то надо выбрать Ignore после сообщения об ошибке чтения), а вот запустить какую-либо программу уже не удаётся!
Да, в CP/M к сожалению пока так. Но начало уже есть, что радует. И еще, есть Honey Commander для ATM2. Он висит в памяти, если из него запустить программу, а потом сделать reset, то вместо полного сброса, происходит возврат в HC. Так происходит на реальной машине и на Unreal тоже работает.
Есть другие версии HC переделанные под другие машины, после сброса не работают. В аттаче для ATM2 - рабочая 100% А еще в ATM2 covox был, но это уже не очень важно.
Doronetty
12.11.2012, 18:37
У АТМ-1 тоже Covox был. И у Profi тоже ;)
В режиме АТМ2+ не могу загрузить ни одну программу: отказывается читать диски. С грехом пополам получается ещё по команде DIR прочитать каталог (и то надо выбрать Ignore после сообщения об ошибке чтения), а вот запустить какую-либо программу уже не удаётся!
какая-то проблема с вг93 похоже, при включенной галке No Delay работает, но медленно и с ошибками
Doronetty
13.11.2012, 01:20
И TD0 образы не понимает до кучи. Хотел проверить работоспособность Q-DOS, но увы...
А в режиме АТМ-1 есть одна странная фича (присутствует также в Unreal) - если запустить ста-а-арый копировщик дискет АТМ-turbo Copy 1.04 (его можно найти на сайте Максима Тимонина), который был написан именно под АТМ-1, он стартует с правильными шрифтами (не под АТМ или под АТМ2+ вместо букв выводится абракадабра), но вот диски он в упор не видит - пишет "диск не принадлежит к системе TR-DOS" и всё тут!
P.S: А вообще прогресс более чем радует! Запустил Galaxian под старый вариант 48К - бипер звучит именно так, как надо (а ведь он со времён Рауля (эмулятор R80 под DOS) так правдоподобно не звучал)!
И TD0 образы не понимает до кучи. Хотел проверить работоспособность Q-DOS, но увы...
странно, TD0 должен понимать, дай-ка ссылку на этот образ
---------- Post added at 00:51 ---------- Previous post was at 00:14 ----------
А в режиме АТМ-1 есть одна странная фича (присутствует также в Unreal) - если запустить ста-а-арый копировщик дискет АТМ-turbo Copy 1.04 (его можно найти на сайте Максима Тимонина), который был написан именно под АТМ-1, он стартует с правильными шрифтами (не под АТМ или под АТМ2+ вместо букв выводится абракадабра), но вот диски он в упор не видит - пишет "диск не принадлежит к системе TR-DOS" и всё тут!
проверил - работает, брал тут: TURBO COPY 1.04 (http://atmturbo.nedopc.com/download/trdos/copy1_04/copy1_04.zip)
http://savepic.su/2948285.png
Doronetty
13.11.2012, 13:20
странно, TD0 должен понимать, дай-ка ссылку на этот образ
проверил - работает, брал тут:
Однако, моя извиняецца :rolleyes:
Насчёт TD0 - действительно всё работает, я просто забыл, как Q-DOS запускать (надо из-под TR-DOS, а я упорно пытался из CP/M). Меня ввела в заблуждение надпись, возникающая при монтировании TD0 образа "Sector data had bad CRC". Что забавно, эта надпись возникает, а иногда и не возникает при монтировании одного и того же образа!
Насчёт АТМ-turbo Copy 1.04 - совсем интересно: попробовал по твоей ссылке - да, он видит каталоги многих дисков. За исключением тех TRD, которые я в своё время создавал утилитой AMD. А ведь я пользовался АТМ-turbo Copy 1.04, которая была на диске, купленном мной в 1992 году в самой фирме АТМ и который я перевёл с помощью вышеупомянутой утилиты в TRD файл. Поэтому-то меня и насторожило, когда Copy 1.04 наотрез отказалась читать диск, на котором она находилась и с которого запускалась! :confused:
В качестве наглядного пособия прикрепил этот самый образ диска двадцатилетней давности
iceoflame
13.02.2013, 14:04
Error 11:59:50.159 Exception System.IO.FileNotFoundException: Невозможно загрузить файл или сборку "Microsoft.DirectX.Direct3D, Version=1.0.2902.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" или один из зависимых от них компонентов. Не удается найти указанный файл.
в ZXMAK2.Controls.Render3D..ctor()
в ZXMAK2.Controls.RenderVideo..ctor()
в ZXMAK2.Controls.FormMain.InitializeComponent()
в ZXMAK2.Controls.FormMain..ctor()
в ZXMAK2.Program.Main(String[] args)
---
Full StackTrace:
в ZXMAK2.LogAgent.Error(Exception ex)
в ZXMAK2.Program.Main(String[] args)
---------- Post added at 12:04 ---------- Previous post was at 12:03 ----------
Win 7. Вроде все по инструкции делал. Вообще для таких вещей дотнет это зло.
Не стоит DX9
---------- Post added at 13:14 ---------- Previous post was at 13:13 ----------
Вообще для таких вещей дотнет это зло.
Есть эмуляторы без дотнета
iceoflame
13.02.2013, 15:25
Таки помогло.
Win 7. Вроде все по инструкции делал. Вообще для таких вещей дотнет это зло.
Ошибка потому что DirectX 9 не установлен.
А в чем зло заключается? :)
iceoflame
14.02.2013, 11:11
А в чем зло заключается? :)
На целевом компе дот нет может быть не установлен.
Вообще для таких вещей дотнет это зло.
На целевом компе дот нет может быть не установлен.
Таки каких именно вещей?
Exception System.IO.FileNotFoundException: Невозможно загрузить файл или сборку "Microsoft.DirectX.Direct3D, Version=1.0.2902.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Имеет смысл наверное или при запуске или при этом краше выводить более человеческое сообщение что не стоит DX9, это один из основных кактусов на который наступают те кто первый раз сталкиваются с эмулем
На целевом компе дот нет может быть не установлен.
Начиная с висты дотнет идет уже в голой системе, в старых системах - да может такое быть.
---------- Post added at 01:39 ---------- Previous post was at 01:38 ----------
Имеет смысл наверное или при запуске или при этом краше выводить более человеческое сообщение что не стоит DX9, это один из основных кактусов на который наступают те кто первый раз сталкиваются с эмулем
Да, нужно будет прикрутить обработку такой ситуации.
sergio78
15.02.2013, 18:04
Начиная с висты дотнет идет уже в голой системе, в старых системах - да может такое быть.[COLOR="Silver"]
у меня этот дотнет не стоит, никакой. я его специально, как и жабу выпиливаю всегда.
abelenki
05.03.2013, 16:42
только что попробовал ZXMAK2. наконец-то нормальный full screen с корректным соотношением сторон на мониторе 16:9.
и отличная организация в виде привычной виртуальной машины.
единственное, что расстроило: reset делается через слишком сложную комбинацию (не удаётся задать Ctrl+Alt+Ins через JoyToKey на геймпаде), а также нет клавишного шортката на Open (типа, Crtl+O).
в остальном - ZXMAK2 очень порадовал, автору большое спасибо.
(с UnrealSpeccy прощаемся).
единственное, что расстроило: reset делается через слишком сложную комбинацию (не удаётся задать Ctrl+Alt+Ins через JoyToKey на геймпаде), а также нет клавишного шортката на Open (типа, Crtl+O).
Да, кастомных шорткатов очень не хватает.
С одной стороны понятно почему всё сложно - из-за совместимости с клавами профи и атм. Но с другой стороны большинство все равно используют пентагоновский конфиг, в котором весь ряд F1..F12 свободен. Как-то бы это разрулить по-хитрому...
abelenki
05.03.2013, 17:10
Но с другой стороны большинство все равно используют пентагоновский конфиг, в котором весь ряд F1..F12 свободен. Как-то бы это разрулить по-хитрому...
абсолютно согласен. сделать бы ресет на F10 или F12, а открытие файла на F3 (как в UnrealSpeccy), цены бы ZXMAK2 не было... ;)
---------- Post added at 19:10 ---------- Previous post was at 19:05 ----------
ещё забыл уточнить про залипание клавиш. есть ли в ZXMAK2 что-то на подобии:
Matrix=1 ; emulate keymatrix effect
я всегда в 0 переводил, чтобы вдвоём можно было синклер-джойстиками играть, и при этом клавиши не перебивали бы друг друга.
сейчас проверить возможности нет, будем играть с товарищем только в эти выходные. ;)
abelenki
05.03.2013, 19:25
ещё последнее в догонку: сейчас запустил свою любимую сборку Renegade 1-3 в режиме по умолчанию (Pentagon 128). все работают нормально, кроме Renegade 1 (музыка AY играет без тормозов, движения игроков притормаживают).
с чем это может быть связано?
Alex Rider
05.03.2013, 21:42
(с UnrealSpeccy прощаемся).
Alexander Makeev, у твоего эмуля начинается "вторая жизнь" :) Этоя к тому, что долгое время уже в этой ветке было тихо, будто бы и не интересен он был никому. Я вот тоже думаю собраться с силами и переехать. Буду пытаться к отладчику привыкать. Ты готов делать имплементить всякие реквесты по юзабилити?
SoftLight
05.03.2013, 22:15
Я бы с удовольствием попрощался с Unreal если-бы в ZXMAK2 был бы такой-же удобный отладчик в реальном времени, когда ты можешь править регистры и выполнять отладку.
Alex Rider
05.03.2013, 22:20
Я бы с удовольствием попрощался с Unreal если-бы в ZXMAK2 был бы такой-же удобный отладчик в реальном времени, когда ты можешь править регистры и выполнять отладку.
Ага. Самое первое, что хочется :(
все работают нормально, кроме Renegade 1 (музыка AY играет без тормозов, движения игроков притормаживают).
с чем это может быть связано?
в фирменной версии был опрос порта #FF
abelenki
05.03.2013, 22:31
в фирменной версии был опрос порта #FF
да, запустил на пресэте ZX Spectum 128, потом usr 15616 в бейсике (чтобы в tr-dos войти) - игра работает с правильной скоростью.
НО!! какая-то ерунда с экраном в этом режиме. он стал меньше, не пиксел-в-пиксел, текст разрушается местами, графика, соответственно, тоже. вроде как, видео-режим должен быть стандартным и у пентагона, и у оригинального спекки 128.
(запускаю на 1360x768, full screen, keep proportion, vblank sync).
да, запустил на пресэте ZX Spectum 128, потом usr 15616 в бейсике (чтобы в tr-dos войти) - игра работает с правильной скоростью.
НО!! какая-то ерунда с экраном в этом режиме. он стал меньше, не пиксел-в-пиксел, текст разрушается местами, графика, соответственно, тоже. вроде как, видео-режим должен быть стандартным и у пентагона, и у оригинального спекки 128.
(запускаю на 1360x768, full screen, keep proportion, vblank sync).
У разных моделей разный размер бордюра. Вобщемто не проблема сделать размер бордюра настраиваемым, для этого нужно прикрутить гуевые контролы для изменения параметров ULA. Вопрос только в том как удобней сделать такую настройку. Сейчас размеры бордюра просто забиты как константы. Кроме размеров бордюра там еще туча параметров которые можно настраивать, вот и вопрос как это все сгрупировать.
Эмулятор не меняет размеры окна, а растягивает картинку на весь размер окна (или на весь экран в полноэкранном режиме). Если включен флаг keep proportion, то при растягивании сохраняется пропорция высоты к ширине.
Подогнать размеры окна под размеры экрана спектрума можно через менюшку View->Size
Включение Smoothing решит проблему некратного размера окна/экрана и эмулируемых размеров экрана спектрума. Это фильтр. Правда изображение смазаным будет - не всем нравится. По другому можно решить только ручной подгонкой размеров бордюра под конкретный дисплей...
---------- Post added at 00:41 ---------- Previous post was at 00:32 ----------
Я бы с удовольствием попрощался с Unreal если-бы в ZXMAK2 был бы такой-же удобный отладчик в реальном времени, когда ты можешь править регистры и выполнять отладку.
чтобы менять регистры и отлаживать по шагам, нужно остановить выполнение, кнопки в отладчике такие:
F5 - Break
F7 - Step Into
F8 - Step Over
F9 - Run
точки останова ставятся кликанием на левом бордюре области с дизассемблером.
Т.е. нажимаешь в окне отладчика F5 и редактирование регистров станет доступным (кликаешь дважды по регистру и вводишь новое значение).
Отладчик не менялся с 2005 года :)
В текущей версии репозитория Adlers прикрутил новый отладчик с дополнительными командами, но я его не осилил, поэтому вернул старый отладчик назад, а отладчик Adlers сделал отдельным девайсом. Чтобы поменять отладчик, в конфигурации спектрума нужно удалить устройство Debugger и добавить устройство Debugger Adlers. Т.е. отладчик можно рассматривать просто как устройство на шине.
Есть еще вариант GDB сервера (https://github.com/atsidaev/z80gdbserver) для подключения внешним отладчиком к эмулируемому спектруму. Суть в том что добавив это устройство в конфигурацию спектрума вместо отладчика можно использовать любую отладочную среду поддерживающую GDB. У меня таких сред нету, поэтому довести этот плагин до ума не могу. Этот плагин возможно немного устарел и возможно его нужно немного подправить.
У меня были идеи сделать плагин для отладки из Visual Studio. Но разобраться как это работает руки не дошли. :)
Для спринтера кстати расширенный отладчик, в нем Дмитрий вывел какие-то внутренние регистры спринтера
Alex Rider
06.03.2013, 11:28
чтобы менять регистры и отлаживать по шагам, нужно остановить выполнение, кнопки в отладчике такие:
Я вчера подебажил ZXMAK, сообразил примерно как работает отладчик. Надо бы больше плюшек в него всяких. Попробовал прикрутить отладчик Adlers... Он развивается, вообще? В последней версии тупо отключены точки прерывания. Если их включить, они все равно не отображаются в окошке. И это не смотря на комментарии автора плагина на codeplex о том, что он устранил там какое-то зависание, кажется. Но по задумкам Adlers'овский отладчик получается мощнее, чем "стоковый", это радует.
Попробовал прикрутить отладчик Adlers... Он развивается, вообще? В последней версии тупо отключены точки прерывания. Если их включить, они все равно не отображаются в окошке. И это не смотря на комментарии автора плагина на codeplex о том, что он устранил там какое-то зависание, кажется.
про отладчик Adlers'а я прокомментировать не могу, я привык к старому, мне в нем удобнее. Единственное чего в стандартном отладчике иногда нехватает - останова по доступку к заданной ячейке памяти или порту, технически такой брейкпоинт поставить можно, но нужно немного усовершенствовать механизм генерации событий брейкпоинта, чтобы гуй смог понять что за точка останова сработала :)
По поводу отладчика Adlers, судя по коду, в окошке отображаются только расширеные брейкпоинты, с доп. условием. Ставятся они командой br, насколько я понял, например br PC==#0004. Судя по коду еще есть команды ld, ds, del, on, off, savbrs, loadbrs
Alex Rider
07.03.2013, 13:54
По поводу отладчика Adlers
А у тебя нет информации по поводу судьбы этого отладчика? Будет он поддерживаться, фикситься, принимаются ли пожелания? И, кстати, по поводу твоего тоже? :)
А у тебя нет информации по поводу судьбы этого отладчика? Будет он поддерживаться, фикситься, принимаются ли пожелания? И, кстати, по поводу твоего тоже? :)
Ну это у Adlers нужно узнавать, на сайте можешь его спросить.
Свой отладчик я давно хотел переписать, но пока некогда. Вначале нужно гуй с настройками доделать.
Обновил до версии ZXMAK2 2721 (https://zxmak2.codeplex.com/releases/view/104757):
- fix ROM loader to support clipped RAW images
- ATM memory: add ADC READY bit emulation (needs for mARTtest.rom)
- source: move general debugger UI classes to Hardware/General
- source: small refactoring for engine (added support of complex breakpoints)
- added new debugger (Adlers)
- fix reset stuck (breakpoint->open debugger->no-key up event)
- add new ULA device for Scorpion Green PCB (vertical timing - tested, horizontal timing not tested yet)
Как оказалось, поспешил залить ULA для зеленого скорпиона, уже исправил. Новая версия 2722 (https://zxmak2.codeplex.com/releases/view/104812)
abelenki
10.04.2013, 07:06
а в следующей версии можно ожидать этого?:
Вобщемто не проблема сделать размер бордюра настраиваемым, для этого нужно прикрутить гуевые контролы для изменения параметров ULA. Вопрос только в том как удобней сделать такую настройку. Сейчас размеры бордюра просто забиты как константы. Кроме размеров бордюра там еще туча параметров которые можно настраивать, вот и вопрос как это все сгрупировать.
уж очень хочется погонять стандартный ZX Spectrum 128 с бордюром Pentagon (дабы запускать фирменные игры, которые глючат на Pentagon'е).
Если я хоть что-то понимаю в мультиколорах, то скажу, что тайминги зелененького Скорпиона по отношению к той же демке Сатисфэкшн весьма приблизительные.
В режиме Пентагона - идеальные, в скорпионе - разъезжаюЦЦо... Не?
и да, по поводу NoDelay - в Пентагоне нормально , в Скорпионе - висит при включении этой опции. Дохтор, как то неаккуратненько?
В чем заключается приблизительность? Запускать дему нужно с железом скорпиона
С Nodelay - проблема эмуляции вгшки. Т.к. проверять не на чем, причину найти сложно
Ну ладно, фиг с этим NoDelay, новот строки не совпадают в мультиколоре, неужели это так трудно заметить. Артефактов более, чем дофига... Скрин надеюсь не надо прикладывать?
уж наверное запускаю с железом скорпиона, смотрю, потом то же самое запускаю с железом пентагона. Или я первый раз эмууляторы вижу?
В эмуле кроме того, что выбираешь железо Scorpion'а нужно еще ULA поменять на Scorpion green, ибо по дефолту он Scorpion Yellow.
sergio78
10.04.2013, 22:46
а почему ZXMAK2 не запускается? win xp, отсутствие .NET или SSE2 виновато?
отсутствие .NET
угу
---------- Post added at 22:19 ---------- Previous post was at 22:19 ----------
DX9 надеюсь все же установлен...
sergio78
10.04.2013, 23:24
угу
---------- Post added at 22:19 ---------- Previous post was at 22:19 ----------
DX9 надеюсь все же установлен...
конечно, без него никуда. а вот .NET выпилен намеренно подчистую. неперивариваю я его.
а вот .NET выпилен намеренно подчистую. неперивариваю я его.
http://blog.kaplangmat.com/wp-content/uploads/2012/06/Facepalm-polar-bear.jpg
solegstar
11.04.2013, 00:52
sergio78, третий раз будет? http://zx-pk.ru/showpost.php?p=576595&postcount=681 мы это поняли и с первого раза если что...
выпилен намеренно подчистую. неперивариваю я его.
Предлагаю модераторам выпилить sergio78 намеренно подчистую, неперивариваю я его.
Три последних явления народу было с попыткой тролинга, так что товарища в зад послать пора
ачтаааа, у скорпионов бордюр 4-t ? :(( и жевтых и зеленых??? а у желтых еще и порты тормозятся? или как? Если под зеленый скорпион бордюр еще как то подстроить могу, то на желтом вообще фигня получаеЦЦО. ну в эмууле то.
у желтых на каждом цикле M1 процессор тормозится до четного такта. По горизонтальным таймингам зеленого никакой информации пока нет, так что реализовано пока "как есть"
Updated: ну вот, оказалось горизонтальные тайминги тоже соответствуют :)
sergio78
13.04.2013, 11:45
Предлагаю модераторам выпилить sergio78 намеренно подчистую, неперивариваю я его.
Три последних явления народу было с попыткой тролинга, так что товарища в зад послать пора
я не против, так как сюда очень редко захожу. а тебе предлагаю выдать медаль, за Величайшие заслуги по нахождению тролей, на форуме.
:v2_wink2:
Обновил эмулятор до версии 2723 (https://zxmak2.codeplex.com/releases/view/105011):
- improved Add Device dialog
- fix window update in paused mode
- small code refactoring
http://savepic.org/3304628.png
Abadonna
15.04.2013, 11:26
Поставил на днях на Windows7x64, с когда-то давно поставленными DirectX и .NET 3.5. По инструкции с первой странички даже скачал Dx9 и .NET2, но не понадобились :) - все заработало и сразу. По крайней мере, игры заиграли, звук зазвучал и большинство игр из скачанного откуда-то архива запустилось. Спасибо автору :)
На первой страничке было упоминание, что можно добавлять свое железо в этот эмулятор. Возможно, этот вопрос и поднимался, но в первых 5 страницах не нашел, дальше не успел прочитать. Может, ткнете носом, где об этом рассказывается, если не трудно? Заранее весь спасибо :)
Пардон, увидел ответ :)
На первой страничке было упоминание, что можно добавлять свое железо в этот эмулятор. Возможно, этот вопрос и поднимался, но в первых 5 страницах не нашел, дальше не успел прочитать. Может, ткнете носом, где об этом рассказывается, если не трудно? Заранее весь спасибо :)
Пардон, увидел ответ :)
проще всего просто скачать исходники эмулятора и прямо в проекте эмулятора реализовать свое новое устройство, унаследовав класс BusDeviceBase. Так будет проще всего отлаживать.
Примеры устройств можно посмотреть в папке Hardware.
Эмулятор также понимает плагины - это классы унаследованные от BusDeviceBase, скомпилированные в отдельной DLL. Такие DLL эмулятор ищет в папке Plugins, рядом с ZXMAK2.exe
Это к вопросу о том, как написать свое устройство для эмулятора.
Если вопрос о том как конфигурировать свой вариант спектрума из набора уже существующих устройств, то для этого нужно зайти в меню VM->Settings. В открывшемся окне можно добавлять/удалять устройства. Главное чтобы Memory и ULA устройсво было одно :)
В этом-же окне можно просто выбрать готовую конфигурацию спектрума - с помощью кнопки Wizard
Обновил до версии 2724 (https://zxmak2.codeplex.com/releases/view/105162):
- refactoring (довольно серьезно переработан код ULA девайсов, для облегчения настроек и удобства управления видео-режимами)
- performance optimizations
- add PROFI keyboard with extended keys
http://savepic.org/3303078.png
Alexander Makeev, можно ли добавить полноценную эмуляцию компьютеров Байт и Байт-01? Какие надо будет тесты на реальном железе позапускаем :)
Alex Rider
16.04.2013, 17:52
А можно в рамках следующего "штурма" сделать переназначаемые шоткаты на все экшены? А то сейчас даже не всегда понятно какие кнопки в принципе есть (например, в дебагере). Файл маппинга кнопок будет хорошим help'ом по шоткатам (а если еще сделать автогенерацию html по мап-файлу как в uneral...)
abelenki
16.04.2013, 18:15
а также, можно ли всё-таки сделать видео-режим оригинального ZX Spectrum "нормальным"? а то он даже в оконном режиме имеет искажения.
скриншоты прилагаются.
а также, можно ли всё-таки сделать видео-режим оригинального ZX Spectrum "нормальным"? а то он даже в оконном режиме имеет искажения.
View-Size-выбрать заново размер.
Он не обновляется автоматически при смене ULA-устройства.
abelenki
16.04.2013, 19:04
View-Size-выбрать заново размер.
Он не обновляется автоматически при смене ULA-устройства.
спасибо, помогло.
но в full screen'е на 1360x768 всё равно беда. :( хотелось бы, чтобы можно было делать бордюр Pentagon'а в режиме ZX Spectrum 128.
спасибо, помогло.
но в full screen'е на 1360x768 всё равно беда. :( хотелось бы, чтобы можно было делать бордюр Pentagon'а в режиме ZX Spectrum 128.
можно включить View->Smoothing, тогда при любых размерах окна изображение будет нормальным за счет сглаживания, но картинка будет немного размыта, как на телевизоре. По другому - только через изменение размеров бордюра, а его размеры сейчас только через код задаются
---------- Post added at 23:50 ---------- Previous post was at 23:48 ----------
А можно в рамках следующего "штурма" сделать переназначаемые шоткаты на все экшены? А то сейчас даже не всегда понятно какие кнопки в принципе есть (например, в дебагере). Файл маппинга кнопок будет хорошим help'ом по шоткатам (а если еще сделать автогенерацию html по мап-файлу как в uneral...)
хотел сделать в этой версии, но времени не хватило :rolleyes:
---------- Post added 17.04.2013 at 00:10 ---------- Previous post was 16.04.2013 at 23:50 ----------
Alexander Makeev, можно ли добавить полноценную эмуляцию компьютеров Байт и Байт-01? Какие надо будет тесты на реальном железе позапускаем :)
к сожалению у меня практически нет информации про эту машину, предлагаю обсудить в этой ветке - Эмуляция "БАЙТ" (тайминги, карта памяти) (http://zx.pk.ru/showthread.php?t=21142)
abelenki
17.04.2013, 06:06
можно включить View->Smoothing, тогда при любых размерах окна изображение будет нормальным за счет сглаживания, но картинка будет немного размыта, как на телевизоре.
про smoothing понятно, но мне не нравится размытое изображение.
По другому - только через изменение размеров бордюра, а его размеры сейчас только через код задаются
ну что ж, будем ждать и надеяться, что когда-нибудь его можно будет менять через GUI.
Обновил до версии 2725 (https://zxmak2.codeplex.com/releases/view/105338), добавлен клон "Байт". Тайминги и ROM маппинг вроде работают, но церикопик пока не проходит.
http://savepic.org/3374103.png
Обновил эмулятор до версии 2727 (https://zxmak2.codeplex.com/releases/view/105391).
- fix ULA Byte - now cerikopik protection works
- fix ULA Byte - port #FE selection
Теперь эмулятор проходит защиту церикопик, правда для этого нужно отключить Tape Traps и Tape Autoplay. Т.к. небольшие задержки влияют на загрузку.
http://savepic.org/3405798.png
Результаты (http://zxbyte.ru/test_speed.zip) работы теста быстродействия, который используется в "Церикопике".
Пояснения: первая колонка цифр - результат в области памяти #4000-#7FFF, вторая колонка - в области памяти #C000-#FFFF. Третья колонка - разница между первым и вторым значениями. В Церикопике делается проверка на разницу не менее 128 единиц. Если разница меньше, чем 128, то считается, что компьютер не "Байт".
В архиве также скриншот результатов работы теста на доработанном до 1024К "Байте", без торможения памяти. Как видно, резьтаты теста для него почти не отличаются в различных областях памяти. На таком "Байте" Церикопик работать не станет.
а можешь выложить программу, которой ты измерения делал? Тут важны все мелкие ньюансы. Даже где стек располагался во время выполнения...
а можешь выложить программу, которой ты измерения делал? Тут важны все мелкие ньюансы. Даже где стек располагался во время выполнения...
Программу выложил в том же архиве, с результатами. Может быть я не очень точно сэмулировал среду "Церикопика", но в данном случае важен факт "разбежки" в значениях между верхней и нижней памятью.
Обновил эмулятор до версии 2728 (https://zxmak2.codeplex.com/releases/view/105470):
- refactoring sound classes
- refactoring disk emulation classes
- remove flaw version of CreateContentionTable
- fix ULA Delta and ULA Byte (WriteMemory4000 double call)
- fix ULA ATM and ULA PROFI compatibility with non-native memory
- fix ULA Byte contentions (collect contention info with circuit ula simulation)
Еще одно обновление - 2729 (https://zxmak2.codeplex.com/releases/view/105473), добавил упущенные детали:
- Добавлен бипер Байта (у него особая дешифрация порта)
- Добавлен модуль памяти BYTE 128
- Исправлена совместимость модулей памяти с TRDOS (маппинг BYTE теперь работает только для ROM48)
- Добавлена готовая модель байта 128К с TRDOS'ом (не все умеют вручную добавлять BDI :) )
http://savepic.org/3346156.png
не все умеют вручную добавлять BDI
Вообще-то в предыдущем билде TR-DOS не работал, и я вообще подумал, что он конфликтует по портам ВИ53. Я уж не говорю по необходимость 128й-памяти. Так что уж не надо думать, что все вокруг AAA.
Выбирается BYTE 128K + TRDOS, но в TRDOS не перезагружается :-(
Hi. I have problem to run ZXMAK2 in Windows XP SP2:
Gelip, To work ZXMAK2 need to install DirectX 9.0...
WinXP SP2 have DirectX 9.0c default. ZXMAK2 need other update to fix the problem:
directx_Jun2010_redist (http://www.microsoft.com/en-us/download/details.aspx?id=8109)
Is VI53 sound emulation working in "Byte"?
I have suggestion. Please increase BORDER top and bottom in windowed 100%. Border size is not the same and it looks ugly.
P.S. Sound emulation VI53 working in other emulator b2m but playing is too fast
http://zx-pk.ru/showthread.php?t=20158&page=3
Выбирается BYTE 128K + TRDOS, но в TRDOS не перезагружается :-(
Сброс всегда идет обычный, т.е. эмулируется контроллер дисковода с перемычкой обычного сброса
Hi. I have problem to run ZXMAK2 in Windows XP SP2:
This is because some components of the DirectX 9 is missing from your system. Just run the DirectX 9 Redistributable web installer and it will check, download and install all required components. The web installer is available on microsoft web site: http://www.microsoft.com/en-us/download/details.aspx?id=35
---------- Post added at 23:48 ---------- Previous post was at 23:38 ----------
Is VI53 sound emulation working in "Byte"?
no, VI53 is not implemented yet.
But memory emulation (with ROM remap feature) and ULA emulation (with multicolor and slow memory) is done.
Also you need to disable tape traps and autoplay on the tape window to pass Tserikopik protection :)
Also you need to disable tape traps and autoplay on the tape window to pass Tserikopik protection :)
Yes it's working but I found one problem:
1. Open Tape window
2. Click anywhere in main window program e.g. menu File
3. Now if you click icon Use Trap or Use Auto Play in Tape window this not switch on button
4. Only when you click second time the same icon - button is switched
For this reason, I had trouble loading the game with Cerikopik :-)
Abadonna
26.04.2013, 18:22
Александр, не могли бы Вы осветить еще один вопрос? Посмотрел в эмуляторе список подключенного оборудования и нашел там "Tape recorder". Это что за зверь такой? Попробовал сделать SAVE "dfdfd" - полоски бегут, нравится, а откуда потом грузить это "dfdfd"? Идея была в том, чтобы выгрузить на реальны спек загруженное в эмулятор :) В исходниках не рылся, на удачу спрошу: насколько трудоемко будет прикрутить в качестве магнитофонного порта, скажем, парочку линий LPT или COM1? Или еще какого аппаратного порта на Ваш выбор? :) Спасибо :)
П.С. Или такая функция уже имеется, просто я, как обычно, изобретаю очередной велосипед? :)
Alex Rider
26.04.2013, 23:29
Alexander Makeev, хочется еще одно пожелание: заимпрувить FormMachineSettings.initConfig() и BusManager.LoadConfig() так, чтобы при смене конфига через Wizard либо существующие и в старом, и в новом конфиге девайсы не пересоздавались, либо при пересоздании переносились сеттинги. Что конкретно хочется - чтобы из BDI не высовывались дискеты при смене одной машины с дисководом на другую. Надо при отладке мультиколоров под разные клоны.
P.S. ZXMAK - лучший эмуль с точки зрения точности эмуляции ULA (да и еще много в чем). Спасибо тебе огромное за него!
Александр, не могли бы Вы осветить еще один вопрос? Посмотрел в эмуляторе список подключенного оборудования и нашел там "Tape recorder".
не "Tape recorder",а "Tape player", он только проигрывать умеет :)
Это что за зверь такой? Попробовал сделать SAVE "dfdfd" - полоски бегут, нравится, а откуда потом грузить это "dfdfd"? Идея была в том, чтобы выгрузить на реальны спек загруженное в эмулятор :) В исходниках не рылся, на удачу спрошу: насколько трудоемко будет прикрутить в качестве магнитофонного порта, скажем, парочку линий LPT или COM1? Или еще какого аппаратного порта на Ваш выбор? :) Спасибо :)
П.С. Или такая функция уже имеется, просто я, как обычно, изобретаю очередной велосипед? :)
а зачем? Записываешь касету в WAV файл и открываешь потом WAV файл эмулятором... :v2_wink2:
---------- Post added at 01:16 ---------- Previous post was at 01:10 ----------
чтобы при смене конфига через Wizard либо существующие и в старом, и в новом конфиге девайсы не пересоздавались, либо при пересоздании переносились сеттинги. Что конкретно хочется - чтобы из BDI не высовывались дискеты при смене одной машины с дисководом на другую.
девайсы и так не пересоздаются - если тип девайса такой-же, то используется экземпляр девайса от предыдущей конфигурации. За счет этого можно поменять ULA, но память при этом не очистится :)
В BDI дискеты высовываются чтобы если на них была запись, не потерять записанное. При высовывании дискеты происходит выгрузка изменений из памяти на диск.
---------- Post added at 01:23 ---------- Previous post was at 01:16 ----------
P.S. ZXMAK - лучший эмуль с точки зрения точности эмуляции ULA (да и еще много в чем).
спасибо :v2_rolley но в некоторых ULA еще есть небольшие баги с отображением (например бордер на spectrum +2A/+3), ими я и планирую заняться в ближайшее время :)
Alex Rider
27.04.2013, 04:12
девайсы и так не пересоздаются
Нда, не доковырял сырцы. Я посмотрел, что все они от шины отваливаются, думал, и убиваются заодно.
В BDI дискеты высовываются чтобы если на них была запись, не потерять записанное.
Может, не стоит их совсем высовывать? Ну или всовывать обратно при запуске новой конфигурации...
Abadonna
27.04.2013, 09:32
не "Tape recorder",а "Tape player", он только проигрывать умеет :)
а зачем? Записываешь касету в WAV файл и открываешь потом WAV файл эмулятором... :v2_wink2:
Да, точно, плеер, а не рекордер. Наоборот, у меня была идея перенести из эмулятора в реал. На РС много спековского софта, а вынести наружу его не всегда удается :) Вот и подумал, авось так получится :)
Запись tap файлов - это конечно очень полезная фича, но требует наработки соответствующих алгоритмов для детекции начала/конца записи и т.п.
Сейчас у меня более приоритетные задачи - доработать расчет таблиц для рендеринга, отрефакторить движок, добавить новые отладочные фичи (останов по доступу к ячейке памяти/порту и т.п.), переписать отладчик (код которого написан еще в 2001 году и рефакторингу с того времени не подвергался)
Запись tap файлов - это конечно очень полезная фича, но требует наработки соответствующих алгоритмов для детекции начала/конца записи и т.п.
в эмулях обычно делается перехват ПЗУшной процедуры записи.
в эмулях обычно делается перехват ПЗУшной процедуры записи.
а куда прикрутить сохранение есть идеи? Т.е. как ты видишь процесс записи тап файла?
Например:
1) Запустить эмулятор
2) ????
3) ????
4) набрать SAVE "AAA" CODE 16384,6912
5) ????
6) ????
7) взять готовый тап файл
SAM style
28.04.2013, 08:52
а куда прикрутить сохранение есть идеи? Т.е. как ты видишь процесс записи тап файла?
Например:
1) Запустить эмулятор
2) ????
3) ????
4) набрать SAVE "AAA" CODE 16384,6912
5) ????
6) ????
7) взять готовый тап файл
Посмотри, как у меня в Xpeccy:
Конец блока определяется по паузе дольше 1 фрейма. После окончания записи блока определяется возможность перевести сигналы в байты (наличие пилот, sync1, sync2, [1], [0], sync3).
Например:
1. запустить эмулятор
2. сохранить блок ПЗУ-шной процедурой
3. через F2 сохранить ленту как tap
а куда прикрутить сохранение есть идеи? Т.е. как ты видишь процесс записи тап файла?
Например:
4) набрать SAVE "AAA" CODE 16384,6912
делается перехват ПЗУшной процедуры по адресу 1218. ix,de,a
после этого выскакивает окошко с выбором имени файла и пути для его сохранения.
если выбран существующий файл то данные пишутся в его конец.
а вот что удобней для последующих сохранений ?
1. пока эмулятор работает все дальнейшие сохранения вести в этот файл.
например мы загрузили программу из нескольких блоков в копировщик и потом сохраняем их в один TAPфайл.
2. выдавать запрос при каждом новом сохранении ?
для отгрузки состояния в игре возможно удобней несколько разных TAPфайлов вместо одного
а куда прикрутить сохранение есть идеи? Т.е. как ты видишь процесс записи тап файла?
Чуть переделать Tape Player, чтоб получился тот самый Tape Recorder.
При записи эмулятор отлавливает записанный блок, и вставляет его в конец списка блоков. Теперь
а) Вводя LOAD "" и шелкнув два раза по сохраненному блоку, мы можем его загрузить - этот функционал уже есть.
б) Выделив нужные блоки можем нажать новую кнопку Save и сохранить TAP-файл, состоящий из этих блоков.
Обновил эмулятор до версии 2730 (https://zxmak2.codeplex.com/releases/view/105808), из ключевых изменений:
- исправлена ошибка в мультиколоре (фиксился пентагон, но теоретически затронуло все модели);
- добавлен новый режим масштабирования, в котором пикселы всегда имеют фиксированный размер. Поможет тем у кого в полноэкранном режиме раньше пикселы были разного размера;
- размеры всех ULA установлены в 320x256, чтобы не дергать постоянно View->Size;
- доработано сохранение SZX файлов, теперь сохраняется модель, которая определяется по типу модуля памяти;
- переработан код построения таблиц рендеринга
http://savepic.org/3419271.png
Alexander Makeev, объясните пожалуйста, почему нельзя выбрать эмуляцию "Delta C" в эмуляторе ?
только ula от дельты выбирается, а пзу нет, в результате на начальном экране я вижу что угодно но только не "С 1989 Delta C".
как это можно исправить ?
Alexander Makeev, объясните пожалуйста, почему нельзя выбрать эмуляцию "Delta C" в эмуляторе ?
только ula от дельты выбирается, а пзу нет, в результате на начальном экране я вижу что угодно но только не "С 1989 Delta C".
как это можно исправить ?
память у дельты обычная, поэтому можно взять 48к модуль и подложить свое пзу. Для этого нужно создать папку ROMS рядом с эмулятором, положить туда пзу от дельты и скопировать файл ~mapping.xml из ROMS.PAK. После этого открыть ~mapping.xml в текстовом редакторе, найти настройки для модуля памяти ZX48, они выглядят так:
<Model name="ZX48">
<Page name="SOS" image="48.rom" offset="0x0000" length="0x4000"/>
</Model>
в данном случае используется образ пзу 48.rom, заменяешь 48.rom на имя файла с образом пзу от дельты и готово. :smile:
не помогает.
пзу дельты всёравно не появляется в списке, а если поставить какое-либо другое пзу с ula от дельты то наблюдаем вот такую картину:
http://img600.imageshack_.us/img600/3310/94819651.jpg
также прилагаю созданый "roms.pack"
не помогает.
пзу дельты всёравно не появляется в списке, а если поставить какое-либо другое пзу с ula от дельты то наблюдаем вот такую картину:
http://img600.imageshack_.us/img600/3310/94819651.jpg
также прилагаю созданый "roms.pack"
картинка такая потому что у ula дельты ширина бордюра по бокам больше чем у остальных, при этом включено масштабирование Fixed Pixel Size и двойная ширина не умещается в области окна, поэтому масштаб переключается на одинарную ширину. Не доглядел когда прописывал одинаковые размеры всем улам, в след. версии исправлю :)
если сдеалать size 200% все станет на свои места.
По поводу ромов, в след. версии постараюсь сделать возможность задавать имя набора ромов в ромпаке в конфигурации машин.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot