Commit Graph

38616 Commits

Author SHA1 Message Date
Jordan Woyak
914f5c5621
Merge pull request #14547 from JosJuice/page-table-fastmem-setting-gui
Add page table fastmem to Debug/JIT settings
2026-04-19 11:21:26 -05:00
Dentomologist
e235cebb01
Merge pull request #14604 from cristian64/fusion_qgroupbox_style_qt660
DolphinQt: Use custom style for `QGroupBox` only with Qt 6.6.0+.
2026-04-18 14:17:35 -07:00
JosJuice
74bb80544e
Merge pull request #14565 from SuperSamus/cpp-argument-move-reference
Improve usage of std::move and const references parameters
2026-04-18 21:02:30 +02:00
cristian64
6059045c59 Core: Address -Wrange-loop-construct warning.
The warning can be seen since 1f72403ec7 when GCC 13.3.0 is used:

```counterexample
[1540/1898] Building CXX object Source/Core/VideoCommon/CMakeFiles/videocommon.dir/TextureCacheBase.cpp.o
/w/dolphin/Source/Core/VideoCommon/TextureCacheBase.cpp: In member function 'void TextureCacheBase::ApplyMaterialToCacheEntry(const VideoCommon::MaterialResource&, TCacheEntry*)':
/w/dolphin/Source/Core/VideoCommon/TextureCacheBase.cpp:3136:19: warning: loop variable 'texture' creates a copy from type 'const VideoCommon::MaterialResource::TextureLikeReference' [-Wrange-loop-construct]
 3136 |   for (const auto texture : material_data->GetTextures())
      |                   ^~~~~~~
/w/dolphin/Source/Core/VideoCommon/TextureCacheBase.cpp:3136:19: note: use reference type to prevent copying
 3136 |   for (const auto texture : material_data->GetTextures())
      |                   ^~~~~~~
      |                   &
```
2026-04-18 10:23:55 +01:00
cristian64
e6a11f667d DolphinQt: Use custom style for QGroupBox only with Qt 6.6.0+.
This is a follow-up to 3e788399b6 (#14153), where a custom
style for `QGroupBox` widgets was introduced when the Fusion style is
used.

However, it was overlooked that the custom QSS does not get along well
with Qt versions older than 6.6.0; on Windows, Qt 6.5.1 is used.

| With Qt 6.5.3 | With Qt 6.11.0 |
| ------------- | -------------- |
| <img alt="Dolphin with Qt 6.5.3" title="Dolphin with Qt 6.5.3" src="https://github.com/user-attachments/assets/9d341eef-0438-44c0-b341-8d0a53d9eb09" /> | <img alt="Dolphin with Qt 6.11.0" title="Dolphin with Qt 6.11.0" src="https://github.com/user-attachments/assets/1bc793d2-c958-413b-b99c-51d064104a75" /> |

Compile checks have been added now to only apply the custom style if
Qt 6.6.0 (or newer) is used.
2026-04-18 10:04:44 +01:00
JosJuice
4aaecbb148 Android: Add page table fastmem to Debug settings 2026-04-18 08:42:34 +02:00
JosJuice
97a9c46a9d DolphinQt: Add page table fastmem to JIT menu
This can be useful for experimenting with how a game behaves with and
without page table fastmem. As with everything in the JIT menu, this is
only available if Dolphin's debugger is enabled.

I didn't add this in 989a95a when I added the setting itself because we
were under a string freeze for Dolphin 2603a at the time.
2026-04-18 08:42:34 +02:00
Jordan Woyak
cc5601d7db
Merge pull request #14588 from jordan-woyak/resources-icon-assert
DolphinQt/Resources: ERROR_LOG instead of ASSERT when LoadNamedIcon fails.
2026-04-17 12:25:54 -05:00
JosJuice
6d43b55b27
Merge pull request #9952 from Dentomologist/wiimotereal_remove_unused_isready_functions
WiimoteReal: Remove unused IsReady and IsScannerReady functions
2026-04-17 19:10:09 +02:00
Martino Fontana
95dec13203 Improve usage of std::move and const references parameters
Accomplished using `run-clang-tidy` with `performance-move-const-arg,performance-unnecessary-value-param,modernize-pass-by-value`.

Changed arguments to const references, removed them where inappropriate (e.g. sink parameters). Same with std::move.

Manually reviewed each change to make sure that it makes sense, and do something more appropriate if possible.
2026-04-17 12:39:46 +02:00
OatmealDome
0cdb855434
Merge pull request #14567 from Simonx22/android/convert-wiimoteadapter-to-kotlin
Android: Convert WiimoteAdapter to Kotlin
2026-04-16 20:25:19 -04:00
OatmealDome
995b5b2833
Merge pull request #14568 from Simonx22/android/convert-gcadapter-to-kotlin
Android: Convert GCAdapter to Kotlin
2026-04-16 20:25:09 -04:00
Jordan Woyak
51f0ad0531
Merge pull request #14153 from cristian64/fusion_qgroupbox_style
DolphinQt: Custom style for `QGroupBox` in Fusion.
2026-04-16 15:32:24 -05:00
Dentomologist
7d207f7248 WiimoteReal: Remove unused IsReady and IsScannerReady functions
The only call of `IsScannerReady` was removed by
81be0001a9, and most of the `IsReady`
functions were only called by `IsScannerReady`.

The one exception was in `WiimoteScannerLinux`, which is now a private
function instead of inheriting from the one in `WiimoteScannerBackend`.
2026-04-15 14:25:50 -07:00
Jordan Woyak
81be0001a9 DolphinQt: Remove the "supported Bluetooth device could not be found" label from ControllersPane.
It just confuses DolphinBar users and isn't relevant these days now that Windows users do not use alternative Bluetooth stacks.
2026-04-14 13:25:44 -05:00
Jordan Woyak
46866f6fa2 DolphinQt/Resources: ERROR_LOG instead of ASSERT when LoadNamedIcon fails. 2026-04-13 20:22:31 -05:00
JMC47
6871428a81
Merge pull request #14587 from SuperSamus/arbitrary-mipmap-gpu-decoding-checkbox-fix
VideoCommon: Fixup #14336
2026-04-13 17:56:39 -04:00
Martino Fontana
8971b3b67a VideoCommon: Fixup #14336
whoops

Closes https://bugs.dolphin-emu.org/issues/14024
2026-04-13 22:47:52 +02:00
JMC47
c51d285264
Merge pull request #14560 from jordan-woyak/gbplayer-improvements
HW/GBPlayer: Improvements.
2026-04-13 14:45:16 -04:00
Jordan Woyak
b62bfe4b30
Merge pull request #14336 from SuperSamus/arbitrary-mipmap-disables-gpu-decoding
VideoCommon: Invert interaction between Arbitrary Mipmap Detection and GPU Texture Decoding (the former disables the latter)
2026-04-12 20:55:22 -05:00
Jordan Woyak
bfb121ef72 HW/GBACore: Remove RunFrame function. 2026-04-12 15:06:50 -05:00
Jordan Woyak
571d166c7c HW/GBPlayer: Improvements.
Wait for Control command to power up.
Removed audio resampling.
Better scanline IRQ timing.
Run mGBA based on clock cycles rather than frame times.
2026-04-12 15:06:50 -05:00
Jordan Woyak
cba86c42f5 HW/GBACore: Add GetCore getter. 2026-04-12 15:06:30 -05:00
Sintendo
219eab74f2 DSPCore: Remove m_init_hax member 2026-04-12 19:21:51 +02:00
Jordan Woyak
33f62b0f9f
Merge pull request #14500 from Sintendo/span2
Replace `const std::vector&` arguments with `std::span`
2026-04-11 14:55:41 -05:00
Jordan Woyak
23e8a3c569 Core/PowerPC: Minor code cleanup to CheckExternalExceptions function. 2026-04-10 14:57:52 -05:00
JosJuice
c0e0b685f3
Merge pull request #14493 from LillyJadeKatrin/retroachievements-resident-evil-fix
Remove AchievementManager ChangeDisc call from Eject
2026-04-09 17:22:52 +02:00
Simonx22
e982aeacad Android: Convert GCAdapter to Kotlin 2026-04-06 19:56:27 -04:00
Simonx22
662b1d74a8 Android: Convert WiimoteAdapter to Kotlin 2026-04-06 18:21:07 -04:00
Jordan Woyak
f8fead401c Mixer: Fix WAV file dumping. 2026-04-06 15:05:48 -05:00
Jordan Woyak
edcc46c123
Merge pull request #14559 from JosJuice/remove-presets
DolphinQt: Remove Presets from GameConfigEdit
2026-04-06 12:13:26 -05:00
JosJuice
5fcdb6f8f9 DolphinQt: Hide buttons for read-only game config
The Open in External Editor button makes editing a game INI file easy,
and the Refresh button is only useful if you edit the game INI. You're
not supposed to edit read-only game INIs, so let's not show these two
buttons for read-only game INIs.

I implemented this by hiding the buttons instead of not creating them in
the first place so we don't have to branch on whether the buttons exist
in GameConfigEdit::ConnectWidgets.
2026-04-06 18:02:24 +02:00
JosJuice
7e98245ca4 DolphinQt: Remove Presets from GameConfigEdit
Back in 2018, a Presets system was added to DolphinQt's GameConfigEdit.
Presets was a dropdown menu where you could select a particular setting
to add to your custom game INI. Only a small number of settings were
made available, with the intent that more would be added over time.

8 years later, the set of available settings hasn't been expanded at
all, and I don't know of anyone who uses these presets. On top of this,
we have now made good progress in exposing per-game settings
graphically. I think the Presets system is best off removed.

In place of the Presets menu, we now have "Refresh" and "Open in
External Editor" buttons. These more useful actions were previously
hidden away in the Presets menu.
2026-04-06 17:23:40 +02:00
JosJuice
85e2149907
Merge pull request #14551 from Dentomologist/breakpointwidget_fix_globally_disabled_icon
BreakpointWidget: Fix drawing of icon when breakpoints are disabled
2026-04-06 12:27:00 +02:00
Jordan Woyak
d3275b9ffe
Merge pull request #14490 from Simonx22/android/convert-gamepropertiesdialog-to-kotlin
Android: Convert GamePropertiesDialog to Kotlin
2026-04-05 18:41:12 -05:00
Jordan Woyak
3bc6815c8b
Merge pull request #14503 from Simonx22/android/convert-syncprogramsjobservice-to-kotlin
Android: Convert SyncProgramsJobService to Kotlin
2026-04-05 18:37:57 -05:00
Jordan Woyak
50fd4cca56
Merge pull request #14562 from JosJuice/gbplayer-pwm-u32
HW/GBPlayer: Use u32 in SampleToPWM
2026-04-05 18:36:44 -05:00
Jordan Woyak
798fff86fe HW/GBPlayer: Fix swapped L/R triggers. 2026-04-05 16:45:31 -05:00
JosJuice
b083ce5912 HW/GBPlayer: Use u32 in SampleToPWM
`value` contains 16 bits of data and `remainder` contains 11 bits of
data. When they're added together, we may end up with 17 bits of data,
so the result should be stored as u32 rather than u16.

This fixes `y` being set to 0 (minimum amplitude) when it should be set
to 32 (maximum amplitude).
2026-04-05 22:07:47 +02:00
Jordan Woyak
45358509a5
Merge pull request #14542 from jordan-woyak/gbacore-things
HW/GBACore: Improvements.
2026-04-05 12:28:47 -05:00
Jordan Woyak
0cc5c787cc
Merge pull request #14555 from jordan-woyak/gbplayer-gba-detection
HW/GBPlayer: Fix GBA cart detection in GBI.
2026-04-05 10:19:24 -05:00
Jordan Woyak
63df2584d6
Merge pull request #14552 from JosJuice/gbplayer-pwm
Improve Game Boy Player audio conversion to PWM
2026-04-05 10:19:14 -05:00
JosJuice
ef997d0d82 Improve Game Boy Player audio conversion to PWM
In the PWM audio we output, instead of each group of 512 bits consisting
of a run of ones followed by a run of zeroes, now each group of 32 bits
consists of a run of ones followed by a run of zeroes. This gets rid of
noise that was previously present.

Doing this for every group of 8 bits instead makes the Game Boy Player
Start-Up Disc not start correctly for some reason. Game Boy Interface
works fine, though.

I also made us not discard the bottom 7 bits of each PCM sample.
According to Extrems, a real GBA doesn't actually output that many bits,
but doing it in this way makes the code simpler anyway.
2026-04-05 09:17:28 +02:00
Jordan Woyak
1f0237942d
Merge pull request #14556 from JosJuice/page-table-hole-misaligned-test
PageTableHostMappingTest: Fix copypaste error in misaligned+hole test
2026-04-04 22:25:29 -05:00
Dentomologist
69a5e516ed BreakpointWidget: Fix drawing of icon when breakpoints are disabled
Fix incorrect scaling of the gap drawn inside enabled breakpoints in
BreakpointWidget when breakpoints are globally disabled and the font
size is changed from the default.

As the font size increased the gap would become larger and its center
would "migrate" downward and rightward until the gap stopped being
visible at all.

Additionally, at small font sizes integer truncation issues could result
in the gap being offset towards the top left.
2026-04-04 19:07:58 -07:00
Tillmann Karras
f06aef4f83 Improve NAND import progress dialog
Now with cancel button and an actual progress bar. For simplicity, we do
two passes on the progress bar, one for loading the NAND into memory and
one for extracting it. The user directory is likely on an SSD, making
the extraction pass invisibly fast.
2026-04-04 22:02:45 +01:00
JosJuice
4f0219d08c PageTableHostMappingTest: Fix copypaste error in misaligned+hole test
Because of this mistake, HoleInMaskMisalignedPageTable was testing the
same thing as MisalignedPageTable, which wasn't the intent.
2026-04-04 22:56:00 +02:00
JosJuice
3fe5df474b PageTableHostMappingTest: Fix alignment for misaligned+hole test
Mistakenly, MISALIGNED_HOLE_MASK_PAGE_TABLE_BASE was aligned and
MISALIGNED_HOLE_MASK_PAGE_TABLE_BASE_ALIGNED was misaligned. It should
be the other way around.

These variables are unused due to a separate mistake which is corrected
in the next commit.
2026-04-04 22:55:23 +02:00
Jordan Woyak
2b6ca92146
Merge pull request #14554 from akechi-haruka/silence-ra-leaderboards
Retroachievements: Hide leaderboard OSD messages if the leaderboard tracker is disabled
2026-04-04 14:32:20 -05:00
Jordan Woyak
415f8c1f8a HW/GBPlayer: Fix GBA cart detection in GBI. 2026-04-04 12:30:11 -05:00