Commit Graph

465 Commits

Author SHA1 Message Date
Riley Testut
1137189b57 Adds Nintendo DS AirPlay settings to customize how games appear on TV
* Top Screen Only = Shows just the top screen on TV
* Layout Horizontally = Places screens side-by-side on TV (instead of stacked vertically)
2023-04-26 16:07:17 -05:00
Riley Testut
32e7c1f93e Supports AirPlaying games to external displays 2023-04-26 14:56:45 -05:00
Riley Testut
77b26210ab [Experimental Features] Adds (unimplemented) VariableFastForward feature 2023-04-21 14:51:45 -05:00
Riley Testut
20749c5419 Adds “Experimental Features” section to SettingsViewController 2023-04-21 14:51:45 -05:00
Riley Testut
bd0c72e847 Adds ExperimentalFeaturesView to browse and configure experimental features 2023-04-21 14:03:10 -05:00
Riley Testut
3fb7e8b4b7 [Features] Moves Notification.Name.settingsDidChange to DeltaFeatures
Re-exports as Settings.didChangeNotification to allow accessing without explicitly importing DeltaFeatures.
2023-04-13 15:57:25 -05:00
Riley Testut
9406cfe6cc [Features] Moves Settings.Name + Settings.NotificationUserInfoKey to DeltaFeatures
Also refactors from enums to RawRepresentable structs to support arbitrary values.
2023-04-13 15:43:43 -05:00
Riley Testut
10af836105 Supports local multiplayer (up to 4 players)
Heavily based on Ian Clawson’s PRs, including #128
2023-02-28 18:49:32 -06:00
Riley Testut
5a019e5950 Optimizes default input mappings for Joy-Cons, Switch Online, and other non-MFi controllers
* 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
2023-02-28 18:12:14 -06:00
Riley Testut
dd314a12af Automatically disables AltJIT for non-BETA builds 2023-02-27 12:51:14 -06:00
Riley Testut
68ad2185dd Hides AltJIT setting for non-BETA builds 2023-02-27 12:46:04 -06:00
Riley Testut
66e5258368 Updates Chris Rittenhouse credits
Replaces GitHub link with personal website, and fixes incorrect Twitter handle.
2023-02-06 15:35:05 -06:00
Riley Testut
6a683be907 Replaces cheatbase.sqlite with trimmed cheatbase.zip
CheatBase now only contains two tables, CHEATS and CHEAT_CATEGORIES.

Delta unzips SQLite database from cheatbase.zip on launch whenever CheatBase.cheatsVersion changes.
2023-02-06 15:11:27 -06:00
Riley Testut
d79002ea6b Changes cheat activation alert title to “How to Activate" 2023-02-06 14:47:06 -06:00
Riley Testut
913cb788a2 Improves CheatBase error messages 2023-02-06 14:45:48 -06:00
Riley Testut
45665138b2 Adds “Contributors” section to Credits
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.
2023-02-06 14:35:43 -06:00
Riley Testut
d1c45c9ad0 Adds Shane Gill to Credits 2023-02-06 13:53:15 -06:00
Riley Testut
d31229001f Fixed incorrect font size for Credits section in Settings
All labels should use 17pt system font, but Credits used 16pt by accident
2023-02-06 13:41:48 -06:00
Riley Testut
5bc2f08084 Limits “Search CheatBase” option to DS games
CheatBase currently only contains cheats for DS games, so no use showing option for other systems (yet).
2023-01-31 14:36:38 -06:00
Riley Testut
041cce64b0 Prefetches CheatBase cheats + disables “Search CheatBase” option if there aren’t any 2023-01-31 14:36:38 -06:00
Riley Testut
a135ea236d Integrates CheatBase to browse and easily add cheats for recognized games
Limited to DS games right now.
2023-01-31 14:36:37 -06:00
Riley Testut
77983e73dd Adds “Respect Silent Mode” setting to configure whether Delta plays game audio in Silent Mode
Delta will also now automatically mute game audio if another app is playing audio.

