1230 Commits
2412 ... master

Author SHA1 Message Date
a6642d5f79 Merge pull request #13789 from Simonx22/update-sdk36-gradle813
Android: Bump SDK to 36 and Gradle to 8.13
2025-07-26 11:19:44 +02:00
57b145990d Merge pull request #13446 from JosJuice/breakpoints-delayed-update
PowerPC: Add RAII handling for breakpoint updates
2025-07-25 23:26:25 -05:00
36627f55bb Merge pull request #13827 from jordan-woyak/fix-mplus-save
InputCommon/ControllerEmu: Fix saving of Wii Remote "MotionPlus Attached" setting.
2025-07-25 02:40:39 -04:00
dcb289be8f InputCommon/ControllerEmu: Fix saving of Wii Remote "Attach MotionPlus" setting. 2025-07-24 18:44:42 -05:00
64d4c4020c Merge pull request #13822 from jordan-woyak/libusb-init-error
LibusbUtils: Change libusb_init failure from an ASSERT_MSG to an ERROR_LOG_FMT
2025-07-25 00:20:34 +02:00
027c78ee4f Merge pull request #13826 from Dentomologist/gameconfigwidget_unify_tooltips
GameConfigWidget: Unify tooltips
2025-07-25 00:19:56 +02:00
1aadd01038 Merge pull request #13820 from apteryks/gc-font-tool-gcc14-fix
fix building gc-font-tool.cpp with GCC 14
2025-07-25 00:18:17 +02:00
9d9b6d8705 Android: Bump SDK to 36 and Gradle to 8.13
Starting August 31, 2025, targeting at least Android 15 (API level 35) will be required: https://support.google.com/googleplay/android-developer/answer/11926878
This commit sets the target SDK to API level 36 (Android 16), the latest available version.
2025-07-24 15:43:52 -04:00
e2a8e7da48 GameConfigWidget: Unify tooltips
Use ToolTipWidget::SetDescription insead of QWidget::setTooltip to put
the description in the BalloonTip with the title, instead of having the
description be in a separate standard tooltip.
2025-07-24 12:03:57 -07:00
7871b24b59 LibusbUtils: Change libusb_init failure from an ASSERT_MSG to an ERROR_LOG_FMT. 2025-07-23 21:16:04 -05:00
45ba6ed6b1 Merge pull request #13770 from JoshuaVandaele/usbutils
USBUtils: Refactor USB device handling
2025-07-23 20:57:17 -04:00
10cedc90af Translation resources sync with Transifex 2025-07-23 18:55:15 +02:00
f4a86931a4 Merge pull request #13818 from Amphitryon0/show-code-default
DolphinQt: Stop re-enabling Code widget when toggling debug mode
2025-07-23 18:13:33 +02:00
69f331e989 Merge pull request #13100 from CrossVR/unrestricted-depth-range
Vulkan: Add support for unrestricted depth range.
2025-07-23 19:25:09 +09:00
4ae195ee60 USBUtils: Refactor USB device handling 2025-07-23 03:26:25 +02:00
74814b3203 fix gc-font-tool.cpp with GCC 14 2025-07-22 16:58:57 +09:00
8e84943e37 DolphinQt: Stop re-enabling Code widget when toggling debug mode
It is useful enough for the Code widget to be enabled the first time
debugging is enabled, but it should not be re-enabled every time the
setting is toggled off and then back on. This also ensures that the
interface is consistent if debugging is enabled without using the
checkbox.
2025-07-21 22:46:55 -05:00
79a3af2e6e Merge pull request #13805 from SuperSamus/vulkan-present-sempahore-reuse-fix
Vulkan: Fix present semaphores reuse
2025-07-22 03:03:04 +01:00
c6de692d01 Merge pull request #13784 from jordan-woyak/btreal-restore-keys-on-hci-reset
BTReal: Always restore link keys on HCI reset.
2025-07-21 21:00:20 -04:00
b80e178403 Vulkan: Fix present semaphores reuse
Fixes validation errors.
See https://docs.vulkan.org/guide/latest/swapchain_semaphore_reuse.html
2025-07-21 16:02:53 +02:00
0ace5f5d3d Vulkan: Add support for unrestricted depth range. 2025-07-21 14:07:26 +09:00
c39c8277b7 Merge pull request #13674 from JosJuice/android-visualize-input
Android: Show input indicators in controller settings
2025-07-20 17:46:47 -05:00
dccd8709d8 Merge pull request #13803 from JoshuaVandaele/msgmerge-sort
Translation: Remove deprecated --sorted-output/-s option
2025-07-20 17:40:02 +01:00
3700eddf0c Merge pull request #13815 from AdmiralCurtiss/windows-common-funcs
Common: Move GetDeviceProperty() into its own header
2025-07-19 20:14:23 -04:00
68713e08b4 Common: Move GetDeviceProperty() into its own header
Otherwise we include Windows headers in the entire codebase through CommonFuncs.h
2025-07-19 21:24:51 +02:00
5cc0a5a3be Merge pull request #13816 from Tilka/fix_di_init
WII_IPC: fix homebrew that uses the disc drive
2025-07-19 20:13:18 +01:00
6a55a1bf68 WII_IPC: fix homebrew that uses the disc drive
Dolphin never emulated the AHBPROT register before, but the default
value when reading from unimplemented MMIO registers used to be -1,
which happened to match what AHBPROT reads as when all restrictions are
disabled. In 6f25e20c6a I changed the
default to 0 to match observed hardware behavior in the memory range of
the command processor. This broke libogc's DI_Init() which checks
AHBPROT for full hardware access (presumably to ensure that bypassing
IPC for Video DVDs will work).
2025-07-19 16:42:15 +01:00
2da774b2f7 Merge pull request #13811 from TryTwo/Update_darkmode
Darkmode qtoolbuttons and checked state.
2025-07-19 13:06:16 +02:00
3bd110a210 Darkmode qtoolbuttons and checked state.
Generic qtoolbuttons can be much smaller than qpushbuttons.
2025-07-18 22:46:15 -07:00
b2b2808d01 Merge pull request #13812 from Dentomologist/memoryviewwidget_fix_updates_at_end_of_address_space
MemoryViewWidget: Fix updates at end of address space
2025-07-19 00:42:34 -04:00
4868970504 Merge pull request #13799 from JoshuaVandaele/gitmodules
.gitmodules: Various ameliorations
2025-07-19 05:08:07 +02:00
4788af92bc .gitmodules: Update URLs for lz4, hidapi, and minizip-ng submodules to include .git extension 2025-07-19 04:29:17 +02:00
0019256707 .gitmodules: Add shallow option for all submodules 2025-07-19 04:29:14 +02:00
0611880c56 .gitmodules: Remove branch specifications for submodules 2025-07-19 04:28:19 +02:00
47b74c0e74 Merge pull request #13813 from Dentomologist/memorywidget_fix_splitter_state_restoration
MemoryWidget: Fix splitter state restoration
2025-07-19 04:23:23 +02:00
b25e293cc8 Merge pull request #13767 from SuperSamus/misc-gameini-updates
GameINI: Misc updates
2025-07-18 16:43:13 -04:00
575b6a9cd8 Merge pull request #13648 from SuperSamus/dbz-budokai-xfb
GameINI: Disable Immediately Present XFB for Dragon Ball Z: Budokai and Dragon Ball Z: Budokai 2
2025-07-18 14:14:56 -04:00
c29b3e098d MemoryWidget: Fix splitter state restoration
Fix a copy-paste error causing MemoryWidget's splitter to load the wrong
state data when creating the MemoryWidget.

For me this caused the side panel to be scrunched up every time I
started Dolphin, but the exact effects probably depend on the state of
your MemoryWidget and CodeWidget.
2025-07-17 14:40:14 -07:00
43ab79ae23 MemoryViewWidget: Fix updates at end of address space
Fix two bugs that occurred when viewing a memory range starting shortly
before 0xffffffff.

Bug 1: When there was at least one visible memory address at or after
0x0 none of the values would be displayed even when some of the
addresses were valid. This happened because the loop condition in
GetValues immediately returned false since m_address_range.first >
m_address_range.second, causing m_values to be empty. This in turn led
every address to be considered INVALID_MEMORY in UpdateColumns.

Bug 2: When m_address_range.second was equal to 0xffffffff GetValues
would enter an infinite loop. This happened because address would
overflow to 0 after printing the last value in the table, causing the
loop condition address <= m_address_range.second to be true forever.
2025-07-17 13:45:08 -07:00
b6be5ee5d3 Merge pull request #13801 from jordan-woyak/usb-add-device-dialog-adjust-size
USBDeviceAddToWhitelistDialog: Use adjustSize for a better default dialog size.
2025-07-16 20:30:36 -04:00
9e05063929 Merge pull request #13793 from jordan-woyak/libusb-unicode-descriptor
LibusbUtils: Add GetStringDescriptor function.
2025-07-16 20:30:12 -04:00
295ae819f5 Merge pull request #13792 from Tilka/wii_banners
WiiSaveBanner: fall back to $userdir/Load/WiiBanners
2025-07-16 20:29:46 -04:00
9f076d4707 Merge pull request #13783 from jordan-woyak/schedule-event-from-thread-fix
CoreTiming: Fix unsafe usage of m_globals.global_timer in ScheduleEvent from non-CPU thread.
2025-07-16 20:29:18 -04:00
291c410e8e Merge pull request #13683 from JoshuaVandaele/miniupnpc-cmake4
miniupnpc: Update to 2.3.3 and make it a submodule
2025-07-16 20:28:16 -04:00
d3336d1129 Merge pull request #13808 from LillyJadeKatrin/retroachievements-submodule
Update rcheevos submodule to latest version
2025-07-16 18:01:59 -05:00
81a9809525 Translation: Re-order translation strings 2025-07-16 23:55:03 +02:00
4a520c62a0 Translation: Remove deprecated --sorted-output/-s option
See https://lists.nongnu.org/archive/html/info-gnu/2024-12/msg00000.html
2025-07-16 23:54:29 +02:00
ebcca270cc Translation: Update source and translated strings 2025-07-16 23:54:19 +02:00
5c7743e617 Translation: Specify encodings for Qt strings
This is required for update-source-strings.sh to work with xgettext 0.25.0
2025-07-16 23:52:07 +02:00
12482c8c3b Translation: Ensure files are treated in the same order
This also tells `sort` to ignore the case, and to only consider using alphanumeric characters, to ensure parity across different filesystems.
2025-07-16 23:52:04 +02:00
c2bace5967 Merge pull request #13798 from TryTwo/PR_CodeWidget_NoUpdate
CodeWidget: Add button that locks the view's address
2025-07-16 14:32:21 -04:00
79230c38f1 Update rcheevos submodule to latest version 2025-07-16 00:03:20 -04:00
d53e766d65 CodeWidget: Add button that prevents automatic updates to the address, such as navigating to the PC on pause. 2025-07-15 12:23:47 -07:00
5674afa63d Merge pull request #13804 from jordan-woyak/add-device-shorter-placeholder-text
USBDeviceAddToWhitelistDialog: Remove examples from VID/PID entry placeholder text.
2025-07-15 18:44:21 +02:00
2e26c03378 Merge pull request #13802 from Dentomologist/cexiagp_dont_create_save_file_if_path_is_empty
CEXIAgp: Don't create save file if path is empty
2025-07-15 18:32:39 +02:00
1dbb9a193e Merge pull request #13806 from Dentomologist/iofile_require_trivially_copyable_types
IOFile: Require trivially copyable types
2025-07-14 16:03:40 -05:00
8a28b95480 IOFile: Require trivially copyable types
Require ReadArray and WriteArray to be called with a trivially copyable
type.

ReadArray and WriteArray call std::fread and std::fwrite respectively.
These functions trigger undefined behavior when the objects are not
trivially copyable, so this adds that requirement to the callers.
2025-07-14 11:55:24 -07:00
9e57447fd3 USBDeviceAddToWhitelistDialog: Limit VID/PID entry to 4 characters. 2025-07-12 16:58:46 -05:00
2bbd1fcf6b USBDeviceAddToWhitelistDialog: Remove examples from VID/PID entry placeholder text. 2025-07-12 16:54:44 -05:00
633fd5df70 Merge pull request #13775 from jordan-woyak/sdl-gamepad-rename
InputCommon: Rename SDL input backend GameController to Gamepad.
2025-07-12 16:50:04 -05:00
d92f7f194c Merge pull request #13747 from JoshuaVandaele/warns-only
Fix various warnings
2025-07-12 15:37:53 -05:00
30bd7e18f0 CEXIAgp: Don't create save file if path is empty
Fix creation of a ".sav" file in the current working directory on
emulation shutdown when a slot is set to "Advance Game Port" and the
"GBA Cartridge Path" is empty.

Fixes https://bugs.dolphin-emu.org/issues/12975.
2025-07-12 13:07:44 -07:00
06882bd2dc Fix various warnings 2025-07-12 12:47:30 +02:00
3f314c81e9 USBDeviceAddToWhitelistDialog: Use adjustSize for a better default dialog size. 2025-07-12 05:13:47 -05:00
f76ab86326 Merge pull request #13800 from ITotalJustice/master
AudioCommon/Mixer: make large array in Mixer::MixerFifo::Enqueue() static so that it's not created on the stack.
2025-07-10 19:23:09 -05:00
8d2a15be3f AudioCommon/Mixer: make large array in Mixer::MixerFifo::Enqueue() static so that it's not created on the stack. 2025-07-11 01:01:03 +01:00
29964ff55e Merge pull request #13796 from Dentomologist/videobackendbase_remove_redundant_unique_ptr_reset
VideoBackendBase: Remove redundant unique_ptr reset
2025-07-09 17:11:58 -05:00
72ea7a2128 VideoBackendBase: Remove redundant unique_ptr reset
Remove redundant reset of g_presenter in ShutdownShared, which is
already reset earlier in the function.
2025-07-09 14:12:06 -07:00
d55012f8d0 Merge pull request #13726 from hoogmin/cpp23_ranges_patch
Common: Replace Contains and ContainsSubrange with C++23 std::ranges equivalents
2025-07-07 21:05:28 -05:00
57cbd98f42 miniupnpc: Update to 2.3.3 and make it a submodule 2025-07-08 03:48:37 +02:00
b23da4f15c Merge pull request #13678 from JoshuaVandaele/SFML-cmake4
SFML: Update to 3.0.1
2025-07-07 20:40:46 -05:00
c37882de77 Merge pull request #13753 from JoshuaVandaele/netplay-hoverblur
ClickBlurLabel: Create a label which is blurred until it is clicked
2025-07-07 20:07:11 -05:00
13784f842e LibusbUtils: Add GetStringDescriptor function to return unicode strings and replace our libusb_get_string_descriptor_ascii calls. 2025-07-06 19:41:14 -05:00
fe6fd2279c WiiSaveBanner: fall back to $userdir/Load/WiiBanners
Unlike custom banners which work as an override, this mechanism works as
a fallback. The use case is if you have games you don't really play but
want to keep around for testing purposes without filling up your NAND
with lots of saves. For ease of use, the directory structure is the same
but only title/$title_hi/$title_lo/data/banner.bin files are
relevant.
2025-07-04 23:15:50 +01:00
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
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
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
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
4126b4e904 DolphinQt: Adjust PostProcessingConfigWindow size on creation. 2025-07-01 15:26:13 -05:00
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
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
8b2d569932 BTReal: Always restore link keys on HCI reset. 2025-06-30 04:07:45 -05:00
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
c597c70316 CoreTiming: Fix unsafe usage of m_globals.global_timer in ScheduleEvent from non-CPU thread. 2025-06-29 20:55:43 -05:00
9a0d4501f8 Merge pull request #13751 from jordan-woyak/btreal-improvements
Bluetooth Passthrough Improvements
2025-06-29 18:00:02 -04:00
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
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
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
25583658d2 State: Increase STATE_VERSION. 2025-06-28 18:54:21 -05:00
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
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
541dbdfead IOS: Move DoStateForMessage from BTEmu to BTBase. 2025-06-28 18:45:52 -05:00
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
f8e22f448d IOS/KD: Pad Wii Numbers to 16 digits 2025-06-28 19:22:14 -04:00
8d7bb0a44a Translation resources sync with Transifex 2025-06-28 22:45:47 +02:00
3a32013740 Merge pull request #13773 from JosJuice/i18n-2025-06-22
i18n: Add comments
2025-06-28 15:13:03 -05:00
bc1d8ffcbb i18n: Add comments 2025-06-28 21:41:44 +02:00
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
99be5eb6c8 GameINI: Misc updates 2025-06-28 00:44:51 +02:00
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
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
609d91156a InputCommon: Rename SDL input backend GameController to Gamepad. 2025-06-25 00:23:48 -05:00
8f0ef62a71 ClickBlurLabel: Create a label which is blurred until it is clicked
This is particularly useful for people who stream their desktop and don't want to accidentally leak their IP or room.
2025-06-25 04:08:04 +02:00
43aa7e9b96 Merge pull request #13694 from jordan-woyak/sdl3
Update to SDL3
2025-06-24 18:59:48 -04:00
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
71fa08813a BT passthrough uses selected device rather than first alphabetical compatible device 2025-06-24 15:39:46 -05:00
e9b57393a6 Merge pull request #13766 from JosJuice/powerpc-missing-updates
PowerPC: Add missing SDRUpdated/MSRUpdated calls
2025-06-24 16:36:49 -04:00
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
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
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
2e8da29ca2 Merge pull request #13756 from Tilka/price_is_right
GameSettings: some updates
2025-06-24 16:34:47 -04:00
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
fbced5d0f5 Merge pull request #13774 from Tilka/cp_cleanup
VideoCommon: remove unused struct fields
2025-06-24 14:41:25 -05:00
59d2611a94 VideoCommon: remove unused struct fields 2025-06-24 19:38:45 +01:00
6a0963908d DolphinQt: Make Calibration autocomplete when data is "sensible" and stick is returned to neutral position. 2025-06-24 02:18:25 -05:00
fa9f71e482 Merge pull request #13769 from JosJuice/merge-dbat-mappings
Memmap: Optimize UpdateLogicalMemory by merging mappings
2025-06-22 15:29:51 -04:00
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
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
19f3b7e61f Merge pull request #13691 from TryTwo/PR_Notes
Debugger Add note-type symbols .
2025-06-22 01:05:42 -04:00
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
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
e002fcdf2f PowerPC: Use SPR_LR constant in an additional location 2025-06-20 10:42:47 +02:00
8c643693a9 PowerPC: Add missing SDRUpdated/MSRUpdated calls 2025-06-20 10:42:43 +02:00
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
78065359bb Debugger CodeWidget : Add search box for notes. 2025-06-19 17:55:45 -07:00
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
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
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
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
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
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
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
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
ca004e35f7 GameSettings: add performance hack for Baby And Me
The patch is not enabled by default.
2025-06-16 20:08:36 +01:00
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
58b86074ae GameSettings: fix purple flickering in Trivial Pursuit - Bet You Know It 2025-06-16 19:48:31 +01:00
cc5933a6ce GameSettings: fix purple screen in The Price Is Right 2025-06-16 19:48:31 +01:00
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
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
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
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
6591fa3751 Core/PowerPC: Split 'IsRAMAddress' method into 'IsEffectiveRAMAddress' and 'IsPhysicalRAMAddress' methods 2025-06-14 23:29:03 +02:00
0780458069 InputCommon: Make InputDetector::Start take a span instead of a vector. 2025-06-14 16:28:09 -05:00
11c3f7ea8d InputCommon: Fix occasional misidentification of analog input detection. 2025-06-14 16:28:09 -05:00
344080b7a9 DolphinQt: Fix ControllersPane group box spacing. 2025-06-14 16:26:09 -05:00
89b8edea03 DolphinQt: Move graphics config to main Settings window. 2025-06-14 16:26:09 -05:00
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
ca8f9b672b Source: Remove redundant lambda parameter lists 2025-06-14 10:19:31 +02:00
95f6c76713 Merge pull request #13696 from fothugiyo/gecko-codes
Tales of Symphonia AR and Gecko Codes
2025-06-13 17:32:24 -04:00
46ce355d93 GameINI: Remove NSMBW PAL speed hack 2025-06-13 22:27:21 +02:00
d93245cc7a Host: Implement a Windows-only implementation of GetDeviceNameFromVIDPID 2025-06-13 17:46:53 +02:00
a163877413 Merge pull request #13746 from LillyJadeKatrin/retroachievements-hardcore-changed
MainWindow - Avoid excessive emulation state changes
2025-06-10 17:32:04 -04:00
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
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
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
7ad85e875d Merge pull request #13738 from Tilka/convert_banner
QtUtils/ImageConverter: simplify
2025-06-09 00:10:03 -04:00
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
5064b615ba Merge pull request #13737 from LillyJadeKatrin/retroachievements-gamecube-bulk-fix
AchievementManager - Fix Gamecube Bulk Copy
2025-06-08 13:08:02 -04:00
33b529a510 Merge pull request #13719 from LillyJadeKatrin/retroachievements-wii-menu-fix
AchievementManager - Block Wii Menu Exploits
2025-06-08 13:04:27 -04:00
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
944dd711b7 Merge pull request #13743 from JosJuice/audiocommon-missing-includes
AudioCommon: Re-add missing includes
2025-06-08 13:41:41 +02:00
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
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
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
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
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
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
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
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
056ece6f29 Merge pull request #13697 from tygyh/AudioCommon/Remove-unused-includes
AudioCommon: Remove unused includes
2025-06-07 17:45:50 -05:00
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
61e8fa060b QtUtils/ImageConverter: simplify 2025-06-07 23:06:07 +01:00
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
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
5906512847 DolphinQt: Replace widespread SetQWidgetWindowDecorations calls with an event filter. 2025-06-07 16:15:34 -05:00
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
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
a27b845514 Merge pull request #13710 from TryTwo/UI_Sliders_Update
Advanced Panel convert QSliders into ConfigSliders
2025-06-07 17:39:40 +02:00
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
241834709b Host: Clean up device handle 2025-06-07 16:55:45 +02:00
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
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
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
43b254aaad Android: Update advanced mapping dialog when devices change
Without this, there was a bug where if you turned the device's screen
off and on again while in the advanced mapping dialog, the input
indicators would stop updating. This is because turning the screen on
again causes devices to refresh, which causes all devices to be
recreated, leaving the AdvancedMappingControlViewHolders stuck
referencing controls belonging to devices that are no longer being
updated.
2025-06-07 10:20:21 +02:00
1002f29691 Android: Show input indicators in controller settings 2025-06-07 10:20:20 +02:00
0dd601577d Android: Set parent when inflating RecyclerView.ViewHolders
This makes sure view holders get proper widths when they use
layout_width="match_parent". This becomes quite noticeable for
AdvancedMappingControlAdapter in the next commit, but I'm also
making the change for other adapters while I'm at it.
2025-06-07 10:20:19 +02:00
cf7b141eb9 Android: Make input mapping view holders observe input state changes 2025-06-07 10:20:19 +02:00
22fd0472ed Android: Pass CoreDevice.Control to AdvancedMappingControlViewHolder 2025-06-07 10:20:19 +02:00
4b4a775d5a Android: Make AdvancedMappingControlViewHolder a LifecycleOwner 2025-06-07 10:20:19 +02:00
5d7cba8cd9 Android: Make SettingViewHolder a LifecycleOwner 2025-06-07 10:20:19 +02:00
4214cb6eb8 Android: Make input state changes observable 2025-06-07 10:20:18 +02:00
c3d3b81533 VideoCommon: remove 'GetByteSizeInMemory()' from custom asset, it is not needed anymore 2025-06-06 23:03:02 -05:00
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
b3f50c969e VideoCommon: rename m_bytes_loaded in asset library to bytes_loaded 2025-06-06 23:03:02 -05:00
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
d940d62cae VideoCommon: watch texture pack folder for texture reloads (from dynamic input textures) 2025-06-06 23:03:02 -05:00
7afa9e6c6f VideoCommon: use CustomResourceManager in the texture cache and hook up to our hires textures 2025-06-06 23:03:02 -05:00
12d178a8df VideoCommon: initialize and shutdown the CustomResourceManager when the video thread initializes and shuts down 2025-06-06 23:03:02 -05:00
f910c1d934 Core: add CustomResourceManager to System 2025-06-06 23:03:02 -05:00
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
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
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
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
8113399b68 Externals: add watcher, a library used to watch a filesystem location for changes 2025-06-06 23:03:02 -05:00
bafe78203d VideoCommon: remove 'GetLastAssetWriteTime' and switch to a steady_clock for asset times 2025-06-06 23:03:02 -05:00
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
316740daed VideoCommon: add 'Unload' functionality to CustomAsset 2025-06-06 23:03:02 -05:00
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
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
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
d7de49ccf6 Core / VideoCommon: Remove original custom asset loader 2025-06-06 19:20:25 -05:00
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
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
977f2da6a7 Merge pull request #13735 from JMC47/triopatch
GamePatch: Disney Trio of Destruction Pagetable Speedhack.
2025-06-06 17:54:36 -05:00
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
be3d48ec5f GamePatch: Disney Trio of Destruction Pagetable Speedhack. 2025-06-06 17:17:11 -04:00
d766c527c7 Common: Replace Contains and ContainsSubrange with C++23 std::ranges equivalents
Common: Use feature macros for better compatibility

Common/Contains.h: fix linting issue

Common/Contains.h: Add C++23 TODO

