Commit Graph
100 Commits
Author SHA1 Message Date
JosJuice d1ef4d5cc1 Translation resources sync with Transifex 2024-11-10 12:24:25 +01:00
JosJuice 54b37f6bc4 Translation resources sync with Transifex 2024-11-01 15:00:58 +01:00
JosJuice b2f9e02b62 Translation resources sync with Transifex 2024-10-27 13:13:25 +01:00
JosJuice 92b8d57e6f Merge pull request #13144 from JosJuice/jitarm64-imm-stp
JitArm64: Allow ppcState STP optimization for imm
2024-10-27 10:59:00 +01:00
JosJuice d4e32ec691 Merge pull request #13089 from TellowKrinkle/NoSystemZNG
Remove option for shared zlib-ng
2024-10-26 19:58:48 +02:00
JosJuice 5165ddea52 DolphinQt: Remove a stray period from the Audio tab 2024-10-24 21:24:40 +02:00
JosJuice c212c0d08e Merge pull request #12868 from Sintendo/scoped-reg
JitArm64: Release temporary regs with RAII
2024-10-24 21:01:53 +02:00
JosJuice 8925ddf45f Merge pull request #13146 from AdmiralCurtiss/unit-test-compile-fix
Add missing algorithm header in SettingsHandlerTest.cpp
2024-10-23 18:11:21 +02:00
JosJuice 6fb3e9226b JitArm64: Use WZR for ppcState STP optimization with imm == 0 2024-10-21 21:53:21 +02:00
JosJuice 383cbffdec JitArm64: Allow ppcState STP optimization for imm 2024-10-21 21:51:48 +02:00
JosJuice 24e9fc120c Merge pull request #13066 from DacoTaco/feature/networking
IOS/Net: implement ioctlv that retrieves the network routing table that libogc now uses on network init
2024-10-20 14:14:24 +02:00
JosJuice 07605bf67c Merge pull request #13090 from mitaclaw/ranges-modernization-1-trivial
Ranges Algorithms Modernization - Trivial
2024-10-15 17:08:55 +02: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
JosJuice 8e619b7302 Merge pull request #13127 from Tilka/dol001
Boot: don't error for NTSC IPL v1.2 of DOL-001 consoles
2024-10-12 22:05:21 +02:00
JosJuice 6798f63a2e Core: Include partition when calling GetGameTDBID for non-game partition
This problem was introduced in 8842a0f402
and is likely a copy-paste error.

Fixes the problem mentioned in the issue comment
https://bugs.dolphin-emu.org/issues/13640#note-2.
2024-10-05 13:04:50 +02: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 2da3e49b1e Merge pull request #13078 from Dentomologist/videobackendbase_only_populate_backend_info_when_uninitialized
VideoBackendBase: Only populate backend info when uninitialized
2024-10-04 18:31:06 +02:00
JosJuice 76287f3810 Merge pull request #13097 from Tilka/vidpid
Bluetooth: show vid:pid in error message
2024-10-03 19:05:56 +02:00
JosJuice 5b40a7ed17 Merge pull request #13084 from mitaclaw/static-assert-promote
VolumeVerifier: Promote `DEBUG_ASSERT` to `static_assert`
2024-09-29 09:56:42 +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
JosJuice de67c4c93b Merge pull request #13013 from duckymomo360/rgh-tattoos-fix
GameINI: Fix tattoo texture saving in Rabbids Go Home
2024-09-22 09:10:09 +02:00
JosJuice 4eec061824 Merge pull request #12813 from Geotale/interpreter-subnormal-rounding
Proper Subnormal Rounding When Interpreting
2024-09-08 14:22:02 +02:00
JosJuice e72b23df91 DiscIO: Fix a typo in an RVZPack comment 2024-09-08 12:38:10 +02:00
JosJuice 0c1cd13b23 Merge pull request #12981 from Geotale/proper-integer-rounding
Improve Integer Rounding Accuracy
2024-09-08 12:09:58 +02:00
JosJuice f9f832fa88 Merge pull request #13051 from mitaclaw/dead-config-code-2
SI_Device: Remove Dead Config Code
2024-09-07 13:40:34 +02:00
JosJuice 7d08377341 Translation resources sync with Transifex 2024-09-01 08:42:51 +02:00
JosJuice ff75cc80aa Interpreter: Fix subfic carry calculation
This was accidentally using the instruction's output instead of the
instruction's input when the input and output registers were the same.
2024-08-31 17:24:55 +02:00
JosJuice 27c71017fa Translation resources sync with Transifex 2024-08-25 11:35:04 +02:00
JosJuice f85c4413bd Merge pull request #13009 from BryanJacobs/master
Graphics: Adapt aspect ratio when SBS/TAB 3D is used
2024-08-24 16:38:16 +02:00
JosJuice 9f95a8fa8a DolphinQt: Fix "Sddress" typo 2024-08-21 18:12:04 +02:00
JosJuice 44f1a75865 Translation resources sync with Transifex 2024-08-20 22:05:07 +02:00
JosJuice 0b33d293ee DolphinQt: Simplify the Speed Limit description
The description of the Speed Limit setting currently uses a lot of
complicated terms, like "emulated time" (known to many Dolphin
developers, but in my experience not known by even advanced emulator
users) and "maximum time scale" (I have never heard it before). The
meaning of "sustainable" is also unclear in context.

