Commit Graph

45 Commits

Author SHA1 Message Date
Riley Testut
d5f910ff00 Adds missing throws to SaveState.awakeFromSync() 2023-08-11 18:57:28 -05:00
Riley Testut
d1643dbc8f Throws SyncValidationError when downloading corrupted versions of “verified” SaveStates
After reviewing save states upon first launch, Delta will upload the verified game ID as metadata to ensure other devices don’t download remote versions with incorrect relationships.
2023-08-11 18:57:27 -05:00
Riley Testut
061f5abd3e Allows explicitly downloading corrupted record versions from RecordVersionsViewController 2023-08-10 19:33:27 -05:00
Riley Testut
fcdd3c7840 Throws SyncValidationError when downloading corrupted Game or GameSave record 2023-08-10 19:33:27 -05:00
Riley Testut
15e228f287 Adds GameSave.sha1 to sync hash between devices
Fixes redundant record uploads post-sync due to comparing hashes against locally-cached hash via extended attributes.
2023-06-28 13:33:16 -05:00
Riley Testut
707116a39b Automatically resolves Cheat + ControllerSkin sync conflicts 2023-06-27 18:58:41 -05:00
Riley Testut
7b9ab2488e Fixes accidentally deleting Games directory during sync in rare circumstances
If a Game with empty filename happens to be deleted (e.g. during sync merge), it will accidentally delete the *entire* Games folder due to its fileURL being “Games/[empty]”.

To prevent this, we now explicitly check that a Game’s identifier isn’t empty AND that that Game.fileURL doesn’t point to a directory before deleting local files.
2023-05-02 14:29:23 -05:00
Riley Testut
39522fda58 [Experimental Feature] Supports AirPlay controller skins
Allows users to customize controller skin when AirPlaying games to an external display.
2023-04-27 14:58:51 -05:00
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
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
17e1bf710b Dynamically maps outdated artwork URLs to correct URLs 2021-12-02 13:12:07 -08:00
Riley Testut
98ed657f8a Improves support for transparent and/or rotated custom artwork 2021-03-10 14:14:14 -06:00
Riley Testut
bf2461fae1 Enables syncing DS(i) BIOS files
Excludes DSi NAND for now, since it is ~240MB and Harmony can’t selectively download files (yet).
2021-02-18 13:45:49 -06:00
Riley Testut
c67b72068a Adds missing imports 2021-02-09 12:26:16 -06:00
Riley Testut
c7329136ac Supports touch inputs when external controller is connected 2020-12-10 15:34:16 -06:00
Riley Testut
358accbcb7 Adds DSi support
Requires DSi BIOS files.
2020-11-24 13:06:29 -06:00
Riley Testut
e11e4437c5 Adds coreID to SaveState’s Harmony metadata for backwards compatibility 2020-04-27 13:03:28 -07:00
Riley Testut
01320b4dec Adds SaveState.coreIdentifier to filter out save states from other cores
Prevents DeSmuME save states from appearing while using melonDS core and vice versa.
2020-04-23 17:24:04 -07:00
Riley Testut
77da71cd62 Adds “Home Screen” DS game to boot into DS main menu 2020-04-23 17:18:59 -07:00
Riley Testut
4ba2fa8d21 Adds support for new Nintendo DS controller skin 2020-02-11 16:34:57 -08:00
Riley Testut
a0f60de926 Dynamically maps old album artwork URLs to new ones 2019-12-11 16:11:25 -08:00
Riley Testut
ef64a15e37 Adds ability to reset controller mappings to default mapping 2019-09-30 17:27:06 -07:00
Riley Testut
1e350e1369 Automatically resolves GameCollection + GameControllerInputMapping conflicts 2019-09-19 13:29:51 -07:00
Riley Testut
9b28d42814 Updates input + video logic to support revised DeltaCore API
- Continuous inputs
- OpenGLES-based rendering
- Thumbsticks in controller skins
2019-04-30 15:42:30 -07:00
Riley Testut
3bd0a35c61 Adds support for syncing GameSaves 2019-01-29 15:07:46 -08:00
Riley Testut
bace668739 Adds SyncResultViewController to view errors that occured during sync 2018-12-04 17:21:04 -08:00
Riley Testut
eaa8429bd8 Adds SaveState.localizedName 2018-12-04 17:06:42 -08:00
Riley Testut
5354d779c1 Adds SyncStatusViewController to view basic sync status of games 2018-11-20 13:04:55 -06:00
Riley Testut
a3108e6c3a Adds support for syncing GameControllerInputMappings 2018-11-14 15:36:16 -08:00
Riley Testut
557529b1e7 Adds support for syncing ControllerSkins 2018-11-14 14:26:19 -08:00
Riley Testut
5b64ca7c7b Adds support for syncing Cheats 2018-11-14 14:10:19 -08:00
Riley Testut
fb9272cd6c Adds support for syncing SaveStates 2018-11-14 13:42:36 -08:00
Riley Testut
f858a3eb07 Adds support for syncing Games and GameCollections 2018-11-14 13:18:48 -08:00
Riley Testut
746ed9638b Changes Game.gameCollections to single Game.gameCollection 2018-11-13 16:13:03 -08:00
Riley Testut
a9c3e85df8 Adds support for 3D Touch app icon game shortcuts 2018-01-04 14:17:59 -06:00
Riley Testut
18d6bd262a Adds support for iPhone X-optimized controller skins 2017-12-19 01:54:10 -06:00
Riley Testut
fb11f6dec7 Replaces fileprivate with private. THANK FUCKING GOD. 2017-10-12 15:33:16 -07:00
Riley Testut
61440ef994 Adds support for handling ActionInputs from GameControllers
• Quick Save
• Quick Load
• Fast Forward
2017-10-10 14:54:20 -07:00
Riley Testut
94cbdbe159 Persists customized input mappings between app launches 2017-09-28 12:55:05 -07:00
Riley Testut
d70105e30e Adds ControllerInputsViewController to customize external game controller inputs
Includes necessary code changes to use refactored DeltaCore Input logic
2017-09-27 13:08:41 -07:00
Riley Testut
78c47015a5 Adds support for selecting game artwork from clipboard and photo library 2017-05-02 03:21:40 -07:00
Riley Testut
93493534e0 Adds support for GBC games
Adds System enum to represent supported game systems, simplifying the process to add future game systems.
2017-04-30 21:39:13 -07:00
Riley Testut
5c6c66c9a1 Fixes crashes when loading Game or SaveState that had been overwritten by a duplicate entry
When Core Data detects a duplicate entry, it deletes the previous entry. This caused Delta to delete the associated ROM and Save State files. Now, there is a check in prepareForDeletion to make sure the object being deleted is not simply being replaced by a newer entry during a merge.
2016-12-26 15:56:33 -06:00
Riley Testut
062abf6dbe Adds ability to import games & controller skins from other apps 2016-12-22 16:59:29 -06:00
Riley Testut
93119b4714 Reorganizes Xcode project structure
Merges “Common” folder into main Delta target folder
2016-12-20 18:24:43 -06:00