EmuZWin v2.4 выпуск 0.5

(С) by Vladimir Kladov, 2003-2004

Представляю свой эмулятор ZX-Spectrum 128K/48K для Windows 95/98/ME/NT/2K/XP.

Теперь для загрузки самой свежей версии следует использовать ссылку: http://bonanzas.rinet.ru/EmuZWin.zip Размер версии 2.4 = 533Кбайт. Дополнительные файлы с исходными кодами плагинов, описанием по созданию плагинов и прочим можно загрузить здесь: http://bonanzas.rinet.ru/zx/EmuZWin_Addons.zip

Предыдущие версии так же возможно загрузить:
v2.0: http://bonanzas.rinet.ru/EmuZWin20.zip     265K
v2.1: http://bonanzas.rinet.ru/EmuZWin21.zip     286K
v2.2: http://bonanzas.rinet.ru/EmuZWin22.zip     349K
v2.3: http://bonanzas.rinet.ru/EmuZWin23.zip     463K

На настоящий момент, среди оконных эмуляторов 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 работает практически так же быстро, как и без него.

В версии 2.4 добавлена полная поддержка 256-цветных игр (взять существовавшие до 1999 года 12 штук можно на сайте http://www.emulatronia.com/emusdaqui/spec256/index-eng.htm). И в то же версии добавлен мощный встроенный GFX-редактор, который позволяет практически любую спрайтовую игру превратить в 256-цветную, при наличии желания и времени.

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.4:

Не планировалось в версии 2.0:


История:

Версия 2.4 Выпуск 0.5 (1 апреля 2004):

[+] Добавлена поддержка Kempston Mouse, AMX Mouse и AY Mouse.
[+] Добавлена поддержка эффекта GigaScreen.
[+] Добавлен небольшой визард для начала нового проекта 256 Colors, который вызывается при первом включении режиме 256 Colors в данном состоянии.
[*] Максимизация размеров в режиме Proportional Resize теперь контролируется, чтобы размеры оставались пропорциональными. Теперь режим Proportional Resize сделан режимом по умолчанию для первого запуска эмулятора.
[*] Теперь Assembler понимает двоичные числа (как 00010110B). Добавлена директива FILE для включения внешних бинарных файлов. И для того, чтобы можно было определить список директорий, где эти файлы должны отыскиваться, добавлена кнопка и форма для ввода списка таких директорий.
[-] Во время загрузки 48K-состояния, видео-банк никогда не сбрасывался, так что сразу после работы в режиме 128K могла возникнуть ситуация, что все состояния 48K прекращали работать (не было изображения). Исправлено.
[+] Добавлена утилита Bmp2RawBk256 (см. в дополнительном архиве), которая конвертирует bitmaps-картинку в фоновый рисунок для режима 256 Colors (файлы .bNN).


Версия 2.4 Выпуск 0.4 (28 марта 2004):

[+] добавлена операция Colors Replace/Exchange в GFX редакторе.
[-] Инструкция SLA (HL) исправлена снова :(.
[+] Реализован быстрый переход наметку по двойному щелчку на ссылке на метку в окне  Assembler-а.
[+] Обеспечено сохранение текста в окне assembler-а в формате EZX как документировано.
[+] Добавлен пункт меню Tools|LensLok. Он становится разрешен, если в директории запуска обнаржена программа LensLok.exe, и просто запускает эту утилиту.
[-] Буква 'Y' была нарисована на клавиатуре дважды, тогда как 'I' отсутствовала. Исправлено.
[-] Сразу после перехода в режим полного экрана без DirectX экран спектрума не был аккуратно отцентрирован - исправлено.
[+] Добавлен интерфейс плагинов  пункты меню Record and Save Sound As и Stop Recording Sound/Video для обеспечения сохранения звука с использованием внешнего плагина. Так же, добален плагин интерфейс для проирывания звука AY через внешний DLL, и соответствующие изменения сделаны в окне Configuration, где теперь возможно выбрать такой плагин для вывода музыки.


Версия 2.4 Выпуск 0.3 (26 марта 2004):

[*] Небольшие изменения в реализации некоторых инструкций GFX-машины для режима 256 Colors (для Three Weeks in Paradise).
[-] Стрелки и другие управляющие клавиши не нажимались в окне ассемблера при открытом окне GFX редактора, исправлено.
[-] Исправлена работа с Map Builder-ом и сохранение карты, при игре в режиме 256 Colors.
[*] Изменения области выделения теперь так же сохраняются в Undo/Redo в GFX Editor-е.
[-] Инструмент Magic Tool исправлен в GFX Editor-е: он кроме выделения так же заливал область, как инструмент Fill, хотя не должен был.


Версия 2.4 Выпуск 0.2 (25 марта 2004):

[*] Небольшие изменения в реализации некоторых инструкций GFX-машины для режима 256 Colors (для Dizzy). Изменены опции Up/DownMixChangeBright с булевого на проценты. Добавлена опция OrderPaletteSignedBytes, позволяющая интерпретировать индексы в палитре 256 цветов как числа со знаком в диапазоне -128..127, а не как беззнаковые 0..255, во время выполнения Leveled операций XOR/OR/AND.
[+] Добавлен режим Fast trace (обновление каждые 100 шагов) в Отладчике.
[-] Исправлена редкая ситуация: при игре в режиме 256 Colors, после вызова и отмены диалога Open продолжение игры в режиме 256 Colors было невозможно.
[+] Учтен бит мигания в атрибутах в режиме 256 Colors (теперь в играх с 256 цветами там, где используется этот бит в меню, соответствующие пункты мигают).


Версия 2.4 Выпуск 0.1 (24 марта 2004):

[+] Добавлена поддержка 256-цветных игр (требуется наличие MMX). Сейчас такие игры загружаются как обычные SNA-файлы, и если в директории найден GFX-файл с таким же именем, эмулятор переключается в режим 256-цветов автоматически. Вы можете загрузить эти игры по этой ссылке: http://www.emulatronia.com/emusdaqui/spec256/download-eng.htm
[+] Добавлен GFX-редактор, и дополнительные панели GFX Memory и GFX Registers в окне отладчика.

[+] Добавлена настройка для ассоциации типов файлов в диалоге Configuration. EZX-файлы ассоциируются ВСЕГДА как и раньше, и проверка ассоциации с EZX делается при каждом запуске программы. Hobeta-файлы (*.$B, *.$C) и все прочие типы файлов состояний/ленточных и дисковых образов доступные через плагины добавляются в список доступных для ассоциации типов (но не ассоциируются по умолчанию).
[*] Изменена иконка программы :-)
[*] Щелчок по  иконке в тулбара, когда программа минимизирована в трей, срабатывает теперь на отпускание клавиши (иначе, щелчок левой клавишей успевал отработать для чужой иконки в трее).
[*] Кнопка Configuration на тулбаре сделана видимой по умолчанию.
[+] Добавлена опция Autosave on exit / autoload autosaved on startup (включена по умолчанию). Так же, добавлена опция Start paused when autoloaded on startup added (первоначально выключена).
[+] Добавлен режим Priority|High.
[+] Добавлена одна сигнатура ленточного загрузчика.


Версия 2.3 Выпуск 1.99 (15 марта 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х/МЕ/ХР (не ставились/не снимались/не работали точки останова).


http://bonanzas.rinet.ru

mailto: bonanzas@online.sinor.ru

См. так же о других моих эмуляторах ZX-Spectrum 128K/48K для DOS:

EMUZ, 1995. Написан на C--. Недавно обнаружен исходный код, и опубликован.

Z.com, 2003, assembler. Минимальный по размеру (6К) коррекный (и вполне играбельный) эмулятор Spectrum-128K и 48K. Опубликован с исходным кодом.