This commit rewords the description to be easier to understand.
2024-08-18 15:35:19 +02:00
JosJuice 9594ce871d UnitTests: Remove MSBuild input/output tracking
Input/output tracking is intended to speed up incremental builds by
skipping a target when it doesn't need to be built. However, this seems
to be unreliable for UnitTests' AfterBuild target. Let's remove it.

It's still the case that UnitTests' AfterBuild target will be skipped if
UnitTests doesn't need to be rebuilt. (Note that UnitTests always needs
to be rebuilt if SCMRevGen changed.)

I haven't seen these problems with DolphinQt's rather similar
input/output tracking. This may be because DolphinQt's one also has the
exe file as an input/output.
2024-08-17 15:59:45 +02:00
JosJuice f695a65aad UnitTests: Delete output Sys folder before copying to it
Like the previous commit, but for UnitTests. This time all operating
systems were affected.

I also made UnitTests.vcxproj use the same way of copying as
DolphinQt.vcxproj, just for consistency.
2024-08-16 21:09:10 +02:00
JosJuice a62f8eac1a DolphinQt: Delete output Sys folder before copying to it
For a long time now, we've had a problem where game INIs persist in
the copied Sys folder if they've been deleted from the original Sys
folder. (I still have hundreds of game INIs locally that only set
EmulationStateId, and we removed those game INIs 6 years ago. On the
buildbot, we do occasionally clear out the build directories manually,
so I'd assume it's not quite as bad there.)

This commit fixes the problem by deleting the output Sys folder before
copying the original Sys folder to the output Sys folder. This should be
a bit slower, but in my testing, the difference seems small. At least if
you have an SSD, which I really hope people have nowadays!

Operating systems other than Windows have not been touched, because:

* Android: Already explicitly deletes the output Sys folder.
* macOS: Does some magic to put the Sys folder in the app bundle, which I
  will simply assume isn't affected by this problem, without testing.
