Commit Graph

35707 Commits

Author SHA1 Message Date
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
Admiral H. Curtiss d3cf35019c
Merge pull request #12726 from JosJuice/i18n-2024-04-20
i18n: Add comments and improve source strings
2024-04-20 23:34:32 +02: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
Admiral H. Curtiss 8236e4eaf9
Merge pull request #12636 from KjubDusJub/dolphin-tool-extractcommand
DolphinTool: Add an image extract command
2024-04-20 23:29:32 +02:00
Tilka 020e7b3e2d
Merge pull request #11144 from JosJuice/jit64-arith-inline-avx
Jit64: Inline avx_op into fp_arith
2024-04-20 22:03:47 +01:00
JosJuice 83b280d903 i18n: Add comments and improve source strings 2024-04-20 23:02:46 +02:00
Tilka f1e40f73bd
Merge pull request #12705 from JosJuice/get-span-for-address
Memmap: Replace GetPointer with GetSpanForAddress
2024-04-20 21:16:54 +01:00
Tilka 6443084e8c
Merge pull request #12724 from Tilka/readstate
TAPServerConnection: drop unused enum class ReadState
2024-04-20 21:12:54 +01: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
Simonx22 e4f97a2532 Android: Update dependencies 2024-04-20 17:53:11 +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
Tilka 20665ebce7
Merge pull request #12710 from jordan-woyak/mouse-pointing-disable-relative
DolphinQt/Mapping: Disable relative input when "Mouse Controlled Pointing" button is pressed.
2024-04-20 14:14:03 +01:00
Tilka 017f72f43e
Merge pull request #12672 from JosJuice/jit64-extract-with-byte-offset
Jit64: Clean up ExtractWithByteOffset
2024-04-20 12:41:29 +01:00
Tilka b98176075e
Merge pull request #12719 from stblr/device-change-again
HIDv4: Fix racy device change behavior
2024-04-20 12:26:40 +01:00
Tillmann Karras 8ed41e7264 TAPServerConnection: drop unused enum class ReadState
This also fixes a -Wshadow warning because there is a function-local
equivalent in ReadThreadHandler().
2024-04-20 12:04:28 +01:00
JosJuice 758097f09c
Merge pull request #12717 from mitaclaw/downcountAmount
Change JitState::downcountAmount to a u32
2024-04-20 10:39:33 +02:00
Admiral H. Curtiss 0e7346ac10
Merge pull request #12718 from nicovank/master
Apply Clang-Tidy's modernize-use-starts-ends-with
2024-04-20 05:21:38 +02:00
Admiral H. Curtiss 2252635070
Merge pull request #12702 from Dentomologist/gamelist_show_disc1_for_two_disc_games
GameList: Show (Disc 1) for first disc of two-disc games
2024-04-20 05:03:38 +02:00
Pablo Stebler 93b29cb8b2
HIDv4: Fix racy device change behavior
This prevents the device changes happening between 2 GETDEVICECHANGE
calls from being missed by the application.

