Современные эмуляторы Вектора и совместимых компьютеров

(первый вариант 10.02.2010, последняя правка 22.09.2010)

На данный момент можно назвать два стабильных и удобных для использования эмулятора Вектора для Windows (в алфавитном порядке):
1) b2m, Дмитрий Целиков (последняя версия от 18.09.2010) - мультиэмулятор, поддерживает эмуляцию большинства популярных советских бытовых ПК конца 80х-начала 90х, спектрума, MSX, MSX-2.
2) Virtual Vector, Игорь Титарь (далее VV, последняя версия 6.29) - ориентирован на эмуляцию вектора и родственных компьютеров.

Далее перечислены основные особенности и отличия вышеназванных эмуляторов (список неполный):

1) Документация
В комплекте с b2m идет FAQ, в котором приведены базовые сведения по загрузке программ в некоторые конфигурации компьютеров. В отладчике b2m можно вызвать справку по F1. Возможности конфигурационных файлов (довольно большие, например можно сделать конфигурацию вектора с экраном от спектрума и т.п.) можно изучить только по имеющимся примерам и "методом тыка". Впрочем, можно задать автору вопрос по e-mail, в гостевой книге его сайта или на форуме.
К VV прилагается описание (файл в формате pdf). Также автору можно задать вопрос по электронной почте или на форуме.

2) Поддерживаемые клоны вектора и процессоры
b2m
Вектор-06Ц - имеются очень мелкие расхождения с реалом в эмуляции, позволяющие отличить "железку" или VV (которые я не знаю как программно отличить друг от друга) от b2m.
Вектор-06Ц с Z80 - процессор не тормозится "по-векторовски", в отличие от "исторических" вариантов установки Z80 в вектор. Однако, это соответсвует оригинальному современному клону вектора (существующему в единственном экземпляре у его автора) - Самопал.
ПК-6128Ц - данный ПК поддерживается только в b2m. Нет эмуляции особенностей процессора 1821ВМ85 (растактовки, установка флагов, дополнительные документированные и недокументированные команды). Реализация некоторых возможностей вызывает вопросы, но уточнить "как правильно" невозможно, т.к. владельцы реалов затаились.
Вектор-старт 1200 - данный ПК также поддерживается только в b2m. Желательно уточненить палитру. Эмуляции звука возможно не полностью соответствует реалу.
Достоинство b2m - больше диапазон тактовых частот эмулируемого процессора, в котором сохраняется адекватное поведение эмулятора.

VV
Эмулируется Вектор-06Ц и некоторые элементы ПК Криста-2.
Поддерживаются "зоны непрограммируемсти" палитры, характерные для некоторых серий Векторов-06Ц.
В эмуляции Вектора с Z80 можно отметить растактовку, соответствующую вариантам установки Z80, разработанным в середине 90х.
Уникальная особенность - эмуляция процессора КР580ВМ1. К сожалению, данные процессоры недоступны для тестирования и проверить точность реализации невозможно.
Из возможностей Кристы-2 поддерживается палитра и сдвиг точек в другую сторону в режиме 512x256. К сожалению, не поддерживается интересный режим 1024x256. В связи с недоступностью оригинального ROM загрузка программ в формате кристы требует использование дополнительных программ либо омских загрузчиков ПЗУ-2 и ПЗУ-8 (которые, к слову, не поддерживаюся в b2m).

Правильность эмуляции обработки запросов прерываний с процессором Z80 в обоих эмуляторах вызывает вопросы. Стоит отметить, что в разных вариантах адаптеров Z80 для вектора вопрос с обработкой прерываний решался по-разному, и что брать в качестве эталона - непонятно (да и владельцы таких адаптеров в рабочем состоянии неизвестны).

3) Звук
Эмуляция бипера точнее (сравнивал с реалом) в VV при включенной настройке LF Filter (по умолчанию включена), хотя от идеала далековато.
Качество эмуляции ВИ53 очень близкое в обоих эмуляторах.
AY/YM предположительно эмулируется точнее в VV, но с рельными PSG у меня не было возможности сравнить, в качестве "эталона" выступал эмулятор Сергея Бульбы. В VV поддерживаются разные варианты раскладки стерео каналов AY/YM.
Оба эмулятора поддерживают COVOX, подключаемый к разъему ПУ.

4) Отладчик
В b2m отладчик удобнее и мощнее.
Можно назвать 2 небольших недостатка отладчика:
- step over (Shift+F8) при трассировке команд перехода приводит к выходу из отладчика;
- экран и окно просмотра/редактирования памяти при трассировке с использованием F8 не обновляются.
Есть ограниченные средства "ручного" профайлинга, которые не позволяют найти критичные процедуры, но позоляют оценить число тактов, необходимое для выполнения указанных программистом участков программы.
Очень полезная (и уникальная для эмуляторов вектора) возможность - точки останова по обращению к портам или ячейкам памяти.

Отладчик VV попроще и не так "эргономичен" (на мой субъективный взгляд). Отладка для процессора Z80 (в отличие от b2m) не поддерживается.
Уникальная возможность, реализованная в VV начиная с версии 6.19 - наличие средств профайлинга выполняемых векторовских программ. Подсчитывается количество исполненных команд (к сожалению, не тактов, что не позволяет точно оценить быстродействие), чтений и записей данных, причем как в основное ОЗУ, так и в КД и порты. Результаты профилирования можно посмотреть во встроенном просмотрщике в графическом виде (в отладчике счетчики видны в виде чисел в отдельной колонке) или сохранить в файл в бинарном формате (dwd) или в csv. Если Вас (как, например, меня) не устривает "родной" вариант сохранения в csv, то можно преобразовать dwd в csv с использованим утилиты dwd2csv (см. раздел Вектор-06Ц).

5) Работа с "магнитофоном" и кассетными образами файлов
Возможности эмуляторов в данном отношении близки (поддерживаются wav и cas файлы).
Можно отметить поддержку csw-файлов, являющихся компактной альтернативой wav для нестандартных загрузчиков, в VV.

6) Разное
VV в отличие от b2m может в оконном режиме (b2m только в полноэкранном) синхронизироваться с кадровой частотой развертки монитора.
Соответствие палитры Вектора и PC каждый автор эмулятора сделал по-своему и, как я считаю, неадекватно оригиналу. К счастью, авторы дали возможность самостоятельно задать палитру (удобнее менять палитру в VV).
Некоторые клавиши вектора отображены в VV и b2m на разные клавиши PC. Учитывая наличие возможности редактирования соответствия клавиш в обоих эмуляторах, это не недостаток, а особенность.
В VV есть возможность на ходу отключать/включать экранные плоскости, программируемость палитры и аппаратный скроллинг.

7) Что не эмулируется
Вариант кишиневского/омского КД на 64 Кб - программы с его поддержкой были, но на данный момент они недоступны.
Московский (COMAN) КНГМД - есть программы с его поддержкой.
Московский (COMAN) КД (ERAM) - есть программы с его поддержкой.
Звуковая плата R-Sound (2) - есть программы с ее поддержкой.
Кишиневский адаптер z80/эмулятор спектрума - есть программы с его поддержкой.
Вектор-турбо+ - о существовании программ с его поддержкой неизвестно.
Эмуляция ВГ93 ограничена рамками "разумной достаточности", так что утилиты форматирования не работают.