EmuZWin v2.4 release 0.5

(С) by Vladimir Kladov, 2003-2004

I represent my ZX-Spectrum 128 and 48 emulator for Windows 95/98/ME/NT/2K/XP.

Still now, it is always possible to download most fresh version via following link: http://bonanzas.rinet.ru/EmuZWin.zip .Size of the archive is 533K. Additionally, it is possible to download archive, containing plugin sources, documentation on plugins creation etc. at: http://bonanzas.rinet.ru/zx/EmuZWin_Addons.zip

If you wish, you can download previous versions too:
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

At this time EmuZWin is one of the fastest and correct among other windowed emulators. It emulates Spectrum-128K/48K, TR-DOS (mostly), supports most popular snap-formats (SNA, Z80), TR-DOS formats (TRD, SCL, Hobeta), loading from the most popular tape formats (TAP, TZX and other), saving screenshots (SCR, BMP, PNG) and this list can be extended writing plugins. There is very convenient feature in the EmuZWin: reprogramming keyboard (it is possible to define which Spectrum keys are pressed by certain PC keys). The EmuZWin also has very power built-in debugger/disassembler and also built-in assembler too.

In version 2.3, MULTICOLOR support added for Spectrum48, 128, 128+2, 128+2A/+3 and Pentagon. Also, custom timing models can be adjusted, and timing model can be changed on fly. In the multicolor mode, EmuZWin works fast as well in non-multicolor mode.

In version 2.4, Support for 256 colors games added. All existing games (12) from the Web-site http://www.emulatronia.com/emusdaqui/spec256/index-eng.htm are supported, and some additional modes provided to allow GFX-ing other games. A power GFX-editor embedded which allows to turn almost any sprite-made game to 256-colors one.

PC Speaker can be used for sound output only under Windows9x/ME, and sound quality in such case is absolutely disgust (but still sufficient to recognize puck-puck in most games). By default DirectX used, and AY sound is emulated only throught DirectX, with normal quality.

Video output in window mode uses GUI only, Direct-X used only in full-screen mode (and it is possible to use full-screen without Direct-X too). Under Windows98 the EmuZWin runs on Pentium100MHz in a window with speed about 70-100% in comparison to speed of original Spectrum, and in full screen mode with 100-200% speed (and it is possible to change refresh rate to 25 frames/sec or to 10 frames/sec to make emulation even faster).

Kempston Joystick, Sinclair I (only with real joystick), Sinclair II and Fuller Box joysticks - both real and emulated on the num pad of the PC keyboard (work when Num Lock is turned on). Additionally drawn keyboard can help to enter Basic commands. Also it allows to fix some keys pressed down while playing game (right mouse click on a key). Also, this keyboard can be useful while reprogramming keyboard for a game.

Pokes are loaded automatically from pok-file, named exactly as Spectrum file loaded, but with extension .pok. This file can be located anywhere in the directory where loaded file is from, or in any nested subdirectory (all subdirectories are listed recursively), or in ZIP-archive. Icons for trainers are assigned automatically when possible. If pokes are available after loading the state, a "smile" icon is appear on the toolbar (it is hidden if a tape is still reading), and opening pokes window at that time does not allow applying pokes anyway. It is possible to load external pok-file (File|Open Pokes...). In EZX format, pokes are stored in the EZX-file itself.

In version 2.3, MAP BUILDER added, which allows to... build maps :). Hope, this feature will be useful for adventure/quest games.

Working with the most formats (load and save snap-formats, load tape formats, load and save disk images) implemented via plugins, and the own format EZX supported natively, without plugins. Plugins should be located in the directory, where the application itself is placed. Documentation on writing plugins published, and if you wish, you can write your own plugins.

Also, plugins can be added for saving screenshot (File|Save screenshot, or F5) in different graphic formats. At least, plugins to save screenshot in SCR, BMP and PNG formats are provided in the distributive.