Common/Contains.h: Fix comment lint issue.
2025-06-05 19:18:08 -04:00
a0611b512b Merge pull request #13713 from Dentomologist/filesystemwidget_center_header_text
FilesystemWidget: Center header text
2025-06-05 14:34:36 -05:00
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
ea959f2651 DSP/Jit: Don't return to dispatcher if no exception was generated 2025-06-05 20:57:27 +02:00
a43fc68452 DSPAnalyzer: Set store instructions as potentially generating exceptions 2025-06-05 19:10:42 +02:00
ae26b38fc0 VideoCommon: fix pixel shader gen error about structure not being fully initialized 2025-06-05 01:37:45 -05:00
b9bea58f0f DolphinQt: Move "Controllers" to main settings window. 2025-06-04 19:33:01 -05:00
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
2de9122b5f GameList: Prevent opening Properties multiple times for the same game 2025-06-04 23:11:09 +02:00
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
bae0e5f67a DolphinNoGUI: Make override explicit 2025-06-04 21:49:29 +02:00
2ae928ca79 DolphinNoGUI: Make parameters constant 2025-06-04 21:49:15 +02:00
f04f659710 DolphinNoGUI: Replace C-style cast with reinterpret_cast 2025-06-04 21:49:01 +02:00
ec1d659363 DolphinNoGUI: Make classes final 2025-06-04 21:48:53 +02:00
c37933932d DolphinNoGUI: Make variables constant 2025-06-04 21:48:40 +02:00
23af1e025b DolphinNoGUI: Make function static 2025-06-04 21:30:59 +02:00
135b6840e5 DolphinNoGUI: Remove unused include directives 2025-06-04 21:30:59 +02:00
e3df00b7f4 DolphinNoGUI: Make variables constexpr 2025-06-04 21:30:59 +02:00
71da0f2d24 DolphinNoGUI: Replace deprecated signal.h header 2025-06-04 21:30:59 +02:00
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
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
8def02072b Merge pull request #13379 from JoshuaVandaele/system-ng
Use minizip-ng in non-compatibility mode
2025-06-04 15:21:05 -04:00
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
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
4b65cc9a4c fmt: Replace deprecated fmt::localtime usage with Common::LocalTime 2025-06-04 13:32:12 +02:00
5309c440d2 Merge branch 'release-prep-2506' 2025-06-04 04:09:08 -04:00
aed420c95d ScmRevGen: Bump version to 2506 2025-06-04 00:10:41 -04:00
1c9389a1fb Translation resources sync with Transifex 2025-06-03 09:05:37 +02:00
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
61ccdb0a3c WaveFile: Add m_ prefix to member variables 2025-06-01 11:41:09 -07:00
88122ae956 Merge pull request #13715 from icup321/master
GameINI: Disable Dual Core for more games
2025-06-01 02:57:17 -04:00
e2d8e39489 Merge pull request #13722 from Tilka/dokapon
GameSettings: auto-disable immediate XFB for Dokapon Kingdom
2025-06-01 02:39:19 -04:00
2849173984 GameSettings: auto-disable immediate XFB for Dokapon Kingdom
This avoids flickering throughout the game.
2025-06-01 03:06:35 +01:00
8192d9d2a9 Make parameters, arguments etc. constant 2025-05-31 20:57:54 +02:00
31d0756808 Config: Make s_callbacks_lock recursive to fix hardcore mode deadlock. 2025-05-30 17:33:01 -05:00
a6b04f53e0 AudioCommon: Remove unused qualifiers and make variables constant 2025-05-30 21:48:38 +02:00
a8eafa4ccd DolphinQt: Move the "Point (Passthrough)" "Enabled" checkbox below the mapping indicator. 2025-05-29 19:46:53 -05:00
a5b4a0b9e4 InputCommon/DolphinQt: Add advanced settings button for "Point" and "Point (Passthrough)" "Enabled" checkboxes. 2025-05-29 19:39:10 -05:00
fd285f6348 AchievementManager - Minor cleanup
Deleting the unused m_game_data and m_is_game_loaded fields.
2025-05-29 18:35:30 -04:00
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
3dc1605569 FilesystemWidget: Center header text
Center header text to match all the other headers.
2025-05-27 12:34:20 -07:00
a6a5e201b6 Qt Advanced Panel: Convert QSliders into ConfigSliders.
Part of the refactor into the config system.
2025-05-26 19:52:30 -07:00
aafe961177 DolphinQt: Make GeckoCodeWidget default size not taller than it needs to be. 2025-05-26 20:58:48 -05:00
eed7843d4a DolphinQt: Add stretch to the end of the game config Info tab. 2025-05-26 20:58:48 -05:00
1e4dfc0956 DolphinQt: Fix the WiiPane hinting a larger than required size. 2025-05-26 20:58:48 -05:00
5bc661aeca DolphinQt/AudioPane: Fix Volume QGroupBox title uglyness on Windows and inconsistent percent-sign spacing. 2025-05-26 20:58:48 -05:00
fcff7a3a49 DolphinQt: Fix FilesystemWidget QTreeView visual style. 2025-05-26 20:58:48 -05:00
543b85a451 DolphinQt: Make WrapInScrollArea and GetWrappedWidget less hacky. 2025-05-26 20:58:48 -05:00
e796e82e8c DolphinQt: Change game properties QTabWidget to QListWidget. 2025-05-26 20:58:48 -05:00
2b9935e6f4 DolphinQt: Change main settings window QTabWidget into a QListWidget and QStackedWidget. 2025-05-26 20:58:48 -05:00
53b54406bd Merge pull request #13690 from icup321/master
GameINI: Disable icache for The Ant Bully [Wii]
2025-05-26 21:12:17 -04:00
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
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
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
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
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
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
7c237bbd7c AudioCommon: Remove unused includes 2025-05-25 10:30:41 +02:00
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
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
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
35d70fd531 IOS/KD: Set Checksum when flushing NWC24Config 2025-05-23 18:01:06 -04:00
da8610e76f Translation resources sync with Transifex 2025-05-22 23:25:50 +02:00
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
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
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
98b0d1db05 DolphinQt: Fix verb agreement in Immediate XFB description 2025-05-22 16:48:10 +02:00
2ed5f16600 minizip-ng: Stop using compatibility mode 2025-05-22 12:51:55 +02:00
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
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
69af10ef86 Merge pull request #13663 from dreamsyntax/spiderman-heuristic
GameINI: Spider-Man SuggestedAspectRatio to 4:3
2025-05-21 17:34:09 -04:00
f96e667a5f GameINI: Spider-Man SuggestedAspectRatio to 4:3 2025-05-21 14:05:19 -07:00
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
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
a62449711f Merge pull request #12769 from sepalani/wii-speak
IOS/USB: Emulate Wii Speak using cubeb
2025-05-21 13:54:56 -04:00
9ba71448cc WorkQueueThread: Fix Cancel() race with internal command queue. 2025-05-20 21:51:25 -05:00
f1b7f8a72e DolphinQt/RenderWidget: Grab focus on mouse button press. 2025-05-20 21:06:32 -05:00
1dc4dc6b6d Merge pull request #13675 from LillyJadeKatrin/retroachievements-close-deadlock
AchievementManager - LoadGameCallback
2025-05-20 11:54:31 -04:00
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
faaf13eaad Merge pull request #13562 from sanjay900/santroller-support
LibusbDevice: Send wakeup command to Santroller devices
2025-05-20 01:13:39 -05:00
dac023af15 Resolve clang-tidy violation 2025-05-18 05:16:17 -04:00
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
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
f59708a26c Merge pull request #13656 from icup321/master
GameINI: Disable Dual Core for several games
2025-05-18 02:13:18 -04:00
d4afa1ebfa SFML: Update to 3.0.1 2025-05-18 01:49:55 +02:00
62a926a0f5 Merge pull request #13515 from tygyh/Remove-redundant-parentheses
Tools/symbolicate-ppc: Remove redundant parentheses
2025-05-17 18:01:17 -05:00
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
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
b6803d00fe Revert "RetroAchievements: Fix potential deadlock on shutdown."
This reverts commit 826f04d06c.
2025-05-17 08:29:50 -04:00
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
8b228503d9 GameINI: Set texture cache accuracy for Scooby-Doo! Night of 100 Frights PAL 2025-05-17 13:35:17 +02:00
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
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
7804c16dbb Merge pull request #13531 from tygyh/DiscIO-Make-functions-constant
DiscIO: Make functions constant
2025-05-16 14:49:05 -05:00
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
2102108b1a UnitTests: Remove redundant template type specifers 2025-05-16 21:09:52 +02:00
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
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
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
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
9dfcbcecff DiscIO: Make functions constant 2025-05-16 19:11:39 +02:00
bc1af564e2 UnitTests/Core: Remove unused includes 2025-05-16 15:31:31 +02:00
7de18efc93 UnitTests/Core: Make parameters constant 2025-05-16 15:29:31 +02:00
762555c984 UnitTests/Common: Use std::size for size calculation 2025-05-16 14:59:55 +02:00
58c79bc5ed UnitTests/PowerPC: Use constant functions, variables and parameters 2025-05-16 08:28:06 +02:00
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
e83f9fb721 Merge pull request #13664 from Tilka/cabela
GameSettings: disable efb2tex for two Cabela's games
2025-05-15 18:15:09 -04:00
6315527d21 GameSettings: disable efb2tex for two Cabela's games 2025-05-15 22:45:36 +01:00
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
17eb1b1a34 DolphinQt/Mapping: Replace Motion Input "WARNING: " text with a warning icon. 2025-05-15 10:58:43 -05:00
afb27952ee DolphinQt: Make the Info tab first in the game properties dialog. 2025-05-15 02:13:48 -05:00
a45d00d84d DolphinQt: Add utility function for creating label text with a standard icon. 2025-05-15 01:49:38 -05:00
c211efd84a Merge pull request #13603 from tygyh/FifoPlayer-Make-functions-static
FifoPlayer: Make functions static
2025-05-14 23:01:34 -05:00
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
826f04d06c RetroAchievements: Fix potential deadlock on shutdown. 2025-05-14 01:10:53 -05:00
1554e4ab6c Vulkan: Eliminate m_last_present_done flag. 2025-05-13 20:13:18 -05:00
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
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
79a90b1f42 GameINI: Enable EFB Access for Jimmy Neutron Boy Genius 2025-05-13 22:57:11 +02:00
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
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
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
cf3702cbc8 Merge pull request #13046 from SuperSamus/vi-overclock
Add VBI Frequency Override
2025-05-12 13:36:55 -04:00
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
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
f19a33340a Merge pull request #13631 from LillyJadeKatrin/retroachievements-mem2
AchievementManager: MEM2 Support
2025-05-10 14:56:14 -04:00
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
e7f22515d3 GameINI: Disable Immediately Present XFB for Dragon Ball Z: Budokai and Dragon Ball Z: Budokai 2 2025-05-10 14:14:12 +02:00
cb30862cfb DolphinQT/Netplay: Make variables constant 2025-05-10 13:05:54 +02:00
c5f01902de DSPSpy: Make RealDSP final and make overide explicit 2025-05-10 13:02:55 +02:00
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
bb77d61967 Crypto/SHA1: Re-add memcpy avoiding optimization to BlockContext::Update. 2025-05-09 20:59:17 -05:00
0351fd56b1 Merge pull request #10766 from xperia64/dsp_format_fun
DSP accelerator improvements
2025-05-09 19:04:23 -04:00
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
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
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
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
463686b766 Flatpak: Don't use CFLAGS and CXXFLAGS provided by the SDK 2025-05-09 00:49:00 -04:00
4a35a8c516 GameINI: Disable Dual Core for Shadow the Hedgehog 2025-05-08 12:50:39 -07:00
37f97cabb4 Merge pull request #13639 from Tilka/move
AchievementManager: fix -Wpessimizing-move warning
2025-05-08 21:40:06 +02:00
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
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
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
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
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
a9ab0e979e Crypto/SHA1: Fix past-the-last-element std::array access and modernize code. 2025-05-08 03:03:59 -05:00
d922ba31f7 DolphinQt: Fix unnecessarily created Triforce widget in game properties Info tab. 2025-05-08 01:58:20 -05:00
a8fb4153d7 AchievementManager: fix -Wpessimizing-move warning 2025-05-08 00:15:17 +01:00
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
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
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
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
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
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
1c54583ae7 Merge pull request #13569 from tygyh/UnitTests-Use-constexpr
UnitTests: Use `constexpr`
2025-05-07 15:48:26 -05:00
b8ca3c8d15 Merge pull request #13575 from tygyh/DolphinTool-Make-variables-constant
DolphinTool: Make variables constant
2025-05-07 15:47:14 -05:00
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
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
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
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
eff334524a HotkeyManager: Add HK_TOGGLE_WII_SPEAK_MUTE 2025-05-07 21:27:50 +04:00
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
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
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
1f0ff42aa0 IOS/USB: Implement Wii Speak REQUEST_SET_INTERFACE command
Based on LibusbDevice::SubmitTransfer code
2025-05-07 20:33:22 +04:00
61ab0faab8 Config: Rename MAIN_WII_SPEAK_CONNECTED to MAIN_WII_SPEAK_MUTED 2025-05-07 20:33:22 +04:00
aea5054509 CubebUtils: Add COM helper class 2025-05-07 20:33:22 +04:00
407218a8b4 IOS/USB: Report Wii Speak packet size properly 2025-05-07 20:33:22 +04:00
dbc09bfb0d Android: Add emulated Wii Speak 2025-05-07 20:33:22 +04:00
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
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
6a36930c74 IOS/USB: Add more logs to the Wii Speak code 2025-05-07 20:33:22 +04:00
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
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
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
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
599f28045e AchievementManager: verify MEM2 if it exists
Adds MEM2 to MemoryVerifier.
2025-05-06 16:59:27 -04:00
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
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
2f1d8272a8 DolphinQt/TAS: Use non-default std::atomic struct constructor to fix build with libstdc++ 15. 2025-05-05 16:29:15 -05:00
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
6e22e145a0 HW/SI: Don't require waiting a second before disconnecting an SIDevice. 2025-05-04 15:00:48 -05:00
d2db9d9590 Merge pull request #13608 from jordan-woyak/async-work-thread
Common: Add AsyncWorkThread.
2025-05-04 18:45:14 +02:00
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
380a9291ad Merge pull request #13602 from jordan-woyak/move-only-function
Common: Add MoveOnlyFunction.
2025-05-04 17:28:06 +02:00
15ad6e0426 Merge pull request #13380 from JoshuaVandaele/system-zlib
CMake: Allow shared zlib
2025-05-04 17:27:50 +02:00
72fd344dca Allow shared zlib
This is a followup to #13089
2025-05-04 16:50:25 +02:00
3a27646263 Merge pull request #13473 from Tilka/moki_moki
GameSettings: fix startup hang in Moki Moki
2025-05-04 16:44:21 +02:00
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
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
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
5a80105555 Common and VideoCommon: Change texture data from std::vector to Common::UniqueBuffer. 2025-05-03 18:32:30 -05:00
e80ed595ac VideoCommon: move position/normal matrices to be gettable by function in VertexShaderGen 2025-05-03 16:51:34 -05:00
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
a3c7423273 Remove unused cmake includes
Signed-off-by: Alfred Wingate <parona@protonmail.com>
2025-05-03 22:34:07 +03:00
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
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
db425ef3a1 Merge pull request #13445 from icup321/master
GameSettings: Various Nick games fixes
2025-05-03 20:16:13 +02:00
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
78465693ad Merge pull request #13607 from LillyJadeKatrin/retroachievements-wiiware
RetroAchievements - Wii and WiiWare Support
2025-05-03 13:21:00 -04:00
c574b651aa Merge pull request #13621 from JosJuice/android-remove-loaddefaultsettings
Android: Remove unused onSettingsFileNotFound and friends
2025-05-03 18:37:51 +02:00
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
ffd78711be Merge pull request #13618 from jordan-woyak/cubeb-logging
AudioCommon/CubebUtils: Fix logged file name.
2025-05-03 18:33:06 +02:00
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
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
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
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
63572f15fc Merge pull request #13620 from JosJuice/logmanager-cleanup
LogManager: Stop using manual memory management
2025-05-02 15:24:34 -05:00
ec29d120b5 CoreTiming: Add a setting to pursue accurate emulation time. 2025-05-02 15:23:43 -05:00
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
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
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
06826319c7 AudioCommon/CubebUtils: Fix logged file name. 2025-05-02 02:54:15 -05:00
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
58d305f75c Merge pull request #13616 from parona-source/musl-cstdint
UICommon: Include implicit header
2025-05-02 08:03:01 +02:00
4e736d60db Core and AudioCommon: Use AsyncWorkThread. 2025-05-01 22:55:23 -05:00
be4b0af971 Common: Add AsyncWorkThread. 2025-05-01 22:54:40 -05:00
0066119e41 Merge pull request #13617 from OatmealDome/coretiming-include
CoreTiming: Add missing SystemTimers.h include
2025-05-01 21:33:22 -04:00
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
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
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
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
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
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
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
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
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
0bd7cc64c9 CoreTiming: Add missing SystemTimers.h include 2025-05-01 19:13:02 -04:00
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
20874124c2 StringUtil: Use concepts instead of enable_if. 2025-05-01 16:30:37 -05:00
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
5ee520133d Clang-format: Fix invalid settings 2025-05-01 22:05:07 +02:00
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
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
f240e20e3f Make overriding explicit and remove redundant virtual specifiers on overriding destructors - Core & UnitTests 2025-05-01 15:00:37 +02:00
5c0cf0788f VideoCommon/NetPlayChatUI: Replace msg with structured binding 2025-05-01 14:11:55 +02:00
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
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
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
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
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
0987c03693 Merge pull request #13453 from tygyh/Use-underlying-method
DolphinQt/FIFO/FIFOAnalyzer: Use Common::ToUnderlying
2025-04-30 22:18:02 -05:00
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
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
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
ec940e6a2e VideoBackends/Vulkan: Use WorkQueueThreadSP for swap commands. 2025-04-30 16:29:35 -05:00
753fe5bed1 Core: Use WorkQueueThreadSP in NetKDRequestDevice. 2025-04-30 16:29:21 -05:00
c14101534f Core: Use WorkQueueThreadSP in NetIPTopDevice. 2025-04-30 16:28:57 -05:00
bdb4fd8376 Core: Use WorkQueueThreadSP in DVDThread. 2025-04-30 16:17:21 -05:00
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
43e4e8f182 Merge pull request #13581 from jordan-woyak/dvd-WorkQueueThread
DVDThread: Implement with WorkQueueThread and WaitableSPSCQueue.
2025-04-30 16:09:36 -05:00
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
2049896cab Improve gamma corrected resampling by acknowledging the perceptual luminance 2025-04-30 15:22:06 -05:00
4899913446 Common: Move some duplicate container element construction logic into a ManuallyConstructedValue template. 2025-04-30 14:56:07 -05:00
e8b63fe090 UnitTests: Add tests for WorkQueueThread. 2025-04-30 14:31:51 -05:00
a149b9d62d WorkQueueThread: Cleanups. Implement in terms of WaitableSPSCQueue. Add single producer WorkQueueThreadSP. 2025-04-30 14:31:51 -05:00
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
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
7e2565ae49 Update rcheevos submodule 2025-04-30 08:16:06 -04:00
0b0151770a Merge pull request #13436 from JoshuaVandaele/clang-format-19
Update clang-format to version 19
2025-04-30 01:17:31 -04:00
23a5ea3504 Merge pull request #13604 from fox8091/nstrike
GameINI: Disable Dual Core for NERF N-Strike
2025-04-29 14:56:32 -04:00
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
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
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
26ae66297d GameINI: Disable Dual Core for NERF N-Strike 2025-04-28 13:11:50 -05:00
c32ca0696e FifoPlayer: Make functions static 2025-04-28 20:09:14 +02:00
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
4ec2072beb Core: Use MoveOnlyFunction for RunOnCPUThread. 2025-04-27 20:07:13 -05:00
37aa65afc4 VideoCommon: Use MoveOnlyFunction for AsyncRequests. 2025-04-27 20:07:13 -05:00
e403dee3da Common: Add MoveOnlyFunction. 2025-04-27 20:07:13 -05:00
97e696e524 CMake: Explicitely link udev if LIBUDEV_FOUND is set 2025-04-27 22:03:15 +02:00
2e6e7eddd1 DVDThread: Implement with WorkQueueThread and WaitableSPSCQueue. 2025-04-27 04:16:27 -05:00
891833d1a1 Externals: Update zstd from 1.4.4 to 1.5.7 and convert to submodule 2025-04-26 22:07:59 +02:00
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
8ee64a84c7 Merge pull request #13590 from tygyh/UCodes-Remove-redundant-qualifiers
UCodes: Remove redundant qualifiers
2025-04-26 16:23:27 +01:00
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
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
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
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
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
45b9def42c VideoConfig: Remove ConfigChangedCallback on shutdown 2025-04-25 16:00:43 -07:00
d0dc8ae5e1 FreeLook: Remove ConfigChangedCallback on shutdown 2025-04-25 16:00:43 -07:00
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
8724daf44e Settings: Remove ConfigChangedCallback on shutdown 2025-04-25 16:00:19 -07:00
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
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
9868138c22 UCodes: Remove redundant qualifiers 2025-04-25 13:18:56 +02:00
066408326c Core/HW/EXI: Remove redundant inline specifiers 2025-04-25 12:03:52 +02:00
50ca32352f Core/HW/GCMemcard: Make variables constant 2025-04-25 11:35:59 +02:00
805307f432 Merge pull request #13451 from vyuuui/numeric_labels
Add numeric label support to assembler
2025-04-25 01:56:43 +01:00
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
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
5523b9a01b Merge pull request #13487 from Dentomologist/performancemetrics_fix_window_arrangement
PerformanceMetrics: Fix window arrangement
2025-04-25 01:40:58 +01:00
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
a6290caa2e DSPHLE: set accelerator gain 2025-04-25 01:09:15 +01:00
80adfc606d docs/DSP: Rename SCALE to PRED_SCALE 2025-04-25 01:09:15 +01:00
8412a7c336 DSPAccelerator: update comment (NFC) 2025-04-25 01:09:15 +01:00
f0bacb826a DSPAccelerator: rename MMIOPCMHalt to MMIOPCMNoInc 2025-04-25 01:09:15 +01:00
7c7c179b44 DSP tests: update DSP MMIO labels 2025-04-25 00:51:46 +01:00
6c870860ea DSP tests: clean up unused code 2025-04-25 00:51:46 +01:00
05381c5b6d Address Pokechu22's feedback 2025-04-25 00:51:46 +01:00
21d5e3182d Fix DSP loop test init order, add DSP pcm test 2025-04-25 00:51:46 +01:00
cd77e682ca Name gain shift/scaling better 2025-04-25 00:51:46 +01:00
512da86b1a Update DSP docs with accelerator info, fix ANDC/ORC instruction description typos 2025-04-25 00:51:46 +01:00
c460cafecf Update ACDRAW/ACDSAMP reg names in DSPTables and DSPSpy tests 2025-04-25 00:51:46 +01:00
d517fe25f1 Add accelerator input MMIO register, fix MMIO PCM modes 2025-04-25 00:51:45 +01:00
14fadbbe56 ADPCM mode doesn't entirely die with larger accesses, gain is PCM only 2025-04-25 00:51:45 +01:00
c7d8afc5a7 Use correct exceptions for d3 reads/writes 2025-04-25 00:51:45 +01:00
c9bb258e88 Add accelerator raw d3 test 2025-04-25 00:51:45 +01:00
0dd282f626 Fix DSPAcceleratorTest 2025-04-25 00:51:45 +01:00
ac2fdefcb4 Refactor accelerator format as a bitfield, use gain/yn1/yn2 in PCM mode 2025-04-25 00:51:45 +01:00
04c7c1a4a1 Rename accelerator accesses to 'raw' and 'sample' 2025-04-25 00:51:45 +01:00
256d9f8702 Improve ReadD3 emulation 2025-04-25 00:51:45 +01:00
bbc11edd7d Rework WriteD3 based on hardware testing 2025-04-25 00:51:45 +01:00
4d9dc1e1cd GekkoDisassembler: standardize SPR names and add missing ones 2025-04-25 00:24:12 +01:00
908094714b Translation resources sync with Transifex 2025-04-24 23:38:09 +02:00
ef8b9a0dcd Core/HW/SI: Make variables constant 2025-04-24 17:01:12 +02:00
8fa725d5e4 Merge pull request #13573 from tygyh/DolphinTool-Make-parameter-constant
DolphinTool: Make parameter constant
2025-04-24 00:49:10 -04:00
fc0aafca3b Merge pull request #13577 from tygyh/UCodes-Make-functions-static
UCodes: Make functions static
2025-04-24 00:48:46 -04:00
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
1cea31c75a Merge pull request #13580 from LillyJadeKatrin/retroachievements-de-bug-debug
Fix debugger disabled bug
2025-04-23 23:28:19 -05:00
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
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
8bb07bf3c4 LibusbDevice: Send wakeup command to Santroller devices 2025-04-24 12:09:41 +12:00
879a8889aa Merge pull request #13431 from jordan-woyak/spsc-waiting
Common: SPSCQueue cleanups and improvements.
2025-04-23 22:19:15 +02:00
564e7c3320 UCodes: Make functions static 2025-04-23 21:36:13 +02:00
467a568f60 Core/HW: Remove redundant empty lambda parameter lists 2025-04-23 21:32:09 +02:00
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
03a6fdcd85 DolphinTool: Make variables constant 2025-04-23 20:24:50 +02:00
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
c44418a4d9 Merge pull request #13561 from JosJuice/android-renumbered-platforms
Android: Update platform enum values
2025-04-23 17:08:50 +02:00
fe657b9759 DolphinTool: Make parameter constant 2025-04-23 15:55:48 +02:00
d5314cbf48 UnitTests: Remove redundant virtual specifier 2025-04-23 14:33:14 +02:00
9926a9bd7f VertexLoaderTest: Replace std::tie with structured bindings 2025-04-23 13:11:17 +02:00
947bdea590 UnitTests: Use constexpr 2025-04-23 12:45:08 +02:00
e751235574 DolphinQt: Remove unused variables from AdvancedPane.h
Small oversight from #13422.
2025-04-23 12:32:12 +02:00
bf554edfe0 linter: Add and apply new formatting rules
New rules:
`InsertNewlineAtEOF: true`
`RemoveSemicolon: true`
`RequiresClausePosition: WithPreceding`
2025-04-23 11:19:57 +02:00
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
d9d0082018 linter: Bump clang-format version to 19.1 2025-04-23 11:15:52 +02:00
6e6736c89f UnitTests: Rename lambda parameters which hide previous declarations 2025-04-23 08:15:10 +02:00
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
af960651e8 Common: SPSCQueue cleanups and improvements. 2025-04-22 23:49:32 -05:00
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
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
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
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
c4f65febf3 Merge pull request #13563 from Tilka/rcheevos
Fix building with USE_RETRO_ACHIEVEMENTS=OFF
2025-04-23 03:27:15 +01:00
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
31a3de819d Merge pull request #13540 from tygyh/DiscIO-Remove-redundant-qualifiers
DiscIO: Remove redundant qualifiers
2025-04-22 20:00:03 -05:00
0fd090ce19 Merge pull request #13550 from Tilka/top_warnings
IOS/Network: fix some warnings
2025-04-22 19:45:47 -05:00
4773a6f323 Add a GUI option to select a bluetooth device 2025-04-23 02:19:28 +02:00
826625c7be Merge pull request #13422 from jordan-woyak/adv-tooltips
DolphinQt: Use tooltips on Advanced tab.
2025-04-22 19:27:21 -04:00
00544e4dff Core/Boot: Fix unused variable warning. 2025-04-22 18:19:32 -05:00
609165b62b Fix building with USE_RETRO_ACHIEVEMENTS=OFF 2025-04-22 23:45:40 +01:00
f6d3f448d9 IOS/Network: fix -Wmissing-braces warnings 2025-04-22 23:36:01 +01:00
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
da84a9f605 Merge pull request #13477 from OatmealDome/macos-11
CMakeLists: Bump minimum macOS to 11.0
2025-04-22 17:27:12 -04:00
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
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
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
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
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
ecafd8058f DiscIO: Remove redundant qualifiers 2025-04-22 13:54:10 +02:00
71249dec33 Android: Apply style alignment refactorings 2025-04-22 13:34:21 +02:00
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
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
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
1e8b668793 DVDInterface: Fix crash when playing wiiware. 2025-04-21 18:38:33 -05:00
1fc6be7f80 AudioCommon: Make cubeb sound backend default on Linux. 2025-04-21 16:25:40 -05:00
de2826d995 Merge branch 'release-prep-2503a' 2025-04-21 17:03:52 -04:00
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
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
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
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
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
427e9c5ad2 IOS: Move USB scanning thread to new class USBScanner 2025-04-21 21:25:35 +02:00
c0c180bdc2 Merge pull request #13467 from JosJuice/profiler-thread-safety
Common: Make Profiler thread safe
2025-04-21 20:19:47 +02:00
258fc1b209 Merge pull request #12949 from LillyJadeKatrin/retroachievements-new-dev-branch
RetroAchievements - Dev Branch Refactor
2025-04-21 14:08:40 -04:00
0b2338a5ee Merge pull request #10084 from Zopolis4/master
Identify Triforce games in gamelist
2025-04-21 13:57:57 -04:00
35fa32e254 Core/PowerPC/JitArm64: Replace zeroes in boolean context with false 2025-04-21 17:06:06 +02:00
89fdc0b9e0 Fix Triforce GameINIs 2025-04-21 22:05:26 +10:00
2238967d93 Add Triforce IPL hash 2025-04-21 22:05:25 +10:00
660232a12c Preliminary implementation of the Triforce Baseboard 2025-04-21 22:05:25 +10:00
2baa09d5b4 Implement endian swapping and lazy decryption of Triforce DI commands 2025-04-21 22:05:25 +10:00
8d94d25203 Implement Triforce ID parsing 2025-04-21 22:05:25 +10:00
71f654cdc4 Add Triforce platform and preliminary boot.id parsing 2025-04-21 22:05:25 +10:00
494e2c05c2 Adding support for detecting .bin images 2025-04-21 22:05:24 +10:00
0827d9f06d MemArenaDarwin: Initialize all address variables passed to vm_map 2025-04-21 00:40:01 -04:00
0109c27ad7 SI: Fix GBA link by having a separate response for "error" and "no data". 2025-04-21 00:39:07 -04:00
e40c9b674c ScmRevGen: Bump version to 2503a 2025-04-21 00:38:22 -04:00
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
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
53b66be47d MTLUtil: Remove availability checks for macOS 10.15 and iOS 13 2025-04-21 00:24:58 -04:00
0bc33fb6df MTLUtil: Remove availability check for macOS 10.15 2025-04-21 00:24:58 -04:00
dc8865718e MTLUtil: Remove availability check for macOS 11 2025-04-21 00:24:58 -04:00
7213cdd439 MemoryUtil: Remove availability checks for macOS 11 2025-04-21 00:24:58 -04:00
ad79a62d22 README: Update minimum macOS version to 11.0 2025-04-21 00:24:57 -04:00
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
39e535d4aa CMakeLists: Bump minimum macOS to 11.0 2025-04-21 00:24:57 -04:00
a517c9f862 CoreTiming: Move VISkip calculation into a separate function. 2025-04-20 22:01:06 -05:00
7236d1539a CoreTiming: Cleanups to avoid drift from cumulative rounding errors. 2025-04-20 22:01:01 -05:00
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
41408076e3 Merge pull request #13520 from shuffle2/android-start
Prevent android generating duplicate analytics events
2025-04-20 20:17:30 -04:00
7e7b75c1e6 Merge pull request #13537 from tygyh/DiscIO-Make-variables-constexpr
DiscIO: Make variables constexpr
2025-04-21 00:52:18 +01:00
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
0a52140145 Merge pull request #13549 from shuffle2/ucrtpatch
remove ucrt compat patches
2025-04-20 22:24:57 +01:00
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
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
8d7d026da6 Merge pull request #13533 from tygyh/DiscIO-Make-classes-final
DiscIO: Make classes final
2025-04-20 16:06:07 -05:00
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
5dd896a7d9 HttpRequest: remove some legacy code for windows < 8.1 2025-04-20 11:46:09 -07:00
07ad189b4f DiscIO: Pass parameters by constant reference 2025-04-20 08:26:09 +02:00
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
ac3dbe2294 Core/State: Use UniqueBuffer instead of make_unique and std::vector for save state buffers. 2025-04-19 17:29:56 -05:00
12dcd6c285 Common: Add UniqueBuffer and SharedBuffer templates. 2025-04-19 17:13:40 -05:00
f78fa2e9f1 LinearDiskCache: Use make_unique_for_overwrite. 2025-04-19 17:13:40 -05:00
77b4270981 DiscIO: Remove redundant zero initializers in aggregate initializations 2025-04-19 22:04:50 +02:00
7123fcd19b DiscIO: Use = default to define a trivial destructor 2025-04-19 17:43:18 +02:00
f6ba69f99a DiscIO: Make variables constexpr 2025-04-19 17:17:02 +02:00
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
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
3eee52cb6b Android: Create toggle for enabling/disabling time tracking 2025-04-19 14:29:49 +02:00
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
fda8afaf5c SI: Fix GBA link by having a separate response for "error" and "no data". 2025-04-19 03:28:57 -05:00
301cc5ee63 DiscIO: Make classes final 2025-04-19 09:05:22 +02:00
cb20959679 Common/Timer: Change HANDLE to void* to avoid including Windows.h to fix cmake build. 2025-04-18 21:50:15 -05:00
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
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
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
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
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
fa782de15c Add MemoryPoker for RAIntegration 2025-04-16 17:00:58 -04:00
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
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
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
2af276d27e MemArenaDarwin: Initialize all address variables passed to vm_map 2025-04-16 00:50:54 -04:00
c4f906bcd9 Replace definitions with constant expressions - Core/HW/EXI/BBA/TAP_Win32 2025-04-15 12:26:16 +02:00
3bb925c1c7 DiscIO/Volume: Fix Partition struct comparison operators 2025-04-15 12:18:23 +02:00
473cb6c3bc Remove redundant parentheses - Tools 2025-04-15 08:08:07 +02:00
2397a3a915 Use range-based loops - Core VideoBackends 2025-04-14 21:49:08 +02:00
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
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
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
36c7e7f3c7 Load RA_Integration.DLL at init if present 2025-04-13 08:05:59 -04:00
cab5bc5680 Update rcheevos submodule to newest master 2025-04-13 08:05:59 -04:00
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
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
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
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
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
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
03451f2bc9 IP/Top: Fix performance regression in GetInterfaceOpt 2025-04-12 01:38:00 +04:00
87beb7d67b InputCommon: Activate IMU Accelerometer and Gyroscope when any direction has a bound input. 2025-04-10 15:55:49 -05:00
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
4aa056dd4d BPStructs: Add TODO for unsafe usage of GetTicks. 2025-04-08 19:58:31 -05:00
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
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
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
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
b306d00d5d DolphinQt/AudioPane: Fix Audio backend dropdown not using translated names 2025-04-06 05:09:23 +02:00
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
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
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
74e752ed9c Mixer: Use Doubles for Sample Rate Conversion. 2025-04-05 13:46:37 -05:00
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
06afa0036a CoreTiming: Fix Precision Frame Timing in Dual Core mode on Windows. 2025-04-04 19:13:53 -05:00
edb1db7400 Translation resources sync with Transifex 2025-04-04 21:45:46 +02:00
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
e0e53f3235 Common/Timer: Use YieldProcessor on Windows. 2025-04-03 15:48:51 -05:00
7dc27753e2 CoreTiming: Add a setting to use Common::PrecisionTimer. 2025-04-03 15:48:51 -05:00
e5c8935acc Common: Create a PrecisionTimer class. 2025-04-03 15:48:51 -05:00
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
af1f07207f VideoInterface: Throttle for VBlank only when necessary. 2025-04-02 23:24:03 -05:00
c42dab6388 Core: Move CountPerformanceMarker to VideoInterface to eliminate a Throttle call. PerformanceMetrics: Fixes/Cleanups. 2025-04-02 23:23:51 -05:00
61ab662733 Merge pull request #13424 from Sam-Belliveau/granule-performance-improvements
AudioCommon: Increased Granule Synthesis Performance
2025-04-02 22:44:14 -04:00
ebc9c8492d Use std::views::values and std::views::keys functions - NetPlayServer 2025-04-02 20:06:10 +02:00
c705e366f0 Merge pull request #13478 from jordan-woyak/metal-af
VideoBackends/Metal: Fix anisotropic filtering handling.
2025-04-02 09:07:44 +01:00
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
877864c23a Improve Performance of Granular Buffering + User Adjustable Buffer Size 2025-04-01 18:17:21 -04:00
33a7283d3b VideoBackends/Metal: Fix anisotropic filtering handling. 2025-04-01 15:09:21 -05:00
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
17c994df2a InputCommon: Move SDL Device class into its own cpp/h files. 2025-03-30 23:23:06 -05:00
4533605c03 DolphinQt: Update tooltips for ImmediateXFB, VBISkip, SkipPresentingDuplicateFrames interaction clarity. 2025-03-30 20:55:26 -05:00
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
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
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
1b87ea83e6 [Debugger] CTRL+G support in code and memory view 2025-03-29 12:43:15 -07:00
957265ba52 Common: Make Profiler thread safe 2025-03-29 15:05:02 +01:00
9819d66a47 Merge pull request #13221 from mitaclaw/nrvo-fails-1
GCC: Remedy NRVO Fails
2025-03-29 03:26:46 -04:00
f00b7d39f0 Merge pull request #13465 from TryTwo/PR_Bugfix
AudioPanel Bugfix
2025-03-28 19:56:36 -04:00
efd993f382 AudioPanel bugfix: Forgot to wrap an optional slider in a conditional. 2025-03-28 15:50:24 -07:00
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
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
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
e0032b3e2c Merge pull request #13122 from TryTwo/PR_Audio_Configs
AudioPanel: Refactor to use Config system.
2025-03-28 14:52:54 -04:00
c7ede8a6b7 Merge pull request #13461 from JoshuaVandaele/warningsbegone
Fix shadowed variable warnings and missing declarations
2025-03-28 18:43:09 +01:00
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
0a3feb3e42 Android/Input: Fix a crash when mapping wii remote extensions. 2025-03-27 18:29:02 -05:00
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
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
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
ebd879cb30 Core: Name the play time tracker thread. 2025-03-27 01:38:55 -05:00
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
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
1ecd6fbc9b Move variables to inner scope 2025-03-26 18:21:46 +01:00
e351f03cdf VideoCommon: Fix out-of-bounds and disabled EFB access. 2025-03-26 01:23:16 -05:00
849d8b7dae DolphinQt: Fix blank square in MappingWindow's top-left corner. 2025-03-25 20:52:29 -05:00
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
d2cc6760a0 Use Common::ToUnderlying 2025-03-25 21:25:46 +01:00
eb84b0fb9b Merge pull request #13442 from TryTwo/PR_CodeWidget_Layout_Tweak
Debugger CodeWidget: Small layout tweak
2025-03-25 13:19:02 -04:00
e34907025d Add numeric label support to assembler 2025-03-24 18:59:32 -07:00
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
5a708f0f24 GameSettings: fix startup crash in "The Daring Game for Girls" 2025-03-23 23:28:22 +00:00
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
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
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
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
ad3650abfc Merge pull request #13093 from mitaclaw/ranges-modernization-4-projection
Ranges Algorithms Modernization - Projection
2025-03-23 15:56:13 -04:00
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
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
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
28f1beeca8 Merge pull request #13398 from jordan-woyak/perf-tracker
PerformanceTracker: Eliminate mutex. General cleanups.
2025-03-23 15:21:11 -04:00
178462e10f Merge pull request #13385 from Tilka/sp2_ad16
Fix AD16 and make SP2 configurable
2025-03-23 15:20:45 -04:00
9b0471532c Merge pull request #13368 from jordan-woyak/anisotropic-filtering
Use Game Requested Anisotropic Filtering
2025-03-23 15:17:24 -04:00
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
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
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
303366b1ce PowerPC: Add RAII handling for breakpoint updates
bbf72e7 made a change where you can pass `false` to certain MemChecks
functions to get them to skip performing an "update" step. It was then
up to the caller to call the Update function later.

