AppleWin/docs/ToDo.txt

46 lines
2.0 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

To-do list (Tom)
================
This is a (non-exhaustive) list of stuff that I personally would like to get done:
(14/8/2014) Having moved all non-system headers out of stdafx.h, it looks like
many headers are included just to call Init() or Reset() methods for Apple II sub-systems.
Cut down on the headers by:
- Using the Visitor pattern (for all Apple II sub-systems)?
- Or just a vector which contains all sub-system Reset() methods?
. Consolidate the Spkr_SubmitWaveBuffer() & Spkr_SubmitWaveBuffer_FullSpeed() funcs.
This will make the code cleaner & simpler.
. Software mix Speaker & Mockingboard waves before submitting to sound-buffer.
This will:
a) fix the problem with speaker sound be rough when MB is active.
b) probably fix the problem with other processes having problems playing sound at the
same time as AppleWin. (Although I've not experienced this)
c) hopefully simplify things :)
. Run emulation (or message-pump?) in a seperate thread.
So that the sound is continuous when dragging the window or starting other applications, etc.
. Add proper Votrax support (using PinMAME samples & code).
. Fix SSI263 so that phonemes are overlapped (like Votrax).
. Save-state supporting Phasor, harddisk & Ramworks III
. Support for switching display modes mid-frame
To support Bob Bishop's intros, tight-loop page-flipping, etc
---
Plans for (1st pass) cleaning up are:
. Ditch the x86 code to access the PC speaker + ditch PC speaker support
. [DONE] The arrays ioread[] & iowrite[] in Memory.cpp should be switched from units of 1 byte to 16 bytes.
This will yield 256 entries spanning [$C000…$CFFF] currently its only [$C000…$C0FF]. This will mean that:
a) cards with I/O mapped above $C0FF (eg Mockingboard, Mouse?) dont have to be kludged as in the READ/WRITE macros in CPU.cpp
b) $CFFF (ROMs out) can be emulated
. Talking of CPU.cpp & those macros: Id prefer to replace them with inline funcs. Maintenance of these
macros is a bitch & they cant be single-stepped. Inline funs should yield the same code (in release build)
as the macros.