Compare commits

...

797 Commits
2503 ... master

Author SHA1 Message Date
Jordan Woyak
a5e85caf0a
Merge pull request #13736 from jordan-woyak/main-config-gfx
DolphinQt: Move graphics config to main Settings window.
2025-07-03 01:31:01 -05:00
Admiral H. Curtiss
b03a7821f2
Merge pull request #13778 from matheuswillder/GameINI-Disable-Dual-Core-for-Rally-Championship
GameINI: Disable Dual Core for Rally Championship
2025-07-01 23:09:07 +02:00
Admiral H. Curtiss
a84fa387de
Merge pull request #13785 from Dentomologist/memorywidget_fix_hex_input_validation_errors
MemoryWidget: Fix hex input validation errors
2025-07-01 22:54:37 +02:00
Admiral H. Curtiss
74eeeebfde
Merge pull request #13788 from jordan-woyak/post-proc-config-window-adjust-size
DolphinQt: Adjust PostProcessingConfigWindow size on creation.
2025-07-01 22:51:30 +02:00
Jordan Woyak
4126b4e904 DolphinQt: Adjust PostProcessingConfigWindow size on creation. 2025-07-01 15:26:13 -05:00
JMC47
2871fe08c9
Merge pull request #13782 from noahpistilli/wii_no_pad
IOS/KD: Pad Wii Numbers to 16 digits
2025-07-01 14:52:41 -04:00
Dentomologist
0093ed1ac8 MemoryWidget: Fix "Hex Byte String" validation failures
Fix the input string failing to validate when the "Hex Byte
String" input type is selected and either the user adds a 0x prefix or
the "Hex" box is checked (or both).

The latter failure was particularly troublesome because when "Hex Byte
String" is selected the "Hex" checkbox is disabled. Users would have to
switch to a data type that enabled the box, toggle it, then switch back
to "Hex Byte String" to fix it.

Fix these errors by not adding a prefix when the "Hex" box is checked,
and removing the "0x" prefix from the user's input if present.
2025-06-30 11:34:20 -07:00
Dentomologist
8f4a0b0e77 MemoryWidget: Allow 0x prefix when Hex box is checked.
Fix validation failing when the user has checked the Hex box and also
includes a "0x" or "-0x" prefix in their input.

Previously an extra "0x" would be inserted, causing the user's input of
"0x13" to become "0x0x13" which would then fail to validate.
2025-06-30 00:12:48 -07:00
JMC47
9a0d4501f8
Merge pull request #13751 from jordan-woyak/btreal-improvements
Bluetooth Passthrough Improvements
2025-06-29 18:00:02 -04:00
JMC47
626315d50a
Merge pull request #13750 from TryTwo/PR_Symbol_Loading
PPCSymbols: Restructure loading on boot and add a mutex to prevent crashes.
2025-06-29 15:44:52 -04:00
Jordan Woyak
936887838a BTReal: Don't falsely increase a controller's ACL packet number buffer size. WARN_LOG if the size is smaller than that of the original BT module. 2025-06-28 18:54:21 -05:00
Jordan Woyak
7fe4a6e4f3 LibUSBBluetoothAdapter: Change the request type of our generated HCI commands from LIBUSB_RECIPIENT_INTERFACE to LIBUSB_RECIPIENT_DEVICE.
This changes the value from 0x21 to 0x20 which now matches the value that Wii software generates.
2025-06-28 18:54:21 -05:00
Jordan Woyak
25583658d2 State: Increase STATE_VERSION. 2025-06-28 18:54:21 -05:00
Jordan Woyak
0e25979449 BTReal: Attempt to configure HCI_SERVICE_TYPE_GUARANTEED on all connections for improved performance with certain adapters. 2025-06-28 18:54:21 -05:00
Jordan Woyak
350ec54779 BTReal: Improvements:
Separate LibUSB logic into LibUSBBluetoothAdapter class.
Submit transfers on thread with proper timing.
Throttle before ACL input for reduced input latency.
Immediately send IPC replies for outgoing data.
Continuously submit libusb transfers to fill HCI/ACL input queues.
Simplify endpoint handling and state saving.
Other cleanups.
2025-06-28 18:54:16 -05:00
Jordan Woyak
541dbdfead IOS: Move DoStateForMessage from BTEmu to BTBase. 2025-06-28 18:45:52 -05:00
Jordan Woyak
b3e349b4df
Merge pull request #13772 from rastshawn/use-btdevice-selection
BTReal: bugfix - BT passthrough uses selected device rather than first compatible device in list
2025-06-28 18:45:05 -05:00
Noah Pistilli
f8e22f448d IOS/KD: Pad Wii Numbers to 16 digits 2025-06-28 19:22:14 -04:00
JosJuice
8d7bb0a44a Translation resources sync with Transifex 2025-06-28 22:45:47 +02:00
Jordan Woyak
3a32013740
Merge pull request #13773 from JosJuice/i18n-2025-06-22
i18n: Add comments
2025-06-28 15:13:03 -05:00
JosJuice
bc1d8ffcbb i18n: Add comments 2025-06-28 21:41:44 +02:00
Matheus Willder
48a209d76e
GameINI: Disable Dual Core for Rally Championship
When selecting cars, this game crashes with GFX FIFO: Unknown Opcode. This is solved by disabling Dual Core, as the error message suggests.

There is no information about this on the Wiki, just a link to a gameplay on YouTube.

This is my first PR here and one of the first ones on GitHub. Due to personal issues I don't have much free time to dedicate to this, but I'm doing my best to get everything right.
2025-06-27 20:47:28 -03:00
TryTwo
9395238159 PPCSymbolDB: Add a mutex to prevent m_functions from being accessed by two different threads on boot.
On boot should be the only time this happens.
2025-06-25 12:11:46 -07:00
TryTwo
fe121e4c6e PPCSymbolDB: Move loading map on boot logic from boot.cpp into PPCSymbolDB, as it will be needing a mutex.
Cleanup loading code and reduce amount of signals.

On boot. allow previously loaded map to be kept, if its filename matches. Useful for restarting a game with a large symbol map.
2025-06-25 12:01:16 -07:00
JMC47
43aa7e9b96
Merge pull request #13694 from jordan-woyak/sdl3
Update to SDL3
2025-06-24 18:59:48 -04:00
JMC47
43c156084b
Merge pull request #13759 from jordan-woyak/calibrate-autocomplete
DolphinQt: Make Calibration autocomplete when data is "sensible" and stick is returned to neutral position.
2025-06-24 18:22:48 -04:00
Shawn Rast
71fa08813a BT passthrough uses selected device rather than first alphabetical compatible device 2025-06-24 15:39:46 -05:00
JMC47
e9b57393a6
Merge pull request #13766 from JosJuice/powerpc-missing-updates
PowerPC: Add missing SDRUpdated/MSRUpdated calls
2025-06-24 16:36:49 -04:00
JMC47
97febd9477
Merge pull request #13763 from Dentomologist/mainwindow_show_hardcore_mode_error_for_recording_playback
MainWindow: Show hardcore mode error for recording playback
2025-06-24 16:35:56 -04:00
JMC47
0946814711
Merge pull request #13761 from Dentomologist/qt_use_nonautodismissiblemenu_in_more_places
Qt: Use NonAutodismissibleMenu in more places
2025-06-24 16:35:40 -04:00
JMC47
3627cfb7b1
Merge pull request #13758 from Dentomologist/threadwidget_fix_line_edit_margins
ThreadWidget: Fix line edit margins
2025-06-24 16:35:12 -04:00
JMC47
2e8da29ca2
Merge pull request #13756 from Tilka/price_is_right
GameSettings: some updates
2025-06-24 16:34:47 -04:00
JMC47
f7fa59e05d
Merge pull request #13754 from SuperSamus/nsmbw-pal-remove-speedhack
GameINI: Remove NSMBW PAL speed hack
2025-06-24 16:34:27 -04:00
Jordan Woyak
fbced5d0f5
Merge pull request #13774 from Tilka/cp_cleanup
VideoCommon: remove unused struct fields
2025-06-24 14:41:25 -05:00
Tillmann Karras
59d2611a94 VideoCommon: remove unused struct fields 2025-06-24 19:38:45 +01:00
Jordan Woyak
6a0963908d DolphinQt: Make Calibration autocomplete when data is "sensible" and stick is returned to neutral position. 2025-06-24 02:18:25 -05:00
JMC47
fa9f71e482
Merge pull request #13769 from JosJuice/merge-dbat-mappings
Memmap: Optimize UpdateLogicalMemory by merging mappings
2025-06-22 15:29:51 -04:00
TryTwo
5836ca133c PPCSymbolDB: Move function for finding file path to PPCSymbolDB, so MenuBar doesn't have to randomly access boot.cpp to get the file path. 2025-06-22 11:03:03 -07:00
JMC47
c2aaca2b16
Merge pull request #13765 from TryTwo/CodeWidget_clear_unused
CodeWidget: Clear calls/callers if no symbol exists.
2025-06-22 01:05:59 -04:00
JMC47
19f3b7e61f
Merge pull request #13691 from TryTwo/PR_Notes
Debugger Add note-type symbols .
2025-06-22 01:05:42 -04:00
JosJuice
ac84ea17a6 Memmap: Optimize UpdateLogicalMemory by merging mappings
Instead of creating many 128 KiB mappings, we can create a few large
mappings. On my Windows PC, this speeds up GameCube (FakeVMEM) game boot
times by about 200 ms and Wii game boot times by about 60 ms. Loading
savestates is also faster, by about 45 ms for GameCube (FakeVMEM) games
and 5 ms for Wii games. The impact is presumably smaller on other OSes
because Windows is particularly slow at creating mappings.
2025-06-21 20:54:05 +02:00
TryTwo
10c3b0b4e4 CodeWidget: Clear calls and callers box if there is no symbol, otherwise outdated data will persist. 2025-06-20 10:55:11 -07:00
JosJuice
e002fcdf2f PowerPC: Use SPR_LR constant in an additional location 2025-06-20 10:42:47 +02:00
JosJuice
8c643693a9 PowerPC: Add missing SDRUpdated/MSRUpdated calls 2025-06-20 10:42:43 +02:00
TryTwo
c9b815526c Debugger CodeViewWidget: Add context options for making and managing Notes. Add popup dialog for editing functions and notes. 2025-06-19 18:00:10 -07:00
TryTwo
78065359bb Debugger CodeWidget : Add search box for notes. 2025-06-19 17:55:45 -07:00
TryTwo
040d9a4336 Debugger symbols: Add new symbol type: Notes.. Notes are for naming single instructions, or small groups of instructions.
Notes are separate from function symbols, and can be searched separately.
Unlike functions, notes of different length can overlap each other.
In the instruction window, a note will always display over the function symbol.
2025-06-19 17:55:35 -07:00
Dentomologist
e21ae90073 MainWindow: Show hardcore mode error for recording playback
Show an error message when attempting to play an input recording while
RetroAchievements hardcore mode is active, instead of silently doing
nothing.
2025-06-17 12:21:39 -07:00
Jordan Woyak
413b7475ec
Merge pull request #13762 from Dentomologist/dolphinqt_add_vcxproj_clinclude
DolphinQt: Add DolphinQt.vcxproj ClInclude line
2025-06-17 13:06:04 -05:00
Dentomologist
e8c9c7a403 DolphinQt: Add DolphinQt.vcxproj ClInclude line
Add a missing ClInclude line in DolphinQt.vcxproj for
NonAutodismissibleMenu.h. Missing the ClInclude doesn't break
compilation, but prevents various IntelliSense features in Visual
Studio from working properly with the file.
2025-06-16 23:11:11 -07:00
Dentomologist
c488545091 GameListModel: Update tag list and sorting immediately
Emit the dataChanged signal when adding or removing tags from a game.
This both updates the contents of the game's Tags column immediately
(instead of having to wait for the context menu to be closed), and
updates the sorting if games are being sorted by the Tags column.
2025-06-16 22:58:30 -07:00
Dentomologist
2fd74990b7 Qt: Use NonAutodismissibleMenu in more places
Use NonAutodismissibleMenu for MenuBar's Options, JIT, and
Tools->"Connect Wii Remotes" menus, as well as for the Tags menu in
GameList's context menu.

NonAutodismissibleMenu allows users to check or uncheck multiple
checkable menu items without closing the menu between selections.
2025-06-16 22:56:26 -07:00
Dentomologist
ab25632992 ThreadWidget: Don't set fixed width on QLineEdits
Fix clipping of QLineEdit contents by having them take up half the grid
width instead of trying to match the contents width in an unreliable
manner.
2025-06-16 22:33:20 -07:00
Dentomologist
6a0d8ca3f8 MenuBar: Rename menu variable
The Tools menu has a number of submenus, so rename menu to
connect_wii_remotes_menu for clarity.
2025-06-16 21:06:55 -07:00
Tillmann Karras
ca004e35f7 GameSettings: add performance hack for Baby And Me
The patch is not enabled by default.
2025-06-16 20:08:36 +01:00
Tillmann Karras
c39b067479 GameSettings: don't force EFB-to-tex for Fireblade
This ini is from the initial mega commit. The game seems to work fine
without it.
2025-06-16 19:48:31 +01:00
Tillmann Karras
58b86074ae GameSettings: fix purple flickering in Trivial Pursuit - Bet You Know It 2025-06-16 19:48:31 +01:00
Tillmann Karras
cc5933a6ce GameSettings: fix purple screen in The Price Is Right 2025-06-16 19:48:31 +01:00
Jordan Woyak
28a6eb26cc
Merge pull request #13703 from jordan-woyak/map-and-calibrate
DolphinQt/InputCommon: Make the "Calibrate" button also map inputs.
2025-06-15 15:45:04 -05:00
Jordan Woyak
3a94289ad6
Merge pull request #13744 from JoshuaVandaele/windows-specific-getdevicename
Host: Implement a Windows-only implementation of `GetDeviceNameFromVIDPID`
2025-06-15 15:44:31 -05:00
Jordan Woyak
2fb66e9708
Merge pull request #12938 from tygyh/Split-IsTranslatedRAMAddress
Core/PowerPC: Split 'IsRAMAddress' method into 'IsEffectiveRAMAddress' and 'IsPhysicalRAMAddress' methods
2025-06-14 17:12:24 -05:00
Jordan Woyak
83beebaf8b DolphinQt/InputCommon: Move some calibration logic to InputCommon and make the "Calibrate" button also map inputs. 2025-06-14 16:29:25 -05:00
Dr. Dystopia
6591fa3751 Core/PowerPC: Split 'IsRAMAddress' method into 'IsEffectiveRAMAddress' and 'IsPhysicalRAMAddress' methods 2025-06-14 23:29:03 +02:00
Jordan Woyak
0780458069 InputCommon: Make InputDetector::Start take a span instead of a vector. 2025-06-14 16:28:09 -05:00
Jordan Woyak
11c3f7ea8d InputCommon: Fix occasional misidentification of analog input detection. 2025-06-14 16:28:09 -05:00
Jordan Woyak
344080b7a9 DolphinQt: Fix ControllersPane group box spacing. 2025-06-14 16:26:09 -05:00
Jordan Woyak
89b8edea03 DolphinQt: Move graphics config to main Settings window. 2025-06-14 16:26:09 -05:00
Jordan Woyak
2047eaf1d8
Merge pull request #13671 from tygyh/Source/Remove-redundant-lambda-parameter-lists
Source: Remove redundant lambda parameter lists
2025-06-14 03:49:47 -05:00
Dr. Dystopia
ca8f9b672b Source: Remove redundant lambda parameter lists 2025-06-14 10:19:31 +02:00
JMC47
95f6c76713
Merge pull request #13696 from fothugiyo/gecko-codes
Tales of Symphonia AR and Gecko Codes
2025-06-13 17:32:24 -04:00
Martino Fontana
46ce355d93 GameINI: Remove NSMBW PAL speed hack 2025-06-13 22:27:21 +02:00
Joshua Vandaële
d93245cc7a
Host: Implement a Windows-only implementation of GetDeviceNameFromVIDPID 2025-06-13 17:46:53 +02:00
JMC47
a163877413
Merge pull request #13746 from LillyJadeKatrin/retroachievements-hardcore-changed
MainWindow - Avoid excessive emulation state changes
2025-06-10 17:32:04 -04:00
LillyJadeKatrin
417badc55c MainWindow - Avoid excessive emulation state changes
Updates the Hardcore Changed callback to only signal EmulationStateChanged if the new Hardcore Mode setting is different from the previous one.
2025-06-10 16:03:14 -04:00
JMC47
5800b874d7
Merge pull request #13741 from Tilka/bean_menu
GameSettings: add bean menu patch for A Boy and His Blob
2025-06-09 00:12:52 -04:00
JMC47
1526c06133
Merge pull request #13658 from jordan-woyak/vk-present-done-race
Vulkan: Eliminate m_last_present_done flag.
2025-06-09 00:10:31 -04:00
JMC47
7ad85e875d
Merge pull request #13738 from Tilka/convert_banner
QtUtils/ImageConverter: simplify
2025-06-09 00:10:03 -04:00
JMC47
42d5f2b705
Merge pull request #13702 from CostPerUnit/master
MappingWidget: Add Advanced Configuration Button to Point And Point Passthrough "Enable" boxes
2025-06-09 00:09:35 -04:00
JMC47
5064b615ba
Merge pull request #13737 from LillyJadeKatrin/retroachievements-gamecube-bulk-fix
AchievementManager - Fix Gamecube Bulk Copy
2025-06-08 13:08:02 -04:00
JMC47
33b529a510
Merge pull request #13719 from LillyJadeKatrin/retroachievements-wii-menu-fix
AchievementManager - Block Wii Menu Exploits
2025-06-08 13:04:27 -04:00
JMC47
8c3ca46988
Merge pull request #13676 from LillyJadeKatrin/retroachievements-allowlist-test-improvements
RetroAchievements: Updated PatchAllowlistTest to generate new allowlist
2025-06-08 12:56:19 -04:00
Admiral H. Curtiss
944dd711b7
Merge pull request #13743 from JosJuice/audiocommon-missing-includes
AudioCommon: Re-add missing includes
2025-06-08 13:41:41 +02:00
JosJuice
1b7d42f775 AudioCommon: Re-add missing includes
7c237bb ("AudioCommon: Remove unused includes") removed some includes
that were in fact in use.
2025-06-08 11:35:02 +02:00
JMC47
24b0bf01d5
Merge pull request #12836 from JosJuice/opensles-buffer-size
Android: Ask system for optimal audio buffer size and sample rate
2025-06-07 23:07:37 -04:00
Tilka
19fbbf0dba
Merge pull request #13727 from JoshuaVandaele/fmt-11.2.0-localtime-deprec
fmt: Replace deprecated `fmt::localtime` usage with `Common::LocalTime`
2025-06-08 04:04:37 +01:00
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
ec52a74967
Merge pull request #13023 from tygyh/Replace-ties-with-structured-bindings
UnitTests: Replace ties with structured bindings
2025-06-07 17:50:34 -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
Tillmann Karras
b6ff1b5573 GameSettings: add bean menu patch for A Boy and His Blob
The bean menu in this game does not react when the analog control stick
is moved perfectly to the right (0 degress). This happens when the
analog stick is mapped to digital inputs.

Currently, Dolphin contains a hardcoded controller hack to work around
this issue. With this patch, it should no longer be needed; see #13177.
2025-06-07 23:01:17 +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
8113399b68 Externals: add watcher, a library used to watch a filesystem location for changes 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
Jordan Woyak
903eafcf65
Merge pull request #13714 from Dentomologist/dolphinqt_remove_redundant_window_hints
DolphinQt: Remove redundant window hints
2025-06-06 22:13:01 -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
Jordan Woyak
977f2da6a7
Merge pull request #13735 from JMC47/triopatch
GamePatch: Disney Trio of Destruction Pagetable Speedhack.
2025-06-06 17:54:36 -05: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
JMC47
be3d48ec5f GamePatch: Disney Trio of Destruction Pagetable Speedhack. 2025-06-06 17:17:11 -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
JMC47
fadc2ac223
Merge pull request #13732 from AdmiralCurtiss/dsp-jit-exceptions
DSP LLE Recompiler: Fix exception handling after #10766
2025-06-05 15:17:30 -04: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
JosJuice
b7fb2fa737
Merge pull request #13728 from JosJuice/android-uses-microphone
Android: Add android.hardware.microphone to manifest
2025-06-04 23:37:17 +02: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
JosJuice
5d2518d490 Android: Add android.hardware.microphone to manifest
Google Play is now blocking distribution for Android TV unless we
explicitly set the android.hardware.microphone hardware feature as
android:required="false", because it's inferring
android.hardware.microphone from the android.permission.RECORD_AUDIO we
added for Wii Speak emulation, with android:required defaulting to true.
I was under the belief that setting android:required="false" on
android.permission.RECORD_AUDIO would solve this, but looking closer at
the definition of <uses-permission>, it doesn't actually support
android:required attributes, so that presumably has no effect.
2025-06-04 21:30:51 +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
JMC47
84f2af73e6
Merge pull request #13649 from SuperSamus/scooby-doo-night-of-100-texture-caches
GameINI: Set texture cache accuracy for Scooby-Doo! Night of 100 Frights PAL
2025-06-04 15:17:10 -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
OatmealDome
5309c440d2
Merge branch 'release-prep-2506' 2025-06-04 04:09:08 -04:00
OatmealDome
aed420c95d
ScmRevGen: Bump version to 2506 2025-06-04 00:10:41 -04:00
JosJuice
1c9389a1fb Translation resources sync with Transifex 2025-06-03 09:05:37 +02:00
JosJuice
58a70db588
Merge pull request #13718 from jordan-woyak/hardcore-deadlock
Config: Make s_callbacks_lock recursive to fix hardcore mode deadlock.
2025-06-02 11:55:40 +02:00
Dentomologist
61ccdb0a3c WaveFile: Add m_ prefix to member variables 2025-06-01 11:41:09 -07:00
JMC47
88122ae956
Merge pull request #13715 from icup321/master
GameINI: Disable Dual Core for more games
2025-06-01 02:57:17 -04:00
JMC47
e2d8e39489
Merge pull request #13722 from Tilka/dokapon
GameSettings: auto-disable immediate XFB for Dokapon Kingdom
2025-06-01 02:39:19 -04:00
Tillmann Karras
2849173984 GameSettings: auto-disable immediate XFB for Dokapon Kingdom
This avoids flickering throughout the game.
2025-06-01 03:06:35 +01: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
icup321
2604d73733 GameINI: Disable Dual Core for more games
Disable Dual Core for more games that are known to crash/freeze.
2025-05-28 06:14:35 -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
JMC47
53b54406bd
Merge pull request #13690 from icup321/master
GameINI: Disable icache for The Ant Bully [Wii]
2025-05-26 21:12:17 -04:00
OatmealDome
f5d7b1fb4c
Merge pull request #13644 from dreamsyntax/gup-disable-dualcore
GameINI: Disable Dual Core for Shadow the Hedgehog
2025-05-26 13:58:54 -04: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
JMC47
66b8fa03cb
Merge pull request #13705 from noahpistilli/fix-corrupt-msg
IOS/KD: Set Checksum when flushing NWC24Config
2025-05-23 22:45:11 -04:00
Sketch
35d70fd531 IOS/KD: Set Checksum when flushing NWC24Config 2025-05-23 18:01:06 -04:00
JosJuice
da8610e76f Translation resources sync with Transifex 2025-05-22 23:25:50 +02: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
Jordan Woyak
97d27130ed
Merge pull request #13700 from JosJuice/tr-wii-speak-osd
DolphinQt: Don't translate Wii Speak OSD string
2025-05-22 12:40:09 -05: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
fothugiyo
67f73d95e3
Tales of Symphonia AR and Gecko Codes
Prior codes were reorganized and new codes added. All codes have been thoroughly tested and are ensured to work on a vanilla NTSC .iso
2025-05-22 01:47:34 -06: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
JMC47
69af10ef86
Merge pull request #13663 from dreamsyntax/spiderman-heuristic
GameINI: Spider-Man SuggestedAspectRatio to 4:3
2025-05-21 17:34:09 -04:00
dreamsyntax
f96e667a5f
GameINI: Spider-Man SuggestedAspectRatio to 4:3 2025-05-21 14:05:19 -07: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
icup321
d22702a16f Disable icache for The Ant Bully [Wii]
This fixes an invalid read error that would happen specifically in the Wii version.
2025-05-20 03:36:00 -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
2e22a3cf42
Merge pull request #13672 from tygyh/UnitTests/Remove-redundant-template-type-specifiers
UnitTests: Remove redundant template type specifers
2025-05-18 02:12:45 -05:00
Jordan Woyak
88005deaeb
Merge pull request #13668 from tygyh/UnitTests/Core/Make-parameters-constant
UnitTests/Core: Make parameters constant
2025-05-18 02:12:32 -05:00
JMC47
f59708a26c
Merge pull request #13656 from icup321/master
GameINI: Disable Dual Core for several games
2025-05-18 02:13:18 -04:00
Jordan Woyak
62a926a0f5
Merge pull request #13515 from tygyh/Remove-redundant-parentheses
Tools/symbolicate-ppc: Remove redundant parentheses
2025-05-17 18:01:17 -05: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
LillyJadeKatrin
137e50dc25 AchievementManager: Remove CloseGame from LoadGameCallback
This was causing deadlocks when a game didn't load (including if RetroAchievements does not yet support it) because it was attempting to close the queue the the callback was currently running on, forcing LoadGameCallback to wait for LoadGameCallback to finish. However, it appears that recent changes to the queue have independently resolved the reason CloseGame was being called here in the first place.
2025-05-17 08:29:34 -04:00
Martino Fontana
8b228503d9 GameINI: Set texture cache accuracy for Scooby-Doo! Night of 100 Frights PAL 2025-05-17 13:35:17 +02:00
Jordan Woyak
88389146d3
Merge pull request #13662 from Dentomologist/wiimotecontrollerswidget_scan_for_bluetooth_adapters_on_separate_thread
WiimoteControllersWidget: Fix UI hang when opening Controllers window
2025-05-16 19:43:35 -05:00
Jordan Woyak
6c5b35f92c
Merge pull request #13554 from tygyh/DSPSpy-Apply-style-alignment-refactorings
DSPSpy: Apply style-alignment refactorings
2025-05-16 14:55:11 -05:00
Jordan Woyak
7804c16dbb
Merge pull request #13531 from tygyh/DiscIO-Make-functions-constant
DiscIO: Make functions constant
2025-05-16 14:49:05 -05:00
Jordan Woyak
3b3bf6a04c
Merge pull request #13459 from tygyh/Make-parameters-constants-DolphinQt-Netplay
DolphinQt/NetPlay: Make variables constant
2025-05-16 14:29:44 -05:00
Dr. Dystopia
2102108b1a UnitTests: Remove redundant template type specifers 2025-05-16 21:09:52 +02:00
JMC47
f1ffcf2b00
Merge pull request #13654 from JosJuice/android-clear-without-dismiss
Android: Don't dismiss AdvancedMappingDialog when pressing Clear
2025-05-16 14:33:49 -04:00
Jordan Woyak
404a7c75b2
Merge pull request #13666 from tygyh/UnitTests/PowerPC-Use-constant-functions-variables-parameters
UnitTests/PowerPC: Use constant functions, variables and parameters
2025-05-16 13:01:07 -05:00
Jordan Woyak
3fecce8723
Merge pull request #13669 from tygyh/UnitTests/Common/Use-std-size-for-size-calculation
UnitTests/Common: Use `std::size` for size calculation
2025-05-16 12:59:52 -05:00
Jordan Woyak
e4f71d2513
Merge pull request #13670 from tygyh/UnitTests/Core/Remove-unused-includes
UnitTests/Core: Remove unused includes
2025-05-16 12:58:47 -05:00
Dr. Dystopia
9dfcbcecff DiscIO: Make functions constant 2025-05-16 19:11:39 +02:00
Dr. Dystopia
bc1af564e2 UnitTests/Core: Remove unused includes 2025-05-16 15:31:31 +02:00
Dr. Dystopia
7de18efc93 UnitTests/Core: Make parameters constant 2025-05-16 15:29:31 +02:00
Dr. Dystopia
762555c984 UnitTests/Common: Use std::size for size calculation 2025-05-16 14:59:55 +02:00
Dr. Dystopia
58c79bc5ed UnitTests/PowerPC: Use constant functions, variables and parameters 2025-05-16 08:28:06 +02:00
Dentomologist
ffd46cd10c WiimoteControllersWidget: Fix UI hang on opening
Fix the UI hanging for several seconds when opening the Controllers
window.

