* Adds extension to handle interactions with Photos app
- isAuthorized to check/ask for authorization
- saveUIImage to save a UIImage to Photos
* Adds a Pause Menu button for taking game screenshots
* Adds @Feature and @Options for Game Screenshots
* Implements Game Screenshots feature in GameViewController
* Updates project settings
* Passes call to save to Photos as a closure into authorization prompt
- Ensures that the screenshot is saved when the user is first prompted for access to Photos
- More elegant extension code
---------
Co-authored-by: Riley Testut <riley@rileytestut.com>
* Uses Home button as Menu button when possible
* Supports “Start/Select” buttons for Switch NES controllers
* Rotates single JoyCon face buttons 90º
* Re-maps single JoyCon control stick from dPad to leftAnalogStick
* Re-maps L1/R1/L2/R2 buttons for N64 core
CheatBase now only contains two tables, CHEATS and CHEAT_CATEGORIES.
Delta unzips SQLite database from cheatbase.zip on launch whenever CheatBase.cheatsVersion changes.
Lists everyone who has contributed to Delta in some way besides the core team, as well as what they contributed.
Moves Grant Gliner and Chris Rittenhouse to Contributors from main Credits.
We use DeltaCore’s new UIWindow subclass GameWindow in SceneDelegate to fix issues that were introduced with iOS 16 beta 5.
Also removes touchControllerSkin.layoutGuide = self.view.safeAreaLayoutGuide assignment which no longer compiles due to TouchControllerSkin refactoring.
iPads in landscape orientation should only place DS screens side-by-side if the app window is wider than it is tall. Otherwise, it should use the default vertical screen layout.
melonDS save states created with JIT enabled cannot be loaded later without JIT, which made it very easy to accidentally replace a save state with one that could only be loaded when JIT is available.
We plan to remove AltJIT eventually for this reason, but for now we’ll just disable it by default.
* Makes temporary copy instead of symbolic link when exporting game
* Sanitizes game name before exporting game
* Fixes prematurely deleting temporary game
* Exported save file names now match exported game names
Xcode 12 and older incorrectly let us declare BIOSError.incorrectSize as @available(iOS 13), but Swift doesn't support @available for enum cases with associated values. Xcode 13 now properly enforces this restriction, so we instead mark the enum itself as @available(iOS 13).