Commit Graph

124 Commits

Author SHA1 Message Date
Aaron Culliney
0d7e81c7d4 Testing does not depend on olde prefs system 2015-02-18 16:17:12 -08:00
Aaron Culliney
1ac7c7e12d Remove OpenSSL dependency, use public source SHA1 2015-02-18 15:54:04 -08:00
Aaron Culliney
2a6d889309 test 16bit underflow/overflow in op_JSR and op_RTS 2015-02-18 10:51:26 -08:00
Aaron Culliney
c4e3d93fd4 Fix underflow/overflow branch tests 2015-02-16 12:29:08 -08:00
Aaron Culliney
20d3a67db8 Increase testing of CPU branch logic, include 16bit underflow and overflow
- Unlikely that the original Apple //e ever saw this happen in reality?
    - TODO : test with valgrind for invalid code access ...
2015-02-16 12:18:59 -08:00
Aaron Culliney
d8ae71ddb0 WARNING : changes test to accommodate CPU implementation
- TODO : check the Apple //e Bible for this ...
    - Calculates 2-byte branch instructions (Bxx +OFF)--that sit right at page boundary (at 0x..fe 0x..ff)--as 3 cycles
      rather than 4, since PC has already advanced to the new page (matches logic currently in x86/cpu.S
2015-02-16 11:57:33 -08:00
Aaron Culliney
851d22568b Use 32bit counters to avoid overflow
- Previously there were cases where we could overflow cpu65_cycles_to_execute when adding the cycles_speaker_feedback
2015-02-03 22:10:47 -08:00
Aaron Culliney
c332a89738 Don't run finicky or abusive tests by default
- But keep them around for such times as when we're not sure why a particular emulated program is not working =)
2015-01-31 14:27:13 -08:00
Aaron Culliney
eb534e17b5 Get CPU tests working again 2015-01-31 14:26:45 -08:00
Aaron Culliney
f234de116f Refactor speaker system to prevent audio glitches and to support CPU automatic speed switching
Squashed commit of the following:

    REFACTOR : fix comments, logging, and rename some variables
    REFACTOR : fix up some commentary, clean deadc0de
    REFACTOR : mostly fix all the audio glitches
        - amplitudes of samples are gradually shifted to zero when speaker has fallen silent
        - simplifies speaker state machine
        - fullspeed mode only enqueues quiet samples
    REFACTOR : fix up a number of other functions and comments
    REFACTOR : clean up code to submit normal speed wave buffer to OpenAL
    Move some initializations to the cpu_thread()
    REFACTOR : properly reset the speaker cycles access counter so we don't underflow and assert
    REFACTOR : should never get a split buffer from our soundcore implementation
    Fix warning from gcc ... static array size needs to be computed from integer values
    REFACTOR : gcc (but not clang) complains about these, so just make them preprocessor defines
    REFACTOR : use unsigned long long because we don't actually care that this counter is 64bit
    REFACTOR : remainder_buffer and miscellaneous tweaks
        - Adds implementation commentary to document remainder_buffer purpose
        - Also adds sample average for square wave boundary in case where remainder_buffer not used (whole-sample boundary)
        - Variable renaming and code shuffling
    REFACTOR : do not dynamically alloc remainder buffer
        - Never attribute to cache-coherancy bugs what is a simple thread race =P
    REFACTOR : comments and whitespace
    REFACTOR : rename public speaker API functions
    REFACTOR : clean up public speaker API
    REFACTOR : tabs to spaces
    REFACTOR : moar deadc0de clean up and renaming
    REFACTOR : remove deadc0de paths from soundcore
    REFACTOR : fully excise soundtype stuff now that we only support soundcard output
    Move a file static to function scope
    REFACTOR : rename more variables and remove deadc0de
    REFACTOR : samples_buffer naming and change to explict int16_t
    REFACTOR : removed deadc0de and shuffled code locations
    REFACTOR : remainder buffer naming and clarify type
    REFACTOR : move joystick timing to VM module and remove header visibility
    REFACTOR : clarify speaker variable name
    REFACTOR : clarify cycle counting codepaths
    REFACTOR : VBL/timing interfaces
        - eliminates passing around a common global
    REFACTOR : names and comments
    HACK around volume issue
    REFACTOR : rename speaker feedback variable
    REFACTOR : rename global total cycle count
    REFACTOR : rename a constant
    Fix test builds
    REFACTOR: rename to is_fullspeed
    REFACTOR : local variable naming changes
    REFACTOR : migrate cycle timing variables to correct location and remove header visibility
    Allow fullspeed codepath to update speaker
    REFACTOR : remove deadc0de paths in prep for cleanup
    REFACTOR : speaker now manages its own VM entry point
2015-01-31 13:57:10 -08:00
Aaron Culliney
191a1b7395 Fix Mac builds 2015-01-16 21:11:29 -08:00
Aaron Culliney
87a2d081d3 CPU_TRACING now emits machine cycles 2015-01-11 18:37:57 -08:00
Aaron Culliney
dcafae8390 read_rand() is really just floating_bus() return 2015-01-10 19:42:00 -08:00
Aaron Culliney
1ba28db8d7 Varous VM switches return memory floating bus value 2015-01-10 18:46:49 -08:00
Aaron Culliney
06011e2902 New disk tests and improvements
- Exercise various TRACING codepaths
    - Adds ProDOS-order tests
2015-01-03 16:24:02 -08:00
Aaron Culliney
ffd4647693 Make test_breakpoint() function work again 2014-12-29 21:36:21 -08:00
Aaron Culliney
fdd57f3095 Fix some tests and expose mdstr globally (easier debugger introspection) 2014-12-29 21:36:21 -08:00
Aaron Culliney
af706e7602 rename read_random to avoid namespace collison on Mac 2014-12-29 19:07:43 -08:00
Aaron Culliney
7bc0475a5d disable unstable random2 test 2014-12-28 15:06:59 -08:00
Aaron Culliney
7d3b39926c Disk testing is separate from vm testing
- Breaks out disk testing into its own suite
    - Misc testing and build-system tweaks
2014-12-28 14:50:43 -08:00
Aaron Culliney
e01e437842 Massive disk refactoring sourced from AppleWin
- Attempts to be byte-stream compatible with how AppleWin handles DOS-order, ProDOS-order, and NIB images
    - Adds support for ProDOS-order images
    - First cut at VBL support: (//e FlappyBird boots now!)
2014-12-28 13:07:13 -08:00
Aaron Culliney
0f25f6d9d1 srandom/random for PRNG should be "good enough" 2014-11-29 14:23:27 -08:00
Aaron Culliney
4f0814ce42 Remove unstable __FILE__ output from vmtrace logging 2014-11-29 13:28:34 -08:00
Aaron Culliney
ad39463519 update vmtrace test 2014-11-29 10:04:21 -08:00
Aaron Culliney
6c1215dbb2 Tests build/run on Mac
- Fixes statistics printing
    - Some VM tests currently fail on Mac
2014-11-27 10:52:12 -08:00
Aaron Culliney
2aa2648d30 Fix for other VM/display tests 2014-11-25 22:01:46 -08:00
Aaron Culliney
050d1de389 HIRES PAGE2 test: shows moire on page2 2014-11-25 21:56:44 -08:00
Aaron Culliney
0ad98602fe Improved VM_TRACING syntax 2014-11-23 17:13:05 -08:00
Aaron Culliney
88b7db0387 unwedge test_PHP 2014-11-23 17:12:20 -08:00
Aaron Culliney
101e507add Adds a VM tracing facility and functionality test 2014-11-23 14:03:18 -08:00
Aaron Culliney
89fc5f6599 Display test improvements
* Removes hackish code in testdisplay.c in preparation for a bugfix
    * Adds function to output state of softswitches ... useful from GDB
2014-11-23 12:53:59 -08:00
Aaron Culliney
c075460b76 Gets OpenGL output working with testing VM and display
* Refactors test routine to its own thread to not interfere with OpenGL on main thread
    * Misc TESTING/HEADLESS switch tweaks
2014-11-22 14:24:43 -08:00
Aaron Culliney
8416dd4d49 adds PRNG tests 2014-11-22 14:03:57 -08:00
Aaron Culliney
7ed5250392 new SHA1 to fix cputrace test 2014-11-21 22:27:10 -08:00
Aaron Culliney
9f1c54e555 Expose c_read_random() 2014-11-19 19:59:39 -08:00
Aaron Culliney
9bbe906f43 CPU_TRACING bugfix and more readable
- GetImm mode was not reporting correct arg
    - Converts it to a format easier to compare against similar CPU trace output from AppleWin
    - Sanity-check arg counts
2014-11-18 22:16:44 -08:00
Aaron Culliney
9b9ca39344 Improve disk tracing
- Disk trace is now ASCII output
    - Output track sector and file position data
    - Debugger command added
    - New preprocessor define
2014-11-17 20:52:29 -08:00
Aaron Culliney
2c12aa6112 Improve CPU_TRACING output 2014-11-09 13:06:25 -08:00
Aaron Culliney
9144b48885 Enable abusive CPU_TRACING test 2014-11-02 12:09:30 -08:00
Aaron Culliney
b3c1af9786 disk INITHELLO tests ... 2014-11-01 19:26:40 -07:00
Aaron Culliney
31b87f67e4 Refactor test_setup_boot_disk 2014-11-01 18:44:54 -07:00
Aaron Culliney
737c780929 Fix test break 2014-10-25 08:26:53 -07:00
Aaron Culliney
442e4c99b2 Display tests on Mac and Mac tests cleanup 2014-10-12 12:42:29 -07:00
Aaron Culliney
7f395edc11 comment unstable test 2014-10-11 19:59:44 -07:00
Aaron Culliney
c4609e0c68 Improved PLP and PHP tests 2014-10-11 19:33:13 -07:00
Aaron Culliney
acc3deb264 Tweaks to disk boot trace test 2014-10-11 18:31:19 -07:00
Aaron Culliney
4c9c1fb62a First cut at a facility to do CPU tracing
* Also includes a test that traces booting the test disk
2014-10-11 18:28:48 -07:00
Aaron Culliney
15927d1554 test raw disk stream 2014-10-11 10:44:20 -07:00
Aaron Culliney
d6b8057c57 Beginning of VM Tests on Mac 2014-10-10 20:05:46 -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