Aaron Culliney
51a5f5fcf7
Excise ERRLOG() in favor of LOG()
2017-07-15 14:39:15 -10:00
Aaron Culliney
3b1c72e872
Excise RELEASE_LOG() and RELEASE_BREAK() macros
...
- LOG() and assert() work just fine ;)
2017-07-15 14:19:31 -10:00
Aaron Culliney
aefe243620
Work around mysterious occasionally failing assert
2017-07-08 14:50:39 -10:00
Aaron Culliney
d2e61e5091
Ensure big-endian data in A2V2 save-file format
...
- Also sanity-check buffer read overflow during loading
2016-10-16 16:00:14 -07:00
Aaron Culliney
1be2c6fd27
A2V2 save format also saves timing information
2016-10-15 13:34:14 -07:00
Aaron Culliney
ccd05e52fe
Improve timing conformance in Mockingboard
...
- Correctly calculate 7 cycles for handling IRQs
- More frequent calls to MB_UpdateCycles()
- Correctly calculate timing for MB_EndOfVideoFrame() when testing/tracing/debugging
2016-10-09 12:19:21 -07:00
Aaron Culliney
d0b3f632e1
Further improve determinism for Mockingboard tracing
2016-10-02 13:58:50 -07:00
Aaron Culliney
781cc60d8c
Assert CPU paused when switching disk images
2016-09-17 12:24:47 -07:00
Aaron Culliney
88ca414f80
CPU thread housekeeping on shutdown
2016-09-17 12:11:10 -07:00
Aaron Culliney
cb31ccaf9c
Fix a bunch of Clang static analysis issues
2016-09-10 11:32:33 -06:00
Aaron Culliney
7ad7b65d11
Add speaker tracing API and tests
2016-07-23 17:35:11 -07:00
Aaron Culliney
cc9a164bec
Audio codepaths now always enabled
...
- Supported platforms:
- Mac/iOS (OpenAL)
- Desktop Linux/POSIX (OpenAL)
- Android (OpenSLES)
- TODO : for POSIX builds we should provide our own "null" audio backend if OpenAL/OpenSL not found by build script
2016-07-23 17:23:54 -07:00
Aaron Culliney
aad2f0a71e
Speculative fix from a crash report from the wild
2016-05-05 21:06:52 -07:00
Aaron Culliney
dcb35226b7
Lightly refactor max CPU speed checks
...
- Better naming of the pivot point (@4.0x CPU)
- Use floating point values divisible by 2 as the constants
2016-04-16 14:08:00 -07:00
Aaron Culliney
23a874456c
Better audio defaults
2016-04-13 19:45:55 -07:00
Aaron Culliney
db816ad502
Refactor Android variant to use common shared JSON preferences
...
- Eliminates a whole bunch of boilerplate setter/getter code in various places
- Accesses preferences directly from JSON data through custom json_parse.h API
- Improves code locality for Java menus/settings
2016-04-11 22:01:30 -07:00
Aaron Culliney
74a5b74ae3
Refactor prefs into JSON publish/subscribe API
...
- Breaking changes currently only tested on Linux desktop build =P
- Goal is to eventually eliminate most/many of the disparate getter/setter functions to allow better
modularity/scaling and platform portability
2016-03-26 13:44:13 -07:00
Aaron Culliney
3120b75e00
Enforce module ctor priorities
2016-02-22 22:41:37 -08:00
Aaron Culliney
829291feba
Refactor all drawing to run on video thread in one scanner pass
...
- Moves extra work off CPU/audio thread
- Prepares the way to possibly remove the vestigal intermediate indexed framebuffer and do direct RGBA_8888 writes
to XImage or OpenGL texture
- Prepares the ground for possible better emulation of video scanner hardware
Conflicts:
src/display.c
src/video/glvideo.c
src/video/video.h
2016-02-15 13:29:58 -08:00
Aaron Culliney
ba07bcc274
Avoid resetting Mockingboard state machine when all we need to do is reset the backend
...
- Also slightly disentangles audio initialization from reinitialization
2016-01-30 14:45:35 -08:00
Aaron Culliney
b5fbf29f21
Don't let FLASH text counter overflow
2016-01-24 11:03:50 -08:00
Aaron Culliney
1358a52eee
Add but disable CPU trace on Android
2016-01-24 09:47:57 -08:00
Aaron Culliney
f8e4ba3551
FLASHing text is handled by CPU timing and not render loop
2016-01-20 23:17:39 -08:00
Aaron Culliney
175df18401
Don't use long word for cycles counter
...
- Lightly optimize a hot code path
- Include debug code for testing counter overflow
2016-01-20 23:17:30 -08:00
Aaron Culliney
8626215205
Silence a number of spurious compiler warnings
...
- Existing warnings are now a good proxy for areas of code smell ;-)
2016-01-10 12:09:04 -08:00
Aaron Culliney
a64941694f
Expose timespec_add
2016-01-07 22:42:04 -08:00
Aaron Culliney
f7cb3da434
Mark certain core emulation modules as problematic on iOS/Mac, and something we should fix
2016-01-05 00:11:58 -08:00
jvernet
5d86735a69
Fixed Crash on reboot
...
It crash ? Killing // ;)
2016-01-04 21:25:25 -08:00
Aaron Culliney
2cc23cf35d
Upgrade to GPLv3 "or later" and update copyrights
2015-10-22 21:09:13 -07:00
Aaron Culliney
01dfff2b1b
Fix a build break on desktop Linux
2015-10-22 20:44:47 -07:00
Aaron Culliney
4742d4e03e
Misc moar logging
2015-10-20 20:51:21 -07:00
Aaron Culliney
f4fa5670b4
Add function-call time tracing for Linux/Android
2015-10-04 14:22:26 -07:00
Aaron Culliney
d93a91cca8
Tests build and run on Desktop Linux and Android
2015-10-04 13:29:17 -07:00
Aaron Culliney
aa5b9eb971
Safer CPU/audio lifecycle management that appears to fix a deadlock on Kindle Fire 1st Gen
2015-10-02 00:11:49 -07:00
Aaron Culliney
47ce10b3a4
Remove some deadc0de from timing.c
2015-09-26 14:49:13 -07:00
Aaron Culliney
5dadc922fd
Simplify mobile lifecycle at the expense of holding onto audio resources
...
- This does not seem to be a problem with both modern and older Gingerbread devices
2015-09-13 14:24:17 -07:00
Aaron Culliney
ed60b2ea73
Refactor VM initialization and shutdown
2015-09-11 23:03:17 -07:00
Aaron Culliney
411e474c4b
cpu suspend mutex does not need to be recursive ... this should not be re-entrant
2015-09-07 11:00:07 -07:00
Aaron Culliney
a1c497bfa0
Lightly refactor testing codepaths for desktop Linux and Android
2015-09-06 22:10:25 -07:00
Aaron Culliney
e4c06c67a7
properly segregate audio-specific codepath
2015-09-06 17:24:48 -07:00
Aaron Culliney
7d4b63e12d
Refactor : move reinitialize() to timing module and make static (mostly)
2015-09-06 14:05:18 -07:00
Aaron Culliney
25b9f3d3f3
Android lifecycle cleanups
...
- Differentiate between cpu_pause() when going to menu (and app is still foregrounded, and cpu_pauseBackground()
when a system backgrounding event has occurred.
- Destroy/free audio resources owned by CPU thread when background is requested, put CPU thread into waiting upon
pthread condition to resume.
- Mobile device now always signals pthread condition to force CPU thread resume from background
2015-07-27 22:36:39 -07:00
Aaron Culliney
a0cadc83c6
Refactor timing locking behavior
...
- Do not start CPU thread until after splash screen
- Insure that only CPU thread can actually create/destroy the audio interfaces
2015-07-26 13:48:24 -07:00
Aaron Culliney
7ca4a2646d
Optimize video drawing and API cleanup
...
- Enforces synchronized access to video dirty bit
2015-07-12 14:13:13 -07:00
Aaron Culliney
432d2fb563
Renamed some speaker API methods
2015-07-12 13:00:39 -07:00
Aaron Culliney
4305909d67
Expose some timing constants
2015-07-05 13:17:41 -07:00
Aaron Culliney
ada6d7a0be
Pause/resume CPU/audio together
2015-07-04 18:17:04 -07:00
Aaron Culliney
8dd82642d3
Refactor : rename audio subsystem initialization and shutdown functions
2015-06-14 15:05:44 -07:00
Aaron Culliney
80b880550f
Fix shutdown codepaths
...
- Ensures various shutdown codepaths (interface, cpu/audio, main/video, ...) run on proper thread(s)
- Actually now runs the CloseAL() code
- Try to ensure all detached threads exit ... seems to help keep Valgrind happy =)
2015-05-31 13:43:51 -07:00
Aaron Culliney
dcd0207525
Fix ctor load priorities
2015-04-17 22:12:13 -07:00