Commit Graph

31748 Commits

Author SHA1 Message Date
9c91b5edca Merge pull request #12480 from AdmiralCurtiss/codetrace-system
Core/CodeTrace: Take address from given instruction in GetInstructionAttributes().
2024-01-04 22:00:15 +00:00
0be476cfaf Core/CodeTrace: Take address from given instruction in GetInstructionAttributes().
In all instance this method is called, the instruction comes from SaveCurrentInstruction(), which already sets the address to the PC.
2024-01-04 21:44:54 +01:00
ce19d6a35e Core/Boot: Avoid global system accessor when setting disc. 2024-01-04 21:30:24 +01:00
1073722cdf Revert "VideoCommon: revert max pixel shader samplers back to 8 for Android devices."
This reverts commit 79648e1c24.
2024-01-03 18:43:44 -06:00
48eb8b17ef Merge pull request #12475 from Tilka/zelda
DSPHLE/Zelda: fix reverb volume being multiplied by current volume twice
2024-01-02 05:06:21 +00:00
fd1a261e73 Merge pull request #12470 from JosJuice/jitarm64-low-dcbz-for-real
JitArm64: Don't fall back to interpreter on low DCBZ hack
2024-01-01 23:16:30 +01:00
381c2702f6 DSPHLE/Zelda: fix reverb volume being multiplied by current volume twice 2024-01-01 21:53:26 +00:00
295d86c86f Merge pull request #12455 from PatrickFerry/qt_handle_overridden_graphics_backend
Qt: Handle Overridden Graphics Backend
2024-01-01 22:42:30 +01:00
6e3a2324a4 Merge pull request #12464 from JosJuice/jit-isi-membase
Jit: Reload RMEM/MEM_REG on ISI exception
2024-01-01 22:09:05 +01:00
043d868841 Merge pull request #12473 from Dentomologist/bitset64_fix_iterator_incrementation
BitSet64: Fix iterator incrementation
2024-01-01 22:03:11 +01:00
370daaf26c Merge pull request #12474 from Dentomologist/bitset_use_static_cast
BitSet: Use direct initialization instead of c-style casts
2024-01-01 22:01:45 +01:00
7dbf463ddf BitSet64: Fix iterator incrementation
Use 1 of the same type as the stored value when shifting left. This
prevents undefined behavior caused by shifting an int more than 31 bits.

Previously iterator incrementation could either hang or prematurely
report it had reached the end of the bitset.
2024-01-01 00:41:48 -08:00
abb484a101 BitSet: Use direct initialization instead of c-style casts 2024-01-01 00:36:13 -08:00
07df4ff16e Merge pull request #12471 from mitaclaw/flush-gpr-arm-bug
Fix Logic Inefficiency in Arm64GPRCache::FlushRegisters
2024-01-01 00:46:34 +01:00
4805b02893 Arm64RegCache: Use FlushMode everywhere 2023-12-31 02:09:56 -08:00
01e534a681 Fix Logic Inefficiency in Arm64GPRCache::FlushRegisters
This was introduced in 6a9f565ac4.
2023-12-30 23:44:27 -08:00
8ecc478662 Merge pull request #12469 from JosJuice/tlb-index-constants
PowerPC: Add constants for the two TLB indices
2023-12-30 16:59:17 +01:00
465f17a882 PowerPC: Add constants for the two TLB indices
Just for readability.
2023-12-30 14:31:05 +01:00
684b3dfd4a JitArm64: Don't fall back to interpreter on low DCBZ hack
I missed this in 16eb188f1d.
2023-12-30 14:18:49 +01:00
26760cf8a8 Merge pull request #12467 from AdmiralCurtiss/codepage-convert-linkage
Common/StringUtil: Use internal linkage for codepage conversion functions.
2023-12-30 12:13:53 +01:00
6b166f1819 DolphinQt/Mapping: Add "Use Mouse Controlled Pointing" button. 2023-12-29 20:31:39 +01:00
99fbc4b97e Merge pull request #11885 from Filoppi/devices_deadlock_fix_v2
Input: Improve Controller Interface devices threading
2023-12-29 20:17:04 +01:00
4f04ac5858 Common/StringUtil: Use internal linkage for codepage conversion functions. 2023-12-29 19:50:55 +01:00
bf0ac9de0c Merge pull request #12466 from JosJuice/win32-error-string-encoding
Common: Fix encoding handling in GetWin32ErrorString
2023-12-29 19:48:00 +01:00
0c7359e150 Common: Fix encoding handling in GetWin32ErrorString
These messages can be localized, so we can't just assume it's all ASCII.
2023-12-29 16:01:13 +01:00
68250afa08 Merge pull request #12465 from Tilka/zelda
DSPHLE/Zelda: fix use of wrong reverb buffer
2023-12-29 08:14:55 +01:00
f1d446da3f Merge pull request #12452 from Tilka/efb24
VideoCommon: apply "force 24-bit color" to EFB-to-VRAM copies as well
2023-12-29 03:51:59 +01:00
594b55c448 DSPHLE/Zelda: fix use of wrong reverb buffer 2023-12-29 02:45:23 +01:00
ca69c60e1b DSPHLE/Zelda: add another 32-bit getter/setter (NFC) 2023-12-29 02:45:20 +01:00
1c68f4231b Qt: Handle Overridden Graphics Backend
This fixes an issue where the game specific graphics backend would be saved as the global setting after playing a game.

