The History of WinAPE
The current version of WinAPE is a Borland Delphi 7 application making use of DirectX through the Delphi DirectX conversion performed by the Delphi Jedi project team.
WinAPE started life as a DOS based emulator called CPCEMU (not to be confused with CPCEMU by Marco Veith) which is still available on the archives, now commonly known as RWCPC.
CPCEMU was written in Turbo Pascal 6. It contained an integrated debugger, used VGA 640x200, 16 colour mode, supported 128K of memory plus 17 16K ROMs and ran a lot of CPC games which did not do screen splits. Sound support was limited to beeps on the internal CPC speaker, and there was no integrated assembler.
CPCEMU was originally developed in early 1994 making it one of, if not the first CPC emulator ever produced.
A short time after Delphi 1 became available under Windows 3.x, CPCEMU was converted to run under Windows using Windows DIB's (Device Independent Bitmaps) to render the display, and introducing a Windows based debugger including memory dump, stack dump, VGA and PSG register display, and an integrated assembler. Most of the existing DOS-based emulation code was re-used, but the rendering engine and memory mapping system was completely re-written. This was the first, and probably the only Windows 16-bit CPC emulator ever developed.
A number of significant improvements were made in the Windows 16-bit version:
- Support for scan-line based CRTC emulation.
- Support for much more memory (64K base memory + 32 16K banks of expanded memory + 17 16K ROMs)
- Support for additional disc formats (.DSK and Xexor .ARC), smart caching.
- Integrated Assembler
- Improved Debugger
- Windows Multi-Media based sound (updated on a per-frame basis).
In early 1998 CPCEMU for Windows got migrated to Windows 95. Using Borland Delphi 3 and the early versions of the DirectX conversions from DGC (The Delphi Games Creator). The name WinAPE (Windows Amstrad Plus Emulator) was given in January 1999. Since early 1998, WinAPE has progressed a long way. Some of the major features implemented in the 32 bit version have been:
- Support for the Amstrad Plus range. Hardware Sprites, DMA sound, 4096 colour palette, hardware split-screen and cartridges (an extra 32 16K banks of memory and new memory mapping schemes).
- DirectDraw support with 256 or 16-bit colour.
- Timing improvements
- DirectSound support (updated at the selected frequency), supports digitised samples, noise and envelope register support.
- Keyboard re-mapping
- Much better CRTC emulation (now runs almost all games, and most demos)
- Support for Windows NT/2000/XP
- Enhancements to assembler, and integration with emulator to allow assembler programs to be entered, assembled and tested in the emulator.
- Version 1, 2 & 3 snapshot support.