The default ROM image file Spectrum.rom, containing ROM 32K or 16K, must be located in the directory where the application is placed too. If its size is greater than 16K, then the first 16K are S128 ROM, and the second 16K are S48 ROM. Using command line option /ROM=path or selecting menu item File/New/Custom ROM Image, it is possible to select another ROM image.
TR-DOS ROM image should be located in TRDOS.ROM file, size is 16K, also in the directory where the application is installed.

The embedded power step-by-step and trace visual DEBUGGER can be used for different purposes. For me, it is useful to debug the emulator itself. Also, built-in assembler is there, now very correct and sufficiently power.


There were not planned in 2.1, but possibly in 2.2/2.3/2.4:

What were not planned in version 2.0 of the emulator:


Version 2.4 Release 0.5 (1-Apr-2004):

[+] Kempston Mouse, AMX Mouse and AY Mouse support added.
[+] GigaScreen effect support added.
[+] A small wizard added to start new 256 Colors project when a switch to 256 Colors mode selected for usual game.
[*] Maximizing now controlled in Proportional Resize mode to maximize staying proportional. Proportional Resize made default mode for a first launch of the emulator.
[*] Now Assembler understands binary numbers (e.g. 00010110B). Also, a directive FILE added to include external binary file. And, to allow defining where to search included files, a button Search Directories added to a toolbar.
[-] While loading 48K snapshots, video bank was never reset, so just after working in 128K mode it was possible that 48K snapshots stopped working (nothing was seen on screen). Fixed.
[+] A utility Bmp2RawBk256 added (in the additional archive), which allows to convert bitmaps to 256 Colors background file .bNN.


Version 2.4 Release 0.4 (27-Mar-2004):

[+] GFX Colors Replace/Exchange operation added in the GFX Editor.
[-] The instruction SLA (HL) fixed again :(.
[+] Fast go to label on double click on its reference in the Assembler added.
[+] Saving assembler text provided in EZX format as documented.
[+] A menu item Tools|LensLok added. It is enabled if the LensLok.exe found in startup directory, and just launches this utility.
[-] Letter 'Y' was drawn twice on the Keyboard, whereas 'I' was absent at all. Fixed.
[-] Just after switching to non-DirectX full screen mode spectrum screen could be not accurate centered over screen - fixed.
[+] A plugin interface and main menu items Record and Save Sound As and Stop Recording Sound/Video added to provide saving sound using external plugins. Also a plugin interface added which allows to play AY sound via external plugin, and correspondent changes made in the Configuration, where it is possible to select one of such plugins to output music.


Version 2.4 Release 0.3 (26-Mar-2004):

[*] Small changes in some instructions implementation in 256 Colors mode (for Three Weeks in Paradise).
[-] Arrows and other control keys pressing fixed in the Assembler window (there were problems when GFX Editor is shown).
[-] Working with Map Builder and saving its content fixed, while a game is in 256 Colors mode.
[*] Selection area changes now also are subjust to Undo/Redo in the GFX Editor.
[-] Magic Tool working fixed in the GFX Editor: it was filling selected area like Fill tool, though should not.


Version 2.4 Release 0.2 (25-Mar-2004):

[*] Small changes in some instructions implementation in 256 Colors mode (for Dizzy). Options Up/DownMixChangeBright changed from boolean to percents. An option OrderPaletteSignedBytes added to allow treating palette indeces ordered as signed integers from -128 to 127 rather then unsigned ones from 0 to 255 while comparing it in Leveled XOR/OR/AND operations.
[+] Fast trace mode added (checkbox update each 100 steps) in the Debugger Trace operation.
[-] Rare situation fixed: when playing in 256 Colors mode, after cancelling Open dialog it was not possible to continue playing in 256 Colors.
[+] Flashed attributes are taken into consideration in 256 Colors mode (now start menu in those 256 Color games which use it, work with flash).


Version 2.4 Release 0.1 (24-Mar-2004):

[+] 256 color games partial support added (MMX required). Now, those games can be loaded as usual SNA-files, and if so-named GFX-file is present in the folder, the emulator is switching to 256-colors mode automatically. Such games can be downloaded at: http://www.emulatronia.com/emusdaqui/spec256/download-eng.htm
[+] GFX Editor window, GFX Memory and GFX Registers panes added in the Debugger (can be shown via popup menu on main disassembly window). With GFX Editor, any (almost any, yes: games with vector grathics are not) can be made 256-color.

[+] File associations tab added to the Configuration. EZX files are associated ALWAYS as earlier, and a check made each time when the EmuZWin is started if this association is OK. Hobeta files (*.$B, *.$C) and all the other file types available to load via plugins are added to the list of files available for association always (but are not associated by default).
[*] Application icon changed :-)
[*] Toolbar icon click works now on left mouse button up rather then down (otherwise, left click was accepted also by another tray icon at that place).
[*] Main toolbar button Configuration made visible by default (initially).
[+] Autosave on exit / autoload autosaved on startup option added (turned on by default). Also, an option Start paused when autoloaded on startup added (turned off by default).
[+] Priority|High option added.
[+] One more new tape loading signature added.


