Commit Graph

46 Commits

Author SHA1 Message Date
Aaron Culliney
e5e087c4e0 Refactor joystick handling
* 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
2014-11-09 15:48:05 -08:00
Aaron Culliney
30d7f88c21 Fix emulation problem manifesting as bug in cracked version of J---- 2014-11-08 00:21:52 -08:00
Aaron Culliney
0eeb93820c Fix Open-Apple (joy button 0) stuck after reboot 2014-10-25 12:51:09 -07:00
Aaron Culliney
6858e51a75 Apple2Mac first cut and refactor common rendering code
* 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
2014-09-30 21:01:58 -07:00
Aaron Culliney
1b8387d214 cput_thread() now has correct pthread function prototype 2014-09-16 20:39:08 -07:00
Aaron Culliney
a929ef854c Refactor video_sync() and friends
- main thread render loop goes into X11 video driver
    - removes video_sync()
2014-09-16 20:38:14 -07:00
Aaron Culliney
a3973b2e35 ROM generation 2014-06-22 11:09:59 -07:00
Aaron Culliney
a9d094c112 Misc tweaks to get OS X target building 2014-06-21 14:28:50 -07:00
Aaron Culliney
ed8b41c9a0 New CPP macros to accommodate Darwin 2014-06-21 14:21:33 -07:00
Aaron Culliney
a4670b1eda Use CPP macro for duplicate assembly 2014-06-21 14:20:28 -07:00
Aaron Culliney
1649419b39 Fixe unused variable warnings 2014-06-14 11:50:50 -07:00
Aaron Culliney
8ded3fa0f1 Expose unused variables and improve logging
* Adds support for RELEASE_ logging (logging even with NDEBUG builds)
2014-06-14 11:26:33 -07:00
Aaron Culliney
126d049ffc Refactor to two jump vectors
* Believe needed to allow minimal change for x86_64 codepath
2014-06-07 16:05:38 -07:00
Aaron Culliney
c22fbd0374 Reduce dependence on global TEMP buffer
* display.S still uses this ... will be refactored completely with new video update
2014-05-11 19:18:53 -07:00
Aaron Culliney
148dfa2f20 Refactor CPU code
* Moves cpu jump table, opcycles table, and others to C
    * Removes support for old/unused/deprecated nmos routines and tables
2014-05-11 17:06:53 -07:00
Aaron Culliney
7d97d2e211 Complete refactoring VM routines to C 2014-05-11 13:54:03 -07:00
Aaron Culliney
aef793cfab removed unused ][ rom stuff 2014-05-10 13:11:02 -07:00
Aaron Culliney
1c3fc78838 refactor game controller switches to C 2014-05-10 13:08:44 -07:00
Aaron Culliney
9ff453be23 Beginning to refactor memory.S -> vm.c 2014-05-10 11:55:41 -07:00
Aaron Culliney
a43d31a22e Remove non-//e code paths 2014-04-05 12:22:12 -07:00
Aaron Culliney
52b087f805 sanity-check for cpu thread 2014-03-30 11:10:24 -07:00
Aaron Culliney
5d552b445c a debugger init function
* in addition this change persists breakpoints/watchpoints across reboots
2014-03-30 10:53:57 -07:00
Aaron Culliney
e57f332ff6 moar ifdefs for various macro conditional codepaths
* INTERFACE_CLASSIC : specifies the "classic" (current) menuing system
    * AUDIO_ENABLED : specifies whether audio code is enabled
2014-03-23 14:25:28 -07:00
Aaron Culliney
43ada45a36 Enable illegal BCD break/debugging
* 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)
2014-02-22 09:45:19 -08:00
Aaron Culliney
8976808568 More updates to support testsuite 2014-01-25 22:10:33 -08:00
asc
17440949bf Updates to support testing 2014-01-25 14:13:38 -08:00
asc
3abd2e87aa Refactor to use GNU build tools
* Added configure.ac and non-recursive Makefile.am
    * Modularized source into subdirectories
    * Simplified header inclusion
2014-01-22 20:51:50 -08:00
Aaron Culliney
b9815968a1 Various fixes for input handling
* 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
2013-12-28 13:08:35 -08:00
Aaron Culliney
d0ea2d654e Fix the game controller routines to use proper timers
* 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
2013-12-21 13:55:40 -08:00
Aaron Culliney
9900a3f283 New splash/credits screen 2013-12-15 14:59:18 -08:00
Aaron Culliney
71d5367875 Preferences changes
* 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)
2013-12-06 22:55:00 -08:00
Aaron Culliney
4856a33b28 reset MB if machine is rebooting
* this fixes a bug whereby emulator won't reboot from an active session of using the Mockingboard
2013-11-23 16:00:07 -08:00
Aaron Culliney
32b4cd48c4 switch internal/peripheral rom on CXROM flag
* 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
2013-11-22 23:40:24 -08:00
Aaron Culliney
0cc0db17b2 change/move softswitch declarations 2013-11-22 23:37:26 -08:00
Aaron Culliney
766d278601 First cut at supporting mockingboard.
* 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 ...
2013-11-12 23:43:16 -08:00
Aaron Culliney
527c04e41f Support for new timing model
This is part 2 of 2

    * Handles UI changes to support new delay model, added ability to toggle to
      alternate speed scale

    * Code cleanups
2013-10-06 01:31:58 -07:00
Aaron Culliney
96d083a2c3 WIP: changes to cpu throttling/timing
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.
2013-07-21 17:20:03 -07:00
Aaron Culliney
e70a1ef620 misc cleanups 2013-07-07 13:16:08 -07:00
Aaron Culliney
5f50068fcd better random 2013-07-07 13:07:26 -07:00
Aaron Culliney
b03a8e6fd8 always support //e 2013-07-06 16:04:36 -07:00
Aaron Culliney
f462f79708 remove compact.c for simplicity 2013-07-05 21:46:58 -07:00
Aaron Culliney
e919718b73 an uncrustify pass and uncrustify config file 2013-07-05 21:37:13 -07:00
Aaron Culliney
18c3f5f698 we no longer use timers with setitimer and SIGVTALRM, that's so nineties...
instead spin off a cpu_thread and have it ping the main render thread as needed
2013-07-02 01:10:57 -07:00
Aaron Culliney
bfa84b1f65 get it compiling again 2013-06-19 00:07:41 -07:00
Aaron Culliney
d5c5654931 debugger is mandatory, you *will* like it! 2013-06-12 00:31:26 -07:00
Aaron Culliney
e71efa3acd initial source drop, apple2-emul-0.7.4.tar.gz 2013-06-11 00:08:15 -07:00