Commit Graph

13128 Commits

Author SHA1 Message Date
Admiral H. Curtiss 26adf78e45
Merge pull request #11602 from JosJuice/cpu-guard-expression
PowerPC: Rework CPUThreadGuard handling in Expression.cpp
2023-02-26 11:55:47 +01:00
Shawn Hoffman 28956cc6c2 workaround msvc optimizer bug 2023-02-25 23:26:27 -08:00
JosJuice ae5311d6e6 PowerPC: Rework CPUThreadGuard handling in Expression.cpp
See https://github.com/dolphin-emu/dolphin/pull/11554#discussion_r1113949572.
2023-02-25 16:13:34 +01:00
Dentomologist d18735e82e Qt/WiimoteControllersWidget: Add bluetooth unavailable message 2023-02-24 14:30:43 -08:00
Admiral H. Curtiss 1ed0e014cd
Migrate non-destructive calls of File::CopyDir() to File::Copy(). 2023-02-24 20:32:19 +01:00
Admiral H. Curtiss e52aa52a66
Common/FileUtil: Rename Copy() to CopyRegularFile().
This is to clarify that it can only copy files, not folders.
2023-02-22 11:43:58 +01:00
Léo Lam 3c4a21315d
Merge pull request #11592 from Pokechu22/fix-delete-ticket
IOS/ES: Fix crash when deleting tickets
2023-02-21 10:53:37 +01:00
Pokechu22 f2ac3aec94 IOS/ES: Fix crash when deleting tickets
This broke formatting the system memory; see https://bugs.dolphin-emu.org/issues/13176. After calling ticket.DeleteTicket(), ticket.m_bytes was 0-length, but calling ticket.IsV1Ticket() still attempted to read from m_bytes.

This was introduced in 2fd9852ca8, although it didn't actually cause a crash until 929fba08e7.
2023-02-20 18:33:34 -08:00
Seeky 4e6e510003
Debugger: Add string comparison to conditional breakpoints. 2023-02-20 01:40:33 +01:00
JosJuice 78c53bfec8 Jit64: Fix the offsetAddedToAddress correction
The LEA that the signal handler is trying to undo the effects of is a
32-bit instruction, and the value in the register prior to the LEA is
also 32-bit, so the signal handler should use a 32-bit write.

(Actually, in the end this doesn't really matter, because the first
instruction that reads this value after backpatching is also a 32-bit
instruction...)
2023-02-18 21:14:31 +01:00
Admiral H. Curtiss 0c48324c75
Jit64: Use 5 byte jump in mtmsr for the CP interrupt check.
WriteExternalExceptionExit() can write more than the maximum offset of the small jump.
2023-02-16 19:26:19 +01:00
Pokechu22 8802f96b7e Fix uninitialized variable warnings (C26495) 2023-02-15 19:18:39 -08:00
SMarioMan 301e97f7f7
Remove WinAPI-specific type from socket request 2023-02-15 09:29:21 -05:00
SMarioMan a45f6d9438
Enable broadcast permissions in socket requests 2023-02-15 07:59:38 -05:00
Admiral H. Curtiss 661b74f4a3
Merge pull request #11564 from JosJuice/jitarm64-cmp-order
JitArm64: Fix special cases of cmp
2023-02-14 20:19:07 +01:00
JosJuice 0049a76775 JitArm64: Fix special cases of cmp
This fixes a regression from 592ba31. When `a` was a constant 0 and `b`
was a non-constant 0x80000000, the 32-bit negation operation would
overflow, causing an incorrect result. The sign extension needs to happen
before the negation to avoid overflow.

Note that I can't merge the SXTW and NEG into one instruction.
NEG is an alias for SUB with the first operand being set to ZR,
but "SUB (extended register)" treats register 31 as SP instead of ZR.

I've also changed the order for the case where `a` is a constant
0xFFFFFFFF. I don't think the order actually affects correctness here,
but let's use the same order for all the cases since it makes the code
easier to reason about.
2023-02-14 19:16:00 +01:00
Admiral H. Curtiss 34a459bed7
Merge pull request #11445 from JosJuice/jit64-wraparound-backpatch
Jit64: Properly handle backpatching overflowed address calculations
2023-02-14 01:00:13 +01:00
Admiral H. Curtiss 3458c58c7d
Merge pull request #11503 from JosJuice/ppcanalyst-read-cr
PPCAnalyst: Actually check if instructions want CR
2023-02-14 00:55:24 +01:00
Admiral H. Curtiss e2d7b6d079
Merge pull request #11559 from Pokechu22/cache-fix-plru-updates
PPCCache: Update PLRU on any cache access
2023-02-14 00:50:54 +01:00
Admiral H. Curtiss e1dbea3658
JIT: Fix calls to HLE::Execute.
This got broken in 7cecb28bdf.
2023-02-13 11:47:47 +01:00
Pokechu22 14c4f4e7f6 PPCCache: Update PLRU on any cache access
The previous code only updated the PLRU on cache misses, which made it so that the least recently inserted cache block was evicted, instead of the least recently used/hit one.

