Когда-то давно, Юрий Калмыков
писал эмулятор БК-0010(01) под Windows. Но позже видимо забросил это дело
и выложил исходники всем желающим.
Здесь находятся доработанный и улучшенный эмулятор Юрия Калмыкова на
основе его исходников. Относительно оригинала добавлена эмуляция БК-0011,
БК-0011М, AY-8910, FDD контроллеры: стандартный, A16M, СМК-512, Самарский
контроллер HDD + эмуляция HDD.
Не забываем про необходимость
VC redistributable 2015/2017/2019/2022 разрядности, соответствующей
используемой разрядности программ. Не Windows. При запуске 32х разрядной
проги на 64х разрядной винде, нужен 32х разрядный VC_redist.exe.
Данный пакет для x86 не запускается в Windows XP, поэтому пользователям
Windows XP нужен вот такой
VC Redist 2015/2017/2019
и больше никакой.
Известные ошибки и проблемы:
Играть в игры для БК-0010 затруднительно из-за не синхронизированной
обработки клавиатуры и эмуляции выполнения инструкций процессора. Клавиатура
обрабатывается в реальном времени, а инструкции - пакетом, за как можно
короткое время, между ожиданиями обработки звуковой подсистемой Windows
звуковых буферов.
Режим построчной эмуляции экрана работает не полностью корректно,
в обычной работе это не заметно, а вот на некоторых демках, использующих
эффекты мультиколора и синхронизированного с ходом луча переключения
экранов даже очень заметно.
Как оказалось тайминги и их коррекция под разные частоты совершенно
неправильные. Нужно писать новый эмулятор, с принципиально иным алгоритмом
эмуляции.
Со звуком всё таки что-то неладно. Но не у всех и не всегда. Есть
люди, у которых звук эмулятора работает стабильно плохо.
Эмуляция мыши путём захвата ПКшной мыши работает ужасно. Поэтому
не вынесена в опции и включается/выключается или вручную в ini файле,
или в окне настроек.
Уточнено действие поля для ручного ввода текущей частоты ЦП, и заодно пересмотрены граничные значения частот ЦП.
Исправлена ошибка в эмуляции HDD для операций с 256 секторами за раз.
Уточнена эмуляция работы с магнитофоном для БК-0010, теперь в точности как в ПЗУ записано.
Добавлено немного асинхронности, нагрузка на процессор РС возросла, зато весь пользовательский интерфейс рисуется вне цикла фрейма, что теоретически должно привести к устранению дедлоков.
В эмулятор добавлена опция сохранения дампа регистров музыкального сопроцессора AY-3-8910 (YM2149). Как это делается, смотрите в документации. Вот там.
В HDDImgMaker улучшена логика работы, очень незначительно.
Возвращён прежний способ синхронизации видео. Тот, что тайно от всех был применён в версии 06.06.2018, оказался очень уж неудачным.
v3.9.1806.xxxx
Дата: 06.06.2018 00:00:00
Файлы этого релиза удалены и заменены следующим релизом.
В эмулятор везде, где возможно добавлен вывод сообщения, при неудаче выделения памяти. После этого будет либо крах программы, либо неадекватное поведение, либо не произойдёт действие, которое ожидалось. Зато будет понятно, из-за чего это случилось.
В эмуляторе исправлены неприятные ошибки эмуляции клавиатуры и виртуальной клавиатуры, наконец проявившие себя после нововведений сборки 3.9.1803.6475.
Добавлена возможность задавать размеры экрана эмулятора из списка заданных размеров. Список находится в меню "Вид".
Уточнён метод задания частот музыкального сопроцессора в окне изменения настроек. Добавлен список некоторых распространённых частот, чтобы не вводить их вручную. Если чего-то в списке нет, то оно вводится вручную.
Случайно обнаружена и устранена ещё одна ошибка в умном сохранении параметров в ini файл. Теперь ненужные записи из него всегда удаляются.
Всё ещё продолжается борьба с последствиями введения разных доступных пользователю частот дискретизации звука, а теперь уже заодно и разных рендеров в ранее сохранённых состояниях эмулятора. Остались всё те же мелкие неудобства, все критические ошибки, потенциально приводящие к краху, устранены (я надеюсь).
дамп регистров CPU, системных регистров и портов и регистров режимов работы контроллера АльтПро (чтобы сразу видеть, в каком режиме работает СМК);
дамп регистров FDD и HDD, который прячется за дампом памяти, поскольку нужен очень редко (да почти вообще не нужен).
Убраны не нужные информационные сведения, которые можно посмотреть в окне изменения настроек эмулятора.
На появившееся свободное место в дампе регистров добавлен дополнительный вид содержимого регистров CPU. Можно переключаться между десятичным и шестнадцатеричным представлением.
В связи с разными представлениями чисел отменены ненужные в общем-то ограничения на ввод в поля редактирования значений регистров. Теперь можно вводить всё что угодно, и оно потом пытается интерпретироваться в числа соответствующих систем счислений. С разной степенью удачности.
Взяты некоторые иконки SCALOlaza для улучшения внешнего вида.
Рабочую частоту и модель муз.сопроцессора теперь тоже можно задавать в настройках эмулятора. Я на слух разницы не заметил, т.к. различие в алгоритмах генерации шума не эмулируется. Используется тот, что в Ямахе.
Исправлена недоделка в умном сохранении параметров в ini файл, введённая в билде 1709.5847.
Продолжается борьба с последствиями введения разных доступных пользователю частот дискретизации звука. Почти всё исправлено. Не работает восприятие собственного звука, записанного на частоте 44100Гц и читаемого на частоте 48000 Гц, и наоборот, т.е. если кто-то использует wav файлы, то работать с ними лучше только на частоте 44100 Гц.
Заодно, теперь можно загружать как .wav ещё и .bin файлы. Не знаю, зачем, но возможность такая была изначально, просто не задействована была. Разве что из ностальгических чувств, слушать звуки с кассеты с играми.