Commit Graph

44 Commits

Author SHA1 Message Date
Neil Haverlandt 598ed5876d Use unique Preference ID to identify preference dictionaries 2021-01-29 17:06:26 -07:00
Neil Haverlandt 8ba25eb7d3 Rename Advanced Menus to Core Preferences 2021-01-29 11:57:34 -07:00
Neil Haverlandt f82de71fdb Advanced Menuing Added 2021-01-22 15:04:17 -07:00
Stuart Carnie e7c4503690 chore: Refactor away shader parameter groups from OpenEmuShaders 2021-01-16 14:31:34 +11:00
Stuart Carnie 76b7278889 chore: Use field directly 2021-01-16 14:29:59 +11:00
Stuart Carnie c7d5788bce refactor: Shader parameters source of truth is host
This change removes the dependency for loading and retrieving shader
parameter values from the helper. This simplifies the dataflow,
as it only flows down to the helper rather than bi-directional.

This is foundational work to improve the shader experiece. Future
iterations will include support for sharing presets, more flexible
UI customisation and more.
2021-01-10 13:40:04 +11:00
clobber 8853ccbfe0 fix: Don't timeout XPC connections in the debugger. 2021-01-05 11:51:34 -07:00
Stuart Carnie 733d590418 fix: Missing header 2020-12-31 17:23:08 +11:00
Stuart Carnie 0a24d64f80 fix: Use Swift API; don't need Obj-C exception handling rubbish 2020-12-31 17:20:02 +11:00
Stuart Carnie a8c014aa60 feat: New extensions and APIs for improving XPC support 2020-12-31 13:46:49 +11:00
Stuart Carnie 58c7459e3e fix: Add additional logging to XPC interface. Add timeout for semaphore. 2020-12-28 12:20:33 +11:00
Stuart Carnie 327ace7fb6 fix: read shader parameters from OE defaults
The real fix is to push the parameters from the host application
2020-12-24 10:12:09 +11:00
Stuart Carnie 0717b43318 fix: Frame may be offset in parent window and not at { 0, 0 } 2020-11-16 06:50:00 +11:00
Stuart Carnie 9fb5bbbada chore: Logging improvements and some minor cleanup 2020-11-16 06:11:16 +11:00
Stuart Carnie 000ccd10c2 fix: Incorrect 1x scale under specific conditions
When scaling down to 1x, if the buffer size matched the new bounds, the video layer in the helper would not update.
2020-11-12 17:45:33 +11:00
Daniele Cattaneo b4d2307bc2 Add an optional method in OEGameCoreOwner for notifying when a game core terminates. 2020-10-25 00:08:04 +02:00
clobber 42ee3f82a5 Add a deprecated/obsolete core plugin to -isOutOfSupport. 2020-10-07 13:55:12 -05:00
C.W. Betts ca4a03be2b Use NS_ERROR_ENUM for OEGameCoreManagerErrorCodes. 2020-09-22 09:53:25 -06:00
Stuart Carnie 4e138885d0 Introduce NSView for managing scaled inner view 2020-09-20 07:50:33 -07:00
clobber 0da7db54c5 Support OESystemType in the system plugins. 2020-09-19 17:26:07 -05:00
Stuart Carnie c65215471e fix: Post the notification after invalidating invalidation caches
There is no observed bug, but it is a race condition if the receivers of
the notifications fire immediately, before the cache is invalidated
2020-09-19 14:05:06 -07:00
Stuart Carnie 3b99712f70 feat: Add notification when system plugins a registered 2020-09-19 10:47:46 -07:00
clobber 8d800ff895 Rename supportsDiscs property. 2020-09-18 15:29:38 -05:00
Stuart Carnie 2f8f391b80 improvements for integral scaling in windowed and full screen views 2020-09-12 14:30:40 -07:00
Stuart Carnie cfe824f527 Introduce delegate responsible for resizing a window to integrals 2020-09-02 19:21:24 -07:00
Stuart Carnie 2b7d4c1b1a Use _Exit to avoid running C++ destructors, etc
Cores like PPSSPP will periodically crash when calling
`__cxa_finalize_ranges` to call destructors, etc
2020-09-01 06:37:56 -07:00
Stuart Carnie 81a6993781 docs update 2020-09-01 06:17:14 -07:00
Stuart Carnie ea6a7a7668 OpenEmuKit improvements
* Don't do initial shader discovery in OpenEmuHelperApp; pass the
  shader URL on startup
