- some debugger changes related to ignore breakpoints
- it is possible to delete single breakpoints in Lua scripts by using a negative priority value
- minor 6845 CRTC emulation bug fix
- fixed bugs in closing the debugger window with the Esc key
- implemented CPC floppy drive controller (uPD765) emulation:
- it supports standard and extended .DSK image files, as well as using a real disk in the PC floppy drive (the latter is not very useful in practice, since it is limited to standard PC format DD (720K) disks, which are not supported by AMSDOS)
- 4 drives can be emulated (although AMSDOS will only use 2)
- there is (not perfect) emulation of the timing of disk rotation, stepping, head (un)load, and data transfers; however, this may not work if the image file includes a track format that is not possible on a real DD disk (~6250 bytes per track)
- the FORMAT TRACK (0x0D) command is unimplemented - it will always report a write protect error
- the floppy drive emulation has not been tested extensively yet, so there may be problems with unusual disk formats, rarely used FDC commands and parameters, and some copy protections
- reading the I/O ports 80H-9FH in the debugger will return some debugging information about the FDC emulation (see the README file for details)
- changes to the installer/packaging: new machine configuration files have been added that include AMSDOS (the default is now CPC 6128 with AMSDOS), the disk.zip package includes an empty CPC disk image, and on Windows .DSK files can be associated with the emulator
- the CPC video emulation now supports half-character resolution scrolling by changing the horizontal sync width
- improved 6845 CRTC emulation accuracy, fixing problems in some CPC games
- it is possible to disable software control of the tape motor (this is useful mainly to work around some buggy Enterprise software)
- when using the PC floppy drive and a real disk for WD177x emulation, the geometry parameters are now also queried from the system on Linux
- if the WD177x emulation detects a valid FAT header at the beginning of a disk or image, it checks the geometry stored there, and if it does not match the emulated hardware geometry, an error is reported; this can be disabled by specifying all three parameters manually
- the Windows installer uses new download locations for the ROM package, since the previous ones no longer work
- the ROM package has been updated (new versions of Enterprise ROMs)
- minor fixes/improvements in DAVE and NICK emulation
- on the first page of the debugger window, the memory dump can now also display I/O ports
- the debug display of I/O registers has been changed slightly for CPC (shows the currently selected CRTC register, and the CRTC memory address)
- the monitor emulation allows less difference from the standard vertical refresh rate than in the previous versions
- a 189 MB (12x15.75 MB FAT12 partitions) .VHD file has been added to the disk image packages
- the Windows installer now includes LuaJIT 2.0.0 beta5 in addition to the stable 1.1.6 version. To use the faster beta version, copy or rename lua51-2.dll to lua51.dll, removing or renaming the original lua51.dll file
- some optimizations in Enterprise and CPC emulation
- some CPC emulation bugs have been fixed
- implemented ZX Spectrum 48/128 and Amstrad CPC emulation; for now, only a basic configuration of these machines is supported (there is no disk emulation yet), although the emulation accuracy should be good. See the README file for more details
- new command line options for selecting the machine type to be emulated: -ep128, -zx, and -cpc
- undocumented Z80 flags are emulated more accurately - the only instruction that is still not correct is 'BIT n, (HL)'
- fixed bug in the emulation of DAVE port B6H, which prevented some games from working
- reduced the time before the floppy write buffer is flushed from 4 seconds to 1 second
- the editor buffer in the monitor has been increased from 120 to 160 lines
- the monitor TR (trace) command has a new optional parameter now that controls the printing of additional information about the video position and Z80 registers
- new Lua functions: readWord(), readWordRaw(), writeWord(), writeWordRaw(), getIFF1(), getIFF2(), setIFF1(), setIFF2(), getVideoPosition(), and getRawAddress(); these are documented in the README file
- detailed information about Lua errors is now also printed if the error occurs in an extension function implemented by the emulator
- segment:offset style breakpoints allow the offset to be greater than 3FFFH (the two most significant bits are ignored, but must match when specifying an address range)
- the Z80 disassembler in the debugger now supports more undocumented instructions
- fixed bug in the Lua example script
- the file I/O extension ROM (epfileio.rom) has been modified so that EXOS block read and write (6 and 8) calls are implemented in Z80 code, and not in the emulator; this reduces the speed of these operations to a level similar to disk drives, and allows watchpoints set on the read or written memory area to work
- the source code of epfileio.rom is included
- implemented IDE hard disk emulation, with support for up to 4 2 GB image files in raw or VHD format; a 126 MB disk image with 4 FAT12 formatted 31.5 MB partitions is also included for use with the emulator
- more accurate Z80, video memory, and NICK I/O port timing;
note that this change breaks demo compatibility with previous versions
- improved NICK emulation: all possible video modes, including undocumented and "invalid" ones, are now emulated, and some bugs have been fixed as well
- a 4-channel 8-bit external DAC is emulated at ports F0h to F3h
- it is now possible to load and use epmemcfg format memory configuration files, which allow for avoiding the limitations of the GUI based memory configuration; the file format is documented in README
- DAVE sound emulation fixes
- the 'motor on' bit of WD177x is emulated (the RockDigi demo now runs)
- on Windows, native file selection dialogs are also used in tapeedit.exe
- machine configurations generated by makecfg automatically enable or disable the 'virtual file I/O' setting, depending on whether epfileio.rom is included
- the debugger prints more detailed information about syntax and runtime errors in Lua scripts, and there is a new button to insert an empty breakpoint callback function
- fixed interlace in single buffered OpenGL mode at quality=0
- fixed compile error on Linux when building without SDL, or using old SCons or Lua versions
- some other minor bug fixes, and optimizations
* new TV emulation mode when using OpenGL video output; it is activated by setting the 'quality' parameter to 4, and requires OpenGL 2.0 or later with shader support. This mode emulates S-video output on a PAL display (Y/C filtering, delay line, and phase error), but the quality is also improved by using 32-bit textures instead of 16-bit
- Various improvements have been made to the debugger:
- memory read watchpoints can have a type of r or x to break on data or Z80 instruction reads only; the Ignore data reads button has been removed
- new "step" buttons for stepping to the target of any conditional branch instruction (Step into), the 16-bit address at the top of the stack (Return), or any 16-bit address specified by the user (Step to)
- the memory dump, CPU, and I/O register displays include more information now
- in addition to the default hexadecimal format, it is also possible to specify numbers in the monitor in binary (e.g. %1010), octal (12o), and decimal (10l) format
- the Step over button can also be used to skip conditional JP and JR instructions
- fixed the flickering window effect while using the step buttons
- Several new GUI keyboard shortcuts have been added; since these shortcuts can only be triggered while the Alt key is pressed, in the default configuration only the right Alt key (and, on Windows, the menu key) are bound to the Enterprise emulation now.
- Native file dialogs are used instead of FLTK on Windows.
- Some improvements have been made to the installer:
- many new ROM files and machine configurations are installed
- on Windows, it is possible to associate snapshot and demo files with the emulator
- ROM images are downloaded as a single compressed archive, rather than separate uncompressed .rom files, for faster installation
- the Win32 emulator executable has an icon and includes file information now
- FILE: is the default device on startup when using the epfileio.rom extension.
- Floppy drive emulation improvements: implemented the 'write track' command (formatting), image file I/O is buffered for improved performance when using real disks, and a few emulation bugs have been fixed.
- In the memory configuration, ROM files can also be loaded to segments 40h to 43h.
- Video display improvements and bug fixes; the screen is no longer blanked while the emulator is paused; interlace effect is also displayed at lower quality settings (1 and 2) in OpenGL mode.
- Some NICK emulation fixes (note: the timing of demos recorded with older emulator versions may possibly be incorrect).
- If there is an error initializing the display in OpenGL mode on Linux, the emulator will automatically switch the buffering mode, or fall back to software video to fix the problem.
- Screenshots are saved in 256 color RLE compressed BMP format now, instead of TGA.
- A few minor user interface improvements in the display, sound, and disk configuration windows.
- The process priority of the emulator can be set in the menu (this is currently only implemented on Windows).
- If not specified by the user, the extension is automatically added to file names by the file dialogs when saving files.
- New 'Gtk+' GUI theme (-colorscheme 3).
- Various minor bug fixes.
Changes in version 2.0.5:
- changed the debugger window layout so that there is a larger window
with only two tabs; also more information is displayed, and the
mouse wheel can be used for scrolling the disassembly and memory
- implemented Lua scripting in the debugger; this makes it possible to
write complex rules for breakpoints, but can have other uses as
well, since the script can read and write memory, I/O ports, and CPU
registers, in addition to having access to the standard Lua library
- added a simple monitor to the debugger; the supported commands
include assemble, disassemble, trace, memory and I/O port dump and
modify, printing and changing CPU registers, memory compare, copy,
fill, search, load and save, and more (use ? to print the list of
available commands, or ? N for help on command N)
- improved the audio quality of AVI recording, at the expense of
making it somewhat slower
- added new command line option for selecting the GUI style and colors
- a few minor bug fixes and improvements
Changes in version 2.0.4:
- keyboard map can be configured with the GUI
- external game devices like joysticks and gamepads are supported, and can be assigned in the keyboard map like normal keys
- video and audio output can be recorded to AVI files
- it is now possible to use audio files (WAV, AIFF, etc.) as tape images, with support for all tape features except markers; a simple linear phase FIR filter can also be applied to the input signal
- improved television vertical sync emulation
- new command line option for loading a snapshot or demo file on start-up
- added hue shift to the display options
- emulation speed percentage and floppy drive LEDs are now displayed on the GUI; it is also possible to change the emulation speed
- various minor bug fixes and improvements
Changes in version 2.0.3
- fixed interrupts in Spectrum emulator
- other minor fixes, including changes to allow for compiling with Microsoft Visual Studio 2005
Changes in version 2.0.2
- implemented Spectrum emulator
- implemented real time clock
- in the default keyboard map, Home can also be used now as HOLD, and End as STOP; the original keys (Pause/Break and PrintScreen/SysRq) did not work on some machines
- keyboard matrix state is no longer cleared on soft reset
- NICK registers are initialized to random values on start-up
- added new ROM images and machine configuration presets
- the makecfg utility now asks for an installation directory if started without command line arguments, and automatically creates directories
- minor improvements to GUI menu layout