Version 2.3 Release 1.99 (15-Mar-2004):

Fixes:
[-] Configuring toolbar buttons Disk Browser, Play/Stop Tape fixed.
[-] In the emulator, instruction SLA (HL) fixed.
[-] In the assembler, hexadecimals not starting with 0 but finishing 'H' are always treated as hexadecimal numbers (e.g. D000H).
[-] Problems are fixed with resizing to a size smaller then 256x192 (in Multicolor On mode,the emulator was crashed).
[-] Loading some TZX files fixed (those were loaded correctly in version 2.1, but in version 2.2 a parameter DoublePilot was stopped to pass to a plugin normally). And loading of some other TZX files which were not loaded at all fixed (La Abadia del Crimen).
[-] Extracting some files having long names or containing spaces from ZIP archives using PKUNZIP fixed. See also about new PkUnZip.dll plugin below.
[-] Pressing Shift+letter without releasing Shift key was a problem, fixed. Releasing numpad key while emulating joystick fixed (one released key could release other yet pressed).
[-] Applying multicolor timing settings when a file is opened, fixed. Settings for Pentagon multicolor timing are corrected.

Changes:
[*] ESCAPE pauses the emulator if it is not yet paused, and minimizes it to tray if it is already paused. So to minimize to tray, press ESCAPE twice.
[*] Status bar visibility is stored in the registry and restored in the next session from the last one.
[*] Cursor changed now to specially shaped on a position where it is possible to set / remove a breakpoint in the Debugger and Tape Browser, and when click will lead to change view memory address (Ctrl-click at the address in the disassembled code, click on a registry).
[+] FullScreen without DirectX mode added. In the Configuration, uncheck a box "Use DirectX in Fill-Screen", and going to full screen and back to normal windowed mode becomes extremely fast. This mode is recommended on fast machines and also if there are some problems using Direct-X in the EmuzWin on your PC.
[*] For DirectSound, smaller buffer used to produce sound. Sound for 50% and 200% speed made more crefully.
[*] Display magnification can be increased up to 4:1 using Alt+Num[+].
[*] On start, size and position is restored to the last known when the window was in normal state (not full screen and not maximized).
[*] Reporting new unknown tape loading signature procedure works more carefully to decide if this actually is a tape loading code or something else, before suggesting to send a e-mail with new unknown tape loading procedure. 2 new loading signatures are added to a list of known signatures.
[*] While loading tape, time stamper now does not work saving state each 2 seconds.
[*] EZX format now compressed using great DIUCL library (by Ralf Junker), which uses the same compression which is used in popular executables compressor UPX. Old saves are read with no problem, and it is possible to turn compression off for saving new EZX too.
[+] PkUnZip.dll plugin provided which allows to extract files from Zip archives more correct then using old pkunzip.exe utility. If this plugin is found in the emulator directory, it is used always, so no more necessary to provide a path to pkunzip.exe or download it from somewhere.
[*] Keyboard is redrawn.
[*] Stay On Top Transparent menu item moved to Effects.

