(С) by Vladimir Kladov, 2003
Представляю свой эмулятор ZX-Spectrum для Windows 95/98/ME/NT/2K/XP. Это уже окончательная версия, исправлению подлежат только найденные баги, серьезные изменения более не планируются. ВНИМАНИЕ! На странице разработчика доступна для скачивания версия 2.1, улучшенная и исправленная. Прямой адрес для скачивания: http://bonanzas.rinet.ru/EmuZWin21.zip
Под Windows9x/ME/XP эмуляция S128 несколько может отличаться по скорости в худшую сторону. В любом случае, среди оконных эмуляторов EmuZWin один из самых быстрых на данное время.
PC Speaker в качестве устройства вывода звука может использоваться только под Windows9x/ME, и качество звука при выводе на спикер просто отвратительное (но для того, чтобы услышать пук-пук в большинстве игрушек, этого хватает). По умолчанию всегда используется DirectX.
Видеовывод только в режиме GUI, использование DirectX не планируется, поскольку полноэкранный режим не поддерживается, а в оконном Direct-X не дает преимуществ. Тем не менее под Windows98 идет на машине Pentium100 со скоростью 70-90% от номинальной, что в общем достаточно для большинства игрушек. Видеовывод эмулируется с точностью до строки кадровой развертки. Т.е. надписи на бордюре не будут видны, но большинство эффектов сохранены.
Эмулируются Kempston Joystick, Sinclair I (не
будет), Sinclair II и Fuller Box - все на дополнительной
цифровой клавиатуре (действует при включенном Num
Lock). Дополнительная рисованная клавиатура может
помочь при вводе команд Бэйсика. Кроме того, она
позволяет зафиксированть какие-то клавиши на
всемя игры (правый щелчок мыши по кнопке). Может
пригодится и при программировании раскладки
клавиш в игре.
Пока поддерживаются для загрузки форматы Z80 и SNA, для сохранения только SNA, а так же TAP и TZX (TAP - пока без сжатия Warajevo, TZX - не полностью), загрузка из архивов ZIP (требуется настроить путь на PKUNZIP.EXE). Работа с большинством форматов организована через плагины. Имеется свой собственный формат EZX, который не требует наличия плагинов. Плагины должны располагаться в той же директории, что и сама программа. Документация по написанию плагинов предоставлена.
Файл Spectrum.rom, содержащий ПЗУ 32К, должен лежать в той же директории, что и сама программа (первые 16К - ПЗУ S128, вторые 16К - ПЗУ S48). Используя опцию командной строки /ROM=путь или пункт главного меню File/New/Custom ROM Image, возможно выбрать другой образ ПЗУ.
POK-файл, имеющий то же название, что и загруженный, но с расширением .POK, загружается автоматически. При этом отыскивается в той же директории, откуда загружен файл, или во всех вложеных (рекурсивно), а так же при загрузке из ZIP - в самом архиве. В случае собственного формата EZX, внешние файлы pok не загружаются (в этом случае содержимое pok-файла хранится в самом ezx-файле). Возможно загрузить pok-файл отдельной командой меню.
Встроенный мощный пошаговый и трассирующий визуальный отладчик может использоваться для самых разных целей. Мне он пригодился при отладке самого эмулятора.
Планируется:
Не планируется в этой бесплатной версии:
История:
Финальный выпуск F1.4 (19 мая 2003): Множество небольших исправлений (загрузка с ленты, добавление блоков из файла в каталоге ленты, чтение POK из ZIP-архивов) и мелких улучшений (диалог открытия, переназначение клавиш).
Финальный выпуск F1.3 (18 мая 2003): Добавлен режим быстрой эмуляции LDIR/LDDR/CPIR/CPDR, по умолчанию включен, можно выключить для отдельной игры или по умолчанию (хотя на акууратность эмуляции не влияет вообще). Ускорено видео-отображение: теперь масштабирование делается собственной процедурой, без использования StretchBlt. Некоторые незначительные улучшения в интерфейсе (уменьшенная клавиатура, свой полупрозрачный курсор на главном окне эмулятора, запоминание последней папки при закрытии диалога открытия файлов).
Финальный выпуск F1.2 (15 мая 2003): Исправлено замедление видео-отображения под Windows9х при размере дисплея, отличном от 1х1.
Финальный выпуск F1.2 (15 мая
2003): Исправлены падения программы на выходе,
если менялись параметры скорости и частоты
обновления. Предотвращено авто-возобновление по
нажатию любой клавиши, если открыт диалог
конфигурации.
Улучшено управление скоростью (Alt+Num[ * ] для быстрого
переключения между 50% и 800%), значок молнии на
инструментальной линейке вдавлен для всех
скоростей больших 100%.
Значительно улучшен видеовывод для
случая нестандартного размера экрана (отличного
от 1х1 и 2х2) - изображение более не "плавает"
при перерисовках. Добавлена опция
"пропорциональный размер" (пункт меню View|Proportional Size).
Финальный выпуск F1.1 (13 мая
2003): Исправлены падения программы при
открытии pok-файлов, когда не было загрузки с
ленты, и при удалении строчки из
перепрограммирования клавиш. Устранены так же
мелкие неисправности в интерфейсе и запоминании
настроек в реестре.
Замечание по поводу
"финальности": данные выпуски финальные
прежде всего в том смысле, что новых фич и
существенны изменений не предвидится, но
серьезные баги и мелкие глюки будут исправляться
оперативно.
Финальный выпуск F1 (11 мая
2003): Добавлена поддержка ZIP (используется
pkunzip.exe не поставляется в дистрибутиве).
Добавлена ассоциация с файлами EZX
(восстанавливается автоматичеки при каждом
запуске).
Теперь EZX загружается в точности в том
же состоянии, как он был сохранен. Например,
возможно сохранить в EZX в момент чтения с м/ф, и
после загрузки чтение будет продолжено.
Частично поддержаны токены в
заголовках блоков в окне каталога ленты.
Открытие диалога загрузки в момент
чтения ленты и просмотр экранов других записей
не затирает более содержимое м/ф, так что в случае
отмены диалога, чтение может быть продолжено.
Сохраняются в реестре позиция и
размеры каталога ленты, окна открытия,
конфигурации, список папок, выбранных в окне
открытия (максимум 10), другие настройки.
По нажатию Escape, эмулятор теперь
минимизируется в трей без анимации (быстро).
Клавиша PAUSE так же используется для
перевода эмулятора в состояние "пауза" (но
игнорируется для возобновления).
Главное окно не может быть увеличено
до троекратного размера клавишей Num[ + ] и
соответствующим пунктом меню на экране с
разрешением меньше 768 пикселов по высоте.
Множество других небольших изменений.
Бета выпуск B10 (8 мая 2003): Добавлена настройка цветов. Все основные настройки сохраняются в реестре. Множество мелких исправлений.
Бета выпуск B9 (7 мая 2003): Добавлено переназначение клавиш на уровне эмулятора. Формат ezx опять немного изменен (KEYS), но на прежние записи состояний это не влияет.
Бета выпуск B8 (5 мая 2003): Добавлена опция Refresh Rate, позволяет снизить
частоту отображения кадров и за счет этого
увеличить производительность на медленных
машинах. Клавиатура при открытии окна
автоматически позиционируется в соответствии с
местоположением основного окна и возможностями
рабочего стола.
Добавлена поддержка
POK-файлов, с автоматически назначаемыми
пиктограммами (!).
Исправлено добавление образа ленты в режиме
каталога ленты.
B8.a: Обеспечено сохранение содержимого
pok-файла в формате ezx и его загрузка (формат ezx
слегка изменен, что не должно отразиться на
имеющихся записях состояний). Добавлен в главное
меню пункт File|Open Pokes... для загрузки внешнего
pok-файла при необходимости.
Устранено падение программы при закрытии.
Бета выпуск B7 (3 мая 2003): Добавлен тулбар, с прогрессом загрузки ленты. Улучшена синхронизация и намного ровнее стал звук AY. Добавлен ключ /NoMMTimer для запрета новой синхронизации (лучше не использовать, будет только хуже). Множество исправлений в эмуляции звука, команд, загрузки с ленты, интерфейсе. Изменен формат EZX, чтобы в будущем позволить продолжить загрузку с ленты после перезапуска. Изменена сигнатура, чтобы предотвратить загрузку ранее сохраненных EZX-файлов. Для их загрузки вам потребуется прежняя версия EmuZWin!
Бета выпуск B6 (30 апреля 2003): Значительные улучшения звука AY. Исправлена генерация прерывания (int). Упрощенная схема распознавания портов (включается автоматически при обращении к неверному порту). Исправлена загрузка из Z80 (3.0) с несжатыми банками памяти. Добавлено сохранение в формате Z80 (версии 2.01 этого формата).
Бета выпуск B5 (29 апреля 2003): Добавлена форма для отправки сообщения разработчику (мне) о новых неизвестных загрузчиках с ленты. Теперь файлы можно перетаскивать мышкой (drag-and-drop) прямо на главное окно программы. Небольшие исправления в звуке AY.
Бета выпуск B4 (28 апреля 2003): Режим Fast Load для ленты теперь действительно быстрый, в том числе для защищенных загрузчиков (TZX). Добавлены опции /Sound8 и /SoundExclusive.
Бета выпуск B3 (27 апреля 2003): Исправления в эмуляции звука AY, инструкций OUTD/OTDR/OUTI/OTIR, некоторые улучшения интерфейса, чуть более быстрая загрузка с ленты.
Бета выпуск B2 (23 апреля 2003): Исправлена загрузка SpeedLock1 и SpeedLock2 (TZX). Реализован ввод из порта FF (требуется некоторым играм для синхронизации). Добавлена эмуляция звукового чипа AY.
Бета выпуск B1 (22 апреля 2003): Видеовывод оптимизирован для глубины цвета 32 и 24 бита (ранее оптимизация касалась только режима 16 бит).
пре-бета выпуск 10 (21 апреля 2003): Исправление сделанных вчера ошибок, TZX должен читаться нормально для всех видов защит (надеюсь).
пре-бета выпуск 9 (20 апреля 2003): Исправление некоторых ошибок, в основном что касается распознавания TZX (но все еще не закончено).
пре-бета выпуск 8 (19 апреля 2003): Добавлены опция командной строки /ROM= и пункт главного меню File/New/Custom ROM Image для упрощения выбора другого образа ПЗУ. Опция командной строки /9x позволяет запускать эмулятор под всеми весиями Windows в том же режиме работы с памятью, что и под Windows9x/ME. Опция /PAUSED позволяет запустить эмулятор в состоянии паузы. Некоторые улучшения в отладчике, исправлены некоторые инструкции (флажки, T-состояния). Но файлы TZX, защищенные спидлоком, пока не грузятся.
пре-бета выпуск 7 (16 апреля 2003) -
исправлены команды RLD/RRD, длительность в тактах
комад работы с (IX+offset), (IY+offset). В результате пошли
игры, которые не работали (chronos2), улучшился звук;
7.1: исправление в команде DAA.
пре-бета выпуск 6 (16 апреля 2003) - исправлена загрузка с ленты (TAP, TZX - частично). Добавлено управление лентой. Исправлено сохранение SNA из-под 9х/ХР. Добавлена комбинация ALT+K для вызова клавиатуры. Исправлен отладчик для режимов 9х/МЕ/ХР (не ставились/не снимались/не работали точки останова).
mailto: bonanzas@online.sinor.ru