Move the scan for Bluetooth adapters onto a separate thread so the Host
thread doesn't have to wait for it.

Only automatically scan for adapters once, when opening the Controllers
window for the first time. Add a Refresh button to let the user refresh
the adapter list afterward.
2025-05-15 20:36:21 -07:00
JMC47
e83f9fb721
Merge pull request #13664 from Tilka/cabela
GameSettings: disable efb2tex for two Cabela's games
2025-05-15 18:15:09 -04:00
Tillmann Karras
6315527d21 GameSettings: disable efb2tex for two Cabela's games 2025-05-15 22:45:36 +01:00
Jordan Woyak
fc833f845c
Merge pull request #13660 from jordan-woyak/consistent-icon-text
DolphinQt: Add utility function for creating label text with a standard icon.
2025-05-15 13:24:18 -05:00
Jordan Woyak
17eb1b1a34 DolphinQt/Mapping: Replace Motion Input "WARNING: " text with a warning icon. 2025-05-15 10:58:43 -05:00
Jordan Woyak
afb27952ee DolphinQt: Make the Info tab first in the game properties dialog. 2025-05-15 02:13:48 -05:00
Jordan Woyak
a45d00d84d DolphinQt: Add utility function for creating label text with a standard icon. 2025-05-15 01:49:38 -05:00
Jordan Woyak
c211efd84a
Merge pull request #13603 from tygyh/FifoPlayer-Make-functions-static
FifoPlayer: Make functions static
2025-05-14 23:01:34 -05:00
JMC47
5a355083b4
Merge pull request #13659 from jordan-woyak/ra-deadlock-fix
RetroAchievements: Fix potential deadlock on shutdown.
2025-05-14 17:14:47 -04:00
Jordan Woyak
826f04d06c RetroAchievements: Fix potential deadlock on shutdown. 2025-05-14 01:10:53 -05:00
Jordan Woyak
1554e4ab6c Vulkan: Eliminate m_last_present_done flag. 2025-05-13 20:13:18 -05:00
Jordan Woyak
059282df6f
Merge pull request #13657 from SuperSamus/jimmy-neutron-boy-genius-efb-access
GameINI: Enable EFB Access for Jimmy Neutron Boy Genius
2025-05-13 16:36:57 -05:00
icup321
a19b1070a0 Disable Dual Core for several games
Disable Dual Core for several games with known FIFO errors

fix formatting
2025-05-13 17:34:35 -04:00
Martino Fontana
79a90b1f42 GameINI: Enable EFB Access for Jimmy Neutron Boy Genius 2025-05-13 22:57:11 +02:00
JMC47
57dce8bd7c
Merge pull request #13650 from JosJuice/stswx-uncached
PowerPC: Correctly handle stswi/stswx to uncached memory
2025-05-12 19:19:52 -04:00
JMC47
c260082cd6
Merge pull request #13636 from icup321/master
GameINI: Disable Dual Core for Piglet's Big Game
2025-05-12 17:54:39 -04:00
JosJuice
eeae30e2bb Android: Don't dismiss AdvancedMappingDialog when pressing Clear
If you already have a mapping set in the advanced mapping dialog and
want to change it, the easiest way to do it is to press Clear and then
select the new mapping from the list. But pressing Clear causes the
dialog to close, forcing you to open it again, which is inconvenient.
This commit makes it so the Clear button doesn't close the dialog.
2025-05-12 21:40:55 +02:00
JMC47
cf3702cbc8
Merge pull request #13046 from SuperSamus/vi-overclock
Add VBI Frequency Override
2025-05-12 13:36:55 -04:00
Martino Fontana
c720211542 VideoCommon: Limit maximum denominator for MPEG4
It happened to be under the limit normally, but now that the VBI rate can be changed, that's no longer the case.
2025-05-12 18:54:42 +02:00
Martino Fontana
832570c658 Core: Add VBI Frequency Override
This feature allows overriding the frequency of the Vertical Blank Interrupt. For many games, this means that their gameplay speed will change without affecting audio, which would be useful by itself (e.g. grinding in RPGs).

However, there are games that use delta time for their game logic, which allows them to be played at >60 FPS at the same gameplay speed!

