Commit Graph

2005 Commits

Author SHA1 Message Date
fe26b54efd Qt/WiiPane: Add progress window for SD card conversion. 2023-02-28 20:31:55 +01:00
435d8c39ee Common/FatFsUtil: Add callback for cancelling SD card conversion. 2023-02-28 20:31:51 +01:00
02f7c0213f Qt/GameList: Also filter by filename when searching. 2023-02-26 19:13:45 +01:00
4e6c89fbfd Qt/CodeViewWidget: Don't read PC in Update() if we don't have a CPU thread guard. 2023-02-20 03:10:12 +01:00
ef1520c2c6 Qt/CodeViewWidget: Don't try to pause emulator in Update() if we happen to be on a breakpoint. 2023-02-20 02:56:04 +01:00
4e6e510003 Debugger: Add string comparison to conditional breakpoints. 2023-02-20 01:40:33 +01:00
8db35e6d04 Merge pull request #11578 from Pokechu22/memory-leaks-feb-2023
Fix various memory leaks
2023-02-18 13:56:34 +01:00
c94aacc968 AudioPane: Fix inconsistent initial state of audio stretching labels
This resulted in the labels being solid black even when audio stretching is disabled the first time the settings are opened, but then properly being greyed out after changing a setting (even the audio backend or DSP emulation engine, not just whether audio stretching is enabled).
2023-02-17 18:51:41 -08:00
b6d476241a CodeViewWidget: Fix memory leak
Per https://doc.qt.io/qt-6/qabstractitemview.html#setItemDelegateForColumn setItemDelegateForColumn does not take ownership of the parameter, so it was not being deleted. Specifying a parent to QObject (via QStyledItemDelegate's constructor) will allow it to automatically be deleted, per https://doc.qt.io/qt-6/objecttrees.html. The other instance of a QItemDelegate in IOWindow.cpp already used this.
2023-02-17 18:29:32 -08:00
1c5e223532 MemoryViewWidget: Fix memory leaks
bp_item/row_item/item were never deleted, and the normal Qt ownership system wasn't applying to them because they were being cloned.
2023-02-17 18:17:01 -08:00
49e897422f Use a success count instead of files count 2023-02-17 15:49:31 +01:00
cb42a03299 Check the input and destination paths before converting a game file onto itself
Before these changes you could tell Dolphin to convert a game file into the same format it is already in, leading to the FileDialog using the input path as the default destination path
An unsuspecting user could then click Save and Dolphin would try to convert the input file by writing the destination file on top of it... leading to an I/O error and the input file being entirely removed
2023-02-17 14:26:50 +01:00
8802f96b7e Fix uninitialized variable warnings (C26495) 2023-02-15 19:18:39 -08:00
5b6784432c Follow-up fixes for "Properly lock CPU before accessing emulated memory" 2023-02-14 18:44:16 +01:00
a4729a026f Merge pull request #11554 from JosJuice/host-lock-cpu
DolphinQt: Properly lock CPU before accessing emulated memory
2023-02-13 16:08:36 +13:00
2c24d07837 Merge pull request #11538 from t895/disc-speed-stuff
Rename "Speed up Disc Transfer Rate" to "Emulate Disc Speed"
2023-02-13 15:46:56 +13:00
0ed64b080f Rename Fast Disc Speed to Emulate Disc Speed and invert option 2023-02-12 16:20:38 -05:00
6f0266e8de DolphinQt: Only update call stack if paused
This avoids a pseudo infinite loop where CodeWidget::UpdateCallstack
would lock the CPU in order to read the call stack, causing the CPU to
call Host_UpdateDisasmDialog because it's transitioning from running to
pausing, causing Host::UpdateDisasmDialog to be emitted, causing
CodeWidget::Update to be called, once again causing
CodeWidget::UpdateCallstack to be called, repeating the cycle.

