2003-09-30 Philip Kendall <pak21-fuse@srcf.ucam.org> * Fuse 0.6.1.1 released. * Make the SVGAlib UI compile (Philip Kendall/Russell Marks, with thanks to Josetxu Malanda). * Various RZX-related bugfixes (Philip Kendall/Russell Marks) 2003-09-13 Philip Kendall <pak21-fuse@srcf.ucam.org> * Fuse 0.6.1 released. * A Z80 core rewrite such that it's now generated from the regular patterns in the instruction set. This shouldn't have any effect as yet, but will make performance enhancements easier to do in the future (Philip Kendall). * On the TC2068, the ROM traps apply only when in the EXROM and memory contention applies only in the HOME bank (Fredrick Meunier). * On the 128K Spectrum, use the correct port mask when checking for contention on the 'memory control' port (Philip Kendall). * RZX competition mode (Philip Kendall). * Add AY logging to .psg files (Matthew Westcott) * Optionally autoload +3 and TRDOS disks when they're inserted (Philip Kendall). * Fall back to read(2) and malloc(3) if mmap(2) fails or is unavailable (Philip Kendall). * Add 'out' and 'tbreakpoint' commands, conditional breakpoints and the ability to use general numeric expression to the GTK+ debugger (Philip Kendall). * Allow Fuse to work with GTK+ 2.x (Marek Januszewski). * Add a scrollbar to the GTK+ debugger's disassembly window (Philip Kendall). * New AdvMAME3x graphics scaler (Fredrick Meunier/ScummVM team) * In the GTK+ UI, deactivate menu items when they're not appropriate (Philip Kendall). * Make bright black be the same as 'normal' black in the framebuffer user interface (Witold Filipczyk). * Add confirmation dialogs before resetting or quitting under the GTK+ UI (Philip Kendall). 2003-05-31 Philip Kendall <pak21-fuse@srcf.ucam.org> * Fuse 0.6.0.1 released * [SECURITY] Fix race conditions in trdos.c which could be used to overwrite any file owned by the user running Fuse (Philip Kendall). * Fix a off-by-one error in the AdvMame2x scaler (Fredrick Meunier/ScummVM team). 2003-04-27 Philip Kendall <pak21-fuse@srcf.ucam.org> * Fuse 0.6.0 released. * Pentagon 128 support (Fredrick Meunier, with thanks also to Dmitry Sanarin for Glukalka from which the TR-DOS emulation was taken). * TC2068 support (Witold Filipczyk/Darren Salt/Fredrick Meunier). * Graphics filters: essentially arbitrary filters which can be applied to the Spectrum's screen to give scanlines, smoothing and all sorts of other possiblities (mostly Fredrick Meunier and Philip Kendall; based on the same feature in ScummVM). * Transparent monitor/debugger (Philip Kendall). * A rewrite of the display code to update only those rectangles which have been changed, rather than entire lines. Performance improvement, and also allows effects similar to flipping between the 128K Spectrum's two screens to work much better (Fredrick Meunier/Philip Kendall). * New SDL user interface (Fredrick Meunier). * 16K Spectrum support (Fredrick Meunier). * Load and save .scr files, including vbSpec's Timex mode extensions (Fredrick Meunier). * Selectable ROMs for each machine type (Philip Kendall). * Optionally writable 'ROM's (Philip Kendall). * Get the behaviour of the TC2048 video modes correct (Witold Filipczyk). * Optional frame-skipping on output (Fredrick Meunier). * New --(no-)aspect-hint option to not give aspect hints to the window manager under GTK+ or Xlib UIs. Useful for some window managers which otherwise won't let you resize Fuse's window (Philip Kendall/Russell Marks). * Lots of other minor bug fixes/improvements (everyone mentioned above). 2002-12-09 Philip Kendall <pak21-fuse@srcf.ucam.org> * Fuse 0.5.1 released * Separate out libspectrum (the file format handling) into its own library; changes occuring solely in libspectrum's code will not be listed in this ChangeLog. For structural reasons, the glib replacement code is also in libspectrum (Philip Kendall). * Also separate the Fuse utilities (tzxlist, etc) into their own package (Philip Kendall). * Add ability to load and save +2, +2A, +3 and TC2048 snapshots; also load Pentagon snaps as 128K (Philip Kendall). * Add ability to automatically start tapes loading when they're opened (Philip Kendall). * If filenames without options are given on the command line, attempt to load them as the right sort of file (Philip Kendall). * Use libspectrum's machine numbering and capabilities facilities (Philip Kendall). * Make the framebuffer UI work (Darren Salt). * Add File/Recording/Record from snap option to begin input recording from a snapshot (Philip Kendall). * Fix possible segfault when displaying the keyboard widget (Russell Marks). * Make widgets handle their window being resized (Darren Salt). * Redraw the display only if the data has actually changed; can give a nice performance improvement (Philip Kendall). * Z80 core fixes on SCF, DEC, HALT and INC SP (Boris Donko). * Memory pages 1, 3, 5 and 7 (not 4, 5, 6 and 7) are contended on the 128K/+2 (Philip Kendall, with thanks to Steve Snake and Mark Woodmass). * Get the mask right for the 128K/+2 memory control port (Philip Kendall, with thanks to Mark Woodmass). * Add File/Save Screen option to save the current screen to a .png file (Philip Kendall). * Additional options to configure to make it easier to have the support libraries (libspectrum, lib765, libdsk, etc) in non-system directories (Philip Kendall). * Make keysyms.c be UI-specific, rather than containing information for all UIs (Darren Salt). * Add support for loadable/savable configuration; you'll need libxml2 installed (Philip Kendall). * Add a Tape Browser widget (Philip Kendall). * Put the keyboard help in a separate window when using the GTK+ UI (Philip Kendall). * Changable emulation speed (Philip Kendall). * Change to lib765 0.3.0 for Mac OS X compatability (Frederick Meunier). * Reset the Timex's SCLD when loading snapshot (Philip Kendall, Frederick Meunier). * Timex machines have no loading noise (Frederick Meunier). * Distribute glibc's getopt so that long options are available even if the native libc doesn't provide them (Philip Kendall). 2002-08-22 Philip Kendall <pak21-fuse@srcf.ucam.org> * Version 0.5.0 released * Support for RZX v0.12 (Recording/playback code by Philip Kendall, file support by Darren Salt and Philip Kendall). * +3 support using John Elliott's lib765 and libdsk libraries (Darren Salt/Philip Kendall). * TC2048 support (Fredrick Meunier). * Z80 core fixes: timing of OTDR and interrupt routines, R register during interrupt and HALT and contention of LD (nnnn),A (Philip Kendall, with thanks to Mark Woodmass and Boris Donko). * Sound improvements: add beeper pseudo stereo and remove beeper fade out (Russell Marks). * Add two new utilities for dealing with RZX files: rzxdump(1) and rzxtool(1) (Philip Kendall). * Support for TZX raw data blocks (Darren Salt). * Patches to make Fuse compile and run on OS X. You'll need the latest version of the auto* tools, XFree86 and GTK+ 1.2 installed (Fredrick Meunier). * Add an explanation of Fuse's main emulation loop and events system to hacking/implementation_notes.txt * Add optional use of 640x480 mode with the SVGAlib UI (Darren Salt/Philip Kendall). * Lots of other minor bugfixes (Darren Salt, Russell Marks, Philip Kendall and probably some other people as well). 2002-03-26 Philip Kendall <pak21-fuse@srcf.ucam.org> * Version 0.4.2 released * Simple support for a very limited form of RZX files (Philip Kendall). * Sound support for OpenBSD and Solaris (Alexander Yurchenko). * Use the MIT-SHM extension if available under the Xlib UI (originally from Darren Salt, extensively rewritten by Philip Kendall). * A new Options/Sound menu, giving the option to turn sound on and off (Philip Kendall). * Under the GTK+ UI, press F1 to get a pop-up main menu (Russell Marks). * Add the ability to select which device to use for sound output (Philip Kendall). * Create a dialog box when errors occur (idea from Darren Salt, written by Philip Kendall). * Titles for the GTK+ UI file selection dialog boxes (Darren Salt). * Update the man page (Russell Marks). * Fix the segfault which could occur if you pressed Page Down in the file selector widget with less than a full screen of files in (Philip Kendall). * Get the R register emulation correct if a DDxx or FDxx instruction doesn't use IX or IY (Philip Kendall). * Get the timings of tape edges write (previously, we could be slow by up to (length of last instruction) t-states) (Philip Kendall). * Don't write to the printer unless we get a valid stop bit (Russell Marks). * Open the sound devices non-blocking to avoid hangs on some systems (reported by Erik Kunze, fixed by Alexander Yurchenko). * Don't write SLT data to .z80 files unless some actually exists (reported by Russell Marks, fixed by Philip Kendall). * Search a system-wide directory for the ROMs; see Debian's spectrum-roms package for why this will be useful (Philip Kendall). * Get the lengths of ROMs correct when munmap(2)ing them (Darren Salt/Philip Kendall). * Add a small document describing the preferred coding style for Fuse (Philip Kendall). 2002-02-04 Philip Kendall <pak21-fuse@srcf.ucam.org> * Version 0.4.1 released. * Add contention of memory and io ports. Should make multicolour effects better (Philip Kendall). * Emulation of reading from unattached ports (eg #FF). Makes some more games (eg Sidewize) work (Philip Kendall). * Add a keyboard picture -- see the Help menu (Philip Kendall, Russell Marks). * Support for .slt files (Philip Kendall, Darren Salt). * Support for the ZX Printer (48K), serial printer (128K/+2) and parallel printer (+2A) (Russell Marks). * Add the ability to select a machine type directly, rather than cycling through the available machines (Philip Kendall). * Add command-line options; see the man page for details (Philip Kendall). * Lots of improvements to the widgets to make them much more similar to the GTK+ menus (Philip Kendall). * Cleaner shutdown on 'impossible' conditions; especially useful with the SVGAlib UI (Philip Kendall). * Add 'tape rewind' and 'tape clear' options (Philip Kendall). * Make tzxlist able to deal with multiple files, and give it a man page (Darren Salt). * Man page update (Russell Marks). * Remove coredump if an empty .tzx file was loaded (Philip Kendall). * Various bits of codebase reorganisation. Most significant is the move of each UI to its own directory (Philip Kendall). * Fix a fairly major thinko in libspectrum which meant that it was using approximately twice as much memory as it needed to (Philip Kendall). * Things probably of more interest to developers: + A --enable-warnings option to configure to turn on lots more warning options if you're using gcc. + Detect gcc properly in configure.in. + Remove many of the warnings generated when --enable-warnings is used. + Add a hacking/ui.txt file giving details on how to implement a new UI for Fuse. (Philip Kendall). 2001-12-20 Philip Kendall <pak21-fuse@srcf.ucam.org> * Version 0.4.0 released. * The big one: .tzx support. Fuse will now read in all the common block types from .tzx files (Philip Kendall). * Ability to write out tape files (Philip Kendall). * Various improvements to the widget dialog boxes: cursor keys, Page Up, Page Down, Home and End all do what you would expect, remove the use of `scandir' function to improve inter-Unix compatability, append `/' to directories to make them more obvious, stop the hangs if you tried to start a widget whilst one was active. (Philip Kendall, Russell Marks). * .z80 snapshots: deal with the case of the end marker being preceeded by 0x00 or 0x00 0xed (Philip Kendall). * Lots of sound improvements (Russell Marks). * Addition of tzxlist utility to list the blocks found in a .tzx file (Philip Kendall). * Have a man page (Russell Marks). * Emulation of the AY-3-8912's register 15 (Russell Marks). * Kempston joystick emulation (Russell Marks). 2001-10-07 Philip Kendall <pak21-fuse@srcf.ucam.org> * Versions 0.3.2 and 0.3.2.1 released. * Added file selection dialog boxes for snapshot and tape loading, and (GTK+ only) snapshot saving (Philip Kendall, Matan Ziv-Av). * Allowed changing of Issue 2/3 keyboard at run-time. (Philip Kendall). * Basically complete rewrite of the tape handling routines (Philip Kendall). * Allow `slow' tape loading with border effects, sound, et al. (Philip Kendall). * Changed the default install location to `/usr/local' (Philip Kendall). * Generate keysyms.c from keysyms.dat; allows me automatically keep the Xlib/GTK+ and svgalib key tables in sync (Philip Kendall). * Beginnings of `widgets': dialog boxes etc. for non-GTK+ user interfaces (Matan Ziv-Av, Philip Kendall). 2001-08-13 Philip Kendall <pak21-fuse@srcf.ucam.org> * Version 0.3.1 released. * Removed need for glib (but it's still used if present) (Matan Ziv-Av). * Separated OSS (Linux) specific sound code out into separate files, removed most floating-point calculations from the AY code, added support for 16-bit only devices, and added some AY subsampling (Russell Marks). * Fuse now runs on a StrongARM 1110, using the new framebuffer UI (Matan Ziv-Av). * Major tidy-up of display.c and event.c (Philip Kendall). * Implemented a `lazy write' scheme for the screen. Makes rainbowing effects _much_ faster (and helps elsewhere as well) (Philip Kendall). * Further improvements to the lazy write scheme - consecutive lines which have changed are copied to the screen in one block, rather than as separate lines (Philip Kendall). * Complete rewrite of the snapshot code; now handles .z80 and .sna snapshots (Philip Kendall). * Started separating some bits of code into subdirectories; currently `libspectrum' for the snapshot code, and `z80' for the Z80 core (Philip Kendall). * Added `AUTHORS' file (Philip Kendall). * Large rewrite of the code for changing machine type (Philip Kendall). * Made `make install' work (Philip Kendall). 2001-01-31 Philip Kendall <pak@ast.cam.ac.uk> * Version 0.3.0 released. * Fixed a large bug in the 48K snapshot saving routine. * Added rudimentary GTK+ interface. * Added svgalib interface (thanks to Matan Ziv-Av). * Made peripheral emulation much more modular, and added proper decoding of ports. * Fixing timings for INI, OUTI, IND, OUTD and the repeated versions (they were all one T-state too short). * Sound support under Linux (thanks to Russell Marks and Matan Ziv-Av). 2000-12-17 Philip Kendall <pak@ast.cam.ac.uk> * Version 0.2.1 released. * 2x2 and 3x3 displays now available. * Border emulation is back (with rainbowing). * Better keyboard emulation -- Abu Simbel Profanation now works (and Issue 2 emulation is now available as a compile-time option). Thanks to Santiago Romero for putting me on the track of this bug. * Rewrite of Z80 core: one function call now runs the Z80 core until something interesting happens, as determined by a list of `events'. Thanks to Miklos Szeredi's `SpectEmu' for the inspiration for this change. 2000-09-27 Philip Kendall <pak@ast.cam.ac.uk> * Version 0.2.0 released * Lots of other changes as well. * Loads of changes to remove Allegro and replace it with Xlib calls. 1999-08-22 Philip Kendall <pak@ast.cam.ac.uk> * Version 0.1.3 released. * Added +2A emulation. * Can now save snapshots. * Screen rainbowing effects present. * Console version runs at the correct speed (almost. It runs at 50.00Hz, rather than the correct 50.01Hz (128K/+2) or 50.08Hz (48K) ). * Added ROM trap to read from tape files. * Other bug fixes/improvements. 1999-08-03 Philip Kendall <pak@ast.cam.ac.uk> * Version 0.1.2 released. * Added support for running on the Linux console (Thanks here go to Thomas Harte). Console version does not eat up 100% of CPU time :-) * Added +2 emulation (Just 128K emulation with different ROMs!) * Flashing characters implemented. * Bug fixes/improvements (Thanks to Erik Kunze for some helpful suggestions) 1999-07-19 Philip Kendall <pak@ast.cam.ac.uk> * Version 0.1.1 released. * Added border emulation. 1999-07-18 Philip Kendall <pak@ast.cam.ac.uk> * Version 0.1.0 released. $Id: ChangeLog,v 1.31.4.3 2003/09/30 11:41:26 pak21 Exp $