Commit Graph

1664 Commits

Author SHA1 Message Date
Sam Belliveau 877864c23a Improve Performance of Granular Buffering + User Adjustable Buffer Size 2025-04-01 18:17:21 -04:00
JosJuice 9e9faf3be1 Android: Show message when trying to map disconnected device
Having the MotionAlertDialog immediately close is confusing for users.
Let's show a message to tell them what went wrong.
2025-03-23 21:39:08 +01:00
JosJuice 516c1314d2 Android: Don't use separate thread for MotionAlertDialog
This is an Android continuation of bc95c00. We now call
InputDetector::Update immediately after receiving an input event from
Android instead of periodically calling it in a sleep loop. This
improves detection of very short inputs, which are especially likely to
occur for volume buttons on phones (or at least on my phone) if you
don't intentionally keep them held down.
2025-03-23 21:39:04 +01:00
Jordan Woyak ddb82a5e8c InputCommon/ControllerEmu: Break out functionality of EmulatedController
to eliminate redundant unused members in Wii Remote extension objects.
2025-03-15 14:30:43 -05:00
JosJuice e637a05707
Merge pull request #12866 from JosJuice/android-log-types-sorting
Android: Replace log type names map with array
2025-03-15 16:01:33 +01:00
Sam Belliveau f09ba10daa AudioCommon: Added Granular Synthesis 2025-03-14 01:22:35 -05:00
Jordan Woyak 01099d67cb
Merge pull request #13326 from nlebeck/taskviewmodel-mustrestartapp
Eliminate TaskViewModel's `mustRestartApp` field
2025-02-20 21:58:18 -06:00
Jordan Woyak adc5b81c31 DolphinQt: Rename the pack/unpack SD Card buttons. 2025-02-12 13:30:48 -06:00
Niel Lebeck 56fd1f39d8 Eliminate TaskViewModel's mustRestartApp field
Instead of having UserDataImportWarningDialog set an
`onResultDismiss` callback that examines `mustRestartApp`, and having
UserDataActivity set `mustRestartApp`, just have UserDataActivity set
the callback directly.