This commit changes the implementation so that, instead of the caller
passing in a boolean that controls whether a function calls Update, the
function now returns an object that on destruction will call Update.
Callers that are fine with Update being called right away can skip
storing the object in a variable and thereby call Update immediately,
and callers that want to call Update later can keep the object around.
This new design reduces the risk that someone will forget calling
Update.
2025-03-23 15:29:19 +01:00
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
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
d03f9032c1 Core / DolphinQt / InputCommon: reduce the number disk writes when using DynamicInputTextures 2025-03-22 14:53:02 -05:00
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
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
3bf2de369a WiimoteEmu: Eliminate dynamic memory allocation in speaker data decoding. 2025-03-18 03:12:50 -05:00
561aee7707 Config: Expose Default and 1x Anisotropic Filtering setting. 2025-03-17 20:46:24 -05:00
4b711e1e0a DolphinQt: Allow ConfigComplexChoice to handle DefaultState values. 2025-03-17 20:46:24 -05:00
ba1bf6959e Config: Allow passing a DefaultState object to Set functions to delete keys. 2025-03-17 20:46:24 -05:00
137d1375d4 Enable game-requested anisotropic filtering in Metal backend. 2025-03-17 20:46:24 -05:00
79a1e480ca Enable anisotropic filtering when the game requests it 2025-03-17 20:46:19 -05:00
a7d1cac8ad Core: Call PerformanceMetrics::CountFrame regardless of PresentReason. 2025-03-17 17:24:08 -05:00
0299540209 Merge pull request #13397 from jordan-woyak/perf-metrics
PerformanceMetrics: Eliminated a mutex. Code cleanups.
2025-03-17 23:20:41 +01:00
3b8384acf6 Merge pull request #13438 from Tilka/heads/refs/warning
Fix -Wunused-lambda-capture warning
2025-03-17 22:16:46 +00:00
6a90affa38 Fix -Wunused-lambda-capture warning 2025-03-17 20:08:19 +00:00
42fb43dacf Implement multiple saves import
https://bugs.dolphin-emu.org/issues/12887
2025-03-17 10:43:09 +01:00
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
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
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
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
9e513d93e1 Merge pull request #13414 from jordan-woyak/vconfig-framedump
VideoConfig: Eliminate frame dumping members.
2025-03-16 14:53:47 -04:00
07cec796f4 Merge pull request #13417 from luzpaz/typo-source-core-common
Core/Common: Fix typos
2025-03-16 14:53:02 -04:00
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
48b2f7d200 VideoConfig: Eliminate frame dumping members. 2025-03-16 04:30:06 -05:00
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
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
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
f4c37aeb14 Merge pull request #13423 from jordan-woyak/async-request-cleanup-1
AsyncRequests Cleanups.
2025-03-15 18:17:29 -04:00
90b6f0d16d Config: make SP2 configurable 2025-03-15 22:03:17 +00:00
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
6aff82eda3 WiimoteEmu: Make TaTaCon DesiredState use only one byte of space. 2025-03-15 16:48:05 -05:00
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
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
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
46e0952e97 PerformanceTracker: Use SPSCQueue and atomic to eliminate need for a mutex. Clean up some math. 2025-03-15 14:40:00 -05:00
c763961112 PerformanceTracker: Use std::deque instead of hand-rolled circular
queue.
2025-03-15 14:40:00 -05:00
b2ce3fbefc PerformanceTracker: Pass chrono values instead of us s64. 2025-03-15 14:40:00 -05:00
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
225039f742 Merge pull request #13427 from LillyJadeKatrin/retroachievements-code-approval-fix
Fixed Multi Config Code Approvals
2025-03-15 13:57:48 -04:00
049e52ce1c Merge pull request #13429 from JosJuice/fix-broken-merge
Fix broken merge of PR #13181
2025-03-15 17:53:11 +01:00
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
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
1f087473aa Merge pull request #12809 from JosJuice/jitarm64-cmp-sp
JitArm64: Replace a comparison to SP
2025-03-15 16:00:15 +01:00
b2f8dac739 Merge pull request #13271 from dreamsyntax/gradle-wrapper
Android: Upgrade AGP & Gradle
2025-03-15 15:59:21 +01:00
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
8c7ab286f5 Merge pull request #13181 from tygyh/Replace-'reinterpret_cast'
Replace 'reinterpret_cast' with 'static_cast'
2025-03-15 15:31:38 +01:00
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
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
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
01978cfcf7 Contributing.md: Replace egrep with grep -E in clang-format command. 2025-03-15 10:02:53 +00:00
2690a62949 Core: Remove unused GetActualEmulationSpeed function and related variables/functions. 2025-03-14 03:10:13 -05:00
e1745f682f PerformanceMetrics: Eliminated a mutex. Code cleanups. 2025-03-14 03:10:13 -05:00
4d3f247cc3 Merge pull request #13352 from Sam-Belliveau/granular_synthesis
AudioCommon: Granule Synthesis Audio System
2025-03-14 03:57:09 -04:00
f09ba10daa AudioCommon: Added Granular Synthesis 2025-03-14 01:22:35 -05:00
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
6c158ed590 VideoCommon: Create AsyncRequests directly in MMU code to eliminate EFB-related functions in VideoBackendBase. 2025-03-14 01:14:51 -05:00
63b848ca93 VideoCommon: Eliminate EFBAccessType enum. Eliminate union and switch statement handler in AsyncRequests. 2025-03-14 00:59:41 -05:00
15372dc835 VideoCommon: move lighting shader logic to callable functions 2025-03-13 23:56:04 -05:00
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
0e2785a562 Merge pull request #13387 from jordan-woyak/frame-pacing
CoreTiming: Improve frame pacing
2025-03-13 14:23:18 -04:00
a421d6859f Merge pull request #13418 from jordan-woyak/efb-interface
VideoCommon: Rename Renderer to EFBInterface.
2025-03-13 14:20:34 -04:00
fdf00050a6 DolphinQt: Use tooltips on Advanced tab. 2025-03-13 05:32:16 -05:00
5b36c13bfb VideoCommon: Rename Renderer to EFBInterface. 2025-03-12 21:09:16 -05:00
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
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
b7bd0a0836 Merge pull request #13413 from jordan-woyak/vconfig-progressive
VideoConfig: Eliminate bForceProgressive.
2025-03-11 18:59:28 -04:00
67c8d5640f Merge pull request #13412 from jordan-woyak/netplay-vconfig
VideoConfig: Eliminate NetPlay related members.
2025-03-11 18:59:02 -04:00
1698daef66 Merge pull request #13410 from jordan-woyak/movie-vconfig
Movie: Eliminate MovieManager::SetGraphicsConfig.
2025-03-11 18:58:45 -04:00
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
9b2ab6e259 Merge pull request #13407 from luzpaz/typo-data
Data: fix various typos
2025-03-11 15:37:59 -05:00
c191ed5321 VertexShaderManager: Eliminate unnecessary m_viewport_correction member. 2025-03-11 03:55:57 -05:00
5b88c0b90e DolphinQt/GeneralWidget: Eliminate unnecessary g_Config usage. 2025-03-10 20:19:45 -05:00
de01a790e1 VideoConfig: Eliminate bForceProgressive. 2025-03-10 19:02:43 -05:00
7f3d8a1ad4 VideoConfig: Eliminate NetPlay related members. 2025-03-10 18:53:44 -05:00
44423a3656 Movie: Eliminate MovieManager::SetGraphicsConfig. 2025-03-10 18:16:49 -05:00
7222188cde Core/VideoCommon: Push presentation time calculated from CPU thread to GPU thread. 2025-03-10 16:40:46 -05:00
c4bd98c626 VideoInterface: Throttle before VBlank statistics counting. 2025-03-10 16:40:46 -05:00
9ac9813492 SystemTimers: Throttle prior to performance marker. 2025-03-10 16:40:46 -05:00
aa624d8ba8 BTEmu: Throttle prior to wii remote input update. 2025-03-10 16:40:46 -05:00
9675c90890 VideoInterface: Throttle prior to SI poll. 2025-03-10 16:40:46 -05:00
81e842e2aa CoreTiming: Don't Throttle in event queue processing. 2025-03-10 16:39:13 -05:00
fe2d247acb VideoCommon: Don't merge EFBPoke AsyncRequests. 2025-03-10 16:37:24 -05:00
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
3705c73d55 xdg-screensaver was replaced by calling dbus interfaces 2025-03-10 21:44:58 +01:00
ae11ffadf6 Allow flatpak to talk to inhibit/screensaver dbus interfaces 2025-03-10 21:44:58 +01:00
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
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
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
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
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
189d09011b Merge pull request #13363 from JoshuaVandaele/nowarnings
Fix multiple minor warnings
2025-03-10 15:04:14 -04:00
3f73a39dbd Merge pull request #13286 from JoshuaVandaele/xcb
Enforce XCB within code
2025-03-10 15:03:54 -04:00
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
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
9e23a0a506 Merge branch 'release-prep-2503' 2025-03-10 12:34:02 -04:00
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
9763c0a1e2 ScmRevGen: Bump major version to 2503 2025-03-10 00:46:00 -04:00
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
f4e6878384 Merge pull request #13406 from Tilka/snow
GameSettings: fix shadows in Triple Crown Championship Snowboarding
2025-03-09 22:48:47 +00:00
cbd71f06ba GameSettings: fix shadows in Triple Crown Championship Snowboarding 2025-03-09 20:50:22 +00:00
e4efe011d7 Modernize std::max_element with ranges and projections 2025-03-09 13:26:39 -07:00
258ec4f9cd Modernize std::lower_bound/upper_bound with ranges and projections 2025-03-09 13:26:38 -07:00
c9f589faa5 Modernize std::stable_sort with ranges and projections 2025-03-09 13:26:38 -07:00
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
9f972db4b8 Modernize std::none_of with ranges and projections 2025-03-09 13:26:37 -07:00
00e147c722 Simplify std::count_if with std::ranges::count and projections 2025-03-09 13:26:37 -07:00
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
1e5e9219cd Common: Create Range Projections For std::pair 2025-03-09 13:19:41 -07:00
87496205aa Merge pull request #13404 from luzpaz/typo-source-core-windupdater
Core/WinUpdater: fix typo
2025-03-09 12:03:56 +01:00
e974e48e1f Merge pull request #13405 from luzpaz/typo-source-core-core
Core/Core: fix typos
2025-03-09 12:03:34 +01:00
c18c039089 VideoCommon: Move backend_info out of VideoConfig struct. 2025-03-09 01:42:45 -06:00
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
9b7d494bd4 Core/WinUpdater: fix typo 2025-03-08 09:58:50 -05:00
d2b4e12f9e Merge pull request #13399 from luzpaz/typos-macOS
CMake: fix various typos
2025-03-08 12:23:13 +01:00
7925240107 Core/VideoBackendBase: Call ExitGpuLoop from Core to eliminate Video_ExitLoop. 2025-03-07 17:30:33 -06:00
325c1a24b9 CMake: fix various typos
Also includes a fix for BuildMacOSUniversalBinary.py
2025-03-05 20:57:52 -05:00
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
5ff2af9b6a VideoInterface: Cleanup and minor fix in Update. 2025-03-04 20:39:14 -06:00
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
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
b28dcf3687 VideoInterface: Adjust even-field to match odd-field pacing when PSB values differ. 2025-03-04 04:52:24 -06:00
38099f282d GraphicMods: Fix typo in DBZ Budokai Tenkaichi 3/metadata.json 2025-03-04 04:35:10 -05:00
3c5da38177 Merge pull request #13390 from jordan-woyak/ciface-clock
InputCommon: Use Clock from CommonTypes.
2025-03-03 22:29:25 +01:00
ecb0a3e5c7 Merge pull request #13389 from iwubcode/static_texcoords_vertex_shadergen
VideoCommon: mark 'WriteTexCoordTransforms' as 'static'
2025-03-03 02:45:52 +00:00
e217d6c939 InputCommon: Use Clock from CommonTypes. 2025-03-02 15:42:26 -06:00
6dedf11c96 VideoCommon: mark 'WriteTexCoordTransforms' as 'static' 2025-03-02 11:27:54 -06:00
5d16c51963 DolphinQt: Don't recommend v-sync for optimal frame pacing in tool-tip. 2025-03-02 05:43:00 -06:00
fd2766f5df Translation resources sync with Transifex 2025-03-01 22:48:20 +01:00
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
65726b7b5f Merge pull request #13374 from Dentomologist/performancemetrics_clamping_resetting_and_add_setting
PerformanceMetrics: Add clamping, resetting on resize, and setting
2025-02-26 19:44:13 -05:00
3f92f86de1 WiimoteEmu: Add a static_assert in DesiredExtensionState to keep variant alternative order consistent. 2025-02-25 17:22:59 -06:00
0d0734e083 WiimoteEmu: Clean up variant handling in DesiredExtensionState. 2025-02-25 17:22:59 -06:00
1d481a395a VariantUtil: Introduce WithVariantAlternative to dynamically construct and visit a variant alternative. 2025-02-25 17:22:59 -06:00
f93781d91a Merge pull request #13357 from Nejsplitter/master
GameSettings: Set ImmediateXFBEnable = False for Medal of Honor: Frontline
2025-02-25 23:26:46 +01:00
f60492decb GameSettings: Set ImmediateXFBEnable = False for Medal of Honor: Frontline 2025-02-25 22:47:32 +01:00
4e460a7968 UberShaderPixel: use unswapped texture samples for depth 2025-02-25 18:45:01 +00:00
359fb51d64 PixelShaderGen: use unswapped texture samples for depth 2025-02-25 18:45:01 +00:00
7abb9e7974 Sofware/Tev: use unswapped texture samples for depth 2025-02-25 18:45:01 +00:00
030892abd9 Merge pull request #13369 from Tilka/qt_warnings
CMake: disable Qt deprecation warnings we can't fix
2025-02-25 18:32:28 +00:00
89277ee52e Merge pull request #13376 from jordan-woyak/serialized-wm-irext
WiimoteEmu: Make SerializedWiimoteState store camera points as IRExtended instead of custom layout.
2025-02-25 17:49:51 +01:00
4697f0ec2f Merge pull request #13377 from jordan-woyak/middle-clear-fix
DolphinQt: Fix MappingButton not updating text on middle-click clear.
2025-02-25 17:41:47 +01:00
0a83783fae Migrate to SFML>=3.0.0 2025-02-25 06:42:13 +01:00
104a25fe0d DolphinQt: Fix MappingButton not updating text on middle-click clear. 2025-02-24 21:17:41 -06:00
e5b55bfc06 WiimoteEmu: Make SerializedWiimoteState store camera points as IRExtended instead of custom layout. 2025-02-24 16:29:07 -06:00
0645a267d9 PerformanceMetrics: Add clamping, resetting on resize, and setting
Clamp overlays to the render window (with some padding), reset their
positions when the render window changes sizes, and add a setting to
enable moving the overlays (off by default, .ini only for now).
2025-02-24 13:17:57 -08:00
6dd0793f1b Translation resources sync with Transifex 2025-02-24 19:21:47 +01:00
7679b0e955 Merge pull request #13370 from JosJuice/i18n-pack-sd
Common: Make SD pack/unpack strings translatable
2025-02-24 18:57:55 +01:00
4d1737e423 Merge pull request #13371 from Florin9doi/prusb1
USB: Remove unused parameters
2025-02-24 05:20:30 +00:00
16ce28b70b Merge pull request #13372 from Florin9doi/prusb2
USB: Fix Infinity Manager icon
2025-02-24 05:20:15 +00:00
0f83598493 Common: Make SD pack/unpack strings translatable
Regression from adc5b81.
2025-02-23 23:09:24 +01:00
7afc3df76f USB: Infinity window icon 2025-02-24 00:08:42 +02:00
51dc3ff466 USB: Remove unused params 2025-02-24 00:07:28 +02:00
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
a8363854ee CMake: disable Qt deprecation warnings we can't fix 2025-02-23 14:18:05 +00:00
6d9c887a21 Merge pull request #13365 from jordan-woyak/si-disco
SI: Set NOREP, ERRSTAT, and ERRLATCH when GetData returns false.
2025-02-23 01:23:39 -05:00
aabde71484 Merge pull request #13348 from jordan-woyak/movie-SerializedWiimoteState
Core/Movie: Make DTM Wii Remote data use SerializedWiimoteState.
2025-02-22 14:08:41 -05:00
8431c23cbc SI: Set NOREP, ERRSTAT, and ERRLATCH when GetData returns false. 2025-02-22 09:25:57 -06:00
ddb0e1e309 Translation resources sync with Transifex 2025-02-22 14:15:38 +01:00
43a6ec5bbd Merge pull request #13353 from iwubcode/custom_shader_overhaul_vertex_texcoord
VideoCommon: move texcoord calculations to accessible functions in VertexShaderGen
2025-02-22 02:32:47 -05:00
3c57f21d3c Merge pull request #13358 from Aeplexi/master
Fix LULZ (Homebrew Channel) being forced to 4:3
2025-02-22 02:17:50 -05:00
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
dd07f6a59a Merge pull request #13364 from Tilka/shadow
CMake: don't enable -Wshadow-uncaptured-local
2025-02-21 18:32:20 +01:00
01099d67cb Merge pull request #13326 from nlebeck/taskviewmodel-mustrestartapp
Eliminate TaskViewModel's `mustRestartApp` field
2025-02-20 21:58:18 -06:00
262e6f9c17 CMake: don't enable -Wshadow-uncaptured-local
This warning unhelpfully triggers for the `[x = std::move(x)]` pattern
which is used quite a few times in Dolphin.
2025-02-21 02:51:32 +00:00
Aep
f1eec2528e Fix LULZ (Homebrew Channel) aspect ratio
- Add a LULZHB.ini
2025-02-18 21:43:10 -05:00
af064c57de Merge pull request #13219 from Tilka/cp_cleanup
VideoCommon: drop CP MMIO registers that were probably added in the wrong place
2025-02-17 21:27:19 +01:00
f0edcb2cfb Merge pull request #11469 from aminoa/master
Track Time Played (Core and QT)
2025-02-16 23:37:13 +01:00
fffb499da2 Core/HW: Add time tracking thread in CPU manager
Introduce method to track the time played for a game via time differences and TimePlayed methods. Threads are synchronized via Common::Event.
2025-02-16 23:15:12 +01:00
3c44fe592b DolphinQt: Add "Time Played" column to game list view
Shows minutes/hours in the list view and handles column visibility.
2025-02-16 23:15:11 +01:00
276f043db8 DolphinQt: Create toggle for enabling/disabling time tracking
Introduce a new "Enable Time Tracking" checkbox in the InterfacePane UI. The checkbox is dynamically enabled or disabled based on the emulation state, preventing changes while emulation is active.
2025-02-16 23:15:11 +01:00
a9ebedbf7d Core/Config: Add settings for time tracking 2025-02-16 23:15:11 +01:00
892d6e30df Core/ConfigManager: Add locks for metadata methods
All metadata access methods now acquire a lock on `m_metadata_lock` to prevent race conditions.
2025-02-16 23:15:11 +01:00
803241c64b Core: Add TimePlayed class to track game playtime
Creates TimePlayed class and implemented constructors, AddTime, GetTimePlayed, and Reload methods. Updates CMakeLists.txt and DolphinLib.props as appropriate.
2025-02-16 23:15:11 +01:00
5acbdf730a Merge pull request #13338 from JoshuaVandaele/contributing-md
Contributing.md: Improve clarity and specify clang-format version
2025-02-16 16:15:31 +01:00
aced90de97 Merge pull request #13329 from noahpistilli/guard-startup-patches
Core: Check if msr.DR and msr.IR are valid at ApplyStartupPatches
2025-02-16 16:14:35 +01:00
343007fa9e Merge pull request #13343 from jordan-woyak/dark-theme-indicator-gate-colors
DolphinQt/Mapping: Adjust dark theme indicator gate color calculation.
2025-02-15 16:34:30 -05:00
ce0f9139e9 Merge pull request #13323 from jordan-woyak/iterative-mapping
DolphinQt: Add setting to enable iterative input mappings.
2025-02-15 16:19:02 -05:00
66624abb12 DolphinQt/Mapping: Clear and skip "Modifier" iterative input mappings when using
analog inputs.
2025-02-15 14:15:51 -06:00
3189de6c7a DolphinQt: Add setting to enable iterative input mappings. 2025-02-15 14:15:51 -06:00
a8fae9b826 Merge pull request #13320 from jordan-woyak/detect-alternations
DolphinQt/Mapping: Add setting to enable waiting for alternate mappings.
2025-02-15 12:59:23 -05:00
c360ea0d9d Merge pull request #13344 from Tilka/dither
VideoCommon: simplify dither calculation
2025-02-15 00:32:14 -05:00
0fc36bbfa9 Merge pull request #13341 from jordan-woyak/sd-convert-buttons-rename
DolphinQt: Rename the pack/unpack SD Card buttons.
2025-02-15 00:31:40 -05:00
f9accfd4d6 Merge pull request #13324 from Sintendo/jitarm64-cmp-imm
JitArm64_Integer: cmp/cmpl optimizations
2025-02-15 00:30:34 -05:00
ac2026dd6e Merge pull request #13322 from Xphalnos/D3D_Update
VideoBackends: Use DXGI 1.6 and D3D11_4
2025-02-15 00:30:13 -05:00
b8848b5088 Merge pull request #13321 from Xphalnos/master
Externals: Vulkan 1.4 Support, xxHash 0.8.3 and VMA 3.2.0
2025-02-15 00:29:23 -05:00
1ce78dd9b4 VideoCommon: move texcoord calculations to accessible functions in VertexShaderGen 2025-02-14 22:44:49 -06:00
7a37d015b7 DolphinAnalytics/WiimoteEmu: Remove now-irrelevant game quirk check. 2025-02-13 17:39:54 -06:00
59d25aceb6 WiimoteEmu: Removed unused Extension encryption key getter. 2025-02-12 23:42:44 -06:00
83d4249838 Core/Movie: Make DTM Wii Remote data use SerializedWiimoteState. 2025-02-12 23:42:43 -06:00
adc5b81c31 DolphinQt: Rename the pack/unpack SD Card buttons. 2025-02-12 13:30:48 -06:00
5db6bd6054 VideoCommon: simplify dither calculation
This saves three instructions on AMD GPUs. Dunno about Nvidia.
2025-02-11 19:23:37 +00:00
165e35ed5d DolphinQt/Mapping: Adjust dark theme indicator gate color calculation. 2025-02-10 01:15:58 -06:00
19d954eaea VideoCommon: remove CP readonly field, it's now always false 2025-02-08 11:46:49 +00:00
84e72c185a VideoCommon: drop CP MMIO registers that were probably added in the wrong place
I think someone confused these with the actual token and bounding box
registers in PE, which were added later. In CP they never did anything
and it's suspicious that they have the same addresses as their PE
counterparts. On real hardware they always read as zero.
2025-02-08 11:46:49 +00:00
c770e7c276 Merge pull request #13318 from sanjay900/dont-detach-macos
LibusbDevice: Don't detach kernel drivers on macOS
2025-02-08 01:01:58 -05:00
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
c6be362a8c Merge pull request #13334 from jordan-woyak/mplus-lround
WiimoteEmu/MotionPlus: Gyro data calculation cleanup.
2025-02-06 22:20:24 +01:00
b1f1d7d6a7 Merge pull request #13327 from jordan-woyak/input-expressions-compound-assignment
InputCommon/ExpressionParser: Add compound assignment operators.
2025-02-06 22:15:51 +01:00
05f217bd0b Merge pull request #13330 from Dentomologist/performancemetrics_allow_moving_overlays
PerformanceMetrics: Allow users to move overlays
2025-02-06 21:56:57 +01:00
dcfb1361d2 Merge pull request #13223 from mitaclaw/branch-watch-tool-fixes-5
Branch Watch Tool: Refresh Context Menus OnEmulationStateChanged
2025-02-06 21:52:50 +01:00
db285b7c87 Merge pull request #13319 from hoogmin/infinite-style-fix
Refactor: Infinite loop in AsyncShaderCompiler according to style guidelines
2025-02-06 18:31:28 +01:00
b5978148b5 Contributing.md: Improve clarity and specify clang-format version 2025-02-06 15:16:23 +01:00
7dec083af5 Refactor: Make loop non-infinite instead in AsyncShaderCompiler. 2025-02-05 20:06:59 -05:00
6ee08fb9db Merge pull request #13302 from TryTwo/Breakpoints_Fix_Lag
Breakpoints: Fix lag when loading multiple memory breakpoints
2025-02-05 18:27:22 +01:00
99e3c6e265 Merge pull request #13299 from OatmealDome/flatpak-dirty
Flatpak: Move wrapper script outside of the manifest
2025-02-04 12:44:13 -05:00
bbf72e79f9 Breakpoints: Fix lag when adding or removing multiple memory breakpoints by only calling DBATUpdated() once. 2025-02-04 00:21:13 -07:00
b51ca82032 Merge pull request #13335 from jordan-woyak/wm-speaker-constant
WiimoteEmu: Use a named constant instead of a magic number for speaker data writes.
2025-02-04 02:22:01 +00:00
c857a7dd82 WiimoteEmu: Use a named constant instead of a magic number for speaker
data writes.
2025-02-03 19:52:38 -06:00
ba58e336bc Merge pull request #13328 from Dentomologist/performancemetrics_call_imgui_end_unconditionally
PerformanceMetrics: Call ImGui::End() unconditionally
2025-02-03 12:24:47 +01:00
5b73e2a302 Merge pull request #13325 from iwubcode/rf_community_gecko_codes
Data: update Rune Factory Frontier with community gecko codes
2025-02-03 12:22:58 +01:00
8a3b3ced96 Merge pull request #13313 from rjgabel/patch-1
GameSettings: Set EFBAccessEnable=True for "I SPY: Spooky Mansion"
2025-02-03 12:22:04 +01:00
857c93c529 WiimoteEmu/MotionPlus: Gyro data calculation cleanup. 2025-02-03 02:05:47 -06:00
4b8e36cba9 PerformanceMetrics: Allow users to move overlays
Allow users to move the FPS, VPS, Speed, and Performance Graph overlays.
2025-02-02 19:40:01 -08:00
4499718368 Core: Check if msr.DR or msr.IR are valid at ApplyStartupPatches 2025-02-02 17:27:16 -05:00
f94e6cb73e PerformanceMetrics: Call ImGui::End() unconditionally
Move ImGui::End() calls out of if(ImGui::Begin()) blocks.

