
E++ HISTORY (SEE ALSO FUTURE NOTES AT THE BOTTOM)
-------------------------------------------------


1.03
- Found out that you can do 400x300 with VESA 2.  Live and learn.

- I changed the mouse code slightly.  Under Windows 95, the mouse
  driver reported 0 movement every other frame.  I've hacked round
  it a bit, but it seems to work better, now.

- Got the front end going!  Start with your normal options, but
  no machine specified, and E++ will start the interactive front
  end.

- As part of the front end, I've also added DIP switch support,
  so you can set options on the emulated systems.

- Fixed a couple of minor source code issues, and added an extra
  function to Keyboard.

- Fixed a bug which could leave the sound card device open on
  exit.

1.02
- Minor update, for people who have problems - mainly added more
  diagnostics.

- Improved logging, so if it crashes, you can tell where - logs startup
  more completely.

- Added a framerate display.

- Added sound card selection, since autodetection could fail on some
  clone cards.

- No source release for this version.  No point.

1.01
- Brought the binary and source releases together.  With the
  exception of the front end, the source can now be considered
  "finished", so anything added from now on should not need
  serious changes in the future.  Note that the typing has
  been fixed, to aid portability and readability.

- I fixed a stupid bug in the trackball support - it overflowed
  a byte if you moved the mouse too fast, causing motion in the
  wrong direction.

- Really cleaned up the source code - I'm working on the documentation
  now, before I add anything else.

- I upped the resolution for those games which won't fit in 320x240.
  It's a bit small, but at least you can see the whole screen.  I
  tried to do a bit of real ModeX support, but didn't get very far.

- Made source more easily available via the Web.  I'll put a separate
  documentation archive on there once it's ready (note that the types
  listed in the inclosed docs are incorrect - see the source for correct
  types.  There are no API chages other than typing, however).

1.0
- No further bugs reported, so I've taken it out of beta.

- Added Pokey support, thanks to the brilliant Pokey emulator
  by Ron Fries.  Centipede now has sound.

- Added trackball/mouse support to the framework.  Centipede
  now has trackball support.

- Spectrum should be a touch faster now, also.

1.0b1 - Update
- Some people are sill having problems with the VESA mode.  It
  seems that on some cards UNIVBE only supports banked mode, and
  on others it only supports linear mode, so I now try both. I
  also will resort to ModeX if VESA 2 is not available, but until
  I get real ModeX support, this is slow (you'd need a mid-high
  Pentium).

* Source code released *

1.0b1
- The emulator framework is now complete, so the program has
  reached beta.  The code is nearly ready now, and should be
  available in a few days.  The front-end is still alpha, and
  is non functional.

- Added M6502 emulation, and hence...

- Added Centipede!  No sound, but should be 100% otherwise
  (except that the bottom 8 pixels are chopped - I'll fix it).

- Character and sprite support is now finished, also.

- Various other fixes and code clean-up.

0.08
- The emulator framework is nearly complete now.  Internal changes
  have allowed me to easily add two varient games - Pleiads and
  Lunar Rescue.

- Error logging facility added.  If you have problems with the
  program, then check the Epplog.txt file for errors.

- Started work on the frontend.  No functionality yet, but the
  structure is in place.  Run E++ with no options to see what it'll
  look like.  If anybody wants to design a good 8x8 or 8x16 font,
  then contact me.

- Fixed a few memory leaks.  They wouldn't cause a problem before,
  but would hurt when the front end is going.

- Added a vblank synching graphics driver.  The screen refresh of
  your monitor will be a bit too high, but Phoenix looks much better
  with vsynch'ing enabled.  Use -synch to enable.

0.07
- I have my first non-bitmapped system done: Phoenix.  No sound
  yet, but other than that, it works pretty well.

- Re-write of the graphics routines means that VESA 2 linear mode
  is no longer required, only banked mode, which should be supported
  by all cards.  You need 320x240 resolution support, but I don't
  think that should be a problem?  Let me know.

- If your sound card can't be detected, or you don't have one, the
  emulator can now still run, but without sound.

0.06
- Wasn't planning on another release yet, but I re-did a load of
  the Spectrum routines, and got really good results.

- Spectrum graphics are now much faster, and no longer need to
  frame skip (it only updated every 1/25s before).  I get about
  100 fps without throttling on my P133, so you should be able
  to get full speed on most Pentium-class machines.

- The Speccy sound is _much_ better.  This is about as good as I
  think you could want from a sound card.  The sound timing is
  correct, so there is no distortion of the waveform when the
  Z80 runs fast.  The pitch _should_ be correct, but verification
  would be nice.  The sound will be patchy if your machine is
  too slow to maintain 50fps, though.

0.05a
- Special VESA 1.x version.  Don't use this unless 0.05 won't work.
  It'll be a bit slower due to the bank switching (which will
  really hit the Spectrum driver).

- There is some preliminary Phoenix support in this version (since
  I did a quick unscheduled hack to my working code).  It only
  displays text, instead of the correct characters, and is quite
  trippy to play.

0.05
- Added support for joysticks, both real and keyboard-emulated.

- beefed up main() to allow correct command-line parsing and easy
  selection of emulator.

- Added first arcade machine - Space Invaders.  I was going to do
  Pacman, but I changed my mind.  I'll do that next, unless I
  decide to do Centipede first (to test the 6502).  Not bad, it
  only took a couple of hours to do.

- I know now why the Spectrum emulation is so slow, and I can fix
  it, but since it runs OK on my machine, I might not get around to
  it for a few days.  I was quite pleased that the Invaders emulator
  runs at 150 fps without throttling, since it means that the basic
  core should be fast enough.

0.04
- Completed sound implementation.  Quality is OK; could do it better,
  but it would be slower.  I might add an option in later versions.

- Fixed keyboard bugs, and mapped the ULA to ALL even devices.

- Completely new throttling scheme.  Will run full speed, but no more,
  on any capable system.

- Hacked a new DOS graphics library - still needs much work to improve
  speed, but it should be a significant improvement.  New library
  requires VESA 2.0 support.

- I'm getting stuck as to how I can get much more speed out of the
  emulator core, now.  I might put the inclusion of an assembly Z80
  core higher up the priority list.

0.03
- Major source code restructuring.  Significant speed-up, should also
  now throttle correctly on any computer (throttling is still a hack
  at the moment, though - this'll come out in the graphics rewrite).

- Sound partially emulated for Spectrum, but not actually played yet.
  The Spectrum should not need to do any more calculation than it is
  already in order to get full sound.

- Altered file names, so they are valid DOS names.

0.02 
- Some small alterations.  Different throttling routing for faster 
  computers only.

0.01 Pre-release
- First public release.  Messy and slow.


E++ FUTURE
----------

Still need to do a ROM librarian.  I've started to look at
Neil's ROMlib, as a way to store settings, samples and ROMs
on a per-system basis.

At some point I need to get around to adding 6809 and 68000
emulators, and also more sound chips.