summaryrefslogtreecommitdiff
path: root/Source/Android
AgeCommit message (Collapse)Author
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
2024-04-21Merge pull request #12727 from Simonx22/android-dependencies-042024OatmealDome
Android: Update dependencies
2024-04-20Merge pull request #12686 from JosJuice/android-remove-strikeoutAdmiral H. Curtiss
Android: Unset STRIKE_THRU_TEXT_FLAG for editable settings
2024-04-20Android: Update dependenciesSimonx22
2024-04-13Merge pull request #12681 from nlebeck/taskviewmodel-refactorAdmiral H. Curtiss
Refactor `TaskViewModel` to track task-related state in a single `MutableLiveData` instance
2024-04-13Merge pull request #12688 from JosJuice/android-alert-synchronizeAdmiral H. Curtiss
Android: Fix race condition in displayAlertMsg
2024-04-13Merge pull request #12691 from mitaclaw/jit-profiling-restorationAdmiral H. Curtiss
JitCache: Software Profiling Restoration
2024-04-09Android: Access Software JIT Profilingmitaclaw
2024-04-09JitCache: Software Profiling Restorationmitaclaw
Rekindle software JIT profiling with a std::chrono conversion and a config connection.
2024-04-08Core::GetState: Avoid Global System Accessormitaclaw
2024-04-07Refactor TaskViewModel to track task-related state in a single ↵Niel Lebeck
MutableLiveData instance
2024-04-06NativeLibrary: Create displayToastMsg Methodmitaclaw
2024-04-05Android: Fix race condition in displayAlertMsgJosJuice
It was possible for sAlertMessageLock.notify() to be called before sAlertMessageLock.wait(), causing Dolphin to deadlock. In particular, this was guaranteed to happen if displayAlertMsg was called from the UI thread while the emulation activity is being destroyed, because runOnUiThread runs the passed-in anonymous function immediately when called from the UI thread. By replacing Object.wait/Object.notify with Semaphore.acquire/ Semaphore.release, it no longer matters what order the methods are called in.
2024-04-05Android: Unset STRIKE_THRU_TEXT_FLAG for editable settingsJosJuice
Because SettingViewHolder is used in RecyclerViews, we have to explicitly unset STRIKE_THRU_TEXT_FLAG when we don't want it, otherwise it might be left over from when the SettingViewHolder was representing a different setting.
2024-03-31Merge pull request #12645 from mitaclaw/ppc-symbols-signalAdmiral H. Curtiss
DolphinQt: A Ubiquitous Signal For When Symbols Change
2024-03-29Merge pull request #12666 from Matt-Swift/masterJosJuice
Add tapserver BBA and Modem Adapter UI options to Android
2024-03-28DolphinQt: A Ubiquitous Signal For When Symbols Changemitaclaw
There were three distinct mechanisms for signaling symbol changes in DolphinQt: `Host::NotifyMapLoaded`, `MenuBar::NotifySymbolsUpdated`, and `CodeViewWidget::SymbolsChanged`. The behavior of these signals has been consolidated into the new `Host::PPCSymbolsUpdated` signal, which can be emitted from anywhere in DolphinQt to properly update symbols everywhere in DolphinQt.
2024-03-25Add tapserver BBA and Modem Adapter UI config to AndroidMatt
This PR simply exposes the tapserver options in Serial Port 1 on Android. They already exist and work, but are not selectable. I've tested the tapserver options myself with Phantasy Star Online Episode I & II and they work fine.