* Removes Linux-specific joystick handling
* Adds cross-platform GLUT joystick handling; Caveats:
- GLUT is not robust to joystick hot plugging like my old Linux-specific code was. (Fix should be made in the
GLUT driver and pushed upstream if we really care)
- Deprecated X11 renderer now can only use keypad joystick
* Based on NSOpenGLView and Apple's GLEssentials sample code
* CVDisplayLink- or NSTimer-driven rendering
* Works in window or fullscreen mode on Mac OSX Lion or later
TODO FIXME:
* Breaks Linux/Posix build
* Cocoa menu interfaces
* Key/mouse/joystick/gamepad handling
* Debugging builds will now segfault if an illegal BCD is encountered
* Presumably current x86 undefined behavior does not 100% correspond to 6502
undefined behavior ... (this bears further investigation)
* Merges input handling into one routine called thru video_sync at refresh rate
* Adds keypad joystick calibration routine
* Simplify joystick calibration routines to use same codepath as main emulator joystick handling
* Add proper timers according to spec mentioned in _Understanding the Apple IIe_
* This will allow us to refactor/eliminate all the hackish joystick adjustment routines
* Deprecate "lazy" color modes
* Allow setting speaker sound volume
* Make Joystick code more generic (future support of touch input)
* Deprecate setting emulator mode (//e is ascendant)
* fixes a bug where op_BRK doesn't work when Mockingboard installed
* this is still hackish and hardcoded ... ultimately we need an interface to add/remove virtual peripherals
* Now using OpenAL as the main backend, ALSA has been deprecated...
* soundcore-openal.[hc] - OpenAL sound output for emulator
* alhelpers.[hc] - OpenAL suport files
* mockingboard.[hc] , AY8910.[hc] , SSI263Phonemes.h - Mockingboard support ported from AppleWin ...
WARN: this is still a WIP and untested. Instead of nanosleep() the cpu thread
now uses an adaptive spinloop. This better emulates the actual apple //e speed
in preparation to do near-realtime audio. The drawback is that the cpu thread
is pegged at 100% usage.