Version 2.3 Release 1.7 (3-Mar-2004): Fixes:

[-] Urgent: Multicolor fixed.
[-] /PAUSED command line option fixed.

Version 2.3 Release 1.6 (2-Mar-2004): Fixes:

[*] Right mouse click on tray icon when the Emulator is minimized to tray, pops up a menu now (with Exit and Restore items) rather then just restore the program from the tray.
[*] All pressed keys are unpressed when time 2 seconds back or time 2 seconds forward command applied.
[*] When ENTER pressed in paused state, this also resumes the emulation.
[-] Main window caption assigning fixed when e.g. state was reloaded from drop-down menu.
[-] Loading Pokes fixed for games loaded from tapes or ZIP-archives.
[-] TR-DOS fixed: now index impulse generated periodically, so Speccy programs which use it to detect disk presence, should work. Loading another TR-DOS disk image (TRD, SCL, Set of Hobeta files) from the main menu/toolbar fixed. Fast Disk mode loading fixed, so DCU program detects disk normally in Fast Disk Mode. Disk works now much faster in Fast Disk mode when the Disk Browser is shown. Restoring the Disk Browser window position from the last session fixed. Selecting disk typing disk letter in a unit selection combo box now possible, all other char input is ignored in this field.
[-] Program crash was possible on exit, when Disk Browser was shown. Fixed.
[-] When "48 BASIC" menu item was selected in the Spectrum menu, following Reset were to 48 Basic again. Fixed.
[*] When Reset, ROM image does not restored now, so if you changed it (by assembling or manual editing), it is preserved. But if one of the items New|Spectrum128 / New|Spectrum48 / New|Custom ROM selected from the menu, the ROM is reloaded to selected one.
[-] In the Assembler, OUTI instruction fixed.Duplicating system labels fixed.
[*] In the Disassembler, symbol '-' replaced with '_' in system labels. A capability to switch on/off system and/or user labels added while selecting disassembling options.
[+] In the main toolbar, buttons added: Debugger and Multicolor (invisible initially).

Version 2.3 Release 1.5 (28-Feb-2004): Some small improvements:

[+] The TAB key can be used as the FIRE button for joystick, together with numpad keyboard keys as earlier.
[*] LoadSNA plugin now sets ROM page to ROM48 bank when 48K state is loaded (no needs to switch to 48K mode manually).
[+] A capability added to Disassemble a range of memory as code or data block (DEFB, DEFW or DEFB with ASCII strings) and to store result as text (resulting text is inserted into the Assembler listing and then can be saved, copied, etc.) Also, the Assembler is improved a bit to allow compiling text from the disassemble directly without changes (e.g., the second argument in brackets treated as a comment always, so INC (IX+40H,2357H) can be compiled normally as INC (IX+40H) ). And, the Assembler works much faster now. Also, a service command added (drop-down toolbar button) to set PC in the emulator/debugger to one of ORGed addresses.
[-] Some bugs are fixed in the Assembler (instructions OUT (C),A; INC/DEC (IX/IY+offset); LD IX/IY,word were not understanded/compiled correctly).
[+] A capability added to edit ROM directly or while assembling (a button Allow Edit ROM added in the debugger, and a question asked to switch this mode on while assembling).
[+] Time Stamper added. When it is turned on (File|Time Back|Time History Enabled, enabled by default), with one of key combinations from ALT+< / Alt+>, Alt+LEFT / Alt+RIGHT, Alt+NUM4 / Alt+NUM6 (the last two when numlock is on) or with correspondent toolbar buttons it is possible to shift time 2 seconds back/forward (a lot of time stamps to go back in time can be available, from several minutes to several hours in deep, depending on a certain game). This feature requires up to 40Mbytes of free space on your hard disk for temporary files, if enabled.
[*] Now screen redrawn immediately in multicolor mode too, when a state loaded in "paused" emulator.
[*] Icons in menu now resized to smaller size to fit place available.
[*] Main toolbar now is configurable: it is possible to define which buttons to show. Additional buttons added to the toolbar: Reset, Disk Browser, Full Screen, Configuration (by default, these four hidden), and also Time 2 seconds Back and Time 2 seconds Forward.
[*] Display size is changed now with Alt+Num[+]/Alt+Num[-], rather then just Num[+]/Num[-] as earlier.