* Linux: Expects the person building to manually manage the Sys folder.
2024-08-16 21:09:10 +02:00
JosJuice 30c58eba96 MSBuild: Use SkipUnchangedFiles with Copy
Just a bit of simplification.
2024-08-16 21:09:10 +02:00
JosJuice 6cc2133f27 Merge pull request #12811 from JosJuice/ppcanalyst-refactor-mtspr
PPCAnalyst: Refactor mtspr handling code
2024-08-11 15:33:46 +02:00
JosJuice c824ee9758 Merge pull request #12829 from Dentomologist/generalpane_add_balloontips
GeneralPane: Add BalloonTips
2024-08-04 15:22:18 +02:00
JosJuice 91a323df96 Android: Update to NDK 27.0.12077973 2024-07-30 18:24:48 +02:00
JosJuice 9d2f5245f4 i18n: Add comments and improve source strings
Most of these changes are to improve consistency in capitalization.
2024-07-28 14:38:20 +02:00
JosJuice defc38b258 InputCommon: Translate ExpressionParser error messages
The _trans macro marks strings for translation but doesn't do anything
at runtime. For that, we need to use a function like GetStringT.
2024-07-28 12:09:15 +02: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
JosJuice 2849606518 Merge pull request #12956 from SuperSamus/nfs-nitro-defs
Add Bloom and DOF Definitions for Need for Speed: Nitro
2024-07-28 11:12:34 +02:00
JosJuice 1bf12a50c2 RetroAchievements: Show OSD messages also for unverified INI files
Currently we're showing OSD messages for unknown patches in known INI
files, but not for unknown patches in unknown INI files. I don't think
this distinction makes much sense to the user. If there's a patch the
user can't use, they probably want to be aware of that fact.
2024-07-10 13:16:54 +02:00
JosJuice e6b9091ffc RetroAchievements: Skip LoadApprovedList if there are no patches
There being no active patches is by far the most common case, so let's
optimize for this case.
2024-07-09 09:55:51 +02:00
JosJuice f59678842b RetroAchievements: Delay calling LoadApprovedList
0c14b0c8a7 made Dolphin load a file from
the Sys folder the first time AchievementManager::GetInstance() is
called. Because Android calls AchievementManager::GetInstance() from
setBackgroundExecutionAllowedNative, this had two negative consequences
on Android:

1. The first time setBackgroundExecutionAllowedNative gets called is
   often before directory initialization is done. Getting the path of
   the Sys folder before directory initialization is done causes a crash.
2. setBackgroundExecutionAllowedNative is called from the GUI thread,
   and we don't want file I/O on the GUI thread for performance reasons.

This change makes us load the data from the Sys folder the first time
the data is needed instead. This also saves us from having to load the
data at all when hardcore mode is inactive.
2024-07-09 09:55:07 +02:00
JosJuice 95e2064099 Fix AchievementManager::SetBackgroundExecutionAllowed crash
We mustn't use m_system when it is nullptr. This was causing Dolphin to
crash on Android whenever an activity was recreated or resumed while
emulation is running, which is super common.
2024-07-07 23:56:10 +02:00
JosJuice cafb83736e Update Transifex organization name
By request from delroth, I changed the name of our Transifex
organization so it's named after the Dolphin project rather than after
him. This broke old links and the .tx/config file.
2024-07-02 14:57:09 +02:00
JosJuice d92d404c01 Translation resources sync with Transifex 2024-07-02 08:02:48 +02: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
JosJuice 3dbaf38eae Translation resources sync with Transifex 2024-06-26 20:22:36 +02:00
JosJuice 01b44837f4 Android: Track whether app is in foreground 2024-06-23 18:16:33 -04: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
JosJuice 962230f91e Core: Store current state in less places
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-21 20:46:44 +02:00
JosJuice 6c5ceaa06d Merge pull request #12820 from JosJuice/jit64-simplity-test-bit
Jit64: Clean up the test_bit variable
2024-06-08 10:10:29 +02:00
JosJuice f404edb4dc CMake: Put all unit tests in one binary
We currently have 32 different binaries containing unit tests. At least
when I build for Android, each one takes up over 200 MiB, and linking
them all increases my incremental build times by over a minute. I'd
like to change this for the sake of my productivity and disk space.

For reference, MSBuild is already putting all tests in a single binary.
2024-06-06 19:30:43 +02:00
JosJuice 22aa88109f Use a stub AchivementManager when USE_RETRO_ACHIEVEMENTS isn't defined
This lets us reduce the number of USE_RETRO_ACHIEVEMENTS ifdefs in the
code base, reducing visual clutter. In particular, needing an ifdef for
each call to IsHardcodeModeActive was annoying to me. This also reduces
the risk that someone writes code that accidentally fails to compile
with USE_RETRO_ACHIEVEMENTS disabled.