[Missed] Mutes game audio correctly
2023-01-31 14:34:32 -06:00
Riley Testut
d17a1f3d8f Fixes remapping continuous inputs 2022-10-19 17:14:22 -05:00
Riley Testut
7d93470738 Fixes taps sometimes not dismissing active callout view when remapping inputs 2022-10-19 17:07:56 -05:00
Riley Testut
48be35cbf2 Fixes displaying system name in dark text when remapping inputs on iOS 16 2022-08-15 16:18:04 -05:00
Riley Testut
5805b859f5 [iPad] Dismisses keyboard controller when pausing 2022-08-12 19:38:28 -05:00
Riley Testut
d061f56951 [iPad] Fixes keyboard controller not appearing when selecting buttons to hold 2022-08-12 19:37:26 -05:00
Riley Testut
c3e9cfe526 [iPad] Fixes keyboard controller sometimes using incorrect skin orientation 2022-08-12 19:35:37 -05:00
Riley Testut
ea871c7520 Removes unnecessary ControllerSkin.inputs(for:at:)
ControllerSkinProtocol no longer requires this method, so we can just remove it.
2022-08-12 19:26:13 -05:00
Riley Testut
e1ee540d27 [iPad] Fixes automatically pausing + resuming emulation with Stage Manager on iOS 16 beta 5
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.
2022-08-12 19:23:23 -05:00
Riley Testut
bb812c7f02 [iPad] Uses window size to determine TouchControllerSkin axis, not interface orientation
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.
2022-08-12 19:11:58 -05:00
Riley Testut
6ba648ed17 [iPad] Initial support for Split View / Stage Manager
Requires game controller (or hardware keyboard) to play games because we still need to update controller skins to support Split View.
2022-08-12 19:05:02 -05:00
Riley Testut
05a66a140e Fixes not detecting keyboard presses when remapping inputs 2022-08-11 17:42:36 -05:00
Riley Testut
52a68e28dd Switches to UIScene-based app lifecycle 2022-07-25 17:24:57 -05:00
Riley Testut
7b1db2614f Fixes ControllerInputsViewController’s system picker UI 2022-05-31 18:03:26 -07:00
Riley Testut
973238e1a4 Disables AltJIT by default
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.
2022-05-31 17:59:01 -07:00
Riley Testut
7c934cebe1 Merge branch 'ipad' into develop
# Conflicts:
#	Delta.xcodeproj/project.pbxproj
2022-05-31 17:51:31 -07:00
Riley Testut
fce4fc1bec [iPad] Temporarily disables split view support 2022-05-16 14:54:42 -07:00
Riley Testut
977f3d8005 Fixes previous game controller remaining selected when changing controller 2022-05-09 16:44:29 -07:00
Riley Testut
edab6ea432 Fixes sharing games + exporting save files
* 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
2022-04-28 18:13:25 -07:00
Riley Testut
9e437797d9 Improves CopyDeepLinkActivity
* Uses SF Symbol instead of bundled image
* Actually calls activityDidFinish(_:)
2022-04-28 16:57:06 -07:00
Riley Testut
25afda3b60 Replaces UIAlertController with UIMenu for importing games 2022-04-28 16:54:18 -07:00
Riley Testut
836297718b [iPad] Fixes game context menu actions 2022-04-28 16:38:14 -07:00
Riley Testut
da8415f4aa Improves SaveStatesViewController UI on iPad 2022-04-28 16:15:48 -07:00
Riley Testut
68c1b05313 Improves GameCollectionViewController UI on iPad 2022-04-28 15:47:05 -07:00
Riley Testut
2a4dbabae5 Fixes crash when presenting ImportController on iPad 2022-04-28 12:49:16 -07:00
Riley Testut
aafe673811 Fixes invisible navigation bar + toolbar on iPadOS 15 2022-04-27 17:57:55 -07:00
Riley Testut
adccf8fca5 Fixes ControllerInputsViewController UI on iPad 2022-04-27 16:15:09 -07:00
Riley Testut
fd0427d2ad Fixes BIOSError compilation error when compiling with Xcode 13
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).
2022-04-19 14:20:40 -07:00
Riley Testut
394030ad43 Ensures melonDS is preferred DS core for release versions 2021-12-02 13:36:37 -08:00