Some games aren't dynamic though, and require a patch to adjust their game speed variable.
2025-05-12 18:54:36 +02:00
JMC47
f19a33340a
Merge pull request #13631 from LillyJadeKatrin/retroachievements-mem2
AchievementManager: MEM2 Support
2025-05-10 14:56:14 -04:00
JosJuice
2b376a92ae PowerPC: Correctly handle stswi/stswx to uncached memory
On real hardware, stswi and stswx don't trigger any of the special
behavior for uncached unaligned writes that was implemented in 543ed8a.
This is confirmed by a hwtest (a new commit in
https://github.com/dolphin-emu/hwtests/pull/42).

This change fixes Dolphin's stswi and stswx implementations so they stop
triggering the special behavior, bringing them back to the behavior they
had before 543ed8a. No games are known to be affected, but Extrems has
reported that it affects homebrew they've made.
2025-05-10 19:47:15 +02:00
Dr. Dystopia
cb30862cfb DolphinQT/Netplay: Make variables constant 2025-05-10 13:05:54 +02:00
Dr. Dystopia
c5f01902de DSPSpy: Make RealDSP final and make overide explicit 2025-05-10 13:02:55 +02:00
JMC47
b2e5d6df25
Merge pull request #13350 from iwubcode/custom_shader_overhaul_vertex_pos
VideoCommon: move transform matrices to accessible functions in VertexShaderGen
2025-05-10 01:20:28 -04:00
Jordan Woyak
bb77d61967 Crypto/SHA1: Re-add memcpy avoiding optimization to BlockContext::Update. 2025-05-09 20:59:17 -05:00
JMC47
0351fd56b1
Merge pull request #10766 from xperia64/dsp_format_fun
DSP accelerator improvements
2025-05-09 19:04:23 -04:00
JMC47
463bd86145
Merge pull request #13641 from jordan-woyak/sha1-fix
Crypto/SHA1: Fix past-the-last-element std::array access and modernize code.
2025-05-09 18:56:20 -04:00
JMC47
7113bafd94
Merge pull request #13586 from Tilka/spr_disasm
GekkoDisassembler: standardize SPR names and add missing ones
2025-05-09 18:55:53 -04:00
JMC47
b18bca11e8
Merge pull request #13440 from jordan-woyak/si-dev-change-tweak
HW/SI: Don't require waiting a second before disconnecting an SIDevice.
2025-05-09 18:55:18 -04:00
OatmealDome
7f44509a70
Merge pull request #13646 from OatmealDome/flatpak-flags
Flatpak: Don't use CFLAGS and CXXFLAGS provided by the SDK
2025-05-09 12:42:53 -04:00
OatmealDome
463686b766 Flatpak: Don't use CFLAGS and CXXFLAGS provided by the SDK 2025-05-09 00:49:00 -04:00
dreamsyntax
4a35a8c516
GameINI: Disable Dual Core for Shadow the Hedgehog 2025-05-08 12:50:39 -07:00
Admiral H. Curtiss
37f97cabb4
Merge pull request #13639 from Tilka/move
AchievementManager: fix -Wpessimizing-move warning
2025-05-08 21:40:06 +02:00
Admiral H. Curtiss
083ffd5fdb
Merge pull request #13643 from parona-source/no-retroachievments-buildfix
Remove filename option from stubbed AchievementManager::LoadGame
2025-05-08 21:37:11 +02:00
JMC47
721175b0d2
Merge pull request #13642 from sepalani/hid-log
IOS/USB: Change HIDv4.cpp LogLevel to avoid INTRMSG killing performance
2025-05-08 15:19:51 -04:00
Alfred Wingate
85bbaf6563
Remove filename option from stubbed AchievementManager::LoadGame
Fixes: c796691d00
Signed-off-by: Alfred Wingate <parona@protonmail.com>
2025-05-08 22:05:42 +03:00
Sepalani
17e57f550c IOS/USB: Change HIDv4.cpp LogLevel to avoid INTRMSG killing performance
This message can be sent a lot when polling inputs from a keyboard. HIDv5.cpp doesn't log INTRMSG in such a way. If needed, log messages can be added into specific devices instead.
2025-05-08 22:14:01 +04:00
JosJuice
27d0e0c8fe
Merge pull request #13640 from jordan-woyak/info-tab-triforce-widget-fix
DolphinQt: Fix unnecessarily created Triforce widget in game properties.
2025-05-08 19:37:10 +02:00
Jordan Woyak
a9ab0e979e Crypto/SHA1: Fix past-the-last-element std::array access and modernize code. 2025-05-08 03:03:59 -05:00
Jordan Woyak
d922ba31f7 DolphinQt: Fix unnecessarily created Triforce widget in game properties Info tab. 2025-05-08 01:58:20 -05:00
Tillmann Karras
a8fb4153d7 AchievementManager: fix -Wpessimizing-move warning 2025-05-08 00:15:17 +01:00
Jordan Woyak
8a9a082c69
Merge pull request #13551 from tygyh/Clang-format-Fix-invalid-settings
Clang-format: Fix invalid settings
2025-05-07 16:18:11 -05:00
Jordan Woyak
8822479477
Merge pull request #13572 from tygyh/UnitTests-Remove-redundant-virtual-specifier
UnitTests: Remove redundant `virtual` specifier
2025-05-07 16:06:25 -05:00
Jordan Woyak
01bb9d1f8c
Merge pull request #13584 from tygyh/Core/HW/SI-Make-variables-constant
Core/HW/SI: Make variables constant
2025-05-07 16:06:00 -05:00
Jordan Woyak
a52e8ff9bd
Merge pull request #13585 from tygyh/Core/HW/GCMemcard-Make-variables-constant
Core/HW/GCMemcard: Make variables constant
2025-05-07 16:04:44 -05:00
Jordan Woyak
d74d1d42d6
Merge pull request #13511 from tygyh/Use-range-based-loops-Core-VideoBackends
Core/VideoBackends: Use range-based loops
2025-05-07 15:53:18 -05:00
Jordan Woyak
921ffe153d
Merge pull request #13542 from tygyh/DiscIO-Pass-parameters-by-constant-reference
DiscIO: Pass parameters by constant reference
2025-05-07 15:50:11 -05:00
Jordan Woyak
1c54583ae7
Merge pull request #13569 from tygyh/UnitTests-Use-constexpr
UnitTests: Use `constexpr`
2025-05-07 15:48:26 -05:00
Jordan Woyak
b8ca3c8d15
Merge pull request #13575 from tygyh/DolphinTool-Make-variables-constant
DolphinTool: Make variables constant
2025-05-07 15:47:14 -05:00
Jordan Woyak
c4616226ab
Merge pull request #13589 from tygyh/Core/HW/EXI-Remove-redundant-inline-specifiers
Core/HW/EXI: Remove redundant `inline` specifiers
2025-05-07 15:44:53 -05:00
Jordan Woyak
3e09d10123
Merge pull request #13571 from tygyh/VertexLoaderTest-Replace-std-tie-with-structured-bindings
VertexLoaderTest: Replace `std::tie` with structured bindings
2025-05-07 15:42:33 -05:00
JosJuice
5af5c83428
Merge pull request #13559 from tygyh/Android-Apply-style-alignment-refactorings
Android: Apply style alignment refactorings
2025-05-07 22:37:09 +02:00
JMC47
684db094c6
Merge pull request #13638 from fireworksordie/patch-1
GameINI: fix screen tearing in PoP:SoT FMVs
2025-05-07 13:59:26 -04:00
Sepalani
eff334524a HotkeyManager: Add HK_TOGGLE_WII_SPEAK_MUTE 2025-05-07 21:27:50 +04:00
fireworksordie
7bb78a1d6e
GameINI: fix screen tearing in PoP:SoT FMVs
Prince of Persia: Sands of Time exhibits screen tearing on FMVs in Dolphin. Tested the setting (suggested by Amphitryon) on PC and Android and can confirm the tearing previously seen is gone with EarlyXFBOutput disabled.
2025-05-07 12:08:19 -05:00
Sepalani
4efbd35a5e IOS/USB: Implement Wii Speak SAMPLER_FREQ register properly
Fix the default sampling rate which should be 16KHz
2025-05-07 20:33:22 +04:00
Sepalani
74a875e9d6 IOS/USB: Implement a bare-bones Wii Speak loudness level
Add a volume modifier to the UI which relies on gain.
2025-05-07 20:33:22 +04:00
Sepalani
1f0ff42aa0 IOS/USB: Implement Wii Speak REQUEST_SET_INTERFACE command
Based on LibusbDevice::SubmitTransfer code
2025-05-07 20:33:22 +04:00
Sepalani
61ab0faab8 Config: Rename MAIN_WII_SPEAK_CONNECTED to MAIN_WII_SPEAK_MUTED 2025-05-07 20:33:22 +04:00
Sepalani
aea5054509 CubebUtils: Add COM helper class 2025-05-07 20:33:22 +04:00
Sepalani
407218a8b4 IOS/USB: Report Wii Speak packet size properly 2025-05-07 20:33:22 +04:00
Sepalani
dbc09bfb0d Android: Add emulated Wii Speak 2025-05-07 20:33:22 +04:00
Sepalani
a85ffc116e IOS/USB: Only sample Wii Speak data when necessary
Skip data when HLE Wii Speak is not connected

Lock microphone buffer less frequently
2025-05-07 20:33:22 +04:00
Sepalani
f5dd80bb5b IOS/USB: Try to fix the Wii Speak Channel record/playback feature
1. Fix Wii Speak SAMPLER_MUTE register:
The register should be 12 (i.e. 0x0c) instead of 0xc0.

2. Fix Wii Speak buffer memcpy size parameter:
It seems to fix random echoes and reduce noises when nobody is speaking.

3. Change the isochronous transfer timing:
It is based on empirical testing.
2025-05-07 20:33:22 +04:00
Sepalani
6a36930c74 IOS/USB: Add more logs to the Wii Speak code 2025-05-07 20:33:22 +04:00
Sepalani
1ac40f25a2 IOS/USB: Emulate Wii Speak using cubeb
Based on @noahpistilli (Sketch) PR:
https://github.com/dolphin-emu/dolphin/pull/12567

Fixed the Windows support and the heisenbug caused by uninitialized
members.

Config system integration finalized.
2025-05-07 20:33:22 +04:00
Sketch
451e36defc IOS/USB: Emulate Wii Speak (OpenAL)
Credits to @degasus and shuffle2 (godisgovernment):
https://github.com/degasus/dolphin/tree/wiispeak
2025-05-07 17:45:59 +04:00
icup321
69f561e76c GameINI: Disable Dual Core for Piglet's Big Game
Disable Dual Core for Piglet's Big Game and Winnie's Rumbly Tumbly Adventure to prevent game freezes.
2025-05-07 03:33:36 -04:00
LillyJadeKatrin
85bb066cb0 AchievementManager: update dev memory clone for Wii
The clone of system memory used by AchievementManager during achievement development for the sake of thread decoupling was only copying MEM1; this grabs MEM2 as well if it exists.
2025-05-06 16:59:27 -04:00
LillyJadeKatrin
599f28045e AchievementManager: verify MEM2 if it exists
Adds MEM2 to MemoryVerifier.
2025-05-06 16:59:27 -04:00
JMC47
c9bdda63dc
Merge pull request #13342 from Tilka/fifo_reset
VideoCommon: reset some CP registers during PI_FIFO_RESET
2025-05-05 20:20:40 -04:00
Jordan Woyak
210b5cbf66
Merge pull request #13633 from jordan-woyak/libstdcpp-buildfix
DolphinQt/TAS: Use non-default std::atomic struct constructor to fix build with libstdc++ 15.
2025-05-05 18:31:28 -05:00
Jordan Woyak
2f1d8272a8 DolphinQt/TAS: Use non-default std::atomic struct constructor to fix build with libstdc++ 15. 2025-05-05 16:29:15 -05:00
Tillmann Karras
6f25e20c6a VideoCommon: reset some CP registers during PI_FIFO_RESET
This fixes the shutdown error in SpongeBob Globs of Doom.
2025-05-05 21:18:37 +01:00
Jordan Woyak
6e22e145a0 HW/SI: Don't require waiting a second before disconnecting an SIDevice. 2025-05-04 15:00:48 -05:00
Admiral H. Curtiss
d2db9d9590
Merge pull request #13608 from jordan-woyak/async-work-thread
Common: Add AsyncWorkThread.
2025-05-04 18:45:14 +02:00
Admiral H. Curtiss
2a3580fda5
Merge pull request #13482 from jordan-woyak/string-util-concepts
StringUtil: Use concepts instead of enable_if.
2025-05-04 17:47:37 +02:00
Admiral H. Curtiss
380a9291ad
Merge pull request #13602 from jordan-woyak/move-only-function
Common: Add MoveOnlyFunction.
2025-05-04 17:28:06 +02:00
Admiral H. Curtiss
15ad6e0426
Merge pull request #13380 from JoshuaVandaele/system-zlib
CMake: Allow shared zlib
2025-05-04 17:27:50 +02:00
Joshua Vandaële
72fd344dca
Allow shared zlib
This is a followup to #13089
2025-05-04 16:50:25 +02:00
Admiral H. Curtiss
3a27646263
Merge pull request #13473 from Tilka/moki_moki
GameSettings: fix startup hang in Moki Moki
2025-05-04 16:44:21 +02:00
Admiral H. Curtiss
fc0601e55f
Merge pull request #13628 from jordan-woyak/unique-buffer-texture-data
Common and VideoCommon: Change texture data from std::vector to Common::UniqueBuffer.
2025-05-04 14:03:10 +02:00
JMC47
1f5abfe365
Merge pull request #13630 from LillyJadeKatrin/retroachievements-wii-deadlock-fix
AchievementManager: Fix unknown hash achievements deadlock
2025-05-03 23:40:52 -04:00
LillyJadeKatrin
6b52336bf7 AchievementManager: Fix unknown hash achievements deadlock
Within AchievementManager, CloseGame being called when LoadGame fails was causing m_queue.Cancel to be called within a lock when Cancel itself locks until it is empty, causing a deadlock. This is resolved by cancelling the queues outside of the lock when they are safe to wait for resolutions.
2025-05-03 22:51:07 -04:00
Jordan Woyak
5a80105555 Common and VideoCommon: Change texture data from std::vector to Common::UniqueBuffer. 2025-05-03 18:32:30 -05:00
iwubcode
e80ed595ac VideoCommon: move position/normal matrices to be gettable by function in VertexShaderGen 2025-05-03 16:51:34 -05:00
Admiral H. Curtiss
95ab6925b1
Merge pull request #13032 from parona-source/missing-cmake-include
Add missing cmake includes and remove unused cmake includes
2025-05-03 22:16:00 +02:00
Alfred Wingate
a3c7423273
Remove unused cmake includes
Signed-off-by: Alfred Wingate <parona@protonmail.com>
2025-05-03 22:34:07 +03:00
Admiral H. Curtiss
e0d6ab73b8
Merge pull request #13508 from cristian64/non-autodismissable_menus
DolphinQt: Use non-autodismissable menus in menu bar.
2025-05-03 21:24:09 +02:00
cristian64
2eeb2fd2b9
DolphinQt: Use non-autodismissable menus in menu bar.
A new class that derives from `QMenu` has been introduced. Menus of this
`NonAutodismissibleMenu` type will stay visible when a _checkable_
action is triggered.

This is convenient in menus that feature a series of check boxes that
toggle visibility of third components (e.g. the **List Columns** menu),
allowing the user to toggle several actions at once.

For now, the new type is used in the top menu bar.
2025-05-03 20:29:21 +02:00
Admiral H. Curtiss
db425ef3a1
Merge pull request #13445 from icup321/master
GameSettings: Various Nick games fixes
2025-05-03 20:16:13 +02:00
Admiral H. Curtiss
7774dccc9d
Merge pull request #13509 from Dentomologist/gamelist_fix_right_doubleclick_starting_games
GameList: Ignore non-left double-clicks
2025-05-03 20:15:11 +02:00
JMC47
78465693ad
Merge pull request #13607 from LillyJadeKatrin/retroachievements-wiiware
RetroAchievements - Wii and WiiWare Support
2025-05-03 13:21:00 -04:00
Admiral H. Curtiss
c574b651aa
Merge pull request #13621 from JosJuice/android-remove-loaddefaultsettings
Android: Remove unused onSettingsFileNotFound and friends
2025-05-03 18:37:51 +02:00
Admiral H. Curtiss
dcc09906e5
Merge pull request #13622 from TryTwo/Settings_Bugfix
Settings: Bugfix. GFX settings getting set without user input
2025-05-03 18:36:36 +02:00
Admiral H. Curtiss
ffd78711be
Merge pull request #13618 from jordan-woyak/cubeb-logging
AudioCommon/CubebUtils: Fix logged file name.
2025-05-03 18:33:06 +02:00
Jordan Woyak
a736d2ed5f
Merge pull request #13625 from Dentomologist/sdl_verify_touchpad_present_before_getting_input
SDL: Check if touchpad exists before getting input
2025-05-02 21:08:49 -05:00
TryTwo
c1d0a49f35 Settings: Bugfix. Fix some combo boxes setting a value without user input. Prevents initial Load from calling the connection to save value. 2025-05-02 18:21:45 -07:00
TryTwo
1aabae49ed Settings: Bugfix. Remove Aspect Ratio combobox signal so it doesn't trigger a settings changed save. 2025-05-02 18:21:18 -07:00
Dentomologist
77744169be SDL: Check if touchpad exists before getting input
Verify a touchpad is present before polling it for input. Without this
check the Debug log is spammed with the message "error: Parameter
'touchpad' is invalid" if you have a controller without a touchpad.

One would think every touchpad supports at least 1 finger, but in case
there's some weird edge case check the finger count to be sure.
2025-05-02 17:21:42 -07:00
Jordan Woyak
63572f15fc
Merge pull request #13620 from JosJuice/logmanager-cleanup
LogManager: Stop using manual memory management
2025-05-02 15:24:34 -05:00
Jordan Woyak
ec29d120b5 CoreTiming: Add a setting to pursue accurate emulation time. 2025-05-02 15:23:43 -05:00
JosJuice
c8be819711 LogManager: Stop using manual memory management
This fixes a memory leak that would occur when the Android frontend
calls LogManager::Init more than once in order to reload settings.

Note that the log window listener is now owned by LogManager instead of
by the frontend, making it consistent with the other log listeners.
2025-05-02 21:14:32 +02:00
JosJuice
6515807685
Merge pull request #13278 from JoshuaVandaele/saves-import
Implement importing multiple saves from an export folder
2025-05-02 15:40:27 +02:00
JosJuice
6129953666 Android: Remove unused onSettingsFileNotFound and friends
Old cruft from when the Android code was loading INI files manually.
We don't have any handling for failing to load settings anymore.

This change also updates related comments to reflect how things actually
work nowadays.
2025-05-02 14:25:01 +02:00
Jordan Woyak
06826319c7 AudioCommon/CubebUtils: Fix logged file name. 2025-05-02 02:54:15 -05:00
JosJuice
b566e81644
Merge pull request #13596 from JosJuice/config-callback-locking
Config: Add locking for config changed callbacks
2025-05-02 08:49:22 +02:00
JosJuice
58d305f75c
Merge pull request #13616 from parona-source/musl-cstdint
UICommon: Include implicit header
2025-05-02 08:03:01 +02:00
Jordan Woyak
4e736d60db Core and AudioCommon: Use AsyncWorkThread. 2025-05-01 22:55:23 -05:00
Jordan Woyak
be4b0af971 Common: Add AsyncWorkThread. 2025-05-01 22:54:40 -05:00
JMC47
0066119e41
Merge pull request #13617 from OatmealDome/coretiming-include
CoreTiming: Add missing SystemTimers.h include
2025-05-01 21:33:22 -04:00
JMC47
fcb4b04168
Merge pull request #13613 from JosJuice/android-ldrtl-list-item-mapping-id
Android: Fix incorrect ID in layout-ldrtl/list_item_mapping.xml
2025-05-01 21:33:09 -04:00
JMC47
da4f643b9f
Merge pull request #13611 from jordan-woyak/work-queue-thread-sp
Core and Vulkan: Change WorkQueueThread to WorkQueueThreadSP in a few places.
2025-05-01 21:32:16 -04:00
JMC47
1963305bea
Merge pull request #13605 from JosJuice/android-cinit-native
Android: Don't call NativeLibrary methods during class init
2025-05-01 21:31:21 -04:00
JMC47
757e6aba46
Merge pull request #13597 from JosJuice/hide-boot-bin
Hide DirectoryBlob boot.bin files from game list
2025-05-01 21:30:10 -04:00
JMC47
42f656bf0f
Merge pull request #13595 from JosJuice/android-analytics-non-main
Android: Allow reporting start to analytics for non-main activity
2025-05-01 21:29:50 -04:00
JMC47
2b568566ac
Merge pull request #13535 from m-brodschi/mihaib/fix-shutdown-crash
Core, VideoCommon: Fix crash at shutdown due to destructor order
2025-05-01 21:29:02 -04:00
JMC47
539a3ed021
Merge pull request #13464 from jordan-woyak/dont-toggle-skip-frames
DolphinQt: Don't auto toggle GFX_HACK_SKIP_DUPLICATE_XFBS.
2025-05-01 21:28:13 -04:00
JMC47
7222779e21
Merge pull request #13448 from Dentomologist/fix_unresponsive_hotkeys_when_moving_overlay_during_framestep
DolphinQt: Fix unresponsive hotkeys when clicking overlay during a framestep
2025-05-01 21:27:30 -04:00
JMC47
1bd2570d97
Merge pull request #13239 from JosJuice/jitarm64-rlwimix-imm-mask
JitArm64: Use AArch64 imm masks in rlwimix slow case
2025-05-01 21:26:27 -04:00
OatmealDome
0bd7cc64c9 CoreTiming: Add missing SystemTimers.h include 2025-05-01 19:13:02 -04:00
Alfred Wingate
fbb54604b6
UICommon: Include implicit header
The header isn't implicitly included on musl.

Bug: https://bugs.gentoo.org/952952
Signed-off-by: Alfred Wingate <parona@protonmail.com>
2025-05-02 02:03:41 +03:00
Jordan Woyak
20874124c2 StringUtil: Use concepts instead of enable_if. 2025-05-01 16:30:37 -05:00
Jordan Woyak
e4525ca7ee
Merge pull request #13499 from jordan-woyak/frame-pacing-better-math
CoreTiming: Cleanups to avoid drift from cumulative rounding errors.
2025-05-01 15:58:33 -05:00
Dr. Dystopia
5ee520133d Clang-format: Fix invalid settings 2025-05-01 22:05:07 +02:00
JMC47
6c9138e5a6
Merge pull request #13592 from SuperSamus/kfp-single-core
GameINI: Enable Single Core for Kung Fu Panda and Shrek Forever After
2025-05-01 15:30:15 -04:00
Alfred Wingate
5cfe3760a5
Include missing cmake includes
Otherwise it depends on other externals getting used and including them
before.

Signed-off-by: Alfred Wingate <parona@protonmail.com>
2025-05-01 19:52:53 +03:00
Dr. Dystopia
f240e20e3f Make overriding explicit and remove redundant virtual specifiers on overriding destructors - Core & UnitTests 2025-05-01 15:00:37 +02:00
Dr. Dystopia
5c0cf0788f VideoCommon/NetPlayChatUI: Replace msg with structured binding 2025-05-01 14:11:55 +02:00
LillyJadeKatrin
1633011d2a Add achievement support for Wii and WiiWare
Add a method to detect console ID from an input file and instruct rcheevos to load as Gamecube or Wii accordingly. Also, hash .wads upon loading, to support achievements on WiiWare titles.
2025-05-01 07:54:12 -04:00
LillyJadeKatrin
c796691d00 Remove filename option from achievement manager load
The only option that was currently using this was a pass-by-executable that wouldn't hash correctly anyways.
2025-05-01 07:54:12 -04:00
JosJuice
d64c20a67c Android: Fix incorrect ID in layout-ldrtl/list_item_mapping.xml
Probably a copy-paste error from layout-ldrtl/list_item_setting.xml.
This error made it so a long setting name could overlap with the
checkbox next to it if Dolphin was running with right-to-left layout.

The incorrect ID was apparently also causing the app:lintVitalRelease
build task to fail. I guess we're not running that build task, because I
only heard of this from someone building Dolphin locally.
2025-05-01 11:57:07 +02:00
JosJuice
0ce929220d
Merge pull request #13553 from tygyh/Core/PowerPC/JitArm64-Replace-zeroes-in-boolean-context-with-false
JitArm64: Replace zeroes in boolean context with `false`
2025-05-01 10:11:44 +02:00
LillyJadeKatrin
999c7aed98 Don't close achievements on games that don't hash
Minor bugfix necessary for future development; issue brought on by a conflict resolving wrong.
2025-05-01 00:17:20 -04:00
Jordan Woyak
0987c03693
Merge pull request #13453 from tygyh/Use-underlying-method
DolphinQt/FIFO/FIFOAnalyzer: Use Common::ToUnderlying
2025-04-30 22:18:02 -05:00
Jordan Woyak
e3f7486ca7
Merge pull request #13567 from tygyh/UnitTests-Rename-lambda-parameters-which-hide-previous-declarations
UnitTests: Rename lambda parameters which hide previous declarations
2025-04-30 22:07:35 -05:00
Admiral H. Curtiss
2e20e24136
Merge pull request #13587 from jordan-woyak/manual-value
Common: Move some duplicate container element construction logic into a ManuallyConstructedValue template.
2025-04-30 23:45:33 +02:00
Admiral H. Curtiss
cae82b62f8
Merge pull request #13610 from AdmiralCurtiss/zstd-asm-fix
Externals/zstd: Disable ASM for MSVC compiler in CMake
2025-04-30 23:31:55 +02:00
Jordan Woyak
ec940e6a2e VideoBackends/Vulkan: Use WorkQueueThreadSP for swap commands. 2025-04-30 16:29:35 -05:00
Jordan Woyak
753fe5bed1 Core: Use WorkQueueThreadSP in NetKDRequestDevice. 2025-04-30 16:29:21 -05:00
Jordan Woyak
c14101534f Core: Use WorkQueueThreadSP in NetIPTopDevice. 2025-04-30 16:28:57 -05:00
Jordan Woyak
bdb4fd8376 Core: Use WorkQueueThreadSP in DVDThread. 2025-04-30 16:17:21 -05:00
Jordan Woyak
8e64a02a42
Merge pull request #13579 from jordan-woyak/work-queue-thread-cleanup
WorkQueueThread: Implement in terms of WaitableSPSCQueue. Add unit tests.
2025-04-30 16:10:28 -05:00
Jordan Woyak
43e4e8f182
Merge pull request #13581 from jordan-woyak/dvd-WorkQueueThread
DVDThread: Implement with WorkQueueThread and WaitableSPSCQueue.
2025-04-30 16:09:36 -05:00
Jordan Woyak
b5dd545b8e
Merge pull request #13504 from Filoppi/patch-23
Improve gamma corrected resampling by acknowledging the perceptual luminance
2025-04-30 16:09:08 -05:00
Filippo Tarpini
2049896cab Improve gamma corrected resampling by acknowledging the perceptual luminance 2025-04-30 15:22:06 -05:00
Jordan Woyak
4899913446 Common: Move some duplicate container element construction logic into a ManuallyConstructedValue template. 2025-04-30 14:56:07 -05:00
Jordan Woyak
e8b63fe090 UnitTests: Add tests for WorkQueueThread. 2025-04-30 14:31:51 -05:00
Jordan Woyak
a149b9d62d WorkQueueThread: Cleanups. Implement in terms of WaitableSPSCQueue. Add single producer WorkQueueThreadSP. 2025-04-30 14:31:51 -05:00
Admiral H. Curtiss
2d9a61bd0e
Externals/zstd: Disable ASM for MSVC compiler in CMake
Results in a "MSVC_RUNTIME_LIBRARY value 'MultiThreadedDLL' not known for this ASM compiler" otherwise, and zstd doesn't support the relevant ASM code for MSVC anyway.
2025-04-30 20:32:01 +02:00
Admiral H. Curtiss
852bd6df1a
Merge pull request #13598 from AdmiralCurtiss/zstd157
Externals: Update zstd from 1.4.4 to 1.5.7
2025-04-30 19:06:52 +02:00
LillyJadeKatrin
7e2565ae49 Update rcheevos submodule 2025-04-30 08:16:06 -04:00
OatmealDome
0b0151770a
Merge pull request #13436 from JoshuaVandaele/clang-format-19
Update clang-format to version 19
2025-04-30 01:17:31 -04:00
JMC47
23a5ea3504
Merge pull request #13604 from fox8091/nstrike
GameINI: Disable Dual Core for NERF N-Strike
2025-04-29 14:56:32 -04:00
JMC47
b49711fefb
Merge pull request #13600 from JoshuaVandaele/nixfix
CMake: Explicitely link udev if LIBUDEV_FOUND is set
2025-04-29 14:55:50 -04:00
Martino Fontana
d591e3b4e3 GameINI: Enable Single Core for Kung Fu Panda and Shrek Forever After
These games (both are made with the Lux Engine) randomly freeze with Dual Core.
2025-04-29 11:35:09 +02:00
JosJuice
7fa92160a2 Android: Don't call NativeLibrary methods during class init
There's no guarantee that directory initialization has completed by this
point, so we can't safely use NativeLibrary.

I'm making this change because of a crash being reported in Google Play
Console. The exact way it's crashing is mysterious to me, so I'm not
sure if this commit fixes the crash, but I think this commit is
a reasonable change to make even if it doesn't fix the crash. Backtrace
from Google Play Console:

  #00  pc 0x0000000000469074  /data/app/~~m0kqybFNfeqnDenQFc53XQ==/org.dolphinemu.dolphinemu-Mtaw0lU8DVUQbte2ZjBp3w==/lib/arm64/libmain.so (std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>> const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>>::pair[abi:nn180000]<char const* const&, char const* const&, 0>(char const* const&, char const* const&)) (BuildId: 64cfebf5b574b6729ebc51799aa94ccc3238cbcc)
  #01  pc 0x0000000000468e9c  /data/app/~~m0kqybFNfeqnDenQFc53XQ==/org.dolphinemu.dolphinemu-Mtaw0lU8DVUQbte2ZjBp3w==/lib/arm64/libmain.so (std::__ndk1::pair<std::__ndk1::__tree_iterator<std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>>, std::__ndk1::__tree_node<std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>>, void*>*, long>, bool> std::__ndk1::__tree<std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>>, std::__ndk1::__map_value_compare<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>, std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>>, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>>, true>, std::__ndk1::allocator<std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>>>>::__emplace_unique_impl<char const* const&, char const* const&>(char const* const&, char const* const&)) (BuildId: 64cfebf5b574b6729ebc51799aa94ccc3238cbcc)
  #02  pc 0x0000000000462f08  /data/app/~~m0kqybFNfeqnDenQFc53XQ==/org.dolphinemu.dolphinemu-Mtaw0lU8DVUQbte2ZjBp3w==/lib/arm64/libmain.so (Common::Log::LogManager::GetLogTypes()) (BuildId: 64cfebf5b574b6729ebc51799aa94ccc3238cbcc)
  #03  pc 0x000000000044339c  /data/app/~~m0kqybFNfeqnDenQFc53XQ==/org.dolphinemu.dolphinemu-Mtaw0lU8DVUQbte2ZjBp3w==/lib/arm64/libmain.so (Java_org_dolphinemu_dolphinemu_NativeLibrary_GetLogTypeNames+56) (BuildId: 64cfebf5b574b6729ebc51799aa94ccc3238cbcc)
  #04  pc 0x000000000031456c  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (art_jni_trampoline+108)
  #05  pc 0x0000000000781508  /apex/com.android.art/lib64/libart.so (nterp_helper+152)
  #06  pc 0x00000000002d94d4  /data/app/~~m0kqybFNfeqnDenQFc53XQ==/org.dolphinemu.dolphinemu-Mtaw0lU8DVUQbte2ZjBp3w==/base.apk (org.dolphinemu.dolphinemu.features.settings.ui.SettingsFragmentPresenter.<clinit>+16)
[...]
2025-04-28 21:37:03 +02:00
fox8091
26ae66297d GameINI: Disable Dual Core for NERF N-Strike 2025-04-28 13:11:50 -05:00
Dr. Dystopia
c32ca0696e FifoPlayer: Make functions static 2025-04-28 20:09:14 +02:00
Mihai Brodschi
bad78cfed4 Core, VideoCommon: Fix crash at shutdown due to destructor ordering
Previously, PerformanceTracker registered a callback to be updated on
emulation state changes. PerformanceTrackers live in a global variable
(g_perf_metrics) within libvideocommon. The callback was stored in a
global variable in libcore. This created a race condition at shutdown
between these libraries, when the PerfTracker's destructor tried to
unregister the callback.
Notify the PerfTracker directly from libcore, without callbacks, since
Core.cpp already references g_perf_metrics explicitly. Also rename
Core::CallOnStateChangedCallbacks to NotifyStateChanged to better
reflect what it's doing.
2025-04-28 07:11:53 +03:00
Jordan Woyak
4ec2072beb Core: Use MoveOnlyFunction for RunOnCPUThread. 2025-04-27 20:07:13 -05:00
Jordan Woyak
37aa65afc4 VideoCommon: Use MoveOnlyFunction for AsyncRequests. 2025-04-27 20:07:13 -05:00
Jordan Woyak
e403dee3da Common: Add MoveOnlyFunction. 2025-04-27 20:07:13 -05:00
Joshua Vandaële
97e696e524
CMake: Explicitely link udev if LIBUDEV_FOUND is set 2025-04-27 22:03:15 +02:00
Jordan Woyak
2e6e7eddd1 DVDThread: Implement with WorkQueueThread and WaitableSPSCQueue. 2025-04-27 04:16:27 -05:00
Admiral H. Curtiss
891833d1a1
Externals: Update zstd from 1.4.4 to 1.5.7 and convert to submodule 2025-04-26 22:07:59 +02:00
JosJuice
552b6da9c4 Hide DirectoryBlob boot.bin files from game list
Extracted games contain a boot.bin file that contains the disc header.
These boot.bin files are considered valid volumes by Dolphin, since
Dolphin only checks the disc header to determine if something is a valid
GC/Wii disc. Running them doesn't make any sense, though.

boot.bin files used to not be scanned by Dolphin due to their file
extension, but .bin was added to the list of file extensions to scan for
in 494e2c0. To stop them from showing up in the game list, let's update
the ShouldHideFromGameList mechanism.
2025-04-26 20:54:32 +02:00
Tilka
8ee64a84c7
Merge pull request #13590 from tygyh/UCodes-Remove-redundant-qualifiers
UCodes: Remove redundant qualifiers
2025-04-26 16:23:27 +01:00
JosJuice
f060baa257 Config: Add locking for config changed callbacks
Different threads are adding and calling callbacks, so this should have
some locking. This is both to ensure thread safety when accessing
`s_callbacks` and to ensure that there won't be situations where a
callback gets called after it's removed.

`s_callback_guards` is also accessed from multiple threads and has
therefore been made atomic.
2025-04-26 12:56:37 +02:00
JosJuice
3ed3fb05af Android: Allow reporting start to analytics for non-main activity
a1691a4 made it so analytics start events can only be generated when
starting the main activity. However, some users launch Dolphin's
emulation activity from a separate frontend application, bypassing
Dolphin's main activity. This change adjusts the logic so that start
events can be generated if any activity is started after 6 hours of
inactivity. This more closely matches the behavior we had before
a1691a4, while still ensuring duplicate start events aren't generated.

I've also fixed the inconsistent indentation in ActivityTracker.kt.
2025-04-26 10:45:56 +02:00
JosJuice
741ffc3114
Merge pull request #13514 from LillyJadeKatrin/retroachievements-failed-load-bug
Call AchievementManager CloseGame on load failures
2025-04-26 10:36:09 +02:00
JosJuice
3e5286c1a4
Merge pull request #13593 from Dentomologist/mainwindow_fix_use_after_free_during_dolphin_shutdown
MainWindow: Fix use-after-free during Dolphin shutdown
2025-04-26 09:06:06 +02:00
Dentomologist
3a883f28d6 Config: Add [[nodiscard]] to AddConfigChangedCallback
Require callers of Config::AddConfigChangedCallback and
CPUThreadConfigCallback::AddConfigChangedCallback to handle the returned
ConfigChangedCallbackIDs to hopefully prevent future issues with
callbacks getting called after their associated objects have been
destroyed.
2025-04-25 16:04:12 -07:00
Dentomologist
45b9def42c VideoConfig: Remove ConfigChangedCallback on shutdown 2025-04-25 16:00:43 -07:00
Dentomologist
d0dc8ae5e1 FreeLook: Remove ConfigChangedCallback on shutdown 2025-04-25 16:00:43 -07:00
Dentomologist
9db4067957 UICommon: Merge ConfigChangedCallbacks
Use a single lambda as a callback which calls InitCustomPaths and
RefreshConfig instead of having separate callbacks for each of them.

This fixes the callback for InitCustomPaths not being removed on
shutdown; the callback for the lambda (previously for RefreshConfig) is
already removed in Shutdown().
2025-04-25 16:00:43 -07:00
Dentomologist
8724daf44e Settings: Remove ConfigChangedCallback on shutdown 2025-04-25 16:00:19 -07:00
Dentomologist
9c40a7976b AchievementManager: Remove ConfigChangedCallback on shutdown
Prevent SetHardcoreMode from being called after m_client is set to
nullptr. rc_client_set_hardcore_enabled() checks for nullptr so this
didn't cause any problems, but better not to rely on that.

Also prevents multiple SetHardcoreMode callbacks from piling up when
repeatedly toggling Config::RA_ENABLED.
2025-04-25 15:29:29 -07:00
Dentomologist
e37a195192 MainWindow: Fix use-after-free during shutdown
Remove ConfigChangedCallback in MainWindow's destructor to prevent the
callback from accessing the destroyed MainWindow afterward.

After MainWindow is destroyed UICommon::Shutdown calls
LogManager::Shutdown which ultimately triggers any remaining callbacks.
This resulted in calling MainWindow::OnHardcoreChanged, which crashed in
debug builds and didn't have any obvious effect in release builds.
2025-04-25 15:29:29 -07:00
Dr. Dystopia
9868138c22 UCodes: Remove redundant qualifiers 2025-04-25 13:18:56 +02:00
Dr. Dystopia
066408326c Core/HW/EXI: Remove redundant inline specifiers 2025-04-25 12:03:52 +02:00
Dr. Dystopia
50ca32352f Core/HW/GCMemcard: Make variables constant 2025-04-25 11:35:59 +02:00
Tilka
805307f432
Merge pull request #13451 from vyuuui/numeric_labels
Add numeric label support to assembler
2025-04-25 01:56:43 +01:00
Tilka
fe307a06c6
Merge pull request #13476 from jordan-woyak/sdl-header
InputCommon: Move SDL Device class into its own cpp/h files.
2025-04-25 01:49:52 +01:00
Tilka
a95779add0
Merge pull request #13506 from JosJuice/android-time-played
Android: Show time played in game details
2025-04-25 01:43:53 +01:00
Tilka
5523b9a01b
Merge pull request #13487 from Dentomologist/performancemetrics_fix_window_arrangement
PerformanceMetrics: Fix window arrangement
2025-04-25 01:40:58 +01:00
Tilka
50026ab795
Merge pull request #13497 from hoogmin/modernize_fs_path
Core/Common/FileUtil.cpp: Use std path utility for automatic path separator handling.
2025-04-25 01:38:35 +01:00
Tillmann Karras
a6290caa2e DSPHLE: set accelerator gain 2025-04-25 01:09:15 +01:00
Tillmann Karras
80adfc606d docs/DSP: Rename SCALE to PRED_SCALE 2025-04-25 01:09:15 +01:00
Tillmann Karras
8412a7c336 DSPAccelerator: update comment (NFC) 2025-04-25 01:09:15 +01:00
Tillmann Karras
f0bacb826a DSPAccelerator: rename MMIOPCMHalt to MMIOPCMNoInc 2025-04-25 01:09:15 +01:00
Tillmann Karras
7c7c179b44 DSP tests: update DSP MMIO labels 2025-04-25 00:51:46 +01:00
Tillmann Karras
6c870860ea DSP tests: clean up unused code 2025-04-25 00:51:46 +01:00
Tillmann Karras
05381c5b6d Address Pokechu22's feedback 2025-04-25 00:51:46 +01:00
xperia64
21d5e3182d Fix DSP loop test init order, add DSP pcm test 2025-04-25 00:51:46 +01:00
xperia64
cd77e682ca Name gain shift/scaling better 2025-04-25 00:51:46 +01:00
xperia64
512da86b1a Update DSP docs with accelerator info, fix ANDC/ORC instruction description typos 2025-04-25 00:51:46 +01:00
xperia64
c460cafecf Update ACDRAW/ACDSAMP reg names in DSPTables and DSPSpy tests 2025-04-25 00:51:46 +01:00
xperia64
d517fe25f1 Add accelerator input MMIO register, fix MMIO PCM modes 2025-04-25 00:51:45 +01:00
xperia64
14fadbbe56 ADPCM mode doesn't entirely die with larger accesses, gain is PCM only 2025-04-25 00:51:45 +01:00
xperia64
c7d8afc5a7 Use correct exceptions for d3 reads/writes 2025-04-25 00:51:45 +01:00
xperia64
c9bb258e88 Add accelerator raw d3 test 2025-04-25 00:51:45 +01:00
xperia64
0dd282f626 Fix DSPAcceleratorTest 2025-04-25 00:51:45 +01:00
xperia64
ac2fdefcb4 Refactor accelerator format as a bitfield, use gain/yn1/yn2 in PCM mode 2025-04-25 00:51:45 +01:00
xperia64
04c7c1a4a1 Rename accelerator accesses to 'raw' and 'sample' 2025-04-25 00:51:45 +01:00
xperia64
256d9f8702 Improve ReadD3 emulation 2025-04-25 00:51:45 +01:00
xperia64
bbc11edd7d Rework WriteD3 based on hardware testing 2025-04-25 00:51:45 +01:00
Tillmann Karras
4d9dc1e1cd GekkoDisassembler: standardize SPR names and add missing ones 2025-04-25 00:24:12 +01:00
JosJuice
908094714b Translation resources sync with Transifex 2025-04-24 23:38:09 +02:00
Dr. Dystopia
ef8b9a0dcd Core/HW/SI: Make variables constant 2025-04-24 17:01:12 +02:00
JMC47
8fa725d5e4
Merge pull request #13573 from tygyh/DolphinTool-Make-parameter-constant
DolphinTool: Make parameter constant
2025-04-24 00:49:10 -04:00
JMC47
fc0aafca3b
Merge pull request #13577 from tygyh/UCodes-Make-functions-static
UCodes: Make functions static
2025-04-24 00:48:46 -04:00
JMC47
f675048768
Merge pull request #13578 from tygyh/Core/HW-Remove-redundant-empty-lambda-parameter-lists
Core/HW: Remove redundant empty lambda parameter lists
2025-04-24 00:48:28 -04:00
Jordan Woyak
1cea31c75a
Merge pull request #13580 from LillyJadeKatrin/retroachievements-de-bug-debug
Fix debugger disabled bug
2025-04-23 23:28:19 -05:00
Jordan Woyak
3025cd472c
Merge pull request #13491 from JosJuice/oh0-removed-opened
IOS: Remove from m_opened_devices in OH0::OnDeviceChange
2025-04-23 23:25:34 -05:00
LillyJadeKatrin
022bc3bf8d Fix debugger disabled bug
Fixing an oversight: this was causing the debugger to be disabled if achievements were disabled but hardcore mode was still enabled in the .ini. This fix properly checks for hardcore state via AchievementManager which takes both settings into account.
2025-04-23 22:57:35 -04:00
Sanjay Govind
8bb07bf3c4 LibusbDevice: Send wakeup command to Santroller devices 2025-04-24 12:09:41 +12:00
Admiral H. Curtiss
879a8889aa
Merge pull request #13431 from jordan-woyak/spsc-waiting
Common: SPSCQueue cleanups and improvements.
2025-04-23 22:19:15 +02:00
Dr. Dystopia
564e7c3320 UCodes: Make functions static 2025-04-23 21:36:13 +02:00
Dr. Dystopia
467a568f60 Core/HW: Remove redundant empty lambda parameter lists 2025-04-23 21:32:09 +02:00
Jordan Woyak
6c751fb722
Merge pull request #13570 from SuperSamus/advanced-panel-unused
DolphinQt: Remove unused variables from `AdvancedPane.h`
2025-04-23 13:30:39 -05:00
Dr. Dystopia
03a6fdcd85 DolphinTool: Make variables constant 2025-04-23 20:24:50 +02:00
JosJuice
bda1f379b7 IOS: Remove from m_opened_devices in OH0::OnDeviceChange
I've been playing Rock Band 3 recently and have experienced a bug where
sometimes if you disconnect and reconnect a USB microphone, the game
won't pick up on it connecting, not even it you disconnect and reconnect
it again. An investigation into what's going on inside Dolphin shows
that when the game triggers a call to OH0::DeviceOpen after the device
has been reinserted, Dolphin doesn't open the device because it's
already present in m_opened_devices.

Removing the device from m_opened_devices after calling OH0::TriggerHook
in OH0::OnDeviceChange resolves this specific issue in my testing. Doing
this matches us removing the device from m_opened_devices after calling
OH0::TriggerHook in OH0::DeviceClose, but I haven't looked at exactly
what real IOS does.

I have been able to reproduce a much rarer issue that has the same
symptoms on the surface but where OH0::DeviceOpen gets past its
m_opened_devices check. I'm currently not sure what the cause of this
remaining issue is.
2025-04-23 17:19:14 +02:00
JosJuice
c44418a4d9
Merge pull request #13561 from JosJuice/android-renumbered-platforms
Android: Update platform enum values
2025-04-23 17:08:50 +02:00
Dr. Dystopia
fe657b9759 DolphinTool: Make parameter constant 2025-04-23 15:55:48 +02:00
Dr. Dystopia
d5314cbf48 UnitTests: Remove redundant virtual specifier 2025-04-23 14:33:14 +02:00
Dr. Dystopia
9926a9bd7f VertexLoaderTest: Replace std::tie with structured bindings 2025-04-23 13:11:17 +02:00
Dr. Dystopia
947bdea590 UnitTests: Use constexpr 2025-04-23 12:45:08 +02:00
Martino Fontana
e751235574 DolphinQt: Remove unused variables from AdvancedPane.h
Small oversight from #13422.
2025-04-23 12:32:12 +02:00
Joshua Vandaële
bf554edfe0
linter: Add and apply new formatting rules
New rules:
`InsertNewlineAtEOF: true`
`RemoveSemicolon: true`
`RequiresClausePosition: WithPreceding`
2025-04-23 11:19:57 +02:00
Joshua Vandaële
2c54ee94c1
linter: Apply clang-format 19.1 formatting
find ./Source/ -name '*.cpp' -o -name '*.h' | xargs clang-format-19 -i
2025-04-23 11:19:20 +02:00
Joshua Vandaële
d9d0082018
linter: Bump clang-format version to 19.1 2025-04-23 11:15:52 +02:00
Dr. Dystopia
6e6736c89f UnitTests: Rename lambda parameters which hide previous declarations 2025-04-23 08:15:10 +02:00
JMC47
8f3483fdd4
Merge pull request #13565 from LillyJadeKatrin/retroachievements-end-of-memory-bug
Fix memory bounds error in achievements dev
2025-04-23 01:01:47 -04:00
Jordan Woyak
af960651e8 Common: SPSCQueue cleanups and improvements. 2025-04-22 23:49:32 -05:00
OatmealDome
d04e9e79a6
Merge pull request #13566 from OatmealDome/macos-11-fix
BuildMacOSUniversalBinary: Explicitly specify CMAKE_OSX_DEPLOYMENT_TARGET in CMake flags
2025-04-23 00:46:58 -04:00
OatmealDome
968b0cff44 BuildMacOSUniversalBinary: Explicitly specify CMAKE_OSX_DEPLOYMENT_TARGET in CMake flags
If the build folder is created from an older commit and this flag is not set, the last value set for this flag will be used instead.
This is currently happening on our macOS build machine, causing macOS 10.15 to still be used as the deployment target.
2025-04-22 23:40:37 -04:00
Jordan Woyak
116bd3a031
Merge pull request #13382 from JoshuaVandaele/btadapterchoice
Add a GUI option to select a bluetooth device
2025-04-22 22:05:30 -05:00
LillyJadeKatrin
8b610101bc Fix memory bounds error in achievements dev
This particular out of bounds error was causing every memory read at the far end of memory to return all zeroes.
2025-04-22 22:49:55 -04:00
Tilka
c4f65febf3
Merge pull request #13563 from Tilka/rcheevos
Fix building with USE_RETRO_ACHIEVEMENTS=OFF
2025-04-23 03:27:15 +01:00
Tilka
871073eee2
Merge pull request #13564 from jordan-woyak/triforce_ipl-warning
Core/Boot: Fix unused variable warning.
2025-04-23 03:26:48 +01:00
Jordan Woyak
31a3de819d
Merge pull request #13540 from tygyh/DiscIO-Remove-redundant-qualifiers
DiscIO: Remove redundant qualifiers
2025-04-22 20:00:03 -05:00
Jordan Woyak
0fd090ce19
Merge pull request #13550 from Tilka/top_warnings
IOS/Network: fix some warnings
2025-04-22 19:45:47 -05:00
Joshua Vandaële
4773a6f323
Add a GUI option to select a bluetooth device 2025-04-23 02:19:28 +02:00
JMC47
826625c7be
Merge pull request #13422 from jordan-woyak/adv-tooltips
DolphinQt: Use tooltips on Advanced tab.
2025-04-22 19:27:21 -04:00
Jordan Woyak
00544e4dff Core/Boot: Fix unused variable warning. 2025-04-22 18:19:32 -05:00
Tillmann Karras
609165b62b Fix building with USE_RETRO_ACHIEVEMENTS=OFF 2025-04-22 23:45:40 +01:00
Tillmann Karras
f6d3f448d9 IOS/Network: fix -Wmissing-braces warnings 2025-04-22 23:36:01 +01:00
Jordan Woyak
ac76deaef0
Merge pull request #13529 from jordan-woyak/StateBuffer
Core/State: Avoid unnecessarily value-initializing large buffers.
2025-04-22 16:30:51 -05:00
OatmealDome
da84a9f605
Merge pull request #13477 from OatmealDome/macos-11
CMakeLists: Bump minimum macOS to 11.0
2025-04-22 17:27:12 -04:00
Jordan Woyak
afee9a56e9
Merge pull request #13474 from JosJuice/rock-band-playstation
IOS: Disguise Rock Band PlayStation USB devices as Wii equivalents
2025-04-22 16:02:16 -05:00
Jordan Woyak
9254a53397
Merge pull request #13490 from JosJuice/one-usb-scanner
IOS: Only have one USB scanning thread
2025-04-22 16:01:18 -05:00
JosJuice
25fdde4204 Android: Update platform enum values
71f654c added a new platform in the middle of the C++ platform enum
without updating the corresponding Android code, making the Android code
incorrectly treat Wii discs as WAD files, WAD files as DOL/ELF files,
and so on. This commit fixes the problem.

To be able to add the new Triforce entry into the Platform enum without
it leading to the UI getting an additional tab, I'm splitting the enum
into Platform and PlatformTab. Platform now exactly matches the C++
enum (previously it excluded ELFOrDOL), and PlatformTab has the same
content as the old Platform.
2025-04-22 20:07:15 +02:00
JMC47
fd8ce3ce80
Merge pull request #13555 from jordan-woyak/cubeb-default
AudioCommon: Make cubeb sound backend default on Linux.
2025-04-22 12:07:43 -04:00
JosJuice
12010ebf78
Merge pull request #13557 from LillyJadeKatrin/pause-bugfix
AchievementManager: Always allow pausing if game not loaded
2025-04-22 17:55:23 +02:00
Dr. Dystopia
ecafd8058f DiscIO: Remove redundant qualifiers 2025-04-22 13:54:10 +02:00
Dr. Dystopia
71249dec33 Android: Apply style alignment refactorings 2025-04-22 13:34:21 +02:00
Jordan Woyak
89873d6238
Merge pull request #13472 from tygyh/Use-values-function
Core/NetPlayServer: Use std::views::values and std::views::keys functions
2025-04-22 02:25:46 -05:00
LillyJadeKatrin
d670c21c8e Always allow pausing if game not loaded
RetroAchievements disables pausing too frequently when running but there's no sense of doing this if RetroAchievements does not currently have a game running.
2025-04-21 22:38:09 -04:00
JMC47
0f30b59aef
Merge pull request #13556 from jordan-woyak/dvd-interface-crash-fix
DVDInterface: Fix crash when playing wiiware.
2025-04-21 22:15:12 -04:00
Jordan Woyak
1e8b668793 DVDInterface: Fix crash when playing wiiware. 2025-04-21 18:38:33 -05:00
Jordan Woyak
1fc6be7f80 AudioCommon: Make cubeb sound backend default on Linux. 2025-04-21 16:25:40 -05:00
OatmealDome
de2826d995 Merge branch 'release-prep-2503a' 2025-04-21 17:03:52 -04:00
JosJuice
e468e2359a IOS: Only have one USBScanner
Some games open two USB interfaces, e.g. /dev/usb/oh0 and /dev/usb/hid.
This was causing us to run two scanning threads at once, using up more
CPU time for scanning than we need to.
2025-04-21 21:57:49 +02:00
LillyJadeKatrin
8f12512d0d Call AchievementManager CloseGame on load failures
We have identified that a failed RetroAchievements game load (most easily done when closing a game before the server can finish responding) can leave data behind that causes problems. As such, refactored CloseGame to always delete data even if there wasn't a game loaded when it was called, and call it on the failure paths of LoadGameCallback.
2025-04-21 15:53:31 -04:00
JosJuice
920a44aec2 IOS: Diff device lists in USBHost instead of USBScanner
Instead of having USBScanner create "hooks" as it scans for devices,
let's have USBScanner present a list of devices to USBHost and have
USBHost diff the new device list with its old device list to create the
hook calls instead. This gets rid of some complex edge cases that the
next commit otherwise would have to deal with, in particular regarding
toggling determinism and adding new USBHosts to a USBScanner.
2025-04-21 21:25:36 +02:00
JosJuice
24fdcc1a0e IOS: Add missing locking for USBHost::m_devices
Note: After adding the missing locking of m_devices_mutex, I had to move
the locking of m_hooks_mutex to avoid a random deadlock between the CPU
thread and USB scanning thread. (Either that or I would have to lock
m_devices_mutex before m_hooks_mutex.)
2025-04-21 21:25:35 +02:00
JosJuice
50a8ae9d90 IOS: Keep copy of m_devices in USBHost
This gets rid of the ugly direct access to USBScanner::m_devices that
was introduced by the previous commit.

This also fixes a potential thread safety issue.
USB_HIDv4::TriggerDeviceChangeReply loops through m_devices and calls
GetDeviceEntry for each device. If USB_HIDv4::TriggerDeviceChangeReply
is called after a new device is added to m_devices but before hooks are
dispatched, GetDeviceEntry crashes, because the hook that's supposed to
update m_device_ids hasn't run yet. With this commit, this issue can no
longer happen, because USBHost::m_devices_mutex doesn't get unlocked in
between updating m_devices and dispatching the hooks.
2025-04-21 21:25:35 +02:00
JosJuice
427e9c5ad2 IOS: Move USB scanning thread to new class USBScanner 2025-04-21 21:25:35 +02:00
JosJuice
c0c180bdc2
Merge pull request #13467 from JosJuice/profiler-thread-safety
Common: Make Profiler thread safe
2025-04-21 20:19:47 +02:00
JMC47
258fc1b209
Merge pull request #12949 from LillyJadeKatrin/retroachievements-new-dev-branch
RetroAchievements - Dev Branch Refactor
2025-04-21 14:08:40 -04:00
JMC47
0b2338a5ee
Merge pull request #10084 from Zopolis4/master
Identify Triforce games in gamelist
2025-04-21 13:57:57 -04:00
Dr. Dystopia
35fa32e254 Core/PowerPC/JitArm64: Replace zeroes in boolean context with false 2025-04-21 17:06:06 +02:00
Zopolis4
89fdc0b9e0
Fix Triforce GameINIs 2025-04-21 22:05:26 +10:00
Zopolis4
2238967d93
Add Triforce IPL hash 2025-04-21 22:05:25 +10:00
Zopolis4
660232a12c
Preliminary implementation of the Triforce Baseboard 2025-04-21 22:05:25 +10:00
Zopolis4
2baa09d5b4
Implement endian swapping and lazy decryption of Triforce DI commands 2025-04-21 22:05:25 +10:00
Zopolis4
8d94d25203
Implement Triforce ID parsing 2025-04-21 22:05:25 +10:00
Zopolis4
71f654cdc4
Add Triforce platform and preliminary boot.id parsing 2025-04-21 22:05:25 +10:00
Zopolis4
494e2c05c2
Adding support for detecting .bin images 2025-04-21 22:05:24 +10:00
OatmealDome
0827d9f06d MemArenaDarwin: Initialize all address variables passed to vm_map 2025-04-21 00:40:01 -04:00
Jordan Woyak
0109c27ad7 SI: Fix GBA link by having a separate response for "error" and "no data". 2025-04-21 00:39:07 -04:00
OatmealDome
e40c9b674c ScmRevGen: Bump version to 2503a 2025-04-21 00:38:22 -04:00
OatmealDome
ec9fb08dab MTLUtil: Remove availability check for iOS 13
My personal fork requires minimum iOS 14, so this is not required.
2025-04-21 00:24:58 -04:00
OatmealDome
65f42ee2d2 MTLUtil: Always use MSL 2.3
The minimum macOS (and minimum iOS on my personal fork) are enough to allow MSL 2.3 usage without availability checks.
2025-04-21 00:24:58 -04:00
OatmealDome
53b66be47d MTLUtil: Remove availability checks for macOS 10.15 and iOS 13 2025-04-21 00:24:58 -04:00
OatmealDome
0bc33fb6df MTLUtil: Remove availability check for macOS 10.15 2025-04-21 00:24:58 -04:00
OatmealDome
dc8865718e MTLUtil: Remove availability check for macOS 11 2025-04-21 00:24:58 -04:00
OatmealDome
7213cdd439 MemoryUtil: Remove availability checks for macOS 11 2025-04-21 00:24:58 -04:00
OatmealDome
ad79a62d22 README: Update minimum macOS version to 11.0 2025-04-21 00:24:57 -04:00
OatmealDome
82ee77e4e1 BuildMacOSUniversalBinary: Remove architecture-specific macOS deployment target flags
I can't see any situation in the foreseeable future where we need to target different macOS versions for each architecture.
2025-04-21 00:24:57 -04:00
OatmealDome
39e535d4aa CMakeLists: Bump minimum macOS to 11.0 2025-04-21 00:24:57 -04:00
Jordan Woyak
a517c9f862 CoreTiming: Move VISkip calculation into a separate function. 2025-04-20 22:01:06 -05:00
Jordan Woyak
7236d1539a CoreTiming: Cleanups to avoid drift from cumulative rounding errors. 2025-04-20 22:01:01 -05:00
OatmealDome
bc3c3eb79a
Merge pull request #13524 from jordan-woyak/fix-gba-link
SI: Fix GBA link by having a separate response for "error" and "no data".
2025-04-20 22:29:38 -04:00
JMC47
41408076e3
Merge pull request #13520 from shuffle2/android-start
Prevent android generating duplicate analytics events
2025-04-20 20:17:30 -04:00
Tilka
7e7b75c1e6
Merge pull request #13537 from tygyh/DiscIO-Make-variables-constexpr
DiscIO: Make variables constexpr
2025-04-21 00:52:18 +01:00
Tilka
9504916f72
Merge pull request #13538 from tygyh/DiscIO-Use-default-to-define-a-trivial-destructor
DiscIO: Use `= default` to define a trivial destructor
2025-04-20 22:32:12 +01:00
Tilka
0a52140145
Merge pull request #13549 from shuffle2/ucrtpatch
remove ucrt compat patches
2025-04-20 22:24:57 +01:00
Tilka
45ed4b2be9
Merge pull request #13541 from tygyh/DiscIO-Remove-redundant-zero-initializers-in-aggregate-initializations
DiscIO: Remove redundant zero initializers in aggregate initializations
2025-04-20 22:07:58 +01:00
Tilka
2adf3449f3
Merge pull request #13548 from shuffle2/http
HttpRequest: remove some legacy code for windows < 8.1
2025-04-20 22:07:32 +01:00
Jordan Woyak
8d7d026da6
Merge pull request #13533 from tygyh/DiscIO-Make-classes-final
DiscIO: Make classes final
2025-04-20 16:06:07 -05:00
Shawn Hoffman
2d1161150b remove ucrt compat patches
Dolphin has not supported a version of windows where
these binaries exist for a while.
2025-04-20 12:50:10 -07:00
Shawn Hoffman
5dd896a7d9 HttpRequest: remove some legacy code for windows < 8.1 2025-04-20 11:46:09 -07:00
Dr. Dystopia
07ad189b4f DiscIO: Pass parameters by constant reference 2025-04-20 08:26:09 +02:00
Shawn Hoffman
a1691a4031 Prevent android generating duplicate analytics events
dolphin-start event was being generated twice for the normal
end-user case, as can be seen in analytics data for some years.
The problem occured when:
* Android reaped the process hosting the dolphin activity
  (e.g. for power/memory saving).
and
* Dolphin activity was in "stopped" state for > 6 hours before
  being switched back to.

Under above conditions, both calls to ReportStartToAnalytics
would be performed, as dolphin thought it was being launched anew,
and also thought it had been asleep for > 6 hours.

fixes https://bugs.dolphin-emu.org/issues/13675
2025-04-19 22:16:01 -07:00
Jordan Woyak
ac3dbe2294 Core/State: Use UniqueBuffer instead of make_unique and std::vector for save state buffers. 2025-04-19 17:29:56 -05:00
Jordan Woyak
12dcd6c285 Common: Add UniqueBuffer and SharedBuffer templates. 2025-04-19 17:13:40 -05:00
Jordan Woyak
f78fa2e9f1 LinearDiskCache: Use make_unique_for_overwrite. 2025-04-19 17:13:40 -05:00
Dr. Dystopia
77b4270981 DiscIO: Remove redundant zero initializers in aggregate initializations 2025-04-19 22:04:50 +02:00
Dr. Dystopia
7123fcd19b DiscIO: Use = default to define a trivial destructor 2025-04-19 17:43:18 +02:00
Dr. Dystopia
f6ba69f99a DiscIO: Make variables constexpr 2025-04-19 17:17:02 +02:00
JosJuice
1ae0b23265
Merge pull request #13528 from jordan-woyak/win-cmake-fix
Common/Timer: Change HANDLE to void* to avoid including Windows.h to fix cmake build.
2025-04-19 16:41:51 +02:00
JosJuice
b8e70df413 Android: Show time played in game details
Unlike in DolphinQt, there isn't much space to show playtimes directly in
the game list, so I've put it in the game details dialog instead.
2025-04-19 14:34:49 +02:00
JosJuice
3eee52cb6b Android: Create toggle for enabling/disabling time tracking 2025-04-19 14:29:49 +02:00
JosJuice
49ebdaaae3
Merge pull request #13507 from JosJuice/time-played-game-id
Core: Don't store game ID inside TimePlayed
2025-04-19 14:28:02 +02:00
Jordan Woyak
fda8afaf5c SI: Fix GBA link by having a separate response for "error" and "no data". 2025-04-19 03:28:57 -05:00
Dr. Dystopia
301cc5ee63 DiscIO: Make classes final 2025-04-19 09:05:22 +02:00
Jordan Woyak
cb20959679 Common/Timer: Change HANDLE to void* to avoid including Windows.h to fix cmake build. 2025-04-18 21:50:15 -05:00
Jordan Woyak
056b0339be
Merge pull request #13496 from TryTwo/PR_GameSettings_Fix
Game config settings: Show global value when no game setting exists.
2025-04-18 15:56:59 -05:00
LillyJadeKatrin
c55624702c Allow RA Dev Tools for Unidentified Games
Due to requests from RA Devs, updating the AchievementManager LoadGameCallback to still set MemoryPeeker (and set m_system) if the load game response is NO_GAME_LOADED, so that the memory inspector et al continue function properly on unidentified hashes. Without this, no memory is loaded and the memory inspector will show all zeroes.
2025-04-16 23:59:16 -04:00
LillyJadeKatrin
a96c935c1c Added modified achievements confirmation
Added a line to the close game confirmation dialog to tell the dev if there are unsaved modifications to the achievement assets.
2025-04-16 17:01:22 -04:00
LillyJadeKatrin
b9a93794ff Added game title estimate for achievement development
If the development system is started for a game with an unrecognized hash, RA_Integration opens a dialog for connecting the hash with a title. That dialog is prepopulated by the results of GameTitleEstimateHandler.
2025-04-16 17:01:22 -04:00
LillyJadeKatrin
ef612912a2 Handle local achievements
Displays an additional message when an achievement unlocks that isn't on the site yet (either hasn't yet been uploaded or modified from remote) i.e. achievements the "player" is actively developing.
2025-04-16 17:01:21 -04:00
LillyJadeKatrin
fa782de15c Add MemoryPoker for RAIntegration 2025-04-16 17:00:58 -04:00
Jordan Woyak
f8bf35e6f0
Merge pull request #13518 from tygyh/Fix-Partition-struct-comparison-operators
DiscIO/Volume: Fix Partition struct comparison operators
2025-04-16 00:20:28 -05:00
Jordan Woyak
8bfde300f4
Merge pull request #13519 from tygyh/Replace-definitions-with-constant-expressions
Replace definitions with constant expressions - Core/HW/EXI/BBA/TAP_Win32
2025-04-16 00:19:40 -05:00
Jordan Woyak
5af315ec17
Merge pull request #13521 from OatmealDome/darwin-memarena-ub
MemArenaDarwin: Initialize all address variables passed to vm_map
2025-04-16 00:12:50 -05:00
OatmealDome
2af276d27e MemArenaDarwin: Initialize all address variables passed to vm_map 2025-04-16 00:50:54 -04:00
Dr. Dystopia
c4f906bcd9 Replace definitions with constant expressions - Core/HW/EXI/BBA/TAP_Win32 2025-04-15 12:26:16 +02:00
Dr. Dystopia
3bb925c1c7 DiscIO/Volume: Fix Partition struct comparison operators 2025-04-15 12:18:23 +02:00
Dr. Dystopia
473cb6c3bc Remove redundant parentheses - Tools 2025-04-15 08:08:07 +02:00
Dr. Dystopia
2397a3a915 Use range-based loops - Core VideoBackends 2025-04-14 21:49:08 +02:00
icup321
883a5cccfa GameINI: Toshi engine updates
Update several INI GameSettings for Blue Tongue Entertainment games

