Commit Graph

1117 Commits

Author SHA1 Message Date
Aaron Culliney
13184ec4be Change the button gesture recognizer state machine
- Use a synchronized event queue rather than overwriting "current" button state
    - Use aggressive assertions to ensure state machine is coherent
2016-04-16 14:16:34 -07:00
Aaron Culliney
9c9ba6e7ef Render the correct activeChar when initially setting touch joystick preferences 2016-04-16 14:15:21 -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
f53dbea81e Pause CPU on Linux desktop initialization 2016-04-16 13:33:50 -07:00
Aaron Culliney
65882152a8 Insure preferences are propagated regardless of enabled state 2016-04-13 21:23:37 -07:00
Aaron Culliney
fd7578a862 Always show touch joystick azimuth (if we're rendering the joystick axis) 2016-04-13 19:50:03 -07:00
Aaron Culliney
23a874456c Better audio defaults 2016-04-13 19:45:55 -07:00
Aaron Culliney
2a405f028f Streamline and fix test codepaths on Desktop Linux and Android 2016-04-13 19:33:08 -07:00
Aaron Culliney
9c1cfedf7d Fix some envvars on Android 2016-04-12 22:16:01 -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
b59e1ca7ab json_parse module passes new tests 2016-03-29 22:39:59 -07:00
Aaron Culliney
a03c074a52 Moar JSON/prefs tests including new array tests 2016-03-29 22:38:28 -07:00
Aaron Culliney
b065da9f4b Various test suite improvements
- Possibly breaking changes for mobile ... #willunbreaklater
2016-03-26 14:56:34 -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
163035b0c7 Add a bunch of new JSON tests 2016-03-25 20:44:03 -07:00
Aaron Culliney
fdfe312a2b Changes needed after jsmn subtree upgrade 2016-03-09 22:21:15 -08:00
Aaron Culliney
a87092bbd8 Add JSON mutation functions and tests 2016-03-09 21:06:00 -08:00
Aaron Culliney
01b25527fe Add JSON serialization and tests
- Encourage use of opaque reference rather than internal struct
2016-03-04 23:31:15 -08:00
Aaron Culliney
b87273e742 Expand coverage of heap memory checking of debug builds and simplify FREE() calls 2016-02-26 21:26:57 -08:00
Aaron Culliney
0663141589 Misc tweaks 2016-02-25 21:04:23 -08:00
Aaron Culliney
6e978810db First cut at testsuite for json/prefs 2016-02-25 20:56:59 -08:00
Aaron Culliney
3120b75e00 Enforce module ctor priorities 2016-02-22 22:41:37 -08:00
Aaron Culliney
f0e55af6f0 Fix a glitch rerendering pressed ctrl key ... codegen error in ARM gcc 4.8 toolchain? 2016-02-19 21:41:34 -08:00
Aaron Culliney
699f4697df Don't leak azimuth model objects 2016-02-19 20:00:42 -08:00
Aaron Culliney
efcf0afa4e Set framebuffer dirty on restore state 2016-02-17 22:38:50 -08:00
Aaron Culliney
00a5f6e102 Fix "re-insert" disk edge case 2016-02-17 22:32:01 -08:00
Aaron Culliney
e073954ec8 Add a test case that shows a problem with "re-inserted" disks 2016-02-17 22:24:07 -08:00
Aaron Culliney
afeaba8b2a Lock access to zlib functions and unlinking image files to prevent data loss 2016-02-17 21:31:43 -08:00
Aaron Culliney
a2b7603e53 Only reset disk stepper_phases during VM initialization and allow for save/restoring it 2016-02-17 21:10:09 -08:00
Aaron Culliney
0dbcfbc9a2 Various fixes to get Mac and iOS building 2016-02-15 21:10:16 -08:00
Aaron Culliney
fccd2629d4 Clear color should be solid and should be set by toplevel glnode 2016-02-15 14:03:52 -08:00
Aaron Culliney
bac745845b Don't allow reaching beyond buffer row bounds 2016-02-15 14:01:59 -08:00
Aaron Culliney
545376b1be Improve testcpu on desktop and fix it on Android 2016-02-15 13:32:05 -08:00
Aaron Culliney
7ef70e7943 Make use of the video memory dirty bit 2016-02-15 13:30:35 -08:00
Aaron Culliney
5ce91fa96d Do not test internal implementation detail that no longer exists 2016-02-15 13:30:31 -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
5354b0cfd5 First cut at allowing portrait mode (on mobile devices) 2016-02-14 20:18:07 -08:00
Aaron Culliney
70afe71c82 Add various new JSON data format parsing functions 2016-02-13 21:19:06 -08:00
Aaron Culliney
261ae2efae Refactor to not use video_backend in so many places 2016-02-07 14:42:32 -08:00
Aaron Culliney
5fec80a33a Refactor video_shutdown() to appease Valgrind
- This likely breaks Darwin ports ... will fix soon[ish]
2016-02-07 14:42:28 -08:00
Aaron Culliney
edaae0bc89 Refactor glvideo to be the root glnode, begin to privatize video_backend APIs 2016-02-07 14:42:16 -08:00
Aaron Culliney
c0b7b8dd9b Simplify XEvent processing loop and fix non-MITSHM codepath 2016-01-31 13:21:38 -08:00
Aaron Culliney
e638c13d9d Lock access to INTERFACE_CLASSIC thread on desktop POSIX 2016-01-31 13:18:19 -08:00
Aaron Culliney
433f4baafa Eliminate unnecessary variable and draw axis/buttons for duration of tracking touch 2016-01-30 14:46:49 -08:00
Aaron Culliney
8f03d0ca6f Enforce pointer index tracking for touch lifecycle
- Fixes glitch where GLTouchMenu would capture a joystick event if the movement came into its portion of the screen
    - Prepares the way for allowing both keyboard and joystick access to same screen real-estate
2016-01-30 14:46:43 -08:00
Aaron Culliney
c29daf006e Refactor : naming RB -> Azimuth 2016-01-30 14:46:31 -08:00
Aaron Culliney
ac151ae9e9 Bugfix Mockingboard volume getting improperly reset 2016-01-30 14:46:08 -08:00
Aaron Culliney
1912428ed3 Properly account for mockingboard card enabled/disabled 2016-01-30 14:45:51 -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
661b4220ef Unbreak TOUCH_JOY_LOG() macro 2016-01-24 10:25:45 -08:00
Aaron Culliney
1358a52eee Add but disable CPU trace on Android 2016-01-24 09:47:57 -08:00
Aaron Culliney
b9acdc7d4c reset FBSHA after LORES80 iteration 2016-01-24 09:47:44 -08:00
Aaron Culliney
d44aad062a ARM bugfix: actually return the correct value when reading from slot I/O card
- Allows NSCT.dsk to boot on ARM architecture devices
2016-01-23 13:00:45 -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
edfd5243ff First cut at LORES80 graphics
- This comes with the caveat that all video modes will need to be refactored to take into account proper timing
2016-01-20 23:16:42 -08:00
Aaron Culliney
090f5f4db4 Don't actually draw unless byte written to active page or page was swapped
- Avoids "flicker" in 80's apps that use double buffering
    - Possibly improves performance since we only take the render hit in page swap (or direct render to visible page)
2016-01-20 23:16:34 -08:00
Aaron Culliney
a8e6f4fc92 Refactor : coalesced text/mixed drawing codepath 2016-01-16 22:05:28 -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
1dc08f4a25 Silence compiler warning about asprintf() when running flex 2016-01-10 11:41:54 -08:00
Aaron Culliney
0c77e4a659 Fix testdisk assertions in debug builds 2016-01-09 14:00:33 -08:00
Aaron Culliney
144086c667 Don't LOG() in Breakpad callback 2016-01-09 12:44:11 -08:00
Aaron Culliney
b2824e9145 Improve tap responsiveness in GL touch joystick 2016-01-08 00:28:57 -08:00
Aaron Culliney
a64941694f Expose timespec_add 2016-01-07 22:42:04 -08:00
Aaron Culliney
18c02d3673 Fix broken assert 2016-01-07 20:57:22 -08:00
Aaron Culliney
659a338d26 Avoid crashing if azimuth model is unavailable (shader failed to compile) 2016-01-05 23:19:12 -08:00
Aaron Culliney
4436b9b7ca Fix semi-opaque glyph shading with scales > 2
- Also add defensive coding in debug builds
2016-01-05 23:04:27 -08:00
Aaron Culliney
3089b98a30 For now, enable logging in release builds on Android 2016-01-05 21:39: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
Aaron Culliney
086f7d0da2 Do not free the model positions prematurely ... since we occasionally change them 2016-01-05 00:11:16 -08:00
jvernet
b6a9f667ef Latest commit from mauiaaron need common.h in imagutil for FREE and MALLOC macros 2016-01-04 21:25:27 -08:00
jvernet
4d89d173f4 Here we are: now everything work for iPad. 2016-01-04 21:25:27 -08:00
jvernet
a3040dfb05 IOS stuff 2016-01-04 21:25:26 -08:00
jvernet
5d86735a69 Fixed Crash on reboot
It crash ? Killing // ;)
2016-01-04 21:25:25 -08:00
Aaron Culliney
97f52ef2ff Get Android build unstuck 2016-01-04 20:34:27 -08:00
Aaron Culliney
5737e89150 Initial iOS target compiles, links, and appears to run in simulator and on device =) 2016-01-04 20:34:27 -08:00
Aaron Culliney
5a2529651c Fix recent Android build break 2016-01-03 13:09:23 -08:00
Aaron Culliney
08a6d99334 Fix assert/crash on desktop Linux introduced by overzealous malloc fencing 2016-01-03 13:01:48 -08:00
Aaron Culliney
c2014e2cde Add simple display of touch joystick azimuth 2016-01-03 12:36:13 -08:00
Aaron Culliney
29282dcac6 Expose identity matrix and only calculate it once 2016-01-03 12:02:06 -08:00
Aaron Culliney
9219fa7053 Creation of GLCustom model is slightly more RAII 2016-01-03 11:57:48 -08:00
Aaron Culliney
2ec88ad433 Iterate on GLTouchJoystick
- Use smaller models/textures
    - Slightly change the joystick/kpad glyphs