Quoting from ImGui::Begin's function comment in imgui.cpp:
"You always need to call ImGui::End() even if false is returned."

In practice this didn't cause problems because the windows don't have
title bars and thus can't be collapsed, and so the block containing
::End would always run, but let's do it the right way.
2025-02-02 14:14:56 -08:00
cdabd651aa InputCommon/ExpressionParser: Add compound assignment operators. 2025-02-02 14:37:11 -06:00
56fd1f39d8 Eliminate TaskViewModel's mustRestartApp field
Instead of having UserDataImportWarningDialog set an
`onResultDismiss` callback that examines `mustRestartApp`, and having
UserDataActivity set `mustRestartApp`, just have UserDataActivity set
the callback directly.

This approach is no more data-race-y than the previous approach, and it
simplifies the code. (The behavior of restarting the app when the task
finishes is specific to the user data import flow, and there is no
reason for TaskViewModel to be directly aware of it.)
2025-02-02 12:24:51 -08:00
570fc1d5aa Data: update Rune Factory Frontier with community gecko codes 2025-02-02 12:34:38 -06:00
84d28a4272 Merge pull request #13300 from UnderCoverToni/GOME01
Gecko: Mario Power Tennis (Gamecube) | GOME01
2025-02-02 18:25:22 +01:00
5a4cde62b6 Merge pull request #13246 from nlebeck/stringutil-tests
Add a `SplitPath` unit test exercising Windows paths with drive letters
2025-02-02 18:16:13 +01:00
f1fe32c93b Merge pull request #13254 from brad0/openbsd_aarch64
ArmCPUDetect: Add OpenBSD support for elf_aux_info
2025-02-02 18:12:03 +01:00
77056ba7b7 Merge pull request #13208 from Dentomologist/wiitasinputwindow_update_on_attachment_change
WiiTASInputWindow: Update controls when attachment changes
2025-02-02 18:02:58 +01:00
acf03a641a GameSettings: Set EFBAccessEnable=True for "I SPY: Spooky Mansion"
This is necessary so you can select an option in the color selection menu
2025-02-02 17:58:38 +01:00
017e0b5658 Merge pull request #13306 from OatmealDome/cubeb-optional
CMakeLists: Add flag to disable Cubeb
2025-02-02 17:50:20 +01:00
6a3a74508d Merge pull request #13317 from cristian64/spurious_config_file
DolphinQt: Use global settings object also for debugger settings.
2025-02-02 17:25:24 +01:00
9ff833e2f4 Merge pull request #13315 from jordan-woyak/func-exp-cleanup
InputCommon/ExpressionParser: Function argument parsing minor cleanup.
2025-02-02 17:23:13 +01:00
04775b6ef8 Merge pull request #13314 from jordan-woyak/input-expressions-assignment-op-fix
InputCommon: Fix input expression assignment operator behavior.
2025-02-02 17:22:25 +01:00
755c003265 JitArm64_RegCache: Const correctness
Forgot this when I added it in #13120.
2025-02-02 12:57:59 +01:00
7ce7da629e JitArm64_Integer: cmpl - Subtract shifted 12-bit constant
You can encode a shifted 12-bit immediate in a SUB instruction on ARM64.
We exploit this to avoid materializing the immediate.

This approach saves an instruction if it does not need to be
materialized in a register afterwards. Otherwise, we just materialize
it later and the total number of instructions stays the same.

Before:
0x52a00218   mov    w24, #0x100000            ; =1048576
0xcb180379   sub    x25, x27, x24

After:
0xd1440379   sub    x25, x27, #0x100, lsl #12 ; =0x100000
2025-02-02 12:57:59 +01:00
b7c3f91643 JitArm64_Integer: cmpl - Subtract 12-bit constant
You can encode a 12-bit immediate in a SUB instruction on ARM64. We can
exploit this to avoid materializing the immediate.

This approach saves an instruction if it does not need to be
materialized in a register afterwards. Otherwise, we just materialize
it later and the total number of instructions stays the same.

Before:
0x5280003a   mov    w26, #0x1                 ; =1
0xcb1a033b   sub    x27, x25, x26

After:
0xd100073b   sub    x27, x25, #0x1
2025-02-02 12:57:59 +01:00
c5870ed0c7 JitArm64_Integer: cmp - Skip sign extension if possible
While we cannot always avoid materializing immediates, we can still
inspect the most significant bit and potentially skip sign extension.
This can sometimes save an instruction.

Before:
0x5280003a   mov    w26, #0x1                 ; =1
0x93407f5b   sxtw   x27, w26
0xcb38c37b   sub    x27, x27, w24, sxtw

After:
0x5280003a   mov    w26, #0x1                 ; =1
0xcb38c35b   sub    x27, x26, w24, sxtw

Before:
0x52a20018   mov    w24, #0x10000000          ; =268435456
0x93407f79   sxtw   x25, w27
0xcb38c339   sub    x25, x25, w24, sxtw

After:
0x52a20018   mov    w24, #0x10000000          ; =268435456
0x93407f79   sxtw   x25, w27
0xcb180339   sub    x25, x25, x24
2025-02-02 12:57:49 +01:00
075c35602f JitArm64_Integer: cmp - Add shifted 12-bit constant
You can encode a shifted 12-bit immediate in an ADD instruction on
ARM64. If the negated constant fits in this range, we can exploit this
to avoid materializing the immediate.

This approach saves an instruction if it does not need to be
materialized in a register afterwards. Otherwise, we just materialize
it later and the total number of instructions stays the same.

Before:
0x52bff01a   mov    w26, #-0x800000           ; =-8388608
0x93407f1b   sxtw   x27, w24
0xcb3ac37b   sub    x27, x27, w26, sxtw

After:
0x93407f1b   sxtw   x27, w24
0x9160037b   add    x27, x27, #0x800, lsl #12 ; =0x800000
2025-02-02 12:01:08 +01:00
01eed0a758 JitArm64_Integer: cmp - Add 12-bit constant
You can encode a 12-bit immediate in an ADD instruction on ARM64. If the
negated constant fits in this range, we can exploit this to avoid
materializing the immediate.

This approach saves an instruction if it does not need to be
materialized in a register afterwards. Otherwise, we just materialize
it later and the total number of instructions stays the same.

Before:
0x12800019   mov    w25, #-0x1                ; =-1
0x93407f5b   sxtw   x27, w26
0xcb39c37b   sub    x27, x27, w25, sxtw

After:
0x93407f5b   sxtw   x27, w26
0x9100077b   add    x27, x27, #0x1
2025-02-02 12:01:05 +01:00
352cbc4772 JitArm64_Integer: cmp - Subtract shifted 12-bit constant
You can encode a shifted 12-bit immediate in a SUB instruction on ARM64.
Constants in this range do not need to be sign extended, so we can
exploit this to avoid materializing the immediate.

This approach saves an instruction if it does not need to be
materialized in a register afterwards. Otherwise, we just materialize
it later and the total number of instructions stays the same.

Before:
0x52a00099   mov    w25, #0x40000             ; =262144
0x93407f7a   sxtw   x26, w27
0xcb39c35a   sub    x26, x26, w25, sxtw

After:
0x93407f7a   sxtw   x26, w27
0xd141035a   sub    x26, x26, #0x40, lsl #12  ; =0x40000
2025-02-02 12:00:44 +01:00
4a29e0e4f4 JitArm64_Integer: cmp - Subtract 12-bit constant
You can encode a 12-bit immediate in a SUB instruction on ARM64.
Constants in this range do not need to be sign extended, so we can
exploit this to avoid materializing the immediate.

This approach saves an instruction if it does not need to be
materialized in a register afterwards. Otherwise, we just materialize
it later and the total number of instructions stays the same.

Before:
0x52800416   mov    w22, #0x20                ; =32
0x93407f78   sxtw   x24, w27
0xcb36c318   sub    x24, x24, w22, sxtw

After:
0x93407f78   sxtw   x24, w27
0xd1008318   sub    x24, x24, #0x20
2025-02-02 12:00:12 +01:00
c9bd6a13a9 VideoBackends: Use DXGI 1.6 and D3D11_4 2025-02-02 09:02:35 +01:00
8291cff46d Merge pull request #13280 from jordan-woyak/input-expressions-highlighting
InputCommon/DolphinQt: Fix sometimes broken syntax highlighting in IOWindow.
2025-02-02 02:01:34 -05:00
698cc7aeb5 Externals: Vulkan 1.4 Support, xxHash 0.8.3 and VMA 3.2.0 2025-02-01 12:11:37 +01:00
6e7e808b66 DolphinQt/Mapping: Add setting to enable waiting for alternate mappings
using the OR-operator.
2025-02-01 01:54:10 -06:00
10e044872d LibusbDevice: Don't detach kernel drivers on macOS 2025-02-01 10:32:20 +13:00
a153c7cb7c DolphinQt: Use global settings object also for debugger settings.
A number of settings in the `debugger` group were wrongly using a newly
constructed `QSettings` object instead of the singleton object that
`GetQSettings()` provides.

This made the application create a spurious, extra configuration file in
the user directory:

```
~/.config/Dolphin Emulator/dolphin-emu.conf
```

Notice that,  by default, the application configuration files are stored
in `~/.config/dolphin-emu`; not in `~/.config/Dolphin Emulator`.
2025-01-30 22:02:03 +00:00
cd3993708f Merge pull request #13316 from hoogmin/minor-first
Refactor: infinite loop based on Dolphin's style guidelines
2025-01-30 16:27:21 -05:00
391dae718d Refactor: infinite loop based on Dolphin's style guidelines 2025-01-30 14:36:22 -05:00
e5e3944d55 Add a SplitPath unit test exercising Windows paths with drive letters 2025-01-29 22:07:19 -08:00
b5a0d293ae Merge pull request #13305 from OatmealDome/vertexloader-config
VertexLoaderBase: Allow the vertex loader type to be set via config
2025-01-29 17:14:05 -05:00
67b8100cd2 InputCommon/ExpressionParser: Make ValidateArguments access existing
members instead of passing arguments.
2025-01-28 20:15:45 -06:00
e4b464e727 InputCommon/ExpressionParser: Make function argument parsing error
message more clear.
2025-01-28 20:13:06 -06:00
897978e955 Merge pull request #13310 from jordan-woyak/small-vec-placement-new
Common: Make SmallVector work with non-standard-layout types.
2025-01-28 20:59:14 -05:00
e16e3f9a61 Merge pull request #13291 from iwubcode/imgui_1_91_7
Externals / VideoCommon: update imgui to 1.91.7 and implot to v0.16
2025-01-28 20:57:28 -05:00
c9ad5430d0 InputCommon: Fix input expression assignment operator behavior. 2025-01-28 14:32:39 -06:00
3f79aa23b4 Merge pull request #13267 from Sintendo/arm64-fix-gt-micro
JitArm64_SystemRegisters: Small FixGTBeforeSettingCRFieldBit optimization
2025-01-28 19:43:53 +01:00
0b7f9541d0 Merge pull request #13304 from JoshuaVandaele/argsegfault
Fix segfault when passing invalid arguments
2025-01-28 19:27:23 +01:00
f92f174450 Merge pull request #13297 from jordan-woyak/config-ext-btn
DolphinQt: Add a "Configure Extension" button under the extension selection combo box.
2025-01-27 21:17:41 -05:00
e18a4d04b4 Merge pull request #13178 from jordan-woyak/input-expressions-conditional-op
InputCommon: Add ternary conditional operator to input expressions.
2025-01-27 21:16:29 -05:00
2b5cd96cb1 Merge pull request #11261 from TryTwo/PR_MemoryView_Auto_Update
MemoryView auto-update while running and color recently changed cells.
2025-01-27 21:15:57 -05:00
08f83bbd6b Added Gecko codes to GOME01.ini
Included multiple netcode related and unrelated Gecko Codes
2025-01-27 15:25:51 -08:00
d117614c00 Merge pull request #13213 from JosJuice/remove-filter-patches-lock
Core: Remove redundant lock for FilterApprovedPatches call
2025-01-27 20:15:00 +01:00
9777e8e76b Common: Make SmallVector work with non-standard-layout types. 2025-01-26 13:03:39 -06:00
e29e0cd150 Merge pull request #13296 from jordan-woyak/sdl-motor-lr
InputCommon: Make SDL Motor L/R Outputs not fight each other and support trigger rumble.
2025-01-26 19:45:44 +01:00
c9e5975545 Merge pull request #13290 from iwubcode/formatter_abstract_texture_type
VideoCommon: add formatter for AbstractTextureType
2025-01-26 19:40:12 +01:00
ca15b4a7d9 Merge pull request #13229 from sanjay900/wii-drum-velocity-fixes
WiimoteEmu: Fix Drum Extension Velocity
2025-01-26 14:15:53 +01:00
01358c79a6 Merge pull request #13298 from jordan-woyak/less-bt-spam
Core/WiimoteReal: Make Wii Remote scan logging less spammy on Linux.
2025-01-26 14:13:44 +01:00
d89e7c84fb CMakeLists: Add flag to disable Cubeb 2025-01-25 14:06:55 -05:00
56b7b0a804 Merge pull request #13303 from JoshuaVandaele/aboutresize
AboutDialog: Disable resizing the About window
2025-01-25 10:37:37 +01:00
911742358c Merge pull request #13307 from OatmealDome/steam-vsprops
VSProps: Remove unused Steam preprocessor definition
2025-01-25 10:23:30 +01:00
be8073593c VSProps: Remove unused Steam preprocessor definition 2025-01-25 02:42:26 -05:00
bffaec9c5e VertexLoaderBase: Allow the vertex loader type to be set via config 2025-01-24 18:31:42 -05:00
799b9d4092 Merge pull request #13192 from jordan-woyak/netplay-win32-interface-list
NetPlay: Implement GetInterfaceListInternal for Windows.
2025-01-24 14:40:25 -06:00
f1f147965b Fix segfault when passing invalid arguments 2025-01-24 20:52:33 +01:00
a76ed94120 AboutDialog: Disable resizing the About window 2025-01-24 10:45:54 +01:00
d0b7c96fdb Merge pull request #13285 from SameUpstreamMultipleForks/fix-waverace-blue-storm
GameSettings: Set CPUThread to False in GWRE01.ini.
2025-01-23 22:47:49 -05:00
ef97185854 WiimoteEmu: Fix Drum Extension Velocity 2025-01-24 10:06:09 +13:00
a34f81ff34 Flatpak: Move wrapper script outside of the manifest 2025-01-23 13:39:45 -05:00
0a3e9f70b9 GameSettings: Set CPUThread to False in GWR.ini.
As mentioned in
https://wiki.dolphin-emu.org/index.php?title=Wave_Race:_Blue_Storm,
the menu may freeze otherwise.

* Data/Sys/GameSettings/GWR.ini: New file.