Add comments & more Nick games fixes

Adds comments to all FMV fixes and adds even more fixes for Nick games
2025-04-14 05:21:47 -04:00
LillyJadeKatrin
90a4be4b36 Add RAIntegration event handler
Some refactoring done to hardcore toggling so that it's more readily available for the toggle hardcore event.
2025-04-13 13:36:15 -04:00
LillyJadeKatrin
9caa02493d Add RetroAchievements development menu
When the menu exists, it replaces the Achievements action in the Tools menu.
2025-04-13 08:06:00 -04:00
LillyJadeKatrin
36c7e7f3c7 Load RA_Integration.DLL at init if present 2025-04-13 08:05:59 -04:00
LillyJadeKatrin
cab5bc5680 Update rcheevos submodule to newest master 2025-04-13 08:05:59 -04:00
LillyJadeKatrin
6ad267017c Refactor AchievementBox to const pointer
Not sure when or why this became necessary but it works.
2025-04-13 08:05:59 -04:00
Dentomologist
2c20d5dcd9 GameList: Ignore non-left double-clicks
Don't start a game when a double-click is triggered by a mouse button
other than the left button.

Fixes https://bugs.dolphin-emu.org/issues/12272.
2025-04-12 16:17:04 -07:00
JosJuice
4f210df86a
Merge pull request #13489 from AdmiralCurtiss/translate-audio-backend
DolphinQt/AudioPane: Fix Audio backend dropdown not using translated names
2025-04-12 17:59:42 +02:00
JMC47
bcddd78a89
Merge pull request #13500 from jordan-woyak/accel-gyro-any-mapping
InputCommon: Activate IMU Accelerometer and Gyroscope mappings when any direction has a bound input.
2025-04-12 11:47:38 -04:00
JosJuice
d194e69bbd Core: Don't store game ID inside TimePlayed
When you use TimePlayed, you have to provide a game ID either when
creating the object or when calling GetTimePlayed on it. If you don't
provide a game ID when creating the object, function calls that don't
take a game ID will silently fail, except for Reload. This isn't very
obvious, and there's no strong benefit to storing the game ID inside
TimePlayed anyway (it just lets TimePlayed skip calling EscapeFileName),
so this commit removes the TimePlayed constructor that takes a game ID
and instead makes the functions that need game IDs always take a game ID
argument.
2025-04-12 15:20:49 +02:00
JMC47
5285b1168a
Merge pull request #13503 from sepalani/ip-top-perf
IP/Top: Fix performance regression in GetInterfaceOpt
2025-04-11 18:56:35 -04:00
Sepalani
03451f2bc9 IP/Top: Fix performance regression in GetInterfaceOpt 2025-04-12 01:38:00 +04:00
Jordan Woyak
87beb7d67b InputCommon: Activate IMU Accelerometer and Gyroscope when any direction has a bound input. 2025-04-10 15:55:49 -05:00
JMC47
fc0179c1ea
Merge pull request #13498 from jordan-woyak/immxfb-dualcore-todo
BPStructs: Add TODO for unsafe usage of GetTicks.
2025-04-09 23:20:35 -04:00
Jordan Woyak
4aa056dd4d BPStructs: Add TODO for unsafe usage of GetTicks. 2025-04-08 19:58:31 -05:00
Javier Martinez
7ca8dc3767 Use std path utility for automatic path seperator handling.
It was being done manually, which a TODO comment advised against.
Using generic_string() from std::filesystem::path solves this.