We could cut down on ifdefs even further by making HardcodeWarningWidget
always exist, but that would result in non-trivial code ending up in the
binary even with USE_RETRO_ACHIEVEMENTS disabled, so I'm leaving it out
of this PR. It's not a lot of code though, so I might end up revisiting
it at some point.
2024-06-06 08:26:20 +02:00
JosJuice a3c23353c0 Android: Implement OpenSLESStream::SetRunning 2024-06-04 19:32:04 +02:00
JosJuice c04460d88b Merge pull request #12580 from LillyJadeKatrin/retroachievements-bugfix
Add user agent to headers for all RetroAchievements server calls
2024-06-04 13:41:01 +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
JosJuice c0a1f5e123 PPCAnalyst: Refactor mtspr handling code
Less magic numbers this way. No functional change.
2024-05-26 11:14:18 +02:00
JosJuice e88e641bc0 Jit64: Clean up the test_bit variable
Using shifts and bit tests makes the code unnecessarily annoying to
reason about. I'm replacing it with subtracting from 3 to translate the
bit order from the PowerPC format to the usual format.
2024-05-26 09:04:25 +02:00
JosJuice 921d711113 Jit: Clarify FixGTBeforeSettingCRFieldBit comment 2024-05-26 08:32:25 +02:00
JosJuice 30eff8e37c PPCAnalyst: Fix handling of FL_READ_CR_BI
BI contains both the field and the flag (5 bits total), so we need to
shift away the 2 flag bits to get the 3 field bits. (Same as the
CRBA/CRBB handling in the code just below the BI code.)
2024-05-25 18:13:38 +02:00
JosJuice 46dc406325 Interpreter: Fix GT when setting SO of CR
This is the same fixup as in Jit64::FixGTBeforeSettingCRFieldBit.
2024-05-24 21:21:46 +02:00
JosJuice f6aca69ea0 PPCAnalyst: Remove unused member isBranchTarget
Branch targets always start a new block, so this variable isn't useful.
2024-05-24 20:51:39 +02:00
JosJuice 7a4740adf7 Android: Fix crash when no devices have outputs
Regression from 5171290bdb.
2024-05-20 21:36:00 +02:00
JosJuice 3e046c2b32 DolphinQt: Fix double argument in Infinity error message
This was a mistake I made in 83b280d903.
2024-05-19 21:52:49 +02:00
JosJuice 892bba9768 Jit64: Remove outdated comment about R12
This comment was added 15 years ago in 1c1425a406. The bug the comment
refers to was fixed one day later in 41ce35deb3.
2024-05-18 14:54:33 +02:00
JosJuice 2c91367429 Merge pull request #12737 from nlebeck/settingshandler-split
Eliminate SettingsHandler's `SetBytes` and `Reset` methods
2024-05-05 22:35:23 +02:00
JosJuice a954451046 Translation resources sync with Transifex 2024-04-29 20:55:44 +02:00
JosJuice 697dbfee01 Translation resources sync with Transifex 2024-04-22 08:41:32 +02:00
JosJuice e8154a529f JitArm64: Increase farcode & nearcode cache size
This is a JitArm64 version of 219610d8a0.

Due to limitations on how far you can jump with a single AArch64 branch
instruction, going above the former limit of 128 MiB of code (counting
nearcode and farcode combined) requires a bit of restructuring. With the
restructuring in place, the limit now is 256 MiB. See the new large
comment in Jit.h for a description of the new memory layout.
2024-04-22 08:31:48 +02:00
JosJuice de33831783 Arm64Emitter: Fix shadowed variable
A lambda at the end of ARM64XEmitter::ParallelMoves named its parameter
`move`.
2024-04-21 16:20:59 +02:00
JosJuice e140491fa9 Arm64Emitter: Fix incorrect assert category 2024-04-21 16:19:10 +02:00
JosJuice e64cdca405 JitArm64: Skip UBFX in mfcr
We can implement the same behavior in one instruction less.
2024-04-21 16:13:33 +02:00
JosJuice a17331d568 DolphinQt: Don't ask user about creating Skylanders folder
We don't have prompts like this for any other path handled by Dolphin.
If the folder doesn't exist, let's just create it.
2024-04-21 09:28:01 +02:00
JosJuice 3bc9008715 PPCAnalyst: Prevent discarding registers around breakpoints
Fixes https://bugs.dolphin-emu.org/issues/13526.
2024-04-21 08:50:04 +02:00
JosJuice 83b280d903 i18n: Add comments and improve source strings 2024-04-20 23:02:46 +02:00
JosJuice c204b33314 VideoCommon/BPStructs: Add a missing bounds check
Happened to find this when working on the previous commit.
2024-04-20 18:31:08 +02:00
JosJuice 3cfa233b63 VideoCommon: Use GetSpanForAddress safely in texture decoding
Now only VertexLoader remains... But that one might be tricky.
2024-04-20 18:31:08 +02:00
JosJuice 5c9bb80638 Memmap: Replace GetPointer with GetSpanForAddress
To ensure memory safety, callers of GetPointer have to perform a bounds
check. But how is this bounds check supposed to be performed?
GetPointerForRange contained one implementation of a bounds check, but
it was cumbersome, and it also isn't obvious why it's correct.