2016-01-02 15:08:06 -08:00
Aaron Culliney
691dbd5ac2 Coalesce duplicate fade-out codepaths 2016-01-02 14:23:09 -08:00
Aaron Culliney
8b3f288018 Reduce duplicate OpenGL plumbing codepaths
- Apple //e "framebuffer" OpenGL model/texture is now a complete GLModel object
    - Readability FTW! ... use args struct in quadCreation function to allow for named args
2016-01-02 13:39:07 -08:00
Aaron Culliney
7ca679350d Move shader/program creation into video_util module 2016-01-02 11:33:47 -08:00
Aaron Culliney
b59672815f Allow setting keyboard and HUD menu glyph scale 2016-01-02 00:14:21 -08:00
Aaron Culliney
904d89aff8 Get touch menu min/max alpha matching touch keyboard 2016-01-01 21:38:35 -08:00
Aaron Culliney
f5bbda4c6e Refactor HUD model to allow scaling font glyphs
- Should be less pixelation of touch keyboard on large tablet screens
2016-01-01 15:02:29 -08:00
Aaron Culliney
a54a69efcc Call "super init" during HUD model creation 2015-12-31 22:54:34 -08:00
Aaron Culliney
abae59767c Enable simple heap memory fencing/scribbling in debug builds 2015-12-31 22:50:43 -08:00
Aaron Culliney
9fd288c0b9 Remove aggressive assert that fired on Cyanogen device (even with a valid CPU pause/resume lifecycle) ... 2015-12-20 15:04:20 -08:00
Aaron Culliney
d69b416c58 Lightly refactor emulator joystick API in preparation for more comprehensive refactor 2015-12-19 13:01:28 -08:00
Aaron Culliney
c7c209907b Allow for keyboard to completely own/cover screen
- Includes updated alternate/custom keyboards
2015-12-19 12:56:24 -08:00
Aaron Culliney
5bd7ff2fe1 Simplify switching to "useralt" touch keyboard 2015-12-16 22:15:19 -08:00
Aaron Culliney
69b096ec14 Avoid showing redundant 0 nibble 2015-12-16 21:33:25 -08:00
Aaron Culliney
f872e0c05c fix i386 variant of op_SBC_dec (now re-passes tests on x86 Android) 2015-12-16 21:12:45 -08:00
Aaron Culliney
5211722d63 Switch to using DSK to speed up tests on Android 2015-12-16 21:11:52 -08:00
Aaron Culliney
785577e252 Fix some compiler warnings in testdisk.c 2015-12-16 21:11:35 -08:00
Aaron Culliney
3a20c96296 Check more paths in attempt to satisfy test suite disk insertion
- This is mainly to accommodate disk locations on Android
2015-12-16 21:01:50 -08:00
Aaron Culliney
9e5274ee18 Flip-flop test to correctly account for e5f08849 2015-12-16 20:56:20 -08:00
Aaron Culliney
26e452c3a3 Avoid bufover in testsuite -- sprintf() already writes terminating null byte! 2015-12-16 20:53:16 -08:00
Aaron Culliney
2dbd77e344 Excise uthash.h from testcpu suite
- Works around issue where Android NDK GCC 4.8/4.9 would take an inordinate amount of time when compiling testcpu with -O2
2015-12-14 23:56:48 -08:00
Aaron Culliney
699746a743 Alleviate compiler warnings in testvm/testdisplay 2015-12-14 23:55:08 -08:00
Aaron Culliney
74e97ccc97 Alleviate compiler warnings in testcpu 2015-12-14 22:11:29 -08:00
Aaron Culliney
1f0021667b Fix display test failures
- New framebuffer SHAs result of recent improvements to DHIRES colors
2015-12-14 18:59:44 -08:00
Aaron Culliney
341885e233 Undo selected character highlight when keyboard fades out 2015-12-13 13:38:03 -08:00
Aaron Culliney
87761df512 Avoid using magic row/column numbers when redrawing adjacent characters 2015-12-13 13:24:25 -08:00
Aaron Culliney
22914de79c Enable setting to show/hide disk read/write HUD messages 2015-12-12 12:01:41 -08:00
Aaron Culliney
edf42b81f9 Improve disk quick save/restore
- Flush disk I/O on save
    - Ignore ephemeral track_valid/track_dirty bits
    - Insure disks are ejected if there was a problem loading state
