Глупый вопрос можно? а поддержка SD колнтроллера от Vinxru только к РК прикручена?
Вид для печати
Глупый вопрос можно? а поддержка SD колнтроллера от Vinxru только к РК прикручена?
Вопрос по эмуляции бипера (сейчас больше интересует специалист с z80, но вопрос общий). При обновлении состояния бипера учитывается ли конкретная команда или при обнаружении обращения к биперу сразу меняется состояние? Например в командах ld (hl),a {7 тактов} и ld (адрес),a {13 тактов} учет изменения состояния бипера будет сразу или как бы в последних тактах, как на реале? Если запись в бипер только одинаковыми командами, то без разницы, но если шимить миксом разница может быть.
ivagor, к сожалению, в текущей реализации сразу :( Кстати, это может также вызвать неточности при эмуляции, например, Вектора c Z80 при использовании OUT (C),r вместо OUT (nn),A
Кстати, встречный вопрос на случай, если дойдут руки исправить это поведение: в 8080 запись в память вроде бы всегда выполняется в последнем машинном цикле, и можно, в принципе, просто учитывать полную длительность инструкции. А как в Z80? Есть ли инструкции, в которых запись происходит где-то в середине?
В shld, push 2 записи, так что не только в последнем цикле.
Кроме shld, push еще xthl, call, rst, у z80 еще добавляются ld (nn),de/bc/sp/ix/iy. Наверно запись в последнем цикле все же более приемлемый компромисс, чем в начале.
Да, я не совсем точно выразился, я больше имел в виду запись одного байта, которые обычно применяются для обращения к портам, в том числе отображаемым на память. С вышеприведенными командами понятно, что запись двух байтов разнесена по циклам... Действительно, компромиссом была бы запись в последнем цикле. Хотя вроде бы были нюансы, если ничего не путаю, с параллельным исполнением в ряде случаем цикла выборки следующей инструкции и последнего цикла предыдущей?
uart, кстати, напомни, в твоем эмуляторе как сделано? Обращения к памяти четко привязаны к тактам и циклам процессора?
Насколько знаю, элементы конвейеризации есть у 8080/8085/z80, но касаются внутренних арифметических операций. Т.е. завершение предыдущей арифметики совмещается с началом цикла выборки следующей команды. Для записи наружу проца влияния не вижу.
Что касается двухбайтных записей, то xthl в некоторых случаях может представлять интерес для замены комбинации xri ...\ sta. А на 8085 это даже быстрее, чем xri ...\ out, но это уже не про Emu80.
На стеке пусть значение бипера 0, в H или L значение бипера 1. Когда меняем значение бипера делаем xri ...\ sta (если текущее значение бипера в A, что может потребовать дополнительных команд) или xthl. Не говорю, что это хороший вариант в общем случае, но иногда может быть интересен.
Да, еще могут быть wait такты. Причем в зависимости от того куда обращаешься и/или когда.
Рад представить предновогодний релиз эмулятора, встречайте версию 4.0.498 от 30.12.2024!
Загрузить windows-сборку.
Все варианты загрузки, в том числе версии для Linux и MacOS - на сайте.
Исходники: https://github.com/vpyk/emu80v4
Изменения в версии 4.0.498:
Легенда:
+ Нововведение
* Изменение / улучшение
- Исправлен баг
! Известная проблема
- - Исправлена ошибка при записи на диск последних секторов на дорожке, что могло приводить к повреждению файлов в образе диска
- - Исправлена ошибка в генераторе шума AY-3-3910, появился стук колес в игре "Стоп-кран" на Векторе
- - Исправлена сборка с помощью GCC 13
- - Исправлено сохранение опции "Выход в отладчик по недокументированным командам"
- - Исправлена неработоспособность переключения коррекции PAR на Партнере с включенным МЦПГ
- - Исправлено открытие ссылок в окне "О программе"
- * Обеспечена возможность сохранения размера окна эмулятора в режиме изменяемого пользователем размера (Alt-0), добавлена новая опция, настраивающая это поведение
- * Добавлены новые режимы масштабирования окна 1.5x и 2.x, а также соответствующие пресеты
- * Поддержка реального значения FPS на мониторах FreeSync/G-Sync
- * Переработаны настройки видео, уменьшен фрейм эмуляции, улучшена отзывчивость на слабых ПК в случае нехватки мощности процессора
- * Возможность плавного ускорения и замедления работы эмулятора до 16x
- * Режим полной скорости по Alt-End (просто End сейчас увеличивает текущую скорость в 4 раза)
- * Добавлен режим Стерео для AY
- * Поддержка схемы ВГ75 PIXELTRON на РК-86, включается в конфигурационном файле (см. справку по платформе)
https://zx-pk.ru/threads/35812-ot-ch...hema-kod).html- * Добавлена возможность чтения файлов формата TSX наряду с CAS для формата записи на ленту MSX. Включено по умолчанию для SP580
- * Добавлена конфигурация для стандартного Специалиста с процессором Z80
- * Специалист SP580 выделен в отдельную платформу
- * Специалист SP580: обновлено ПЗУ до последней версии
- * Специалист SP580: доработана smart-раскладка клавиатуры
- * Апогей: добавлен режим черно-белого выхода цветного Апогея (градации серого)
- * Добавлена информация о текущем загруженном образе диска во всплывающей подсказке ко кнопкам выбора образа
- * Добавлена возможность "выхода" из web-версии эмулятора
- * Добавлена опция очистки информации о нажатых клавишах при выходе из отладчика для предотвращения "залипания"
- * Обеспечена возможность сборки с Qt 6.x
- * В web-версии сейчас меняется адрес страницы при запуске программ, обеспечена возможность перехода по истории браузера с помощью кнопок "назад" и "вперед"
В этой версии добавлена возможность плавно настраивать скорость эмуляции. Для грубого ускорения/замедления служат клавиши Alt-PgUp/PgDn, для точного -
Alt-Up/Down. Максимальный коэффициент ускорения или замедления - 16x. Восстановить нормальную скорость можно с помощью клавиш Alt-Home.
Если же нужна максимальная скорость, то можно использовать Alt-End для режима "полный газ". Просто по клавише End (без Alt) осталось ускорение 4x.
Если у вас есть монитор и видеокарта с поддержкой технологии FreeSync/G-Sync, то в новой версии эмулятора будет возможно в полной мере
оценить применяемые в некоторых играх и демках эффекты gigascreen и плавное движение, синхронное с частотой кадров. Если при этом вы планируете
ускорять работу эмулятора, не забудьте в настройках снять или увеличить ограничение на максимальную частоту кадров. Обратите внимание, что
режим FreeSync/G-Sync часто корректно работает только в полноэкранном режиме!
На платформах, поддерживающих AY-звук, сейчас доступен режим стерео (ABC). По умолчанию режим стерео включен, можно выключить в разделе настроек "Разное".
Если вас раздражали "залипающие" клавиши при отладке, возможно, вам поможет новая опция, очищающая признак нажатия при выходе из отладчика.
Опция по умолчанию также включена.
Если вам не хватало промежуточных масштабов окна эмулятора, сейчас доступны два новых режима - 1.5x и 2.5x. Кроме того, эмулятор сейчас корректно
запоминает размер и положение окна при изменении его размеров вручную и восстанавливает эти параметры при следующем запуске.
Если вы запускаете эмулятор на старом ПК, процессор которого не может обеспечить 100% скорость эмуляции, то вам должна понравиться значительно
возросшая отзывчивость эмулятора в этих условиях.
Серьезно доработана эмуляция Специалиста SP-580. CityAceE опубликовал большое количество программ для него здесь:
Можете погонять их в эмуляторе, практически все программы мультиблочные, с заставками.
Формат CAS может не в полной мере соответствовать формату записи на ленту SP580, поэтому была добавлена поддержка формата TSX.
Возможно в дальнейшем программы будут сконвертированы в этот формат. Уже сейчас можно загружать файлы в этом формате везде, где доступна загрузка в CAS.
Web-версия эмулятора на сайте https://online.emu80.org также обновлена.
Всех с наступающим Новым Годом!
Увеличение скорости - это здорово, но почему максимум в 16 раз?
ivagor, мой процессор (Intel 12 семейства) для большинства платформ вытягивает примерно 18-20x. Мне подумалось, что на данный момент 16x будет разумным ограничением. Если надо больше, можно использовать full throttle, да и то не факт, что получится значительно больше.
Неудобно (и непонятно для меня), что Alt+End не фиксирует режим ускорения, в отличие от Alt+Home/PgUp/PgDn. И, кстати, в меню про Alt+End и End нет упоминаний.
Хотелось бы две вещи для "полного газа":
1. Ускорить до предела за счет отключения звуковой подсистемы и облегченного обновления экрана (1-2 раза в секунду, может еще что-то отключить).
2. Вместо "Макс." выводить оценку, во сколько раз ускорение.
ivagor, в моем понимании типичное применение режима полного газа - это быстро пропустить какой-то нудный участок - заставку, какую-то длительную отрисовку и т.п. В этом случае удобнее использовать именно нефиксируемую кнопку, так удобнее вовремя отпустить. В каких случаях удобнее будет с фиксацией? Может быть, даже предложишь, на какие кнопки можно это повесить и как управлять? Вообще сделать несложно, сложно сделать удобно.
Упоминание про кнопки есть во всплывающей подсказке к соответствующим кнопкам на тулбаре.
Насчет замедления обновления экрана и отключения звуковой подсистемы пока ничего не могу навскидку ответить, надо подумать. Но на первый взгляд какие-то простые решения не могут существенно повлиять на скорость.
Насчет оценки скорости попробую что-то придумать.
Понятно, мне интересно совершенно другое применение - быстрый прогон программ (например 1, 2, 3), которые на стандартной скорости выполняются часами. Если вместо 24 часов выполняется за полтора, то это конечно хорошо, но хотелось бы побыстрее.
Что касается клавиш, может не надо отдельно 4x и максимум? Сделать End - временный максимум (как сейчас Alt+End), а Alt+End - с фиксацией. Ну или еще что-то задействовать, это не принципиально.
Немного офтоп, но в тему эмуляторов.
Как решать вопрос переключения окна в полноэкранный режим? Все привыкли, что это Alt+Enter, но эти клавиши могут быть использованы самой программой, которая работает на эмулируемой системе, и переключение может вызвать ложное срабатывание?
Titus, не могут, Alt выделен под нужды эмулятора и не назначается на клавиши эмулируемой системы.
Titus, я не понял вопрос. Какое решение? Клавиши жестко заданы, раскладку можно посмотреть по Alt-F1, пользователь самостоятельно ничего назначить не может, по крайней мере в текущих версиях.
Багфикс-релиз 4.0.501 от 13.01.2025.
Windows-сборка: https://emu80.org/v4beta/Emu80qt_40501.zip
Исходники: https://github.com/vpyk/emu80v4
Все варианты загрузки, в том числе версии для Linux и MacOS - на сайте (https://emu80.org/distr/)
Изменения в версии 4.0.501:
- Исправлена ошибка загрузки мультиблочных LVT-файлов на ПК «Львов»
- Исправлено возможное пропадание звука на Linux
- Исправлена работоспособность wx/sdl и lite-версий на Linux
- Исправлена ошибка при сборке с помощью MSVC 2015
- Исправлена передача в командной строке Windows-версий файлов, содержащих в пути кириллицу или другие unicode-символы
- Другие мелкие исправления
Web-версия эмулятора на сайте https://online.emu80.org также обновлена.
Очередной релиз эмулятора, версия 4.0.520 от 26.04.2025!
Windows-сборка: https://emu80.org/v4beta/Emu80qt_40520.zip
Экспериментальная Windows-сборка (Qt6): https://emu80.org/v4beta/Emu80qt_40520_qt6.zip
Исходники: https://github.com/vpyk/emu80v4
Все варианты загрузки, в том числе версии для Linux и MacOS - на сайте (https://emu80.org/distr/)
Изменения в версии 4.0.520:
+ Добавлена базовая поддержка ZX Spectrum 48K и 128K
+ Новый механизм связывания объектов в конфигурационных файлах (connect)
+ Добавлена поддержка пользовательских glsl-шейдеров
+ Разработан шейдер bwcrt, имитирующий черно-белый телевизор,
также в комплект эмулятора добавлены несколько готовых шейдеров,
портированных из других источников
+ Новая опция окна "Серый фон". Фон окна сейчас выключен по умолчанию
+ Новая опция "Убрать цвет" для принудительного вывода цветного изображения
в градациях серого (кроме пользовательских шейдеров)
+ Специалист: конфигурация с SD-контроллером по схеме vinxru
+ Специалист: новая конфигурация для Специслиста с SD-адаптером по схеме HWM PVV и SDOS.
+ Возможность ограничить в настройках перечень предалагаемых платформ
+ Добавлена опция переключения пользовательского интерфейса на платформо-независимый стиль Fusion
(может быть необходим для использования темной темы оформления)
* Режим смешивания полукадров сейчас работает с учетом гаммы sRGB, старое поведение выделено в отдельную опцию
Цвета в режимах gigascreen сейчас должны отображаться более корректно
* ПК8000: в режиме 0 сейчас отображаются 8 символов в последнем столбце, как на реале (только в режиме с бордюром)
* Уменьшена вероятность "залипания" клавиш в некоторых случаях в режиме smart-раскладки
* В диалоге "О программе" добавлена информация об используемой версии Qt, компиляторе, платформе, ядре, архитектуре, платформе Qt и стиле оформления
* Переработан код управления окнами в Qt-версии, минимизированы проблемы с сохранением размеров и положением окон
* Полноценная поддержка темной темы при сборке с последними версиями Qt, а также в web-версии.
Доступность темной темы в Qt зависит от ОС, версии Qt и используемого стиля оформления
* РК-86: добавлен режим цветности "Апогея"
* Для SD-контроллера vinxru реализована независимость от регистра имен файлов в эмулируемой файловой системе
(актуально для Linux etc., имена в смешанном регистре не поддерживаются)
* С панели инструментов убраны редко используемые кнопки "Открыть wav" и "Захват печати"
- Исправлена ошибка, иногда вызывавшая падение при запуске
- Исправлены возникавшие в некоторых случаях артефакты на границе изображения
- Исправлены проблемы совместимости с Qt6
- Исправлена возникавшая при некоторых условиях проблема с пропаданием курсора мыши при открытии диалоговых окон
- Добавлены в диалог настроек отсутствовавшие там режимы цветности для ПК "Апогей", "РК-86" и "Электроника КР-04"
(переключение режимов через меню и горячие клавиши было доступно)
- Вектор: исправлено поведение при сбросе по F11
- Орион: исправлен автоматический выбор конфигурации Ориона при открытии файлов Ориона
В этой версии в Emu80 была добавлена поддержка ZX Spectrum 48К и 128К, однако эмуляция этого компьюера несколько ограничена:
в частности, не поддеживается contended memory, из-за чего не работает мультиколор, не поддерживается загрузка tzx-фавйлов с нестандартными блоками и т.п.
Тем не менее базовой эмуляции этого должно быть достаточно для запуска большинства игр для этих компьютеров.
Поддержка ZX Spectrum для Emu80 не является приоритетом, угнаться за специализированными эмуляторами ZX Spectrum сложно,
однако я буду не против получать обратную связь и сообщения о проблемах в эмуляции этого ПК.
Новый механизм связывания позволит во многих случаях при изменениях в эмулируемой платформе
обходиться редактированием conf-файла, на затрагивая исходный код. Он был опробован на ZX Spectrum,
в дальнейшем его применение будет расширено по мере добавления эмуляции новых устройств.
Также сейчас в настройках эмулятора можно ограничить перечень предлагаемых вариантов платформ, если вам не нужны они все.
Добавлена поддержка пользовательских glsl-шайдеров, которые должны располагаться в каталоге shaders.
Их формат в основном совпадает с форматом шейдеров проекта Retroarch. Можно попробовать использовать шейдеры из этого проекта со следующими ограничениями:
- не поддерживаются цепочки шейдеров и glsp-файлы, только glsl
- параметры шейдера при необходимости меняются в самом шейдере, диалог конфигурирования не предусмотрен
- билинейное сглаживание всегда включено
- для корректной работы МЦПГ на Партнере и старого режима смешивания цветов шейдеры должны корректно обрабатывать альфа-канал
Некоторые поставляемые с эмулятором шейдеры:
* crt-geom и сrt-hyllian - имитация цветного ЭЛТ-дисплея
* emu80-bwcrt-* - имитация черно-белого монитора или телевизора, разработан специально для Emu80, так как готового аналога найти не удалось
* pixellate - улучшенный аналог используемого по умолчанию сглаживания границ пикселей, обеспечивает четкую картинку и отсутствие муара при любом масштабировании
Я бы поставил этот вариант по умолчанию, если бы не довольно высокие требования к видеоадаптеру, препятствующие его использованию на старых компьютерах.
Новая опция "Убрать цвет" также довольно требовательна к видеоадаптеру: если у вас старый ПК, эмулятор может притормаживать с этой опцией.
Реализован перевод изображения в градации серого в соответствии с гаммой sRGB.
Также гамма sRGB сейчас учитывается при включении режима смешивания полукадров, что обеспечивает правильные цвета в gigiscreen-режимах.
Старое поведение оставлено для совместимости и выделено в отдельную опцию.
В этом релизе впервые добавлена экспериментальная сборка для Windows 64 bit с Qt6. Она будет работать только под 64-разядными Windows 10 и 11, однако
поддерживает HiDPI-экраны и темную тему интерфейса. Планируется сделать эту сборку основной, старый же вариант перевести в категорию legacy для использования
в Windows XP/Vista/7/8/8.1. Для использования темной темы интерфейса может потребоваться включить в настройках независимую от платформы тему оформления Fusion,
обеспечивающую одинаковый вид интерфейса в различных ОС.
Web-версия эмулятора на сайте https://online.emu80.org также обновлена.
спасибо за обновления и что продолжаете развивать эмулятор.
если можно хочу попросить добавить в эмулятор два компьютера:
1) Robotron 1715(M)
https://zx-pk.ru/threads/8436-kompyu...5(m)-quot.html
также можно найти образы дисков и информацию на сайте b2m.
2) Искра-1080 Тарту
https://zx-pk.ru/threads/12913-kompy...artu-quot.html
образы дисков в той-же теме.
оба компьютера эмулируются только в emu от b2m.
Интересный компьютер, с удовольствием бы им занялся, но боюсь обещать, и когда дойдут руки - не знаю...
"Искра" еще эмулируется в онлайн-эмуляторе Алексея Морозова:
https://alemorf.github.io/retro_comp...l/russian.html
Честно говоря, ничего про него пока не знаю. А что, для него не существует даже зарубежных эмуляторов?
не существует.
комп простенький, b2m тогда за 10 дней сделал эмулятор.
Эта конфигурация хочет файл sdos_hwmpvv.bin - где бы его взять? или хотя бы на каких адресах он хочет адаптер SD карты? на вроде бы очевидных из конфига F000/F001 - не работает.
Отбой, разобрался. эмулятор не поддерживает бит busy в hwm_pvv, на чем оно успешно висло.
Спасибо за доработки!
виснет вот здесь (sd_proc.inc)
оно после моих ковыряний SDOS оказалось включенным, отключил - заработало.Код:#ifdef MX2
WaitSPI:
LDA SD_CONF_PORT
ANI 040h
JNZ WaitSPI ; ждём окончания сигнала BUSY
#else
NOP
NOP
#endif
просто схема HWM_PVV (по крайней мере та что на плис, https://специалист-пк.рф/index30.html) по окончании сдвига ставит этот бит в 0, а эмулятор всегда отдает FF.
Выложил недостающий файл.
https://github.com/vpyk/emu80v4/raw/...dos_hwmpvv.bin
Новые сборки сделаю чуть позже.
Попробую исправить. Можно попросить виснущий код для отладки, если сохранился?
- - - Добавлено - - -
Конфигурация сборки:
Код:SD_DATA_PORT EQU 0F000H
SD_CONF_PORT EQU SD_DATA_PORT+1
START_ADDR EQU 0D000H
BUF EQU 0DA00h
Достаточно при чтении SD_CONF_PORT возвращать 00xxxxxx - все должно работать. старший бит - 0 = карта вставлена (хотя в исходном SDOS это не проверялось, это я для себя добавил чтобы не ждать пока выдаст ошибку по таймауту если карты нет)
http://sksb3.no-ip.org:8085/sdos.binЦитата:
Можно попросить виснущий код для отладки, если сохранился?
там включены обе проверки - на вставленную карту и на бит busy
Исправил, работает. Изменения в репозитории, бинарные сборки сделаю чуть позже.
Возможно, сразу не реализовал, поскольку оно было в "#ifdef MX2", а поддержку MX2 я почему-то до сих пор не сделал...
Полезная доработка, понравилось, что сразу "NO CARD" выдает.
Багфикс-релиз, версия 4.0.521 от 30.04.2025.
Windows-сборка: https://emu80.org/v4beta/Emu80qt_40521.zip
Экспериментальная Windows-сборка (Qt6): https://emu80.org/v4beta/Emu80qt_40521_qt6.zip
Исходники: https://github.com/vpyk/emu80v4
Все варианты загрузки, в том числе версии для Linux и MacOS - на сайте (https://emu80.org/distr/)
Изменения в версии 4.0.521:
- Специалист: в комплект эмулятора добавлен отсутствовавший файл ROM SDOS
- Z80: исправлена работа регистра R, восстановлена работоспособность игр Twinz и др. на ZX Spectrum
- Для SD-адаптера по схеме HWM_PVV сейчас корректно эмулируется сигнал Ready
- Специалист: восстановлена корректная загрузка и запуск файлов с помощью встроенного
загрузчика в конфигурации с SD-контроллером по схеме Vinxru
- Специалист: опция "Не воспроизводить звук магнитофона" сейчас установлена по умолчанию
для исключения посторонних звуков при работе программ, использующих 8-цветный режим
В свежих версиях появилась неприятная багофича - если навести мышиный курсор на открытое окно отладчика - он через некоторое время пропадает и не появляется пока вслепую не вытащишь его за пределы окна отладчика. причем пропадает даже если возить мышкой в окне отладчика. однозначно проявляется начиная со второго по счету открытия отладчика. винда ХР если что. в 4.0.480 такого не было.
и еще - можно в будущих версиях сделать так чтобы при ресете эмулируемого компа полностью перечитывались файлы с ПЗУ? а то для отладки ПЗУшного кода приходится каждый раз перезапускать весь эмулятор...