To make doing the right thing easier, this commit changes GetPointer to
return a span that tells the caller how many bytes it's allowed to
access.
2024-04-20 18:31:08 +02:00
JosJuice 13e9d5c889 Jit64: Improve register handling in fp_arith
This lets us avoid the "ugly" case.
2024-04-20 17:50:54 +02:00
JosJuice 2bb59ff0dc Jit64: Inline avx_op into fp_arith
This will let us manage registers better in the next commit.
2024-04-20 17:50:54 +02:00
JosJuice 2c2e06bf39 Jit64: Add extra cases for reversible avx_op
Optimization.
2024-04-20 17:50:54 +02:00
JosJuice bb3306701b Jit64: Flatten avx_op
Reduces indentation and places the "ugly" case last. No behavior change.
2024-04-20 17:50:54 +02:00
JosJuice 4ac52cf053 JitArm64: Minor mtfsfix optimization
BFI takes two cycles on many CPUs, whereas AND (immediate) only takes
one.
2024-04-20 16:55:29 +02:00
JosJuice f384d2f958 Merge pull request #12725 from nassau-tk/fix_wiitdb-ja.txt
Fix wiitdb-ja.txt
2024-04-20 14:43:21 +02:00
JosJuice 758097f09c Merge pull request #12717 from mitaclaw/downcountAmount
Change JitState::downcountAmount to a u32
2024-04-20 10:39:33 +02:00
JosJuice 5456d990d1 Android/ControllerInterface: Run the init code
This was broken by a9a9fdd9e9. Because Init didn't run, the Android
input backend would crash whenever it tried to call into JVM code.
2024-04-13 22:39:10 +02:00
JosJuice 54773bc5d2 VideoCommon: Remove calls to GetPointer
This fourth part of my series of patches to get rid of unsafe uses of
GetPointer takes care of the "easy" cases in VideoCommon. Three uses of
GetPointer now remain in Dolphin: VertexLoaderManager, TextureInfo, and
the software renderer's TextureSampler.
2024-04-09 21:08:57 +02:00
JosJuice 5e58a46361 Jit64: Preserve inputs when software_fma && m_accurate_nans
When writing the software FMA code, I didn't realize that we can't
overwrite d if d is the same register as one of the inputs and
HandleNaNs is going to be called. This fixes that.
2024-04-06 21:38:58 +02:00
JosJuice f40dc7b5f9 IOS::HLE::BluetoothEmuDevice: Remove calls to GetPointer
Part 3 of stopping using GetPointer. This gets rid of the last
GetPointer call in IOS, which I skipped in part 1.
2024-04-06 21:04:54 +02:00
JosJuice 9ca9d073df Android: Fix race condition in displayAlertMsg
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-05 22:46:48 +02:00
JosJuice eef71d50c3 Android: Unset STRIKE_THRU_TEXT_FLAG for editable settings
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-04-05 20:14:41 +02:00
JosJuice fad57b648f Memmap: Don't show panic alert for 0 length range
IOS::HLE::IOCtlVRequest::Dump sometimes tries to call GetPointerForRange
with an address of 0 and a size of 0. Address 0 is valid, but we were
mistakenly also trying to check that address 3FFFFFFF is valid, which it
isn't.

Fixes https://bugs.dolphin-emu.org/issues/13514.
2024-04-04 18:56:17 +02:00