summaryrefslogtreecommitdiff
path: root/Source/Android
AgeCommit message (Collapse)Author
2024-11-15GDBStub: Signal Breakpoint Changes To Hostmitaclaw
2024-11-03VideoBackendBase: Clarify function nameDentomologist
Rename GetDefaultBackendName to GetDefaultBackendConfigName to distinguish it from the display name.
2024-10-30Merge pull request #13147 from mitaclaw/jit-block-table-model-fixJMC47
JitBlockTableModel: Catch All Block Invalidating Events (I Hope)
2024-10-28Merge pull request #13140 from dreamsyntax/skip-efb-default-flipJMC47
GraphicsSettings: EFBAccessEnable=false by default
2024-10-23Host: Rename `JitCacheInvalidation`mitaclaw
There are two hard problems in computer science...
2024-10-22GraphicsSettings: EFBAccessEnable=false by defaultdreamsyntax
Makes Graphics -> Hacks -> Skip EFB Access from CPU enabled by default. Some GPU drivers stall when EFB access occurs in games where EFB is not used. Most games that require this setting set to 'true' already have this defined in their game inis.
2024-10-19DolphinQt: JIT Widget Refreshmitaclaw
Fulfilling a certain six-year-old todo.
2024-10-18JitCache: Add WipeBlockProfilingData Functionmitaclaw
Accessible from DolphinQt and Android.
2024-10-14Android: Add vsync settingJosJuice
Recently we have been getting some requests to make the existing vsync setting available in the Android GUI: https://bugs.dolphin-emu.org/issues/13650 https://forums.dolphin-emu.org/Thread-vsync-toggle-for-android I don't quite understand why enabling the vsync setting is helpful when Android already enforces vsync, but I guess having the option available doesn't hurt. I'm putting the setting under Advanced, unlike in DolphinQt, since there's no clear reason why the typical user would want to use this setting.
2024-10-13Merge pull request #13069 from JosJuice/android-real-balance-boardJMC47
Android: Add the "Real Balance Board" setting
2024-10-12Merge pull request #13079 from JosJuice/android-16kTilka
Android: Add 16 KiB page size support
2024-10-12Merge pull request #13080 from JosJuice/androidx-edge-to-edgeTilka
Android: Use enableEdgeToEdge
2024-10-04Partially revert "Revert "Audit uses of IsRunning and GetState""JosJuice
This reverts the revert commit bc67fc97c39628c76a4dbca411b0e8a9bfaf726a, except for the changes in BaseConfigLoader.cpp, which caused the bug that made us revert 72cf2bdb87f09deff22e1085de3290126aa4ad05. PR 12917 contains an improved change to BaseConfigLoader.cpp, which can be merged (or rejected) independently. A few changes have also been made based on review comments.
2024-09-28Android: Use enableEdgeToEdgeJosJuice
Dolphin has been using edge-to-edge rendering for a little while now, but it has required a bit of manual work. Now that edge-to-edge is becoming something expected of apps in Android 15, there's a nicer API we can use. Tested on Android 8, 11 and 13, with no changes in behavior noted.
2024-09-28Android: Add 16 KiB page size supportJosJuice
So far, Dolphin hasn't been able to run on Android devices that use a 16 KiB page size. 16 KiB page sizes are a very new Android feature that no phones have shipped with so far, so we're still compatible with the phones that exist out there, but let's get this fixed before phones start shipping with 16 KiB page sizes. Because I couldn't get Android Studio's emulator to work, I haven't been able to confirm that this change actually makes Dolphin fully compatible with devices that use a 16 KiB page size. But I have confirmed that this doesn't break anything on a regular 4 KiB page size device.
2024-09-22StringUtil: Remove `JoinStrings`mitaclaw
With 12 uses of `JoinStrings` in the codebase vs 36 uses of `fmt::join`, fmtlib's range adapter for string concatenation with delimiters is clearly the preferred option.
2024-09-22Android: Add the "Real Balance Board" settingJosJuice
2024-08-18Merge pull request #12863 from JosJuice/android-gamepad-sensorsTilka
Android: Fix and enable input device sensor input
2024-08-15Use 'contains' methodmitaclaw
2024-07-30Merge pull request #12965 from JosJuice/android-ndk-27OatmealDome
Android: Update to NDK 27.0.12077973
2024-07-30Android: Update to NDK 27.0.12077973JosJuice
2024-07-28MainAndroid: Thread Correctness In WriteJitBlockLogDumpmitaclaw
In a race condition, the core could shut down between the `JitInterface::GetCore` nullptr check and the `JitInterface::JitBlockLogDump` call which constructs a `CPUThreadGuard`. In this scenario, nothing horrible happens—`JitBlockLogDump` also checks for a nullptr—but it would be a failure to display the correct feedback to the user.
2024-07-28Merge pull request #12960 from mitaclaw/jni-falseOatmealDome
MainAndroid: Use JNI_FALSE instead of static_cast<jboolean>(false)
2024-07-28Change Dual Core (speedup) to Dual Core (speedhack)MayImilae
2024-07-28Revert "Android: Disable input device sensor input due to crash"JosJuice
This reverts commit 75fb1a7edfb12f490b08ab0b76a8e2f1536d2d9b.
2024-07-28Android: Add workaround for AOSP input device sensor suspend bugJosJuice
2024-07-28Android: Use structural equality for sensorDetailsJosJuice
To fix the crash in input device sensor handling, we should look up Sensors using structural equality. Unfortunately, Sensor.equals implements referential equality, and HashMap doesn't let us provide a custom comparator. Because the number of sensors is relatively small, and because we have a reason to keep a sorted list of sensors around anyway, let's switch from HashMap to ArrayList.
2024-07-27MainAndroid: Use JNI_FALSE instead of static_cast<jboolean>(false)mitaclaw
2024-07-04Merge pull request #12856 from LillyJadeKatrin/retroachievements-pause-v2Admiral H. Curtiss
Handle Pausing in AchievementManager
2024-07-02Merge pull request #12903 from MayImilae/logos-updateOatmealDome
Logo refresh for android, windows, and linux
2024-07-01Merge pull request #12823 from JosJuice/android-new-version-codeOatmealDome
Android: Adopt a new versionCode scheme
2024-07-01Logo refresh for android, windows, and linuxMayImilae
2024-06-30Merge pull request #12894 from deReeperJosh/infinity-base-numbersTilka
IOS/USB: Use Enum for Infinity Base Positions
2024-06-27IOS/USB: Use Enum for Infinity Base PositionsJoshua de Reeper
2024-06-26Revert "Audit uses of IsRunning and GetState"JosJuice
This reverts commit 72cf2bdb87f09deff22e1085de3290126aa4ad05. SYSCONF settings are getting cleared when they shouldn't be. Let's revert the change until I get proper time to figure out why it's broken.
2024-06-24Android: Update copyright year in About dialog to 2024OatmealDome
2024-06-23Android: Track whether app is in foregroundJosJuice
2024-06-22Merge pull request #12828 from JosJuice/unify-state-variables-2Admiral H. Curtiss
Clean up Core::GetState
2024-06-21Audit uses of IsRunning and GetStateJosJuice
Some pieces of code are calling IsRunning because there's some particular action that only makes sense when emulation is running, for instance showing the state of the emulated CPU. IsRunning is appropriate to use for this. Then there are pieces of code that are calling IsRunning because there's some particular thing they must avoid doing e.g. when the CPU thread is running or IOS is running. IsRunning isn't quite appropriate for this. Such code should also be checking for the states Starting and Stopping. Keep in mind that: * When the state is Starting, the state can asynchronously change to Running at any time. * When we try to stop the core, the state gets set to Stopping before we take any action to actually stop things. This commit adds a new method Core::IsUninitialized, and changes all callers of IsRunning and GetState that look to me like they should be changed.
2024-06-21Core: Store current state in less placesJosJuice
Core::GetState reads from four different pieces of state: s_is_stopping, s_hardware_initialized, s_is_booting, and CPUManager::IsStepping. I'm keeping that last one as is for now because there's code in Dolphin that sets it directly, but we can unify the other three to make things easier to reason about. This commit also gets rid of s_is_started. This was previously used in Core::IsRunningAndStarted to ensure true wouldn't be returned until the CPU thread was started, but it wasn't used in Core::GetState, so Core::GetState would happily return State::Running after we had initialized the hardware but before we had initialized the CPU thread. As far as I know, there are no callers that have any real need to know whether the boot process is currently initializing the hardware or the CPU thread. Perhaps once upon a time there was a desire to make the apploader debuggable, but a long time has passed without anyone stepping up to implement it, and the way CBoot::RunApploader is implemented makes it rather difficult. So this commit makes all the functions in Core.cpp consider the core to still be starting until the CPU thread is started.
2024-06-20Add 2 More Slots for Power Discs on Emulated BasedeReeperJosh
2024-06-15Merge pull request #12815 from ↵Admiral H. Curtiss
Dentomologist/enable_hotkeys_and_controllers_for_focused_tas_input TAS Input: Enable emulator hotkeys and controller input when TAS Input window has focus
2024-06-01Android: Adopt a new versionCode schemeJosJuice
Right now, we assign a versionCode to each Android build of Dolphin by counting the total number of git commits made. This has worked fine so far, but it won't work as-is for the new release process. Let's say we're currently on commit 20000. If we want to create a release under the new release process, we would create a release branch, add a new commit on it that updates the release name in CMake files and so on, and create a tag for that commit. The Android build of this release commit would get the version code 20001. However, the master branch is also going to get a commit with the version code 20001 sooner or later, and this commit would be an entirely different commit than commit 20001 on the release branch. This isn't much of a problem for people downloading Dolphin from dolphin-emu.org, but it's a big problem for Google Play, as Google Play doesn't allow us to upload two builds with the same version code. This commit makes us calculate the Android version code in a new way: The number of commits times two, and if the current build isn't a release build, plus 1. (We check whether the current build is a release build by checking whether there's a tag for the current commit.) With this new version code scheme, the release commit described in my example would get the version code 40002, and the master commit would get the version code 40003. This lets us upload both corresponding builds to Google Play, and also lets the user switch from the release build to the development build if they would like to. (Under normal circumstances, Android forbids installing a build with an older version code than the currently installed build. Therefore, whether the 1 is added for release builds or for development builds is a decision with consequences.)
2024-05-31TAS Input: Enable hotkeys and controller input when Input has focusDentomologist
Enable emulator hotkeys and controller input (when that option is enabled) when a TAS Input window has focus, as if it was the render window instead. This allows TASers to use frame advance and the like without having to switch the focused window or disabling Hotkeys Require Window Focus which also picks up keypresses while other apps are active. Cursor updates are disabled when the TAS Input window has focus, as otherwise the Wii IR widget (and anything else controlled by the mouse) becomes unusable. The cursor continues to work normally when the render window has focus.
2024-05-31Merge pull request #12807 from TacoTheDank/cleanupProguardAdmiral H. Curtiss
Android: Clean up ProGuard
2024-05-25Android: Fix Gradle deprecationTacoTheDank
2024-05-25Android: Clean up ProGuardTacoTheDank
2024-05-20Android: Fix crash when no devices have outputsJosJuice
Regression from 5171290bdb.
2024-05-03Core::SetState: Avoid Global System Accessormitaclaw
2024-05-01Core::IsRunning: Avoid Global System Accessormitaclaw