Version 2.3 Release 1.3 (15-Feb-2004): Some bug fixes:

[-] In main window, View|Toolbar did not work
[-] Z80 load and save plugin fixed. Save did not work correctly at all (PC was written at place where SP should be stored, some bugs in compression algorithm implementation were found). Load fixed especially for case of loading 48K games in 128K mode.
[-] Bug fixed in Load Memory Block dialog (called from the Debugger): when [<>] button was pressed to find first difference, and blocks were identical, the emulator were getting caught in an endless loop.
[-] Some problems fixed with loading states having some dirty data in advanced fields (such as "tacts from the last int" in Z80).

Version 2.3 Release 1.1 Beta (8-Dec-2003): Multicolor support added (contended memory and ports, exact byte-aligned video output of the screen and the border, snow effect emulation, IN FF emulation, switching timing model between 48, 128, 128+2, 128+2A/+3, Pentagon and Custom on fly, adjusting timing configuration, saving/restoring it in EZX save format). Save screenshot capability added (File|Save screenshot, or F5). Map Builder added.

Here is a history of Alpha builds of the version 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


Version 2.2 Release 1.0 (3-Nov-2003):
[+]TR-DOS support added. Formats supported are TRD, SCL, Hobeta (.$?). Direct loading certain HoBeta-file (or file, selected in Disk Browser, ALT+D), Magic Button (ALT+M), boot from the disk A: (ALT+B). The Disk Browser has a set of utilities to work with TR-DOS-disks (creation, loading, saving disks; deleting and renaming files; squeeze; saving selecting files in HoBeta-format, adding HoBeta-files to the disk, including using drag'n'drop from the explorer). The EZX format is extended (chunks чунки DISK, BETA, PRVW are added), and interface with plugins is extended (compatibility is preserved with the existing).

[+]Some small changes in the interface. File|New|Spectrum48K now locks the emulator in emulating 48K machine only, until File|New|Spectrum128K or Custom ROM image, containing 128K ROM image. Double click with right mouse button does not switches to full screen mode, only double click with left mouse button (right mouse button is used to pause/resume emulation only). Configurations window can be called separately from the main menu or by key combination Alt+C. In the Debugger, disassembled code can be now scrolled with the mouse wheel or with the scroll thumb as usual. Tooltips in the Debugger's top toolbar can be turned off (right click in the toolbar). In the Open Dialog a button added to go up to the parent folder. Some icons are changed on toolbars.

[-]Serios corrections in the built-in Assembler (a lot of instructions were compiled incorrectly).

[+]A list of all available instructions is available now in Assembler window. Labels list is available in a separate window. User labels are shown in the debugger (which also became better).

[-]A lot of small fixes in the emulation. Debugger problem with F7/F8 keys (when pressed often) seems fixed.


V2.1 Release 8.0 (21-Sep-2003): Assembler fixed again.

V2.1 Release 7.0 (13-Sep-2003): Assembler fixed.

V2.1 Release 6.0 (17-July-2003): Assembler window added.