2015-12-12 00:21:27 -08:00
Aaron Culliney
0aed046b5e Simplify modulo offset calculations in trackimage 2015-12-12 00:17:58 -08:00
Aaron Culliney
ef1963a175 Avoid potential read off end of trackimage 2015-12-12 00:16:14 -08:00
Aaron Culliney
0f98a34e06 Refactor naming of user-chosen alternate keyboard 2015-12-09 22:11:44 -08:00
Aaron Culliney
1147ce7cd7 Avoid crash potential by doing less during resource acquisition
- (This also would have fixed ctrlPressed background bug -- previous 02147f3d commit)
2015-12-09 21:56:28 -08:00
Aaron Culliney
02147f3d9a Refactor and avoid NULL deref edge-case
- Bug was triggered if ctrlPressed was true when going to background.  Foregrounding would reset/NULLify the
      GLModel, but attempt to render the ctrl key highlighted before the new GLModel was fully created.
2015-12-09 21:25:09 -08:00
Aaron Culliney
943b8842f7 Show disk track sector change animations 2015-12-07 23:03:44 -08:00
Aaron Culliney
05698c6a5e Avoid another audio buffer overflow manifesting on Kindle 2015-11-29 22:14:55 -08:00
Aaron Culliney
5a9770829e Fix commentary and ignore expected_bytes if set to zero 2015-11-29 13:31:17 -08:00
Aaron Culliney
ff204a4300 Slight refactor to move common ".gz" extension handling code to interface module 2015-11-29 13:23:13 -08:00
Aaron Culliney
b9d6d38b17 First cut at save/restore emulator state feature
- This adds to overall UX ... (you can finally finish some very difficult arcade games by strategically leveraging
      this feature)
    - Currently enabled for Android, but not Android-specific