* Shader discovery uses kCFBundleNameKey (PRODUCT_NAME) to find user
  shaders.
  This will be "OpenEmu" or whatever the name of the main executable
  bundle.

TODO:

* Add code to OEShadersModel to install user shaders, so it correctly
  installs them to the same path.
2020-08-29 17:02:40 -07:00
Stuart Carnie a802921419 introduce OpenEmuKit.OpenEmuKitPrivate module with SPI and Swift interop 2020-08-28 18:37:32 -07:00
clobber a2b583ddab Preserve Swift < 5.2 support for now
If building with Xcode 11.3.1 on macOS 10.14.6, max supported is Swift 5.1.3
2020-08-28 20:35:26 -05:00
Stuart Carnie 5a795136b4 Utility class for 10.15 to use Combine to stream NSEvents 2020-08-28 11:19:18 -07:00
Stuart Carnie bf71f646a3 Amend API to allow dispatch queue to be provided
This allows clients to use a queue other than main to perform the
callbacks, allowing for synchronization primitives, such as semaphores
2020-08-28 11:18:44 -07:00
Stuart Carnie 7dc23c4afd Remove XADMaster dependency
This belongs in the host application, which performs any necessary
decompression based on the types of ROMs it processes.
2020-08-28 11:17:18 -07:00
Stuart Carnie 3e05571d64 fix: Nullability assertions and improved Swift APIs 2020-08-25 16:39:57 -07:00
clobber d821641a3d Remove OEGameStartupInfo romCRC32 property. 2020-08-25 11:09:39 -05:00
Stuart Carnie 08a3e07c46 Moved to pure function in OpenEmuBase 2020-08-23 08:32:00 -07:00
Stuart Carnie 3ca6a6357b feat: Improvements to API
Introduced `OEGameStartupInfo` to capture startup parameters for
loading a core and ROM.

A future iteration of this API will provide a generic container.
2020-08-23 08:31:13 -07:00
Stuart Carnie d52c73ab1a remove XPC static library; xpc helper links directly to OpenEmuKit 2020-08-16 09:00:31 -07:00
Stuart Carnie 15c9172533 Introduce abstract base for XPC helper to provide names that change
This is not finished, as I believe we can do better.
2020-08-15 20:20:25 -07:00
Stuart Carnie 53783685cb feat: XPC and helper app support built right in 2020-08-15 19:18:52 -07:00
Stuart Carnie e7c2eae656 Fix compilation error 2020-08-14 18:59:27 -07:00
Stuart Carnie 7aeef5253e Port AudioUnit fix
Fix a buffer overflow issue by working around a bug in Core Audio where an unit is requested more bytes of audio than the maximum.

inp->pullInput ended up writing outside the bounds of the input buffer because CoreAudio requested 528 frames instead of 512... Go figure. This was observed in macOS 10.14.6 build 18G6020.
Obviously this could cause crashes, even though in practice they seem rare (one of such crashes may have been posted in error in a comment to issue #4165).
All cores which require an audio format conversion are affected (one of them is Gambatte).

The fix is more range checking. I also increased the effective input buffer size, to avoid giving CoreAudio less bytes than it requests -- at least in the case I have seen.
2020-08-14 18:55:39 -07:00
Stuart Carnie ed8e2d78f7 Copied Audio fixes 2020-08-14 18:51:49 -07:00
Stuart Carnie dd57da92d9 Initial commit 2020-08-14 18:29:34 -07:00