This regressed in 9d39647f9e (part of #11183, but it was fine in e97d380437), although beforehand it was only implemented for the instruction cache, and the instruction cache hit extremely infrequently when the JIT or cached interpreter is in use, which generally keeps it from behaving correctly (the pure interpreter behaves correctly with it).

I'm not aware of any games that are affected by this, though I did not do extensive testing.
2023-02-12 19:59:19 -08:00
JosJuice 611e721a4d Jit64: Properly handle backpatching overflowed address calculations
Previously we would only backpatch overflowed address calculations
if the overflow was 0x1000 or less. Now we can handle the full 2 GiB
of overflow in both directions.

I'm also making equivalent changes to JitArm64's code. This isn't because
it needs it – JitArm64 address calculations should never overflow – but
because I wanted to get rid of the 0x100001000 inherited from Jit64 that
makes even less sense for JitArm64 than for Jit64.
2023-02-12 20:48:27 +01:00
JosJuice 7cecb28bdf DolphinQt: Properly lock CPU before accessing emulated memory
This fixes a problem I was having where using frame advance with the
debugger open would frequently cause panic alerts about invalid addresses
due to the CPU thread changing MSR.DR while the host thread was trying
to access memory.

To aid in tracking down all the places where we weren't properly locking
the CPU, I've created a new type (in Core.h) that you have to pass as a
reference or pointer to functions that require running as the CPU thread.
2023-02-12 11:27:50 +01:00
Admiral H. Curtiss 9b5c52ad8d
Merge pull request #11541 from Pokechu22/dsptool-no-redefine-label
DSPTool: Fix missing error when redefining labels
2023-02-10 11:02:36 +01:00
Pokechu22 3024ca2146 Suppress memcpy writing to an object with no trivial copy-assignment warnings
We need to copy padding in most of these cases, and the objects are trivially copyable; however, BitField prevents trivial copy-assignment.
2023-02-09 16:23:49 -08:00
Pokechu22 ac7a17579e BreakPoints: Fix shadowing warning 2023-02-09 16:23:02 -08:00
Pokechu22 debed35c10 State: Fix shadowing warnings 2023-02-09 16:23:02 -08:00
Pokechu22 f1b1f5c013 IOS: Fix shadowing warnings 2023-02-09 16:23:02 -08:00
Pokechu22 8d71f542cb Boot: Fix shadowing warning 2023-02-09 16:23:02 -08:00
Pokechu22 edcc4a6578 AudioInterface: Fix warning: declaration of ‘state’ shadows a previous local 2023-02-09 16:23:02 -08:00
Pokechu22 8ad7d58303 DSP: Fix warning: declaration of ‘state’ shadows a previous local 2023-02-09 16:23:02 -08:00
Pokechu22 24df509447 DVDInterface: Fix warning: declaration of ‘state’ shadows a previous local 2023-02-09 16:23:02 -08:00
Pokechu22 9c52c600c4 EXI_DeviceEthernet: Fix warning: operation on ‘current_rwp’ may be undefined [-Wsequence-point] 2023-02-09 16:23:01 -08:00
Pokechu22 1465620721 GCMemcardDirectory: Fix variable shadowing warning 2023-02-09 16:23:01 -08:00
Pokechu22 c555a4f0c6 SerialInterface: Fix warning: declaration of ‘state’ shadows a previous local 2023-02-09 16:23:01 -08:00
Pokechu22 72b4675c8f VideoInterface: Fix warning: declaration of ‘state’ shadows a previous local 2023-02-09 16:23:01 -08:00
Pokechu22 49a84cbc4c Resolve various "no previous declaration" warnings 2023-02-09 16:23:01 -08:00
Pokechu22 af5013b60f Suppress -Winvalid-offsetof for PowerPC::PowerPCState
This code doesn't need to be portable (since the goal is to have a smaller offset for x64 codegen), so if it's not supported there are other problems. Similar code exists in e.g. DSP.cpp.
2023-02-09 16:23:01 -08:00
Scott Mansell aaad0cd39f
Merge pull request #11539 from phire/improve_workqueuethread
Various WorkQueueThread improvements
2023-02-09 20:00:04 +13:00
Scott Mansell ccf92a3e56
Merge pull request #11522 from phire/KillRendererWithFire
Kill Renderer (with phire)
2023-02-09 19:59:16 +13:00
Scott Mansell 8c8bd0e7ac Rename to HookableEvent. Because naming conflict 2023-02-09 18:36:20 +13:00
Scott Mansell 60f2b5af7b Apply suggestions from code review
Co-authored-by: Mai <mathew1800@gmail.com>
Co-authored-by: BhaaL <bhaalsen@gmail.com>
Co-authored-by: iwubcode <iwubcode@users.noreply.github.com>
2023-02-09 18:36:20 +13:00
Scott Mansell 05fad53fa0 Update STATE_VERSION
Co-authored-by: BhaaL <bhaalsen@gmail.com>
2023-02-09 18:36:20 +13:00
Scott Mansell 31cfe8250d Lint fixes 2023-02-09 18:36:20 +13:00
Scott Mansell 11de923dcb Move xfb tracking and IR scaling out of RenderBase 2023-02-09 18:36:20 +13:00
Joshua de Reeper e0b3dd0dcf Remove Imaginators Skylanders from list
Add Vicarious Visions variant
2023-02-06 15:16:06 +13:00
Pokechu22 a244cb868b DSPTool: Fix missing error when redefining labels
The logging was broken in 958cbf38a4 (DSPTool doesn't use dolphin's logging system, so it just produced nothing; the same thing affected comparing before 693a29f8ce).

AssemblerError::LabelAlreadyExists (previously ERR_LABEL_EXISTS) simply was never used.
2023-02-04 17:31:06 -08:00
Scott Mansell 7c4fcc30a3 WorkQueueThread: provide name and function at same time 2023-02-04 15:56:27 +13:00
Scott Mansell acdb0c5be1 WorkQueueThread: Implement thread name
Otherwise we will end up with a dozen threads named "WorkQueueThread"
2023-02-04 14:58:12 +13:00
Sam Belliveau 4a97dc7c81 Let VI Skip work if variance > fallback 2023-02-02 20:59:17 -05:00
Sam Belliveau 87d5d39dfe Set VI Skip Activation to Half The Audio Buffer 2023-02-02 20:55:13 -05:00
Joshua de Reeper 680db55239 Android: Add Skylanders Portal
Co-Authored-By: Charles Lombardo <clombardo169@gmail.com>
2023-02-02 21:16:14 +13:00
Scott Mansell 12431a83ba
Merge pull request #11435 from techydude0713/wc24-utc-fix
NetKDTime: Use UTC based timestamp instead of localtime.
2023-01-31 23:40:15 +13:00
Scott Mansell abfc75f362 Cleanup headers 2023-01-31 19:41:24 +13:00
Scott Mansell 0da69055d9 Split out everying remaining from Swap 2023-01-31 19:41:24 +13:00
Scott Mansell b007b8e104 Replace BeginUI/EndUI 2023-01-31 19:41:24 +13:00
Scott Mansell e57eb04ed3 Rename FrameDump.{cpp,h} to FrameDumpFFMpeg.{cpp,h}
The name kind of conflicts with a new FrameDumper class
2023-01-31 18:45:29 +13:00
Scott Mansell 0d4537d60f Move Presenting, Dumping and ImGui out of Renderer 2023-01-31 18:45:21 +13:00
Pierre Bourdon 2843cd10a8
Merge pull request #11492 from mandar1jn/file-improvements
Improve the data in the first data block of the skylanders figures
2023-01-31 03:02:39 +01:00
Lioncash f20790370a Core/ActionReplay: Make use of std::span where applicable
Generifies the interface a little by not strictly requiring the use of
std::vector.
2023-01-30 13:02:09 -05:00
Lioncash adb4c0492d Core/GeckoCode: Make use of std::span where applicable
Generifies the interface a little by not strictly requiring the use of
std::vector.
2023-01-30 12:53:50 -05:00
Mandar1jn c8a91abadc Improve the data in the first data block of the skylanders figures
* Added NUID
* Added BCC
* Added ATQA
* Added SAK
2023-01-30 16:29:20 +01:00
Admiral H. Curtiss e48424065b
Merge pull request #10839 from CasualPokePlayer/fix_sysconf_settings
Fix SYSCONF movie settings
2023-01-30 09:50:21 +01:00
Pierre Bourdon a2f4606d33
Merge pull request #11205 from TellowKrinkle/AutoPresent
VideoBackends:Metal: Default to presentDrawable when vsync is on
2023-01-30 09:01:18 +01:00
Scott Mansell 6d7303993c
Merge pull request #11509 from Sam-Belliveau/improved-speed-counter
Tie Speed to CPU Speed and not VPS
2023-01-30 20:41:03 +13:00
Sam Belliveau ebf114aef5 Tie Speed to CPU Speed and not VPS 2023-01-29 13:33:48 -05:00
Pierre Bourdon 2eda76cffc
Merge pull request #11474 from MayImilae/cleanup-remove-cdutils
Cleanup: Remove CDUtils
2023-01-29 09:50:32 +01:00
Pokechu22 3b4e17292d Revert "DSPLLE: Add assertion for bad DMA alignment"
This reverts commit e140516130. This assert triggers for AX and AXWii uCode games (including the Wii System Menu) for various addresses that seem to be 4-byte aligned. Worse still, if the DSP thread is in use (i.e. for DSP LLE recompiler, but not for DSP LLE interpreter), Dolphin completely hangs after the panic alert. Perhaps the data DMA has fewer restrictions compared to the instruction DMA?

The change to DSPTool (e391a28102) has not been reverted, as it still fixes broken behavior for DSPSpy at -O0 on real hardware.
2023-01-28 17:26:47 -08:00
JosJuice e27339039c PPCAnalyst: Actually check if instructions want CR 2023-01-28 20:16:17 +01:00
JosJuice 9d2c4aa325 PPCAnalyst: Use bitsets for CR analysis
Currently we're only performing CR analysis for CR0 and CR1, but I
would like to do it for all CRs. Bitsets are appropriate for this.
2023-01-28 20:16:16 +01:00
JosJuice 3b57fb1d21 PPCTables: Add new instruction flags for CR 2023-01-28 20:16:16 +01:00
MayImilae 37859ec1da Cleanup: Remove CDUtils
This is a cleaning followup for #11456.
2023-01-28 03:50:57 -08:00
Admiral H. Curtiss be2d394b8c
GDBStub: Avoid ppcState global. 2023-01-27 15:22:48 +01:00
Admiral H. Curtiss dd9907ed93
PatchEngine: Avoid ppcState global. 2023-01-27 15:22:48 +01:00
Admiral H. Curtiss 4c349caabd
MIOS: Avoid ppcState global. 2023-01-27 15:22:48 +01:00
Admiral H. Curtiss ed633476e6
IOS: Avoid ppcState global. 2023-01-27 15:22:47 +01:00
Admiral H. Curtiss 0a0b4d325f
HW/SystemTimers: Avoid ppcState global. 2023-01-27 15:22:47 +01:00
Admiral H. Curtiss a784fe1f2f
HW/ProcessorInterface: Avoid ppcState global. 2023-01-27 15:22:47 +01:00
Admiral H. Curtiss 884130f95c
HW/Memmap: Avoid ppcState global. 2023-01-27 15:22:47 +01:00
Admiral H. Curtiss 2bf72de43d
HW/GPFifo: Avoid ppcState global. 2023-01-27 15:22:47 +01:00
Admiral H. Curtiss e2f7855b0e
HW/DSP: Avoid ppcState global. 2023-01-27 15:22:47 +01:00
Admiral H. Curtiss 18d9ec75f1
HW/CPU: Avoid ppcState global. 2023-01-27 15:22:47 +01:00
Admiral H. Curtiss 078a460446
HW/AudioInterface: Avoid ppcState global. 2023-01-27 15:22:46 +01:00
Admiral H. Curtiss b52e8fd295
HLE_OS: Avoid ppcState global. 2023-01-27 15:22:46 +01:00
Admiral H. Curtiss 7fd552081f
HLE function hooking: Avoid ppcState global. 2023-01-27 15:22:46 +01:00
Admiral H. Curtiss 30de91d843
GeckoCode: Avoid ppcState global. 2023-01-27 15:22:46 +01:00
Admiral H. Curtiss 1a826b27a6
FifoPlayer: Avoid ppcState global. 2023-01-27 15:22:46 +01:00
Admiral H. Curtiss 8adabb86cf
Debugger: Avoid ppcState global. 2023-01-27 15:22:45 +01:00
Admiral H. Curtiss bfc951311f
CheatSearch: Avoid ppcState global. 2023-01-27 15:22:45 +01:00
Admiral H. Curtiss 41ad0490f0
CoreTiming: Avoid ppcState global. 2023-01-27 15:22:45 +01:00
Admiral H. Curtiss 94455ee9e1
Boot: Avoid ppcState global. 2023-01-27 15:22:45 +01:00
Admiral H. Curtiss 51e7980d95
Core: Add PowerPCState reference to System. 2023-01-27 15:22:44 +01:00
Admiral H. Curtiss 485bba238e
PowerPC: Add PowerPCState parameter to UpdatePerformanceMonitor(). 2023-01-27 15:22:44 +01:00
Admiral H. Curtiss 61ba516570
PowerPC: Move a few functions to PowerPCState. 2023-01-27 15:22:44 +01:00
Admiral H. Curtiss 0dcf228aaf
PowerPC: Parametrize TU macro. 2023-01-27 15:22:44 +01:00
Admiral H. Curtiss a7d3315b4f
PowerPC: Parametrize TL macro. 2023-01-27 15:22:44 +01:00
Admiral H. Curtiss 2f241856b6
PowerPC: Add PowerPCState parameter to GQR macro. 2023-01-27 15:22:44 +01:00
Admiral H. Curtiss 814c01162a
PowerPC: Remove SPRG0/1/2/3 macros. 2023-01-27 15:22:43 +01:00
Admiral H. Curtiss 2f8b3ac1b7
PowerPC: Parametrize SRR1 macro. 2023-01-27 15:22:43 +01:00
Admiral H. Curtiss 652113e6ba
PowerPC: Parametrize SRR0 macro. 2023-01-27 15:22:43 +01:00
Admiral H. Curtiss 10dabd9975
PowerPC: Remove rDEC macro. 2023-01-27 15:22:43 +01:00
Admiral H. Curtiss c13ca271d8
PowerPC: Parametrize CTR macro. 2023-01-27 15:22:43 +01:00
Admiral H. Curtiss 0a343007cb
PowerPC: Parametrize LR macro. 2023-01-27 15:22:43 +01:00
Admiral H. Curtiss 0f301829d2
PowerPC: Remove rPS macro. 2023-01-27 15:22:42 +01:00
Admiral H. Curtiss 0cd4a226d2
PowerPC: Remove rSPR macro. 2023-01-27 15:22:42 +01:00
Admiral H. Curtiss 27ce432012
PowerPC: Remove rGPR macro. 2023-01-27 15:22:42 +01:00
Admiral H. Curtiss 8fccefa3aa
PowerPC: Remove GPR macro. 2023-01-27 15:22:42 +01:00
Admiral H. Curtiss ba1b624e1b
PowerPC: Remove MSR macro. 2023-01-27 15:22:42 +01:00
Admiral H. Curtiss 4b6b8fa1ae
PowerPC: Remove FPSCR macro. 2023-01-27 15:22:41 +01:00
Admiral H. Curtiss 2f3187eba9
PowerPC: Remove NPC macro. 2023-01-27 15:22:41 +01:00
Admiral H. Curtiss be8d0b76ca
PowerPC: Remove PC macro. 2023-01-27 15:22:41 +01:00
Admiral H. Curtiss 82f3170876
PowerPC: Parametrize THRM1/2/3 macros. 2023-01-27 15:22:41 +01:00
Admiral H. Curtiss 8bab3ac755
PowerPC: Parametrize MMCR1 macro. 2023-01-27 15:22:41 +01:00
Admiral H. Curtiss 126590c4cd
PowerPC: Parametrize MMCR0 macro. 2023-01-27 15:22:40 +01:00
Admiral H. Curtiss 38529a2d8d
PowerPC: Parametrize DMAL macro. 2023-01-27 15:22:40 +01:00
Admiral H. Curtiss 2374365274
PowerPC: Parametrize DMAU macro. 2023-01-27 15:22:40 +01:00
Admiral H. Curtiss 31483e492e
PowerPC: Parametrize HID4 macro. 2023-01-27 15:22:40 +01:00
Admiral H. Curtiss 6f0ab1b33e
PowerPC: Parametrize HID2 macro. 2023-01-27 15:22:40 +01:00
Admiral H. Curtiss 49eeb986c6
PowerPC: Parametrize HID0 macro. 2023-01-27 15:22:40 +01:00
Pierre Bourdon f056cec859
Merge pull request #11480 from Pokechu22/dsp-code-alignment
DSPLLE: Add assertion for bad DMA alignment
2023-01-26 23:17:09 +01:00
Pierre Bourdon 9c9310bf44
Merge pull request #11208 from TellowKrinkle/CPUCull
Cull vertices on the CPU
2023-01-26 23:15:23 +01:00
Pierre Bourdon c6a7465529
Merge pull request #11485 from MayImilae/remove-filepath-from-states-messaging
Remove Filepath from State Save/Load OSD Messages
2023-01-26 05:29:21 +01:00
TellowKrinkle 1be0149146 VideoCommon: Cull vertices on the CPU 2023-01-25 02:21:56 -06:00
Admiral H. Curtiss 9fc959cab0
Merge pull request #11489 from lioncash/init
CoreTiming: Zero initialize all CoreTimingManager throttle members
2023-01-25 02:29:32 +01:00
Lioncash 3607c1dc7d CoreTiming: Zero initialize all CoreTimingManager throttle members
Gives two members without explicit initialization default values to be
consistent with the rest of the class and also ensuring deterministic
values on construction.
2023-01-24 17:20:08 -05:00
Pierre Bourdon 6fad8ac389
Merge pull request #11467 from Simonx22/remove-titlebar-fps-counter
Core: Remove FPS, VPS and speed percentage from window title
2023-01-24 23:04:29 +01:00
Lioncash e5b91f00b0 Common: Replace StringBeginsWith/StringEndsWith with std equivalents
Obsoletes these functions in favor of the standard member functions
added in C++20.
2023-01-24 14:58:20 -05:00
MayImilae ed121ee679 Removed filepath from State Save/Load OSD messages
Though less important compared to #11470, save states also show the full path in the OSD message and could potentially dox a streamer who is playing in Dolphin. This is a simple fix - it removes the path from the message and only displays the file name.
2023-01-24 07:55:58 -08:00
Pierre Bourdon caca662dbf
Merge pull request #10994 from shuffle2/fs
get rid of HAS_STD_FILESYSTEM
2023-01-24 12:18:25 +01:00
Admiral H. Curtiss d4d6f3db63
Merge pull request #11331 from deReeperJosh/skylandersportal
Emulate Skylanders Portals within Dolphin
2023-01-24 06:56:00 +01:00
Joshua de Reeper c76d2c16eb Valid block/num checks, rename variables, remove translatable strings
Capitalize Skylander in tr strings

Lint and validation method fixes

Proper Attach and Change Interface method

Re-jig code to exit early and read easier
2023-01-24 18:12:24 +13:00
Pokechu22 e140516130 DSPLLE: Add assertion for bad DMA alignment
I haven't tested this extensively on real hardware, but I do know that bad things happen if the address isn't properly aligned, and libogc says it should be 32-byte aligned.
2023-01-23 15:20:49 -08:00
Simonx22 df6f070a55 Core: Remove FPS, VPS and speed percentage from window title 2023-01-23 21:32:50 +01:00
Pierre Bourdon 8d477c65c9
Merge pull request #11458 from shuffle2/winuver
windows: prefer os version from registry
2023-01-23 15:53:41 +01:00
Admiral H. Curtiss 8032a71c4c
Merge pull request #11471 from MayImilae/dont-update-titlebar-with-osd-messages
Don't Write OSD Messages to the Titlebar
2023-01-23 06:46:32 +01:00
MayImilae 9df1f0276d Don't Write OSD Messages to the titlebar
Turns out all OSD messages, every single one, are written to the titlebar. We've just never seen them because the FPS is in the title bar and it replaces it in a fraction of a second. This was only visible when saving savestates because it halts emulation for a moment while writing.

This is dumb, let's not do that anymore.
2023-01-22 00:19:51 -08:00
Pierre Bourdon 0eb984f030
Merge pull request #11470 from MayImilae/remove-memory-card-path-from-osd-message
Remove Memory Card Path from the Wrote to OSD Message
2023-01-22 08:13:51 +01:00
MayImilae ef0d386954 Remove Memory Card Path from the Wrote OSD Message
A few weeks ago, a vtuber tweeted that they had to remove a vod of their stream because Dolphin Emulator showed some personal information during the steam, and left a warning to everyone else that Dolphin shows the account name of the computer. And yea, we do, we show the full directory of the memory card every time a memory card is written, and due to mandatory Microsoft account nonsense, that is very likely to contain someone’s real name.

Fortunately this is very easy for us to solve. This change simply removes the filename from wrote memory card contents string. That’s it. All functionality of the wrote memory card OSD message remains the same, it just doesn’t say where the memory card is anymore.

There are lots of other potential solutions to this but after talking on IRC it seems the simplest one is the best.
2023-01-21 21:19:51 -08:00
Joshua de Reeper 18fd0d7dcd Use Core timing instead of thread
Skylander code tidy ups

Convert c array to std::array and fix comments

Formatting fixes/review changes

Variable comment

Migrate portal to System Impl and code tidy ups

Use struct

Restore review changes

Minor fix to schedule transfer method

Change descriptors to hex and fix comments
2023-01-22 14:50:30 +13:00
Joshua de Reeper f76a6789a0 Emulate Skylanders within Dolphin
Ported the code from RPCS3, with improvements made to the handling of control messages and audio transfers, Co-Authored with @mandar1jn

Missing new line chars

Co-Authored-By: mandar1jn <49076509+mandar1jn@users.noreply.github.com>
2023-01-22 14:50:30 +13:00
shockdude a32b85691b Fix Turntable extension's table range 2023-01-18 19:17:09 -08:00
Pierre Bourdon 8d5edb13a9
Merge pull request #11367 from Sam-Belliveau/lagbegone
VideoCommon: VI Skip
2023-01-19 01:20:01 +01:00
Pierre Bourdon 1cd11b8f3a
Merge pull request #11381 from skyfloogle/traversal-fix-1
Netplay: Fix traversal connections occasionally not working
2023-01-17 23:40:24 +01:00
John Papetti e2db9cd142
NetKDTime: Use UTC timestamp 2023-01-17 13:59:01 -05:00
Shawn Hoffman dff7f20f9d windows: prefer os version from registry
this value is not modified by compatibility mode
drop reporting service pack numbers. no longer used
2023-01-17 01:38:00 -08:00
Scott Mansell 7c202ab411 Reset throttle on savestate load 2023-01-16 14:18:42 +13:00
JMC47 30f0051f9c
Merge pull request #11440 from JosJuice/jit64-negative-guard
Core: Allocate 2 GiB of guard pages below fastmem area
2023-01-14 19:19:53 -05:00
JosJuice 4fa9fa997e Core: Allocate 2 GiB of guard pages below fastmem area
See the comment added by this commit. We were previously guarding against
overshooting in address calculations, but not against undershooting.
Perhaps someone assumed that the displacement of an x86 loadstore was
treated as unsigned?

Note: While the comment says we can undershoot by up to 2 GiB, in
practice Jit64 as it currently behaves won't actually undershoot by more
than 0x8000 if my analysis is correct. But address space is cheap, so
let's guard the full 2 GiB.
2023-01-14 20:35:50 +01:00
JosJuice 9c90b31e6a Memmap: Remove some remnants from the 32-bit JITs 2023-01-14 11:46:37 +01:00
Sam Belliveau 23ad07b368 Add VISkip 2023-01-14 01:56:37 -05:00
JMC47 8a1cac9be1
Merge pull request #11348 from Sam-Belliveau/improved-pacing
CoreTiming: Throttle Before Every Event Using std::chrono
2023-01-13 21:52:07 -05:00
Sam Belliveau e849172dc9 Limit Throttling to 1200hz 2023-01-13 18:17:24 -05:00
Sam Belliveau e95c1d55e8 Limit Sleep Calls to 8192hz at most 2023-01-13 11:59:32 -05:00
Shawn Hoffman d51e4e5236 get rid of HAS_STD_FILESYSTEM
just use std::filesystem
2023-01-10 05:17:43 -08:00
Admiral H. Curtiss 653e0ccf28
Merge pull request #11365 from iwubcode/cheat_manager_freeze_value
DolphinQt: add ability to lock / freeze values in the watches window
2023-01-09 18:41:28 +01:00
Admiral H. Curtiss 993d2ab173
PatchEngine: Use std::span in ApplyMemoryPatches(). 2023-01-09 17:24:41 +01:00
Admiral H. Curtiss 21c29bad6b
Merge pull request #11407 from AdmiralCurtiss/globals-gpfifo
HW/GPFifo: Refactor to class, move to Core::System.
2023-01-09 17:09:48 +01:00
Admiral H. Curtiss eeeab3c3be
Merge pull request #11183 from TheLordScruffy/write-back-cache
Implement PowerPC data cache
2023-01-09 17:09:32 +01:00
Sam Belliveau 901e4c7697 Reset Throttle Variables In Init 2023-01-09 11:06:12 -05:00
Sam Belliveau f7de0e4147 Fix issue that would disable Throttling 2023-01-08 01:20:19 -05:00
TheLordScruffy d85f6c8298 DolphinAnalytics: Remove ICACHE_MATTERS 2023-01-08 00:17:46 -05:00
TheLordScruffy 825bacde43 PPCCache: Change u32 to u8 for plru, valid, modified 2023-01-07 20:18:59 -05:00
TheLordScruffy 811d942222 Improve PPCCache lookup table 2023-01-07 07:30:42 -05:00
Sam Belliveau bc1cc9eeb4 CoreTiming: Throttle Before Every Event Using Chrono 2023-01-06 17:21:17 -05:00
Admiral H. Curtiss d33416fc35
HW/Memmap: Zero-initialize members by default. 2023-01-06 05:33:21 +01:00
Admiral H. Curtiss fbcaf83d30
HW/GPFifo: Refactor to class, move to Core::System. 2023-01-06 05:33:21 +01:00
Admiral H. Curtiss 7b04a6b958
Merge pull request #11089 from sepalani/pcap-share
NetworkCaptureLogger: Allow PCAP shared read access on Windows
2023-01-05 04:06:35 +01:00
Admiral H. Curtiss 2fdaf0a86e
HW/ProcessorInterface: Rename member variables to fit naming convention. 2023-01-04 03:17:26 +01:00
Admiral H. Curtiss 74e1577a2c
HW/ProcessorInterface: Refactor to class, move to Core::System. 2023-01-04 03:00:10 +01:00
Pokechu22 c1b1d8d783 DolphinAnalytics: Track support of framebuffer fetch 2023-01-02 23:17:17 -08:00
Pokechu22 277518837a DolphinAnalytics: Track support of logic ops 2023-01-02 23:17:02 -08:00
Pokechu22 f433da6083 DolphinAnalytics: Fix comment wrapping
This was broken in 3570c7f03a.
2023-01-02 23:15:04 -08:00
TheLordScruffy 9d39647f9e Fix PPC cache code formatting 2023-01-02 02:33:57 -05:00
Mai 20ac2cf781
Merge pull request #11375 from JosJuice/mmu-inf-write
PowerPC: Fix theoretically possible infinite loop in WriteToHardware
2022-12-31 18:55:11 +00:00
Mai acdf76bf16
Merge pull request #11374 from JosJuice/jitarm64-breakpoints
JitArm64: Implement breakpoints
2022-12-31 18:53:25 +00:00
Admiral H. Curtiss f6fbeaf355
Merge pull request #11364 from jordan-woyak/udraw-lift
WiimoteEmu: Expose mappings for lifted UDraw and Drawsome stylus.
2022-12-29 21:16:57 +01:00
Admiral H. Curtiss c20bb01b47
Merge pull request #11372 from JosJuice/m3u-backslash
Boot: Fix handling of M3U file paths containing backslashes
2022-12-29 17:09:38 +01:00
Admiral H. Curtiss 4bc94e4629
Merge pull request #11353 from noahpistilli/fix-mail-account-generation
Set checksum for NWC24Config during creation
2022-12-29 17:08:10 +01:00
Admiral H. Curtiss cb0a603c72
VideoCommon: De-globalize GeometryShaderManager class. 2022-12-29 15:33:19 +01:00
Admiral H. Curtiss a164c47caf
Core/Boot: Pass System instance to BootUp() and related. 2022-12-29 05:49:26 +01:00
Admiral H. Curtiss 50625728e0
VideoCommon: De-globalize VertexShaderManager class. 2022-12-28 15:52:29 +01:00
Mai 0900e68986
Merge pull request #11384 from AdmiralCurtiss/globals-pixelshadermanager
VideoCommon: De-globalize PixelShaderManager class.
2022-12-28 00:59:03 +00:00
Admiral H. Curtiss c8202043b6
IOS/NWC24Config: Combine WriteConfig() and WriteCBK(). 2022-12-27 21:21:06 +01:00
Admiral H. Curtiss 725bd64ec2
VideoCommon: De-globalize PixelShaderManager class. 2022-12-27 20:13:24 +01:00
Sketch 929fba08e7 Fix ESDevice::GetTitlesWithTickets always returning 0 titles owned 2022-12-27 12:18:44 -05:00
Floogle c689e9cde0 Netplay: When connecting, ignore packets from traversal server 2022-12-26 23:35:42 +01:00
Jordan Woyak 4f4285cf5e WiimoteEmu/DrawsomeTablet: Expose mapping for lifted stylus. 2022-12-25 19:03:15 -06:00
Jordan Woyak ab9fc3f2e4 WiimoteEmu/UDrawTablet: Expose mapping for lifted stylus. 2022-12-25 19:03:15 -06:00
JosJuice cf16f49068 PowerPC: Fix theoretically possible infinite loop in WriteToHardware
`em_address + size` can overflow and become 0. It shouldn't happen with
the kinds of memory mappings games use in practice, though.
2022-12-25 12:29:13 +01:00
JosJuice c744ff4934 JitArm64: Implement breakpoints
Plus two miscellaneous debugger features that I found along the way when
reading Jit64's code for comparison: bJITNoBlockLinking and tracing.

Fixes https://bugs.dolphin-emu.org/issues/13127.
2022-12-24 13:24:01 +01:00
JosJuice 0659827485 Jit64: Check for breakpoint without disabling block link
Small optimization. By not calling WriteExit, the block linking system
never finds out about the exit we're doing, saving us from having to
disable block linking.
2022-12-24 13:01:29 +01:00
JosJuice 71f1b1db34 Boot: Fix handling of M3U file paths containing backslashes
Previously, if a user on Windows launched Dolphin from the command line
and specified a path to an M3U file and included backslashes in this path,
Dolphin would fail to resolve relative paths in the M3U file.
2022-12-24 11:13:27 +01:00
Sam Belliveau 673f81c18a New FrameTime/VBlank Analyzer + Graph 2022-12-23 19:52:53 -05:00
iwubcode 31bf9d0019 Core: add option to apply memory patch to not store the existing value (used during locking) 2022-12-23 12:31:33 -06:00
iwubcode 8f3e8e4ca3 Core: add locked state to watches 2022-12-23 11:59:23 -06:00
iwubcode 3081a781fd Core: when scheduling an invalidate cpu cache, no need to schedule if we're already on the cpu thread 2022-12-23 11:59:23 -06:00
iwubcode 2f2f906bf5 Core: add ability to add memory patches to the patch engine that will be executed each frame 2022-12-23 03:13:03 -06:00
iwubcode 1f87bcd202 Core: add ability to apply memory patches during a frame update in the PatchEngine 2022-12-23 03:13:03 -06:00
iwubcode 4743d74985 Core: add helper function to apply a memory patch and mark the 'PPCPatches' as final 2022-12-23 03:13:03 -06:00
Minty-Meeo 05bebee802 Replace BitUtils with C++20: Counting Zeroes
With the upgrade to C++20, std::countl_zero and std::countr_zero can replace these home-spun implementations from the BitUtil.h library.
2022-12-21 04:17:00 -06:00
Admiral H. Curtiss d853da3b0b
Merge pull request #11354 from Pokechu22/desert-bus-asnd-ucode
DSPHLE: Add Desert Bus libasnd ucode variants
2022-12-20 20:01:21 +01:00
Pokechu22 66b3686d84 DSPHLE: Add Desert Bus libasnd ucode variants 2022-12-20 10:02:53 -08:00
Mai 5348c8b2c6
Merge pull request #11344 from JosJuice/jitarm64-mw-deps
JitArm64: Improve pipelining of lmw/stmw
2022-12-20 15:11:29 +00:00
Sketch c01ec96c92 Set checksum for NWC24Config during creation 2022-12-19 20:18:34 -05:00
Mai a1c4861ad8
Merge pull request #10950 from JosJuice/replace-bitutils-rotate
Replace BitUtils with C++20: RotateLeft/RotateRight
2022-12-11 21:19:43 +00:00
Mai aa57d53c90
Merge pull request #11345 from AdmiralCurtiss/globals-pe
VideoCommon/PixelEngine: Refactor to class, move to Core::System.
2022-12-11 21:07:30 +00:00
Admiral H. Curtiss ec8aaf1f30
VideoCommon/PixelEngine: Refactor to class, move to Core::System. 2022-12-11 21:57:19 +01:00
JosJuice 701ba7cd43 JitArm64: Improve pipelining of lmw/stmw
The calculation of each address in lmw/stmw currently has a dependency
on the calculation of the previous address. By removing this dependency,
the host CPU should be able to pipeline the loads/stores better. The cost
we pay for this is up to one extra register and one extra MOV instruction
per guest instruction, but often nothing.

Making EmitBackpatchRoutine support using any register as the address
register would let us get rid of the MOV, but I consider that to be too
big of a task to do in one go at the same time as this.
2022-12-11 17:08:12 +01:00
Merry 17c14ac4b9 MachineContext: Fix USE_SIGACTION_ON_APPLE on arm64 2022-12-11 13:36:44 +00:00
JosJuice 454537d53e Replace BitUtils with C++20: RotateLeft/RotateRight
Now that we've flipped the C++20 switch, let's start making use of
the nice new <bit> header.

I'm planning on handling this move away from BitUtils.h incrementally
in a series of PRs. There may be a few functions remaining in
BitUtils.h by the end that C++20 doesn't have any equivalents for.
2022-12-11 08:59:18 +01:00
JosJuice 1fd8d476e8
Merge pull request #11325 from t895/extra-dark
Android: Add black backgrounds toggle
2022-12-10 21:09:26 +01:00
Charles Lombardo fd7a84b794 Android: Add black backgrounds toggle
Makes all background colors black in dark mode when enabled through a ThemeOverlay. Applied the same way as a theme/mode.
2022-12-10 14:53:01 -05:00
Mai 54e01c660e
Merge pull request #11334 from AdmiralCurtiss/globals-fifo
VideoCommon/Fifo: Refactor to class, move to Core::System.
2022-12-10 19:13:23 +00:00
Mai 48ce5318e1
Merge pull request #11338 from JosJuice/jitarm64-revert-supposed-tail
Revert "JitArm64: Optimize a few tail calls"
2022-12-10 19:11:23 +00:00
Admiral H. Curtiss ceae4242fc
VideoCommon/Fifo: Pass Core::System to methods. 2022-12-10 17:16:26 +01:00
Admiral H. Curtiss 5624dd6d39
VideoCommon/Fifo: Refactor to class, move to Core::System. 2022-12-10 17:16:19 +01:00
JosJuice 64bc150b8c Revert "JitArm64: Optimize a few tail calls"
This reverts commit 351d095fff.

In hindsight, my attempted optimization messes with the return
predictor, unlike real tail calls. So I think it does more bad than
good.
2022-12-10 11:35:52 +01:00
Admiral H. Curtiss 8a3b8a925e
Core: Add option to force linear texture filtering. 2022-12-09 02:02:16 +01:00
TheLordScruffy e97d380437 Implement PPC write-back data cache 2022-12-08 18:18:32 -05:00
Admiral H. Curtiss b207611c33
Merge pull request #11274 from TryTwo/PR_Conditional_BP_Add_Memory
Debugger: Add conditional breakpoints to memory BPs
2022-12-07 19:55:04 +01:00
Mai 000c6c4813
Merge pull request #11321 from JosJuice/jitarm64-accurate-nans
JitArm64: Implement accurate NaNs
2022-12-07 00:58:13 +00:00
Mai 94faad0d37
Merge pull request #11320 from AdmiralCurtiss/globals-memory
HW/Memmap: Refactor Memory to class, move to Core::System.
2022-12-07 00:52:31 +00:00
Mai a9a603b8cb
Merge pull request #11268 from jordan-woyak/ascii-controller
Rename "Keyboard" to "Keyboard Controller"
2022-12-04 21:05:52 +00:00
TryTwo a17fbe7c65 Expand conditional breakpoints to memory breakpoints 2022-12-04 11:25:33 -07:00
Mai b23eb1f550
Merge pull request #11322 from JosJuice/jit64-madds-nan
Jit64: Correctly handle NaNs for ps_maddsX
2022-12-04 17:58:16 +00:00
Mai f21edf6d5a
Merge pull request #11270 from t895/theme-mode
Android: Add theme mode switcher
2022-12-04 17:56:59 +00:00
Admiral H. Curtiss 2b93d5e0d7
Merge pull request #11273 from TryTwo/PR_Conditional_BP_Callstack
Debugger: add callstack to conditional breakpoints
2022-12-04 14:16:12 +01:00
TryTwo 76bf1b5f7d Add callstack to conditional breakpoints. Checks entire stack for value.
Use: callstack(0x80000000).
  !callstack(value) works as a 'does not contain'.
Add strings to expr.h conditionals.
  Use quotations: callstack("anim") to check symbols/name.
2022-12-03 20:52:17 -07:00
JosJuice eeef5363e4 Jit64: Correctly handle NaNs for ps_maddsX 2022-12-03 21:05:05 +01:00
JosJuice 06e60ac327 JitArm64: Implement accurate NaNs
For quite some time now, we've had a setting on x86-64 that makes Dolphin
handle NaNs in a more accurate but slower way. There's only one game that
cares about this, Dragon Ball: Revenge of King Piccolo, and what that game
cares about more specifically is that the default NaN (or "generated NaN"
as I believe it's called in PowerPC documentation) is the same as on
PowerPC. On ARM, the default NaN is the same as on PowerPC, so for the
longest time we didn't need to do anything special to get Dragon Ball:
Revenge of King Piccolo working. However, in 93e636a I changed how we
handle FMA instructions in a way that resulted in the sign of NaNs
becoming inverted for nmadd/nmsub instructions, breaking the game.
To fix this, let's implement the AccurateNaNs setting, like on x86-64.
2022-12-03 19:41:32 +01:00
JosJuice 5c41d3b602 JitArm64: Refactor temp reg handling in fp_arith/ps_arith 2022-12-03 19:08:27 +01:00
Admiral H. Curtiss 839db591d9
HW/Memmap: Refactor Memory to class, move to Core::System. 2022-12-03 13:27:02 +01:00
Charles Lombardo b9fffa2e66 Android: Add theme mode switcher
Similar to app themes, theme modes have to be loaded before directory initialization is ready. So we save the proper key the same way.
2022-12-02 13:31:57 -05:00
Pokechu22 6a6d24550e Clean up DisassembleBlock and JitInterface::GetHostCode 2022-12-01 17:43:35 -08:00
Mai 7cd9a78ebf
Merge pull request #11304 from JosJuice/jit64-nan-c
Jit64: Correctly handle NaNs for ps_mulsX/ps_sumX
2022-11-29 12:57:43 +00:00
Mai 5f22a0054f
Merge pull request #11305 from JosJuice/jitarm64-optimize-ps-merge
JitArm64: Optimize ps_mergeXX
2022-11-29 12:57:10 +00:00
Admiral H. Curtiss 6941d2e7e6
VideoCommon/CommandProcessor: Refactor to class, move to Core::System. 2022-11-29 08:15:01 +01:00
JosJuice 2f1a8ee1b9 Jit64: Skip HandleNaNs for operations that can't generate NaN
Operations that have two operands and can't generate a default NaN,
i.e. addition and subtraction, already have the desired NaN handling
on x86. We just need to make sure to not reverse the operands.

This fixes ps_sum0/ps_sum1 outputting NaNs in cases where they shouldn't.
(HandleNaNs assumes that a NaN in a ps0 input always results in a NaN in
the ps0 output, and correspondingly for ps1.)
2022-11-27 11:30:10 +01:00
JosJuice cbceae9176 Jit64: Correctly handle NaNs for ps_mulsX 2022-11-27 11:30:10 +01:00
JosJuice d3180e3516 Jit64: Refactor HandleNaNs operand passing 2022-11-27 11:30:05 +01:00
Mai 44f8b8c100
Merge pull request #11303 from AdmiralCurtiss/coretiming-class
CoreTiming: Refactor to class.
2022-11-27 06:00:46 +00:00
Admiral H. Curtiss 64bb9ae9a9
Correctly call CoUninitialize() on Cubeb helper class destruction. 2022-11-27 03:58:50 +01:00
Admiral H. Curtiss daa70533cd
CoreTiming: Store Globals in CoreTimingManager. 2022-11-27 03:47:12 +01:00
Admiral H. Curtiss c9558ecb4c
CoreTiming: Refactor to class. 2022-11-27 03:47:12 +01:00
Admiral H. Curtiss 3cdc6e3d4a
Merge pull request #10343 from AdmiralCurtiss/cubeb-2021
Update cubeb to mozilla/cubeb@27d2a102b0
2022-11-27 03:26:11 +01:00
JosJuice f45d3a6a2c JitArm64: Optimize ps_mergeXX
1. In some cases, ps_merge01 can be implemented using one instruction.
2. When we need two instructions for ps_merge01, it's best to start with
   a MOV to avoid false dependencies on the destination register.
3. ps_merge10 can be implemented using a single EXT instruction.
2022-11-26 18:14:58 +01:00
Admiral H. Curtiss e085bf14f9
Core: Use extra thread for Cubeb on Windows to not disturb the CoInitialize state of whatever thread happens to call a Cubeb function. 2022-11-26 05:05:57 +01:00
Admiral H. Curtiss ca10e92ab9
Core: Abide by COM MTA requirement for cubeb on Windows. Partially based on https://github.com/dolphin-emu/dolphin/pull/8920#discussion_r459746604
Co-authored-by: Michael M <mchtly@gmail.com>
2022-11-26 05:05:56 +01:00
Admiral H. Curtiss 4273d3754c
CoreTiming: Move static variables into Core::System. 2022-11-26 04:22:32 +01:00
Admiral H. Curtiss 86f17511fc
CoreTiming: Move the 'Globals' instance into Core::System. 2022-11-26 04:22:32 +01:00