Fix encoding issue using generic_wstring instead.
2025-04-08 16:54:11 -04:00
JMC47
01363572cb
Merge pull request #13483 from Sam-Belliveau/fixed_playback_speed
Use Doubles for Sample Rate Conversion
2025-04-08 13:45:12 -04:00
TryTwo
91380258a1 GameConfig Settings: If no game setting exists for a certain option, then show the global setting value. Previously showed the default value if the game setting didn't exist. 2025-04-07 20:41:46 -07:00
JMC47
ee27f03a43
Merge pull request #13439 from jordan-woyak/perf-marker
Core: Move CountPerformanceMarker to VideoInterface to eliminate a Throttle call. PerformanceMetrics: Fixes/Cleanups.
2025-04-07 17:57:56 -04:00
Admiral H. Curtiss
b306d00d5d
DolphinQt/AudioPane: Fix Audio backend dropdown not using translated names 2025-04-06 05:09:23 +02:00
JMC47
f59507c856
Merge pull request #13488 from TryTwo/PR_MonsterHT_ini_bloom
Game setting fix: Monster Hunter Tri bloom
2025-04-05 21:38:11 -04:00
TryTwo
69bdb0535c Gamesetting fix: Monster Hunter Tri. set EFBAccessEnable = True to fix over-bloom issues.
Was broken due to the default for this setting being switched.
2025-04-05 17:40:32 -07:00
Dentomologist
ec49ea5be3 PerformanceMetrics: Fix window arrangement
Fix overlays stacking on top of each other or not moving to the edge of
the screen when enabling or disabling overlays while emulation is
active.

This change only applies when Config::GFX_MOVABLE_PERFORMANCE_METRICS is
False.
2025-04-05 14:22:17 -07:00
Sam Belliveau
74e752ed9c Mixer: Use Doubles for Sample Rate Conversion. 2025-04-05 13:46:37 -05:00
JosJuice
2d1671a863
Merge pull request #13485 from jordan-woyak/timer-dualcore-fix
CoreTiming: Fix Precision Frame Timing in Dual Core mode on Windows.
2025-04-05 08:52:32 +02:00
Jordan Woyak
06afa0036a CoreTiming: Fix Precision Frame Timing in Dual Core mode on Windows. 2025-04-04 19:13:53 -05:00
JosJuice
edb1db7400 Translation resources sync with Transifex 2025-04-04 21:45:46 +02:00
JMC47
bee7035322
Merge pull request #13426 from jordan-woyak/sleepy-windows
Common/CoreTiming: Create a PrecisionTimer class for better frame pacing.
2025-04-04 15:34:00 -04:00
Jordan Woyak
e0e53f3235 Common/Timer: Use YieldProcessor on Windows. 2025-04-03 15:48:51 -05:00
Jordan Woyak
7dc27753e2 CoreTiming: Add a setting to use Common::PrecisionTimer. 2025-04-03 15:48:51 -05:00
Jordan Woyak
e5c8935acc Common: Create a PrecisionTimer class. 2025-04-03 15:48:51 -05:00
Admiral H. Curtiss
dadbd2f9fb
Merge pull request #13479 from iwubcode/mali_draw_fix
VideoCommon: fix a mali draw bug that causes crashes in some games
2025-04-03 21:55:41 +02:00
Jordan Woyak
af1f07207f VideoInterface: Throttle for VBlank only when necessary. 2025-04-02 23:24:03 -05:00
Jordan Woyak
c42dab6388 Core: Move CountPerformanceMarker to VideoInterface to eliminate a Throttle call. PerformanceMetrics: Fixes/Cleanups. 2025-04-02 23:23:51 -05:00
JMC47
61ab662733
Merge pull request #13424 from Sam-Belliveau/granule-performance-improvements
AudioCommon: Increased Granule Synthesis Performance
2025-04-02 22:44:14 -04:00
Dr. Dystopia
ebc9c8492d Use std::views::values and std::views::keys functions - NetPlayServer 2025-04-02 20:06:10 +02:00
Tilka
c705e366f0
Merge pull request #13478 from jordan-woyak/metal-af
VideoBackends/Metal: Fix anisotropic filtering handling.
2025-04-02 09:07:44 +01:00
iwubcode
ec36fce7c6 VideoCommon: fix a mali bug by moving the perf queries back to being close to the draw call, having them apart seems to cause errors on some devices 2025-04-01 18:32:42 -05:00
Sam Belliveau
877864c23a Improve Performance of Granular Buffering + User Adjustable Buffer Size 2025-04-01 18:17:21 -04:00
Jordan Woyak
33a7283d3b VideoBackends/Metal: Fix anisotropic filtering handling. 2025-04-01 15:09:21 -05:00
JosJuice
01a7732d50 IOS: Disguise Rock Band PlayStation USB devices as Wii equivalents
This lets you use PS3 Rock Band controllers with Wii Rock Band and
Guitar Hero games.

A normal user will probably never have any reason to disable this
behavior, but I figured maybe there's some person out there who would
like to disable it. (For instance, I know there's a mod for RB3 that's
trying to implement the same kind of cross-console controller
compatibility, and that can only be tested if the behavior I'm adding is
disabled.) So the behavior is controlled by an INI-only setting.
2025-03-31 21:24:25 +02:00
Jordan Woyak
17c994df2a InputCommon: Move SDL Device class into its own cpp/h files. 2025-03-30 23:23:06 -05:00
Jordan Woyak
4533605c03 DolphinQt: Update tooltips for ImmediateXFB, VBISkip, SkipPresentingDuplicateFrames interaction clarity. 2025-03-30 20:55:26 -05:00
Jordan Woyak
920f940ad0 DolphinQt: Don't toggle GFX_HACK_SKIP_DUPLICATE_XFBS when GFX_HACK_IMMEDIATE_XFB or GFX_HACK_VI_SKIP are enabled. 2025-03-30 20:51:20 -05:00
Admiral H. Curtiss
1b85da9b85
Merge pull request #13471 from Nitch2024/CTRL+G
[Debugger] CTRL+G support in code and memory view
2025-03-30 15:39:54 +02:00
Tillmann Karras
7e57834691 GameSettings: fix startup hang in Moki Moki
The game sets up a fifo breakpoint callback that just writes a flag to
memory. The hang occurs right after calling GXEnableBreakPt(). It is a
busy loop that repeatedly compares the same register without reloading
it from memory. I guess the developers forgot to make the variable
atomic and never noticed because on hardware the breakpoint is hit
immediately so the flag is already set when it is loaded for the first
(and only) time. This patch grows the loop by one instruction to include
the flag load in the loop.
2025-03-30 00:48:22 +00:00
Nitch2024
1b87ea83e6 [Debugger] CTRL+G support in code and memory view 2025-03-29 12:43:15 -07:00
JosJuice
957265ba52 Common: Make Profiler thread safe 2025-03-29 15:05:02 +01:00
JMC47
9819d66a47
Merge pull request #13221 from mitaclaw/nrvo-fails-1
GCC: Remedy NRVO Fails
2025-03-29 03:26:46 -04:00
JMC47
f00b7d39f0
Merge pull request #13465 from TryTwo/PR_Bugfix
AudioPanel Bugfix
2025-03-28 19:56:36 -04:00
TryTwo
efd993f382 AudioPanel bugfix: Forgot to wrap an optional slider in a conditional. 2025-03-28 15:50:24 -07:00
JMC47
4c727a84c5
Merge pull request #13456 from jordan-woyak/mapping-window-blank-square-fix
DolphinQt: Fix blank square in MappingWindow's top-left corner.
2025-03-28 18:44:32 -04:00
JMC47
932b4abdcf
Merge pull request #13457 from jordan-woyak/efb-access-fix
VideoCommon: Fix out-of-bounds and disabled EFB access.
2025-03-28 18:43:57 -04:00
JMC47
7d794897c4
Merge pull request #13434 from JosJuice/android-non-blocking-input-detection
Android: Don't use separate thread for MotionAlertDialog
2025-03-28 18:25:04 -04:00
JMC47
e0032b3e2c
Merge pull request #13122 from TryTwo/PR_Audio_Configs
AudioPanel: Refactor to use Config system.
2025-03-28 14:52:54 -04:00
JosJuice
c7ede8a6b7
Merge pull request #13461 from JoshuaVandaele/warningsbegone
Fix shadowed variable warnings and missing declarations
2025-03-28 18:43:09 +01:00
JosJuice
ee22cf9b22
Merge pull request #13462 from jordan-woyak/android-wm-mapping-fix
Android/Input: Fix crash when mapping wii remote extensions.
2025-03-28 18:35:15 +01:00
Jordan Woyak
0a3feb3e42 Android/Input: Fix a crash when mapping wii remote extensions. 2025-03-27 18:29:02 -05:00
Joshua Vandaële
3a1a60d4f8
Fix shadowed variable warnings and missing declarations
- PPCSymbolDB:  Resolve shadowed variable warnings
- PerformanceMetrics:  Resolve shadowed variable warnings
- SWEfbInterface: Add missing declarations
2025-03-27 21:48:08 +01:00
Tilka
662cfa38c2
Merge pull request #13460 from jordan-woyak/play-time-tracker-thread-name
Core: Name the play time tracker thread.
2025-03-27 17:02:36 +00:00
JMC47
cb24821dcc
Merge pull request #13217 from cristian64/extract_gecko_creator_name
DolphinQt: Extract creator name from code name in Gecko codes.
2025-03-27 12:26:47 -04:00
Jordan Woyak
ebd879cb30 Core: Name the play time tracker thread. 2025-03-27 01:38:55 -05:00
TryTwo
e5608c6ca5 ConfigControl fix: Add invalid index check to ConfigComplexChoice. Resolve with a default index that can be set.
If more control is needed,  it could be changed to allow multiple states to point to the same index.
2025-03-26 13:15:57 -07:00
TryTwo
896b4bb1fa AudioPanel: Refactor to use Config system. Some options were changed to a different format, for easier compatibility.
Removed VolumeChanged signal, as ConfigChanged will trigger what is needed.

Only applies UpdateSoundStream to things that can change during emulation.

Settings::SetVolume might no longer be used, but left it in.
2025-03-26 12:26:01 -07:00
tygyh
1ecd6fbc9b Move variables to inner scope 2025-03-26 18:21:46 +01:00
Jordan Woyak
e351f03cdf VideoCommon: Fix out-of-bounds and disabled EFB access. 2025-03-26 01:23:16 -05:00
Jordan Woyak
849d8b7dae DolphinQt: Fix blank square in MappingWindow's top-left corner. 2025-03-25 20:52:29 -05:00
JMC47
1981f22228
Merge pull request #13433 from iwubcode/update_min_win10
Update our minimum windows 10 version to 1903 and reinstate code that depends on it
2025-03-25 18:30:15 -04:00
Dr. Dystopia
d2cc6760a0 Use Common::ToUnderlying 2025-03-25 21:25:46 +01:00
JMC47
eb84b0fb9b
Merge pull request #13442 from TryTwo/PR_CodeWidget_Layout_Tweak
Debugger CodeWidget: Small layout tweak
2025-03-25 13:19:02 -04:00
vyuuui
e34907025d Add numeric label support to assembler 2025-03-24 18:59:32 -07:00
JMC47
5d4b884e64
Merge pull request #13450 from Tilka/daring_game
GameSettings: fix startup crash in "The Daring Game for Girls"
2025-03-24 00:22:39 -04:00
Tillmann Karras
5a708f0f24 GameSettings: fix startup crash in "The Daring Game for Girls" 2025-03-23 23:28:22 +00:00
cristian64
6d8ba94e4c DolphinQt: Extract creator name from code name in Gecko codes.
Gecko codes in Dolphin feature a dedicated field for the creator of the
cheat code. When saved into the INI file, the code name and the creator
name are concatenated, and then inserted in the `[Gecko]` section:

```ini
[Gecko]
$<cheat code name> [<creator>]
<code line 1>
<code line 2>
<code line 3>
<...>
$<other cheat code name> [<creator>]
<code line 1>
<code line 2>
<code line 3>
<...>
```

On the other hand, enabled codes are listed under the `[Gecko_Enabled]`
section, but in this case the creator name is omitted from the line:

```ini
[Gecko_Enabled]
$<cheat code name>
$<other cheat code name>
```

Having the creator name in the `[Gecko]` section but not in the
`[Gecko_Enabled]` section is arguably not ideal, but this is legacy
behavior in Dolphin.

The **Cheat Code Editor** dialog is not acknowledging this subtle
behavior in Dolphin: the cheat code name and the creator name *can* be
both inserted in the name field. This issue manifests as an inconsistent
state where a Gecko code that *appears* to be enabled has no effect when
the game is launched.

As part of this fix, the creator name (if present) is now moved into the
dedicated creator field before the code is stored internally.

Test plan:

- Right-click on any game and open the **Properties** dialog.
- Switch to the **Gecko Codes** tab.
- Press the **Add New Code...** button.
- In the **Cheat Code Editor** dialog:
  - Enter `This is a test [Jane Doe]` in the **Name:** field.
  - Enter `01234567 00000000` in the **Code:** field.
  - Press **Save**.
- Observe that the newly added code is now in the list, and *appears* to
  be enabled.
- Close the **Properties** dialog.
- Right-click on the same game and open the **Properties** dialog again.

**Without** the fix, the newly added code, while still on the list, has
been inadvertently disabled (it was never really enabled!).

**With** the fix, the newly added code is the list and remains enabled.

This fixes https://bugs.dolphin-emu.org/issues/13695.
2025-03-23 21:37:23 +00:00
Dentomologist
0b128badae DolphinQt: Fix unresponsive hotkeys during framestep overlay move
Fix the following bug:

* Have a moveable ImGui overlay enabled, such as the Statistics window.
* Pause the game.
* Click and hold on the overlay's title bar as if you were going to move
  it. Because the screen isn't updating while the game is paused, you
  won't be able to actually move the overlay.
* Press the Frame Advance hotkey several times until it stops
  responding.

At this point emulation hotkeys are no longer responsive. This can be
resolved by selecting Play from the toolbar or menu, or selecting Frame
Advance from the menu a couple times, but it's annoying and not obvious
what's gone wrong or how to fix it.

Why the bug is happening:

* Doing a framestep while clicking on the overlay title bar causes ImGui
  to set IO.WantCaptureKeyboard to true, indicating that ImGui is
  requesting Dolphin ignore any keyboard events while the overlay is
  being interacted with.
* Dolphin complies with this request, causing
  Host_UIBlocksControllerState to return true and thus setting the input
  gate to ignore input.
* IO.WantCaptureKeyboard is only updated when ImGui::NewFrame() is
  called, which only happens at the end of each present. It thus remains
  true indefinitely since the game paused after the last framestep, and
  so Dolphin ignores any hotkeys such as the framestep or play keys.

The fix:

Ignore IO.WantCaptureKeyboard when the game is paused. ImGui can't
meaningfully capture input anyway when the game is paused, so this
shouldn't cause any problems elsewhere.