Dolphin didn't go completely unresponsive during this, because
Host_UpdateDisasmDialog schedules the emitting of Host::UpdateDisasmDialog
to happen on another thread without blocking, but it was stopping certain
operations like exiting emulation from working.
2023-02-12 12:50:28 +01:00
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
508c79a66f Rename VI Skip to VBI Skip
VI Skip was very hard to explain on the blog, so this small changes
clarifies what VI Skip is to resolve that issue.
2023-02-11 20:28:41 -08:00
3bd655463d MemoryViewWidget: Fix warning: enumeration value ‘Null’ not handled in switch [-Wswitch] 2023-02-09 16:23:02 -08:00
5c8d8383e2 CodeWidget: Fix shadowing warning 2023-02-09 16:23:02 -08:00
b316ce6fdd Fix warning: implicit capture of ‘this’ via ‘[=]’ is deprecated in C++20 2023-02-09 16:23:01 -08:00
aaad0cd39f Merge pull request #11539 from phire/improve_workqueuethread
Various WorkQueueThread improvements
2023-02-09 20:00:04 +13:00
ccf92a3e56 Merge pull request #11522 from phire/KillRendererWithFire
Kill Renderer (with phire)
2023-02-09 19:59:16 +13:00
9c1fe59cc9 Insert a more solid abstraction between Qt and Imgui 2023-02-09 18:36:20 +13:00
4422af1272 Cleanup headers 2023-02-09 18:36:20 +13:00
7c4fcc30a3 WorkQueueThread: provide name and function at same time 2023-02-04 15:56:27 +13:00
6594532f10 WorkQueueThread: rework Cancel/Shutdown workflow
- Cancel doesn't shut down anymore.
   Allowing it to be used multiple times thoughout the life of
   the WorkQueue
 - Remove Clear, so we only have Cancel semantics
 - Add IsCancelling so work items can abort early if cancelling
 - Replace m_cancelled and m_thread.joinable() guars with m_shutdown.
 - Rename Flush to WaitForCompletion (As it's ambiguous if a function
   called flush should be blocking or not)
 - Add documentation
2023-02-04 14:58:12 +13:00
acdb0c5be1 WorkQueueThread: Implement thread name
Otherwise we will end up with a dozen threads named "WorkQueueThread"
2023-02-04 14:58:12 +13:00
680db55239 Android: Add Skylanders Portal
Co-Authored-By: Charles Lombardo <clombardo169@gmail.com>
2023-02-02 21:16:14 +13:00
69b178e95f Merge pull request #11157 from h3xx/use-gnuinstalldirs
Use GNUInstallDirs for installation paths
2023-02-01 19:35:46 +01:00
2a2ee5d543 Merge pull request #11434 from momocaoo/graphics-mod-folder-button
DolphinQt: Add button to open graphics mod folder on settings
2023-01-31 14:35:21 +01:00
1956ce151f Cmake/MSVC: Fix Qt6 discover for IDEs other than Visual Studio
CMakeSettings.json is a Visual Studio only extention to cmake that isn't
supported anywhere else. Not even Visual Studio Code.

So we set CMAKE_PREFIX_PATH inside DolphinQt's CMakeLists.txt instead.
2023-01-31 23:19:46 +13:00
abfc75f362 Cleanup headers 2023-01-31 19:41:24 +13:00
89d9ec0a84 Fix warning 2023-01-31 19:41:24 +13:00
8a23629345 Split AbstractGfx out of Renderer
Almost all the virtual functions in Renderer are part of dolphin's
"graphics api abstraction layer", which has slowly formed over the
last decade or two.

Most of the work was done previously with the introduction of the
various "AbstractX" classes, associated with texture cache cleanups
and implementation of newer graphics APIs (Direct3D 12, Vulkan, Metal).
We are simply taking the last step and yeeting these functions out
of Renderer.

This "AbstractGfx" class is now completely agnostic of any details
from the flipper/hollywood GPU we are emulating, though somewhat
specialized.

(Will not build, this commit only contains changes outside VideoBackends)
2023-01-31 18:46:02 +13:00
0d4537d60f Move Presenting, Dumping and ImGui out of Renderer 2023-01-31 18:45:21 +13:00
81388eedaa Use GNUInstallDirs for installation paths 2023-01-30 09:44:44 -06:00
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
37859ec1da Cleanup: Remove CDUtils
This is a cleaning followup for #11456.
2023-01-28 03:50:57 -08:00
7fd552081f HLE function hooking: Avoid ppcState global. 2023-01-27 15:22:46 +01:00
8adabb86cf Debugger: Avoid ppcState global. 2023-01-27 15:22:45 +01:00
61ba516570 PowerPC: Move a few functions to PowerPCState. 2023-01-27 15:22:44 +01:00
c13ca271d8 PowerPC: Parametrize CTR macro. 2023-01-27 15:22:43 +01:00
0f301829d2 PowerPC: Remove rPS macro. 2023-01-27 15:22:42 +01:00
8fccefa3aa PowerPC: Remove GPR macro. 2023-01-27 15:22:42 +01:00
be8d0b76ca PowerPC: Remove PC macro. 2023-01-27 15:22:41 +01:00
9c9310bf44 Merge pull request #11208 from TellowKrinkle/CPUCull
Cull vertices on the CPU
2023-01-26 23:15:23 +01:00
7413be1487 VideoCommon: Add configuration option for CPUCull 2023-01-25 02:21:56 -06:00