Same as 7e7b0971ab.
2024-04-19 21:56:12 +02:00
Nicolas van Kempen 932645f245 Apply modernize-use-starts-ends-with 2024-04-19 14:55:29 -04:00
mitaclaw 65ff0146b9 Change JitState::downcountAmount to u32 2024-04-19 04:08:34 -07:00
Jordan Woyak df7dd5d36a Config: Expose GFX_OVERLAY_PROJ_STATS setting in UI. 2024-04-18 14:45:28 -05:00
Jordan Woyak 1e27183dff VideoCommon: Show the average projection to viewport ratio in statistics
window.
2024-04-18 14:45:28 -05:00
Jonas Kalsvik 859ac40ca2
DolphinTool: Add an image extract command 2024-04-18 21:11:19 +02:00
Admiral H. Curtiss 1805f6e381
Merge pull request #12660 from jordan-woyak/hide-makepkg
Hide branch name from title bar when there are no commits ahead of master.
2024-04-18 17:21:24 +02:00
Admiral H. Curtiss 8268ae1cf7
Merge pull request #12698 from iwubcode/xfb_copy_hash_in_present
VideoCommon: add xfbs hashes to present info if available
2024-04-18 17:11:49 +02:00
Dentomologist 9c5605a59c AudioCommon: When ALSA is absent on Linux, default to Cubeb backend
Default to Cubeb instead of the NULL backend on Linux when ALSA isn't
valid.
2024-04-16 14:06:28 -07:00
Admiral H. Curtiss 83b5124d40
Merge pull request #12559 from sepalani/bba-refactor
BBA/HLE: Code refactoring
2024-04-16 22:43:04 +02:00
Admiral H. Curtiss e757d5ea9c
Merge pull request #12708 from brad0/openbsd_sound_backend
Set default sound backend on OpenBSD to cubeb
2024-04-16 22:41:28 +02:00
Jordan Woyak 31dc3477ad DolphinQt/Mapping: Disable relative input when "Mouse Controlled Pointing" button is pressed. 2024-04-15 14:52:26 -05:00
OatmealDome dbc7e03577
Merge pull request #12709 from mitaclaw/rcheevos-posix
RetroAchievements: Put "RetroAchievements.ini" in the correct config location for POSIX
2024-04-15 01:21:43 -04:00
mitaclaw 48b38f6e9b RetroAchievements: Put "RetroAchievements.ini" in the correct config location for POSIX 2024-04-14 21:47:41 -07:00
OatmealDome ab53f6934c
Merge pull request #12704 from mitaclaw/symbol-description-view
PPCSymbolDB: GetDescription by std::string_view
2024-04-14 22:14:18 -04:00
Brad Smith ba2ccf3889 Set default sound backend on OpenBSD to cubeb
Set the default sound backend to cubeb instead of the default
being none.
2024-04-14 18:47:20 -04:00
Dentomologist 37b89d5b71 GameList: Show (Disc 1) for first disc of two-disc games
Append disc label to the first disc of two-disc games too, rather than
only labelling the second disc.
2024-04-14 13:55:18 -07:00
Jordan Woyak 637ae12ff4
Merge pull request #12703 from nlebeck/settingshandler-nomove-2
Pass `SettingsHandler` buffers by const ref instead of rvalue ref (since the contents are copied either way)
2024-04-13 17:10:11 -05: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
Tilka e62d8ecfa8
Merge pull request #12632 from jordan-woyak/input-backend-impls
Implement missing InputBackend classes.
2024-04-13 11:56:27 +01:00
mitaclaw 672be6a8cf PPCSymbolDB: GetDescription by std::string_view
Should save a lot of deep copies.
2024-04-13 00:19:01 -07:00
Admiral H. Curtiss 1bfeeb8a63
Merge pull request #12693 from Tilka/zelda3
DSPHLE/Zelda: simplify AFC decoding
2024-04-13 03:57:13 +02:00
Niel Lebeck d2b96736e0 Pass SettingsHandler buffers by const ref instead of rvalue ref 2024-04-12 18:50:21 -07:00
Admiral H. Curtiss b3939052b4
Merge pull request #12436 from Filoppi/frame-dump-raw-internal-resolution
Frame dump at raw internal resolution
2024-04-13 03:39:37 +02:00
Admiral H. Curtiss 2f13be5a2d
VideoConfig: Adjust FrameDumpResolutionType enum class to style guidelines 2024-04-13 03:21:39 +02:00
Admiral H. Curtiss 107379bf74
Merge pull request #12569 from GregoireLD/dolphin-GBAProfilePathFix
Fix path-loading of GBA map configurations
2024-04-13 02:46:07 +02:00
Admiral H. Curtiss 3a0720dd1f
Merge pull request #12681 from nlebeck/taskviewmodel-refactor
Refactor `TaskViewModel` to track task-related state in a single `MutableLiveData` instance
2024-04-13 01:42:12 +02:00
Admiral H. Curtiss b623a36005
Merge pull request #12688 from JosJuice/android-alert-synchronize
Android: Fix race condition in displayAlertMsg
2024-04-13 01:40:30 +02:00
Admiral H. Curtiss d58c998d6d
Merge pull request #12696 from mitaclaw/verify-widget-core-state-slot
VerifyWidget: Listen for Core::State OnEmulationStateChanged
2024-04-13 01:39:32 +02:00
Admiral H. Curtiss 0c1a76398b
Merge pull request #12691 from mitaclaw/jit-profiling-restoration
JitCache: Software Profiling Restoration
2024-04-13 01:35:25 +02:00
Jordan Woyak 9321318cb6 DolphinQt: Ensure controller settings show the game-controller indicator while expression editing. 2024-04-12 15:54:18 -05:00
Jordan Woyak e9fe0d3d5b NumericSetting: Stop values from binding to numbered input names. 2024-04-12 15:54:18 -05:00
Jordan Woyak 5039072ae9 ExpressionParser: Support unary plus operator. 2024-04-12 15:52:35 -05:00
Tilka 2011c7a448
Merge pull request #12697 from JosJuice/no-getpointer-part-4
VideoCommon: Remove calls to GetPointer
2024-04-12 20:01:09 +01:00
Tilka 9a9be5ca51
Merge pull request #12614 from nlebeck/settingshandler-edgecase
Add SettingsHandler unit tests exercising the edge case fixed in PR #8704
2024-04-12 17:32:51 +01:00
Tilka 771858b182
Merge pull request #12701 from Tilka/usbwait
Qt: trigger first USB device scan without a timer
2024-04-12 14:25:45 +01:00
Tilka 1fa5c3485c
Merge pull request #12699 from mitaclaw/cached-interpreter-perfmon-optimization
CachedInterpreter: Skip Updating Instruction PERFMON When There Are None
2024-04-11 16:19:42 +01:00
Tillmann Karras 99a8849125 Qt: trigger first USB device scan without a timer
Currently the dialog makes you wait one second before it shows anything.
Instead, trigger the first scan manually.
2024-04-11 16:48:10 +02:00
mitaclaw bc7b11517f MenuBar: Optimize SearchInstruction 2024-04-10 17:00:45 -07:00
mitaclaw 3073e8fd40 CachedInterpreter: Skip Updating Instruction PERFMON When There Are None 2024-04-10 04:09:37 -07:00
iwubcode abf380b705 VideoCommon: add xfb hash values (if available) to present information 2024-04-09 18:59:33 -05:00
iwubcode e5b7b2e9ee VideoCommon: add xfbs presented to video events 2024-04-09 18:57:32 -05:00
mitaclaw 94712ea06f Android: Access Software JIT Profiling 2024-04-09 13:43:32 -07:00
mitaclaw 6dad5cee65 DolphinQt: Access Software JIT Profiling 2024-04-09 13:43:32 -07:00
mitaclaw 30c63fa4a6 Common: Remove Unused PerformanceCounter Code 2024-04-09 13:43:32 -07:00
mitaclaw ee8bcf2ccc JitCache: Software Profiling Restoration
Rekindle software JIT profiling with a std::chrono conversion and a config connection.
2024-04-09 13:43:31 -07:00
mitaclaw fe8f836668 VerifyWidget: Listen for Core::State OnEmulationStateChanged 2024-04-09 12:13:02 -07: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
Admiral H. Curtiss 69aca2fbfc
Merge pull request #11141 from JosJuice/jit64-soft-fma-nans-preserve
Jit64: Preserve inputs when software_fma && m_accurate_nans
2024-04-09 06:04:21 +02:00
Admiral H. Curtiss 35836225c5
Merge pull request #12646 from mitaclaw/ppc-cache-global-system
PPCCache: Avoid Global System Accessor
2024-04-09 05:57:57 +02:00
Admiral H. Curtiss e77def0478
Merge pull request #12690 from JosJuice/no-getpointer-part-3
IOS::HLE::BluetoothEmuDevice: Remove calls to GetPointer
2024-04-09 05:53:56 +02:00
mitaclaw cf74c0d683 PPCCache: Avoid Global System Accessor 2024-04-08 19:49:57 -07:00
mitaclaw eb92d6f0a8 Core::GetState: Avoid Global System Accessor 2024-04-08 16:23:23 -07:00
Filoppi 66592f79f2 Video: remove enforced resolution least common multiple of 4 when dumping screenshots and not videos (only videos encoders have this limit).
NOTE: this will likely trigger FIFOCI differences.
2024-04-08 22:54:45 +03:00
Filoppi 72db62e178 Video: split frame dumping settings into 3 resolution dumping modes
also polish aspect ratio related code for clarity
2024-04-08 22:54:45 +03:00
Niel Lebeck d7836efa1a Refactor TaskViewModel to track task-related state in a single MutableLiveData instance 2024-04-07 17:10:02 -07:00
Tillmann Karras 8533b5649e DSPHLE/Zelda: simplify AFC decoding 2024-04-07 10:55:21 +01:00
mitaclaw be27c4f877 NativeLibrary: Create displayToastMsg Method 2024-04-06 15:41:23 -07:00
Tillmann Karras d1db347c8a evdev: close file descriptors in a separate thread
For some reason Linux is surprisingly slow at closing file descriptors
of event devices. This commit improves GUI startup times on my computer
by about 1.5 seconds.
2024-04-06 20:58:17 +01: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
Sepalani 07a2429367 BBA/HLE: Fix network_ref coding style 2024-04-06 21:43:48 +04:00
Sepalani f3194b777b BBA/HLE: Move polling data logic into a method 2024-04-06 21:43:48 +04:00
Sepalani fbebbcc0fd BBA/HLE: Move functions to anonymous namespace 2024-04-06 21:43:48 +04:00
Sepalani 6e2a081cb9 BBA/HLE: Loop over network_ref once 2024-04-06 21:43:48 +04:00
Sepalani 9e0bf29329 BBA/HLE: Move GetSlot methods 2024-04-06 21:43:48 +04:00
Sepalani 5388f35cc4 BBA/HLE: Add NetworkRef::Clear method 2024-04-06 21:43:48 +04:00
Sepalani e915f990bb BBA/HLE: Make network_ref into a class 2024-04-06 21:43:48 +04:00
Tillmann Karras 9c705f1011 Movie: simplify silly loop 2024-04-06 18:28:43 +01: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
Admiral H. Curtiss d3073353a7
Merge pull request #12555 from sepalani/bba-connecting
BBA/HLE: Don't assume connect is successful
2024-04-05 21:29:10 +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
Admiral H. Curtiss ad331205d1
Merge pull request #12684 from Pokechu22/invalid-vertex-component
Fix out of bounds accesses for invalid vertex component formats
2024-04-04 22:10:18 +02:00
Pokechu22 a3951dc2d7 Fix out of bounds accesses for invalid vertex component formats
On all platforms, this would result in out of bounds accesses when getting the component sizes (which uses stuff from VertexLoader_Position.h/VertexLoader_TextCoord.h/VertexLoader_Normal.h). On platforms other than x64 and ARM64, this would also be out of bounds accesses when getting function pointers for the non-JIT vertex loader (in VertexLoader_Position.cpp etc.). Usually both of these would get data from other entries in the same multi-dimensional array, but the last few entries would be truly out of bounds. This does mean that an out of bounds function pointer can be called on platforms that don't have a JIT vertex loader, but it is limited to invalid component formats with values 5/6/7 due to the size of the bitfield the formats come from, so it seems unlikely that this could be exploited in practice.

This issue affects a few games; Def Jam: Fight for New York (https://bugs.dolphin-emu.org/issues/12719) and Fifa Street are known to be affected.

I have not done any hardware testing for this PR specifically, though I *think* I previously determined that at least a value of 5 behaves the same as float (4). That's what I implemented in any case. I did previously determine that both Def Jam: Fight for New York and Fifa Street use an invalid normal format, but don't actually have lighting enabled when that normal vector is used, so it doesn't change rendering in practice.

The color component format also has two invalid values, but VertexLoader_Color.h/.cpp do check for those invalid ones and return a default value instead of doing an out of bounds access.
2024-04-04 12:50:34 -07:00
Admiral H. Curtiss 4312840a4b
Merge pull request #12678 from JosJuice/no-getpointer-part-2
HW: Remove calls to GetPointer
2024-04-04 21:43:57 +02:00
Admiral H. Curtiss db8b2942aa
Merge pull request #12683 from LillyJadeKatrin/retroachievements-submodule-update
Update rcheevos submodule to newest master.
2024-04-04 21:14:44 +02:00