Once async presentation is implemented we'll want to revert this change,
both because it'll become unnecessary and because ImGui will be able to
do stuff while paused and so suppressing emulation hotkeys will actually
be useful.
2025-03-23 14:36:58 -07:00
JosJuice
9e9faf3be1 Android: Show message when trying to map disconnected device
Having the MotionAlertDialog immediately close is confusing for users.
Let's show a message to tell them what went wrong.
2025-03-23 21:39:08 +01:00
JosJuice
516c1314d2 Android: Don't use separate thread for MotionAlertDialog
This is an Android continuation of bc95c00. We now call
InputDetector::Update immediately after receiving an input event from
Android instead of periodically calling it in a sleep loop. This
improves detection of very short inputs, which are especially likely to
occur for volume buttons on phones (or at least on my phone) if you
don't intentionally keep them held down.
2025-03-23 21:39:04 +01:00
JMC47
ad3650abfc
Merge pull request #13093 from mitaclaw/ranges-modernization-4-projection
Ranges Algorithms Modernization - Projection
2025-03-23 15:56:13 -04:00
JMC47
1515cf6ccd
Merge pull request #13447 from JosJuice/bba-panic-tr
EXI: Make HLE BBA panic alerts translatable
2025-03-23 15:22:11 -04:00
JMC47
cef4d8fb76
Merge pull request #13432 from iwubcode/custom_pixel_fragment
VideoCommon: move to a 'process_fragment()' function to simplify custom shaders
2025-03-23 15:21:48 -04:00
JMC47
f50d2ee86c
Merge pull request #13425 from jordan-woyak/after-present-cleanup
Fix performance statistics when Skip Duplicate Frames is turned off.
2025-03-23 15:21:31 -04:00
JMC47
28f1beeca8
Merge pull request #13398 from jordan-woyak/perf-tracker
PerformanceTracker: Eliminate mutex. General cleanups.
2025-03-23 15:21:11 -04:00
JMC47
178462e10f
Merge pull request #13385 from Tilka/sp2_ad16
Fix AD16 and make SP2 configurable
2025-03-23 15:20:45 -04:00
JMC47
9b0471532c
Merge pull request #13368 from jordan-woyak/anisotropic-filtering
Use Game Requested Anisotropic Filtering
2025-03-23 15:17:24 -04:00
JMC47
2da255d8cd
Merge pull request #13311 from iwubcode/dynamic_input_textures_reduce_image_writes
Core / DolphinQt / InputCommon: reduce the number disk writes when using DynamicInputTextures
2025-03-23 15:12:28 -04:00
JMC47
e93f0de8a4
Merge pull request #13295 from jordan-woyak/controller-emu-cleanup
InputCommon/ControllerEmu: Break out functionality of EmulatedController to eliminate redundant members.
2025-03-23 15:12:06 -04:00
JosJuice
c1990bc687 EXI: Make HLE BBA panic alerts translatable
Also rewording the messages to make them clearer and fix typos.
2025-03-23 15:43:16 +01:00
iwubcode
8e253518e6 VideoCommon: move to a 'process_fragment()' function to simplify custom shaders and provide a direct override of the tev stage logic 2025-03-22 15:22:00 -05:00
iwubcode
e18d98d4fc Core: properly distinguish between ES title switches (Wii titles) and normal loading (GC, also called for Wii..); update config for ES title change, generate textures for both situations 2025-03-22 14:55:20 -05:00
iwubcode
d03f9032c1 Core / DolphinQt / InputCommon: reduce the number disk writes when using DynamicInputTextures 2025-03-22 14:53:02 -05:00
TryTwo
b0867c1602 CodeWidget: Layout tweak. Give left-side widgets more vertical space by moving the address bar out of the way. Align things better. 2025-03-21 09:55:52 -07:00
JMC47
18979129f3
Merge pull request #13441 from jordan-woyak/wm-speaker-cleanup
WiimoteEmu: Eliminate dynamic memory allocation in speaker data decoding.
2025-03-18 16:23:50 -04:00
Jordan Woyak
3bf2de369a WiimoteEmu: Eliminate dynamic memory allocation in speaker data decoding. 2025-03-18 03:12:50 -05:00
Jordan Woyak
561aee7707 Config: Expose Default and 1x Anisotropic Filtering setting. 2025-03-17 20:46:24 -05:00
Jordan Woyak
4b711e1e0a DolphinQt: Allow ConfigComplexChoice to handle DefaultState values. 2025-03-17 20:46:24 -05:00
Jordan Woyak
ba1bf6959e Config: Allow passing a DefaultState object to Set functions to delete keys. 2025-03-17 20:46:24 -05:00
Jordan Woyak
137d1375d4 Enable game-requested anisotropic filtering in Metal backend. 2025-03-17 20:46:24 -05:00
Pokechu22
79a1e480ca Enable anisotropic filtering when the game requests it 2025-03-17 20:46:19 -05:00
Jordan Woyak
a7d1cac8ad Core: Call PerformanceMetrics::CountFrame regardless of PresentReason. 2025-03-17 17:24:08 -05:00
JosJuice
0299540209
Merge pull request #13397 from jordan-woyak/perf-metrics
PerformanceMetrics: Eliminated a mutex. Code cleanups.
2025-03-17 23:20:41 +01:00
Tilka
3b8384acf6
Merge pull request #13438 from Tilka/heads/refs/warning
Fix -Wunused-lambda-capture warning
2025-03-17 22:16:46 +00:00
Tillmann Karras
6a90affa38 Fix -Wunused-lambda-capture warning 2025-03-17 20:08:19 +00:00
Joshua Vandaële
42fb43dacf
Implement multiple saves import
https://bugs.dolphin-emu.org/issues/12887
2025-03-17 10:43:09 +01:00
OatmealDome
0afbeae70c
Merge pull request #13430 from jordan-woyak/tatacon-desired-state
WiimoteEmu: Make TaTaCon DesiredState use only one byte of space.
2025-03-16 15:04:21 -04:00
OatmealDome
dc4cb7874a
Merge pull request #13428 from rsgnz/Contributing.md-changes
Contributing.md: Replace egrep with grep -E in clang-format command.
2025-03-16 14:59:49 -04:00
OatmealDome
49bee36e6a
Merge pull request #13435 from iwubcode/uninitialized_directx
VideoCommon: initialize uninitialized state value in pixel ubershader
2025-03-16 14:56:44 -04:00
OatmealDome
9720b1f5f5
Merge pull request #13411 from jordan-woyak/gui-vconfig
DolphinQt/GeneralWidget: Eliminate unnecessary g_Config usage.
2025-03-16 14:54:24 -04:00
OatmealDome
9e513d93e1
Merge pull request #13414 from jordan-woyak/vconfig-framedump
VideoConfig: Eliminate frame dumping members.
2025-03-16 14:53:47 -04:00
OatmealDome
07cec796f4
Merge pull request #13417 from luzpaz/typo-source-core-common
Core/Common: Fix typos
2025-03-16 14:53:02 -04:00
iwubcode
c5f89f2de9 VideoCommon: initialize uninitialized state value in pixel ubershader to prevent error on directx in some games 2025-03-16 11:35:56 -05:00
Jordan Woyak
48b2f7d200 VideoConfig: Eliminate frame dumping members. 2025-03-16 04:30:06 -05:00
iwubcode
c1dea828ab Common: use std::chrono for GetLocalTimeSinceJan1970 on Windows
Co-authored-by: Shawn Hoffman <godisgovernment@gmail.com>
2025-03-16 00:59:45 -05:00
iwubcode
452cd1c261 Core: use more recent api in ComputeDefaultCountryCode on Windows
Co-authored-by: Shawn Hoffman <godisgovernment@gmail.com>
2025-03-16 00:59:45 -05:00
iwubcode
373a1a5dc0 Update min win10 version from 1703/15063 to 1903/18362
Co-authored-by: Shawn Hoffman <godisgovernment@gmail.com>
2025-03-16 00:59:45 -05:00
JMC47
f4c37aeb14
Merge pull request #13423 from jordan-woyak/async-request-cleanup-1
AsyncRequests Cleanups.
2025-03-15 18:17:29 -04:00
Tillmann Karras
90b6f0d16d Config: make SP2 configurable 2025-03-15 22:03:17 +00:00
Tillmann Karras
951a84833a EXI: fix AD16
The GameCube IPL is now able to detect this device. However, this
triggers some memory clearing code that trips up Dolphin's I$.
2025-03-15 22:03:16 +00:00
Jordan Woyak
6aff82eda3 WiimoteEmu: Make TaTaCon DesiredState use only one byte of space. 2025-03-15 16:48:05 -05:00
JMC47
99cde4e269
Merge pull request #13395 from jordan-woyak/vi-HORIZONTAL_BEAM_POSITION-ticks
VideoInterface: Update m_ticks_last_line_start from the event's ticks value.
2025-03-15 17:27:07 -04:00
JMC47
1bd3e79fda
Merge pull request #13378 from jordan-woyak/desired-ext-state
WiimoteEmu: Clean up variant handling in DesiredExtensionState.
2025-03-15 17:26:49 -04:00
JMC47
e3deb14156
Merge pull request #13347 from iwubcode/custom_shader_overhaul_lighting
VideoCommon: move lighting shader logic to callable functions
2025-03-15 17:26:32 -04:00
Jordan Woyak
46e0952e97 PerformanceTracker: Use SPSCQueue and atomic to eliminate need for a mutex. Clean up some math. 2025-03-15 14:40:00 -05:00
Jordan Woyak
c763961112 PerformanceTracker: Use std::deque instead of hand-rolled circular
queue.
2025-03-15 14:40:00 -05:00
Jordan Woyak
b2ce3fbefc PerformanceTracker: Pass chrono values instead of us s64. 2025-03-15 14:40:00 -05:00
Jordan Woyak
ddb82a5e8c InputCommon/ControllerEmu: Break out functionality of EmulatedController
to eliminate redundant unused members in Wii Remote extension objects.
2025-03-15 14:30:43 -05:00
JMC47
225039f742
Merge pull request #13427 from LillyJadeKatrin/retroachievements-code-approval-fix
Fixed Multi Config Code Approvals
2025-03-15 13:57:48 -04:00
JosJuice
049e52ce1c
Merge pull request #13429 from JosJuice/fix-broken-merge
Fix broken merge of PR #13181
2025-03-15 17:53:11 +01:00
JosJuice
f2d1918714 Fix broken merge of PR #13181
This undoes one of the changes of PR #13181. I'm guessing the relevant
code changed between when the PR was last pushed to and when it was
merged.
2025-03-15 17:23:39 +01:00
JosJuice
e637a05707
Merge pull request #12866 from JosJuice/android-log-types-sorting
Android: Replace log type names map with array
2025-03-15 16:01:33 +01:00
JosJuice
1f087473aa
Merge pull request #12809 from JosJuice/jitarm64-cmp-sp
JitArm64: Replace a comparison to SP
2025-03-15 16:00:15 +01:00
JosJuice
b2f8dac739
Merge pull request #13271 from dreamsyntax/gradle-wrapper
Android: Upgrade AGP & Gradle
2025-03-15 15:59:21 +01:00
JosJuice
541344ef9b
Merge pull request #13240 from thalesmg/20241225-m-known-bt-addresses-config-only
feat(linux): allow configuring real wiimotes with known bluetooth addresses
2025-03-15 15:34:49 +01:00
JosJuice
8c7ab286f5
Merge pull request #13181 from tygyh/Replace-'reinterpret_cast'
Replace 'reinterpret_cast' with 'static_cast'
2025-03-15 15:31:38 +01:00
JosJuice
3fb4084e25
Merge pull request #13345 from Tilka/unswap_depth
Fix depth texture being incorrectly affected by swap table
2025-03-15 14:30:19 +01:00
JosJuice
fd2c6918fa
Merge pull request #13388 from jordan-woyak/vsync-not-recommended
DolphinQt: Don't recommend v-sync for optimal frame pacing in tool-tip.
2025-03-15 14:24:29 +01:00
LillyJadeKatrin
0615ade725 Fixed Multi Config Code Approvals
Refactors the AR/Gecko/Patch code approval process to verify from every possible game ini, not just the base game ID. This fixes codes on specific revisions or codes general to any region.
2025-03-15 07:57:16 -04:00
rsgnz
01978cfcf7 Contributing.md: Replace egrep with grep -E in clang-format command. 2025-03-15 10:02:53 +00:00
Jordan Woyak
2690a62949 Core: Remove unused GetActualEmulationSpeed function and related variables/functions. 2025-03-14 03:10:13 -05:00
Jordan Woyak
e1745f682f PerformanceMetrics: Eliminated a mutex. Code cleanups. 2025-03-14 03:10:13 -05:00
JMC47
4d3f247cc3
Merge pull request #13352 from Sam-Belliveau/granular_synthesis
AudioCommon: Granule Synthesis Audio System
2025-03-14 03:57:09 -04:00
Sam Belliveau
f09ba10daa AudioCommon: Added Granular Synthesis 2025-03-14 01:22:35 -05:00
OatmealDome
e82f03b825
Merge pull request #13408 from infirit/flatpakscreensaver
Update the flatpak with the changes how screensavers are handled
2025-03-14 02:19:05 -04:00
Jordan Woyak
6c158ed590 VideoCommon: Create AsyncRequests directly in MMU code to eliminate EFB-related functions in VideoBackendBase. 2025-03-14 01:14:51 -05:00
Jordan Woyak
63b848ca93 VideoCommon: Eliminate EFBAccessType enum. Eliminate union and switch statement handler in AsyncRequests. 2025-03-14 00:59:41 -05:00
iwubcode
15372dc835 VideoCommon: move lighting shader logic to callable functions 2025-03-13 23:56:04 -05:00
JMC47
ca9b34a6d1
Merge pull request #13394 from jordan-woyak/odd-even-pacing
VideoInterface: Adjust even-field to match odd-field pacing when PSB values differ.
2025-03-13 21:56:36 -04:00
JMC47
0e2785a562
Merge pull request #13387 from jordan-woyak/frame-pacing
CoreTiming: Improve frame pacing
2025-03-13 14:23:18 -04:00
JMC47
a421d6859f
Merge pull request #13418 from jordan-woyak/efb-interface
VideoCommon: Rename Renderer to EFBInterface.
2025-03-13 14:20:34 -04:00
Jordan Woyak
fdf00050a6 DolphinQt: Use tooltips on Advanced tab. 2025-03-13 05:32:16 -05:00
Jordan Woyak
5b36c13bfb VideoCommon: Rename Renderer to EFBInterface. 2025-03-12 21:09:16 -05:00
Luz Paz
1b47dbf519 Core/Common: Fix typos
Found via `codespell -q 3 -S "./Externals,./Data/Sys/wiitdb-??.txt,*.po,*.pot" -L andf,asnd,bootup,brocken,bufferin,clen,collet,datas,delt,diety,extint,fpr,inout,inport,interm,nd,nin,ontop,pixelx,re-use,re-used,sav,stateman,strat,transer,wil`
2025-03-11 19:48:45 -04:00
JMC47
de997d616f
Merge pull request #13416 from jordan-woyak/unused-viewport-correction
VertexShaderManager: Eliminate unnecessary m_viewport_correction member.
2025-03-11 19:00:55 -04:00
JMC47
b7bd0a0836
Merge pull request #13413 from jordan-woyak/vconfig-progressive
VideoConfig: Eliminate bForceProgressive.
2025-03-11 18:59:28 -04:00
JMC47
67c8d5640f
Merge pull request #13412 from jordan-woyak/netplay-vconfig
VideoConfig: Eliminate NetPlay related members.
2025-03-11 18:59:02 -04:00
JMC47
1698daef66
Merge pull request #13410 from jordan-woyak/movie-vconfig
Movie: Eliminate MovieManager::SetGraphicsConfig.
2025-03-11 18:58:45 -04:00
JMC47
a80062f1b1
Merge pull request #13400 from jordan-woyak/async-request-no-poke-merge
VideoCommon: Don't merge EFBPoke AsyncRequests.
2025-03-11 18:58:27 -04:00
Jordan Woyak
9b2ab6e259
Merge pull request #13407 from luzpaz/typo-data
Data: fix various typos
2025-03-11 15:37:59 -05:00
Jordan Woyak
c191ed5321 VertexShaderManager: Eliminate unnecessary m_viewport_correction member. 2025-03-11 03:55:57 -05:00
Jordan Woyak
5b88c0b90e DolphinQt/GeneralWidget: Eliminate unnecessary g_Config usage. 2025-03-10 20:19:45 -05:00
Jordan Woyak
de01a790e1 VideoConfig: Eliminate bForceProgressive. 2025-03-10 19:02:43 -05:00
Jordan Woyak
7f3d8a1ad4 VideoConfig: Eliminate NetPlay related members. 2025-03-10 18:53:44 -05:00
Jordan Woyak
44423a3656 Movie: Eliminate MovieManager::SetGraphicsConfig. 2025-03-10 18:16:49 -05:00
Jordan Woyak
7222188cde Core/VideoCommon: Push presentation time calculated from CPU thread to GPU thread. 2025-03-10 16:40:46 -05:00
Jordan Woyak
c4bd98c626 VideoInterface: Throttle before VBlank statistics counting. 2025-03-10 16:40:46 -05:00
Jordan Woyak
9ac9813492 SystemTimers: Throttle prior to performance marker. 2025-03-10 16:40:46 -05:00
Jordan Woyak
aa624d8ba8 BTEmu: Throttle prior to wii remote input update. 2025-03-10 16:40:46 -05:00
Jordan Woyak
9675c90890 VideoInterface: Throttle prior to SI poll. 2025-03-10 16:40:46 -05:00
Jordan Woyak
81e842e2aa CoreTiming: Don't Throttle in event queue processing. 2025-03-10 16:39:13 -05:00
Jordan Woyak
fe2d247acb VideoCommon: Don't merge EFBPoke AsyncRequests. 2025-03-10 16:37:24 -05:00
Luz Paz
cf1541a511 Data: fix various typos
Found via `codespell -q 3 -S "./Externals,./Data/Sys/wiitdb-??.txt,*.po,*.pot" -L andf,asnd,bootup,brocken,bufferin,clen,collet,datas,delt,diety,extint,fpr,inout,inport,interm,nd,nin,ontop,pixelx,re-use,re-used,sav,stateman,strat,transer,wil`
2025-03-10 16:54:34 -04:00
Sander Sweers
3705c73d55
xdg-screensaver was replaced by calling dbus interfaces 2025-03-10 21:44:58 +01:00
Sander Sweers
ae11ffadf6
Allow flatpak to talk to inhibit/screensaver dbus interfaces 2025-03-10 21:44:58 +01:00
mitaclaw
433c6ce0f2 GCC: Remedy NRVO Fails
Using the `-Wnrvo` flag introduced by GCC 14, I identified a few places where NRVO was clearly intended, but is fumbled.
2025-03-10 12:38:03 -07:00
JMC47
5ed8b7bc9d
Merge pull request #13403 from jordan-woyak/backend_info
VideoCommon: Move backend_info out of VideoConfig struct.
2025-03-10 15:06:19 -04:00
JMC47
d45e6c6729
Merge pull request #13401 from jordan-woyak/exit-gpu-loop
Core/VideoBackendBase: Call ExitGpuLoop from Core to eliminate Video_ExitLoop.
2025-03-10 15:05:30 -04:00
JMC47
203454a97a
Merge pull request #13396 from jordan-woyak/vi-odd-even
VideoInterface: Cleanup and minor fix in Update.
2025-03-10 15:05:12 -04:00
JMC47
ff4486ee23
Merge pull request #13340 from Dentomologist/state_show_decompressing_osd_longer
State: Show "Decompressing State..." OnScreenDisplay message for longer
2025-03-10 15:04:50 -04:00
JMC47
189d09011b
Merge pull request #13363 from JoshuaVandaele/nowarnings
Fix multiple minor warnings
2025-03-10 15:04:14 -04:00
JMC47
3f73a39dbd
Merge pull request #13286 from JoshuaVandaele/xcb
Enforce XCB within code
2025-03-10 15:03:54 -04:00
JMC47
9f43f59c9b
Merge pull request #13276 from JoshuaVandaele/sfml-3.0.0
Migrate to SFML 3.0.0
2025-03-10 15:03:36 -04:00
JosJuice
13d966760d
Merge pull request #13362 from MackdannyTwitch/dolphin-RA-approved-cheats-
Added widescreen code for Tomb Raider: Legend GL8.ini
2025-03-10 19:13:34 +01:00
OatmealDome
9e23a0a506 Merge branch 'release-prep-2503' 2025-03-10 12:34:02 -04:00
MackdannyTwitch
ba40e4abad Added widescreen code for Tomb Raider: Legend GL8.ini
As the PS2 version is the only one with proper 16:9 widescreen, this cheat brings widescreen to the Gamecube version. This cheat has been tested on the NTSC version, but is stated to be region free.
2025-03-10 01:41:25 -05:00
JosJuice
1cc6b6c5d8
Merge pull request #13384 from MackdannyTwitch/TR-has-graphical-issues
Fix graphical corruption bug in Tomb Raider: Legend
2025-03-09 23:59:45 +01:00
Tilka
f4e6878384
Merge pull request #13406 from Tilka/snow
GameSettings: fix shadows in Triple Crown Championship Snowboarding
2025-03-09 22:48:47 +00:00
Tillmann Karras
cbd71f06ba GameSettings: fix shadows in Triple Crown Championship Snowboarding 2025-03-09 20:50:22 +00:00
mitaclaw
e4efe011d7 Modernize std::max_element with ranges and projections 2025-03-09 13:26:39 -07:00
mitaclaw
258ec4f9cd Modernize std::lower_bound/upper_bound with ranges and projections 2025-03-09 13:26:38 -07:00
mitaclaw
c9f589faa5 Modernize std::stable_sort with ranges and projections 2025-03-09 13:26:38 -07:00
mitaclaw
8b9f92a0af Modernize std::sort with ranges and projections
In PPCTables.cpp, the code is currently unused so I was unable to test it.

In CustomPipeline.cpp, a pointer to member function cannot be used due to 16.4.5.2.1 of the C++ Standard regarding "addressable functions". https://eel.is/c++draft/namespace.std#6

In Fs.cpp and DirectoryBlob.cpp, these examples used projections in a previous iteration of this commit, but no longer do. Still, they remain in this commit because the PR they would actually belong to is already merged.
2025-03-09 13:26:38 -07:00
mitaclaw
9f972db4b8 Modernize std::none_of with ranges and projections 2025-03-09 13:26:37 -07:00
mitaclaw
00e147c722 Simplify std::count_if with std::ranges::count and projections 2025-03-09 13:26:37 -07:00
mitaclaw
62b2b939b5 Simplify std::find_if with std::ranges::find and projections
In LabelMap.cpp, the code is currently unused so I was unable to test it.

In WiiUtils.cpp, the magic value `1u` was replaced by the constant value `DiscIO::PARTITION_UPDATE`.
2025-03-09 13:26:35 -07:00
mitaclaw
1e5e9219cd Common: Create Range Projections For std::pair 2025-03-09 13:19:41 -07:00
JosJuice
87496205aa
Merge pull request #13404 from luzpaz/typo-source-core-windupdater
Core/WinUpdater: fix typo
2025-03-09 12:03:56 +01:00
JosJuice
e974e48e1f
Merge pull request #13405 from luzpaz/typo-source-core-core
Core/Core: fix typos
2025-03-09 12:03:34 +01:00
Jordan Woyak
c18c039089 VideoCommon: Move backend_info out of VideoConfig struct. 2025-03-09 01:42:45 -06:00
Luz Paz
fb6c625fed Core/Core: fix typos
Found via `codespell -q 3 -S "./Externals,./Data/Sys/wiitdb-??.txt,*.po,*.pot" -L andf,asnd,bootup,bufferin,clen,collet,datas,delt,fpr,inout,inport,interm,pixelx,re-use,re-used,sav,stateman,strat,wil`
2025-03-08 15:41:53 -05:00
Luz Paz
9b7d494bd4 Core/WinUpdater: fix typo 2025-03-08 09:58:50 -05:00
JosJuice
d2b4e12f9e
Merge pull request #13399 from luzpaz/typos-macOS
CMake: fix various typos
2025-03-08 12:23:13 +01:00
Jordan Woyak
7925240107 Core/VideoBackendBase: Call ExitGpuLoop from Core to eliminate Video_ExitLoop. 2025-03-07 17:30:33 -06:00
Luz Paz
325c1a24b9 CMake: fix various typos
Also includes a fix for BuildMacOSUniversalBinary.py
2025-03-05 20:57:52 -05:00
Admiral H. Curtiss
99e686de34
Merge pull request #13393 from luzpaz/dbz
GraphicMods: Fix typo in DBZ Budokai Tenkaichi 3/metadata.json
2025-03-06 00:02:32 +01:00
Jordan Woyak
5ff2af9b6a VideoInterface: Cleanup and minor fix in Update. 2025-03-04 20:39:14 -06:00
dreamsyntax
5beb136992 Android: Upgrade AGP & Gradle
AGP 8.2.0 -> 8.9.0
Gradle and wrapper to 8.11.1
Baseline Profile plugin to 1.3.3
2025-03-04 18:28:01 -07:00
Jordan Woyak
16d75eadb5 VideoInterface: Update m_ticks_last_line_start from the event's ticks
value rather than the potentially "cycles late" value.
2025-03-04 15:33:51 -06:00
Jordan Woyak
b28dcf3687 VideoInterface: Adjust even-field to match odd-field pacing when PSB values differ. 2025-03-04 04:52:24 -06:00
Luz Paz
38099f282d GraphicMods: Fix typo in DBZ Budokai Tenkaichi 3/metadata.json 2025-03-04 04:35:10 -05:00
Admiral H. Curtiss
3c5da38177
Merge pull request #13390 from jordan-woyak/ciface-clock
InputCommon: Use Clock from CommonTypes.
2025-03-03 22:29:25 +01:00
Tilka
ecb0a3e5c7
Merge pull request #13389 from iwubcode/static_texcoords_vertex_shadergen
VideoCommon: mark 'WriteTexCoordTransforms' as 'static'
2025-03-03 02:45:52 +00:00
Jordan Woyak
e217d6c939 InputCommon: Use Clock from CommonTypes. 2025-03-02 15:42:26 -06:00
iwubcode
6dedf11c96 VideoCommon: mark 'WriteTexCoordTransforms' as 'static' 2025-03-02 11:27:54 -06:00
Jordan Woyak
5d16c51963 DolphinQt: Don't recommend v-sync for optimal frame pacing in tool-tip. 2025-03-02 05:43:00 -06:00
MackdannyTwitch
5dd10b9644 Fix graphical corruption bug in Tomb Raider: Legend
Tomb Raider: Legend has a graphical bug, as documented in the issue report here https://bugs.dolphin-emu.org/issues/13749?next_issue_id=13748

This .ini entry fixes the issue.
2025-03-01 03:07:12 -07:00
Jordan Woyak
3f92f86de1 WiimoteEmu: Add a static_assert in DesiredExtensionState to keep variant alternative order consistent. 2025-02-25 17:22:59 -06:00
Jordan Woyak
0d0734e083 WiimoteEmu: Clean up variant handling in DesiredExtensionState. 2025-02-25 17:22:59 -06:00
Jordan Woyak
1d481a395a VariantUtil: Introduce WithVariantAlternative to dynamically construct and visit a variant alternative. 2025-02-25 17:22:59 -06:00
Tillmann Karras
4e460a7968 UberShaderPixel: use unswapped texture samples for depth 2025-02-25 18:45:01 +00:00
Tillmann Karras
359fb51d64 PixelShaderGen: use unswapped texture samples for depth 2025-02-25 18:45:01 +00:00
Tillmann Karras
7abb9e7974 Sofware/Tev: use unswapped texture samples for depth 2025-02-25 18:45:01 +00:00
Joshua Vandaële
0a83783fae
Migrate to SFML>=3.0.0 2025-02-25 06:42:13 +01:00
Thales MG
97bc28aac4 feat(linux): allow configuring real wiimotes with known bluetooth addresses
This adds the option to configure real Wiimotes by specifying their Bluetooth addresses in
the configuration file.  This allows off-brand Wiimotes to work without using the
Bluetooth Passthrough option, if you know their Bluetooth addresses beforehand.

Despite correctly setting the LAP to `0x9e8b00` in `WiimoteScannerLinux::FindWiimotes`
while scanning, which is indeed enough to make off-brand / knock-off Wiimotes respond to a
Bluetooth Inquiry, some (several? all?) bluetooth adapters seem to override and ignore
this given LAP value when performing the Inquiry, and actually use the `0x9e8b33` value as
if a null pointer have been given to `hci_inquiry`, as inspection of USB/Bluetooth packets
by Wireshark indicate.  Off-brand Wiimotes don't respond to inquiries with this LAP.

If one happens to know the Bluetooth address of their Wiimote (for example, by checking
`BluetoothPassthrough.LinkKeys` after using Bluetooth Passthrough, or other means such as
directly using `libusb` to force the adapter to use the correct LAP in the Inquiry), then
it's enough to add those addresses to the vector of found Wiimotes.

Since this a niche use case and I only happen to know and have tested in Linux, this
change only affects the `WiimoteScannerLinux` backend.  It's likely that it could be added
to other backends, but I'm unfamiliar with these.

If no addresses are given or this config section does not exist, behavior is completely
unchanged.
2025-02-23 18:27:48 -03:00
Joshua Vandaële
5b4d4ca5eb
Fix multiple minor warnings
- ExpressionParser.cpp: `-Wmissing-declarations`
- AchievementManager.cpp: `-Wsign-compare`
- SI.cpp: `-Warray-bounds=`
- NetPlayClient.cpp: `-Wdangling-reference`
2025-02-21 19:17:29 +01:00
Dentomologist
363155b597 State: Increase Decompressing OSD message duration
Show the "Decompressing State..." message for 2 seconds, instead of the
half-second duration that caused it to be halfway faded out immediately.
2025-02-06 17:17:18 -08:00
Joshua Vandaële
a3b06b0572
Enforce XCB within code 2025-01-20 11:57:21 +01:00
JosJuice
48a7afa448 JitArm64: Use AArch64 imm masks in rlwimix slow case
All valid PPC imm masks (except for all zeroes and all ones) are also
valid AArch64 imm masks. This lets us optimize things a little.