This approach is no more data-race-y than the previous approach, and it
simplifies the code. (The behavior of restarting the app when the task
finishes is specific to the user data import flow, and there is no
reason for TaskViewModel to be directly aware of it.)
2025-02-02 12:24:51 -08:00
Daniel Peukert f28e134c88
Clean up CRLF line endings 2025-01-12 11:06:04 +01:00
Admiral H. Curtiss 75abda6a3a
Merge pull request #12864 from JosJuice/android-window-compat
Android: Replace deprecated setSystemUiVisibility
2025-01-10 04:45:11 +01:00
Gamer64 764bf314e1 Android: Fix VSync option not working
It happened due to a typo from SECTION_GFX_HARDWARE
2024-12-24 10:41:45 +01:00
Dentomologist 7b8610f4ea VideoBackendBase: Clarify function name
Rename GetDefaultBackendName to GetDefaultBackendConfigName to
distinguish it from the display name.
2024-11-03 12:26:57 -08:00
JMC47 bab34ca060
Merge pull request #13140 from dreamsyntax/skip-efb-default-flip
GraphicsSettings: EFBAccessEnable=false by default
2024-10-28 18:58:37 -04:00
dreamsyntax 9dacefcbf1 GraphicsSettings: EFBAccessEnable=false by default
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-22 12:28:14 -07:00
mitaclaw ff9be97ea1 JitCache: Add WipeBlockProfilingData Function
Accessible from DolphinQt and Android.
2024-10-18 23:50:26 -07:00
JosJuice 564e640acf Android: Add vsync setting
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-14 12:20:15 +02:00
JMC47 8d5b6e8e86
Merge pull request #13069 from JosJuice/android-real-balance-board
Android: Add the "Real Balance Board" setting
2024-10-13 15:17:26 -04:00
Tilka 35ec2e97a8
Merge pull request #13079 from JosJuice/android-16k
Android: Add 16 KiB page size support
2024-10-12 10:11:33 +01:00
Tilka c5ce90b786
Merge pull request #13080 from JosJuice/androidx-edge-to-edge
Android: Use enableEdgeToEdge
2024-10-12 10:11:11 +01:00
JosJuice 6ca2da53e8 Partially revert "Revert "Audit uses of IsRunning and GetState""
This reverts the revert commit bc67fc97c3,
except for the changes in BaseConfigLoader.cpp, which caused the bug
that made us revert 72cf2bdb87. 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-10-04 18:35:41 +02:00
JosJuice d0e6573ac7 Android: Use enableEdgeToEdge
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-28 18:20:31 +02:00
JosJuice 14a802b58b Android: Add 16 KiB page size support
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-28 13:43:49 +02:00
JosJuice 0c1070a07b Android: Add the "Real Balance Board" setting 2024-09-22 21:51:12 +02:00
Tilka 10f06a48ef
Merge pull request #12863 from JosJuice/android-gamepad-sensors
Android: Fix and enable input device sensor input
2024-08-18 13:48:30 +01:00
OatmealDome 0c18393691
Merge pull request #12965 from JosJuice/android-ndk-27
Android: Update to NDK 27.0.12077973
2024-07-30 13:09:53 -04:00
JosJuice 91a323df96 Android: Update to NDK 27.0.12077973 2024-07-30 18:24:48 +02:00
MayImilae 9a730bacce Change Dual Core (speedup) to Dual Core (speedhack) 2024-07-28 03:56:58 -07:00
JosJuice 9193045989 Revert "Android: Disable input device sensor input due to crash"
This reverts commit 75fb1a7edf.
2024-07-28 11:29:17 +02:00
JosJuice 59cbe5a843 Android: Add workaround for AOSP input device sensor suspend bug 2024-07-28 11:29:17 +02:00
JosJuice 7b0a7f15b0 Android: Use structural equality for sensorDetails
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-28 11:29:02 +02:00
Admiral H. Curtiss 5ea3d9fca0
Merge pull request #12856 from LillyJadeKatrin/retroachievements-pause-v2
Handle Pausing in AchievementManager
2024-07-04 22:53:04 +02:00
OatmealDome 656a5a18db
Merge pull request #12903 from MayImilae/logos-update
Logo refresh for android, windows, and linux
2024-07-02 02:11:12 -04:00
OatmealDome 1bec2b6484
Merge pull request #12823 from JosJuice/android-new-version-code
Android: Adopt a new versionCode scheme
2024-07-01 22:04:18 -04:00
MayImilae 3f71928860 Logo refresh for android, windows, and linux 2024-07-01 06:29:57 -07:00
JosJuice bc67fc97c3 Revert "Audit uses of IsRunning and GetState"
This reverts commit 72cf2bdb87.

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-26 20:36:46 +02:00
OatmealDome 04b0ceedcd Android: Update copyright year in About dialog to 2024 2024-06-24 15:08:12 -04:00
JosJuice 01b44837f4 Android: Track whether app is in foreground 2024-06-23 18:16:33 -04:00
Admiral H. Curtiss 9b33b777cf
Merge pull request #12828 from JosJuice/unify-state-variables-2
Clean up Core::GetState
2024-06-22 20:20:54 +02:00
JosJuice 72cf2bdb87 Audit uses of IsRunning and GetState
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-21 20:52:55 +02:00
deReeperJosh a87ea694a9 Add 2 More Slots for Power Discs on Emulated Base 2024-06-20 10:22:26 +01:00
JosJuice ea7928b3cd Android: Replace log type names map with array
Storing the log type names in a map results in them getting re-sorted by
their keys, which doesn't quite give us the sorting we want. In
particular, the Achievements category ended up being sorted at R (for
RetroAchivements) instead of at A. Every use of the map is just
iterating through it, so there's no real reason why it has to be a map
anyway.
2024-06-15 20:06:34 +02:00
JosJuice 2fdeb85f0e Android: Replace deprecated setSystemUiVisibility
No functional change.
2024-06-15 15:02:50 +02:00
JosJuice b9e11a3a35 Android: Adopt a new versionCode scheme
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-06-01 17:36:20 +02:00
Admiral H. Curtiss cd9521f293
Merge pull request #12807 from TacoTheDank/cleanupProguard
Android: Clean up ProGuard
2024-05-31 17:41:20 +02:00
TacoTheDank 51f4dfabc2 Android: Fix Gradle deprecation 2024-05-25 22:13:25 -04:00
TacoTheDank 5a6fbc4c57 Android: Clean up ProGuard 2024-05-25 21:56:19 -04:00
JosJuice 7a4740adf7 Android: Fix crash when no devices have outputs
Regression from 5171290bdb.
2024-05-20 21:36:00 +02:00
OatmealDome 59c6739013
Merge pull request #12727 from Simonx22/android-dependencies-042024
Android: Update dependencies
2024-04-21 13:54:37 -04:00
Admiral H. Curtiss a46ffc5d08
Merge pull request #12686 from JosJuice/android-remove-strikeout
Android: Unset STRIKE_THRU_TEXT_FLAG for editable settings
2024-04-20 23:34:05 +02:00