2015-11-22 18:22:01 -10:00
Aaron Culliney
46c286719f Fix Android build after Mac iteration 2015-11-14 11:09:33 -08:00
Aaron Culliney
29fd1f5025 Bugfix : avoid massively overflowing heap memory 2015-11-14 09:56:11 -08:00
Aaron Culliney
33160be9ac Disambiguate texture name from texture() function in basic fragment shader 2015-11-14 08:09:10 -08:00
Aaron Culliney
0aacdfa9e5 Various fixes from Apple Clang static analyzer 2015-11-14 08:03:44 -08:00
Aaron Culliney
a61fd339a6 Various fixes to get Mac build compiling 2015-11-14 08:01:20 -08:00
Aaron Culliney
a41dc46eee Fix broken menus on x86 Android
- Make it explicit that we are dealing with uint8_t values and not ambiguous signed int values
2015-11-10 22:22:31 -08:00
Aaron Culliney
e4c669f016 x86 builds and basically works on Android x86 devices 2015-11-09 22:45:52 -08:00
Aaron Culliney
f06257b2c5 Add ARM assembly PIC without TEXTREL
- Adds codepaths that allow for Position Independent Code (PIC) that also avoids having TEXT relocations (TEXTREL)
      that the dynamic linker needs to patch up
2015-11-08 14:42:03 -08:00
Aaron Culliney
7a8c4dda63 Update generated file 2015-11-07 10:44:08 -08:00
Aaron Culliney
63b6e0a29a Fix my blended rendering on Tegra 2 (and arguably globally) 2015-11-07 10:36:20 -08:00
Aaron Culliney
f423c2dbe6 Work around broken Tegra 2 GPU 2015-11-06 22:18:16 -08:00
Aaron Culliney
dd7727f757 Simplify fragment shader and remove dead macro 2015-11-06 21:20:33 -08:00
Aaron Culliney
9b56050c1e All the Broken Adrenos! 2015-11-02 20:46:16 -08:00
Aaron Culliney
20f79dc5eb Avoid buffer overflow
- Appears to fix a crash on Kindle Fire 1st Gen
2015-10-30 23:14:20 -07:00
Aaron Culliney
84fe0dd479 Fix crash on Nexus 10 device due to regfree()ing something not regcomp()ed 2015-10-30 23:12:12 -07:00
Aaron Culliney
616428a03f Slightly improved DHIRES colors 2015-10-26 23:11:29 -07:00
Aaron Culliney
e5f08849ae revert back to sync byte and state reason 2015-10-25 13:51:54 -07:00
Aaron Culliney
aa9a89a3e4 Flag an assert that needs to be rethought 2015-10-24 14:29:52 -07: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
4ae7e3e735 Silence potentially abusive logging in disk VM callbacks 2015-10-20 20:57:52 -07:00
Aaron Culliney
4742d4e03e Misc moar logging 2015-10-20 20:51:21 -07:00
Aaron Culliney
df38695779 HACKish commit to ignore SIGABRTs
- FIXME TODO ... investigate why these are triggering occasionally on Droid builds
2015-10-20 20:47:08 -07:00
Aaron Culliney
d23a435b56 Use mmap for disk I/O 2015-10-18 16:27:07 -07:00
Aaron Culliney
d46a62a4dd Refactor to load whole disk image into memory 2015-10-18 15:24:34 -07:00
Aaron Culliney
b496d771f6 Moar data for disk write tracing 2015-10-18 12:44:24 -07:00
Aaron Culliney
41ae0266e2 Bugfix : flush disk buffer data on initialize
- Fixes disk image corruption issue that was manifesting in testing
    - Out-of-space test(s) now results in a disk image with a correct length byte of 0x20 for the final "JUNK7" file in
      the disk image's VTOC
