(С) by Vladimir Kladov, 2003-2004
Представляю свой эмулятор ZX-Spectrum 128K/48K для Windows 95/98/ME/NT/2K/XP.
Теперь для загрузки самой свежей версии следует использовать ссылку: http://bonanzas.rinet.ru/EmuZWin.zip Размер версии 2.3 = 454Кбайта. Дополнительные файлы с исходными кодами плагинов, описанием по созданию плагинов и прочим можно загрузить здесь: http://bonanzas.rinet.ru/zx/EmuZWin_Addons.zip
Предыдущие версии так же возможно загрузить:
v2.0: http://bonanzas.rinet.ru/EmuZWin20.zip
v2.1: http://bonanzas.rinet.ru/EmuZWin21.zip
v2.2: http://bonanzas.rinet.ru/EmuZWin22.zip
На настоящий момент, среди оконных эмуляторов EmuZWin один из самых быстрых и корректных в плане точности эмуляции, эмулирует Spectrum-128K / Spectrum-48K, TR-DOS, поддерживает сохранение/загрузку популярных снап-форматов (SNA, Z80), понимает так же форматы дисков TR-DOS (TRD, SCL, HoBeta) и загрузку большинства форматов ленты (в том числе TAP, TZX), и других, и этот список может расширяться написанием плагинов. Имеет очень удобную возможность: перепрограммирование клавиатуры (можно переопределить, какие клавиши Spectrum'а нажимаются какими клавишами на клавиатуре PC).
Имеется поддержка мультиколора (учет параметров таймирования для 48, 128, 128+2, 128+2A/+3, Pentagon, возможность настройки своих параметров, переключение между моделями таймирования "на лету"), эффект "снега", ввод атрибутов из порта FF. В режиме мультиколора EmuZWin работает практически так же быстро, как и без него.
PC Speaker в качестве устройства вывода звука может использоваться только под Windows9x/ME, и качество звука при выводе на спикер просто отвратительное (но для того, чтобы услышать пук-пук в большинстве игрушек, этого хватает). По умолчанию всегда используется DirectX для вывода звука, в том числе для вывода MIC-звука. Качество звука при выводе через DirectSound очень приличное.
Видеовывод в оконном режиме только через GUI, DirectX используется только в полноэкранном режиме (и может быть отключен и для полноэкранного режима). Тем не менее под Windows98 идет на машине Pentium100 со скоростью 70-100% от номинальной, что в общем достаточно для большинства игрушек. Видеовывод эмулируется с точностью до строки кадровой развертки. Т.е. надписи на бордюре не будут видны, но большинство эффектов сохранены.
Эмулируются Kempston Joystick, Sinclair I (только с
реальным джойстиком), Sinclair II и Fuller Box - с
использованием до двух реальных джойстиков,
или могут эмулироваться на дополнительной цифровой
клавиатуре (действует при включенном Num Lock). Дополнительная
рисованная клавиатура может помочь при
вводе команд Бэйсика при эмуляции Spectrum-48K. Кроме
того, она позволяет зафиксированть какие-то
клавиши на всемя игры (правый щелчок мыши по
кнопке). Может пригодится и при программировании
раскладки клавиш в игре.
Для загрузки и сохранения поддерживаются форматы Z80 и SNA, так же возможна загрузка с ленты в форматах TAP, TZX, BLK, включая загрузку из архивов ZIP (требуется указать путь на PKUNZIP.EXE, если в поставке нет PKUNZIP.DLL). Для загрузки/сохранения образов дисков поддерживаются форматы TRD, SCL, HoBeta (*.$?). Для загрузки используется собственный диалог с предварительным просмотром экрана загружаемой программы, при возможности (при наличии, для предварительного просмотра могут использоваться .SCR-файлы).
POK-файл, имеющий то же название, что и загруженный, но с расширением .POK, загружается автоматически. При этом отыскивается в той же директории, откуда загружен файл, или во всех вложеных (рекурсивно), а так же при загрузке из ZIP - в самом архиве. В случае собственного формата EZX, внешние файлы pok не загружаются (в этом случае содержимое pok-файла хранится в самом ezx-файле). Возможно загрузить pok-файл отдельной командой меню.
Теперь в помощь играющим имеется еще и построитель карт. Надеюсь, пригодится, для квестов и адвенчур :)
Работа с большинством форматов организована через плагины. Имеется свой собственный формат EZX, который не требует наличия плагинов. Плагины должны располагаться в той же директории, что и сама программа. Документация по написанию плагинов предоставлена.
Файл Spectrum.rom, содержащий образы ПЗУ 32К, должен лежать в той же директории, что и сама программа (первые 16К - ПЗУ S128, вторые 16К - ПЗУ S48). Файл TRDOS.ROM 16K должен размещаться там же. Используя опцию командной строки /ROM=путь или пункт главного меню File/New/Custom ROM Image, возможно выбрать другой образ основного ПЗУ (кроме TR-DOS, который можно просто заменить в директории).
Встроенный мощный пошаговый и трассирующий визуальный отладчик может использоваться для самых разных целей. Мне он пригодился при отладке самого эмулятора. Имеется встроенный ассемблер и дизассемблер, можно использовать EmuZWin как кросс-систему для программирования для Spectrum'а.
Уже не планируется в 2.1, но вероятно в 2.2/2.3:
Не планировалось в версии 2.0:
История:
Версия 2.3 Выпуск 1.99 (15-Mar-2004):
Исправления:
[-] Исправлено конфигурирование кнопок
на инструментальной линейке: Disk Browser, Play/Stop
Tape.
[-] В эмулятре, исправлена инструкция SLA
(HL).
[-] В ассемблере, 16-ричные не
начинающиеся с 0, но завершающиеся 'H' всегда
считаются шестнадцатиричными числами (например,
D000H).
[-] Исправлена проблема изменения размеров
меньше, чем 256x192 (в режиме Multicolor On
эмулятор падал).
[-] Загрузка некоторых TZX файлов
исправлена (они загружались нормально в версии
2.1, но с версии 2.2 параметр DoublePilot перестал
нормально передаваться в плагин из основной
программы). Исправлена так же загрузка некоторых
TZX-файлов, которые не могли загружаться нормально
(La Abadia del Crimen).
[-] Распаковка из ZIP-архивов файлов с длинными
именами частично исправлена с использованием
программы PKUNZIP. См. так же о новом
плагине PkUnZip.dll ниже.
[-] Нажатие Shift+буква без
отпускания клавиши Shift было невозможно,
исправлено. Отпускание клавиши на цифронаборной
клавиатуры (эмуляция джойстика) могло привести к
"отпусканию" другой, еще нажатой клавиши.
Исправлено.
[-] Исправлено применение установок текущего
таймирования (мультиколор) при загрузке
файла.. Скорректированы настройки для
таймирования Пентагона.
[-] Исправлен эффект Flip Vertical - приводил к
краху программу при максимальном размере
бордюра.
Изменения:
[*] ESCAPE переводит эмулятор в состояние
пузы, и если он уже в режиме паузы, минимизирует
эмулятор в трей. So to minimize to tray, press ESCAPE twice.
[*] Видимость линейки статуса сохраняется
в реестре и восстанавливается в следующей сессии
из предыдущей.
[*] Курсор теперь принимает специальную
форму в тех позициях в отладчике и каталоге
ленты, где возможно поставить точку останова, и
где щелчок приведет к изменению адреса просмотра
памяти (Ctrl-click на адресе в дизассемблированном
коде, click на регистре).
[+] Добавлен полноэкранный режим без DirectX.
В окне Configuration, снимите флажок "Use DirectX
in Fill-Screen", и переход в полноэкранный режим и
обратно становится фантастически быстрой
операцией. Этот режим рекомендуется включать для
быстрых машин, а так же в случаях, если есть
проблемы с использованием Direct-X на вашей машине
из EmuZWin.
[*] При выводе звука через DirectSound,
использован меньший по длительности буфер. Более
аккуратное звучание для 50% и 200% скоростей.
[*] Увеличение размера окна клавишей
Alt+Num[+] допускается до масштаба 4:1.
[*] В начале работы, размер и позиция
восстанавливаются из предыдущего сеанса к
последнему известному состоянию в режиме
нормального окна (не максимизированного и не в
режиме полного экрана).
[*] Процедура отправки отчета о новых
сигнатурах загрузки с ленты работает более
аккуратно в плане принятия решения, является ли
данная команда чтения порта FE частью новой
процедуры загрузки с ленты. Добавлено 2 новых
сигнатуры в список.
[*] Во время загрузки ленты, time stamper теперь
не сохраняет состояния каждые 2 секунды.
[*] Теперь для формата EZX выполняется сжатие
с использованием замечательной библиотеки DIUCL
(автор Ralf Junker), которая использует те же методы
сжатия, что и популярный компрессор исполнимых
бинарных файлов UPX. Старые файлы должны
загружаться без проблем, имеется возможность
отключить компрессию и для новых сохранений в
этом формате.
[+] Добавлен плагин PkUnZip.dll , который
позволяет распаковывать файлы с длинными
именами из Zip-архивов более корректно, чем старая
дос-программа pkunzip.exe. Если этот плагин
обнаруживается в директроии программы, он
используется всегда, и нет больше необходимости
указывать путь на pkunzip.exe или доставать ее
откуда-либо.
[*] Рисованная клавиатура перерисована.
[*] Пункт меню View | Stay On Top Transparent перемещен
в Effects.
Версия 2.3 Выпуск 1.7 (3-Марта-2004): Исправления:
[-] Серьезная ошибка: Multicolor исправлен.
[-] Опция командной строки /PAUSED
исправлена.
Версия 2.3 Выпуск 1.6 (2-Марта-2004): Исправления:
[*] Щелчок правой клавишей мыши на иконке
втрее когда эмулятор минимизирован в трей,
приводит к появлению меню (с пунктами Exit
и Restore), вместо непосредственного
восстановления.
[*] Все нажатые клавиши отжимаются когда
выполняется команда time 2 seconds back или time
2 seconds forward - нет больше залипания при
использовании Alt+< / >, Alt+влево / вправо в ходе
игры.
[*] Когда нажат ENTER в состоянии паузы,
эмуляция продолжается (выход из паузы).
[-] Заголовок главного окна исправлен при
загрузке из загрузке из списка недавно
запускавшихся.
[-] Исправлена загрузка Pokes для игр,
загружающихся с ленты, и из ZIP-архивов.
[-] Исправления в эмуляции TR-DOS: теперь
индексный индекс генерируется периодически, так
что программы, определяющие наличие диска (BestView)
должны работать. Загрузка другого TR-DOS-диска
вместо загруженного из главного меню/панели
главной формы исправлена. Режим Fast Disk
исправлен (чтение секторов), так что программы
вроде DCU определяют нормально наличие диска в
этом (Fast Disk). Эмуляция идет теперь быстрее в
режиме Fast Disk, даже когда открыто окно Disk
Browser. Исправлено восстановление
позиции окна Disk Browser из предыдущего
сеанса работы. Возможен выбор диска ввода
символами 'A'-'D' в комбинированном списке (элемен
для выбора диска для работы с ним в окне Disk
Browser).
[-] Был возможен крах программы на выходе, когда
ьыло открыто окно Disk Browser.
Исправлено.
[-] Когда выбран пункт меню "48 BASIC" в
меню Спектрума, последующий Reset
возвращал обратно в режим 48-Бэйсик. Исправлено.
[*] По команде Reset, образ ROM теперь не
восстанавливается, так что сделанные в нем
изменения (ассемблированием или ручным
редактированием), сохраняются. Но если из меню
выбран один из пунктов New|Spectrum128 / New|Spectrum48
/ New|Custom ROM, образ ROM перезагружается в
выбранный.
[-] В ассемблере, исправлена инструкция OUTI.
Устранено дублирование системных меток
[*] В дизассемблере, вместо символа '-'
используется '_' в системных метках. В опции
дизассемблирования добавлена возможность
включать/отключать системные/пользовательские
метки.
[+] В главную панель инструментов
добавлены кнопки Debugger и Multicolor
(первоначально невидимы).
Версия 2.3 Выпуск 1.5 (28-Февраля-2004):
[+] Клавиша TAB может использоваться как
кнопка FIRE джойстика, вместе с цифровой
клавиатурой как раньше.
[*] Плагин LoadSNA теперь переключает
правильно страницу ROM на банк ROM48 при загрузке
состояния 48K (более не требуется переключаться в
режим 48K вручную).
[+] Добавлена возможность Дизассемблирования
указанного участка памяти как блока кода или
данных (DEFB, DEFW или DEFB со строками ASCII) и сохранять
результат как текст (результирующий текст
вставляется в ассемблерный листинг и затем может
быть сохранен, скопировани, и т.д.) Так же, Ассемблер
несколько улучшен и позволяет компилировать
дизассемблированный текст непосредственно, без
дополнительной обработки (второй аргумент в
скобках после запятой рассматривается как
комментарий, так что команда INC (IX+40H,2357H)
компилируется так же как INC (IX+40H) ). Кроме того,
он теперь компилирует быстрее. Добавлена
возможность быстрой установки PC на один
из первых 10 адресов, указанных в директивах
ORG - по выпадающему меню на соответствующей
кнопке инструментальной панели в окне
ассемблера.
[-] Исправлены ошибки в Ассемблере
(инструкции OUT (C),A; INC/DEC (IX/IY+offset), LD IX/IY,word не
воспринимались/компилировались правильно).
[+] Добавлена возможность редактировать
область ПЗУ вручную или в результате компиляции (кнопка
Allow Edit ROM добавлено в окно отладчика, и
автоматически задается вопрос о переключении в
этот режим при ассемблировании по адресам ПЗУ).
[+] Добавлен Time
Stamper (откат во времени,
фактически периодическое сохранение состояния
каждые 2 секунды). Когда включен (File|Time Back|Time
History Enabled, включен первоначально), с одной из
комбинаций клавиш ALT+</Alt+>, Alt+LEFT/Alt+RIGHT, Alt+NUM4/Alt+NUM6
(последние два при включенном режиме NUM-LOCK) или по
нажатию на соответствующих кнопках
инструментальной панели становится возможным
восстановление состояния, которое было 2 секунды
назад или возврат соответственно вперед, если
уже делались откаты назад (сохраняется такое
количество состояний, что откат возможен вплоть
до нескольких часов назад, в зависимости от
конкретной игры). Данная возможность, когда
включена, может потреблять на жестком диске до 40
мегабайт свободного пространства.
[*] Теперь экран перерисовывается немедленно
в режиме мультиколора, когда состояние (snap)
загружено в режиме "паузы" в эмуляторе.
[*] Иконки в меню теперь масштабируются и видны
полностью - в уменьшенном виде, при
необходимости.
[*] Главная инструментальная панель теперь
конфигурируемая: возможно указать, какие кнопки
должны быть видны. Добавлены кнопки: Reset,
Disk Browser, Full Screen, Configuration (по умолчанию, эти 4 скрыты
первоначально), а так же Time 2 seconds Back и
Time 2 seconds Forward.
[*] Размер экрана теперь
увеличивается/уменьшается не клавишами Num[+]/Num[-],
требуется нажатие Alt: Alt+Num[+]/Alt+[-]. Изменение
скорости Num[ * ] и другие оставлены в прежнем виде
(при игре на эмулируемом на цифровой клавиатуре
джойстике клавиша [+] постоянно задевалась,
неожиданно увеличивая экран, что иногда могло
мешать).
Версия 2.3 Выпуск 1.3 (15-Февраля-2004): Исправлены некоторые баги:
[-] В главном окне, View|Toolbar не работало правильно.
[-] Z80 плагин - загрузка и запись состояния
исправлены. Сохранение в Z80 не работало вообще (PC
дублировался на месте SP, SP не сохранялся, найдены
ошибки в алгоритме компрессии блоков памяти).
Загрузка исправлена для 48K-файлов сохраненных в
режиме 128K.
[-] Исправлена ошибка в диалоге Load Memory Block
(вызывается из Отладчика): когда нажималась
кнопка [<>] для поиска первого различия, и блоки
были идентичны, это приводило к зацикливанию
эмулятора.
[-] Некоторые проблемы поправлены с загрузкой
состояний из файлов, содержащих "грязь" на
месте некоторых "пробдвинутых" значений.
Например, при загрузке из Z80 значение счетчика
тактов с последнего int могло оказаться слишком
большим.
Версия 2.3 Выпуск 1.1 Бета (8-Декабря-2003): Добавлена поддержка мультиколора (48, 128, +2, +2A/+3, Pentagon, переключение и настройка на ходу). Добавлено сохранение снимков экрана (BMP, PNG, SCR, поддержка плагинов). Добавлен построитель карты. Краткая история альфа-выпусков версии 2.3:
1.0.B - storing MC settings in EZX format implemented, new chunk type 'MULT'
added to the EZX format.
1.0.A - save screen shot (F5) added (plugins extendable). Load from ZIP using PKUNZIP
fixed. Open recent list (up to 9 files) added. Crash on exit fixed (seems). Reanimate
option added (by suggestion of Alex Medvedev).
1.0.9 - crash fixed (when debugger is closed and emulator works in MC). Snow effect
controlled by the config now (and by default it is off for +2A/+3/Pentagon). Port
recognision works now better (LD A,XX; OUT (FD) now works in most cases correctly).
1.0.8 - Loading TZX fixed in MC. Sealing of some ZX keys pressed with SHIFT+correspondent
PC key (",:,+,<,>,{,},|) fixed. Open by F3 fixed for full-screen mode (now slow
but mostly correct). IN FF for MC implemented. Bug Z80 with LD A,R / LD A,I (when
IntSignal ON, but except after EI) - implemented (for MC). Also, snow effect (bug in ULA)
implemented, now for for all Timing models including +2A/+3 (later will be configurable
and by default off for +2A/+3).
1.0.7 - DirectX output (full screen mode), configs are reworked. Status bar added (leds in
full screen) with speed % and FPS.
1.0.6 - fixed TR-DOS off with multicolor
1.0.5 - first (ugly) configuration for MC, View | Effects | Flip Vertical
1.0.4 - optimized MC for +2A/+3, some configurations added, Show Border Only (in the
Debugger)
1.0.3 - optimized MC for 48, 128, +2
1.0.2 - menu settings for MC
1.0.1 - dirty multicolor (MC) mode
Версия 2.2 Выпуск 1.0
(3-Ноября-2003):
[+]Добавлена поддержка
TR-DOS. Поддерживаются форматы TRD, SCL, Hobeta (.$?).
Поддерживается прямая загрузка указанного
HoBeta-файла (или файла, выбранного в Дисковом
Менеджере, ALT+D), кнопка Magic Button (ALT+M), загрузка с
диска (boot, ALT+B). Дисковый менеджер имеет набор
утилит для работы с образами TR-DOS-дисков
(создание, загрузка, сохранение дисков; удаление,
переименование файлов; уплотнение диска (squeeze);
сохранение выбранных файлов в HoBeta-формате,
компоновка диска из отдельных HoBeta-файлов, в том
числе используя драг-дроп из папки проводника).
Соответственно, дополнен формат EZX (добавились
чунки DISK, BETA, PRVW), и расширен интерфейс с
плагинами, совместимость с прежними плагинами
сохранена.
[+]Некоторые
изменения в интерфейсе. File|New|Spectrum 48K блокирует
эмулятор в режиме эмуляции только 48К-машины, до
вызова File|New|Spectrum 128K или Custom ROM Image, содержащего
образ ПЗУ 128К (или до включения режима 128К при
загрузке специфического файла, требующего 128К).
Двойной щелчок правой клавишей мыши не приводит
к переходу в полноэкранный режим (только левой
клавишей, правая зафиксирована за операцией
пауза/возобновление). Окно конфигурации может
быть вызвано отдельно из меню или Alt+C. В отладчике
теперь возможно скроллировать
дизассемблированный текст колесиком мыши и
двигая ползунок, как в обычном скроллере. Так же,
подсказки на верхней линейке инструментов
отладчика возможно теперь отключать (щелчок
правой клавишей мыши). В диалоге открытия файлов
добавлена кнопка для выхода в родительскую
папку. Некоторые пиктограммы на кнопках изменены
(пуск ленты в главном окне, трассировка в
отладчике).
[-]Серьезные
исправления в ассемблере (многие команды
транслировались неверно).
[+]В окне ассемблера
можно вызвать список всех команд и директив и
двойным щелчком вставлять их в исходный текст.
[-]Исправлено
множество мелких ошибок в эмуляторе (вообще,
редко проявлявшихся) и погрешностей в
интерфейсе. Отладчик иногда зависал при частом
нажатии (или удержании) клавиш F7, F8 - это
устранено.
Версия 2.1 Выпуск 8.0 (21-Сентября-2003): Исправлен ассемблер.
Версия 2.1 Выпуск 7.0 (13-Сентября-2003): Исправлен ассемблер.
Версия 2.1 Выпуск 6.0 (17-Июля-2003): Добавлено окно ассемблера.
Версия 2.1 Выпуск 5.0 (15-Июня-2003): Некоторые
исправления в Debugger-е:
[+] Добавлен поиск по
тексту, включая нечувствительность к регистру.
[-] Исправлено падение
при закрытии окна поиска без задания образца
поиска.
[-] Ctrl+F и другие клавиши
работают теперь в окне отладки как должно.
Версия 2.1 Выпуск 4.0 (27-Мая-2003): Небольшие улучшения:
[+] В оконном режиме,
можно перетаскивать окно мышью, хватаясь за сам
дисплей, не только за заголовок.
[*] Для медленных машин
(определяются как 386, 486 или Pentium, ниже чем Pentium II
или Pertium Pro) точная синхронизация звука отключена.
Добавлена опция командной строки /FAST
для игнорирования определения медленной машины
(машина в любом случае считается быстрой,
звуковая синхронизация включена).
[+] Можно менять
приоритет приложения: Normal/Above Normal - через меню
(улучшает качество звука при сильной загрузке
процессора другими приложениями).
[=] Исправлен возврат
из полноэкранного режима.
[-] Исправлена
прокрутка в окне переопределения клавиш (диалог
конфигурации).
[-] Инициализация
компонентов Direct Sound и Joysticks начинается теперь,
когда главное окно уже видимо. Это делает старт
эмулятора чуть быстрее.
[=] Исправлено бросание
ZIP-файлов на окно эмулятора.
Версия 2.1 Выпуск 3.0 (27-Мая-2003): Улучшена загрузка с ленты: добавлена flash-загрузка (перехват ПЗУ), режим авто-старт/авто-стоп ленты. Улучшена работа с форматом SNA. Исправлена и улучшена работа каталога ленты. Исправлена работа и внешний вид окна управления POKes.
Версия 2.1 Выпуск 2.0 (26-Мая-2003): Улучшена загрузка TZX, спасибо Александру Медведеву. Исправлена загрузка Z80, спасибо Mark Woodmass. Так же небольшие исправления и улучшения в отладчике. Диалог About и заголовок программы показывают теперь версию 2.1. Информацию о версии можно получить теперь так же в диалоге свойств исполняемого файла.
Версия 2.1 Выпуск 1.0 (24-Мая-2003): добавлен Полноэкранный
режим, с использованием Direct-X
(Alt+Enter, или двойной
щелчок на главном окне). Щелчок
правой мыши в главном окне используется
для паузы/продолжения
эмулятора. При работе в полном экране, меню и
инструментальная линейка визуально отключены,
но все комбинации клавиш работают по-прежнему.
Открытие любых драгих окон и диалогов
переключает режим из полноэкранного в
нормальный. Клавиши Num[ + ]
и Num[ - ]
используются в полноэкранном режиме для
изменения масштаба только для этого режима.
Добавлены опции Interlaced in Full Screen
(чересстрочный режим, Alt+I)
and Normal Refresh Rate in Full Screen (по
умолчанию включен).
Добавлена поддержка реальных Джойстиков. Возможно
использование одного или двух джойстиков (во
втором режиме возможно направить каждый
джойстик на Kempston / Sinclair-I / Sinclair-II / Fuller Box / Cursor). Оба
джойстика могут быть
переназначены на клавиши ZX как обычно -
используя переназначение клавиш на уровне
эмулятора (что позволяет использовать джойстик в
играх, которые изначально не предполагали работу
с джойстиком). Перед использованием джойстика, он
должен быть предварительно включен (используя Alt+J, или меню, или диалог
конфигурации).
Финальный выпуск F1.5 (20 мая 2003): Более устойчивый звук (даже при работе других приложений и манипуляциях с окном).
Финальный выпуск 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
См. так же о других моих эмуляторах ZX-Spectrum 128K/48K для DOS:
EMUZ, 1995. Написан на C--. Недавно обнаружен исходный код, и опубликован.
Z.com, 2003, assembler. Минимальный по размеру (6К) коррекный (и вполне играбельный) эмулятор Spectrum-128K и 48K. Опубликован с исходным кодом.