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
1358a52eee
Add but disable CPU trace on Android
2016-01-24 09:47:57 -08:00
Aaron Culliney
0bb0df0960
Support building Android version in release mode (without -g and with -DNDEBUG=1)
2016-01-03 13:59:52 -08:00
Aaron Culliney
c2014e2cde
Add simple display of touch joystick azimuth
2016-01-03 12:36:13 -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
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
abae59767c
Enable simple heap memory fencing/scribbling in debug builds
2015-12-31 22:50:43 -08:00
Aaron Culliney
145b6a6cef
Refactor JNI plumbing for consistency
2015-12-20 12:54:27 -08:00
Aaron Culliney
22b1bc9ad8
Move key handling back to the Activity, otherwise we don't seem to receive onKeyUp() for the Android back button
2015-12-20 12:11:12 -08:00
Aaron Culliney
2f7f7bd359
Preliminary support for mapping an Android physical gamepad/joystick to emulated Apple //e joystick
...
- No support for custom joystick/gamepad configurations (yet)
2015-12-19 23:59:02 -08:00
Aaron Culliney
3ff877d80c
Refactor : move event handling into custom view
2015-12-19 23:13:52 -08:00
Aaron Culliney
13de08f8cb
map L1 and R1 keys to joy buttons
2015-12-19 23:13:44 -08:00
Aaron Culliney
1e573c34ad
Meager support for Android joystick/gamepad keys
2015-12-19 13:14:46 -08:00
Aaron Culliney
2c8284d41f
Start running tests on Android after first resume
...
- This allows for a more consistent test environment (test disks copied out of APK and available, etc) and also
mimics main app behavior
2015-12-16 20:59:20 -08:00
Aaron Culliney
870a24ced6
Fix test compilation on Android
2015-12-15 22:24:43 -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
cdb0f7b06b
Shunt disk-state-change information back to the Java/Android menu system
2015-12-12 11:42:33 -08:00
Aaron Culliney
651ac246e3
Flush disk IO on backgrounding
2015-12-11 23:42:57 -08:00
Aaron Culliney
e1629095b6
Get crash symbolication working for x86 build
2015-11-29 14:35:01 -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
ad5a6e8061
Get NDK debugging working from script: './apple2ix debug'
2015-11-10 22:08:32 -08:00
Aaron Culliney
e4c669f016
x86 builds and basically works on Android x86 devices
2015-11-09 22:45:52 -08:00
Aaron Culliney
456f9a14e4
Build PIC without relocations in TEXT section
2015-11-08 21:11:03 -08:00
Aaron Culliney
6de1cae478
Move nativeOnCreate back to proper position as first native call
...
- This runs discovery of CPU family
- This sets up native crash handling
2015-11-01 19:26:34 -08:00
Aaron Culliney
9a2044f75e
Apparently not possible to query this early on Gingerbread devices
2015-11-01 13:43:09 -08:00
Aaron Culliney
521d1daccf
Refactor app startup
...
- Make sure crash checking is performed as early as possible
- Minimize calling complex native functions until after splash screen is dimissed
- Do not attempt to setup/resume OpenGL until after splash screen is dimissed
2015-11-01 10:14:40 -08:00
Aaron Culliney
cbe8a734d0
Move CPU feature discovery into CTOR
2015-10-31 23:00:45 -07:00
Aaron Culliney
acdc8da64f
Refactor pause/resume functions to be strictly CPU thread pause/resume
2015-10-31 14:01:47 -07:00
Aaron Culliney
d4adabda93
SNEAKY BUGFIX race condition between UI thread and CPU thread on disk insertion
...
- Previously we would start the CPU thread and then insert, which has been a long standing race condition, but
possibly better exposed since the recent disk.c rephactor to use mmap I/O
- This directly manifested on a Kindle Fire 1st Gen as a crash, and, anecdotally on other devices as a "stalled"
disk read requiring a reboot of the virtual machine. Yay for crappy devices helping to expose crappy code! (git
blame me). =P
2015-10-30 23:19:33 -07:00
Aaron Culliney
2cc23cf35d
Upgrade to GPLv3 "or later" and update copyrights
2015-10-22 21:09:13 -07:00
Aaron Culliney
4e478d369c
Refactor disk interface API function names
2015-10-15 22:51:44 -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
e161dce3c2
Make app shutdown happen on the GL thread to avoid crashing
2015-10-04 13:39:57 -07:00
Aaron Culliney
d93a91cca8
Tests build and run on Desktop Linux and Android
2015-10-04 13:29:17 -07:00
Aaron Culliney
e6a1182c32
Unstick make clean
2015-10-04 11:02:57 -07:00
Aaron Culliney
7f32e14a6e
Compile against android-10 while we still care about Gingerbread ... nom nom nom
2015-09-27 15:04:10 -07:00
Aaron Culliney
286012c991
Blow up early, blow up often
...
- Expose and trigger a link error with getpagesize() on Gingerbread devices if we have built the software
incorrectly.
2015-09-27 14:30:20 -07:00
Aaron Culliney
b5de4222c3
Handle Java exceptions within Java to the best of our ability
2015-09-27 13:30:16 -07:00
Aaron Culliney
d90b523440
process crashes in-situ on Android device
2015-09-26 15:20:54 -07:00
Aaron Culliney
88be6086a2
Refactor crash testing/reports into separate class/files
2015-09-26 15:16:30 -07:00
Aaron Culliney
a20b2461b5
Include native symbolication information in APK assets
2015-09-26 15:00:07 -07:00
Aaron Culliney
ad2dbd54b0
Android architecture globals
2015-09-26 14:58:09 -07:00
Aaron Culliney
a6397b22d2
Code to test/exercise Android Breakpad crash handler
2015-09-19 14:52:05 -07:00
Aaron Culliney
79613b49fb
Roll back to slightly older target Sdk for sanity
2015-09-19 13:13:11 -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
43fa597e7d
Flip-flopping again on NDK build script options-n-things
2015-09-18 23:05:04 -07:00
Aaron Culliney
ba0b0505e3
Minor nit ... name change
2015-09-18 23:04: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
f343ad9dbd
Get Mockingboard working somewhat better
2015-09-13 12:43:34 -07:00
Aaron Culliney
b2cb35c182
Lifecycle tweaks that get Android building again
2015-09-12 15:33:22 -07:00
Aaron Culliney
bc5559c1b0
Allow graphics thread to self-shutdown to avoid segfault on exit
2015-09-08 23:12:20 -07:00
Aaron Culliney
9c98745099
Remove unnecessary call to pump key handling codepath
2015-09-07 11:08:43 -07:00
Aaron Culliney
fa91a2806d
Get testing working on Android again
2015-09-06 23:43:26 -07:00
Aaron Culliney
2c97f7af19
Excise HEADLESS ... it was only being used by testcpu
2015-09-06 17:14:38 -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
8666ca3603
Common baseline for CLI and Android Studio builds
...
- CLI is still super useful for GDB debugging and running emulator testcases
- Possibly this maintenance of two build systems can all go away when Android Studio has better NDK support
2015-09-05 14:40:44 -07:00
Aaron Culliney
c3702c54b5
Remove build variants because they are confusing and incompatible with CLI ant builds which I still want to maintain
2015-09-05 14:08:21 -07:00
Aaron Culliney
e4a849e6ae
Allow choosing alternate keyboard.kbd.json file from /sdcard (or internal dataDir)
2015-08-28 22:23:43 -07:00
Aaron Culliney
59cb3e49f9
Enable various GL Touch Keyboard settings
2015-08-23 11:42:45 -07:00
Aaron Culliney
ebe7f82f22
Persist settings for currently inserted disks, and provide a way to eject disks
2015-08-22 14:44:31 -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
d2b526783a
Improve joystick calibration modes and keypad menus
2015-08-21 20:34:19 -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
7344cadfbd
More joystick settings including calibration mode
2015-08-02 14:29:34 -07:00
Aaron Culliney
324d900c35
First cut at Android touch joystick configuration
2015-08-01 17:33:29 -07:00
Aaron Culliney
92f4f698db
Actually change the cpu timing
2015-07-31 20:30:30 -07:00
Aaron Culliney
0d658932b6
Expose particular settings back to Android so we can persist the values
2015-07-30 23:12:00 -07:00
Aaron Culliney
0bc8869627
nativeOnTouch() now returns various state flags
...
- Allows playing of a key click sound if a keyboard item tapped
- Improves stovepiping the native request to show the Android main menu
2015-07-30 22:05:21 -07:00
Aaron Culliney
7067d10949
Android touch menu configurations
2015-07-28 22:22:25 -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
fcd367bd9e
Moar Android configuration menus
2015-07-25 14:51:37 -07:00
Aaron Culliney
36baaa04d5
Allow dynamic configuration of audio latency
...
- This allows for user-configured device-specific tuning (which makes sense in the Android world with 10,000+
different devices out there ;-)
2015-07-25 12:57:16 -07:00
Aaron Culliney
37a8985f79
First cut at audio settings menu
2015-07-24 22:39:46 -07:00
Aaron Culliney
a60ffb8eb9
Beginning of Android persistent settings
2015-07-21 21:38:28 -07:00
Aaron Culliney
87d7d8a115
Compile Android variant with optimization and debugging symbols
2015-07-12 15:38:28 -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
da301ded7c
Android build tweaks
...
- Build in ARM mode, not Thumb mode (cpu.S is written in common ARM dialect)
- Include various ABIs (phat APK)
2015-07-12 13:12:44 -07:00
Aaron Culliney
5f4bf6b1a7
Use single buffer queue callback for OpenSLES/Android
...
- OpenSLES Callback now performs simple mix of 2 sources (speaker and mockingboard)
- Avoids multiple callbacks which was a performance penalty especially for low-end droids
2015-07-12 12:59:49 -07:00
Aaron Culliney
66978056c9
Build system tweaks
2015-07-07 21:40:48 -07:00
Aaron Culliney
ada6d7a0be
Pause/resume CPU/audio together
2015-07-04 18:17:04 -07:00
Aaron Culliney
20b3e25915
Renamed to get Android build working
2015-07-04 18:14:21 -07:00
Aaron Culliney
951b4518c1
Expose device-preferred audio parameters to native
2015-06-28 12:49:26 -07:00
Aaron Culliney
bb8d51817b
First cut at Android OpenSLES backend
2015-06-27 11:48:00 -07:00
Aaron Culliney
1707c60701
Refactor : completely excise win-shim
...
- Moves remaining shim code into mockingboard.c
- Breaks Mac builds for now =P
2015-06-14 14:07:32 -07:00
Aaron Culliney
1da7acbaba
Properly hook up Android shutdown paths
2015-06-06 21:18:27 -07:00
Aaron Culliney
aa31141455
Ctrl-combo keys work with hardware keyboard
2015-06-06 21:17:15 -07:00
Aaron Culliney
2562c17d73
Record Java exceptions to app home directory
2015-06-06 12:55:14 -07:00
Aaron Culliney
f2abf4ce35
Fix emulator quit path on Android
2015-06-01 22:50:44 -07:00
Aaron Culliney
e6ec58a8ba
Fix Android build break
2015-05-29 21:48:39 -07:00
Aaron Culliney
9e9939a3a6
Only allow explicit main menu requests to bubble up
...
- Works around existing bugs in various gltouchwidget's logic
2015-05-23 23:17:33 -07:00
Aaron Culliney
fe8aa03360
Updates for Android build
2015-05-10 14:06:20 -07:00
Aaron Culliney
68011fa8f2
First cut at touch menu HUD
...
- Enables choosing touch keyboard or touch joystick
- Enables increasing/decreasing speed
- Enables opening main popup menu
- Also migrates all gesture responsibility away from Java side of things
2015-05-09 19:23:52 -07:00
Aaron Culliney
4e23795cfd
First cut at GL touch keyboard
2015-04-22 23:32:36 -07:00