2015-10-18 12:11:09 -07:00
Aaron Culliney
7a2f919175 Refactor load/save track data API 2015-10-17 14:28:08 -07:00
Aaron Culliney
39c09a042f Do not return sync bytes if no image inserted
- This really should be backed by more testing or research =P
2015-10-17 13:23:49 -07:00
Aaron Culliney
053a4c8c93 Safety : flush/close file before calling zlib_deflate on it 2015-10-17 12:02:21 -07:00
Aaron Culliney
1d5c20cc5f Remove deadc0de 2015-10-17 11:40:56 -07:00
Aaron Culliney
c6244f696f tweak temp error handling 2015-10-17 10:58:51 -07:00
Aaron Culliney
3ab75c6214 Refactor : improved error handling of track write 2015-10-17 10:58:29 -07:00
Aaron Culliney
989a5ce7c1 Refactor : improved error handling of track read 2015-10-17 10:51:37 -07:00
Aaron Culliney
8261590899 Refactor : improved error handling in disk6_insert 2015-10-16 22:49:59 -07:00
Aaron Culliney
984e15dc04 Get rid of sector deadc0de
- unnecessary with the skew_table
2015-10-16 22:15:58 -07:00
Aaron Culliney
0f9cd3a265 Refactor disk file_name to a char* 2015-10-16 21:47:56 -07:00
Aaron Culliney
10bb19ecc5 Minor refactor internal API 2015-10-16 20:34:15 -07:00
Aaron Culliney
4e478d369c Refactor disk interface API function names 2015-10-15 22:51:44 -07:00
Aaron Culliney
52d74aa43c Improved disk prefix utility functions 2015-10-15 21:02:52 -07:00
Aaron Culliney
57b7d930d6 User lower-level I/O with temp failure retries 2015-10-15 20:59:31 -07:00
Aaron Culliney
9eee9293bc Some defensive coding and moar flushing 2015-10-15 20:44:40 -07:00
Aaron Culliney
ce7596754b Refactor various codepaths for clarity #3 2015-10-13 20:52:10 -07:00
Aaron Culliney
a5854a20f6 Refactor various codepaths for clarity #2 2015-10-12 23:11:23 -07:00
Aaron Culliney
7a0255ff8b Refactor various codepaths for clarity 2015-10-12 22:30:21 -07:00
Aaron Culliney
6d60116c92 BUGFIX : nasty classic assign versus equality check
- I blame myself, but WTF did I not previously see a warning from GCC or Clang with -Wall ?!
    - Hooray for pedantic testing!
