Jordan Woyak
1786e34bd3
Merge pull request #13665 from jordan-woyak/dark-mode-filter
...
DolphinQt: Replace widespread SetQWidgetWindowDecorations calls with an event filter.
2025-06-07 18:19:13 -05:00
Jordan Woyak
65f3ba70f5
Merge pull request #13522 from tygyh/Enforce-overriding-destructor-style-Core&UnitTests
...
Core & UnitTests: Make overriding explicit and remove redundant virtual specifiers on overriding destructors
2025-06-07 17:55:14 -05:00
Jordan Woyak
8b7669550f
Merge pull request #13454 from tygyh/Use-constants-DolphinQt-FifoAnalyzer
...
DolphinQt/FIFO/FIFOAnalyzer: Make parameters, arguments etc. constant
2025-06-07 17:50:08 -05:00
Jordan Woyak
46e66fe945
Merge pull request #13544 from tygyh/DolphinNoGUI-Replace-deprecated-signal-header
...
DolphinNoGUI: Apply style-alignment refactorings
2025-06-07 17:47:11 -05:00
Jordan Woyak
056ece6f29
Merge pull request #13697 from tygyh/AudioCommon/Remove-unused-includes
...
AudioCommon: Remove unused includes
2025-06-07 17:45:50 -05:00
Jordan Woyak
a07a2fe398
Merge pull request #13698 from tygyh/AudioCommon/Remove-unused-qualifiers-and-make-variables-constant
...
AudioCommon: Remove unused qualifiers and make variables constant
2025-06-07 17:45:33 -05:00
Tillmann Karras
61e8fa060b
QtUtils/ImageConverter: simplify
2025-06-07 23:06:07 +01:00
Jordan Woyak
6da3f5f26a
InputCommon: Update to use SDL3 and bump the SDL submodule in Externals to release-3.2.16.
2025-06-07 16:27:54 -05:00
Jordan Woyak
5906512847
DolphinQt: Replace widespread SetQWidgetWindowDecorations calls with an event filter.
2025-06-07 16:15:34 -05:00
JMC47
52fcdde485
Merge pull request #13386 from iwubcode/resource_manager_system
...
VideoCommon: add resource manager, tracks resources to load assets in optimal way and manage memory
2025-06-07 15:51:34 -04:00
JMC47
5eb61024c6
Merge pull request #13740 from JoshuaVandaele/bsod-fix-i-hope
...
Host: Clean up device handle in all cases
2025-06-07 12:27:49 -04:00
Admiral H. Curtiss
a27b845514
Merge pull request #13710 from TryTwo/UI_Sliders_Update
...
Advanced Panel convert QSliders into ConfigSliders
2025-06-07 17:39:40 +02:00
Admiral H. Curtiss
1b1ca019a4
Merge pull request #13724 from SuperSamus/gamelist-properties-noduplicates
...
GameList: Prevent opening Properties multiple times for the same game
2025-06-07 17:24:50 +02:00
Joshua Vandaële
241834709b
Host: Clean up device handle
2025-06-07 16:55:45 +02:00
LillyJadeKatrin
c68549e9ef
AchievementManager - Load unknown games
...
Prior to this change, any game unrecognized by RetroAchievements would ultimately result in the game being "Closed" by AchievementManager. As a result, if any game was run while in this state without any other closing being done, AchievementManager would simply load it like a new game, despite memory already being accessed.
However, testing and documentation determined that the rcheevos client doesn't actually complain when it fails to hash a game; it just runs this as "Unidentified Game" with RA ID = 0. As such, this change utilizes that in AchievementManager to differentiate between no software running and unidentified software running.
As a result of this, now LoadGame needs to be called for every piece of runnable software, supported format or otherwise. If a supported format is not available, LoadGame can now be called with a nullptr to ensure that rcheevos still properly sets up an unidentified game.
2025-06-07 07:02:24 -04:00
LillyJadeKatrin
5545a386cf
AchievementManager - Fix Gamecube Bulk Copy
...
The memory copy algorithm (only needed for RetroAchievements devs) was broken for Gamecube as it assumed EXRAM size was zero when in reality it's using ARAM. For the time being, we do not need to use or access ARAM so instead this sets that value to zero for Gamecube titles.
2025-06-07 07:00:47 -04:00
JosJuice
185b080f03
Merge pull request #13142 from JosJuice/fifo-window-starting-stopping
...
DolphinQt: Call FIFOPlayerWindow::UpdateControls for Starting/Stopping
2025-06-07 10:43:19 +02:00
iwubcode
c3d3b81533
VideoCommon: remove 'GetByteSizeInMemory()' from custom asset, it is not needed anymore
2025-06-06 23:03:02 -05:00
iwubcode
774a84a953
VideoCommon: avoid race conditions with asset load/unload by moving the lock to the entire function, favor atomics for the memory/time getters
2025-06-06 23:03:02 -05:00
iwubcode
b3f50c969e
VideoCommon: rename m_bytes_loaded in asset library to bytes_loaded
2025-06-06 23:03:02 -05:00
iwubcode
3b83907b88
VideoCommon: update CustomAsset's load time to be before the load occurs (this prevents issues where the load time might be incorrectly inflated by long load operations)
...
Co-authored-by: Jordan Woyak <jordan.woyak@gmail.com>
2025-06-06 23:03:02 -05:00
iwubcode
d940d62cae
VideoCommon: watch texture pack folder for texture reloads (from dynamic input textures)
2025-06-06 23:03:02 -05:00
iwubcode
7afa9e6c6f
VideoCommon: use CustomResourceManager in the texture cache and hook up to our hires textures
2025-06-06 23:03:02 -05:00
iwubcode
12d178a8df
VideoCommon: initialize and shutdown the CustomResourceManager when the video thread initializes and shuts down
2025-06-06 23:03:02 -05:00
iwubcode
f910c1d934
Core: add CustomResourceManager to System
2025-06-06 23:03:02 -05:00
iwubcode
70abcb2030
VideoCommon: add resource manager and new asset loader; the resource manager uses a least recently used cache to determine which assets get priority for loading. Additionally, if the system is low on memory, assets will be purged with the less requested assets being the first to go. The loader is multithreaded now and loads assets as quickly as possible as long as memory is available
...
Co-authored-by: Jordan Woyak <jordan.woyak@gmail.com>
2025-06-06 23:03:02 -05:00
iwubcode
d8ea31ca46
VideoCommon: rename GameTextureAsset into TextureAsset and make it only contain CustomTextureData. Move validation and load logic to individual functions
2025-06-06 23:03:02 -05:00
iwubcode
2ae43324cb
VideoCommon: move AssetMap to a types header file, so it can be pulled in without the DirectFilesystemAssetLibrary dependencies, the header will be expanded later
2025-06-06 23:03:02 -05:00
iwubcode
7d59c2743d
Common: Add class 'FilesystemWatcher' that is used to watch paths and receive callbacks about filesystem level events for anything under that path
2025-06-06 23:03:02 -05:00
iwubcode
bafe78203d
VideoCommon: remove 'GetLastAssetWriteTime' and switch to a steady_clock for asset times
2025-06-06 23:03:02 -05:00
iwubcode
15f125ebee
VideoCommon: change asset loading to return the number of bytes loaded instead of a pass/fail
2025-06-06 23:03:02 -05:00
iwubcode
316740daed
VideoCommon: add 'Unload' functionality to CustomAsset
2025-06-06 23:03:02 -05:00
Dentomologist
2a7e8a4003
DolphinQt: Remove redundant window hints
...
Remove window hints clearing the flag Qt::WindowContextHelpButtonHint,
which is already off by default in Qt 6.
In Qt 5 this flag was set by default for QDialogs, and on Windows put a
? button in the corner of the title bar allowing users to activate Qt's
QWhatsThis help system for a given widget. Since we don't set that text
the ? button was useless and so we hid it manually.
2025-06-06 19:35:13 -07:00
iwubcode
9ec69b5925
VideoCommon: add a handle to custom asset, this is an id that is only relevant for a particular game session but is slightly faster as a numeric value for lookups than the traditional asset id
2025-06-06 19:20:25 -05:00
iwubcode
d7de49ccf6
Core / VideoCommon: Remove original custom asset loader
2025-06-06 19:20:25 -05:00
JMC47
5ec5db9240
Merge pull request #13392 from jordan-woyak/frame-pacing-accurate-time
...
CoreTiming: Add setting to pursue accurate overall emulation runtime
2025-06-06 19:17:44 -04:00
JMC47
974c56d3c5
Merge pull request #13731 from iwubcode/pixel_shader_gen_fix_complete_initialize
...
VideoCommon: ensure pixel shader gen input structure is completely initialized
2025-06-06 19:08:57 -04:00
JMC47
b1d114f7f7
Merge pull request #13730 from jordan-woyak/controllers-on-main-config-dialog
...
DolphinQt: Move "Controllers" to main settings window.
2025-06-06 18:54:12 -04:00
Jordan Woyak
a0611b512b
Merge pull request #13713 from Dentomologist/filesystemwidget_center_header_text
...
FilesystemWidget: Center header text
2025-06-05 14:34:36 -05:00
Admiral H. Curtiss
ea959f2651
DSP/Jit: Don't return to dispatcher if no exception was generated
2025-06-05 20:57:27 +02:00
Admiral H. Curtiss
a43fc68452
DSPAnalyzer: Set store instructions as potentially generating exceptions
2025-06-05 19:10:42 +02:00
iwubcode
ae26b38fc0
VideoCommon: fix pixel shader gen error about structure not being fully initialized
2025-06-05 01:37:45 -05:00
Jordan Woyak
b9bea58f0f
DolphinQt: Move "Controllers" to main settings window.
2025-06-04 19:33:01 -05:00
Martino Fontana
2de9122b5f
GameList: Prevent opening Properties multiple times for the same game
2025-06-04 23:11:09 +02:00
JMC47
8665b22822
Merge pull request #13651 from jordan-woyak/config-list
...
DolphinQt: Change Config QTabWidget into a QListWidget and QStackedWidget.
2025-06-04 16:01:51 -04:00
Dr. Dystopia
bae0e5f67a
DolphinNoGUI: Make override explicit
2025-06-04 21:49:29 +02:00
Dr. Dystopia
2ae928ca79
DolphinNoGUI: Make parameters constant
2025-06-04 21:49:15 +02:00
Dr. Dystopia
f04f659710
DolphinNoGUI: Replace C-style cast with `reinterpret_cast`
2025-06-04 21:49:01 +02:00
Dr. Dystopia
ec1d659363
DolphinNoGUI: Make classes final
2025-06-04 21:48:53 +02:00
Dr. Dystopia
c37933932d
DolphinNoGUI: Make variables constant
2025-06-04 21:48:40 +02:00
Dr. Dystopia
23af1e025b
DolphinNoGUI: Make function static
2025-06-04 21:30:59 +02:00
Dr. Dystopia
135b6840e5
DolphinNoGUI: Remove unused include directives
2025-06-04 21:30:59 +02:00
Dr. Dystopia
e3df00b7f4
DolphinNoGUI: Make variables constexpr
2025-06-04 21:30:59 +02:00
Dr. Dystopia
71da0f2d24
DolphinNoGUI: Replace deprecated `signal.h` header
2025-06-04 21:30:59 +02:00
JMC47
3f090dd474
Merge pull request #13681 from iwubcode/material_overhaul_custom_vertex
...
VideoCommon: move vertex shader gen logic to a 'process_vertex()' for use in future custom shaders
2025-06-04 15:27:47 -04:00
JMC47
8def02072b
Merge pull request #13379 from JoshuaVandaele/system-ng
...
Use minizip-ng in non-compatibility mode
2025-06-04 15:21:05 -04:00
Jordan Woyak
19a3f25a71
Merge pull request #13723 from Dentomologist/wavefile_add_prefix_to_member_variables
...
WaveFile: Add m_ prefix to member variables
2025-06-04 13:11:14 -05:00
Joshua Vandaële
4b65cc9a4c
fmt: Replace deprecated `fmt::localtime` usage with `Common::LocalTime`
2025-06-04 13:32:12 +02:00
Dentomologist
61ccdb0a3c
WaveFile: Add m_ prefix to member variables
2025-06-01 11:41:09 -07:00
Dr. Dystopia
8192d9d2a9
Make parameters, arguments etc. constant
2025-05-31 20:57:54 +02:00
Jordan Woyak
31d0756808
Config: Make s_callbacks_lock recursive to fix hardcore mode deadlock.
2025-05-30 17:33:01 -05:00
Dr. Dystopia
a6b04f53e0
AudioCommon: Remove unused qualifiers and make variables constant
2025-05-30 21:48:38 +02:00
Jordan Woyak
a8eafa4ccd
DolphinQt: Move the "Point (Passthrough)" "Enabled" checkbox below the mapping indicator.
2025-05-29 19:46:53 -05:00
CostPerUnit
a5b4a0b9e4
InputCommon/DolphinQt: Add advanced settings button for "Point" and "Point (Passthrough)" "Enabled" checkboxes.
2025-05-29 19:39:10 -05:00
LillyJadeKatrin
fd285f6348
AchievementManager - Minor cleanup
...
Deleting the unused m_game_data and m_is_game_loaded fields.
2025-05-29 18:35:30 -04:00
Dentomologist
3dc1605569
FilesystemWidget: Center header text
...
Center header text to match all the other headers.
2025-05-27 12:34:20 -07:00
TryTwo
a6a5e201b6
Qt Advanced Panel: Convert QSliders into ConfigSliders.
...
Part of the refactor into the config system.
2025-05-26 19:52:30 -07:00
Jordan Woyak
aafe961177
DolphinQt: Make GeckoCodeWidget default size not taller than it needs to be.
2025-05-26 20:58:48 -05:00
Jordan Woyak
eed7843d4a
DolphinQt: Add stretch to the end of the game config Info tab.
2025-05-26 20:58:48 -05:00
Jordan Woyak
1e4dfc0956
DolphinQt: Fix the WiiPane hinting a larger than required size.
2025-05-26 20:58:48 -05:00
Jordan Woyak
5bc661aeca
DolphinQt/AudioPane: Fix Volume QGroupBox title uglyness on Windows and inconsistent percent-sign spacing.
2025-05-26 20:58:48 -05:00
Jordan Woyak
fcff7a3a49
DolphinQt: Fix FilesystemWidget QTreeView visual style.
2025-05-26 20:58:48 -05:00
Jordan Woyak
543b85a451
DolphinQt: Make WrapInScrollArea and GetWrappedWidget less hacky.
2025-05-26 20:58:48 -05:00
Jordan Woyak
e796e82e8c
DolphinQt: Change game properties QTabWidget to QListWidget.
2025-05-26 20:58:48 -05:00
Jordan Woyak
2b9935e6f4
DolphinQt: Change main settings window QTabWidget into a QListWidget and QStackedWidget.
2025-05-26 20:58:48 -05:00
Admiral H. Curtiss
4e8a863d8b
Merge pull request #13709 from JosJuice/hide-header-bin
...
Hide DirectoryBlob header.bin files from game list
2025-05-26 19:41:07 +02:00
JosJuice
66f181a621
Hide DirectoryBlob header.bin files from game list
...
This is a continuation of 552b6da
. That commit hid sys/boot.bin, but not
disc/header.bin, which is only present for Wii games.
Fixes https://bugs.dolphin-emu.org/issues/13810 .
2025-05-25 20:37:52 +02:00
JosJuice
18a78a9bab
Merge pull request #13647 from jordan-woyak/sha1-avoid-memcpy
...
Crypto/SHA1: Re-add memcpy avoiding optimization to BlockContext::Update.
2025-05-25 12:40:43 +02:00
JosJuice
f99d3dbd5c
Android: Ask system for optimal audio buffer size and sample rate
...
This can reduce audio latency according to
https://developer.android.com/ndk/guides/audio/opensl/opensl-prog-notes#perform .
Previously we were using the hardcoded values of 48000 Hz and 256 frames
per buffer. The sample rate we use with this change is 48000 Hz on all
devices I'm aware of, but the buffer size does vary across devices.
Terminology note: The old code used the term "sample" to refer to what
Android refers to as a "frame". "Frame" is a clearer term to use for
this, so I've changed OpenSLESStream's terminology. One frame consists
of one sample per channel.
2025-05-25 11:59:33 +02:00
JosJuice
34e8fb068f
Android: Get rid of OpenSLESStream's global state
...
Not sure if we're ever going to want to have more than one of these at
the same time, but these global variables are a code smell nonetheless.
I'm also deleting the existing member variables because they were
unused.
2025-05-25 11:55:22 +02:00
Dr. Dystopia
7c237bbd7c
AudioCommon: Remove unused includes
2025-05-25 10:30:41 +02:00
JosJuice
776086fa1c
Merge pull request #13692 from jordan-woyak/work-queue-thread-command-queue
...
WorkQueueThread: Fix Cancel() race with internal command queue.
2025-05-24 16:26:10 +02:00
iwubcode
b23dddea4e
VideoCommon: move vertex shader gen logic to a 'process_vertex()' function, to eventually allow for custom shaders to override vertex logic
2025-05-24 01:27:58 -05:00
Sketch
35d70fd531
IOS/KD: Set Checksum when flushing NWC24Config
2025-05-23 18:01:06 -04:00
JosJuice
7c8d53a51d
Merge pull request #13699 from JosJuice/force-typo
...
DolphinQt: Fix verb agreement in Immediate XFB description
2025-05-22 23:22:53 +02:00
JosJuice
260f0225a4
DolphinQt: Don't translate Wii Speak OSD string
...
We have a general policy of not translating OSD strings due to the OSD
font not having good enough support for languages other than English.
2025-05-22 16:51:28 +02:00
JosJuice
98b0d1db05
DolphinQt: Fix verb agreement in Immediate XFB description
2025-05-22 16:48:10 +02:00
Joshua Vandaële
2ed5f16600
minizip-ng: Stop using compatibility mode
2025-05-22 12:51:55 +02:00
LillyJadeKatrin
c23b4e1020
RetroAchievements: Updated PatchAllowlistTest to generate new allowlist
...
Refactors the PatchAllowlistTest to streamline the experience for developers. Instead of a textual description of what needs to change in ApprovedInis.json for RetroAchievements compatibility, the test will now generate a replacement file and instruct the coder where to copy it in their local branch, and what to update APPROVED_LIST_HASH to. The result should be easier and more instructive for developers to make changes, while still maintaining that allowed codes cannot be added or modified without recompiling Dolphin.
As ApprovedInis.json no longer needs to be user-readable for this process, it no longer contains titles or pretty formatting and as such is updated in this commit, hash included.
2025-05-21 21:38:34 -04:00
Admiral H. Curtiss
f90508ff99
Merge pull request #13661 from jordan-woyak/info-first
...
DolphinQt: Make the Info tab first in the game properties dialog.
2025-05-21 20:43:51 +02:00
Admiral H. Curtiss
a6bc251677
Merge pull request #13693 from jordan-woyak/focus-render-window-on-click
...
DolphinQt/RenderWidget: Grab focus on mouse button press.
2025-05-21 20:28:58 +02:00
JMC47
a62449711f
Merge pull request #12769 from sepalani/wii-speak
...
IOS/USB: Emulate Wii Speak using cubeb
2025-05-21 13:54:56 -04:00
Jordan Woyak
9ba71448cc
WorkQueueThread: Fix Cancel() race with internal command queue.
2025-05-20 21:51:25 -05:00
Jordan Woyak
f1b7f8a72e
DolphinQt/RenderWidget: Grab focus on mouse button press.
2025-05-20 21:06:32 -05:00
JMC47
1dc4dc6b6d
Merge pull request #13675 from LillyJadeKatrin/retroachievements-close-deadlock
...
AchievementManager - LoadGameCallback
2025-05-20 11:54:31 -04:00
Jordan Woyak
faaf13eaad
Merge pull request #13562 from sanjay900/santroller-support
...
LibusbDevice: Send wakeup command to Santroller devices
2025-05-20 01:13:39 -05:00
LillyJadeKatrin
dac023af15
Resolve clang-tidy violation
2025-05-18 05:16:17 -04:00
Jordan Woyak
94888d250e
Merge pull request #13527 from tygyh/Replace-msg-with-structured-binding-VideoCommon/NetPlayChatUI
...
VideoCommon/NetPlayChatUI: Replace msg with structured binding
2025-05-17 17:09:13 -05:00
Jordan Woyak
dacb004516
Merge pull request #13190 from tygyh/Move-to-inner-scope-DolphinQT
...
DolphinQT: Move variables to inner scope
2025-05-17 16:52:25 -05:00
LillyJadeKatrin
b6803d00fe
Revert "RetroAchievements: Fix potential deadlock on shutdown."
...
This reverts commit 826f04d06c
.
2025-05-17 08:29:50 -04:00