1

Тема: Релиз нового эмулятора (ecat3)

Сделал релиз своего эмулятора для основных систем.

Брать тут: https://github.com/Ptr314/ecat3

Чтобы включить Агат, нажмите кнопку с телевизором, выберите Агат-7 и отметьте галочку "Установить по умолчанию".

Пока поддерживается только Агат-7 с дисководом 140 кб. Форматы файлов образов - DSK, HFE, NIB. Для смены образа для начальной загрузки нужно открыть его кнопкой с дискетой в панели, затем сделать холодный рестарт машины.

В Linux и macOS надо, чтобы в фокусе было окно с кнопками, иначе клавиатура не работает. Позднее исправлю.
Хотелось бы, чтобы эмулятор погоняли в разных системах, так как сам я использую только Windows.

Известные проблемы:
- долгая загрузка для некоторых (скорее, многих :( ) дисков.
- часть протестированных программ работает некорректно, в частности, вчера не смог поиграть в Lode Runner, виснет, Игорь говорит, что в нем есть известная проблема с каким-то нестандартным опросом клавиатуры.

Ближайшие планы:
- устранение ошибок эмуляции
- дисковод 840 (чтение работает, запись еще нет)
- Агат-9

Если кто-то все-таки что-то потестирует 🙏, и у него будут замечания, их можно писать сюда, в личку ТГ (https://t.me/ptr314) или в ТГ-канал проекта (https://t.me/ecat_emu).

2 Отредактировано Voldemar0 (15-01-2025 09:58)

Re: Релиз нового эмулятора (ecat3)

Наверное стоило бы тут описать какие-то особенности этого эмулятора:
- В чём его преимущества или отличия от существующих эмуляторов ? Или для чего он был написан ?

{ Лет 20 назад, запускался проект Emuverse 2000, тоже на тему эмуляции многих архитектур в рамках одной программы. И хотя Агат туда добавляли, но я не помню, чтобы это было доведено до ума. Даже сейчас, в вики этого проекта (https://emuverse.ru/wiki/%D0%9A%D0%B0%D … 0%B0%D1%82) в списке портов стоят вопросики. }

Я попробовал запустить eCat (.AppImage, debian x64), что-то происходит, но пока - с точки зрения эмуляции Агата - слишком много заявленных недоработок (в первую очередь это поддержка дисководов и форматов образов - без этого сложно проверить остальное). Из незаявленных, сходу: окно дисплея имеет фиксированный неизменяемый размер, а изображение в нём меняет размер в зависимости от настроек эмулятора. В результате либо картинка не входит в окно либо остаются поля с мусором.

Дальше, скорее всего, пойдут вопросы по точности эмуляции клавиатур Агата, раскладок клавиш, работы регистров контроллера клавиатуры в зависимости от модели компа.

Потом тонкости работы контроллеров базового ОЗУ. Будет ли поддержка эмуляции эпловских фич на базе Агат-9 ?

Отклики неиспользуемых регистров (в зависимости от архитектуры).

Десятичный режим 6502 - там любят ошибки делать.

Точность эмуляции контроллеров флопиков, включая то, что не описано в доках, а известно только из анализа схем.

Эмуляция мышей/пультов.

Совмещения дисплейных режимов и таймеры.

3

Re: Релиз нового эмулятора (ecat3)

Voldemar0 пишет:

Наверное стоило бы тут описать какие-то особенности этого эмулятора:
- В чём его преимущества или отличия от существующих эмуляторов ? Или для чего он был написан ?

Кратко написал на странице проекта, но, в целом, примерно следующее: гибкость, открытый ЧИТАЕМЫЙ исходный код, поддержка разных ОС, удобный интерфейс. У основных существующих эмуляторов обычно что-то из этого отсутствует.

Voldemar0 пишет:

Я попробовал запустить eCat (.AppImage, debian x64), что-то происходит, но пока - с точки зрения эмуляции Агата - слишком много заявленных недоработок ...

К сожалению, под Линуксом пока есть проблемы в интерфейсе, это в бэклоге доработок на первом месте.

Voldemar0 пишет:

Дальше, скорее всего, пойдут вопросы по точности эмуляции клавиатур Агата, раскладок клавиш, работы регистров контроллера клавиатуры в зависимости от модели компа.

Я сейчас ориентируюсь на работу именно с Агатом, на остальное пока не вижу смысла тратить время, есть emu80, он активно развивается.

Voldemar0 пишет:

Десятичный режим 6502 - там любят ошибки делать.

Процессор я отлаживал отдельно специальными тестами, эмулятор их проходит отдельно как 6502 и 65C02 именно для десятичного режима. Но дополнительно протестировать никогда не помешает.

Voldemar0 пишет:

Совмещения дисплейных режимов и таймеры.

Этим я сейчас занимаюсь, уже переписал нужные процедуры, тестирую.

4

Re: Релиз нового эмулятора (ecat3)

Попробовал скачать свежую версию, которая с SDL2:
работает, но не отображается виртуальный дисплей.
Скачал версию с QT - работает нормально.

Что SDL2 использует такого, чего не использует QT ?
Вроде SDL лежит в основе DOSBOX и прочего. Но DOSBOX работает без проблем на любых драйверах.

OpenGL у меня нет, скорее всего: на видео стоят дефолтные драйвера с UBUNTU.

5 Отредактировано Voldemar0 (16-10-2025 07:39)

Re: Релиз нового эмулятора (ecat3)

Ещё насчёт картинки на виртуальном дисплее: тут как будто с пропорциями проблема: на реальном Агате знаки выше чем шире, а в эмуле я сейчас увидел обратную пропорцию. Думал, может быть это от размера и пропорций окна зависит, но - нет. Окно меняю по разному, картинка перестраивается с сохранением пропорций.

В графике та же ситуация: в загрузочной картинке ИКП дискеты должны быть квадратными.

Напомню, что у Агата пиксель - это прямоугольник, а не квадрат. Стороны 4:3. Что в текстовом что в графическом режиме.

--

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

Т.е. например:
Режим MGR, 128x128 точек, пропорции 4:3. Значит идеальная картинка будет при размере отображаемой области:
128x4 = 512
128x3 = 384
512x384 точки
Если у нас окно отображения имеет размер больше 512x384 , то рисуем в нём именно так (каждая точка - прямоугольник 4x3).

Если же окно имеет размер больше 1024x768, то можем ещё умножить на 2:
каждая точка будет иметь размер  8x6.
И т.д. То есть для каждого размера окна пересчитываем размер виртуального пикселя так, чтобы он сохранял пропорции и всегда чётко вписывался в целое число физических пикселей.

Если размер окна меньше 512x384 то либо не позволяем его уменьшать (добавляем скроллеры) либо включаем уже какое-то вид размытия либо переходим на некратное масштабирование.

(Размытых картинок насмотрелся ещё во 90-е, на реальных мониторах. Хочу видеть всё предельно чётко и прямоугольно, с прямыми углами).

6 Отредактировано ptr314 (19-10-2025 22:02)

Re: Релиз нового эмулятора (ecat3)

Voldemar0 пишет:

В графике та же ситуация: в загрузочной картинке ИКП дискеты должны быть квадратными.

Это неверно (вложение)?

Post's attachments

Attachment icon eCat3_F0KIwMsm9a.png 179.44 kb, 5 downloads since 2025-10-19