2015-10-12 21:29:54 -07:00
Aaron Culliney
3b832a1aba No really, post out-of-space stability testing of raw disk image bytes 2015-10-12 20:30:54 -07:00
Aaron Culliney
427a90d755 Post out-of-space stability testing of raw disk image bytes 2015-10-12 20:17:05 -07:00
Aaron Culliney
b8a3521ee5 Calculate disk reverse translate table once at CTOR time 2015-10-11 13:21:45 -07:00
Aaron Culliney
ddd479f271 BUGFIX : don't read past the track buffer
- Causes a disk image stability test to go green =)
2015-10-11 12:19:36 -07:00
Aaron Culliney
aa225d6e48 Add some new disk I/O tests for stability
- test that BLOADing a bunch of junk files results in expected data
    - test that disk image files themselves are unchanged after the battery of tests
2015-10-11 11:51:51 -07:00
Aaron Culliney
7c7a96af71 Refactor : rename to track_width for clarity 2015-10-10 22:38:57 -07:00
Aaron Culliney
51f5bc64ba Expose macro globally 2015-10-04 14:39:53 -07:00
Aaron Culliney
f4fa5670b4 Add function-call time tracing for Linux/Android 2015-10-04 14:22:26 -07:00
Aaron Culliney
b3ad0ae4ac Seems more symmetric =P 2015-10-04 14:14:04 -07:00
Aaron Culliney
d93a91cca8 Tests build and run on Desktop Linux and Android 2015-10-04 13:29:17 -07:00
Aaron Culliney
236b8e358a INITHELLO with -UCONFORMANT_TRACKS now passes 2015-10-04 12:35:38 -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
be797efce5 Remove some deadc0de
- No longer worrying about softkeyboard showing on mobile since we have a custom GL touch keyboard
    - Move some stuff that is desktop-only to that codepath
2015-09-30 21:58:33 -07:00
Aaron Culliney
f7acde244c Work around broken Adreno 200 GPU
- Rework checks to compare with POSIX Regexs ... which themselves appear broken with android-10 NDK ... sigh
2015-09-30 21:55:07 -07:00
Aaron Culliney
518738304f Defensive coding around glGetString() 2015-09-27 14:29:10 -07:00
Aaron Culliney
e51aaa1695 Work around broken Adreno 200 GPU 2015-09-27 11:51:40 -07:00
Aaron Culliney
f627ccef3f Fix n00b shader mistake (conditional code in shader) =D 2015-09-27 11:49:58 -07:00
Aaron Culliney
d90b523440 process crashes in-situ on Android device 2015-09-26 15:20:54 -07:00
Aaron Culliney
47ce10b3a4 Remove some deadc0de from timing.c 2015-09-26 14:49:13 -07:00
Aaron Culliney
b8921b8441 Integrate Breakpad crash dumper and tools into Android build
- Includes Linux x86_64 binaries dump_syms and minidump_stackwalk
    - Includes adb_sanitize.c tool (gcc -std=gnu11 -o adb_sanitize adb_sanitize.c) for easily pulling local minidumps