Note that because I'm now ANDing rS before rotating it, its AND mask
is rotated left. All AArch64 imm masks can be rotated by any amount and
still be valid AArch64 imm masks.
2024-12-25 16:12:21 +01:00
Dr. Dystopia
6d44afc7dd Replace 'reinterpret_cast' with 'static_cast' 2024-11-08 07:26:47 +01:00
JosJuice
d48e6e25ad DolphinQt: Call FIFOPlayerWindow::UpdateControls for Starting/Stopping
Follow-up for
https://github.com/dolphin-emu/dolphin/pull/12918#discussion_r1785153070.
2024-10-20 13:38:24 +02:00
Dr. Dystopia
096ab8c026 Replace ties with structured bindings - UnitTests 2024-08-20 15:09:44 +02:00
JosJuice
ea7928b3cd Android: Replace log type names map with array
Storing the log type names in a map results in them getting re-sorted by
their keys, which doesn't quite give us the sorting we want. In
particular, the Achievements category ended up being sorted at R (for
RetroAchivements) instead of at A. Every use of the map is just
iterating through it, so there's no real reason why it has to be a map
anyway.
2024-06-15 20:06:34 +02:00
JosJuice
dc6e5e7ff6 JitArm64: Replace a comparison to SP
Comparing with an immediate 0 has the same effect but is much easier to
read.
2024-05-26 08:47:20 +02:00
1215 changed files with 117176 additions and 143198 deletions

9
.gitmodules vendored
View File

@ -84,3 +84,12 @@
[submodule "Externals/Vulkan-Headers"]
path = Externals/Vulkan-Headers
url = https://github.com/KhronosGroup/Vulkan-Headers.git
[submodule "Externals/watcher/watcher"]
path = Externals/watcher/watcher
url = https://github.com/e-dant/watcher.git
[submodule "Externals/SFML/SFML"]
path = Externals/SFML/SFML
url = https://github.com/SFML/SFML.git
[submodule "Externals/zstd/zstd"]
path = Externals/zstd/zstd
url = https://github.com/facebook/zstd.git

View File

@ -57,13 +57,9 @@ DEFAULT_CONFIG = {
# SHA checksum to verify the integrity of the app. This doesn't
# protect against malicious actors, but it does protect against
# running corrupted binaries and allows for access to the extended
# permisions needed for ARM builds
# permissions needed for ARM builds
"codesign_identity": "-",
# Minimum macOS version for each architecture slice
"arm64_mac_os_deployment_target": "11.0.0",
"x86_64_mac_os_deployment_target": "10.15.0",
# CMake Generator to use for building
"generator": "Unix Makefiles",
"build_type": "Release",
@ -77,7 +73,7 @@ DEFAULT_CONFIG = {
"distributor": "None"
}
# Architectures to build for. This is explicity left out of the command line
# Architectures to build for. This is explicitly left out of the command line
# config options for several reasons:
# 1) Adding new architectures will generally require more code changes
# 2) Single architecture builds should utilize the normal generated cmake
@ -146,11 +142,6 @@ def parse_args(conf=DEFAULT_CONFIG):
help=f"Install path for {arch} qt5 libraries",
default=conf[arch+"_qt5_path"])
parser.add_argument(
f"--{arch}_mac_os_deployment_target",
help=f"Deployment architecture for {arch} slice",
default=conf[arch+"_mac_os_deployment_target"])
return vars(parser.parse_args())
@ -297,8 +288,7 @@ def build(config):
"-DCMAKE_PREFIX_PATH="+prefix_path,
"-DCMAKE_SYSTEM_PROCESSOR="+arch,
"-DCMAKE_IGNORE_PATH="+ignore_path,
"-DCMAKE_OSX_DEPLOYMENT_TARGET="
+ config[arch+"_mac_os_deployment_target"],
"-DCMAKE_OSX_DEPLOYMENT_TARGET=11.0.0",
"-DMACOS_CODE_SIGNING_IDENTITY="
+ config["codesign_identity"],
'-DMACOS_CODE_SIGNING="ON"',

View File

@ -11,7 +11,7 @@
# FFmpeg_LIBRARIES: aggregate all the paths to the libraries
# FFmpeg_FOUND: True if all components have been found
#
# This module defines the following targets, which are prefered over variables:
# This module defines the following targets, which are preferred over variables:
#
# FFmpeg::<component>: Target to use <component> directly, with include path,
# library and dependencies set up. If you are using a static build, you are

View File

@ -87,9 +87,10 @@ if(SFML_FIND_VERSION AND SFML_INCLUDE_DIR)
set(SFML_CONFIG_HPP_INPUT "${SFML_INCLUDE_DIR}/SFML/Config.hpp")
endif()
FILE(READ "${SFML_CONFIG_HPP_INPUT}" SFML_CONFIG_HPP_CONTENTS)
STRING(REGEX MATCH ".*#define SFML_VERSION_MAJOR ([0-9]+).*#define SFML_VERSION_MINOR ([0-9]+).*" SFML_CONFIG_HPP_CONTENTS "${SFML_CONFIG_HPP_CONTENTS}")
STRING(REGEX REPLACE ".*#define SFML_VERSION_MAJOR ([0-9]+).*" "\\1" SFML_VERSION_MAJOR "${SFML_CONFIG_HPP_CONTENTS}")
STRING(REGEX REPLACE ".*#define SFML_VERSION_MINOR ([0-9]+).*" "\\1" SFML_VERSION_MINOR "${SFML_CONFIG_HPP_CONTENTS}")
STRING(REGEX MATCH "#define SFML_VERSION_MAJOR[ \t]+([0-9]+)" SFML_VERSION_MAJOR_MATCH "${SFML_CONFIG_HPP_CONTENTS}")
STRING(REGEX MATCH "#define SFML_VERSION_MINOR[ \t]+([0-9]+)" SFML_VERSION_MINOR_MATCH "${SFML_CONFIG_HPP_CONTENTS}")
STRING(REGEX REPLACE "#define SFML_VERSION_MAJOR[ \t]+([0-9]+)" "\\1" SFML_VERSION_MAJOR "${SFML_VERSION_MAJOR_MATCH}")
STRING(REGEX REPLACE "#define SFML_VERSION_MINOR[ \t]+([0-9]+)" "\\1" SFML_VERSION_MINOR "${SFML_VERSION_MINOR_MATCH}")
math(EXPR SFML_REQUESTED_VERSION "${SFML_FIND_VERSION_MAJOR} * 10 + ${SFML_FIND_VERSION_MINOR}")
# if we could extract them, compare with the requested version number
@ -102,10 +103,14 @@ if(SFML_FIND_VERSION AND SFML_INCLUDE_DIR)
set(SFML_VERSION_OK FALSE)
endif()
else()
# SFML version is < 2.0
if (SFML_REQUESTED_VERSION GREATER 19)
# SFML version is < 3.0
if (SFML_REQUESTED_VERSION GREATER 29)
set(SFML_VERSION_OK FALSE)
set(SFML_VERSION_MAJOR 1)
if (SFML_REQUESTED_VERSION GREATER 19)
set(SFML_VERSION_MAJOR 1)
else()
set(SFML_VERSION_MAJOR 2)
endif()
set(SFML_VERSION_MINOR x)
endif()
endif()

View File

@ -33,7 +33,7 @@ endif()
string(TIMESTAMP DOLPHIN_WC_BUILD_DATE "%Y-%m-%d" UTC)
# version number
set(DOLPHIN_VERSION_MAJOR "2503")
set(DOLPHIN_VERSION_MAJOR "2506")
set(DOLPHIN_VERSION_MINOR "0")
set(DOLPHIN_VERSION_PATCH ${DOLPHIN_WC_REVISION})

View File