V2.1 Release 5.0 (15-Jun-2003): Some fixes and improvements in Debugger:
[+] Search by text, including case insensitive, added.
[-] Crash fixed when search window closed without setting any search pattern.
[-] Ctrl+F and other keys now work correctly in the Debugger.

V2.1 Release 4.0 (27-May-2003): Some small improvements:
[+] In windowed mode, main display can be easy dragged over desktop using left mouse button on the main display.
[*] For slow machines (detected as 386, 486 or Pentium, below then Pentium II or Pertium Pro) exact sound synchronization is turned off. A command line option /FAST added to ignore slow machine detection (all machines are treated as fast, since the sound synchronization is always on).
[+] Application priority can be changed between Normal/Above Normal using menu (useful to hear non-interraptable music in the background while a processor is very busy with other tasks).
[=] Going to full-screen mode when the main window is maximized and returning back to windowed mode fixed (if it was maximized, it restored first).
[-] Scrolling fixed in keyboard remapping (Configuration dialog).
[-] Direct Sound and Joysticks initialization begin now when main window is shown already. This makes startup faster a bit.
[=] Dropping ZIP-files on the main form fixed.

V2.1 Release 3.0 (27-May-2003): Tape loader improved: Flash load added, Auto Play/Stop tape option added. When Tape Catalog is visible, this does not prevent tape from fast loading as earlier. Append tape fixed and improvied (a little bit: -------- line added before block appended). SNA format handling changed a bit: when 48K sna loaded, last value popped from the stack, replaced there by 0000; when 48K state is saved and SP < 4002, 128K sna format forced. Pokes form fixed (bad scroll, bad images).

V2.1 Release 2.0 (26-May-2003): TZX loader improved, thanks to Alexander Medvedev for a bug report. Z80 loader fixed, thanks to Mark Woodmass for a bug report on it. About window and header both show version 2.1 now as it should. Some fixes and small improvements in debugger.

V2.1 Release 1.0 (24-May-2003): Full-screen mode added, with Direct-X used. (Alt+Enter, or double click on the main window). Right mouse click on the main window can be used to pause/resume the emulator. In full screen, menu and toolbar are not available, but all shortcut key combinations are still functioning. Opening any other window switches mode from full screen to normal one. Num[ + ] and Num[ - ] are used in full-screen mode to change scale for full-screen only. Options added: Interlaced in Full Screen (Alt+I) and Normal Refresh Rate in Full Screen (default true).
    Real PC Joysticks support added. It is possible to use one or two joysticks (in latter case assigned to Kempston / Sinclair-I / Sinclair-II / Fuller Box / Cursor). Both joysticks can be remapped to ZX keys as usual, using Remapping Keys feature. Before using it, joystick(s) should be turned on (via Alt+J, or menu, or Configuration dialog).


V2.0 Final release F1.5 (20-May-2003): Sound buffer made larger, so sound becomes more stable when PC is busy with other tasks, or window is resized or moved over desktop.

V2.0 Final release F1.4 (19-May-2003): Append tape operation was broken, fixed. After stopping tape Play button was not enabled in some cases, fixed. Now it is possible to set break points on tape block load using mouse left click at the icon area. Long loading process (TZX can be cancelled now).
    Pokes were not loaded from ZIP, fixed.
    More safe: now toolbar and main menu are not available while decoding file selected to open (this are enabled again when tape load process started or snap-file is loaded). Also, PC keyboard is ignored while entering ZX key via keyboard window shown modal in Key remapping dialog.
    More convenient: when Preview is on in the Open dialog, smiling face icon is shown in top-right corner indicating that POKes are available for a file (if any).