Co-authored-by: JosJuice <josjuice@gmail.com>
2025-01-23 16:20:36 +09:00
a20f96b78c ArmCPUDetect: Add OpenBSD support for elf_aux_info 2025-01-22 22:58:00 -05:00
01abfafa4e Core/WiimoteReal: Make Wii Remote scan logging less spammy on Linux. 2025-01-22 14:43:20 -06:00
4b4a58623b Merge pull request #13283 from jordan-woyak/button-indicators
DolphinQt: Replace MappingButton bold text with graphical indicators.
2025-01-22 13:22:33 -06:00
76c613c8cd Merge pull request #13294 from JoshuaVandaele/analytics-readme
Readme: Add a link to Analytics
2025-01-22 18:26:44 +01:00
a33368b102 DolphinQt: Add a "Configure Extension" button under the extension
selection combo box.
2025-01-22 02:58:32 -06:00
8354279aae InputCommon: Add support for SDL gamecontroller rumble triggers. 2025-01-21 21:09:39 -06:00
fb512adc5f InputCommon: Make SDL Motor L/R Outputs not fight each other. 2025-01-21 19:19:01 -06:00
2bfeff834c Readme: Add a link to Analytics 2025-01-21 13:05:21 +01:00
ae72a781d4 DolphinQt: Remove MappingButton bold/italic text indication. 2025-01-20 17:55:10 -06:00
d8cf835f07 MappingWidget: Fix shadowed variable warning. 2025-01-20 17:55:10 -06:00
d19304dc15 MappingIndicator: Add graphical indicators on the left of MappingButton
that don't have a large indicator.
2025-01-20 17:55:10 -06:00
510a688a2a Merge pull request #13279 from jordan-woyak/delimited-token
InputCommon/ExpressionParser: Require delimited tokens actually have their terminating delimiter.
2025-01-20 23:14:22 +00:00
761e65ed26 Merge pull request #13275 from Pokechu22/d3d12-custom-root-param-index
D3D12: Fix out of bounds root parameter index when per-pixel lighting is disabled
2025-01-20 14:53:40 -08:00
a9a720faa7 Merge pull request #13204 from LillyJadeKatrin/retroachievements-allow-batch
Gecko/AR Batch Approval
2025-01-20 23:35:17 +01:00
4f912000cd Merge pull request #13289 from iwubcode/small_vector_clear
Common: add 'clear' function to SmallVector
2025-01-20 15:50:16 -06:00
75425ced05 Common: add 'clear' function to SmallVector 2025-01-20 15:13:56 -06:00
25c805be99 Externals / VideoCommon: update imgui to 1.91.7 and implot to v0.16; imgui changed types for ImTextureId, which was addressed by using an implicit cast 2025-01-20 14:47:14 -06:00
ee906ae6e8 VideoCommon: add formatter for AbstractTextureType 2025-01-20 14:24:54 -06:00
7ba56bc738 Merge pull request #13269 from OatmealDome/memarena-darwin
MemArena: Add Darwin implementation
2025-01-20 14:11:37 -05:00
a3b06b0572 Enforce XCB within code 2025-01-20 11:57:21 +01:00
0b8301ff97 MemoryViewWidget: Add auto update toggle. 2025-01-19 23:24:59 -07:00
7b19192134 MemoryViewWidget: Color recently changed memory when auto updating. 2025-01-19 23:24:08 -07:00
6d8f40c245 MemoryViewWidget: Reduce amount of unnecessary update calls. 2025-01-19 23:19:40 -07:00
32e135e6a9 MemoryViewWidget: Add OnFrameEnd callback to auto-update memory while a game is running. 2025-01-19 23:18:38 -07:00
cbe44efe5f Gecko/AR Batch Approval
Adding a community-requested list of Gecko and Action Replay codes to the allowlist. Many of these codes were from the wiki and are being added to Dolphin's repo for the first time.
2025-01-19 22:20:31 -05:00
78bb30d44c InputCommon/ExpressionParser: Require delimited tokens actually have their terminating delimiter. 2025-01-19 17:20:07 -06:00
90eba2b1a0 Merge pull request #13273 from JoshuaVandaele/master
Fix build with minizip-ng>=4.0.8
2025-01-19 23:59:14 +01:00
d87ee2daa5 Merge pull request #13281 from jordan-woyak/iowindow-signal-proper-fix
DolphinQt: Fix QObject::connect: signal not found in IOWindow error.
2025-01-19 23:52:58 +01:00
015c2e7709 Translation resources sync with Transifex 2025-01-19 13:34:44 +01:00
af87d60b6c Merge pull request #13266 from JosJuice/jitarm64-cr-bits-1-to-31
JitArm64: Fix creqv/crorc setting eq bit
2025-01-19 13:00:30 +01:00
dabb4350bd Merge pull request #13282 from jordan-woyak/onion-tweaks
Core/Config: Replace some std::pair with struct to make code more readable.
2025-01-19 12:20:48 +01:00
fa442dc90b Fix build with minizip-ng 4.0.8 2025-01-19 10:30:41 +01:00
8e9596e221 Merge pull request #13259 from TryTwo/PR_Config_signals
Qt: Fix some options not changing enabled status on game start.
2025-01-18 18:11:04 -05:00
fb3a727fcc WiiTASInputWindow: Update controls when attachment changes
Change the displayed controls in the TAS Input window when the
controller's extension (including MotionPlus) is changed.

This previously required restarting Dolphin after the attachment was
changed, as the controls were never updated after the WiiTASInputWindow
was created at Dolphin startup.
2025-01-18 14:15:20 -08:00
28ce81f09b Core/Config: Use structured bindings for cleaner std::map/pair usage. 2025-01-17 22:21:39 -06:00
b44aaf8a86 Core/Config: Replace some std::pair with struct to make code more readable. 2025-01-17 22:06:02 -06:00
ce508ba434 Merge pull request #13248 from Nystrata/metroid-prime-suggestedaspectratio
Force Metroid Prime GCN and Metroid Prime 2 GCN to be 4:3
2025-01-17 22:16:57 -05:00
205a85b991 DolphinQt: Fix QObject::connect: signal not found in IOWindow error. 2025-01-17 20:17:01 -06:00
795e78685f Merge pull request #13187 from OatmealDome/flatpak-appinfo
Flatpak: Use ScmRevGen to generate metainfo XML
2025-01-17 17:47:10 -05:00
f65465b96c Merge pull request #13250 from Charlese2/fix-sound-system-crash
GameINI: fix `Summoner: Goddess Reborn` sound system crash during transitions
2025-01-17 16:42:21 -05:00
e91b83d166 DolphinQt: Make input expression syntax highlighting less hacky. 2025-01-17 02:44:31 -06:00
a618854413 ExpressionParser: Remove RemoveInertTokens. 2025-01-17 02:31:33 -06:00
c94ec85460 InputCommon: Make input expression multiline-comment tokenizing less hacky. 2025-01-17 02:29:23 -06:00
2c83a256ae Merge pull request #13277 from jordan-woyak/iowindow-debug-assert-fix
DolphinQt: Fix ASSERT failure in IOWindow in debug build.
2025-01-16 10:04:55 +01:00
c3f66e83e6 DolphinQt: Fix ASSERT failure in IOWindow in debug build. 2025-01-15 16:39:45 -06:00
85cd0ca51b JitArm64: Optimize creqv setting eq/gt bit
For the eq and gt bits specifically, setting negate_result is one
instruction shorter than not setting it.
2025-01-15 21:22:31 +01:00
c344514ba2 Merge pull request #13270 from OatmealDome/vk-metal-layer
Vulkan: Only attempt to create a CAMetalLayer on macOS
2025-01-15 15:08:03 -05:00
aa9696e1c1 JitArm64: creqv/crorc setting eq bit
When I wrote 71e9766519, there was an interaction I didn't take into
account: When setting eq, SetCRFieldBit assumes that all bits in the
passed-in host register except the least significant bit are 0. But if
we use EON or ORN, all bits except the least significant bit get set to
1. This can cause eq to end up unset when it should be set.

This commit fixes the issue.

crandc is unaffected by the issue because the "1" bits get ANDed with
"0" bits from the first operand.

Note that in practice, we never have both bits_1_to_31_are_set and
negate at once, so while it looks like this commit adds an extra AND
instruction in some cases, those cases don't happen in practice, meaning
this fix shouldn't affect performance.
2025-01-15 18:35:05 +01:00
64514bd8d4 D3D12: Fix out of bounds root parameter index when per-pixel lighting is disabled 2025-01-14 22:30:31 -08:00
3ea870ef8c Merge pull request #13244 from dreamsyntax/bugfix-double-osd-texture-messages
Core/VideoCommon: Fix duplicate OSD Custom Textures messages
2025-01-12 16:16:09 +01:00
ede963d4db Merge pull request #13272 from dreamsyntax/ppc-crlf
PPCSymbolDB: Fix loading maps with CRLF endings
2025-01-12 14:26:27 +01:00
b0e5ebc80d Merge pull request #13247 from sepalani/debug-map-ranges
PPCSymbolDB: Refactor SymbolMap Save/Load
2025-01-12 14:26:04 +01:00
da0a0c87c2 Merge pull request #13274 from dpeukert/master
Clean up CRLF line endings
2025-01-12 14:11:50 +01:00
f28e134c88 Clean up CRLF line endings 2025-01-12 11:06:04 +01:00
b9a2d89035 PPCSymbolDB: Fix loading maps with CRLF endings
Symbol maps ending in CRLF were not properly loading on non-windows
systems.
2025-01-10 14:37:58 -07:00
93fc5c02ac Merge pull request #13179 from TellowKrinkle/ForceSystemLib
CMake: Optional system library fixes
2025-01-10 04:56:08 +01:00
98a80239f1 Merge pull request #13030 from JosJuice/android-wait-for-surface-in-run
Android: Wait for surface in Run
2025-01-10 04:50:34 +01:00
75abda6a3a Merge pull request #12864 from JosJuice/android-window-compat
Android: Replace deprecated setSystemUiVisibility
2025-01-10 04:45:11 +01:00
d10cb9dfc4 Merge pull request #13238 from JosJuice/jitarm64-rlwinmx-imm-mask
JitArm64: Handle rlwinmx with zero mask
2025-01-10 04:44:22 +01:00
e24e107b3c Merge pull request #13265 from Sintendo/warnings
Fix several minor warnings
2025-01-08 21:44:24 +00:00
ffa312f8e8 Merge pull request #13158 from jordan-woyak/wiiu-rename
DolphinQt: Rename "GameCube Adapter for Wii U".
2025-01-08 21:39:08 +00:00
0e5d7d0f2d Merge pull request #13268 from AdmiralCurtiss/ini-delete-case-sensitive
Common/IniFile: Fix case sensitivity mismatch in IniFile::Section::Delete()
2025-01-08 21:42:32 +01:00
3edb5accca MemoryViewWidget: Refactor updates using a dispatch function. Isolate memory reads from table updates.
Preparations for auto update while a game is running.
2025-01-08 13:40:46 -07:00
2633b84b98 Vulkan: Only attempt to create a CAMetalLayer on macOS 2025-01-08 13:51:53 -05:00
d5dbb0b285 MemArena: Add Darwin implementation 2025-01-08 12:46:31 -05:00
8f9e3ffd83 Merge pull request #13228 from OatmealDome/fix-curl-2
curl: Update to 8.11.1 and use CMake to configure
2025-01-08 18:14:10 +01:00
22dc21cca4 Merge pull request #13262 from Ferdi265/feature/fix-fmt11
Fix compiling with libfmt>=11.0
2025-01-08 18:12:19 +01:00
c567248b73 Common/IniFile: Fix case sensitivity mismatch in IniFile::Section::Delete()
values uses a case insensitive comparison, so erasing the equivalent key in keys_order also must do so.
2025-01-08 05:30:39 +01:00
7133bfbb0e Merge pull request #13180 from jordan-woyak/eof-logic
Core/VideoCommon: Fix some weird (!eof) logic.
2025-01-08 05:27:42 +01:00
d525776ae6 GeckoCodeConfig: Remove HTTPS workaround for Android 2025-01-07 23:02:13 -05:00
4dc368d8df WiiUtils: Remove HTTPS workaround for Android 2025-01-07 23:02:13 -05:00
0b7f399436 curl: Set CA path on Android to the system-provided store 2025-01-07 23:02:13 -05:00
b5918effeb curl: Update to 8.11.1 and use CMake to configure 2025-01-07 23:02:10 -05:00
2e006d9787 MemoryViewWidget: Refactor. Remove OnItemChanged signal and QSignalBlocker - replace with a signal that is only sent at the correct time. 2025-01-07 15:57:53 -07:00
696b363f47 Merge pull request #13162 from jordan-woyak/non-blocking-input-detection
DolphinQt/InputCommon: Make input mapping and output testing non-blocking.
2025-01-07 16:55:55 -05:00
5578160880 Flatpak: Include link to the manifest within the metainfo for Flathub 2025-01-07 15:35:21 -05:00
5395f21ae5 Qt, Config controls system: Remove signal block so signals can refresh the enabled status of certain options when a new config is loaded (such as on starting a game). Blocks previously unwanted behavior with a new safety check.
QCheckBox::toggled and other similar signals are used to save changes and to update widget status (such as enabled).. OnConfigChanged needs to load new values and trigger widget updates, but the new value shouldn't trigger a save. A save is unnecessary (the config has the correct values and the UI is being updated to those values) and it'd trigger another ConfigChanged signal.   This commit blocks the save without blocking the signal entirely.
2025-01-07 03:02:39 -07:00
4fc259710f Flatpak: Use ScmRevGen to generate metainfo XML 2025-01-07 02:35:14 -05:00
89016834cf Flatpak: Don't do an in-tree build 2025-01-07 02:34:45 -05:00
24f2981e54 JitArm64_SystemRegisters: Small FixGTBeforeSettingCRFieldBit optimization
The computed value is only used when the register is equal to zero, so
we can fully precompute it and materialize the constant instead. In
other words, we change from

```
return reg == 0 ? (reg | 1ULL << 63) : reg;
```

to

```
return reg == 0 ? 1ULL << 63 : reg;
```

The number of instructions remains the same, but we eliminate an
unnecessary dependency on the register value.

Before:
0xb241037a   orr    x26, x27, #0x8000000000000000
0xeb1f037f   cmp    x27, xzr
0x9a9a137b   csel   x27, x27, x26, ne

After:
0xd2f0001a   mov    x26, #-0x8000000000000000 ; =-9223372036854775808
0xeb1f037f   cmp    x27, xzr
0x9a9a137b   csel   x27, x27, x26, ne
2025-01-06 12:09:12 +01:00
532e25be12 Fix several minor warnings 2025-01-06 11:31:39 +01:00
b35f7af355 Merge pull request #13257 from CasualPokePlayer/dtm_country_code
Add SYSCONF country code to DTM
2025-01-06 10:39:53 +01:00
eec2e2f07a Merge pull request #13251 from Sintendo/carry-opts
JitArm64_Integer: Carry flag optimizations
2025-01-06 10:39:43 +01:00
43d5f61a60 Merge pull request #13149 from Sintendo/dcbx-msub
JitArm64_LoadStore: Small dcbx optimization
2025-01-06 09:29:08 +01:00
8d9ec2fde9 Merge pull request #13210 from OatmealDome/fix-scmrevgen
ScmRevGen: Don't generate Info.plist files directly
2025-01-06 01:18:20 -05:00
6b686be5f1 Merge pull request #13233 from TryTwo/PR_Codec
AdvancedWidget: Replace FFV1 codec with Ut Video
2025-01-04 22:26:36 -05:00
b79bdb13c0 Common: Fix compile failure with fmt>=11 2025-01-04 19:13:05 +01:00
825092ad33 BBA/HLE: Fix incorrect fmt format string 2025-01-04 18:45:32 +01:00
bbf835b30b PPCSymbolDB: Check SplitString result 2025-01-04 17:02:13 +04:00
77e77863dc PPCSymbolDB: Add alignment detection heuristic
Update parse_entry_of in accordance to the sscanf change
2025-01-04 15:32:52 +04:00
5778cb42db PPCSymbolDB: Deduplicate parsing of the 'entry of' string 2025-01-04 15:32:52 +04:00
5c151c11ac PPCSymbolDB: Use ranges in SaveSymbolMap 2025-01-04 15:32:52 +04:00
3b85653003 NetPlay: Implement GetInterfaceListInternal for Windows. 2025-01-04 00:29:34 -06:00
9b3b6bea9d Merge pull request #12801 from JosJuice/jitarm64-crxxx-opt
JitArm64: Optimize crXXX
2025-01-03 16:32:49 -05:00
f12846a0e9 DolphinQt: Make input mapping and output testing non-blocking. 2025-01-01 16:48:32 -06:00
bc95c001c8 InputCommon: Move input mapping function into a class for non-blocking usage. 2025-01-01 16:48:32 -06:00
f15a78ed38 Merge pull request #13094 from mitaclaw/ranges-modernization-5-contains
Ranges Algorithms Modernization - Contains
2025-01-01 14:42:44 -05:00
527841f1df Simplify std::search with Common::ContainsSubrange 2025-01-01 09:52:03 -08:00
d92c68e1de Simplify std::find_if with Common::Contains 2025-01-01 09:52:03 -08:00
110d32729e Simplify std::find with Common::Contains
In NandPaths.cpp, the `std::initializer_list<char>` of illegal characters has been turned into a `char[]` (similar to the one in GameList.cpp).

The reverse iteration in ResourcePack.cpp seemed to provide no benefits, and doing without it it seemed to have no ill effects.
2025-01-01 09:52:03 -08:00
6f10acea3f Common: Create "Contains.h" Algorithm Header
The new `Common::Contains` and `Common::ContainsSubrange` function objects mirror C++23's `std::ranges::contains` and `std::ranges::contains_subrange`, respectively.
2025-01-01 09:52:01 -08:00
b8921b1338 Merge pull request #13237 from AdmiralCurtiss/slider-mappings
DolphinQt/HacksWidget: Convert accuracy slider to ConfigSlider
2024-12-31 15:22:04 +01:00
c1c80adf1a Merge pull request #13235 from Gamer64ytb/vsync-fix
Android: Fix VSync option not working
2024-12-31 15:20:49 +01:00
0938fca6e3 Core/VideoCommon: Fix some weird (!eof) logic. 2024-12-30 20:13:59 -06:00
3d248d000f Frame Dumping: Change lossless codec from FFV1 to Ut Video.
Ut Video is faster and more compatible with editing programs, but produces larger files.
2024-12-30 14:07:43 -07:00
c1698c93e2 Add SYSCONF country code to DTM
Recently there was some issues in TASVideos trying to sync a Donkey Kong Country Returns TAS. It eventually was synced by directly using the config from the TAS author. The exact setting which caused the desync was narrowed down to being in SYSCONF, with the country code. The TAS author lives in the US, so the country code matched the US country code, while the person attempting to sync the TAS did not live in the US.

Adding SYSCONF country code to the DTM should avoid this being an issue for future Dolphin versions.
2024-12-30 07:50:22 -08:00
d81bfe94eb JitArm64_Integer: addzex - Optimize InHostCarry case for 0
Before:
0x5280000d   mov    w13, #0x0                 ; =0
0x1a1f01ae   adc    w14, w13, wzr