2015-09-19 13:11:27 -07:00
Aaron Culliney
5692c1dc95 Submit a number of quiet samples on first initialization
This seems to make it a little less choppy on mobile first launch
2015-09-15 22:18:43 -07:00
Aaron Culliney
d25acb1da0 Silence logging in touch dispatch by default 2015-09-15 20:39:30 -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
97f8ef1f45 Just assume is on button side if not on axis side 2015-09-13 14:12:16 -07:00
Aaron Culliney
f343ad9dbd Get Mockingboard working somewhat better 2015-09-13 12:43:34 -07:00
Aaron Culliney
c8d7f9cba3 Let chooser interface handle skipping rather than native 2015-09-13 11:23:59 -07:00
Aaron Culliney
b2cb35c182 Lifecycle tweaks that get Android building again 2015-09-12 15:33:22 -07:00
Aaron Culliney
0321c27de6 Improve video cleanup codepaths from what I can discern are the OpenGL best practices for memory management 2015-09-12 15:06:06 -07:00
Aaron Culliney
d263478e83 Use calloc() for soundcore allocations
- Avoids potential for transacting upon uninitialized memory, thank you Valgrind
2015-09-12 15:04:09 -07:00
Aaron Culliney
db46b281cc Fix -UCONFORMANT_TRACKS testing (with vanilla gzipped test disk images) 2015-09-11 23:37:52 -07:00
Aaron Culliney
ed60b2ea73 Refactor VM initialization and shutdown 2015-09-11 23:03:17 -07:00
Aaron Culliney
ea43b56644 Avoid leaking PQList_s 2015-09-07 11:27:32 -07:00
Aaron Culliney
2cbc53ef45 Correctly zero-out entire structure 2015-09-07 11:07:49 -07:00
Aaron Culliney
ef7472b3ac Fix invalid assert ... system_buffer_size can be modified lower 2015-09-07 11:05:22 -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
0b8f9d2dfb Test parameters change when not -DCONFORMANT_TRACKS=1
- BUG : INIT HELLO not working for DO and PO images with CONFORMANT_TRACKS undefined
2015-09-06 23:31:02 -07:00
Aaron Culliney
cd1669dfca Refactor out abusive traces into different test file 2015-09-06 22:57:51 -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
2c97f7af19 Excise HEADLESS ... it was only being used by testcpu 2015-09-06 17:14:38 -07:00
Aaron Culliney
2cf119b5e9 use static inline function rather than macro for easier debugging 2015-09-06 15:18:22 -07:00
Aaron Culliney
f557941d07 Timing and initialization fixes 2015-09-06 15:15:33 -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
f95a00df7b Silence some Clang complaints 2015-09-06 13:55:17 -07:00
Aaron Culliney
e108f4591a Fix a broken assertion ... compare samples size, not bytes size 2015-09-06 13:54:45 -07:00
Aaron Culliney
3b5f57b0cf Get tests working again on desktop Linux 2015-09-05 12:22:29 -07:00
Aaron Culliney
3ddfe2953e Less blatant RGBA_8888 favoritism 2015-09-05 11:38:35 -07:00
Aaron Culliney
f05d1d0311 UI/UX : clean up alert view borders 2015-09-05 11:34:03 -07:00
Aaron Culliney
4f19ad3735 Better contrast for messages 2015-09-05 00:15:24 -07:00
Aaron Culliney
4985d52169 nodes are doubly-linked list and correctly render from lowest to highest (opposite of touch dispatch) 2015-09-05 00:13:48 -07:00
Aaron Culliney
2b80c35d69 Bug fix : do not access lower stack memory from outside scope! 2015-09-04 23:35:15 -07:00
Aaron Culliney
4cad470a03 Allow small space to show in alternate/configurable keyboard 2015-09-04 23:12:41 -07:00
Aaron Culliney
be048746c5 Bug fix and optimize keyboard texture drawing
- preserve the semi-opaque halo
    - rerenders flip/flop red/green values in place
    - lower memory footprint
    - simplify codepaths
2015-09-04 22:27:57 -07:00
Aaron Culliney
75ecc47307 Bugfix : show correct current button character 2015-09-04 20:35:42 -07:00
Aaron Culliney
c09fc33e98 Simplify axis selection algorithm and add commentary 2015-09-03 22:24:27 -07:00
Aaron Culliney
8ffdb8461a Better comment for the current serious deficiency 2015-09-03 22:23:06 -07:00
Aaron Culliney
54587d166d Less choppy axis timing 2015-09-03 22:22:44 -07:00
Aaron Culliney
287df44133 Move tap delay to joystick variant
- Keypad variant already has a key repeat threshold
    - Improved variant touch lifecycle naming
