WinAPE32 - Bug List and Features not yet implemented


Version 2.0a  4-Nov-2001

Z80 Assembler
=============

- "limit" command does not work exactly as MAXAM. MAXAM appears to
  use a different limit when writing code to a file.

- "Find/Replace" not yet implemented
  * 12-Sep-2001 - Implemented. Bug in Find Again still to fix (F3).

- Possibility of including coloured text to higlight comments,
  reserved words etc.
  * 15-Sep-2001 - Done.

- Possibly replace "write direct" to be the default, define extra
  parameters for write direct to allow secondary ROM selection for
  plus machines and extended ROM select register usage (ie ROM >= 128).
  * 1-Mar-2000 - Done. Need to check extended ROM select stuff.



Debugger
========

- Visibility of windows under DirectX full screen mode needs to be
  addressed. Improved in version 22-Mar-1999

- Initial position of Windows to be validated on first view (after mode
  change) so window does not appear outside the bounds of the display.

- Need to display extra information for Plus machines, this could include
  secondary ROM mapping, ASIC unlock, interrupt pending state. Some
  of this may be better on the Registers window.
  * 22-Mar-1999 - Done. Need secondary ROM mapping register and Interrupt Control/
                  Status (on debugger window).



Stack Dump
==========

- Need to verify that the current SP is being followed properly.



Memory Dump
===========
  
- Require extended selection for Secondary ROM mapping and extended
  ROM mapping.
  * 1-Mar-2000 - Done.

- "Find" dialog to be implemented.
  * 1-Mar-2001 - Done.

- Edit mode to be included.
  * 1-Dec-2000 - Done.

- Maybe include a "Load Data" and "Save Data" function.
  * 1-Dec-2000 - Done.


Registers
=========

- Inclusion of ASIC information, ie. Hardware Sprite Position/Size,
  extended colour information, split screen info DMA state etc. This
  could be done with a separate window probably.
  * 22-Mar-1999 - Done. Used and "ASIC" button to extend the form up/down.
                  Displays palette, sprite info, Programmable Raster Interrupt
                  scan line (PRI), Split Screen Scan line (SSS), Split Screen
                  scan address (SSSA), Soft Scroll control (SSC), Interrupt
                  vector (IVR), DMA Control/Status register (DCSR) and
		  DMA status for each channel (enabled, position, pause pre-
                  scaler). Hints provide RGB values for palette, and current
                  pause counter, loop counter and loop address for DMA.
  * 1-Apr-1999  - Also included ASIC unlock state, ASIC RAM state and
                  Secondary ROM mapping information.


Disassembler
============

- As for memory dump, needs find dialog and extended ROM selection
  * 1-Mar-2000 - Done.


Snapshots
=========

- No code has been updated to allow the support of snapshots with v2.0a.
  Some may work, most probably will not.


Emulation
=========

CRTC
----

- Complete rewrite of Z80 emulation to allow correct timing and multiple
  palette changes etc per scan line. This will allow very accurate CRTC
  emulation to be performed. Probably Version 2+.
  * 25-Sep-2001 - Most Done. Still need some refinements to the VSYNC emulation.
  * 4-Nov-2001 - Rewritten renderer and monitor emulation to support Monitor
                 HSYNC emulation, horizontal and vertical soft-scroll, and
                 accurate sprite emulation. Still need to add support for
                 changes to sprites during a scan line.

AY-3-8912
---------

- DirectSound implementation of AY-3-8912 emulation routines.
  * 22-Mar-1999 - All done except hardware envelope routines.

  * 1-Apr-1999 - Complete rewrite using code derived from MAME YM-2149
                 emulation routines. Envelopes now implemented. Minimal
                 aliasing effects on higher frequencies.


Keyboard
--------

- Keyboard mapping currently maps both function keys and joystick to
  PC numeric keypad. Need to remap and use NumLock key to swap etc.
  * 29-Mar-1999. Done. Added keyboard definition & load/save options to
                 the Setup form. Created a button for the setup form.