After:
0x1a9f37ee   cset   w14, hs
2024-12-29 12:21:34 +01:00
c817b4779d JitArm64_Integer: addzex - Optimize InPPCState case for 0
Before:
0x52800019   mov    w25, #0x0                 ; =0
0x394bd3b8   ldrb   w24, [x29, #0x2f4]
0x2b180339   adds   w25, w25, w24

After:
0x394bd3b9   ldrb   w25, [x29, #0x2f4]
2024-12-28 23:20:22 +01:00
14641b06fc JitArm64_Integer: addzex - Optimize ConstantFalse and ConstantTrue
When the input register and carry flags are known, we can always
precompute the result.

We still materialize the immediate when the condition register
needs to be updated, but this seems to be a general problem. I might
look into that one day, but for now this'll do.

- ConstantFalse
Before:
0x52800119   mov    w25, #0x8                 ; =8
0x2a1903fa   mov    w26, w25

After:
N/A

- ConstantTrue
Before:
0x52800119   mov    w25, #0x8                 ; =8
0x1100073a   add    w26, w25, #0x1

After:
N/A
2024-12-28 23:07:38 +01:00
a4ba13b4c9 JitArm64_Integer: addex - Optimize InHostCarry for -1
Same thing we did for subfex.

Before:
0x1280001a   mov    w26, #-0x1                ; =-1
0x1a1f035a   adc    w26, w26, wzr

After:
0x5a9f23fa   csetm  w26, lo
2024-12-28 22:12:50 +01:00
d2bfa157dc JitArm64_Integer: addex - Optimize InHostCarry for 0
Similar to what we did for subfex, but for 0.

Before:
0x5280001b   mov    w27, #0x0                 ; =0
0x1a1f037b   adc    w27, w27, wzr

After:
0x1a9f37fb   cset   w27, hs
2024-12-28 21:55:57 +01:00
ad7dba5413 JitArm64_Integer: addex - Optimize InPPCState case for 0
Same optimization we did for subfex. Skip loading the carry flag into a
temporary register first when we're dealing with zero.

Before:
0x394bd3b8   ldrb   w24, [x29, #0x2f4]
0x2a1803f9   mov    w25, w24

After:
0x394bd3b9   ldrb   w25, [x29, #0x2f4]
2024-12-28 21:41:51 +01:00
7410bc2025 JitArm64_Integer: subfzex - Constant folding
When both the input register and the carry flag are constants, the
result can be precomputed.

Before:
0x52800016   mov    w22, #0x0                 ; =0
0x2a3603f6   mvn    w22, w22

After:
2024-12-28 20:58:24 +01:00
fa13457abb JitArm64_Integer: subfex - Optimize InHostCarry case for -1
The result is either -1 or 0 depending on the state of the carry flag.
This can be done with a csetm instruction.

Before:
0x1280001a   mov    w26, #-0x1                ; =-1
0x1a1f035a   adc    w26, w26, wzr

After:
0x5a9f23fa   csetm  w26, lo
2024-12-28 20:18:14 +01:00
18dd3f69f1 JitArm64_Integer: subfex - Optimize InPPCState case for 0
When the immediate is zero, we can load the carry flag from memory
directly to the destination register.

Before:
0x394bd3b8   ldrb   w24, [x29, #0x2f4]
0x2a1803f9   mov    w25, w24

After:
0x394bd3b9   ldrb   w25, [x29, #0x2f4]
2024-12-28 18:15:48 +01:00
e54bfd6605 JitArm64_Integer: Refactor subfex 2024-12-28 18:12:13 +01:00
5cc9bde1c1 JitBase: Improve const-correctness 2024-12-28 16:44:58 +01:00
50d991780f JitBase: Add HasConstantCarry helper 2024-12-28 16:44:52 +01:00
f6f01f2002 Force Metroid Prime GCN and Metroid Prime 2 GCN to be 4:3
To my knowledge, all of the GameCube versions of *Metroid Prime* and *Metroid Prime 2: [Dark] Echoes* only support 4:3, not 16:9 .
Currently, Dolphin's widescreen heuristic will fail to detect this and will erratically switch between 4:3 and 16:9 when Aspect Ratio is set to Auto.
These changes prevent the erratic aspect ratio switching by manually declaring that the game is solely 4:3.
2024-12-28 05:46:38 -08:00
07f712f8a0 Core/VideoCommon: Fix duplicate OSD Custom Textures messages
Resolves duplicate OSD messages for Loading and Found custom textures.
VideoBackend initialization results in HiresTexture::Init being called.
We already call HiresTexture::Update when OnNewTitleLoad is called.
Thus we can remove HiresTextures::Init completely as it is redundant.
2024-12-28 01:09:50 -07:00
635f588690 fix Summoner: Goddess Reborn sound system crash during transitions 2024-12-27 18:33:54 -07:00
05cad38abc Merge pull request #13243 from nlebeck/stringutil-tests
Add some unit test coverage of the `SplitPath` function
2024-12-27 18:10:47 +01:00
4fc50226c6 DolphinQt/HacksWidget: Convert accuracy slider to ConfigSlider 2024-12-27 05:40:24 +01:00
98ee3836e5 DolphinQt: Add option for value mappings to ConfigSlider 2024-12-27 05:40:13 +01:00
532a8621da Merge pull request #13116 from mitaclaw/ranges-modernization-8-trivial-of
Ranges Algorithms Modernization - Of
2024-12-26 16:51:53 -05:00
bae4616dd1 Add some unit test coverage of the SplitPath function 2024-12-26 11:42:01 -08:00
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
6384ea97f1 JitArm64: Handle rlwinmx with zero mask
No games seem to use this, so this isn't useful as a performance
optimization, but it's required for correctness because the (sh == 0)
case of our implementation doesn't handle zero masks.
2024-12-25 15:15:24 +01:00
764bf314e1 Android: Fix VSync option not working
It happened due to a typo from SECTION_GFX_HARDWARE
2024-12-24 10:41:45 +01:00
f9ce2b9d76 Merge pull request #13232 from TryTwo/PR_hotfix
Qt crash hotfix
2024-12-23 18:04:51 -05:00
27ac5fa777 Qt crash fix. Don't store Config::Info variable as a reference. 2024-12-23 15:40:07 -07:00
c528a70e64 Merge pull request #13211 from Sintendo/blendvpd
Jit_FloatingPoint: fselx - Prefer BLENDVPD over VBLENDVPD
2024-12-22 18:35:11 -05:00
a1d6aa7d3e Merge pull request #13212 from JosJuice/jitarm64-ps-sel-same-reg
JitArm64: Optimize ps_sel with d == b || d == c
2024-12-22 18:34:32 -05:00
5641b83d4e Merge pull request #13063 from TryTwo/PR_GameSettings
Add ability to edit game-specific GFX settings from game properties tab.
2024-12-22 20:42:28 +01:00
bb8c0a795f Merge pull request #13214 from JosJuice/sethardcoremode-private
AchievementManager: Make SetHardcoreMode private
2024-12-22 20:09:29 +01:00
1ba8541da9 Merge pull request #13091 from mitaclaw/ranges-modernization-2-returns
Ranges Algorithms Modernization - Return
2024-12-20 12:50:19 -05:00
ac0d6cbaaa Merge pull request #13224 from Sintendo/jitarm64-subfic2
JitArm64_Integer: Optimize subfic for -1
2024-12-18 12:07:23 -05:00
01f6810a9d Merge pull request #13207 from OatmealDome/vulkan-hdr-color-space
VKSwapChain: Always use surface formats with a normal sRGB color space if not RGBA16F
2024-12-16 17:29:19 -05:00
2b0cd16c8c Modernize std::none_of with ranges
In JitRegCache.cpp, the lambda predicate were replaced by a pointer to member function because ranges algorithms are able to invoke those.

In ConvertDialog.cpp, the `std::mem_fn` helper was removed because ranges algorithms are able to handle pointers to member functions as predicates.

In BoundingBox.cpp, the lambda predicate was returning the bool element unchanged, so `std::identity` was a better fit.
2024-12-15 19:54:17 -08:00
140252ffc0 Modernize std::any_of with ranges
In WiimoteReal.cpp, JitRegCache.cpp, lambda predicates were replaced by pointers to member functions because ranges algorithms are able invoke those.

In ConvertDialog.cpp, the `std::mem_fn` helper was removed because ranges algorithms are able to handle pointers to member functions as predicates.
2024-12-15 19:54:16 -08:00
860e6cf5cb Modernize std::all_of with ranges
In DITSpecification.cpp, MaterialAsset.cpp, and ShaderAsset.cpp, lambda predicates were replaced by pointers to member functions because ranges algorithms are able invoke those.

In NetPlayClient.cpp, the non-trivial `NetPlay::Player` elements were being passed by value in `NetPlayClient::DoAllPlayersHaveGame()`. This has been fixed.

In WIABlob.cpp, the second example's predicate was returning the `std::optional` by value instead of implicitly converting it to a bool. This has been fixed.
2024-12-15 19:50:34 -08:00
826e2bbf98 StringUtil: More Wrappers For <cctype>
`Common::IsLower(char)` was omitted as nothing needed it.
2024-12-15 19:50:34 -08:00
b4a1967310 Merge pull request #13226 from JosJuice/achievementmanager-forward-declarations
AchievementManager: Add required forward declarations
2024-12-15 14:02:56 -06:00
ad24ddb6bb VerifyTool: Add missing USE_RETRO_ACHIEVEMENTS ifdefs 2024-12-15 18:15:57 +01:00
84ab15e020 AchievementManager: Add required forward declarations
This was causing compilation errors when building without
USE_RETRO_ACHIEVEMENTS.
2024-12-15 18:00:14 +01:00
d81213c4a5 JitArm64_Integer: Optimize subfic for -1
Another one backported from x86. Not sure why I didn't do this in #12891
already.

- Without carry
Before:
0x2a3a03fb   mvn    w27, w26
0x6b1a037b   subs   w27, w27, w26

After:
0x1280001b   mov    w27, #-0x1                ; =-1

- With carry
Before:
0x2a3b03f7   mvn    w23, w27
0x6b1b02f7   subs   w23, w23, w27
0x1a9f37f6   cset   w22, hs
0x390bd3b6   strb   w22, [x29, #0x2f4]

After:
0x12800017   mov    w23, #-0x1                ; =-1
2024-12-15 02:24:30 +01:00
97e2a43eac Branch Watch Tool: Refresh Context Menus OnEmulationStateChanged 2024-12-14 14:47:47 -08:00
ada646a795 Merge pull request #12682 from JosJuice/jit-fallback-discard-assert
Jit: Skip discarded registers when flushing for interpreter fallback
2024-12-12 23:48:37 +01:00
9541bb6cf7 Add method to bold slider/spin labels when a user game ini setting is being used 2024-12-10 13:42:30 -07:00
ac129d318b EnhancementsWidget:: Move to using ConfigControls and add new control for ComboBoxes that set two settings at once. 2024-12-10 13:42:17 -07:00
84a937ae65 Add GFX property tabs to game properties window, allowing them to be set to the user game ini. Additionally, refactor ConfigWidgets to reduce duplication. Refactor GameConfigWidget to use config system.
Creates a layer outside the game config layer system and passes it to the created gfx widows, so as to not interfere with the global config system.

Supports multiple game properties being open at once.
Supports editing while a game is playing, but the options only save and update the active game when the window is closed.
Right-clicking will remove a property from the game ini.
2024-12-10 13:40:30 -07:00
6ea8edd531 Merge pull request #13209 from jordan-woyak/sdl-touchpad
InputCommon/SDL: Add touchpad inputs.
2024-12-10 12:52:43 -05:00
81fd763601 Add ReadVerified testing to PatchAllowlistTest
New code adds a test failure if there's a Patches/Gecko/AR_Retroachievements_Verified code that doesn't appear to actually exist in the file. This will catch if the allowed patch is formatted wrong, which I found happening several times already due to not realizing that the patch author's name would need to be omitted.
2024-12-10 00:15:13 -05:00
394db8b798 Merge pull request #13215 from Tilka/efb_access
GameSettings: set EFBAccessEnable=True for Neighbours from Hell
2024-12-09 14:23:45 -05:00
445fe2248c GameSettings: set EFBAccessEnable=True for Neighbours from Hell
This fixes the loading screens that show a walking animation.
2024-12-08 11:29:15 +00:00
687fe65709 Merge pull request #13166 from Sintendo/stX-opt
JitArm64_LoadStore: Optimize zero stores in stX
2024-12-08 11:06:33 +01:00
57b1234feb Merge pull request #13113 from CelestialAmber/mwld-map
Core: Store object name separately for symbols
2024-12-07 17:13:13 -05:00
7a31c8f10b AchievementManager: Make SetHardcoreMode private
This is an implementation detail that doesn't need to be exposed.
2024-12-07 19:29:53 +01:00
0c46205ba7 Core: Remove redundant lock for FilterApprovedPatches call
This was necessary before we added locking inside FilterApprovedPatches,
but not anymore.
2024-12-07 19:06:23 +01:00
08df9a66e0 DolphinQt: Refactor, add ConfigControl class
This reduces code duplication in the different ConfigControls. This is
helpful for the next commit, which will modify the now deduplicated
code.
2024-12-07 16:31:34 +01:00
e3bfff5cb6 JitArm64: Optimize ps_sel with d == b || d == c 2024-12-07 12:20:24 +01:00
065165f749 Jit_FloatingPoint: Prefer BLENDVPD over VBLENDVPD
Prefer BLENDVPD over VBLENDVPD if the latter doesn't save any
instructions.

VBLENDVPD allows separate source and destination registers, which can
eliminate a MOVAPD/MOVSD. However, on Intel since Skylake, VBLENDVPD
takes additional uops to execute compared to BLENDVPD (according to
https://uops.info). On AMD and older Intel microarchitectures there is no
difference.
2024-12-07 11:22:28 +01:00
0a84d93a8e Merge pull request #13196 from jordan-woyak/expanding-numeric-settings
DolphinQt: Make mapping window spinboxes horizontally expanding.
2024-12-07 11:14:55 +01:00
a5d1172d97 Merge pull request #13186 from OatmealDome/flatpak-gitignore
gitignore: Ignore flatpak-builder's cache directory
2024-12-05 15:10:18 -05:00
e05b033dd2 ScmRevGen: Don't generate Info.plist files directly
Some generators (like Unix Makefiles and Xcode) copy an app's Info.plist at configure time.
This causes a problem when we need to generate the Info.plist at build time, like how we
currently do it with ScmRevGen. Instead of generating the Info.plist directly in ScmRevGen,
provide an Info.plist without any version information to CMake at configure time, have
ScmRevGen generate a separate plist file with the version information at build time, and
then merge the two together to create the final Info.plist.
2024-12-05 14:56:08 -05:00
c6b0629275 Merge pull request #13200 from Dentomologist/irwidget_move_header_constants_into_class
IRWidget: Move header constants into class
2024-12-05 18:53:17 +01:00
3c27c38e71 DolphinQt: Use TARGET_BUNDLE_DIR generator expression instead of specifying the bundle path ourselves 2024-12-04 22:53:39 -05:00
ad1511982a InputCommon/SDL: Add touchpad inputs. 2024-12-04 21:08:18 -06:00
8c3b9c9cf6 Merge pull request #13174 from jordan-woyak/sdl-battery
ControllerInterface/SDL: Add Battery Input.
2024-12-04 21:46:07 -05:00
38675eab9b Merge pull request #13206 from mbc07/gameini/eternal-darkness-dualcore
GameINI: drop Single Core override from Eternal Darkness
2024-12-04 21:45:41 -05:00
e6f335bfcf VKSwapChain: Always use surface formats with a normal sRGB color space if not RGBA16F
Co-authored-by: TellowKrinkle <tellowkrinkle@gmail.com>
2024-12-03 20:49:50 -05:00
7e4b1780e1 GameINI: drop Single Core override from Eternal Darkness 2024-12-03 16:48:54 -04:00
26ba8f5481 Merge pull request #13197 from jordan-woyak/vrr-mapping-indicators
DolphinQt: Update mapping indicators at screen refresh rate.
2024-12-03 12:51:18 -05:00
cf29214c03 Merge pull request #12955 from LillyJadeKatrin/retroachievements-gecko
Add Support for Gecko Codes to Achievements Whitelist
2024-12-02 14:18:53 -05:00
c10809a7ff Merge branch 'release-prep-2412' 2024-12-01 20:50:13 -05:00
51435b6ef8 Approve Super Mario Sunshine Widescreen Gecko Code 2024-11-29 21:56:45 -05:00
81098433c8 Add Gecko and AR codes to the Patch Allowlist Test 2024-11-29 21:56:44 -05:00
8447ce99f4 Scale back hardcore code block
Now that patches and codes are enabled on a case by case basis, remove patcher code blocking codes entirely in hardcore mode, and reword the warning to be more accurate.
2024-11-27 21:21:26 -05:00
3c255b55e8 Add AR Code Whitelist Approval 2024-11-27 21:21:26 -05:00
13a1956cfa Add Gecko Code Whitelist Approval 2024-11-27 21:21:25 -05:00
78f3448e27 Convert FilterApprovedPatches to Template 2024-11-27 21:21:25 -05:00
a9b1c1f5f8 IRWidget: Move header constants into class
This apparently didn't compile on macOS six years ago before c++20, but
it should be fine by now.

While I'm at it, make the constants upper case per convention.
2024-11-26 13:50:13 -08:00
e7a8e2fca1 DolphinQt: Update mapping indicators at screen refresh rate. 2024-11-25 14:58:48 -06:00
26f2e5f022 DolphinQt: Make mapping indicators compatible with a variable update frequency. 2024-11-25 14:43:03 -06:00
ea93b65d21 DolphinQt: Make mapping window spinboxes horizontally expanding. 2024-11-24 18:59:18 -06:00
1c4bfc35d9 Core: Store object name separately for symbols 2024-11-11 12:36:53 -05:00
704c75a2f5 gitignore: Ignore flatpak-builder's cache directory 2024-11-11 12:17:53 -05:00
6d44afc7dd Replace 'reinterpret_cast' with 'static_cast' 2024-11-08 07:26:47 +01:00
5078a63084 InputCommon: Add ternary conditional operator to input expressions. 2024-11-07 08:31:25 -06:00
613c959bda CMake: Pass RESOLVED_USE_SYSTEM_<lib> as a parameter
Because we were setting it with a scope, it wasn't making its way into called functions that would try to inspect it.  Now it does.
2024-11-06 21:47:10 -06:00
432d4a2a06 CMake: Properly abort when requested system lib is missing 2024-11-06 21:30:29 -06:00
83ed817ad2 ControllerInterface/SDL: Add Battery Input. 2024-11-04 22:24:42 -06:00
a307d9d9b8 JitArm64_LoadStore: Optimize zero stores in stX
The value being stored must be loaded into a register. In the case of an
immediate value, this means it must be materialized. The value is
eventually byteswapped before performing the store.

This can be simplified for the value 0 for two reasons:
- ARM64 has a dedicated zero register, so does not need to be
  materialized.
- Byteswapping zero is still zero, so we can skip this step.

We could skip byteswapping for other values by immediately materializing
the byteswapped value in a register, but the benefits are not so clear
there (if the value needs to be materialized anyway, it is better to do
it up front).

Before:
0x5280001b   mov    w27, #0x0                 ; =0
0xb9404fba   ldr    w26, [x29, #0x4c]
0x12881862   mov    w2, #-0x40c4              ; =-16580
0x0b020342   add    w2, w26, w2
0x5ac00b61   rev    w1, w27
0xb8226b81   str    w1, [x28, x2]

After:
0xb9404fbb   ldr    w27, [x29, #0x4c]
0x12881862   mov    w2, #-0x40c4              ; =-16580
0x0b020362   add    w2, w27, w2
0xb8226b9f   str    wzr, [x28, x2]
2024-11-02 23:15:22 +01:00
980a726313 JitArm64: Drop GetCRFieldBit's negate parameter
No caller is using it anymore.
2024-11-02 10:51:48 +01:00
71e9766519 JitArm64: Use BIC/EON/ORN in crXXX
This lets us save an instruction in certain scenarios.
2024-11-02 10:51:38 +01:00
9246bcad55 JitArm64: Add negate parameter to SetCRFieldBit
Unlike on x64, inverting EQ or GT in SetCRFieldBit saves us one
instruction. Also unlike on x64, inverting SO or LT in GetCRFieldBit
requires an extra instruction (just like in SetCRFieldBit). Due to this,
replacing an invert in GetCRFieldBit with an invert in SetCRFieldBit
when possible is either equally good or better - never worse.
2024-11-02 10:48:27 +01:00
7fddd39d97 JitArm64: Port some crXXX optimizations from Jit64 2024-11-02 10:24:02 +01:00
bbe271eec6 JitArm64: Refactor CR bit manipulation code
This brings JitArm64 more in line with Jit64, and makes the next commit
easier to implement. No functional change.
2024-11-02 10:19:31 +01:00
bffc26da27 DolphinQt: Rename "GameCube Adapter for Wii U" to "GameCube Controller Adapter". 2024-10-31 01:25:36 -05:00
e6fd843c0b JitArm64_LoadStore: Small dcbx optimization
MUL and SUB can be combined in one instruction.

Before:
0x1b1a7c01   mul    w1, w0, w26
0x4b010318   sub    w24, w24, w1

After:
0x1b1ae018   msub   w24, w0, w26, w24
2024-10-24 23:05:42 +02:00
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
3d0d03b871 Modernize std::partition with ranges
The new return value is `std::ranges::subrange`.
2024-10-17 18:39:13 -07:00
5f3a8ff0de Modernize std::unique with ranges
The new return value is `std::ranges::subrange`.
2024-10-17 18:39:12 -07:00
be0b13da97 Simplify std::remove with std::erase
`std::erase` is a replacement for the remove-erase idiom.

Changes to `OpenModeToAndroid` inadvertently revealed that the prior implementation had UB (potentially deleting the end iterator). This is now fixed.
2024-10-17 18:38:34 -07:00
4fde0f2868 Modernize std::search with ranges
The new return value is `std::ranges::subrange`.
2024-10-17 18:38:34 -07:00
0352f24a8e Modernize std::mismatch with ranges
The new return value is `std::ranges::mismatch_result`, an alias for the pair-like type `std::ranges::in_in_result`.
2024-10-17 18:38:34 -07:00
dcf8ab0189 Android: Wait for surface in Run
When we boot the core, it needs to have a valid surface to draw graphics
to. Our Kotlin code does wait for a valid surface to exist before it
calls NativeLibrary.Run, but there's a chance for the surface to be
deleted before Run locks s_surface_lock. If that happens, the core boots
without a valid surface, which presumably would cause a crash. (I
haven't been able to reproduce the problem myself.)
2024-08-21 20:36:46 +02:00
096ab8c026 Replace ties with structured bindings - UnitTests 2024-08-20 15:09:44 +02:00
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
2fdeb85f0e Android: Replace deprecated setSystemUiVisibility
No functional change.
2024-06-15 15:02:50 +02:00
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
f58abf59c0 Jit: Skip discarded registers when flushing for interpreter fallback
Normally, the asserts added in 34b0a6ea90 are only triggered when
something actually went wrong in Dolphin. But there is one exception:
In FallBackToInterpreter, we flush all registers regardless of whether
they're discarded. This is fine as long as none of the discarded
registers are inputs to the instruction that the interpreter will run.

To avoid false positive asserts, this change adds a parameter to Flush
that controls whether to skip the asserts for discarded registers.

Additionally, an assert for discarded registers is added to
Arm64FPRCache::Flush. (Previously JitArm64 asserted for GPRs (and CRs)
only, whereas Jit64 asserted both for GPRs and FPRs. I most likely
didn't think of FPRs when writing 34b0a6ea90.)
2024-04-01 16:24:26 +02:00
1626 changed files with 475211 additions and 483369 deletions

2
.gitignore vendored
View File

@ -41,3 +41,5 @@ CMakeLists.txt.user
.idea/
# Ignore Visual Studio Code's working dir
/.vscode/
# Ignore flatpak-builder's cache dir
.flatpak-builder

44
.gitmodules vendored
View File

@ -1,32 +1,26 @@
[submodule "Externals/Qt"]
path = Externals/Qt
url = https://github.com/dolphin-emu/ext-win-qt.git
branch = master
shallow = true
[submodule "Externals/mGBA/mgba"]
path = Externals/mGBA/mgba
url = https://github.com/mgba-emu/mgba.git
branch = master
shallow = true
[submodule "Externals/FFmpeg-bin"]
path = Externals/FFmpeg-bin
url = https://github.com/dolphin-emu/ext-win-ffmpeg.git
branch = master
shallow = true
[submodule "libusb"]
path = Externals/libusb/libusb
url = https://github.com/libusb/libusb.git
branch = master
shallow = true
[submodule "Externals/spirv_cross/SPIRV-Cross"]
path = Externals/spirv_cross/SPIRV-Cross
url = https://github.com/KhronosGroup/SPIRV-Cross.git
branch = main
shallow = true
[submodule "SDL"]
path = Externals/SDL/SDL
url = https://github.com/libsdl-org/SDL.git
branch = SDL2
shallow = true
[submodule "Externals/zlib-ng/zlib-ng"]
path = Externals/zlib-ng/zlib-ng
@ -35,52 +29,80 @@
[submodule "Externals/libspng/libspng"]
path = Externals/libspng/libspng
url = https://github.com/randy408/libspng.git
branch = v0.7.2
shallow = true
[submodule "Externals/VulkanMemoryAllocator"]
path = Externals/VulkanMemoryAllocator
url = https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git
shallow = true
[submodule "Externals/cubeb/cubeb"]
path = Externals/cubeb/cubeb
url = https://github.com/mozilla/cubeb.git
branch = master
shallow = true
[submodule "Externals/implot/implot"]
path = Externals/implot/implot
url = https://github.com/epezent/implot.git
shallow = true
[submodule "Externals/gtest"]
path = Externals/gtest
url = https://github.com/google/googletest.git
shallow = true
[submodule "Externals/rcheevos/rcheevos"]
path = Externals/rcheevos/rcheevos
url = https://github.com/RetroAchievements/rcheevos.git
shallow = true
[submodule "Externals/libadrenotools"]
path = Externals/libadrenotools
url = https://github.com/bylaws/libadrenotools.git
shallow = true
[submodule "Externals/curl/curl"]
path = Externals/curl/curl
url = https://github.com/curl/curl.git
shallow = true
[submodule "Externals/fmt/fmt"]
path = Externals/fmt/fmt
url = https://github.com/fmtlib/fmt.git
shallow = true
[submodule "Externals/lz4/lz4"]
path = Externals/lz4/lz4
url = https://github.com/lz4/lz4
url = https://github.com/lz4/lz4.git
shallow = true
[submodule "Externals/xxhash/xxHash"]
path = Externals/xxhash/xxHash
url = https://github.com/Cyan4973/xxHash.git
shallow = true
[submodule "Externals/enet/enet"]
path = Externals/enet/enet
url = https://github.com/lsalzman/enet.git
shallow = true
[submodule "hidapi-src"]
path = Externals/hidapi/hidapi-src
url = https://github.com/libusb/hidapi
url = https://github.com/libusb/hidapi.git
shallow = true
[submodule "Externals/tinygltf/tinygltf"]
path = Externals/tinygltf/tinygltf
url = https://github.com/syoyo/tinygltf.git
shallow = true
[submodule "Externals/minizip-ng/minizip-ng"]
path = Externals/minizip-ng/minizip-ng
url = https://github.com/zlib-ng/minizip-ng
url = https://github.com/zlib-ng/minizip-ng.git
shallow = true
[submodule "Externals/Vulkan-Headers"]
path = Externals/Vulkan-Headers
url = https://github.com/KhronosGroup/Vulkan-Headers.git
shallow = true
[submodule "Externals/watcher/watcher"]
path = Externals/watcher/watcher
url = https://github.com/e-dant/watcher.git
shallow = true
[submodule "Externals/SFML/SFML"]
path = Externals/SFML/SFML
url = https://github.com/SFML/SFML.git
shallow = true
[submodule "Externals/zstd/zstd"]
path = Externals/zstd/zstd
url = https://github.com/facebook/zstd.git
shallow = true
[submodule "Externals/miniupnpc/miniupnp"]
path = Externals/miniupnpc/miniupnp
url = https://github.com/miniupnp/miniupnp.git
shallow = true

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

@ -0,0 +1,24 @@
function(dolphin_inject_version_info target)
set(INFO_PLIST_PATH "$<TARGET_BUNDLE_DIR:${target}>/Contents/Info.plist")
add_custom_command(TARGET ${target}
POST_BUILD
COMMAND /usr/libexec/PlistBuddy -c
"Delete :CFBundleShortVersionString"
"${INFO_PLIST_PATH}"
|| true
COMMAND /usr/libexec/PlistBuddy -c
"Delete :CFBundleLongVersionString"
"${INFO_PLIST_PATH}"
|| true
COMMAND /usr/libexec/PlistBuddy -c
"Delete :CFBundleVersion"
"${INFO_PLIST_PATH}"
|| true
COMMAND /usr/libexec/PlistBuddy -c
"Merge '${CMAKE_BINARY_DIR}/Source/Core/VersionInfo.plist'"
"${INFO_PLIST_PATH}")
endfunction()

View File

@ -19,28 +19,27 @@ function(dolphin_make_imported_target_if_missing target lib)
endif()
endfunction()
function(dolphin_optional_system_library library)
function(dolphin_optional_system_library out_use_system library)
string(TOUPPER ${library} upperlib)
set(USE_SYSTEM_${upperlib} "" CACHE STRING "Use system ${library} instead of bundled. ON - Always use system and fail if unavailable, OFF - Always use bundled, AUTO - Use system if available, otherwise use bundled, blank - Delegate to USE_SYSTEM_LIBS. Default is blank.")
if("${USE_SYSTEM_${upperlib}}" STREQUAL "")
if(APPROVED_VENDORED_DEPENDENCIES)
string(TOLOWER ${library} lowerlib)
if(lowerlib IN_LIST APPROVED_VENDORED_DEPENDENCIES)
set(RESOLVED_USE_SYSTEM_${upperlib} AUTO PARENT_SCOPE)
set(${out_use_system} AUTO PARENT_SCOPE)
else()
set(RESOLVED_USE_SYSTEM_${upperlib} ON PARENT_SCOPE)
set(${out_use_system} ON PARENT_SCOPE)
endif()
else()
set(RESOLVED_USE_SYSTEM_${upperlib} ${USE_SYSTEM_LIBS} PARENT_SCOPE)
set(${out_use_system} ${USE_SYSTEM_LIBS} PARENT_SCOPE)
endif()
else()
set(RESOLVED_USE_SYSTEM_${upperlib} ${USE_SYSTEM_${upperlib}} PARENT_SCOPE)
set(${out_use_system} ${USE_SYSTEM_${upperlib}} PARENT_SCOPE)
endif()
endfunction()
function(dolphin_add_bundled_library library bundled_path)
string(TOUPPER ${library} upperlib)
if (${RESOLVED_USE_SYSTEM_${upperlib}} STREQUAL "AUTO")
function(dolphin_add_bundled_library library use_system bundled_path)
if (${use_system} STREQUAL "AUTO")
message(STATUS "No system ${library} was found. Using static ${library} from Externals.")
else()
message(STATUS "Using static ${library} from Externals")
@ -52,9 +51,9 @@ function(dolphin_add_bundled_library library bundled_path)
endfunction()
function(dolphin_find_optional_system_library library bundled_path)
dolphin_optional_system_library(${library})
dolphin_optional_system_library(use_system ${library})
string(TOUPPER ${library} upperlib)
if(RESOLVED_USE_SYSTEM_${upperlib})
if(use_system)
find_package(${library} ${ARGN})
# Yay for cmake packages being inconsistent
if(DEFINED ${library}_FOUND)
@ -62,7 +61,7 @@ function(dolphin_find_optional_system_library library bundled_path)
else()
set(prefix ${upperlib})
endif()
if((NOT ${found}) AND (NOT ${RESOLVED_USE_SYSTEM_${upperlib}} STREQUAL "AUTO"))
if((NOT ${prefix}_FOUND) AND (NOT ${use_system} STREQUAL "AUTO"))
message(FATAL_ERROR "No system ${library} was found. Please install it or set USE_SYSTEM_${upperlib} to AUTO or OFF.")
endif()
endif()
@ -70,17 +69,17 @@ function(dolphin_find_optional_system_library library bundled_path)
message(STATUS "Using system ${library}")
set(${prefix}_TYPE "System" PARENT_SCOPE)
else()
dolphin_add_bundled_library(${library} ${bundled_path})
dolphin_add_bundled_library(${library} ${use_system} ${bundled_path})
set(${prefix}_TYPE "Bundled" PARENT_SCOPE)
endif()
endfunction()
function(dolphin_find_optional_system_library_pkgconfig library search alias bundled_path)
dolphin_optional_system_library(${library})
dolphin_optional_system_library(use_system ${library})
string(TOUPPER ${library} upperlib)
if(RESOLVED_USE_SYSTEM_${upperlib})
if(use_system)
pkg_search_module(${library} ${search} ${ARGN} IMPORTED_TARGET)
if((NOT ${library}_FOUND) AND (NOT ${RESOLVED_USE_SYSTEM_${upperlib}} STREQUAL "AUTO"))
if((NOT ${library}_FOUND) AND (NOT ${use_system} STREQUAL "AUTO"))
message(FATAL_ERROR "No system ${library} was found. Please install it or set USE_SYSTEM_${upperlib} to AUTO or OFF.")
endif()
endif()
@ -89,7 +88,7 @@ function(dolphin_find_optional_system_library_pkgconfig library search alias bun
dolphin_alias_library(${alias} PkgConfig::${library})
set(${library}_TYPE "System" PARENT_SCOPE)
else()
dolphin_add_bundled_library(${library} ${bundled_path})
dolphin_add_bundled_library(${library} ${use_system} ${bundled_path})
set(${library}_TYPE "Bundled" PARENT_SCOPE)
endif()
endfunction()

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

@ -30,8 +30,10 @@ if(GIT_FOUND)
ERROR_QUIET)
endif()
string(TIMESTAMP DOLPHIN_WC_BUILD_DATE "%Y-%m-%d" UTC)
# version number
set(DOLPHIN_VERSION_MAJOR "2412")
set(DOLPHIN_VERSION_MAJOR "2506")
set(DOLPHIN_VERSION_MINOR "0")
set(DOLPHIN_VERSION_PATCH ${DOLPHIN_WC_REVISION})
@ -65,6 +67,9 @@ endfunction()
configure_source_file("Source/Core/Common/scmrev.h")
if(APPLE)
configure_source_file("Source/Core/DolphinQt/Info.plist")
configure_source_file("Source/Core/MacUpdater/Info.plist")
configure_source_file("Source/Core/VersionInfo.plist")
endif()
if(LINUX)
configure_source_file("Flatpak/org.DolphinEmu.dolphin-emu.metainfo.xml")
endif()

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
@ -98,6 +98,7 @@ option(ENABLE_GENERIC "Enables generic build that should run on any little-endia
option(ENABLE_HEADLESS "Enables running Dolphin as a headless variant" OFF)
option(ENABLE_ALSA "Enables ALSA sound backend" ON)
option(ENABLE_PULSEAUDIO "Enables PulseAudio sound backend" ON)
option(ENABLE_CUBEB "Enables Cubeb sound backend" ON)
option(ENABLE_LLVM "Enables LLVM support, for disassembly" ON)
option(ENABLE_TESTS "Enables building the unit tests" ON)
option(ENABLE_VULKAN "Enables vulkan video backend" ON)
@ -123,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)
@ -131,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)
@ -143,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()
@ -406,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()
@ -565,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)
@ -585,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)
@ -672,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)
@ -695,12 +714,10 @@ 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)
dolphin_find_optional_system_library(CUBEB Externals/cubeb)
if(ENABLE_CUBEB)
dolphin_find_optional_system_library(CUBEB Externals/cubeb)
add_definitions(-DHAVE_CUBEB)
endif()
if(NOT ANDROID)
dolphin_find_optional_system_library_pkgconfig(
@ -709,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)
@ -769,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
#
@ -783,14 +802,16 @@ if (NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/Source/Core/Common/scmrev.h)
endif()
if(APPLE)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Source/Core/DolphinQt)
if (NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/Source/Core/DolphinQt/Info.plist)
file(TOUCH ${CMAKE_CURRENT_BINARY_DIR}/Source/Core/DolphinQt/Info.plist)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Source/Core)
if (NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/Source/Core/VersionInfo.plist)
file(TOUCH ${CMAKE_CURRENT_BINARY_DIR}/Source/Core/VersionInfo.plist)
endif()
endif()
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Source/Core/MacUpdater)
if (NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/Source/Core/MacUpdater/Info.plist)
file(TOUCH ${CMAKE_CURRENT_BINARY_DIR}/Source/Core/MacUpdater/Info.plist)
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Flatpak)
if (NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/Flatpak/org.DolphinEmu.dolphin-emu.metainfo.xml)
file(TOUCH ${CMAKE_CURRENT_BINARY_DIR}/Flatpak/org.DolphinEmu.dolphin-emu.metainfo.xml)
endif()
endif()
@ -801,7 +822,7 @@ endif()
add_custom_target(
dolphin_scmrev
${CMAKE_COMMAND} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} -DPROJECT_BINARY_DIR=${PROJECT_BINARY_DIR} -DDISTRIBUTOR=${DISTRIBUTOR} -DDOLPHIN_DEFAULT_UPDATE_TRACK=${DOLPHIN_DEFAULT_UPDATE_TRACK} -DGIT_FOUND=${GIT_FOUND} -DGIT_EXECUTABLE=${GIT_EXECUTABLE} -DDOLPHIN_WC_REVISION=${DOLPHIN_WC_REVISION} -DDOLPHIN_WC_DESCRIBE=${DOLPHIN_WC_DESCRIBE} -DDOLPHIN_WC_BRANCH=${DOLPHIN_WC_BRANCH} -DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET} -P ${CMAKE_CURRENT_SOURCE_DIR}/CMake/ScmRevGen.cmake
BYPRODUCTS "${CMAKE_CURRENT_BINARY_DIR}/Source/Core/Common/scmrev.h" "${CMAKE_CURRENT_BINARY_DIR}/Source/Core/DolphinQt/Info.plist" "${CMAKE_CURRENT_BINARY_DIR}/Source/Core/MacUpdater/Info.plist"
BYPRODUCTS "${CMAKE_CURRENT_BINARY_DIR}/Source/Core/Common/scmrev.h" "${CMAKE_CURRENT_BINARY_DIR}/Source/Core/DolphinQt/Info.plist" "${CMAKE_CURRENT_BINARY_DIR}/Source/Core/MacUpdater/Info.plist" "${CMAKE_CURRENT_BINARY_DIR}/Flatpak/org.DolphinEmu.dolphin-emu.metainfo.xml"
VERBATIM
)

View File

@ -35,11 +35,11 @@ Summary:
## <a name="intro-aims"></a>Aims
This guide is for developers who wish to contribute to the Dolphin codebase. It will detail how to properly style and format code to fit this project. This guide also offers suggestions on specific functions and other varia that may be used in code.
This guide is for developers who wish to contribute to the Dolphin codebase. It details how to properly style and format code for this project. This guide also offers suggestions on specific functions and other elements that may be used in code.
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 written code has no mistakes in itself).
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 (stable branch) 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