@ -24,7 +24,7 @@ endif()
# Minimum OS X version.
# This is inserted into the Info.plist as well.
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15.0" CACHE STRING "")
set(CMAKE_OSX_DEPLOYMENT_TARGET "11.0.0" CACHE STRING "")
set(CMAKE_USER_MAKE_RULES_OVERRIDE "${CMAKE_CURRENT_SOURCE_DIR}/CMake/FlagsOverride.cmake")
@ -44,7 +44,7 @@ endif()
set(COMPILER ${CMAKE_CXX_COMPILER_ID})
if (COMPILER STREQUAL "GNU")
set(COMPILER "GCC") # perfer printing GCC instead of GNU
set(COMPILER "GCC") # prefer printing GCC instead of GNU
endif()
# Enforce minimum compiler versions that support the c++20 features we use
@ -124,6 +124,11 @@ option(OPROFILING "Enable profiling" OFF)
# TODO: Add DSPSpy
option(DSPTOOL "Build dsptool" OFF)
# RetroAchievements developer tools require Windows hooks
if(WIN32)
option(RC_CLIENT_SUPPORTS_RAINTEGRATION "Enables RetroAchievements developer tools" ON)
endif()
# Enable SDL by default on operating systems that aren't Android.
if(NOT ANDROID)
option(ENABLE_SDL "Enables SDL as a generic controller backend" ON)
@ -132,6 +137,8 @@ else()
endif()
if(APPLE)
enable_language(OBJC)
enable_language(OBJCXX)
option(MACOS_USE_DEFAULT_SEARCH_PATH "Don't prioritize system library paths" OFF)
option(SKIP_POSTPROCESS_BUNDLE "Skip postprocessing bundle for redistributability" OFF)
# Enable adhoc code signing by default (otherwise makefile builds on ARM will not work)
@ -144,6 +151,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
option(ENABLE_VTUNE "Enable Intel VTune integration for JIT code." OFF)
if(NOT ANDROID)
option(ENABLE_HWDB "Enables the udev hardware database" ON)
option(ENABLE_EVDEV "Enables the evdev controller backend" ON)
endif()
endif()
@ -407,7 +415,7 @@ if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L/usr/local/lib")
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 14.0)
# Workaround: the llvm libc++ and versions of clang eariler than 14 have a bug with consteval
# Workaround: the llvm libc++ and versions of clang earlier than 14 have a bug with consteval
# so we define FMT_CONSTEVAL to blank to just disable consteval in fmt
add_definitions(-DFMT_CONSTEVAL=)
endif()
@ -566,6 +574,16 @@ if(OPROFILING)
endif()
endif()
if(ENABLE_HWDB)
find_package(LIBUDEV REQUIRED)
if(LIBUDEV_FOUND)
message(STATUS "libudev found, enabling hardware database")
add_definitions(-DHAVE_LIBUDEV=1)
else()
message(FATAL_ERROR "Couldn't find libudev. Can't build hardware database.\nDisable ENABLE_HWDB if you wish to build without hardware database support")
endif()
endif()
if(ENABLE_EVDEV)
find_package(LIBUDEV REQUIRED)
find_package(LIBEVDEV REQUIRED)
@ -586,7 +604,7 @@ if(UNIX)
endif()
if(ENABLE_SDL)
dolphin_find_optional_system_library(SDL2 Externals/SDL 2.30.9)
dolphin_find_optional_system_library(SDL3 Externals/SDL 3.2.0)
endif()
if(ENABLE_ANALYTICS)
@ -673,10 +691,10 @@ dolphin_make_imported_target_if_missing(LibLZMA::LibLZMA LIBLZMA)
dolphin_find_optional_system_library_pkgconfig(ZSTD libzstd>=1.4.0 zstd::zstd Externals/zstd)
add_subdirectory(Externals/zlib-ng)
dolphin_find_optional_system_library_pkgconfig(ZLIB zlib>=1.3.1 ZLIB::ZLIB Externals/zlib-ng)
dolphin_find_optional_system_library_pkgconfig(MINIZIP
"minizip>=4.0.4" minizip::minizip Externals/minizip-ng
dolphin_find_optional_system_library_pkgconfig(minizip-ng
"minizip-ng>=4.0.4" minizip-ng::minizip-ng Externals/minizip-ng
)
dolphin_find_optional_system_library(LZO Externals/LZO)
@ -696,11 +714,6 @@ if (APPLE OR WIN32)
include_directories(Externals/ed25519)
endif()
# Using static soundtouch from Externals
# Unable to use system soundtouch library: We require shorts, not floats.
add_subdirectory(Externals/soundtouch)
include_directories(Externals/soundtouch)
if(ENABLE_CUBEB)
dolphin_find_optional_system_library(CUBEB Externals/cubeb)
add_definitions(-DHAVE_CUBEB)
@ -713,7 +726,7 @@ if(NOT ANDROID)
add_definitions(-D__LIBUSB__)
endif()
dolphin_find_optional_system_library(SFML Externals/SFML 2.1 COMPONENTS network system)
dolphin_find_optional_system_library(SFML Externals/SFML 3.0 COMPONENTS Network System)
if(USE_UPNP)
dolphin_find_optional_system_library(MINIUPNPC Externals/miniupnpc 1.6)
@ -773,6 +786,8 @@ if (USE_RETRO_ACHIEVEMENTS)
add_subdirectory(Externals/rcheevos)
endif()
add_subdirectory(Externals/watcher)
########################################
# Pre-build events: Define configuration variables and write SCM info header
#

View File

@ -39,7 +39,7 @@ This guide is for developers who wish to contribute to the Dolphin codebase. It
Following this guide and formatting your code as detailed will likely get your pull request merged much faster than if you don't (assuming the code itself has no mistakes).
This project uses clang-format 13.0 to check for common style issues. In case of conflicts between this guide and clang-format rules, the latter should be followed instead of this guide.
This project uses clang-format 19.1 to check for common style issues. In case of conflicts between this guide and clang-format rules, the latter should be followed instead of this guide.
## <a name="intro-formatting-issues"></a>Checking and fixing formatting issues
@ -49,7 +49,7 @@ In most cases, clang-format can and **should** be used to automatically reformat
- To run clang-format on all staged files:
```
git diff --cached --name-only | egrep '[.](cpp|h|mm)$' | xargs clang-format -i
git diff --cached --name-only | grep -E '[.](cpp|h|mm)$' | xargs -I {} clang-format -i {}
```
- Formatting issues can be checked for before committing with a lint script that is included with the codebase. To enable it as a pre-commit hook (assuming you are in the repository root):

File diff suppressed because one or more lines are too long

View File

@ -9,9 +9,9 @@ SafeTextureCacheColorSamples = 0
[Video_Hacks]
# Some very early NES releases use a version of the NES emulator that doesn't require EFB2Ram.
# All US releases before Feburary 2007 use this version (with all remaining US releases requiring EFB2Ram).
# All US releases before February 2007 use this version (with all remaining US releases requiring EFB2Ram).
# But in the PAL region the same games don't necessarily have the same emulator version and
# only a few of the pre-Feburary 2007 releases don't require EFB2Ram.
# only a few of the pre-February 2007 releases don't require EFB2Ram.
#
# Because of this, Inifiles that override this setting should only be created for the explicit region
# that was tested and they should not be merged.

View File

@ -1,5 +1,5 @@
# FAAE01 - Donkey Kong
[Video_Hacks]
# All US NES VC titles released before Feburary 2007 don't need EFB2ram
# All US NES VC titles released before February 2007 don't need EFB2ram
EFBToTextureEnable =

View File

@ -1,5 +1,5 @@
# FAGE01 - Super Mario Bros.
[Video_Hacks]
# All US NES VC titles released before Feburary 2007 don't need EFB2ram
# All US NES VC titles released before February 2007 don't need EFB2ram
EFBToTextureEnable =

View File

@ -0,0 +1,11 @@
# G97E01, G97P01, G97U01 - Interactive Multi Game Demo Disc v3
[Core]
# Values set here will override the main Dolphin settings.
CPUThread = False
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.

View File

@ -0,0 +1,13 @@
# GCAE5H - Cubix Robots for Everyone: Showdown
[Core]
# Values set here will override the main Dolphin settings.
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.
[Video_Hacks]
ImmediateXFBEnable = False

View File

@ -1,18 +1,17 @@
# RELJAB - SegaBoot
# GFOE78, GFOP78 - The Fairly OddParents: Shadow Showdown
[Core]
# Values set here will override the main Dolphin settings.
[OnFrame]
# Add memory patches to be applied every frame here.
$DI Seed Blanker
0x80000000:dword:0x00000000
0x80000004:dword:0x00000000
0x80000008:dword:0x00000000
[Patches_RetroAchievements_Verified]
$DI Seed Blanker
[ActionReplay]
# Add action replay cheats here.
[Video_Settings]
# Needed for some FMVs.
SafeTextureCacheColorSamples = 512
[Video_Hacks]
ImmediateXFBEnable = False

View File

@ -0,0 +1,17 @@
# GFWE78 - The Fairly OddParents: Breakin' Da Rules
[Core]
# Values set here will override the main Dolphin settings.
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.
[Video_Settings]
# Needed for some FMVs.
SafeTextureCacheColorSamples = 512
[Video_Hacks]
ImmediateXFBEnable = False

View File

@ -0,0 +1,5 @@
# GIHP78 - Scooby-Doo! Night of 100 Frights
[Video_Settings]
# Fixes video stuttering on FMVs encoded at 25 FPS
SafeTextureCacheColorSamples = 512

View File

@ -1,4 +1,4 @@
# GJNE78 - Jimmy Neutron Boy Genius
# GJNP78, GJNE78, GJND78 - Jimmy Neutron Boy Genius
[Core]
# Values set here will override the main Dolphin settings.
@ -12,4 +12,7 @@
[Video_Settings]
[Video_Hacks]
# Fixes missing splash logo at boot, title screen, and loading screens.
EFBAccessEnable = True
# Fixes FMVs not showing.
ImmediateXFBEnable = False

View File

@ -0,0 +1,14 @@
# GJYE78, GJYP78 - The Adventures of Jimmy Neutron Boy Genius: Attack of the Twonkies
[Core]
# Values set here will override the main Dolphin settings.
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.
[Video_Settings]
# Needed for some FMVs.
SafeTextureCacheColorSamples = 512

View File

@ -11,3 +11,9 @@
[Video_Hacks]
EFBToTextureEnable = False
DeferEFBCopies = False
[Gecko]
$Widescreen 16:9 (Region Free)
04007B7C 38600001
*Renders the game in Widescreen 16:9

View File

@ -1,8 +1,9 @@
# GM2E8P, GM2J8P, GM2P8P - SUPER MONKEY BALL 2
# GM2E8P, GM2J8P, GM2P8P - Super Monkey Ball 2
[Core]
# Values set here will override the main Dolphin settings.
FPRF = True
CPUThread = False
[OnFrame]
# Add memory patches to be applied every frame here.

View File

@ -3,6 +3,7 @@
[Core]
# Values set here will override the main Dolphin settings.
FPRF = True
CPUThread = False
[OnFrame]
# Add memory patches to be applied every frame here.

View File

@ -1,4 +1,4 @@
# GNOE78 - Nicktoons Unite!
# GNOE78, GNOX78 - Nicktoons Unite!
[Core]
# Values set here will override the main Dolphin settings.

View File

@ -968,7 +968,7 @@ $Minigame: Memory Lane - No Trail [Airsola]
204d6a0f 00000000
044d699f 0000003f
e2000002 80008000
*Shy Guy will no longer leave a trail durning the demo in the minigame Memory Lane.
*Shy Guy will no longer leave a trail during the demo in the minigame Memory Lane.
$Minigame: Mole It All Moles are Worth 3 Points [gamemasterplc]
204D57F0 A8A10008

View File

@ -1164,7 +1164,7 @@ $Mechanics - Use Multiple Orbs in the Same Turn [Ralf]
041E3764 3860FFFF
*Does not work with CPUs
$Mechanics - Vaccum Orb Always Steals 5 Coins
$Mechanics - Vacuum Orb Always Steals 5 Coins
041c8a34 38600005
$Minigame: Balloonatic - 25 Second Timer [Airsola]

View File

@ -0,0 +1,11 @@
# GPLE9G, GPLP9G, GPLD9G, GPLF9G - Piglet's Big Game
[Core]
# Values set here will override the main Dolphin settings.
CPUThread = False
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.

View File

@ -12,4 +12,7 @@
[Video_Settings]
[Video_Hacks]
# Fixes FMVs tearing
EarlyXFBOutput = False
# Fixes FMVs not showing
ImmediateXFBEnable = False

View File

@ -10,5 +10,6 @@ MemoryCardSize = 2
[ActionReplay]
# Add action replay cheats here.
[Video_Settings]
# Needed for some FMVs.
SafeTextureCacheColorSamples = 512

View File

@ -0,0 +1,12 @@
# GQNE5D - Mortal Kombat: Deception
[Core]
# Values set here will override the main Dolphin settings.
# Dual Core mode causes FIFO error
CPUThread = False
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.

View File

@ -0,0 +1,14 @@
# GQQD78, GQQE78, GQQF78, GQQH78, GQQP78 - SpongeBob SquarePants: Lights, Camera, Pants!
[Core]
# Values set here will override the main Dolphin settings.
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.
[Video_Settings]
# Needed for some FMVs.
SafeTextureCacheColorSamples = 512

File diff suppressed because it is too large Load Diff

View File

@ -1,14 +1,11 @@
# GFBE5D - FireBlade
# GRAE5Z, GRAP75 - Rally Championship
[Core]
# Values set here will override the main Dolphin settings.
CPUThread = False
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.
[Video_Hacks]
EFBToTextureEnable = True

View File

@ -12,6 +12,7 @@
[Video]
[Video_Settings]
SuggestedAspectRatio = 2
[Video_Hacks]
ImmediateXFBEnable = False

View File

@ -0,0 +1,14 @@
# GU6E78 - Nicktoons: Battle for Volcano Island
[Core]
# Values set here will override the main Dolphin settings.
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.
[Video_Hacks]
# Needed for some FMVs.
ImmediateXFBEnable = False

View File

@ -2,6 +2,7 @@
[Core]
# Values set here will override the main Dolphin settings.
CPUThread = False
[OnFrame]
# Add memory patches to be applied every frame here.

View File

@ -1,12 +1,13 @@
# GVSE8P, GVSP8P - Virtua Striker 3 ver. 2002
# GVSP8P, GVSE8P, GVSJ8P - Virtua Striker 2002 (GC)
# GVSJ8P - Virtua Striker 2002 (Triforce), Virtua Striker 4, Virtua Striker 4 ver. 2006
[Core]
# Values set here will override the main Dolphin settings.
FPRF = True
CPUThread = False
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.

View File

@ -1,18 +0,0 @@
# GVS46E, GVS46J - Virtua Striker 4 ver. 2006
# Because Triforce games have weird IDs, properties are inherited from GVS.ini (Virtua Striker 3 ver. 2002)!
[Core]
# Values set here will override the main Dolphin settings.
FPRF = True
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.
[Video]
# Add memory patches to be applied every frame here.
[Video_Settings]

View File

@ -1,18 +0,0 @@
# GVS46E, GVS46J - Virtua Striker 4 ver. 2006
# Because Triforce games have weird IDs, properties are inherited from GVS.ini (Virtua Striker 3 ver. 2002)!
[Core]
# Values set here will override the main Dolphin settings.
FPRF = True
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.
[Video]
# Add memory patches to be applied every frame here.
[Video_Settings]

View File

@ -0,0 +1,11 @@
# GWHP41, GWHE41 - Winnie the Pooh's Rumbly Tumbly Adventure
[Core]
# Values set here will override the main Dolphin settings.
CPUThread = False
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.

View File

@ -9,6 +9,10 @@
[ActionReplay]
# Add action replay cheats here.
[Video_Settings]
# Needed for some FMVs.
SafeTextureCacheColorSamples = 0
[Video_Hacks]
EFBToTextureEnable = False
DeferEFBCopies = False

View File

@ -362,7 +362,7 @@ $Can Walk Ontop of Deep Snow (Twilight Spectre)
$Run Normal Speed With Iron Boots On (brkirch)
040BB53C 38600000
040B2D18 4800004C
$Alywas Preform Dive When Jumping (brkirch)
$Always Perform Dive When Jumping (brkirch)
040B6618 60000000
$Can Always Flourish Sword (brkirch)
040B9B68 60000000
@ -514,7 +514,7 @@ $Mute BG Music (Twilight Spectre)
043DC3D0 00000000
$BG music muted v2 (Twilight Spectre)
044507F4 00000000
$Enviornment muted (Twilight Spectre)
$Environment muted (Twilight Spectre)
04450814 00000000
$Link makes no noise (Twilight Spectre)
044507FC 00000000

View File

@ -7,7 +7,7 @@
# Add action replay cheats here.
$==========The Legend of Zelda==========
001D73B0 000000FB
$Max/Infinte Health
$Max/Infinite Health
001D73AF 000000FF
001D73B0 000000FB
$Max/Infinite Rupees

View File

@ -0,0 +1,5 @@
# R2DJEP, R2DEEB, R2DPJW - Dokapon Kingdom
[Video_Hacks]
# Prevents flickering throughout the game.
ImmediateXFBEnable = False

View File

@ -9,8 +9,13 @@
[ActionReplay]
# Add action replay cheats here.
[Video_Enhancements]
# Fixes FMVs
ForceTextureFiltering = False
[Video_Settings]
SafeTextureCacheColorSamples = 512
# Needed for some FMVs.
SafeTextureCacheColorSamples = 0
[Video_Hacks]
EFBToTextureEnable = False

View File

@ -0,0 +1,8 @@
# R6APPU - Baby and Me
[OnFrame]
# The game busyloops for frame pacing but not in a way Dolphin can
# currently optimize, so lots of CPU time is wasted.
# This patch adds a call to VIWaitForRetrace to avoid this.
$Performance hack
0x80016E28:dword:0x4807BD89

View File

@ -10,8 +10,13 @@
# Add action replay cheats here.
[Video_Enhancements]
# Fixes FMVs
ForceTextureFiltering = False
[Video_Settings]
# Needed for some FMVs.
SafeTextureCacheColorSamples = 0
[Video_Hacks]
EFBToTextureEnable = False
DeferEFBCopies = False

View File

@ -10,5 +10,7 @@
# Add action replay cheats here.
[Video_Hacks]
# Needed for some FMVs.
ImmediateXFBEnable = False
EFBToTextureEnable = False
DeferEFBCopies = False

View File

@ -2,6 +2,8 @@
[Core]
# Values set here will override the main Dolphin settings.
# The JIT cache causes problems with emulated icache invalidation in this game resulting in areas failing to load
DisableICache = True
[OnFrame]
# Add memory patches to be applied every frame here.

View File

@ -0,0 +1,17 @@
# RKMP5D, RKME5D - Mortal Kombat: Armageddon
[Core]
# Values set here will override the main Dolphin settings.
# Dual Core mode causes FIFO error
CPUThread = False
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.
[Video_Hacks]
# Fixes shadows at higher resolution.
# Option has no effect at 1x IR, so no reason not to enable.
VertexRounding = True

View File

@ -0,0 +1,4 @@
# RKPJ52, RKPE52, RKPY52, RKPK52, RKPV52, RKPP52, RKPX52 - Kung Fu Panda
[Core]
CPUThread = False

View File

@ -0,0 +1,12 @@
# RL6E69 - NERF N-Strike Elite
[Core]
# Values set here will override the main Dolphin settings.
# Dual Core mode causes FIFO error
CPUThread = False
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.

View File

@ -1,5 +1,5 @@
# RLIE64, RLIP64 - Lego Indiana Jones: The Original Adventures
[Video_Hacks]
# Fixes the alpha value of glpyh puzzles; see https://bugs.dolphin-emu.org/issues/12987
# Fixes the alpha value of glyph puzzles; see https://bugs.dolphin-emu.org/issues/12987
MissingColorValue = 0xFFFFFF82

View File

@ -542,7 +542,7 @@ de000000 80008180
30012d2c 2c000000
14012d54 38030000
e0000000 80008000
*Carry Infinite Boosts instad of 3 in the minigame Cosmic Slalom
*Carry Infinite Boosts instead of 3 in the minigame Cosmic Slalom
$Minigame - Lob to Rob: All Targets Worth 30 Points [gamemasterplc]
48000000 800030c8

View File

@ -11,3 +11,4 @@
[Video_Hacks]
ImmediateXFBEnable = False
EFBAccessEnable = True

View File

@ -0,0 +1,18 @@
# RN3J78, RN3E78, RN3P78, RN3X78 - Nicktoons: Attack of the Toybots
[Core]
# Values set here will override the main Dolphin settings.
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.
[Video_Enhancements]
# Fixes FMVs
ForceTextureFiltering = False
[Video_Settings]
# Needed for some FMVs.
SafeTextureCacheColorSamples = 0

View File

@ -0,0 +1,12 @@
# RNKE69, RNKP69 - NERF N-Strike
[Core]
# Values set here will override the main Dolphin settings.
# Dual Core mode causes FIFO error
CPUThread = False
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.

View File

@ -1,4 +1,16 @@
# RQ4E78, RQ4J78, RQ4P78 - SpongeBob SquarePants: Creature from the Krusty Krab
# RQ4E78, RQ4J78, RQ4P78 - SpongeBob SquarePants: Creature from the Krusty Krab [Wii]
[Core]
# Values set here will override the main Dolphin settings.
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.
[Video_Settings]
SuggestedAspectRatio = 2
[Video_Hacks]
ImmediateXFBEnable = False

View File

@ -13,4 +13,7 @@
SuggestedAspectRatio = 2
[Video_Hacks]
# Avoid purple screen.
XFBToTextureEnable = False
# Make Wiimote pointer visible.
ImmediateXFBEnable = False

View File

@ -1,4 +1,15 @@
# RSAE78, RSAP78 - SpongeBob's Atlantis SquarePantis
[Core]
# Values set here will override the main Dolphin settings.
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.
[Video_Settings]
SuggestedAspectRatio = 2
# Needed for some FMVs.
SafeTextureCacheColorSamples = 512

View File

@ -0,0 +1,18 @@
# RUSX78, RUSK78, RUSE78, RUSP78, RUSY78 - SpongeBob SquarePants featuring Nicktoons: Globs of Doom
[Core]
# Values set here will override the main Dolphin settings.
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.
[Video_Enhancements]
# Fixes FMVs
ForceTextureFiltering = False
[Video_Settings]
# Needed for some FMVs.
SafeTextureCacheColorSamples = 0

View File

@ -1,4 +1,14 @@
# RVBERS, RVBPRS - Alvin and the Chipmunks
[Core]
# Values set here will override the main Dolphin settings.
# Dual Core mode causes FIFO error
CPUThread = False
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.
[Video_Settings]
SuggestedAspectRatio = 2

View File

@ -0,0 +1,5 @@
# S3CENR - Triple Crown Championship Snowboarding
[Video_Hacks]
# Fixes shadows.
EFBToTextureEnable = False

View File

@ -0,0 +1,5 @@
# S7BE69, S7BP69 - Trivial Pursuit: Bet You Know It
[Video_Hacks]
# Avoid purple flickering.
XFBToTextureEnable = False

View File

@ -0,0 +1,8 @@
# SBLE5G - A Boy and His Blob
[OnFrame]
$Fix selecting right-most bean
0x800BD308:dword:0x4181000C
[OnFrame_Enabled]
$Fix selecting right-most bean

View File

@ -0,0 +1,8 @@
# SBLP5G - A Boy and His Blob
[OnFrame]
$Fix selecting right-most bean
0x800BE268:dword:0x4181000C
[OnFrame_Enabled]
$Fix selecting right-most bean

View File

@ -0,0 +1,9 @@
# SCYE4Q - Cars 2
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x8019CB1C:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack

View File

@ -0,0 +1,9 @@
# SCYP4Q - Cars 2
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x8019CB1C:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack

View File

@ -0,0 +1,9 @@
# SCYR4Q - Cars 2
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x8019B4EC:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack

View File

@ -0,0 +1,9 @@
# SCYX4Q - Cars 2
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x8019CBBC:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack

View File

@ -0,0 +1,9 @@
# SCYY4Q - Cars 2
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x8019B55C:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack

View File

@ -0,0 +1,9 @@
# SCYZ4Q - Cars 2
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x8019B55C:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack

View File

@ -0,0 +1,35 @@
# SDAE5G - The Daring Game for Girls
[OnFrame]
# The game registers an AX callback function that uses a pointer which is only
# initialized afterwards. The race condition depends on AID interrupt timing.
# This patch moves the pointer initialization from 0x801C9E5C to 0x801C9DFC,
# shifting the instructions in-between down.
$Fix startup crash
0x801C9DFC:dword:0x93EDBAB0
0x801C9E00:dword:0x48030721
0x801C9E04:dword:0x48032B8D
0x801C9E08:dword:0x48063A89
0x801C9E0C:dword:0x5460063F
0x801C9E10:dword:0x41820018
0x801C9E14:dword:0x2C000001
0x801C9E18:dword:0x41820024
0x801C9E1C:dword:0x2C000002
0x801C9E20:dword:0x41820030
0x801C9E24:dword:0x4800003C
0x801C9E28:dword:0x38600000
0x801C9E2C:dword:0x4802FF85
0x801C9E30:dword:0x38600000
0x801C9E34:dword:0x48032C9D
0x801C9E38:dword:0x48000028
0x801C9E3C:dword:0x38600000
0x801C9E40:dword:0x4802FF71
0x801C9E44:dword:0x38600001
0x801C9E48:dword:0x48032C89
0x801C9E4C:dword:0x48000014
0x801C9E50:dword:0x38600001
0x801C9E54:dword:0x4802FF5D
0x801C9E58:dword:0x38600002
0x801C9E5C:dword:0x48032C75
[OnFrame_Enabled]
$Fix startup crash

View File

@ -10,8 +10,13 @@
# Add action replay cheats here.
[Video_Enhancements]
# Fixes FMVs
ForceTextureFiltering = False
[Video_Settings]
# Needed for some FMVs.
SafeTextureCacheColorSamples = 0
[Video_Hacks]
EFBToTextureEnable = False
DeferEFBCopies = False

View File

@ -0,0 +1,5 @@
# SH8E52, SH8P52 - Cabela's Adventure Camp
[Video_Hacks]
# This keeps the in-game bloom effect from becoming brighter and brighter.
EFBToTextureEnable = False

View File

@ -0,0 +1,4 @@
# SK4P52, SK4E52, SK4I52 - Shrek Forever After
[Core]
CPUThread = False

View File

@ -2,9 +2,6 @@
[OnFrame]
# Add memory patches to be applied every frame here.
$Speed hack
0x801D5B10:dword:0x60000000
0x801D5B14:dword:0x60000000
[ActionReplay]
# Add action replay cheats here.

View File

@ -0,0 +1,12 @@
# SN2E69, SN2P69 - NERF N-Strike Double Blast Bundle
[Core]
# Values set here will override the main Dolphin settings.
# Dual Core mode causes FIFO error
CPUThread = False
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.

View File

@ -1,4 +1,4 @@
# SQIE4Q, SQIP4Q - Disney Infinity
# SQIE4Q, SQIP4Q, SQIY4Q - Disney Infinity
[Core]
# Values set here will override the main Dolphin settings.

View File

@ -0,0 +1,9 @@
# SQIE4Q - Disney Infinity
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x8008E60C:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack

View File

@ -0,0 +1,9 @@
# SQIP4Q - Disney Infinity
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x8008E60C:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack

View File

@ -0,0 +1,9 @@
# SQIY4Q - Disney Infinity
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x8008E60C:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack

View File

@ -2,6 +2,7 @@
[Core]
# Values set here will override the main Dolphin settings.
CPUThread = False
[OnFrame]
# Add memory patches to be applied every frame here.

View File

@ -0,0 +1,9 @@
# STSE4Q - Toy Story 3
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x801FA2E4:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack

View File

@ -0,0 +1,9 @@
# STSP4Q - Toy Story 3
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x801FA2E4:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack

View File

@ -0,0 +1,9 @@
# STSP4Q - Toy Story 3
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x801FA354:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack

View File

@ -0,0 +1,9 @@
# STSX4Q - Toy Story 3
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x801FA354:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack

View File

@ -0,0 +1,9 @@
# STSY4Q - Toy Story 3
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x801FA2E4:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack

View File

@ -0,0 +1,9 @@
# STSY4Q - Toy Story 3
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x801FA354:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack

View File

@ -0,0 +1,9 @@
# STSZ4Q - Toy Story 3 Toy Box Special Edition
[OnFrame]
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
$BAT Speedhack
0x801FA2E4:dword:0x48000180
[OnFrame_Enabled]
$BAT Speedhack

View File

@ -0,0 +1,5 @@
# SUVE52, SUVP52 - Cabela's Dangerous Hunts 2013
[Video_Hacks]
# This keeps the in-game bloom effect from becoming brighter and brighter.
EFBToTextureEnable = False

View File

@ -0,0 +1,7 @@
# WMOEE9 - Moki Moki
[OnFrame_Enabled]
$Fix startup hang
[OnFrame]
$Fix startup hang
0x8001729C:dword:0x4182FFF8

View File

@ -0,0 +1,7 @@
# WMOJE9 - Anata ga Mawashite Sukuu Puzzle - Mochi Mochi Q
[OnFrame_Enabled]
$Fix startup hang
[OnFrame]
$Fix startup hang
0x80018894:dword:0x4182FFF8

View File

@ -0,0 +1,7 @@
# WMOPE9 - Moki Moki
[OnFrame_Enabled]
$Fix startup hang
[OnFrame]
$Fix startup hang
0x8001729C:dword:0x4182FFF8

View File

@ -165,7 +165,7 @@
{
"type": "draw_started",
"prettyname": "Buttom Prompt Y",
"prettyname": "Button Prompt Y",
"texture_filename": "tex1_32x32_15f350b2b7f46481_66860824280a89bf_8"
},
{
@ -180,7 +180,7 @@
},
{
"type": "draw_started",
"prettyname": "Buttom Prompt B",
"prettyname": "Button Prompt B",
"texture_filename": "tex1_32x32_ce62786fc1170192_70b585e07941e91c_8"
},
{
@ -195,7 +195,7 @@
},
{
"type": "draw_started",
"prettyname": "Buttom Prompt X",
"prettyname": "Button Prompt X",
"texture_filename": "tex1_32x32_b52817e68be0e2d7_d1b283ce04ce1c7c_8"
},
{
@ -205,7 +205,7 @@
},
{
"type": "draw_started",
"prettyname": "Buttom Prompt A",
"prettyname": "Button Prompt A",
"texture_filename": "tex1_32x32_630cfa888a9d005a_d95570935377e345_8"
},
{

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

View File

@ -106,14 +106,14 @@ void main()
// scaling while also being able to use the luminance channel.
float4 ictcp_color = LinearRGBToICtCP(color);
// Scale the color in perceptual space depending on the percieved luminance.
// Scale the color in perceptual space depending on the perceived luminance.
//
// At low luminances, ~0.0, pow(AMPLIFICATION, ~0.0) ~= 1.0, so the
// color will appear to be unchanged. This is important as we don't want to
// over expose dark colors which would not have otherwise been seen.
//
// At high luminances, ~1.0, pow(AMPLIFICATION, ~1.0) ~= AMPLIFICATION,
// which is equivilant to scaling the color by AMPLIFICATION. This is
// which is equivalent to scaling the color by AMPLIFICATION. This is
// important as we want to get the most out of the display, and we want to
// get bright colors to hit their target brightness.
//

View File

@ -391,7 +391,7 @@ bool supportsSIMD(uint simd_width)
#endif
}
// "Error: The AsciiArt shader requires the missing GPU extention KHR_shader_subgroup."
// "Error: The AsciiArt shader requires the missing GPU extension KHR_shader_subgroup."
const uint missing_subgroup_warning_len = 82;
const uint missing_subgroup_warning[missing_subgroup_warning_len] = {
37, 82, 82, 79, 82, 26, 95, 52, 72, 69, 95, 33, 83, 67, 73, 73, 33, 82, 84, 95, 83,

View File

@ -38,6 +38,22 @@ float3 LinearTosRGBGamma(float3 color)
return color;
}
float3 Rec709_Luminance = float3(0.2126, 0.7152, 0.0722);
float Luminance(float3 color, bool native_color_space)
{
if (native_color_space && OptionEnabled(correct_color_space))
{
if (game_color_space == 0)
color *= from_NTSCM;
else if (game_color_space == 1)
color *= from_NTSCJ;
else if (game_color_space == 2)
color *= from_PAL;
}
return dot(color, Rec709_Luminance);
}
/***** COLOR SAMPLING *****/
// Non filtered gamma corrected sample (nearest neighbor)
@ -89,7 +105,23 @@ float4 BilinearSample(float3 uvw, float gamma)
float4 c22 = QuickSampleByPixel(int_pixel + float2(1.5, 1.5), uvw.z, gamma);
// Blend the 4 samples by their weight
return lerp(lerp(c11, c21, frac_pixel.x), lerp(c12, c22, frac_pixel.x), frac_pixel.y);
float4 avg_c = lerp(lerp(c11, c21, frac_pixel.x), lerp(c12, c22, frac_pixel.x), frac_pixel.y);
// Calculate the average of the gamma space luminance, as that can be used to
// properly determine the perceptual brightness the color should have.
float l11 = pow(Luminance(c11.rgb, true), 1.0 / gamma);
float l21 = pow(Luminance(c21.rgb, true), 1.0 / gamma);
float l12 = pow(Luminance(c12.rgb, true), 1.0 / gamma);
float l22 = pow(Luminance(c22.rgb, true), 1.0 / gamma);
float target_avg_c_lum = lerp(lerp(l11, l21, frac_pixel.x), lerp(l12, l22, frac_pixel.x), frac_pixel.y);
float avg_c_lum = Luminance(avg_c.rgb, true);
if (avg_c_lum != 0.0)
{
avg_c.rgb *= pow(target_avg_c_lum, gamma) / avg_c_lum;
}
return avg_c;
}
/***** Bicubic Interpolation *****/
@ -173,7 +205,7 @@ float4 SharpBilinearSample(float3 uvw, float gamma)
float2 texel = uvw.xy * source_size;
float2 texel_floored = floor(texel);
float2 s = fract(texel);
float scale = max(floor(max(target_size.x * inverted_source_size.x, target_size.y * inverted_source_size.y)), 1.f);
float scale = max(floor(max(target_size.x * inverted_source_size.x, target_size.y * inverted_source_size.y)), 1.0);
float region_range = 0.5 - (0.5 / scale);
// Figure out where in the texel to sample to get correct pre-scaled bilinear.
@ -228,15 +260,28 @@ float4 AreaSampling(float3 uvw, float gamma)
// Initialize the color accumulator.
float4 avg_color = float4(0.0, 0.0, 0.0, 0.0);
float avg_luminance = 0.0;
float4 temp_color;
float luminance_gamma = gamma; // For now, default to the user selected gamma (alternatively we could fix it to anything between 2.2 and 3.0)
float luminance_inv_gamma = 1.0 / luminance_gamma;
// Prevents rounding errors due to the coordinates flooring above
const float2 offset = float2(0.5, 0.5);
// Accumulate corner pixels.
avg_color += area_nw * QuickSampleByPixel(float2(f_beg.x, f_beg.y) + offset, uvw.z, gamma);
avg_color += area_ne * QuickSampleByPixel(float2(f_end.x, f_beg.y) + offset, uvw.z, gamma);
avg_color += area_sw * QuickSampleByPixel(float2(f_beg.x, f_end.y) + offset, uvw.z, gamma);
avg_color += area_se * QuickSampleByPixel(float2(f_end.x, f_end.y) + offset, uvw.z, gamma);
temp_color = QuickSampleByPixel(float2(f_beg.x, f_beg.y) + offset, uvw.z, gamma);
avg_color += area_nw * temp_color;
avg_luminance += area_nw * pow(Luminance(temp_color.rgb, true), luminance_inv_gamma);
temp_color = QuickSampleByPixel(float2(f_end.x, f_beg.y) + offset, uvw.z, gamma);
avg_color += area_ne * temp_color;
avg_luminance += area_ne * pow(Luminance(temp_color.rgb, true), luminance_inv_gamma);
temp_color = QuickSampleByPixel(float2(f_beg.x, f_end.y) + offset, uvw.z, gamma);
avg_color += area_sw * temp_color;
avg_luminance += area_sw * pow(Luminance(temp_color.rgb, true), luminance_inv_gamma);
temp_color = QuickSampleByPixel(float2(f_end.x, f_end.y) + offset, uvw.z, gamma);
avg_color += area_se * temp_color;
avg_luminance += area_se * pow(Luminance(temp_color.rgb, true), luminance_inv_gamma);
// Determine the size of the pixel box.
int x_range = int(f_end.x - f_beg.x - 0.5);
@ -258,8 +303,12 @@ float4 AreaSampling(float3 uvw, float gamma)
if (ix < x_range)
{
float x = f_beg.x + 1.0 + float(ix);
avg_color += area_n * QuickSampleByPixel(float2(x, f_beg.y) + offset, uvw.z, gamma);
avg_color += area_s * QuickSampleByPixel(float2(x, f_end.y) + offset, uvw.z, gamma);
temp_color = QuickSampleByPixel(float2(x, f_beg.y) + offset, uvw.z, gamma);
avg_color += area_n * temp_color;
avg_luminance += area_n * pow(Luminance(temp_color.rgb, true), luminance_inv_gamma);
temp_color = QuickSampleByPixel(float2(x, f_end.y) + offset, uvw.z, gamma);
avg_color += area_s * temp_color;
avg_luminance += area_s * pow(Luminance(temp_color.rgb, true), luminance_inv_gamma);
}
}
@ -269,16 +318,22 @@ float4 AreaSampling(float3 uvw, float gamma)
if (iy < y_range)
{
float y = f_beg.y + 1.0 + float(iy);
avg_color += area_w * QuickSampleByPixel(float2(f_beg.x, y) + offset, uvw.z, gamma);
avg_color += area_e * QuickSampleByPixel(float2(f_end.x, y) + offset, uvw.z, gamma);
temp_color = QuickSampleByPixel(float2(f_beg.x, y) + offset, uvw.z, gamma);
avg_color += area_w * temp_color;
avg_luminance += area_w * pow(Luminance(temp_color.rgb, true), luminance_inv_gamma);
temp_color = QuickSampleByPixel(float2(f_end.x, y) + offset, uvw.z, gamma);
avg_color += area_e * temp_color;
avg_luminance += area_e * pow(Luminance(temp_color.rgb, true), luminance_inv_gamma);
for (int ix = 0; ix < max_iterations; ++ix)
{
if (ix < x_range)
{
float x = f_beg.x + 1.0 + float(ix);
avg_color += QuickSampleByPixel(float2(x, y) + offset, uvw.z, gamma);
temp_color = QuickSampleByPixel(float2(x, y) + offset, uvw.z, gamma);
avg_color += temp_color;
avg_luminance += pow(Luminance(temp_color.rgb, true), luminance_inv_gamma);
}
}
}
@ -288,9 +343,22 @@ float4 AreaSampling(float3 uvw, float gamma)
float area_corners = area_nw + area_ne + area_sw + area_se;
float area_edges = float(x_range) * (area_n + area_s) + float(y_range) * (area_w + area_e);
float area_center = float(x_range) * float(y_range);
float4 nrm_color = avg_color / (area_corners + area_edges + area_center);
float target_nrm_color_luminance = avg_luminance / (area_corners + area_edges + area_center);
// Restore the averaged "gamma" space luminance, for better gamma correction.
// This retains the best feature of gamma correct sampling (no hue shifts),
// while also maintaining the perceptual "brightness" level of blending two colors with an alpha
// (in linear space a 0.5 alpha won't produce a color that has a perceptual brightness in the middle point of the two source colors).
float nrm_color_luminance = Luminance(nrm_color.rgb, true);
if (nrm_color_luminance != 0.0)
{
nrm_color.rgb *= pow(target_nrm_color_luminance, luminance_gamma) / nrm_color_luminance;
}
// Return the normalized average color.
return avg_color / (area_corners + area_edges + area_center);
return nrm_color;
}
/***** Main Functions *****/
@ -353,7 +421,7 @@ void main()
// Doing linear sampling in "gamma space" on linear texture formats isn't correct.
// If the source and target resolutions don't match, the GPU will return a color
// that is the average of 4 gamma space colors, but gamma space colors can't be blended together,
// gamma neeeds to be de-applied first. This makes a big difference if colors change
// gamma needs to be de-applied first. This makes a big difference if colors change
// drastically between two pixels.
color = LinearGammaCorrectedSample(game_gamma);
@ -401,7 +469,7 @@ void main()
// Restore the original gamma without changes
else
{
color.rgb = pow(color.rgb, float3(1.0 / game_gamma));
color.rgb = pow(color.rgb, float3(1.0 / game_gamma));
}
SetOutput(color);

View File

@ -40,7 +40,7 @@ void main()
/*****inline square root routines*****/
// bit of a performance bottleneck.
// neccessary to make the darkened area rounded
// necessary to make the darkened area rounded
// instead of rhombus-shaped.
float sqrt = x / 10.0;

Some files were not shown because too many files have changed in this diff Show More