uPD765A
-------

- Device IO under Win 95/NT doesn't work at all (Microsoft's fault)
  * 25-Sep-2001 - Added support for ROMDOS D1 under Windows 2000/NT.

- .ARC file support bug causes screen corruption & reset
  * 1-Mar-2000 - Fixed.

- ZIP file support. Implemented with one of two methods:
  1.  Replace standard Win 95 file selection with one that allows drill
      down through ZIP file directory entries.
  2.  Add an extra dialog if a ZIP file is selected.

- Possibly split the DISK selection dialog into a number of separate
  dialogs (eg. One for Drive A, one for Drive B)

- Given the above two problems it may be a good idea to write my own
  file selection dialog box and include the ability to select floppy
  drives and formats.

- Seems to be a couple of bugs with image handling when disc changed.
  Found one DSK image with extra sectors added after changing to/from floppy.


ASIC
----

- Need to implement soft-scroll emulation
  * 4-Nov-2001 - Done. Completed implementation of both horizontal and
                 vertical.

- The following code does not work on a real CPC+
    ld bc,#7f10
    out (c),c
    ld bc,#54
    out (c),c

- Read of address sprite magnification registers does not return value
  written. #6004 returns Sprite 0 X Position LSB, need to check other values.


Other
-----

- Timing problem if emulation of frame > 20ms, frames cut from emulation
  cause emulation to run > 50FPS, need to test for debug/pause, and use
  a cumulative timing algorithm to average the frame rate.
  * 22-Mar-1999. Initial improvements for non-DirectSound emulation work well.
                 Initial implementation of DirectSound buffer timing still
                 require some debugging. Sometimes runs > 100% (probably due
                 to buffer looping causing position to be compared incorrectly).
  * 1-Apr-1999.  Found and fixed buffer timing problem. Added a sound timing
                 adjustment facility to INI file. "Sound Frame Delay"


Software problems
-----------------

Prehistorik II
 - Vertical screen flicker
     Can't fix without NOP timing
   * 25-Sep-2001 - NOP timing implemented (fixed this problem)

3D Stunt Rider
 - Colours at side of track wrong
   * 4-Nov-2001 - Ok, tested as of v2.0a 

Zap't'balls Advanced
 - Moving menu display incorrectly
   * 4-Nov-2001 - Ok, tested as of v2.0a

 - Code entry dodgy
   * 4-Nov-2001 - Ok, tested as of v2.0a

Footballer of the Year (Cracked by me)
 - Keyboard problem. Seems to occur on MTMW also. Does it work on a
   real CPC? (I don't have one)

Garfield - Big Fat Hairy Deal
 - Text at bottom of screen chopped in half
   * 4-Nov-2001 - Ok, tested as of v2.0a

Into the Eagles Nest
 - Movement bug. Character appears to jump from one place to another
   * 4-Nov-2001 - Ok, tested as of v2.0a

Knightmare
 - High pitched buzz in background of intro music
   * 4-Nov-2001 - Sound is Ok as of v2.0a, anybody know how to start
     the game?

Last Ninja 2
 - Sounds with periods up to 5 cause high pitched buzz, continues into
   the game
   * 4-Nov-2001 - Ok, tested as of v2.0a

Live and Let Die
 - Joystick right direction doesn't appear to work

Mission Elevator
 - Black screen when game started

Matchday II
 - Thinks a key is always pressed

Clever & Smart
 - Loading music dodgy?? Haven't tested since I did some more fixes
   * 4-Nov-2001 - Ok, tested as of v2.0a

Manhattan '95
 - Answering (O)ui to Presentation question gives "Memory Full" error.
   Does this work on a real CPC?

Nodes of Yesod
 - Music sounds weird at start

Nosferatu the Vampyre
 - Colours appear wrong at start, too much black?
 * 1-Mar-2000 - Fixed. Error with mapping of one non-Plus ink.
