Commit Graph

1443 Commits

Author SHA1 Message Date
Aaron Culliney
4beb6d679d include uthash.h 2013-11-02 20:38:29 -07:00
Aaron Culliney
693b9d31bf Support for multiple sound buffers/voices
* In preparation for adding mockingboard support
    * NOTE: ALSA still has a hardcoded 1 buffer assumption with its use of mmapped access
2013-10-22 21:22:43 -07:00
Aaron Culliney
06c6fd9feb don't redefine if defined already 2013-10-22 21:18:03 -07:00
Aaron Culliney
c39bea9580 Partial fix debugger for multithreaded environment
* Fixes crashing observed when trying to use debugger

    * Various refactoring whitespace fixes
2013-10-06 21:01:00 -07: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
41a1f3d598 Timing model back to nanosleep for sound fidelity
This is part 1 of 2

    * Proper emulator timing is critical for emulating the Apple2 speaker with a
      square wave on a modern soundcard.  The AppleWin sources provided
      reference, inspiration, and source for both timing and speaker emulation
      code.

    * cpu.S, cpu.h, timing.c : OK so I flip-flopped quite a bit here on how best
      to do proper emulator timing, but the previous spinloop implementation was
      not one of my more enlightened decisions :P ... cpu/power consumption
      nightmare ...

    * ds-shim.h, win-shim.h -- Shims for Windows-isms and DirectSound-isms.  I
      assume these will eventually be refactored away...

    * soundcore.[hc], speaker.[hc] -- Directly ported from a recent version of
      AppleWin.  Everything I've added should be braced with #ifdef APPLE2IX.

    * soundcore-alsa.[hc] -- An ALSA backend using mmap'ed soundcard access.
2013-10-05 23:33:18 -07:00
Aaron Culliney
0f26899420 macro refactoring for clarity [sic] 2013-10-05 23:13:24 -07:00
Aaron Culliney
a063669cb8 Add speaker and soundcore targets 2013-10-05 22:51:42 -07:00
Aaron Culliney
3946cc52d0 renamed for clarity 2013-09-15 09:09:29 -07:00
Aaron Culliney
0e81927f5b bugfix: save/restore state before C routine 2013-09-15 09:07:36 -07:00
Aaron Culliney
b0236992d2 style cleanups and an ERRQUIT 2013-09-12 20:47:00 -07:00
Aaron Culliney
1f9a1778b9 spinloop timing that seeks to directly match apple speed 2013-07-25 22:58:31 -07:00
Aaron Culliney
980bcc627d WIP : dynamically adjustable spinloop 2013-07-23 00:33:29 -07:00
Aaron Culliney
da3a78a295 bugfix 2013-07-22 23:49:01 -07:00
Aaron Culliney
319a980254 Default all UNK opcodes to 2 cycles 2013-07-22 22:22:48 -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
d599a2174a refactoring for clarity and adding cycle timing 2013-07-07 20:52:30 -07:00
Aaron Culliney
ae6790ab97 debug logging support 2013-07-07 14:01:21 -07:00
Aaron Culliney
e70a1ef620 misc cleanups 2013-07-07 13:16:08 -07:00
Aaron Culliney
170fbf57f3 unnecessary pushes/pops 2013-07-07 13:13:15 -07:00
Aaron Culliney
5f50068fcd better random 2013-07-07 13:07:26 -07:00
Aaron Culliney
8a4f8284b1 remove extraneous comments
believe these are fixed, it's been a decade :-)
2013-07-06 21:19:50 -07:00
Aaron Culliney
b03a8e6fd8 always support //e 2013-07-06 16:04:36 -07:00
Aaron Culliney
f5d1735f28 more whitespace changes for sanity and righteousness! 2013-07-05 23:08:55 -07:00
Aaron Culliney
6d9aa66c01 whitespace changes for sanity and righteousness! 2013-07-05 22:44:57 -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
c51018a2bb we no longer do tight decrement loop to artifically throttle emulation speed.
instead call into a timing function to properly throttle the speed to the target MHz
2013-07-02 01:04:55 -07:00
Aaron Culliney
6c500cad0b no longer support building to SVGAlib 2013-07-02 01:02:54 -07:00
Aaron Culliney
c0f38b902b add timing.[ch] to Makefile 2013-07-02 00:57:21 -07:00
Aaron Culliney
8bd46f494f new cpu throttling routine 2013-06-27 23:36:25 -07:00
Aaron Culliney
55cb51359e WIP 2013-06-24 23:21:03 -07:00
Aaron Culliney
faa279f075 Get it compiling and running with 32bit TrueColor 2013-06-24 23:14:39 -07:00
Aaron Culliney
a57b7c129a usleep is now backed with nanosleep 2013-06-24 23:06:09 -07:00
Aaron Culliney
2533108733 don't remove flex-generated file for now... 2013-06-24 23:05:13 -07:00
Aaron Culliney
00c1aacafb incredibly ugly hack, we need a new build system
the build system is broken, just use a generated/kludged Makefile for now
2013-06-24 23:01:51 -07:00
Aaron Culliney
5495020a1e for now include the flex output 2013-06-24 22:57:08 -07:00
Aaron Culliney
bfa84b1f65 get it compiling again 2013-06-19 00:07:41 -07:00
Aaron Culliney
6eef91baf7 simplifications 2013-06-18 00:09:00 -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
Aaron Culliney
5e4d640afd Initial commit 2013-06-11 00:05:49 -07:00