Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dolphin iOS #9662

Closed
wants to merge 793 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
793 commits
Select commit Hold shift + click to select a range
8800b89
iOS: Prevent race conditions when loading the game cache
OatmealDome Jun 6, 2020
fed1ce5
iOS: Remove navigation bar in launch screen
OatmealDome Jun 6, 2020
d17a85f
iOS: Re-order yes/no buttons in software list for consistency
OatmealDome Jun 6, 2020
d97cff7
iOS: Eliminate 5 second delay for controller update on IPL and homebr…
OatmealDome Jun 6, 2020
b12fd60
iOS: Fix update notices crashing or not appearing
OatmealDome Jun 7, 2020
e61e4c3
iOS: Disable left-alignment in the game grid entirely
OatmealDome Jun 7, 2020
efae1d7
iOS: Use gear icon for in-game settings
OatmealDome Jun 7, 2020
62f8411
iOS: Fix bundle IDs
OatmealDome Jun 8, 2020
f3a67e4
iOS: Bump version to 3.1.0
OatmealDome Jun 8, 2020
bcb07d6
Update UpdateEntitlements.sh
OatmealDome Jun 19, 2020
c93ed61
iOS: Fix label sizing issues
OatmealDome Jun 8, 2020
e3bed72
iOS: Add emulation core build type to about
OatmealDome Jun 8, 2020
0753c70
iOS: Add game properties and an info tab
OatmealDome Jun 9, 2020
bdb7d27
iOS: Add support for Dolphin's disc verifier
OatmealDome Jun 9, 2020
88e4254
iOS: Add enable/disable action replay cheats menu
OatmealDome Jun 19, 2020
88e4fae
Revert "Update UpdateEntitlements.sh"
OatmealDome Jun 19, 2020
53f669a
iOS: Add hack for liblzma using pthread_condattr_setclock
OatmealDome Jun 21, 2020
a41a6c5
iOS: Update backend setting to new config system
OatmealDome Jun 21, 2020
ae68695
iOS: Rename ConfigInfo to Info
OatmealDome Jun 21, 2020
5f3c641
iOS: Move to default value check for control group enable/disable
OatmealDome Jun 21, 2020
1a8e123
iOS: Update strings
OatmealDome Jun 21, 2020
c8154d2
iOS: Use new VK_EXT_metal_surface extension
OatmealDome Jun 21, 2020
5a9c526
iOS: Update to custom 1.2.141 MoltenVK
OatmealDome Jun 21, 2020
467354a
iOS: Update BuildDebs script to support CI
OatmealDome Jun 21, 2020
f906d35
iOS: Update BuildIpa script to support CI
OatmealDome Jun 21, 2020
be5bf99
iOS: Add codesigning certificate for CI
OatmealDome Jun 21, 2020
2fac509
iOS: Upload encrypted Firebase plist for CI
OatmealDome Jun 21, 2020
bf8ce7a
iOS: Don't update entitlements if automatic codesigning isn't enabled
OatmealDome Jun 21, 2020
aacc30d
iOS: Add GitHub Actions build script
OatmealDome Jun 21, 2020
d5f130b
iOS: Update MoltenVK to approximately 1.2.141.1
OatmealDome Jun 21, 2020
0addabd
iOS: Remove LogicOp support from MoltenVK
OatmealDome Jun 21, 2020
6cb0757
iOS: Downgrade MoltenVK version to 1.2.135.0
OatmealDome Jun 22, 2020
27e5ee9
iOS: Update MoltenVK to 1.2.141.2 from LunarG
OatmealDome Jun 22, 2020
4c5a5da
[CI] Change S3 upload destination (#16)
OatmealDome Jun 30, 2020
9f319cb
iOS: Update localization strings
OatmealDome Jul 1, 2020
6e7787d
iOS: Add compression libraries for WIA/RVZ
OatmealDome Jul 1, 2020
ba960e5
iOS: Use hash for codesign identity
OatmealDome Jul 1, 2020
dc10002
iOS: Use hash as codesign identity in IPA builder too
OatmealDome Jul 1, 2020
adc29b8
iOS: Map view anywhere if no base is specified
OatmealDome Jul 1, 2020
38a7d67
iOS: Remove psychicpaper support
OatmealDome Jul 2, 2020
a1ee188
iOS: Force fastmem off on NJB
OatmealDome Jul 2, 2020
0e2d622
iOS: Update NJB notice with note about performance
OatmealDome Jul 2, 2020
bb3a602
iOS: Show NJB notice once
OatmealDome Jul 2, 2020
cf61ec4
iOS: Add WIA and RVZ as supported files
OatmealDome Jul 2, 2020
950a24c
iOS: Add hack to force logic ops off
OatmealDome Jul 2, 2020
fbd80d7
iOS: Update MoltenVK to include LogicOps support (again)
OatmealDome Jul 2, 2020
84cf29d
Core: Add layering support to some of the JIT debug settings
OatmealDome Jul 9, 2020
833873f
GameINI: Disable load/store floating point on some Sonic games
OatmealDome Jul 9, 2020
9ac586f
GameINI: Disable load/store paired singles on TTYD
OatmealDome Jul 9, 2020
a34866a
iOS: Adjust priorities and constraints on AR menu
OatmealDome Jul 9, 2020
57fbc0a
iOS: Update default touch profiles to have square calibrations for an…
OatmealDome Jul 14, 2020
ca2ad23
iOS: Add touchscreen controller configuration updater
OatmealDome Jul 14, 2020
3c451c5
iOS: Update localization strings
OatmealDome Aug 1, 2020
7042479
iOS: Update CocoaPods to 1.9.3
OatmealDome Aug 1, 2020
01b13e0
iOS: Use render_surface as CAEAGLLayer
OatmealDome Aug 3, 2020
7a05276
iOS: Use linker flags instead of link libraries build stage
OatmealDome Aug 3, 2020
3378167
iOS: Update MoltenVK to 1.2.148
OatmealDome Aug 3, 2020
5d000e1
iOS: Fix switches being pushed off screen in Action Replay settings
OatmealDome Aug 3, 2020
3f7d9a5
iOS: Add ability to create and edit Action Replay codes
OatmealDome Aug 3, 2020
40b4d5a
iOS: Fix swapped aspect ratio strings
OatmealDome Aug 3, 2020
6a93b15
iOS: Fix inverted defer EFB copies setting
OatmealDome Aug 3, 2020
a7a55b3
iOS: Add fastmem switch in debug settings
OatmealDome Aug 5, 2020
3d9e603
iOS: Don't do any special debug things on simulator
OatmealDome Aug 5, 2020
343325f
iOS: Add additional csdbgd entitlements
OatmealDome Aug 5, 2020
df8dcf6
iOS: Adjust fastmem description in debug settings
OatmealDome Aug 5, 2020
92ffe0b
iOS: Always ensure AR code string is split by new lines
OatmealDome Aug 5, 2020
73333a6
iOS: Validate that decrypted AR codes are in hexadecimal format
OatmealDome Aug 5, 2020
3b280a8
iOS: Fix whitespace in AR edit view controller
OatmealDome Aug 5, 2020
99fea0f
iOS: Load AR codes in viewDidLoad
OatmealDome Aug 5, 2020
36570b5
iOS: Always save AR codes and reload table when unwinding
OatmealDome Aug 5, 2020
5bfdfd1
iOS: Add Gecko code list and editor
OatmealDome Aug 5, 2020
173f9c3
iOS: Disable selection of code editor cells
OatmealDome Aug 5, 2020
af90395
iOS: Call super instead of self in AR and Gecko lists
OatmealDome Aug 5, 2020
467f9d0
iOS: Use SFSymbols gear on verifying compute controller on iOS 13
OatmealDome Aug 5, 2020
e25f989
iOS: Disable load/store floating point on Prince of Persia games
OatmealDome Aug 5, 2020
edb0fb2
iOS: Fix Xcode 12 simulator build
OatmealDome Aug 9, 2020
92d0622
iOS: Add $(inherited) to GCC_PREPROCESSOR_DEFINITIONS
OatmealDome Aug 9, 2020
57f9ceb
iOS: Fix switched 4:3 and 16:9 strings in GraphicsSettings
OatmealDome Aug 9, 2020
604e72b
iOS: Restore DEBUG define
OatmealDome Aug 9, 2020
962f65d
iOS: Update project to Xcode 12 recommended settings
OatmealDome Aug 9, 2020
010b595
iOS: Add support for zh-Hans strings
OatmealDome Aug 9, 2020
c214f8b
iOS: Localize SoftwareProperties
OatmealDome Aug 9, 2020
66cde5a
iOS: Update zh-Hans localizations
OatmealDome Aug 9, 2020
fed8629
iOS: Strip keyboard shortcuts and colons for Dolphin.strings
OatmealDome Aug 9, 2020
8e5870f
iOS: Update software properties strings
OatmealDome Aug 9, 2020
4d28278
iOS: Replace "N/A" With localized "None" in verify results
OatmealDome Aug 9, 2020
3e634fb
iOS: Fix enable Action Replay switch
OatmealDome Aug 9, 2020
7932e38
iOS: Fix enabling Gecko codes
OatmealDome Aug 9, 2020
51ab21c
iOS: Localize Unknown game name and maker
OatmealDome Aug 9, 2020
58d23ba
iOS: Add iOS 14 incompatibility note for non-jailbroken devices
OatmealDome Aug 13, 2020
519fd65
iOS: Update name of DSU configuration variable
OatmealDome Aug 16, 2020
1127fec
iOS: Update localization strings
OatmealDome Aug 16, 2020
3ed6ea0
iOS: Add warning for NKit disc images
OatmealDome Aug 16, 2020
a3826dd
iOS: Fix load store floating point disabled switch being pushed
OatmealDome Aug 16, 2020
36aa903
iOS: Clean up help buttons in debug settings
OatmealDome Aug 16, 2020
4b26716
iOS: Only set height on set debugged cell
OatmealDome Aug 16, 2020
be21334
iOS: Add button to enable debug logs
OatmealDome Aug 16, 2020
079405e
iOS: Fix donation notice and hide button appearing too early
OatmealDome Aug 30, 2020
b5d21fa
iOS: Make quit note more obvious on non-jailbroken and force user to …
OatmealDome Aug 30, 2020
bf77e9a
iOS: Prevent Gecko menu from being entered
OatmealDome Aug 30, 2020
35d82aa
iOS: Force all Gecko codes to be disabled
OatmealDome Aug 30, 2020
7621118
iOS: Add menu for enabling game patches
OatmealDome Aug 30, 2020
ade863f
Core: Allow JIT Branch Off to be disabled per-game
OatmealDome Aug 30, 2020
1f204f8
GameSettings: Turn off JIT Branch for The Urbz: Sims in the City
OatmealDome Aug 30, 2020
d2f2b0c
iOS: Update iOS 14 warning to be more descriptive
OatmealDome Sep 14, 2020
1d00ca6
iOS: Try fixing build failure with Xcode 12 beta
OatmealDome Sep 15, 2020
3bfeced
iOS: Update Xcode 12 path
OatmealDome Sep 15, 2020
71565bd
iOS: Use Xcode 12 release build
OatmealDome Sep 19, 2020
e243647
iOS: Always use shared ZSTD
OatmealDome Sep 19, 2020
8764345
iOS: Don't show OS too new warning if running with Xcode
OatmealDome Sep 24, 2020
1662099
iOS: Don't use mutable string for NKit warning label
OatmealDome Oct 3, 2020
f024240
iOS: Bump version to 3.1.1
OatmealDome Oct 4, 2020
d9e5b5d
iOS: Remove Patreon message
OatmealDome Oct 4, 2020
b354744
iOS: Quit the app if emulation is stopped on a non-jailbroken device
OatmealDome Oct 4, 2020
188857c
iOS: Update MoltenVK to a pre-release version of 1.1.1
OatmealDome Nov 4, 2020
f6021ea
iOS: Add support for CS_EXECSEG_ALLOW_UNSIGNED on iOS 14.2
OatmealDome Nov 4, 2020
5109a1f
iOS: Remove unused set debugged button
OatmealDome Nov 4, 2020
0825605
iOS: Move SetProcessDebugged functionality to JitAcquisitionUtils
OatmealDome Nov 4, 2020
bad1cad
iOS: Only show quit button and quit forcibly if using PTrace hack
OatmealDome Nov 4, 2020
6faa6f3
iOS: Update OS too new notice for iOS 14.2
OatmealDome Nov 4, 2020
b123796
iOS: Don't show quit warning on iOS 14.2+
OatmealDome Nov 4, 2020
29e70dd
iOS: Move JIT related source into its own group
OatmealDome Nov 5, 2020
5443d8d
iOS: Check for an arm64e-compatible CPU for CS_EXECSEG_ALLOW_UNSIGNED
OatmealDome Nov 5, 2020
ab66a59
iOS: Check for a debugged process before CS_EXECSEG_ALLOW_UNSIGNED
OatmealDome Nov 5, 2020
321eabc
iOS: Include newer processors in OS upgrade prompt text
OatmealDome Nov 5, 2020
4ab1b1f
iOS: Only prompt non-jailbroken devices to upgrade their OS
OatmealDome Nov 5, 2020
6bb1b85
iOS: Remove redundant iOS 14 check in AppDelegate
OatmealDome Nov 5, 2020
a47ea64
iOS: Rename rename JitUtil group to Util
OatmealDome Nov 5, 2020
5e7294b
iOS: Enable fastmem automatically if extended virtual addressing is d…
OatmealDome Nov 5, 2020
1302d97
iOS: Allow toggling of fastmem if the capability is there
OatmealDome Nov 5, 2020
1f1d429
iOS: Only attempt to deallocate the test memory if allocation succeeded
OatmealDome Nov 5, 2020
cc1db97
iOS: Only quit app after emulation is stopped if ptrace hack is used
OatmealDome Nov 5, 2020
601e3a4
Update Readme.md (#17)
Simonx22 Nov 4, 2020
6d372dc
iOS: Re-add psychicpaper support for a universal IPA
OatmealDome Nov 6, 2020
804bc7a
iOS: Remove Donate button in Settings
OatmealDome Nov 7, 2020
01fd0e4
iOS: Remove emulation core row in Settings
OatmealDome Nov 7, 2020
df8b0f5
iOS: Update localization strings
OatmealDome Nov 8, 2020
dd978fe
iOS: Rename JitAcquisitionUtils to CodeSignatureUtils
OatmealDome Nov 8, 2020
41761ac
iOS: Set an error type instead of aborting when contacting MobileGestalt
OatmealDome Nov 8, 2020
c6aa5e4
iOS: Split CS_EXECSEG_ALLOW_UNSIGNED checking into a separate method
OatmealDome Nov 8, 2020
9143545
iOS: Set update error when acquiring JIT on iOS 14.0 and 14.1
OatmealDome Nov 8, 2020
26b3670
iOS: Add ability for JIT acquisition to set a specific error message
OatmealDome Nov 9, 2020
fafc0f4
iOS: Don't use abort in DebuggerUtils
OatmealDome Nov 9, 2020
2c614f3
iOS: Check return of DebuggerUtils functions
OatmealDome Nov 9, 2020
ef898cf
iOS: Set visibility states on non-jailbroken notice when not rendering
OatmealDome Nov 9, 2020
f12b715
iOS: Use char array to store JIT acquisition error messages
OatmealDome Nov 9, 2020
74675a1
iOS: Show JIT acquisition error messages on start up
OatmealDome Nov 9, 2020
92436a8
iOS: dlclose opened handles for dylibs as necessary
OatmealDome Nov 9, 2020
aed8cb4
iOS: Use a better method of detecting jailbreakd
OatmealDome Nov 9, 2020
fc523e7
iOS: Include a copy of libjailbreak for Odyssey
OatmealDome Nov 9, 2020
b984dd9
iOS: dlclose earlier when querying MobileGestalt
OatmealDome Nov 9, 2020
6852888
iOS: Verify code directory version and that CS_EXECSEG_ALLOW_UNSIGNED…
OatmealDome Nov 9, 2020
8050c34
iOS: Always assume JIT is available on the simulator
OatmealDome Nov 9, 2020
34c1b8a
iOS: Reset JIT acquisition error message if unsigned segment check fails
OatmealDome Nov 9, 2020
fda814d
iOS: Show arm64e error instead of update notice if applicable
OatmealDome Nov 9, 2020
ed5f9a9
iOS: Only show quit message on stopping if using ptrace hack
OatmealDome Nov 9, 2020
84dbae6
iOS: Only show memory warning once
OatmealDome Nov 9, 2020
2606dcb
iOS: Move libjailbreak into Frameworks group
OatmealDome Nov 9, 2020
78f0a3a
iOS: Introduce FoundationToCString macro
OatmealDome Nov 9, 2020
7e7fd7b
iOS: Use FoundationToCString macro in DebuggerUtils
OatmealDome Nov 9, 2020
16b971f
iOS: Add hacky fastmem on non-jailbroken devices with 4GB+ RAM
OatmealDome Nov 10, 2020
f228a62
iOS: Add debug switch to toggle hacky fastmem
OatmealDome Nov 10, 2020
20bcdb0
iOS: Remove duplicate DolphiniOS folder from project
OatmealDome Nov 10, 2020
4c99700
iOS: Disable hacky fastmem altogether on MMU games
OatmealDome Nov 10, 2020
6cbe40e
iOS: Correct typo in Memmap
OatmealDome Nov 10, 2020
a4776cf
iOS: Add help message for hacky fastmem in debug Settings
OatmealDome Nov 11, 2020
9a76c75
iOS: Use variable instead of calling CanEnableFastmem twice
OatmealDome Nov 11, 2020
1dd5eb3
iOS: Remove unused set process debugged button
OatmealDome Nov 11, 2020
10c5f0c
iOS: Only use ptrace hack on iOS 13.5 and higher
OatmealDome Nov 11, 2020
fa08f6d
iOS: Check for psychicpaper via fastmem type
OatmealDome Nov 11, 2020
bd39017
iOS: Update localization strings
OatmealDome Nov 11, 2020
224b85f
iOS: Remove unsued method for set debugged cell
OatmealDome Nov 11, 2020
a029526
iOS: Remove erroneous switch action connections in Touchscreen config
OatmealDome Nov 11, 2020
b81d2c9
iOS: Add missing trailing constraints on labels in Touchscreen config
OatmealDome Nov 11, 2020
72d3792
iOS: Add easy switch to turn off motion pointer
OatmealDome Nov 11, 2020
09d6ccf
iOS: Add note about pressing the menu button on a controller
OatmealDome Nov 12, 2020
be80f26
iOS: Update project to include ControllerTouchscreenSettingsViewContr…
OatmealDome Nov 12, 2020
da8afdb
iOS: Automatically hide pull down button after 5 seconds
OatmealDome Nov 12, 2020
cd12d0a
iOS: Update CI scripts to replace deprecated set-env
OatmealDome Nov 12, 2020
a519d7f
iOS: Don't build Patreon in CI
OatmealDome Nov 12, 2020
68d0832
iOS: Build separate "universal" IPA for AltStore
OatmealDome Nov 12, 2020
6fe9c3d
iOS: Upload universal IPA to S3
OatmealDome Nov 12, 2020
2ff9c56
iOS: Add reference to DualSense in tutorial text for iOS 14.3
OatmealDome Nov 13, 2020
2a920c5
iOS: Add menu button for Amazon Luna controller to tutorial text
OatmealDome Nov 13, 2020
1c3b4d3
iOS: Add button type for IR recenter
OatmealDome Nov 13, 2020
6916428
iOS: Update touch Wiimote profiles to add IR recenter button
OatmealDome Nov 13, 2020
bbf492a
iOS: Recenter IR on emulation start
OatmealDome Nov 13, 2020
5e1b400
iOS: Add button to in-game settings to recenter IR
OatmealDome Nov 13, 2020
bb6351e
iOS: Fix help button in Settings
OatmealDome Nov 13, 2020
e35e9f4
iOS: Only enable debug hacky fastmem switch if proper fastmem can be …
OatmealDome Nov 13, 2020
dd2415d
iOS: Don't recenter motion pointer on emulation start
OatmealDome Nov 13, 2020
4dfb7ea
iOS: Add remote kill switch for hacky fastmem
OatmealDome Nov 13, 2020
d1c03b1
iOS: Prevent race condition in hacky fastmem kill switch
OatmealDome Nov 13, 2020
4f9c169
iOS: Let hacky fastmem disabled flag be modified within a block
OatmealDome Nov 13, 2020
7eeb21a
iOS: Bump version to 3.2.0
OatmealDome Nov 14, 2020
2153f84
iOS: Remove joystickType from TCDirectionalPad in GC controller
OatmealDome Aug 17, 2020
08a917b
iOS: Add 3D Touch for analog triggers
OatmealDome Aug 17, 2020
e06373a
iOS: Fix trait collection check in TCButton
OatmealDome Aug 17, 2020
04efc5f
iOS: Add 5 second timeout to DebuggerUtils
OatmealDome Nov 14, 2020
11a93f8
iOS: Update CI to use Xcode 12.2
OatmealDome Nov 14, 2020
b8eb464
InputCommon: Split Motor from Touchscreen class
OatmealDome Nov 14, 2020
a3fe207
iOS: Don't save config on memory warning as it could cause a deadlock
OatmealDome Nov 14, 2020
f103118
iOS: Add rumble support on iPhones
OatmealDome Nov 14, 2020
388266d
iOS: Don't hardcode iOS Motor name
OatmealDome Nov 14, 2020
075e0fc
iOS: Add rumble support for controllers
OatmealDome Nov 14, 2020
29410a0
iOS: Add Rumble to the default physical controller profiles
OatmealDome Nov 14, 2020
be03775
iOS: Update existing MFi controller configs for Rumble
OatmealDome Nov 15, 2020
0cb2217
iOS: Manually activate DS4 motion sensors
OatmealDome Nov 15, 2020
b231009
iOS: Handle non-separated gravity and acceleration correctly
OatmealDome Nov 15, 2020
a52a479
iOS: Encapsulate DS4 sensor activation in iOS 14 check
OatmealDome Nov 15, 2020
c6f7b97
iOS: Use hasRotationRate on iOS 14 to check for gyroscope
OatmealDome Nov 15, 2020
3d7af04
iOS: Don't attempt CPUCore check if configuration was deleted
OatmealDome Nov 15, 2020
3a7dc61
iOS: Add support for DualShock 4 Touchpad
OatmealDome Nov 15, 2020
3acaf5c
iOS: Add support for Xbox Elite Controller's paddles
OatmealDome Nov 15, 2020
5b8c162
iOS: Add bulletproof JIT for speed up
OatmealDome Nov 15, 2020
857f323
iOS: Return more specific errors when verifying code signature
OatmealDome Nov 15, 2020
25adf59
iOS: Add additional error messages for psychicpaper checking
OatmealDome Nov 15, 2020
ab74db7
iOS: Update MoltenVK to a63861c7325fb9be77ac5d5cffa320ca4c004241
OatmealDome Nov 15, 2020
1c05d5d
iOS: Prevent memory leak on JIT shutdown
OatmealDome Nov 15, 2020
016fbeb
iOS: Add toggle for 3D Touch analog buttons
OatmealDome Nov 15, 2020
6c3ad50
iOS: Change name of Haptic Feedback switch to Button Haptic Feedback
OatmealDome Nov 15, 2020
bde98b1
iOS: Add toggle for iPhone rumble
OatmealDome Nov 15, 2020
f570d02
iOS: Stop haptic player on Motor destruction
OatmealDome Nov 15, 2020
71e29ee
iOS: Log errors when stopping haptics on Motor destruction
OatmealDome Nov 15, 2020
55ec15b
iOS: Cache last Motor state to prevent unnecessary starts and stops
OatmealDome Nov 15, 2020
ca37903
iOS: Stop all haptics on emulation stop
OatmealDome Nov 15, 2020
69366ba
iOS: Add yoshisuga and Simonx22 to copyright
OatmealDome Nov 15, 2020
1ed31bf
iOS: Flash scroll indicators when view appears in About
OatmealDome Nov 15, 2020
7a3ffb7
iOS: Update localizations
OatmealDome Nov 24, 2020
97ded4d
iOS: Show Patreon build in Settings as Public Beta
OatmealDome Nov 24, 2020
9a0173e
iOS: Use Public Beta as user-facing package name for Patreon build
OatmealDome Nov 24, 2020
9105062
iOS: Check for public beta updates under a new key
OatmealDome Nov 24, 2020
20586eb
iOS: Rename Patreon app name to Beta
OatmealDome Nov 24, 2020
08be73e
Revert "iOS: Don't build Patreon in CI"
OatmealDome Nov 28, 2020
b81cc44
iOS: Use beta in CI artifact file names
OatmealDome Nov 28, 2020
ce266f8
iOS: Change universal IPA name based on beta or release
OatmealDome Nov 28, 2020
ae236a3
iOS: Add non-symlinked path for /var/run to entitlement exceptions
OatmealDome Nov 28, 2020
01e618f
iOS: Make WaitUntilProcessDebugged actually wait
OatmealDome Nov 28, 2020
2a9d3ea
iOS: Don't change universal IPA name based on beta build
OatmealDome Nov 28, 2020
50f62b8
iOS: Bump version to 3.2.0b1
OatmealDome Nov 28, 2020
f7094aa
iOS: Report any errors related to entitlement plist parsing
OatmealDome Nov 28, 2020
fa5c0a6
iOS: Add new app icon for beta builds
OatmealDome Nov 29, 2020
30de430
iOS: Use MAP_JIT flag on psychicpaper
OatmealDome Nov 29, 2020
e6d4fa9
iOS: Fail on entitlement processing error
OatmealDome Nov 29, 2020
53da640
iOS: Only wait for 1 second in wait loop
OatmealDome Nov 30, 2020
33660a0
iOS: Don't call jb_oneshot_entitle_now asynchronously
OatmealDome Nov 30, 2020
2165c3b
iOS: Log return code of jb_oneshot_entitle_now
OatmealDome Nov 30, 2020
430e48e
iOS: Ignore jb_oneshot_entitle_now return code
OatmealDome Nov 30, 2020
bed9f08
Warn against changing the Team on all schemes
jkcoxson Dec 5, 2020
601c735
Merge pull request #18 from jkcoxson/ios-jb
Simonx22 Dec 6, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
172 changes: 172 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
name: Build

on:
push:
branches: [ ios-jb ]
pull_request:
branches: [ ios-jb ]

jobs:
build-jb:
runs-on: macos-10.15

steps:
- uses: actions/checkout@v2

- name: Install build utilities
run: |
sudo xcode-select -s /Applications/Xcode_12.2.app/Contents/Developer
brew install ninja bartycrouch dpkg s3cmd libmagic dos2unix
pip3 install polib python-magic

- name: Create Keychain
run: |
security create-keychain -p alpine build.keychain
security default-keychain -s build.keychain
security unlock-keychain -p alpine build.keychain
security set-keychain-settings -t 36000 build.keychain
security import Source/iOS/DolphiniOS/DolphiniOS/BuildResources/OatmealDomeSoftware.p12 -k build.keychain -P ${{ secrets.CERTIFICATE_GPG_PASSWORD }} -A
security set-key-partition-list -S apple-tool:,apple: -s -k alpine build.keychain

- name: Prepare Resources
run: |
cd Source/iOS/DolphiniOS/DolphiniOS
gpg --quiet --batch --yes --decrypt --passphrase="${{ secrets.FIREBASE_GPG_PASSWORD }}" --output GoogleService-Info.plist GoogleService-Info.plist.gpg
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $((${{ github.run_number }} - 1))" Info.plist
cd BundleResources
rm SpecialThanks.txt
wget -O SpecialThanks.txt https://smash.oatmealdome.me/parts/patrons.txt
dos2unix SpecialThanks.txt

- name: Cache CocoaPods
uses: actions/cache@v1
with:
path: Source/iOS/DolphiniOS/Pods
key: ${{ runner.OS }}-pods-cache-${{ hashFiles('**/Source/iOS/DolphiniOS/Podfile.lock') }}

- name: Run CocoaPods
run: |
cd Source/iOS/DolphiniOS
pod install

- name: Build
env:
XCODEBUILD_ARGS: "BUILD_DIR=${{ github.workspace }}/build-Xcode CODE_SIGNING_ALLOWED=\"NO\" CODE_SIGNING_REQUIRED=\"NO\" CODE_SIGN_ENTITLEMENTS=\"\" CODE_SIGN_IDENTITY=\"\""
run: |
mkdir build-Xcode
cd Source/iOS/DolphiniOS
xcodebuild -workspace DolphiniOS.xcworkspace -configuration "Release (Jailbroken)" -scheme "DolphiniOS" ${{ env.XCODEBUILD_ARGS }}
xcodebuild -workspace DolphiniOS.xcworkspace -configuration "Release (Patreon)" -scheme "DolphiniOS" ${{ env.XCODEBUILD_ARGS }}

- name: Package (Normal)
env:
PROJECT_DIR: "${{ github.workspace }}/Source/iOS/DolphiniOS"
ARCHIVE_PATH: "${{ github.workspace }}/build-Xcode/archive-root-jb"
BUILD_FOR_PATREON: "NO"
IS_CI: "YES"
run: |
mkdir -p ${{ env.ARCHIVE_PATH }}/Products/Applications/
cp -R "${{ github.workspace }}/build-Xcode/Release (Jailbroken)-iphoneos/DolphiniOS.app" ${{ env.ARCHIVE_PATH }}/Products/Applications/
Source/iOS/DolphiniOS/DolphiniOS/BuildResources/BuildScripts/BuildDebs.sh build.keychain JB_DEB_PATH

- name: Package (Patreon)
env:
PROJECT_DIR: "${{ github.workspace }}/Source/iOS/DolphiniOS"
ARCHIVE_PATH: "${{ github.workspace }}/build-Xcode/archive-root-jb-patreon"
BUILD_FOR_PATREON: "YES"
IS_CI: "YES"
run: |
mkdir -p ${{ env.ARCHIVE_PATH }}/Products/Applications/
cp -R "${{ github.workspace }}/build-Xcode/Release (Patreon)-iphoneos/DolphiniOS.app" ${{ env.ARCHIVE_PATH }}/Products/Applications/
Source/iOS/DolphiniOS/DolphiniOS/BuildResources/BuildScripts/BuildDebs.sh build.keychain JB_PATREON_DEB_PATH

- name: Upload
env:
S3CMD_ARGS: "--access_key=${{ secrets.SPACES_KEY }} --secret_key=${{ secrets.SPACES_SECRET }} --host=${{ secrets.SPACES_ENDPOINT }} --host-bucket=${{ secrets.S3_BUCKET }}"
BUCKET_ROOT_PATH: "s3://dios-archive/builds"
run: |
s3cmd put ${{ env.JB_DEB_PATH }}/DolphiniOS.deb ${{ env.BUCKET_ROOT_PATH }}/DolphiniOS-JB-${{ github.run_number }}.deb ${{ env.S3CMD_ARGS }}
s3cmd put ${{ env.JB_PATREON_DEB_PATH }}/DolphiniOS.deb ${{ env.BUCKET_ROOT_PATH }}/DolphiniOS-JB-Beta-${{ github.run_number }}.deb ${{ env.S3CMD_ARGS }}

build-njb:
runs-on: macos-10.15

steps:
- uses: actions/checkout@v2

- name: Install build utilities
run: |
sudo xcode-select -s /Applications/Xcode_12.2.app/Contents/Developer
brew install ninja bartycrouch dpkg s3cmd libmagic dos2unix
pip3 install polib python-magic

- name: Create Keychain
run: |
security create-keychain -p alpine build.keychain
security default-keychain -s build.keychain
security unlock-keychain -p alpine build.keychain
security set-keychain-settings -t 36000 build.keychain
security import Source/iOS/DolphiniOS/DolphiniOS/BuildResources/OatmealDomeSoftware.p12 -k build.keychain -P ${{ secrets.CERTIFICATE_GPG_PASSWORD }} -A
security set-key-partition-list -S apple-tool:,apple: -s -k alpine build.keychain

- name: Prepare Resources
run: |
cd Source/iOS/DolphiniOS/DolphiniOS
gpg --quiet --batch --yes --decrypt --passphrase="${{ secrets.FIREBASE_GPG_PASSWORD }}" --output GoogleService-Info.plist GoogleService-Info.plist.gpg
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $((${{ github.run_number }} - 1))" Info.plist
cd BundleResources
rm SpecialThanks.txt
wget -O SpecialThanks.txt https://smash.oatmealdome.me/parts/patrons.txt
dos2unix SpecialThanks.txt

- name: Cache CocoaPods
uses: actions/cache@v1
with:
path: Source/iOS/DolphiniOS/Pods
key: ${{ runner.OS }}-pods-cache-${{ hashFiles('**/Source/iOS/DolphiniOS/Podfile.lock') }}

- name: Run CocoaPods
run: |
cd Source/iOS/DolphiniOS
pod install

- name: Build
env:
XCODEBUILD_ARGS: "BUILD_DIR=${{ github.workspace }}/build-Xcode CODE_SIGNING_ALLOWED=\"NO\" CODE_SIGNING_REQUIRED=\"NO\" CODE_SIGN_ENTITLEMENTS=\"\" CODE_SIGN_IDENTITY=\"\""
run: |
mkdir build-Xcode
cd Source/iOS/DolphiniOS
xcodebuild -workspace DolphiniOS.xcworkspace -configuration "Release (Non-Jailbroken)" -scheme "DolphiniOS" ${{ env.XCODEBUILD_ARGS }}
xcodebuild -workspace DolphiniOS.xcworkspace -configuration "Release (Patreon Non-Jailbroken)" -scheme "DolphiniOS" ${{ env.XCODEBUILD_ARGS }}

- name: Package (Normal)
env:
PROJECT_DIR: "${{ github.workspace }}/Source/iOS/DolphiniOS"
ARCHIVE_PATH: "${{ github.workspace }}/build-Xcode/archive-root-njb"
BUILD_FOR_PATREON: "NO"
IS_CI: "YES"
run: |
mkdir -p ${{ env.ARCHIVE_PATH }}/Products/Applications/
cp -R "${{ github.workspace }}/build-Xcode/Release (Non-Jailbroken)-iphoneos/DolphiniOS.app" ${{ env.ARCHIVE_PATH }}/Products/Applications/
Source/iOS/DolphiniOS/DolphiniOS/BuildResources/BuildScripts/BuildIpa.sh build.keychain NJB_IPA_PATH

- name: Package (Patreon)
env:
PROJECT_DIR: "${{ github.workspace }}/Source/iOS/DolphiniOS"
ARCHIVE_PATH: "${{ github.workspace }}/build-Xcode/archive-root-njb-patreon"
BUILD_FOR_PATREON: "YES"
IS_CI: "YES"
run: |
mkdir -p ${{ env.ARCHIVE_PATH }}/Products/Applications/
cp -R "${{ github.workspace }}/build-Xcode/Release (Patreon Non-Jailbroken)-iphoneos/DolphiniOS.app" ${{ env.ARCHIVE_PATH }}/Products/Applications/
Source/iOS/DolphiniOS/DolphiniOS/BuildResources/BuildScripts/BuildIpa.sh build.keychain NJB_PATREON_IPA_PATH

- name: Upload
env:
S3CMD_ARGS: "--access_key=${{ secrets.SPACES_KEY }} --secret_key=${{ secrets.SPACES_SECRET }} --host=${{ secrets.SPACES_ENDPOINT }} --host-bucket=${{ secrets.S3_BUCKET }}"
BUCKET_ROOT_PATH: "s3://dios-archive/builds"
run: |
s3cmd put ${{ env.NJB_IPA_PATH }}/DolphiniOS-NJB.ipa ${{ env.BUCKET_ROOT_PATH }}/DolphiniOS-NJB-${{ github.run_number }}.ipa ${{ env.S3CMD_ARGS }}
s3cmd put ${{ env.NJB_IPA_PATH }}/DolphiniOS-NJB-Universal.ipa ${{ env.BUCKET_ROOT_PATH }}/DolphiniOS-NJB-Universal-${{ github.run_number }}.ipa ${{ env.S3CMD_ARGS }}
s3cmd put ${{ env.NJB_PATREON_IPA_PATH }}/DolphiniOS-NJB.ipa ${{ env.BUCKET_ROOT_PATH }}/DolphiniOS-NJB-Beta-${{ github.run_number }}.ipa ${{ env.S3CMD_ARGS }}
s3cmd put ${{ env.NJB_PATREON_IPA_PATH }}/DolphiniOS-NJB-Universal.ipa ${{ env.BUCKET_ROOT_PATH }}/DolphiniOS-NJB-Beta-Universal-${{ github.run_number }}.ipa ${{ env.S3CMD_ARGS }}
114 changes: 91 additions & 23 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,16 @@
# General setup
#
cmake_minimum_required(VERSION 3.10)
set(CMAKE_OSX_ARCHITECTURES "x86_64")
# Minimum OS X version.
# This is inserted into the Info.plist as well.

# MacOS prior to 10.12 did not fully support C++17, which is used to
# handle configuration options
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.12.0" CACHE STRING "")
if(APPLE AND NOT IOS)
set(CMAKE_OSX_ARCHITECTURES "x86_64")
# Minimum OS X version.
# This is inserted into the Info.plist as well.

# MacOS prior to 10.12 did not fully support C++17, which is used to
# handle configuration options
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.12.0" CACHE STRING "")
endif()

project(dolphin-emu)

Expand All @@ -31,6 +34,8 @@ option(ENABLE_QT "Enable Qt (Default)" ON)
option(ENABLE_LTO "Enables Link Time Optimization" OFF)
option(ENABLE_GENERIC "Enables generic build that should run on any little-endian host" OFF)
option(ENABLE_HEADLESS "Enables running Dolphin as a headless variant" OFF)
option(ENABLE_WX_EXCLUSIVITY "Enables W^X for platforms that need it" OFF)
option(ENABLE_BULLETPROOF_JIT "Enables the bulletproof JIT as an alternative to W^X permission swapping" OFF)
option(ENABLE_ALSA "Enables ALSA sound backend" ON)
option(ENABLE_PULSEAUDIO "Enables PulseAudio sound backend" ON)
option(ENABLE_LLVM "Enables LLVM support, for disassembly" ON)
Expand Down Expand Up @@ -205,11 +210,14 @@ elseif(_ARCH_64 AND CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64|AMD64")
add_definitions(-D_M_X86=1)
add_definitions(-D_M_X86_64=1)
check_and_add_flag(HAVE_SSE2 -msse2)
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
set(_M_ARM_64 1)
add_definitions(-D_M_ARM_64=1)
# CRC instruction set is used in the CRC32 hash function
check_and_add_flag(HAVE_ARCH_ARMV8 -march=armv8-a+crc)

if (ANDROID OR IOS)
# CRC instruction set is used in the CRC32 hash function
check_and_add_flag(HAVE_ARCH_ARMV8 -march=armv8-a+crc)
endif()
else()
message(FATAL_ERROR "You're building on an unsupported platform: "
"'${CMAKE_SYSTEM_PROCESSOR}' with ${CMAKE_SIZEOF_VOID_P}-byte pointers."
Expand Down Expand Up @@ -273,9 +281,13 @@ else()
check_and_add_flag(VISIBILITY_HIDDEN -fvisibility=hidden)

check_and_add_flag(FOMIT_FRAME_POINTER -fomit-frame-pointer RELEASE_ONLY)

dolphin_compile_definitions(_DEBUG DEBUG_ONLY)
check_and_add_flag(GGDB -ggdb DEBUG_ONLY)
if(IOS)
check_and_add_flag(GGDB -g DEBUG_ONLY)
else()
check_and_add_flag(GGDB -ggdb DEBUG_ONLY)
endif()

if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
# GNU ar: Create thin archive files.
Expand All @@ -287,7 +299,7 @@ else()
endif()
endif()

if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
if(CMAKE_SYSTEM_NAME MATCHES "Darwin" AND NOT IOS)
if(NOT OSX_USE_DEFAULT_SEARCH_PATH)
# Hack up the path to prioritize the path to built-in OS libraries to
# increase the chance of not depending on a bunch of copies of them
Expand All @@ -308,6 +320,9 @@ if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
# Drop unreachable code and data.
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-dead_strip,-dead_strip_dylibs")

# Add define for macOS
add_definitions(-DMACOS)

find_library(APPKIT_LIBRARY AppKit)
find_library(APPSERV_LIBRARY ApplicationServices)
find_library(CARBON_LIBRARY Carbon)
Expand Down Expand Up @@ -402,12 +417,59 @@ if(ANDROID)
SET(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
endif()

if(IOS)
message(STATUS "Building for iOS")

add_definitions(-DIPHONEOS)

if(ENABLE_NOGUI)
message(STATUS "Building iOS app, disabling NoGUI frontend.")
set(ENABLE_NOGUI 0)
endif()

set(ENABLE_BULLETPROOF_JIT 1)
set(USE_UPNP 0)
set(ENABLE_QT 0)
set(USE_DISCORD_PRESENCE 0)

if(IOS_JAILBROKEN)
message(STATUS "Building for jailbroken iOS devices")
add_definitions(-DIPHONEOS_JAILBROKEN)
else()
message(STATUS "Building for non-jailbroken iOS devices")
endif()

# We are cross compiling, search only the toolchain for libraries and includes
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
endif()

if(ENABLE_HEADLESS)
message(STATUS "Enabling Headless! Disabling GUI.")
set(ENABLE_QT 0)
set(USE_DISCORD_PRESENCE 0)
endif()

if(ENABLE_WX_EXCLUSIVITY)
message(STATUS "Enabling WX exclusivity.")
if(NOT WIN32 AND NOT APPLE)
message(FATAL_ERROR "WX exclusivity is not supported on this platform.")
endif()

add_definitions(-D_WX_EXCLUSIVITY)
endif()

if(ENABLE_BULLETPROOF_JIT)
message(STATUS "Enabling bulletproof JIT.")
if(NOT IOS)
message(FATAL_ERROR "WX exclusivity is not supported on this platform.")
endif()

add_definitions(-D_BULLETPROOF_JIT)
endif()

# Set file offset size to 64 bits.
#
# On modern Unixes, this is typically already the case. The lone exception is
Expand Down Expand Up @@ -611,7 +673,7 @@ else()
endif()

pkg_search_module(ZSTD QUIET libzstd)
if(ZSTD_FOUND)
if(ZSTD_FOUND AND NOT IOS)
message(STATUS "Using shared zstd")
else()
check_vendoring_approved(zstd)
Expand Down Expand Up @@ -679,16 +741,22 @@ endif()
add_subdirectory(Externals/soundtouch)
include_directories(Externals/soundtouch)

find_package(Cubeb)
if(CUBEB_FOUND)
message(STATUS "Using the system cubeb")
else()
check_vendoring_approved(cubeb)
message(STATUS "Using static cubeb from Externals")
add_subdirectory(Externals/cubeb EXCLUDE_FROM_ALL)
# Cubeb support for iOS is old and broken.
# See: https://github.com/kinetiknz/cubeb/issues/394
if(NOT IOS)
find_package(Cubeb)
if(CUBEB_FOUND)
message(STATUS "Using the system cubeb")
else()
check_vendoring_approved(cubeb)
message(STATUS "Using static cubeb from Externals")
add_subdirectory(Externals/cubeb EXCLUDE_FROM_ALL)
set(CUBEB_FOUND true)
endif()
add_definitions(-DHAVE_CUBEB)
endif()

if(NOT ANDROID)
if(NOT ANDROID AND NOT IOS)
add_definitions(-D__LIBUSB__)
if(NOT APPLE)
find_package(LibUSB)
Expand Down Expand Up @@ -764,7 +832,7 @@ if (NOT ANDROID)
find_path(ICONV_INCLUDE_DIR NAMES iconv.h)
endif()

if (NOT ANDROID AND ICONV_LIBRARIES AND ICONV_INCLUDE_DIR)
if (NOT ANDROID AND NOT IOS AND ICONV_LIBRARIES AND ICONV_INCLUDE_DIR)
mark_as_advanced(ICONV_INCLUDE_DIR ICONV_LIBRARIES)
else()
check_vendoring_approved(iconv)
Expand All @@ -774,7 +842,7 @@ else()
set(ICONV_LIBRARIES iconv)
endif()

if(NOT ANDROID)
if(NOT ANDROID AND NOT IOS)
find_package(HIDAPI)
if(NOT HIDAPI_FOUND)
check_vendoring_approved(hidapi)
Expand Down
3 changes: 3 additions & 0 deletions Data/Sys/GameSettings/G8M.ini
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,6 @@ DeferEFBCopies = False

[Video_Stereoscopy]
StereoConvergence = 545

[Dolphin.Debug]
JitLoadStorePairedOff = True
2 changes: 2 additions & 0 deletions Data/Sys/GameSettings/GKM.ini
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,5 @@
[Video_Settings]
SafeTextureCacheColorSamples = 512

[Dolphin.Debug]
JitLoadStoreFloatingOff = True
3 changes: 3 additions & 0 deletions Data/Sys/GameSettings/GPT.ini
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,6 @@

[Video_Hacks]
ImmediateXFBEnable = False

[Dolphin.Debug]
JitLoadStoreFloatingOff = True
Loading