V2.0 Final release F1.3 (18-May-2003): Fast LDIR/LDDR/CPIR/CPDR emulation added (true by defaut, can be turned off for a certain game or by default, though it does not affect emulation accuracy at all).
    Video output optimized more, and own stretching procedure used, which speeds up stretched output.
    Pressing ALT resumed the emulator, fixed. Now any key press when keyboard window focused, pass focus to the main window in Keyboard Transparent mode.
    Restoring main window position to (0,0) did not occur, fixed. Also if the main emulator window positioned above desktop for less then 30 pixels, it does not repositioned to the top on start.
    When EZX was loading from ZIP, pokes and key and color remappings were not loaded from EZX itself, fixed.
    Some small enchancements in the interface (own semi-transparent cursor over main window, collecting current folder and storing it in the registry when Open Dialog closed, Small Keyboard window mode).

V2.0 Final release F1.25 (15-May-2003): Slow video output under Windows 98 (when size was not 1x1) fixed.

V2.0 Final release F1.2 (15-May-2003): A bug with application crash on termination if another speed was used then 100% and another refresh rate was used then 50 frames/second, fixed. A bug with application failure if while working with configuration dialog (key remapping) a key was pressed, which might resume the emulation, so auto-resuming now is disabled while configuration window is visible.
    Small improvement: emulation speed can be switched between 50% and 800% using Alt+Num[ * ], in addition to Num[ * ] used as earlier to switch between 100% and 200%. Small change: now toolbar button with "flare" sign is hold checked down when any speed selected greater then 100%.
    Video output is much smoother now for case when display size is other then 1x1 or 2x2. Also, an option Proportional Size added (available via menu View|Proportional Size).

V2.0 Final release F1.1 (13-May-2003): Removing keyboard remappings (specifying empty values for PC key and for both ZX keys) was leading to crash, fixed. Loading POK-file when tape was not loading yet was lead to crash, fixed. Pressing keys 'P', 'O', 'K', 'T' was not leading to resume from paused state, fixed. Path to root folder accessed last in Open Dialog was not used as default on restart the emulator, fixed. Keyboard settings Transparent and Stay On Top were not restored perfectly on restart, fixed.
    Note about "final" word. This means mainly that new features or serious changes are not planned, but bugs will be fixed as soon as possible.

V2.0 Final release F1 (11-May-2003): ZIP file support provided (pkunzip.exe used, not in the distributive).
    Association with EZX-files added (done automatically when the emulator started each time).
    Now EZX is loaded exactly in the same state as it was saved, e.g., it is possible now to continue loading tape if a state was saved while loading from the tape.
     Tokens in block names are partially supported in Tape Browser window.
    If Open Dialog is called while loading from tape, previewing screens of other snapshots does not clear tape content now, so if the Open Dilog cancelled, tape loading can be continued.
    Position and size of Tape Catalog, Open Dialog, and position of Game Configuration windows also stored in the registry. Folders, selected in Open Dialog using Browse key or entered manually also stored in registry (maximum 10).
    On Escape, the emulator now minimized to tray without animation (fast).
    Key PAUSE also pauses now the application (but it is ignored to resume it).
    Main window can not be increased now to triple size using key Num[ + ], if current desktop less then 768 pixels in height.
    A lot of other small changes.

Beta release B10 (8-May-2003): Colors mapping added. Key mapping improved (loop, fixed, auto-up implemented, enter key name by pressing it added). Some bugs with pokes fixed. Some improvements for Debugger (e.g. code disassembled immediately when RAM or ROM bank changed manually). Small fix in Open dialog: preview now always refreshed if the dialog opened again.
  Most impotant settings are stored now in the registry.

Beta release B9 (7-May-2003): Key mapping added. It is now possible to redefine keys for a game on the emulator level, and even define fixed, auto-up or looping keys. Keyboard layout window inmproved: now it can be "on top" of main form, transparent (in Win2K or XP), and drawing faster. EZX format changed a bit (chunk 'KEYS'), but this does not effect already saved states.