2015-09-02 22:47:48 -07:00
Aaron Culliney
f046af0bef Improve state machine for keypad joystick; expire touch sources that have gone up 2015-09-02 22:45:00 -07:00
Aaron Culliney
fd2e65dd42 Bugfix : do not turn off caps_lock unless ownsScreen is also true 2015-09-02 22:33:56 -07:00
Aaron Culliney
2ae673e221 Balance touch indices decrement with increment 2015-09-02 22:33:13 -07:00
Aaron Culliney
5eb51419b0 Ignore multi-touch within a particular screen division (only one touch per Axis/Button side) 2015-08-30 17:04:28 -07:00
Aaron Culliney
27723be6cb Improved touch keypad joystick key repeat codepaths 2015-08-30 16:54:39 -07:00
Aaron Culliney
37e540180e Better handling of ctrl-key state and avoid conflict with keypad touch joystick 2015-08-29 12:12:29 -07:00
Aaron Culliney
8b02cb5f17 Cleaner logic for switching between soft keyboards 2015-08-29 12:07:56 -07:00
Aaron Culliney
158449e7fb Force CapsLock for Joystick Keypad for now 2015-08-29 12:05:09 -07:00
Aaron Culliney
2cd60c3c88 Expose all three touch interfaces in the sprouting menu for easier switching 2015-08-29 10:42:24 -07:00
Aaron Culliney
977cd9282d Lifecycle bugfix : don't override custom alternate/arrow keyboard configurations 2015-08-29 09:43:47 -07:00
Aaron Culliney
4258da8cbd Parse JSON that specifies alternate keyboard settings 2015-08-28 22:12:53 -07:00
Aaron Culliney
0bd9591348 Include jsmn JSON parsing code; add our own wrapper for processing JSON daata from files 2015-08-28 22:09:35 -07:00
Aaron Culliney
49c99d5ab7 Beginnings of customized alt touch keyboard layout 2015-08-23 15:03:30 -07:00
Aaron Culliney
59cb3e49f9 Enable various GL Touch Keyboard settings 2015-08-23 11:42:45 -07:00
Aaron Culliney
5df1e2400e Add ability to hide joystick controls overlay 2015-08-22 11:05:18 -07:00
Aaron Culliney
704c381ea8 Logging should automatically print function 2015-08-21 23:43:19 -07:00
Aaron Culliney
3f934ecd3f Fix cycling between different touch devices in the GL touch menu 2015-08-21 23:33:08 -07:00
Aaron Culliney
52ef663a2c toggle sprouting menu 2015-08-21 21:01:51 -07:00
Aaron Culliney
d2b526783a Improve joystick calibration modes and keypad menus 2015-08-21 20:34:19 -07:00
Aaron Culliney
a031a23999 Add a video_clear() routine 2015-08-20 22:12:54 -07:00
Aaron Culliney
5c3791f5dc Refactor GL Touch Joystick (PART I Native changes)
- Move touch-handling code for "regular" touch joystick into separate file
    - Add new touch-handling code for "keypad" touch joystick.  This is a somewhat complex state-machine to determine
      which key to press depending on a full keypad rosette.
    - Adds a callback to vm.c to hook into keyboard read callback.  Allows us to immediately queue the next key if the
      keypad touch joystick is long-pressed for either axis or button keys.
2015-08-18 21:59:41 -07:00
Aaron Culliney
77e96ba1ec Misc touch keyboard tweaks
- Enable tab key
    - Allow nonactionable keys to be tapped when in configuration mode
    - Add font mini visual for spacebar
2015-08-12 22:38:21 -07:00
Aaron Culliney
03d27dd2b2 touch keyboard now returns key and scancode in flags 2015-08-09 14:21:09 -07:00
Aaron Culliney
7344cadfbd More joystick settings including calibration mode 2015-08-02 14:29:34 -07:00
Aaron Culliney
af04ba94d1 Migrate file globals into file static struct 2015-08-02 12:44:44 -07:00
Aaron Culliney
324d900c35 First cut at Android touch joystick configuration 2015-08-01 17:33:29 -07:00