Что это
sPycialist - это эмулятор ПК Специалист, написанный с чистого листа и полностью на языке программирования Python.
История появления
Вообще, изначально вдохновившись эмулятором ZX Spectrum - PyZX, также написанном на Python, я собирался написать свой эмулятор, так как PyZX по большей части - это автоматически конвертированный с Java эмулятор Jasper. Из-за этого его исходный код очень кривой и некрасивый. И вот я начал писать ZX-Pylot. Сделал эмуляцию первых 256 команд и подумал, что по сути у меня готова эмуляция процессора Intel 8080 (КР580ВМ80А) и вспомнил свой первый компьютер "Специалист", который построен на этом процессоре. И в результате вместо того, чтобы писать ZX-Pylot, я переключился на эмулятор Специалиста - sPycialist.
Ключевые особенности
- 100% Python
- Из зависимостей используется только библиотеки pygame и numpy
- Полная эмуляция процессора Intel 8080 (КР580ВМ80А), включая все флаги
- Поддержка загрузки игр в RKS-формате
Использование
Эмулятор запускается из командной строки:
Чтобы сменить игру, необходимо положить игру в формате RKS рядом с файлами эмулятора. Далее требуется изменить имя файла в константе GAME в файле spycialist.py. После чего потребуется перезапустить эмулятор.Код:python spycialist.py
Информация для тех, кто не знаком с ПК Специалист: Чтобы запустить загруженную игру, после запуска эмулятора нужно нажать следующую последовательность клавиш: <F1>, <ENTER>, <U>, <ENTER>.
Переназначить клавиши на свой вкус можно в файле spyc_keyboard.py. По умолчанию используется раскладка JCUKENG, как наиболее приближенная к оригиналу.
Для чего это
Данный эмулятор может представлять лишь академический интерес из-за невысокой скорости эмуляции и отсутствия какого-либо сервиса. Эмулятор писался сугубо из личного интереса. Тем не менее, основу sPycialist составляет эмулятор Intel 8080. Эмуляция данного процессора получилась достаточно точной - полностью проходятся все тесты 8080/8085 CPU Exerciser. Реализация Intel 8080 находится в отдельном файле и почти никак не завязана на эмуляцию ПК Специалст. Таким образом данный эмулятор процессора Intel 8080 может быть с успехом использован в каких-то сторонних Python-проектах.
Известные проблемы
- Скорость эмуляции оставляет желать лучшего, так как Python - это не тот язык, на котором пишут эмуляторы
- Нет эмуляции звука
Где взять
Проект расположен на GitHub, а также для удобства приложен к этому сообщению.
История версий
v0.5 (20 января 2019 г.)
- Дальнейшая оптимизация кода: на быстрых компьютерах доступна 100%-ная скорость эмуляции
- Оптимизация опроса клавиатуры: устранено кросс-нажатие клавиш
Предыдущие версии
v0.4 (2 января 2019 г.)
- Дальнейшая оптимизация кода
- Новая процедура вывода на экран (svofski)
- Новая процедура опроса клавиатуры (ivagor)
v0.3 (31 декабря 2018 г.)
- Существенное увеличение скорости эмуляции за счёт оптимизации вывода экрана
v0.2 (29 декабря 2018 г.)
- Оптимизация кода для повышения быстродействия
v0.1 (26 декабря 2018 г.)
- Первый релиз
[свернуть]
Скриншоты