Beta release B8 (5-May-2003): Display refresh rate options added (accessible by menu): Max(50 frames/emulated sec), Normal (50 frames/real sec), Slower (25 frames/real sec), Rare (10 frames/real sec). With Slower refresh rate emulation is faster on slow machines. Sinclair II turned now off automatically whenever reading from port 1F (Kempston) detected.
  Keyboard layout window positioning changed to fit desktop and to place near the main form when shown.
  Pokes (.pok-files) support added, with automatic iconization (!).
  Append of tape image fixed.
B8.a: Menu command File|Open Pokes... added. In the EZX, pokes are stored internally and loaded together with the file.
  Crash on close fixed.

Beta release B7 (3-May-2003): Toolbar added, with tape loading progress bar. Tape loader now always starts from typing LOAD "" in 48K Basic automatically, rather then from 128K tape loader. Sound now synchronized more accurately (less or no artefacts while playing with 100%, 50% or 200% speed). Key option /NoMMTimer added to disable exact synchronization (worst). Some fixes in sound (both AY and MIC), tape loading, port recognition, interface, Z80 emulation. EZX format changed to provide later capability to load exact tape loading state, signature changed to prevent loading earlier saved EZX-files. You will need earlier version of EmuZWin to load older EZX files!

Beta release B6 (30-Apr-2003): AY sound improved a lot. Simplified port selection scheme added, it is turned on automatically when first time attempt to access incorrect port detected. Int generating fixed. Z80 format loader fixed (3.0 for case when it contins non-compressed memory banks) and saving to Z80 format added.

Beta release B5 (29-Apr-2003): Automated report tool added to provide me with feedback about finding unknowntape loader signatures. Drag files on the main window accepted. Some more fixes in sound.

Beta release B4 (28-Apr-2003): Fast tape load now is really FAST even for protected loaders (TZX). Automated report tool added to provide me with feedback about finding unknown loader signatures. Some fixes in sound. Command-line options added: /Sound8 and /SoundExclusive.

Beta release B3 (27-Apr-2003): Fixes in: AY sound emulation, OUTD/OTDR/OUTI/OTIR instructions, some interface improvements, a bit faster tape loading.

Beta release B2 (25-Apr-2003): SpeedLock1 and 2 loading fixed (TZX). IN FF implemented (required by some games for synchronization). AY sound emulation added.

Beta release B1 (22-Apr-2003): Video output optimized for 32bit and 24bit display color depth too (earlier versions worked good only with color depth 16bit).

pre-beta pre-release 10 (21-Apr-2003): Fixes to yesterday fixes, all (I hope) TZX files loaded normally.

pre-beta pre-release 9 (20-Apr-2003): Some more fixes, mainly in TZX format loading (but not yet completed).

pre-beta pre-release 8 (19-Apr-2003): Command line option /ROM= and File menu item File/New/Custom ROM Image added to simplify another ROM selection. Option /9x allows to select emulation mode the same as under Windows 9x (this affects memory usage and emulation algorithm). Option /PAUSED allows to start emulator initially paused. Some improvements of Debugger, some fixes in command emulation (flags, T-states). But speedlock-protected TZX-files still could not be loaded.

pre-beta pre-release 7 (16-Apr-2003): Emulating RLD/RRD instructions fixed, tact length for instructions having (IX+offset), (IY+offset) fixed. MIC sound become better since this change (I hope).
7.1: DAA instruction fixed.

pre-beta pre-release 6 (16-Apr-2003): Loading from TAP and partially from TZX fixed. Saving SNA under 9x/ME/XP fiixed. Debugger under 9x/ME/XP fixed (could not reset breakpoints, and those did not work). Key combination ALT+K added to call keyboard.


http://bonanzas.rinet.ru

mailto: bonanzas@online.sinor.ru

See also other my ZX-Spectrum 128K/48K emulators for DOS:

EMUZ, 1995. Written in C--. Source found recently (2003) and published too.

Z.com, 2003, written in assembler. Minimal by size (6K) but exact emulator (and playable) Spectrum-128K and 48K emulator. Published with source code.