
Hatari TO-DO list
=================

If you think that you can help with one of the TO-DO list items, please get
in touch with us.


Emulation improvements
----------------------

- Improve FDC emulation (e.g. read-track and write-track commands do not work
  right yet).

- Improve disk image formats support:
	- Add support for .STT images
	  (created with the STEEM disk image program)
	- Add support for Pasti .STX images
	  (See http://pasti.fxatari.com/)
	- Support .DIM images created with the "Get sectors: used" option

- Real HD 6301 (keyboard processor of the ST) emulation
  (Current special casing is enough for all known demos using 6301)

- Upgrade the CPU core of Hatari to the latest WinUAE or E-UAE CPU core.
  (MMU emulation and better cycle accuracy is needed by some programs)

- Get the games/demos working that are marked as non-working in the manual.

- Improve TT and/or Falcon emulation, especially VIDEL

- Add SCSI hard disk emulation for Falcon/TT mode.

- ACSI emulation seems to be broken in TT mode.

- Add SCC serial port emulation for Falcon/TT mode.

- Add support for spec512 mode in med res too
  (needed by 'No Cooper - Greetings', 'Punish your machine - Best part of the
   creation', 'Highres mode by Paradox')

- Some Falcon games/demos only work with 32 MHz CPU emulation (might be due to
  the fact that we don't emulate the 68030 cache yet?)

- Fix falcon sound quality (sound is sometimes noisy)

- Improve STE Microwire/LMC1992 emulation.

- improve STE DMA sound emulation - some demos still render wrong.


DSP emulation / Falcon sound matrix
-----------------------------------

- Improve the Port C (SSI) emulation (mixing of handshake and non handshake transfers)
	- Dsp SSI internal clock (is it used on falcon ?)

- Improve the crossbar and SSI transfers in handshake mode

- Verify DSP instructions cycle count, especially with external RAM


Other potential Hatari functionality improvements
-------------------------------------------------

- Improved boot drive & partition handling code:
  - count partitions the same way in ACSI, IDE & GEMDOS
  - move BootDrive stuff from floppy.c e.g. to tos.c where NumDrives is

- Support harddisk write protection also for IDE & ACSI drives?

- Debugger improvements:
	- Shortcut command for telling to run until given
	  (temporary) conditional breakpoint is hit
	- Running until code returns from ROM (exiting from super mode?)
	- Single stepping that skips Traps, Line-A, Line-F. And one that
	  skips also BSRs and JSRs
	- Set breakpoint on specific OS call
	- Command to run slowly
	- Saving machine status to history buffer each time debugger is
	  entered (exception or breakpoint is hit) and being able to view
	  this history
	- SP & SSP as CPU register names (active & supervisor stack)
	- Fill and copy memory command
	- Search.  For bytes or strings (Monst supports also searching
	  instruction (subsets) but that's too complicated)
	- A built in window system (ncurses based would constrict
	  output area, maybe implement it externally to Hatari?)
 Most of these are Monst features that Hatari debugger doesn't implement.

- Improved screen handling:
	- Direct 16-bit & 32-bit support for monochrome and VDI modes
	  (currently they're converted through 8-bit surface)
	- Line based screen change detection/checks:
		- blit only changed lines
		- simpler / faster (LED) overlay handling
	- x3 and x4 zooming routines for ST-Low resolution
	- Include some fancy zooming routines like 2xSaI or Super-Eagle
	- Add support for hardware accelerated zooming with
	  SDL YUV overlays or OpenGL

- Check/clean RS232 code:
	- polls at 2/20ms intervals and reads data byte at the time.
	  SDL_Delay()s & fgetc() could be replaced (at least on unix)
	  with select() and fread().  Or just remove the rs232 thread
	  and use an interrupt for it...
	- The commented out rs232 stuff could be removed from gemdos.c
	  (RS emulation is done at HW, not Gemdos level).

- Improve directory handling:
	- Currently screenshots & anim go always to current dir,
	  whereas memsave, sound recording, printer & midi & serial &
	  output and log output go to file specified in config file.
	  There should be support for setting also anim/screenshot
	  directory / file name from config file (needs change also
	  in screenSnapShot.c).
	- By default the directory config values should be empty in
	  which case the code will at run-time decide to use current
	  directory, but not modify the path config setting.
