forked from dolphin-emu/dolphin
-
Notifications
You must be signed in to change notification settings - Fork 74
Update and refactor against upstream dolphin #352
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
cscd98
wants to merge
10,000
commits into
libretro:master
Choose a base branch
from
cscd98:merge-clean-new
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+901,501
−931,617
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Update to SDL3
This is particularly useful for people who stream their desktop and don't want to accidentally leak their IP or room.
…bolDB, 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.
…y two different threads on boot. On boot should be the only time this happens.
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.
i18n: Add comments
Remove the redundant s_populate_mutex and only use ControllerInterface::m_devices_population_mutex instead to prevent a deadlock caused by locking them in opposite orders. The device population functions in the win32 InputBackend previously locked s_populate_mutex first before calling various functions that locked m_devices_population_mutex. This normally worked but ControllerInterface::RefreshDevices locks m_devices_population_mutex first and then calls HandleWindowChange which then locked s_populate_mutex, potentially causing the deadlock. Fix this by using PlatformPopulateDevices to lock m_devices_population_mutex before running the code that was previously protected by s_populate_mutex. The functions in question lock m_devices_population_mutex anyway, so this shouldn't meaningfully increase contention on the lock. Reproduction steps: * Let Dolphin finish startup. * In Win32.cpp::OnDevicesChanged set a breakpoint on the call to PlatformPopulateDevices. When the breakpoint is triggered the function will have locked s_populate_mutex, but since PlatformPopulateDevices won't have run yet m_devices_population_mutex will still be unlocked. * Unplug a device from your computer. * Wait for the breakpoint to trigger. (At this point you can plug the device back in). * Freeze the ntdll.dll!TppWorkerThread() that triggered the breakpoint. * Resume Dolphin and start a game. * Core::EmuThread will call ControllerInterface::ChangeWindow which calls RefreshDevices. It locks m_devices_population_mutex, then calls InputBackend::HandleWindowChange, which tries to lock s_populate_mutex. * Unfreeze ntdll.dll!TppWorkerThread(). At this point EmuThread and TppWorkerThread are deadlocked. The UI is still responsive since the Host thread is unaffected, but trying to stop the game or close Dolphin normally will fail since EmuThread is unable to stop.
…ction BTReal: bugfix - BT passthrough uses selected device rather than first compatible device in list
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.
…ctions for improved performance with certain adapters.
…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.
…r size. WARN_LOG if the size is smaller than that of the original BT module.
PPCSymbols: Restructure loading on boot and add a mutex to prevent crashes.
…ments Bluetooth Passthrough Improvements
…nt from non-CPU thread.
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.
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.
IOS/KD: Pad Wii Numbers to 16 digits
…ig-window-adjust-size DolphinQt: Adjust PostProcessingConfigWindow size on creation.
…, support multi-pass, and textures are now split out (as well as supporting a way to calculate sampler origin)
Sync with 20250826093514
Since Grid View doesn't have a header for users to change sorting options with, use List View's sorting in Grid View too.
…mp_greater and fix a floating point edge case. Thanks to Dentomologist for catching the edge case.
GetTicksPerHalfLine() gets called via Preset() before RefreshConfig() has a chance to replace the dummy value 0.0. Thank you, UB-san.
I'm not aware of any issue here but let's set meaningful defaults anyway.
We don't want list initialization here. Thank you, UB-san.
bf16f8c
to
a533280
Compare
a533280
to
b333bac
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Shameless plug: If you want to thank or continue support for this please consider a small donation.. https://github.com/sponsors/cscd98
This is an attempt to rebase this on upstream dolphin. There is more than 10,000 commits since the last upstream merge so there is quite a lot of changes required to get this to work.
This PR is up to date with upstream as of Sep 9, 2025.
It boots up a selection of games that I've tried, runs pretty darn fast (except in debug mode).
Ubuntu was my main testing and development platform. Here is what has been tested:
Ubuntu:
Windows 11:
Android
Mac/ipad/iphone
TODO:
Cloning instructions
Ubuntu 25.10 using GCC 15.2
Windows 11