@ -13,3 +13,6 @@ $Bypass Modem Detection
[Video_Settings]
SafeTextureCacheColorSamples = 512
[AR_RetroAchievements_Verified]
$Bypass Modem Detection

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

@ -12,6 +12,7 @@ CPUThread = False
[Video_Settings]
SafeTextureCacheColorSamples = 512
SuggestedAspectRatio = 2
# Because the minimap has a lot of unused triangles,
# CPU Cull can greatly speed up demanding areas of the game.

View File

@ -1,18 +1,17 @@
# RELJAB - SegaBoot
# G2VE08 - Viewtiful Joe 2
[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
[Gecko]
$16:9 Widescreen
042C65A0 3FE38E39
[ActionReplay]
# Add action replay cheats here.
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen

View File

@ -0,0 +1,17 @@
# G2VP08 - Viewtiful Joe 2
[Core]
# Values set here will override the main Dolphin settings.
[OnFrame]
# Add memory patches to be applied every frame here.
[Gecko]
$16:9 Widescreen
042CAA98 3FE38E39
[ActionReplay]
# Add action replay cheats here.
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen

View File

@ -0,0 +1,24 @@
# G3RP52 - Shrek 2
[Core]
# Values set here will override the main Dolphin settings.
[OnFrame]
# Add memory patches to be applied every frame here.
[Gecko]
$16:9 Widescreen
04002FE0 3D208026
04002FE4 C0C958E4
04002FE8 C11E0140
04002FEC ED060232
04002FF0 D11E0140
$60fps
041ED160 28000001
[ActionReplay]
# Add action replay cheats here.
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen
$60fps

View File

@ -5,3 +5,7 @@ $Force PAL60 [EIREXE]
041C7F3C 38600005
$16:9 Widescreen [Kolano]
04389A34 3FE38E39
[Gecko_RetroAchievements_Verified]
$Force PAL60
$16:9 Widescreen

View File

@ -0,0 +1,10 @@
# G4AEE9 - Harvest Moon: Magical Melody
[ActionReplay]
$16:9 Aspect Ratio Fix
048E7B48 3FE38E39
048E9048 3FE38E39
048E8448 3FE38E39
[AR_RetroAchievements_Verified]
$16:9 Aspect Ratio Fix

View File

@ -0,0 +1,17 @@
# G4ME69 - The Sims: Bustin Out GameCube
[Core]
# Values set here will override the main Dolphin settings.
[OnFrame]
# Add memory patches to be applied every frame here.
[Gecko]
$16:9 Widescreen
042B92B0 3FE38E39
[ActionReplay]
# Add action replay cheats here.
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen

View File

@ -0,0 +1,57 @@
# G5SE7D - Spyro: A Hero's Tail
[ActionReplay]
$Remove Bloom
04352F00 4E800020
[AR_RetroAchievements_Verified]
$Remove Bloom
[Gecko]
$16:9 Widescreen
043D6790 3FE38E39
043D6780 3F100000
043D67A4 44555555
80010000 00306534
C2306534 00000015
9421FFA0 7C0802A6
90010064 BFC10040
C0230014 8BC30075
2C1E0000 41820074
88630074 2C030000
40820068 3C603FE3
60638E39 90610034
3C60803D C043679C
EC220072 3C008025
90010030 600089A8
7C0803A6 4E800021
3C60803D C0436790
C0610034 FC021800
4080000C EC421824
EC211024 80010030
60008430 7C0803A6
4E800021 3C60803D
C043679C EC211024
80010064 BBC10040
38210060 7C0803A6
4E800020 00000000
86010000 00000001
82210000 00306534
86000000 FFFFFD64
84210000 003067D0
C2306200 0000000C
88180074 2C000000
41820020 C388677C
3D080001 C3C8870C
C3288710 EF3EC824
EF9CC824 48000028
3C003FE3 60008E39
90010210 C3C10210
FC19F000 40800010
EFD9F024 EF7B07B2
EF9C07B2 3C008030
6000624C 7C0803A6
4E800020 00000000
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen

View File

@ -0,0 +1,50 @@
# G5SP7D - Spyro: A Hero's Tail
[Gecko]
$16:9 Widescreen
F6000001 80008180
418100E0 3FC08049
D2000024 0000000C
2C1D0000 41820054
3DC03F40 61CE0000
3DE03F80 61EF0000
3E003F80 62100000
91C20000 91E20004
92020008 C2220008
C0220000 C0030000
EC000072 EC000473
D0030000 C0220004
C0030014 EC000072
EC000473 D0030014
38800000 00000000
E0000000 80008000
F6000002 80008180
EC420032 EC630032
EC3F0032 EC9E0032
D2000048 00000010
3DC08091 61CE43C0
7C0EF800 41820068
2C1F0000 41820060
3DC08091 61CE3900
7C0EF800 41820050
C2220000 C2420008
C0030000 EC000472
EC0004B3 D0030000
C003000C EC000472
EC0004B3 D003000C
C2220004 C0030014
EC000472 EC0004B3
D0030014 C003001C
EC000472 EC0004B3
D003001C 38800001
60000000 00000000
E0000000 80008000
F6000003 80008180
3FAAAAAB 3B000000
40000000 3F000000
C0000000 44200000
14000014 45800000
E0000000 80008000
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen

View File

@ -32,3 +32,36 @@ $Max/Infinite Badge Points
026EE2D2 00010063
$Max Shop Points
026EE7F0 000003E7
[Gecko]
$16:9 Aspect Ratio Fix - Normal HUD
0441F6D8 3FE38E39
$16:9 Aspect Ratio Fix - Centered HUD
C202F310 00000003
3DC08042 3DE03FD8
91EEF6D8 4E800020
60000000 00000000
C200F500 00000003
3DE08082 3DC0402B
61CE12A2 91CFA1BC
387D015C 00000000
C200F508 00000003
3DE08082 3DC04063
61CEE8D3 91CFA1BC
7FC3F378 00000000
04199598 4E800020
$16:9 Aspect Ratio Fix - Stretched HUD
C202F310 00000003
3DC08042 3DE03FD8
91EEF6D8 4E800020
60000000 00000000
04199598 4E800020
$16:9 Aspect Ratio Fix - Centered HUD with letterboxing
04199598 4E800020
0441F6D8 3FE38E39
[Gecko_RetroAchievements_Verified]
$16:9 Aspect Ratio Fix - Normal HUD
$16:9 Aspect Ratio Fix - Centered HUD
$16:9 Aspect Ratio Fix - Stretched HUD
$16:9 Aspect Ratio Fix - Centered HUD with letterboxing

View File

@ -0,0 +1,40 @@
# G8MJ01 - Paper Mario: The Thousand Year Door
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.
[Gecko]
$16:9 Aspect Ratio Fix - Normal HUD
044195F8 3FE38E39
$16:9 Aspect Ratio Fix - Centered HUD
C202ECEC 00000003
3DC08042 3DE03FD8
91EE95F8 4E800020
60000000 00000000
C200F354 00000003
3DE08081 3DC0402B
61CE12A2 91CF65BC
387D015C 00000000
C200F35C 00000003
3DE08081 3DC04063
61CEE8D3 91CF65BC
7FC3F378 00000000
04193838 4E800020
$16:9 Aspect Ratio Fix - Stretched HUD
C202ECEC 00000003
3DC08042 3DE03FD8
91EE95F8 4E800020
60000000 00000000
04193838 4E800020
$16:9 Aspect Ratio Fix - Centered HUD with letterboxing
04193838 4E800020
044195F8 3FE38E39
[Gecko_RetroAchievements_Verified]
$16:9 Aspect Ratio Fix - Normal HUD
$16:9 Aspect Ratio Fix - Centered HUD
$16:9 Aspect Ratio Fix - Stretched HUD
$16:9 Aspect Ratio Fix - Centered HUD with letterboxing

View File

@ -0,0 +1,40 @@
# G8MP01 - Paper Mario: The Thousand Year Door
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.
[Gecko]
$16:9 Aspect Ratio Fix - Normal HUD
0442C158 3FE38E39
$16:9 Aspect Ratio Fix - Centered HUD
C202F3F8 00000003
3DC08043 3DE03FD8
91EEC158 4E800020
60000000 00000000
C200F6C4 00000003
3DE08086 3DC0402B
61CE12A2 91CFB0DC
387D015C 00000000
C200F6CC 00000003
3DE08086 3DC04063
61CEE8D3 91CFB0DC
7FC3F378 00000000
0419B274 4E800020
$16:9 Aspect Ratio Fix - Stretched HUD
C202F3F8 00000003
3DC08043 3DE03FD8
91EEC158 4E800020
60000000 00000000
0419B274 4E800020
$16:9 Aspect Ratio Fix - Centered HUD with letterboxing
0419B274 4E800020
0442C158 3FE38E39
[Gecko_RetroAchievements_Verified]
$16:9 Aspect Ratio Fix - Normal HUD
$16:9 Aspect Ratio Fix - Centered HUD
$16:9 Aspect Ratio Fix - Stretched HUD
$16:9 Aspect Ratio Fix - Centered HUD with letterboxing

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,235 @@
# G9SE8P - Sonic Heroes
[Gecko]
$16:9 Widescreen
0404E9F8 C0029C30
0404F520 C0029C30
0411F280 C002833C
0411F284 D001000C
0442D2D4 3F521DAF
0442DB20 3F521DAF
0442DE84 3F521DAF
0442EBD0 3F2AAAAB
0442D2E0 3ED21DAF
0442F46C 3FC00000
80000000 BF400000
042426B0 000001AA
0442D2DC 3F000000
0442DB24 3F000000
0442D2E8 3ECFEF9D
0442D2D8 3E800000
0442F494 40000000
80000004 3F800000
042426B4 000001E0
84210000 00290694
84210004 0029069C
86A00000 40000000
86A00004 40000000
86400000 80000000
86400004 80000000
84210000 0042F770
84210004 0042F774
0201D90A 00000002
0201DD06 00000002
C21018B0 00000008
80030040 2C000004
40820034 80010054
3D808001 618CA90C
3C808010 608418D8
7C8903A6 7C0C0000
80030040 4C820420
3884FFE4 7C8903A6
4E800420 00000000
C216EF04 00000002
C022A4F4 EC010032
60000000 00000000
C216F024 00000002
C022A4F4 EC010032
60000000 00000000
0401DC0C 481766D1
C601E58D 801942DC
C601E66D 801942DC
04092470 48101E6D
040A8B0C 48000008
040A8B10 480EB7CD
040AA540 480E9D9D
040B7FF8 480DC2E5
0425A9DC 801018A4
041942D8 4800002C
0424FF60 43660000
0424FF64 44A28000
0424FF68 45246000
0425016C 445FC000
04250170 46FCF800
04250174 C682E600
042501E0 C4410000
042501E4 4520B800
042501E8 448C4000
C205AD5C 0000004E
901F0830 808D9524
7C8C2378 806D9420
88630028 7C630774
2C030002 40820120
48000229 2C03000D
40820114 48000179
38A00000 60A58880
7C642A14 7C8802A6
38A00030 48000151
4800015D 3CA00001
60A5E640 7C6C2A14
7C8802A6 38840030
38A00020 48000131
38800028 38A0731A
7C6C2A14 38A00000
38C00030 98830000
38A50030 7C633214
2C0502D0 4081FFF0
38800002 3CA00001
60A5D618 7C6C2A14
38A00000 38C00024
90830000 38A50024
7C633214 2C05021C
4081FFF0 38800129
3CA00001 60A5AAA1
7C6C2A14 B0830000
38632B2C 3884FFFF
B0830000 38800029
38A0770A 7C6C2A14
38A00000 38C00030
98830000 38A50030
7C633214 2C0500C0
4081FFF0 98830120
38800002 3CA00001
60A5D90C 7C6C2A14
38A00000 38C00024
90830000 38A50024
7C633214 2C050090
4081FFF0 908300D8
48000130 4800010D
2C030005 40820124
48000111 2C030002
40820118 48000051
38A00000 60A53C90
7C642A14 7C8802A6
38A00030 48000029
48000035 3CA00001
60A5E640 7C6C2A14
7C8802A6 38840030
38A00020 48000009
480000D8 3CE08000
38E731E8 7CE903A6
4E800420 4E800021
45287A0C C574FE66
C69E0D2E 00000000
00000000 00000000
0002A009 00000000
0002A009 00000000
1100000A 000002D7
45843012 C5847F33
C6A49C00 00000000
00000000 00000000
00000000 00000000
4682E400 45B38800
C6419000 00000000
00001500 00000000
00026009 00000000
00026009 00000000
0402CE14 0000013A
00000060 44BB8000
3EFFFFFD 00000000
00000000 00000000
00000000 00000000
3C608029 6063C34C
80630000 4E800020
3C608029 6063C54C
80630000 4E800020
60000000 00000000
C21942DC 00000018
9421FF80 80ED9CDC
C842A7E0 A0C70004
3C004330 90010008
38000000 9001000C
D8410010 90C10014
C8010010 C8210008
EC000828 A0C70008
90C10014 C8410010
EC420828 FC200090
FC601090 3CC08029
38C6068C C0860008
FC802050 C0A60010
EC012024 EC432824
EC000828 EC421828
EC210824 EC21082A
EC000824 EC420824
38C00000 38E00018
39040004 7C26242E
7C66442E EC212024
EC632824 EC210028
EC631028 7C26252E
7C66452E 7CC63A14
2C060048 4081FFD8
38210080 00000000
041942E0 4BFFFFE0
48000000 800030CC
DE000000 80008180
30000288 3881000C
1400028C 48000008
D6000291 801942DC
D2001220 00000004
C0030000 3C603EC0
60630000 9061FFFC
C041FFFC EC001024
60000000 00000000
140010DC 60000000
E0000000 80000000
48000000 800030CC
DE000000 80008180
30067978 389F0038
D6067981 801942DC
E0000000 80000000
48000000 800030CC
DE000000 80008180
3008FE14 38A00004
D608FE19 801942DC
E0000000 80000000
48000000 800030CC
DE000000 80008180
300A9D9C 3C608043
D20A9D6C 00000005
3F808010 639C2D24
7F8803A6 39600004
B17C0072 4E800021
3860FFFF B07C0072
60000000 00000000
E0000000 80000000
48000000 800030CC
DE000000 80008180
3009EBDC 3C608043
140E5100 00000014
140E5068 00000014
E0000000 80000000
48000000 800030CC
DE000000 80008180
300A35A0 3C608043
120A35AE 000072A0
E0000000 80000000
48000000 800030CC
DE000000 80008180
30082F34 7FC4f378
12082F32 000072AC
140D7250 00000014
140DA798 00000014
140DA7AC 00000014
140DA9AC 00000014
E0000000 80000000
48000000 800030CC
DE000000 80008180
3004BAF8 C01F0038
140950EC 3F521DAF
140950E8 3ED21DAF
140950AC 3F000000
E0000000 80000000
0201AC26 00000000
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen

View File

@ -0,0 +1,29 @@
# G9SJ8P - Sonic Heroes
[Gecko]
$16:9 Widescreen
F6000004 80008180
000000A8 000000B0
00000090 00000098
000000A0 000000B8
3F800000 3F800000
14000020 BF400000
14000034 3F400000
E0000000 80008000
F6000001 80008180
D0030004 C01F0074
D2000000 00000003
3DC03F40 91C20000
0401D920 38800002
C2220000 EC110032
D0030004 00000000
E0000000 80008000
F6000001 80008180
C0830068 FC600050
D2000000 00000002
3DC04000 91C20000
C0820000 00000000
E0000000 80008000
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen

View File

@ -0,0 +1,30 @@
# G9SP8P - Sonic Heroes
[Gecko]
$16:9 Widescreen
F6000004 80008180
000000A8 000000B0
00000090 00000098
000000A0 000000B8
3F800000 3F800000
0401DA00 38800002
14000020 BF400000
14000034 3F400000
E0000000 80008000
F6000001 80008180
D0030004 C01F0074
D2000000 00000003
3DC03F40 91C20000
0401DA00 38800002
C2220000 EC110032
D0030004 00000000
E0000000 80008000
F6000001 80008180
C0830068 FC600050
D2000000 00000002
3DC04000 91C20000
C0820000 00000000
E0000000 80008000
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen

View File

@ -305,3 +305,17 @@ $NES Super Mario Bros. - Freeze Timer (donny2112)
$NES Wario's Woods - Infinite Credits (donny2112)
01523E93 08000000
0165E60B 00000009
[Gecko]
$16:9 Widescreen
040037A0 3C608000
040037A4 C38337AC
040037A8 4805ACBC
040037AC 3FE38E39
0405E460 4BFA5340
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen
[AR_RetroAchievements_Verified]
$Make Game Save Copyable (donny2112)

View File

@ -6,8 +6,64 @@
[OnFrame]
# Add memory patches to be applied every frame here.
[Gecko]
$Trophy Viewer
80000000 3FE38E39
80000004 3F800000
F6000002 80008180
41C80000 C0400000
41700000 41200000
4A100000 00000010
80000008 3A1415CC
8000000C 3A22339E
88A00008 00000000
88A0000C 00000004
94210008 00000010
94210008 00000018
9421000C 00000000
9421000C 00000008
90010008 00000010
9001000C 00000018
86910008 3B23D70A
8691000C BB23D70A
8641000C 80000000
90010008 00000000
9001000C 00000008
86910008 3A377CB9
8691000C BA377CB9
8641000C 80000000
80000008 3D1F3FD9
8000000C 3D2EFAA4
88A00008 00000000
88A0000C 00000004
94210008 00000028
94210008 0000002C
9421000C 00000020
9421000C 00000024
90010008 00000028
9001000C 0000002C
86910008 3CCCCCCD
8691000C BCCCCCCD
8641000C 80000000
90010008 00000020
9001000C 00000024
86910008 3BE9C886
8691000C BBE9C886
8641000C 80000000
86A00000 3D081C71
86A00004 3D151505
94210000 00000014
86400000 80000000
94210000 0000001C
94210004 00000004
86400004 80000000
94210004 0000000C
[ActionReplay]
# Add action replay cheats here.
[Video_Stereoscopy]
StereoConvergence = 64
[Gecko_RetroAchievements_Verified]
$Trophy Viewer

View File

@ -404,3 +404,8 @@ C03F0034 2C0E0001
EC210032 C0010034
EC210024 39C00000
281E0000 00000000
[Gecko_RetroAchievements_Verified]
$Proper 16:9 Widescreen Support
$Properly Display in 4:3
$Normal C Stick Functionality in Singleplayer Modes

View File

@ -52,3 +52,5 @@ $Enable Taunt Cancelling [Dan Salvato]
040DEBFC 4BFA54C5
040CA258 40820058
[Gecko_RetroAchievements_Verified]
$Normal C Stick Functionality in Singleplayer Modes

View File

@ -1188,3 +1188,12 @@ E2000001 00000000
$Disable Rumble
043D4A70 00000000
[Gecko_RetroAchievements_Verified]
$Disable Rumble
$Proper 16:9 Widescreen Support
$Normal C Stick Functionality in Singleplayer Modes
$PAL Stock Icons
[AR_RetroAchievements_Verified]
$Widescreen Support v1.2 [Dan Salvato]

View File

@ -347,3 +347,8 @@ C03F0034 2C0E0001
EC210032 C0010034
EC210024 39C00000
281E0000 00000000
[Gecko_RetroAchievements_Verified]
$Normal C Stick Functionality in Singleplayer Modes
$Proper 16:9 Widescreen Support
$Properly Display in 4:3

View File

@ -0,0 +1,12 @@
# GAZE69 - Harry Potter and the Prisoner of Azkaban
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.
$60FPS
0445EFBC 00000001
[AR_RetroAchievements_Verified]
$60FPS

View File

@ -0,0 +1,19 @@
# GBLE52 - BLOODY ROAR(R): PRIMAL FURY
[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.
$16:9 Widescreen
0417A198 C2D55555
0417A19C 443AAAAA
04200A0C 3FE38E39
04200270 3FE38E39
C20A6038 00000003
[AR_RetroAchievements_Verified]
$16:9 Widescreen

View File

@ -0,0 +1,16 @@
# GBLP52 - BLOODY ROAR(R): PRIMAL FURY
[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.
$16:9 Widescreen
041041D4 C3A29F0C
042027EC 3FE38E39
[AR_RetroAchievements_Verified]
$16:9 Widescreen

View File

@ -0,0 +1,16 @@
# GBRJ18 - BLOODY ROAR(R): PRIMAL FURY
[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.
$16:9 Widescreen
0410453C C3A29F0C
04202EAC 3FE38E39
[AR_RetroAchievements_Verified]
$16:9 Widescreen

View File

@ -0,0 +1,36 @@
# GBSE8P- BEACH SPIKERS
[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.
[Gecko]
$16:9 Widescreen
04003500 3C608017
04003504 C0432F20
04003508 4800B498
0400350C FFA01090
04003510 3C808021
04003514 8084AEB8
04003518 2804000D
0400351C 4182001C
04003520 28040012
04003524 41820014
04003528 2804001C
0400352C 4182000C
04003530 C042C0B0
04003534 EFBD00B2
04003538 480C856C
0400E99C 4BFF4B64
040CBAA0 4BF37A6C
04172F20 44758000
04280434 44558000
042CA3F0 3FAAAAAB
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen

View File

@ -0,0 +1,36 @@
# GBSP8P- BEACH SPIKERS
[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.
[Gecko]
$16:9 Widescreen
04003500 3C608017
04003504 C04348F8
04003508 4800B498
0400350C FFA01090
04003510 3C808021
04003514 8084FEB8
04003518 2804000D
0400351C 4182001C
04003520 28040012
04003524 41820014
04003528 2804001C
0400352C 4182000C
04003530 C042C130
04003534 EFBD00B2
04003538 480C94E4
0400E99C 4BFF4B64
040CCA18 4BF36AF4
041748F8 44758000
04285514 44558000
042CF550 3FAAAAAB
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen

View File

@ -29,5 +29,16 @@ $Allow Memory Card saving with Savestates
[OnFrame_Enabled]
$Allow Memory Card saving with Savestates
[ActionReplay]
$16:9 Widescreen
04005300 C3A2B084
04005304 EFBD00B2
04005308 4809E62C
040A3930 4BF619D0
0447E724 3FAAAAAB
[Patches_RetroAchievements_Verified]
$Allow Memory Card saving with Savestates
[AR_RetroAchievements_Verified]
$16:9 Widescreen

View File

@ -29,5 +29,28 @@ $Allow Memory Card saving with Savestates
[OnFrame_Enabled]
$Allow Memory Card saving with Savestates
[ActionReplay]
$16:9 Widescreen
04261AC0 000034E0
04261AC4 000034E4
F6000001 80008180
FFA01090 93E10024
D2000000 00000003
3DC03FAA 61CEAAAB
91C20000 C2620000
EFB300B2 00000000
E0000000 80008000
F6000001 80008180
FF601090 7C7F1B78
D2000000 00000004
3DC03FAA 61CEAAAB
91C20004 C2220004
EF7100B2 39C00000
60000000 00000000
E0000000 80008000
[Patches_RetroAchievements_Verified]
$Allow Memory Card saving with Savestates
[AR_RetroAchievements_Verified]
$16:9 Widescreen

View File

@ -29,5 +29,16 @@ $Allow Memory Card saving with Savestates
[OnFrame_Enabled]
$Allow Memory Card saving with Savestates
[ActionReplay]
$16:9 Widescreen [Ralf]
04005300 C3A2B144
04005304 EFBD00B2
04005308 480A1C68
040A6F6C 4BF5E394
044CBCA4 3FAAAAAB
[Patches_RetroAchievements_Verified]
$Allow Memory Card saving with Savestates
[AR_RetroAchievements_Verified]
$16:9 Widescreen [Ralf]

View File

@ -19,3 +19,6 @@ $Fix C4 texture tiling (used for buttons and some character icons)
[Video_Hacks]
ImmediateXFBEnable = False
[AR_RetroAchievements_Verified]
$Fix C4 texture tiling (used for buttons and some character icons)

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

@ -0,0 +1,18 @@
# GCBE7D - Crash Bandicoot: The Wrath of Cortex
[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.
[Gecko]
$16:9 Widescreen
040AC768 D01E0040
04122370 3FE38E39
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen

View File

@ -0,0 +1,29 @@
# GCBP7D - Crash Bandicoot: The Wrath of Cortex
[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.
[Gecko]
$16:9 Widescreen
040AC768 D01E0040
04122370 3FE38E39
$60Hz
04000088 3FE08016
0400008C 63FFECE4
04000090 480E7FE0
040E806C 4BF1801C
04123558 43E00000
0216ECEA 000001C0
0216ECEC 000001C0
0216ECF0 00000010
0216ECF4 000001C0
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen
$60Hz

View File

@ -315,3 +315,9 @@ $Single Player ITEM SLOT 4 CONTAINS Taterskin Coat
$Single Player ITEM SLOT 4 CONTAINS Coat
04EC5A36 08000000
0221F32C 00000056
$16:9 Widescreen
0418542C C3A2C794
04332D74 3FE38E39
[AR_RetroAchievements_Verified]
$16:9 Widescreen

View File

@ -26,3 +26,11 @@ $Fix GBA connections
[Patches_RetroAchievements_Verified]
$Fix GBA connections
[ActionReplay]
$16:9 Widescreen
04186548 C3A2C7CC
04333DCC 3FE38E39
[AR_RetroAchievements_Verified]
$16:9 Widescreen

View File

@ -20,3 +20,5 @@ $Fix C4 texture tiling (used for buttons and some character icons)
[Video_Hacks]
ImmediateXFBEnable = False
[AR_RetroAchievements_Verified]
$Fix C4 texture tiling (used for buttons and some character icons)

View File

@ -15,3 +15,9 @@ $Max Lovebits
$Full Health
010C0B95 08000000
043C83F0 3F800000
$16:9 Widescreen
0434AEAC 3FE38E39
0434AECC 3FE38E39
[AR_RetroAchievements_Verified]
$16:9 Widescreen

View File

@ -0,0 +1,5 @@
# GD7JB2, GD7E70, GD7PB2 - Dragon Ball Z: Budokai
[Video_Hacks]
# Frame pacing
ImmediateXFBEnable = False

View File

@ -0,0 +1,17 @@
# GD7E70 - Dragon Ball Z: Budokai
[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.
[Gecko]
$Deinterlacing Fix
003CB228 00000000
[Gecko_RetroAchievements_Verified]
$Deinterlacing Fix

View File

@ -2,7 +2,6 @@
[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,42 @@
# GEZE8P - Billy Hatcher and the Giant Egg
[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.
$16:9 Widescreen [gamemasterplc]
04007188 4800000C
C20305DC 00000003
C0228024 C0410008
EC420072 D0410008
C0410010 00000000
C20CCEE0 00000003
38810020 C0228024
C0440000 EC420824
D0440000 00000000
C210FC8C 00000003
933D0060 C0228024
C05D0048 EC420072
D05D0048 00000000
0428639C C1D40000
042863B4 41D40000
04286514 C1D40000
04286730 421F0000
0428673C 41540000
04286748 C1540000
04286754 C21F0000
04286790 C2343333
042867A8 42540000
042867C0 42680000
04286890 41D40000
0428689C C17E6666
042868A8 C17E6666
042C6304 3F413522
042C6328 3FE22222
[AR_RetroAchievements_Verified]
$16:9 Widescreen [gamemasterplc]

View File

@ -0,0 +1,18 @@
# GEZP8P - BillyHatcher
[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.
$16:9 Widescreen [Ralf]
041851C4 C042EFE4
0420F404 C3A2EFE4
042CA534 3F400000
042D14E4 3FE38E39
[AR_RetroAchievements_Verified]
16:9 Widescreen [Ralf]

View File

@ -66,3 +66,30 @@ $All Multiplayer Maps
0229E518 00000101
$Unlock Lots of Stuff In VS Mode By Completing A Match
0429E538 0000FFFF
$16:9 Widescreen [gamemasterplc]
04003D00 C3A2BCE0
04003D04 EC441024
04003D08 EC420772
04003D0C 4817C7A0
04003D10 1C000005
04003D14 7C030E70
04003D18 4E800020
04018400 4BFEB911
04018410 4BFEB901
041804A8 4BE83858
04068D2C 60000000
04068D7C 60000000
04068E60 60000000
04068ED0 60000000
0438A900 3F400000
C218030C 00000003
3DC03F40 91C20000
C2220000 EC5100B2
D0440000 00000000
C218068C 00000003
3DC03F40 91C20000
C2220000 EC5100B2
D0440000 00000000
[AR_RetroAchievements_Verified]
$16:9 Widescreen [gamemasterplc]

View File

@ -62,3 +62,28 @@ $Unlock Star Wolf
$Bonus: Unlock Xevious
06A0E45C 18000000
002B88E6 00000001
$16:9 Widescreen [gamemasterplc]
06003D00 0000001C
C3A2BE10 EC441024
EC420772 4817E5D8
1C000003 7C031670
4E800020 00000000
040187BC 4BFEB555
040187CC 4BFEB545
041822E0 4BE81A20
0406968C 60000000
040696DC 60000000
040697C0 60000000
04069830 60000000
043A5650 3F400000
C21824C4 00000003
3DC03F40 91C20000
C2220000 EC5100B2
D0440000 00000000
C2182144 00000003
3DC03F40 91C20000
C2220000 EC5100B2
D0440000 00000000
[AR_RetroAchievements_Verified]
$16:9 Widescreen [gamemasterplc]

View File

@ -10,3 +10,6 @@ MMU = True
[ActionReplay]
# Add action replay cheats here.
[Video_Hacks]
# Needed for loading screens to show up.
EFBAccessEnable = True

View File

@ -0,0 +1,17 @@
# 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.
[ActionReplay]
# Add action replay cheats here.
[Video_Settings]
# Needed for some FMVs.
SafeTextureCacheColorSamples = 512
[Video_Hacks]
ImmediateXFBEnable = False

View File

@ -0,0 +1,52 @@
# GFQEA4 - Frogger's Adventures: The Rescue
[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.
$16:9 Widescreen
C21EAE1C 00000005
C01F0070 81DF0014
2C0E0002 41820014
C222BB60 EC000473
C222BB6C EC000473
60000000 00000000
C21EAE28 00000005
C01F0074 81DF0014
2C0E0002 41820014
C222BB64 EC000473
C222BB6C EC000473
60000000 00000000
C2101C18 00000007
38A00004 3E208026
62314D14 C222BB60
C242BB64 C262BB6C
EE3104F3 EE5204F3
D2510010 D231001C
D2510030 FE208850
D2310008 00000000
C2101C20 00000004
3BBDFFE0 3DC03F80
91D10010 91D1001C
91D10030 3DCE8000
91D10008 00000000
C21791B8 00000004
ED494024 3E203F80
62310000 92220000
C2220000 ED4A0473
60000000 00000000
C21791BC 00000004
ED090024 3E203F40
62310000 92220000
C2220000 ED088825
60000000 00000000
042BDEA0 3F400000
042BDEA4 3F800000
042BDEAC 3F800000
[AR_RetroAchievements_Verified]
$16:9 Widescreen

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

@ -59,3 +59,6 @@ $ F-Zero AX (Version 4) [Ralf, Nekokabu]
040049D4 7FE3FB78
040049D8 480165C0
0401AF94 4BFE999C
[AR_RetroAchievements_Verified]
$Make Save Copyable

View File

@ -98,3 +98,6 @@ A0043F26 B0030E5A
60000020 90037ACC
80010014 48017750
0401B900 4BFE8630
[AR_RetroAchievements_Verified]
$Make Save Copyable

View File

@ -17,3 +17,26 @@ $Max/Infinite Money
$Max Happy Points
0728E81C 08000000
0438F73C 0001869F
$16:9 Widescreen [darkludx]
0416C4B0 C3A29F60
0465DCA0 3FE38E39
[AR_RetroAchievements_Verified]
$16:9 Widescreen [darkludx]
[Gecko]
$Simple 60FPS [Minty Meeo]
0400a518 38600001
* Requires Emulated CPU Clock Override
$Experimental 60fps [Minty Meeo]
C20157D4 00000004
3C608036 8063B7A4
2C030000 38600001
41A20008 38600002
60000000 00000000
* Requires Emulated CPU Clock Override
* Requires disabling Emulate Disc Speed
[Gecko_RetroAchievements_Verified]
$Simple 60FPS
$Experimental 60fps

View File

@ -0,0 +1,24 @@
# GGTE01 - ChibiRobo!
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.
[Gecko]
$Simple 60FPS [Minty Meeo]
0400a51c 38600001
* Requires Emulated CPU Clock Override
$Experimental 60fps [Minty Meeo]
C2015758 00000004
3C608034 806393A4
2C030000 38600001
41A20008 38600002
60000000 00000000
* Requires Emulated CPU Clock Override
* Requires disabling Emulate Disc Speed
[Gecko_RetroAchievements_Verified]
$Simple 60FPS
$Experimental 60fps

View File

@ -0,0 +1,34 @@
# GGTE01 - ChibiRobo!
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.
[Gecko]
$16:9 Widescreen
C21C28F4 00000006
3861002C 3DC03F40
91C20000 C2220000
C0030000 EC110032
D0030000 C003000C
EC110032 D003000C
60000000 00000000
041A8F1C 4E800020
$Simple 60FPS [Minty Meeo]
0400a538 38600001
* Requires Emulated CPU Clock Override
$Experimental 60fps [Minty Meeo]
C2015AA0 00000004
3C608036 806323A4
2C030000 38600001
41A20008 38600002
60000000 00000000
* Requires Emulated CPU Clock Override
* Requires disabling Emulate Disc Speed
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen
$Simple 60FPS
$Experimental 60fps

View File

@ -15,3 +15,12 @@ $EFB Copy Fix
[Patches_RetroAchievements_Verified]
$EFB Copy Fix
[Gecko]
$16:9 Widescreen
C220DBEC 00000002
EC410024 D0410008
60000000 00000000
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen

View File

@ -15,3 +15,13 @@ $EFB Copy Fix
[Patches_RetroAchievements_Verified]
$EFB Copy Fix
[Gecko]
$16:9 Widescreen
04003900 EC410024
04003904 D0410008
04003908 4820984C
0420D150 4BDF67B0
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen

View File

@ -15,3 +15,13 @@ $EFB Copy Fix
[Patches_RetroAchievements_Verified]
$EFB Copy Fix
[Gecko]
$16:9 Widescreen
04003900 EC410024
04003904 D0410008
04003908 4820A2E8
0420DBEC 4BDF5D14
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen

View File

@ -0,0 +1,20 @@
# GHLE69 - Harry Potter and the Sorcerer's Stone
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.
[Gecko]
$16:9 Widescreen
04209020 40AAAAAB
0422D618 40AAAAAB
0422D630 40AAAAAB
0420BE0C 40883127
04209454 40883127
0421E3AC 40AAAAAB
04209010 3F5DA000
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen

View File

@ -0,0 +1,19 @@
# GHQE7D - The Simpsons: Hit & Run
[Gecko]
$16:9 Widescreen
04004600 C002A604
04004604 C09F0014
04004608 FC002040
0400460C 4082000C
04004610 C002A608
04004614 EC630032
04004618 48220508
04041A5C 38600001
04224344 C002A60C
04224B1C 4BDDFAE4
044786B0 3FAAAAAB
04479F28 3FA33333
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen

View File

@ -0,0 +1,26 @@
# GHQP7D - The Simpsons: Hit & Run
[Gecko]
$16:9 Widescreen
04004600 C002A604
04004604 C09F0014
04004608 FC002040
0400460C 4082000C
04004610 C002A608
04004614 EC630032
04004618 4822076C
04041A88 38600001
042245A8 C002A60C
04224D80 4BDDF880
04478D08 3FAAAAAB
0447A588 3FA33333
$60Hz
0404A3A0 38A001E0
04067D74 38C001E0
04276C38 48000008
04276CD0 38000014
04276F64 48000008
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen
$60Hz

View File

@ -0,0 +1,16 @@
# GHSE69 - Harry Potter and the Chamber of Secrets
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.
[Gecko]
$16:9 Widescreen
0442788C 3FE38E39
04427A74 3FE38E39
0449EC8C 3FE38E39
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen

View File

@ -0,0 +1,14 @@
# GAZE69 - Harry Potter and the Prisoner of Azkaban
[OnFrame]
# Add memory patches to be applied every frame here.
[Gecko]
# Add action replay cheats here.
$16:9 Widescreen
044078AC 3FE38E39
04407A94 3FE38E39
0447ECAC 3FE38E39
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen

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

@ -2,3 +2,11 @@
[Core]
MMU = True
[ActionReplay]
$16:9 Widescreen [Vague Rant]
0446A740 3FEDCD7C
044795A4 3FEDEC81
[AR_RetroAchievements_Verified]
$16:9 Widescreen [Vague Rant]

View File

@ -0,0 +1,14 @@
# GK2E52 - Spider-Man 2
[ActionReplay]
$60 FPS
084dc82a 00000001
0456c364 00000002
104dc82a 00000001
0456c364 00000001
$Freeze Timers
042789B0 60000000
042789CC 60000000
[AR_RetroAchievements_Verified]
$60 FPS

View File

@ -9,8 +9,59 @@
[ActionReplay]
# Add action replay cheats here.
[Gecko]
$16:9 Widescreen
F6000001 80008180
5403D97E E3E10038
D2000008 00000002
38600001 CBE10030
60000000 00000000
E0000000 80008000
F6000001 80008180
ED6A4824 ED080172
D2000000 00000005
3821FFFC 93E10000
3FE03FAB 93E30000
C1630000 ED2B0272
ED6A4824 83E10000
38210004 00000000
E0000000 80008000
F6000001 80008180
ED4B5024 ECA90172
D2000000 00000006
3821FFF4 93E10000
D9210004 3FE03FAB
93E30000 C1230000
ED4902B2 ED4B5024
83E10000 C9210004
3821000C 00000000
E0000000 80008000
F6000001 80008180
5460063F 418201FC
D200002C 00000006
3C803F40 90810008
C0210008 C0030000
EC010032 D0030000
C003000C EC010032
D003000C 38800001
60000000 00000000
E0000000 80008000
F6000001 80008180
5460063F 418203A4
D2000040 00000006
3C803F40 90810008
C0210008 C0030000
EC010032 D0030000
C003000C EC010032
D003000C 38800001
60000000 00000000
E0000000 80008000
[Video_Settings]
[Video_Hacks]
EFBToTextureEnable = False
ImmediateXFBEnable = False
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen

View File

@ -12,7 +12,58 @@ CPUThread = False
[ActionReplay]
# Add action replay cheats here.
[Gecko]
$16:9 Widescreen Region-Free
F6000001 80008180
5403D97E E3E10038
D2000008 00000002
38600001 CBE10030
60000000 00000000
E0000000 80008000
F6000001 80008180
ED6A4824 ED080172
D2000000 00000005
3821FFFC 93E10000
3FE03FAB 93E30000
C1630000 ED2B0272
ED6A4824 83E10000
38210004 00000000
E0000000 80008000
F6000001 80008180
ED4B5024 ECA90172
D2000000 00000006
3821FFF4 93E10000
D9210004 3FE03FAB
93E30000 C1230000
ED4902B2 ED4B5024
83E10000 C9210004
3821000C 00000000
E0000000 80008000
F6000001 80008180
5460063F 418201FC
D200002C 00000006
3C803F40 90810008
C0210008 C0030000
EC010032 D0030000
C003000C EC010032
D003000C 38800001
60000000 00000000
E0000000 80008000
F6000001 80008180
5460063F 418203A4
D2000040 00000006
3C803F40 90810008
C0210008 C0030000
EC010032 D0030000
C003000C EC010032
D003000C 38800001
60000000 00000000
E0000000 80008000
[Video_Hacks]
ImmediateXFBEnable = False
EFBToTextureEnable = False
DeferEFBCopies = False
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen Region-Free

View File

@ -0,0 +1,10 @@
# GKBPAF - Baten Kaitos Eternal Wings and the Lost Ocean
[Gecko]
$60Hz
041B2EF0 00000014
021B2EF8 000001E0
021B2F00 000001E0
[Gecko_RetroAchievements_Verified]
$60Hz

View File

@ -0,0 +1,16 @@
# GKDP01 - Doshin the Giant
[Gecko]
$16:9 Widescreen
0417AABC 3FE38E39
0417B0B8 BF2AAAAB
0417B0BC 3F2AAAAB
0417BBFC BF2AAAAB
0417BC00 3F2AAAAB
$60Hz
04015D04 38C00000
04097F8C 38600005
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen
$60Hz

View File

@ -0,0 +1,14 @@
# GKRPB2 - Ribbit King
[Gecko]
$16:9 Widescreen
04044088 388002AC
040AD88C 38800356
040ADAC0 38800356
$60Hz
040DD728 38600000
0425C4A0 00000014
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen
$60Hz

View File

@ -0,0 +1,8 @@
# GKRPB2 - DreamMix TV World Fighters
[Gecko]
$16:9 Widescreen
04273224 3FE38E38
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen

View File

@ -0,0 +1,56 @@
# GKYE01 - Kirby Air Ride
[Gecko]
$16:9 Widescreen
040647F4 C05E0040
C2064588 00000006
C05C0044 3C808010
80610114 7C041800
386100B4 41800014
3C803FAB 90830000
C0630000 EC4300B2
60000000 00000000
C2401508 00000009
3821FFFC 3C803F40
90810000 809E004C
3CA04280 7C042800
41820020 C0210000
C0010030 EC010032
D0010030 C001003C
EC010032 D001003C
38210004 7FE4FB78
60000000 00000000
0427AE50 4E800020
C20D7F08 00000004
3821FFFC 3C603E40
90610000 C3A10000
C01E0044 EC00E824
38210004 00000000
045E33CC 44555555
045E5014 44555555
C239CFC4 00000002
3C803B19 90830000
38800001 00000000
0439D10C 38600000
0439D11C 38A00280
C200D57C 00000002
3C80C2C0 90810004
C0210004 00000000
C200D54C 00000003
FC400890 3C80C2C0
90810004 C0210004
60000000 00000000
045DF1BC C2800000
C20AAE38 00000002
A8FA0000 38E7FF96
60000000 00000000
C20AAEC8 00000002
A8FA0000 38E7FF96
60000000 00000000
C20AAF54 00000002
AB9A0000 3B9CFF96
60000000 00000000
0428B210 60000000
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen

View File

@ -0,0 +1,31 @@
# GKYJ01 - Kirby Air Ride
[Gecko]
$16:9 Widescreen
04063F1C C05E0040
C2063CB0 00000006
C05C0044 3C808010
80610114 7C041800
386100B4 41800014
3C803FAB 90830000
C0630000 EC4300B2
60000000 00000000
C23FC428 00000009
3821FFFC 3C803F40
90810000 809E004C
3CA04280 7C042800
41820020 C0210000
C0010030 EC010032
D0010030 C001003C
EC010032 D001003C
38210004 7FE4FB78
60000000 00000000
04275DB0 4E800020
C20D6D34 00000004
3821FFFC 3C603E40
90610000 C3A10000
C01E0044 EC00E824
38210004 00000000
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen

View File

@ -0,0 +1,31 @@
# GKYP01 - Kirby Air Ride
[Gecko]
$16:9 Widescreen
04065134 C05E0040
C2064EC8 00000006
C05C0044 3C808010
80610114 7C041800
386100B4 41800014
3C803FAB 90830000
C0630000 EC4300B2
60000000 00000000
C2403B48 00000009
3821FFFC 3C803F40
90810000 809E004C
3CA04280 7C042800
41820020 C0210000
C0010030 EC010032
D0010030 C001003C
EC010032 D001003C
38210004 7FE4FB78
60000000 00000000
0427BB0C 4E800020
C20D9664 00000004
3821FFFC 3C603E40
90610000 C3A10000
C01E0044 EC00E824
38210004 00000000
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen

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

@ -19,5 +19,21 @@ $Fix freeze in opening cutscene
[OnFrame_Enabled]
$Fix freeze in opening cutscene
[Gecko]
$16:9 Widescreen
04003700 EC40F824
04003704 C062EFFC
04003708 EC4300B2
0400370C 4806554C
04068C54 4BF9AAAC
$60Hz
040C1154 38800000
040C1A08 90030154
040C1A34 38032310
[Patches_RetroAchievements_Verified]
$Fix freeze in opening cutscene
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen
$60Hz

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

@ -119,3 +119,118 @@ $Reduced Nintendo Blur
022B3382 000000E8
$Increased Nintendo Blur
022B3382 000000CC
[Gecko]
$16:9 Widescreen v2 [Ralf, Kester]
04003F20 809F4EB4
04003F24 28030003
04003F28 40800008
04003F2C 38800009
04003F30 7FE3FB78
04003F34 48144E44
04003F38 C00295BC
04003F3C FC010040
04003F40 C002943C
04003F44 4081000C
04003F48 EC21002A
04003F4C 48000008
04003F50 EC210028
04003F54 48128844
04003F7C C0028B24
04003F80 C0A295BC
04003F84 EC250828
04003F88 EC210032
04003F8C EC250828
04003F90 48128808
04145A4C 4BEBE531
04145B04 4BEBE479
04145BF8 480000A4
04145F54 38800008
041460D8 4BEBDE61
04146298 4BEBDCA1
04146368 4BEBDBD1
041463B4 3880000A
04146648 4BEBD8F1
041466A8 38600000
041466B0 38A00260
0414672C 38600000
04146734 38A00260
04146790 4BEBD7A9
041467E0 4BEBD759
04146858 4BEBD6E1
041468EC 4BEBD64D
04146A10 4BEBD529
04146A94 60000000
04146A9C 38930077
04148D74 4BEBB1AC
04148D84 60000000
04150CF0 38600004
04150CF4 48000010
0415186C 60000000
04151878 48000010
043CBE08 3FE79E79
043CBE0C 4068A85F
48000000 803CBD94
DE000000 80008180
120000BC 0000C2CC
E2000001 80008000
48000000 803CBD94
DE000000 80008180
120000C4 00004431
E2000001 80008000
48000000 803CBD94
DE000000 80008180
120000C6 00008000
E2000001 80008000
04003F58 C0028B24
04003F5C EFE10032
04003F60 4816383C
04003F94 A01B0020
04003F98 2800C39D
04003F9C 41820010
04003FA0 2800C3A0
04003FA4 41820008
04003FA8 48000014
04003FAC 3C00C3CC
04003FB0 901B0020
04003FB4 3C0043CC
04003FB8 901B0028
04003FBC C03B0028
04003FC0 48024EFC
04028EB8 4BFDB0DC
041581A8 3C00436D
041581B8 901F2090
04158270 3C00433E
04158288 901F20C0
04158298 3C004393
041582A8 901F20D0
04167798 4BE9C7C0
043CE38C 44088000
043CE390 439B0000
043CE394 43CE0000
043CE398 43500000
043CE39C 43A80000
043CE3A0 43150000
$16:9 Menu Backgrounds Add-On [Ralf]
06003860 0000007C
807B00DC 28030000
4182006C 3CA0C2CC
3CC04432 3C000953
60007461 809B0144
7C040040 41820040
3C001052 60006563
809B013C 7C040040
41820034 3C006561
60007231 809B0160
7C040040 41820018
3C001750 6000726F
809B015C 7C040040
40820014 90A30200
90C30208 90A30048
90C30050 7C7B1B78
48025A50 00000000
04029324 4BFDA53C
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen v2
$16:9 Menu Backgrounds Add-On

View File

@ -136,3 +136,118 @@ $Increased Nintendo Blur
$Goraud Shading
044CC633 18000000
040A9714 4E800020
[Gecko]
$16:9 Widescreen v2 [Ralf, Kester]
04003F20 809F4EB4
04003F24 28030003
04003F28 40800008
04003F2C 38800009
04003F30 7FE3FB78
04003F34 48144E74
04003F38 C00295BC
04003F3C FC010040
04003F40 C002943C
04003F44 4081000C
04003F48 EC21002A
04003F4C 48000008
04003F50 EC210028
04003F54 48128868
04003F7C C0028B24
04003F80 C0A295BC
04003F84 EC250828
04003F88 EC210032
04003F8C EC250828
04003F90 4812882C
04145A7C 4BEBE501
04145B34 4BEBE449
04145C28 480000A4
04145F84 38800008
04146108 4BEBDE31
041462C8 4BEBDC71
04146398 4BEBDBA1
041463E4 3880000A
04146678 4BEBD8C1
041466D8 38600000
041466E0 38A00260
0414675C 38600000
04146764 38A00260
041467C0 4BEBD779
04146810 4BEBD729
04146888 4BEBD6B1
0414691C 4BEBD61D
04146A40 4BEBD4F9
04146AC4 60000000
04146ACC 38930077
04148DA4 4BEBB17C
04148DB4 60000000
04150D20 38600004
04150D24 48000010
0415189C 60000000
041518A8 48000010
043D5C48 3FE79E79
043D5C4C 4068A85F
48000000 803D5BD4
DE000000 80008180
120000BC 0000C2CC
E2000001 80008000
48000000 803D5BD4
DE000000 80008180
120000C4 00004431
E2000001 80008000
48000000 803D5BD4
DE000000 80008180
120000C6 00008000
E2000001 80008000
04003F58 C0028B24
04003F5C EFE10032
04003F60 481626E0
04003F94 A01B0020
04003F98 2800C39D
04003F9C 41820010
04003FA0 2800C3A0
04003FA4 41820008
04003FA8 48000014
04003FAC 3C00C3CC
04003FB0 901B0020
04003FB4 3C0043CC
04003FB8 901B0028
04003FBC C03B0028
04003FC0 48024EFC
04028EB8 4BFDB0DC
04157134 3C00436D
04157144 901F2090
041571FC 3C00433E
04157214 901F20C0
04157224 3C004393
04157234 901F20D0
0416663C 4BE9D91C
043D81AC 44088000
043D81B0 439B0000
043D81B4 43CE0000
043D81B8 43500000
043D81BC 43A80000
043D81C0 43150000
$16:9 Menu Backgrounds Add-On [Ralf]
06003860 0000007C
807B00DC 28030000
4182006C 3CA0C2CC
3CC04432 3C000953
60007461 809B0144
7C040040 41820040
3C001052 60006563
809B013C 7C040040
41820034 3C006561
60007231 809B0160
7C040040 41820018
3C001750 6000726F
809B015C 7C040040
40820014 90A30200
90C30208 90A30048
90C30050 7C7B1B78
48025A50 00000000
04029324 4BFDA53C
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen v2
$16:9 Menu Backgrounds Add-On

View File

@ -11,6 +11,7 @@
[Video_Settings]
SafeTextureCacheColorSamples = 512
SuggestedAspectRatio = 2
# Because the minimap has a lot of unused triangles,
# CPU Cull can greatly speed up demanding areas of the game.

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

@ -0,0 +1,23 @@
# GMBE8P - Super Monkey Ball
[Gecko]
$16:9 Widescreen
C20E43B4 00000006
C0030000 3DC03F40
91C20004 C2220004
EC110032 D0030000
C003000C EC110032
D003000C C0030000
60000000 00000000
04084A40 4E800020
04020ADC C3A2C244
0405C55C 4E800020
04098410 4E800020
04099968 4E800020
040976BC 4E800020
$NA Stretched HUD [gamemasterplc]
042F2C1C 3FE38E39
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen
$NA Stretched HUD

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