This also now displays the currently running graphics backend when looking in the graphics configuration window.
2023-12-28 17:28:08 +00:00
e212d1c395 Merge pull request #12463 from Dentomologist/netkdrequestdevice_fix_crashes
NetKDRequestDevice: Fix sporadic crashes during emulation shutdown
2023-12-27 21:47:18 +01:00
8fcf9969eb Jit: Reload RMEM/MEM_REG on ISI exception
Aims to fix https://bugs.dolphin-emu.org/issues/13444.
2023-12-27 16:39:00 +01:00
ecf4f1b1f9 NetKDRequestDevice: Fix nullptr dereference crash
Keep a shared_ptr to NetKDTimeDevice inside NetKDRequestDevice.

This allows the KDDownload task to finish its work without potentially
trying to dereference nullptr, which can potentially come from either
GetIOS() or GetDeviceByName() if EmulationKernel's destructor has
started running.
2023-12-24 16:46:08 -08:00
dd1f5f9726 NetKDRequestDevice: Fix use-after-free crash
Explicitly shut down work queues in NetKDRequestDevice's destructor to
prevent their threads from accessing members after they've been freed.

This crash would occur sporadically if NetKDRequestDevice's periodic
download or mail checks happened to overlap with emulation shutdown in
the wrong way.

An example sequence of events that could cause the crash:
* m_scheduler_timer_thread queues a periodic Download event in
  m_scheduler_work_queue, then waits for m_shutdown_event.
* A request to stop emulation results in s_ios being reset by the CPU
  thread. This triggers NetKDRequestDevice's destructor which sets
  m_shutdown_event and joins m_scheduler_timer_thread.
* m_scheduler_timer_thread wakes from m_shutdown_event and returns from
  its thread function, ending the thread.
* The CPU thread resumes execution at the end of NetKDRequestDevice's
  destructor and begins destroying NetKDRequestDevice's members in
  reverse declaration order.
* m_http is declared after m_scheduler_work_queue and is therefore
  destroyed earlier.
* m_scheduler_work_queue's destructor calls its Shutdown function, which
  by default finishes the work items in the queue.
* The queued Download event calls KDDownload which calls m_http.Get()
  which calls Fetch() which passes garbage data from the freed m_curl
  into curl_easy_setopt().
* Curl promptly crashes.

Shutting down the work queues manually in the destructor prevents the
above because m_http and the other members don't get freed until after
the queue threads finish.
2023-12-24 15:04:35 -08:00
e9fa335fbe Socket: Fix a nullptr dereference when operations are pending 2023-12-24 09:23:02 +04:00
a23cf2121d VideoCommon/PixelEngine: Generify lock guards
We don't need to specify the type of the mutex being passed in.
2023-12-22 14:19:29 -05:00
0505f057ca VideoCommon/PixelEngine: Remove global system accessor in UpdateInterrupts()
Now that the system instance is passed through, this is no longer necessary.
2023-12-22 14:19:29 -05:00
e539dbba4c VideoCommon/PixelEngine: Passthrough system instance in constructor
Simplifies the interface in terms of usage
2023-12-22 14:19:26 -05:00
Mai
b1438c224f Merge pull request #12439 from lioncash/sprintf
Core: Use fmt over sprintf in trivial cases
2023-12-21 17:17:21 -05:00
Mai
6c2da5229e Merge pull request #12458 from JosJuice/jitarm64-logic-i2r-not-nothing
JitArm64: Fix the "do nothing" cases of ANDI2R and friends
2023-12-21 17:13:20 -05:00
d8c78f2a92 JitArm64: Fix the "do nothing" cases of ANDI2R and friends
So somehow I forgot that AArch64 uses three-operand encoding...

Fixes a regression from 6303416201 which manifested in various ways,
such as incorrect rendering of the Wind Waker title screen.
2023-12-21 20:51:32 +01:00
8d4575cfd8 Merge pull request #12454 from lioncash/proc
VideoCommon/CommandProcessor: Pass system instance through constructor
2023-12-21 17:46:28 +00:00
b669580aeb VideoCommon: handle asset memory going over reserved limit correctly by erroring when the memory is exceeded and not allowing more assets to load until memory is released 2023-12-21 01:05:56 -06:00
79648e1c24 VideoCommon: revert max pixel shader samplers back to 8 for Android devices.
It was reported that some games (Zelda Wind Waker and Zelda Twilight Princess but others may also exhibit the issue) have graphical issues with the max pixel samplers set to 16 on some Android devices (ex: Pixel6); since this was increased for a performance heavy feature (custom shaders) just disable it for now.  In the future, this could be handled more elegantly
2023-12-21 00:36:44 -06:00
f97b2d472a VideoCommon/CommandProcessor: Pass system instance through constructor
Makes the use of the interface a little less noisy, especially given
how much of the interface depends on an instance being present.
2023-12-20 09:02:53 -05:00
70b7a59456 Merge pull request #12451 from lioncash/fifo
VideoCommon/Fifo: Pass system instance through FifoManager constructor
2023-12-20 12:45:38 +00:00
01340d7f8d Merge pull request #12442 from lioncash/hle
Core/HLE/HLE: Remove global system accessors
2023-12-20 12:41:09 +00:00
fcfcf14e07 VideoCommon: when loading a texture asset, set sampler to linear sampler if the texture type is not defined and the 2d texture is assumed 2023-12-19 21:51:42 -06:00
ae758f489a VideoCommon: update custom pipeline action to support a variety of texture samplers (2D, 2D array, and cube maps) 2023-12-19 21:51:42 -06:00
ddb4566a41 VideoCommon: apply "force 24-bit color" to EFB-to-VRAM copies as well 2023-12-20 02:25:07 +00:00