summaryrefslogtreecommitdiff
path: root/Source/Core
AgeCommit message (Collapse)Author
2026-03-12SI_DeviceAMBaseboard: Add baseboard 0x70 command to ↵Jordan Woyak
SerialInterface::EBufferCommands enum to eliminate BaseBoardCommand enum.
2026-03-12SI_DeviceAMBaseboard: Remove unnecessary code.Jordan Woyak
2026-03-12Merge pull request #14401 from naari3/masterJordan Woyak
AMMediaboard: stub Triforce NETWORK TEST command handling
2026-03-12DolphinQt: Improve TAS UI WidgetsStavros Kosmas
Made Stick and IR Widgets bigger Improved Stick and IR layouts to better utilize space Made Stick and IR Widgets Scale at a fixed ratio when window is resized Added Scrollbars to Stick and IR Widgets Reduced Spinbox padding in dark style
2026-03-07PerformanceMetrics: Use HookableEvent for state changed callbackDentomologist
Use the normal state changed `HookableEvent` instead of having `Core::NotifyStateChanged` call `g_perf_metrics.OnEmulationStateChanged` directly. The direct call was added in bad78cfed416d89ceb6b0acf6c134d3691b3d624 to avoid a crash. At the time state changed callbacks were stored in a vector, and the crash was caused by `g_perf_metric`'s destructor trying to remove the callback from the already-destroyed vector. Later a97627e736ff352e031123519c799e65cc98b32c switched state changed callbacks to use `HookableEvent`, which is specifically designed to handle the case where a hook outlives its associated event. Since the workaround is no longer necessary replace it with a standard `EventHook`.
2026-03-07Core: Optimize RemoveHostPageTableMappingsJosJuice
This switches from an O(log(N) * M) algorithm to an O(N * log(M)) algorithm. This is advantageous because N, the size of `mappings`, is usually much smaller than M, the size of `m_page_table_mapped_entries`. RemoveLargePageTableMapping already did something similar, so we can even deduplicate some code between it and RemoveHostPageTableMappings. Speeds up Rogue Squadron 3 by roughly 3% on my PC.
2026-03-04DolphinQt: Save when closing settings windowJosJuice
If Dolphin crashes, changes that have been made to settings are often lost. This has been a minor annoyance for me when developing, but it has become a much bigger issue recently due to the problem where Dolphin freezes on shutdown for ROG Ally users. Instead of saving the config when certain arbitrary settings are changed, let's save the config when the user closes the settings window.
2026-03-03Merge pull request #14435 from Simonx22/fix/metal-early-stop-shutdownJMC47
Metal: Always run endEncoding on command encoders
2026-03-03DolphinQt: Improve Gecko code download failure messageSimonx22
2026-03-03Metal: Always run endEncoding on command encodersSimonx22
Fixes a macOS Metal crash when stopping immediately after boot starts. m_upload_encoder and m_texture_upload_encoder could be dealloc'd during shutdown before endEncoding could be called, which causes a Metal assertion failure. Co-authored-by: OatmealDome <julian@oatmealdome.me>
2026-03-02VertexLoaderManager: Fix crash caused by invalid array baseDentomologist
Don't set cached array bases to invalid pointers. If a game tries to set an invalid base just keep the old one, which might cause game problems but won't crash the emulator.
2026-03-02Merge pull request #14327 from ↵Dentomologist
Dentomologist/performancemetrics_fix_graph_size_and_spacing PerformanceMetrics: Fix graph size and spacing
2026-03-01DSU: Don't crash on bad hostnameTellowKrinkle
2026-02-28Merge pull request #14425 from JosJuice/android-wiimote-crashJMC47
Android: Fix Wii Remote connection crashes
2026-02-28Android: Use DeleteLocalRef more in WiimoteAndroidJosJuice
Doesn't matter a lot, but we're supposed to do this to be nice citizens.
2026-02-28Android: Fix Wii Remote connection crashesJosJuice
Users are reporting a crash at the point where WiimoteAndroid::IORead tries to use m_java_wiimote_payload. This commit solves the problem by making m_java_wiimote_payload a global reference. The code for setting up m_java_wiimote_payload has also been moved to the constructor just because that way it's impossible for it to run twice. (If the code as written were to run a second time, the old global reference would be leaked. ConnectInternal should only run once, so this is just to be on the safe side.) Fixes https://bugs.dolphin-emu.org/issues/13960.
2026-02-28Merge pull request #14418 from LillyJadeKatrin/retroachievements-wii-menuJosJuice
RetroAchievements - Close game on switch to null hash
2026-02-26Merge pull request #14317 from JosJuice/jit-cache-macro-loopDentomologist
Jit: Use RangeSet for physical_addresses
2026-02-25Send neutral stick positions when disconnected rather than down-leftJulien Bernard
2026-02-25Gcc adapter fixes (hotplugging, claim retries, shutdown, bad yields)Julien Bernard
2026-02-26AMMediaboard: derive TestHardware phase2 delay from tick ratenaari3
Use the existing system reference instead of Core::System::GetInstance(), and calculate the phase 2 scheduling delay from GetTicksPerSecond() instead of hardcoding 50000 ticks.
2026-02-24RetroAchievements - Close game on switch to null hashLilly Jade Katrin
Mistakenly thought the change media call would close the current game if the new media failed to hash. This wasn't the case so instead I'll close the current game myself. This fixes an issue where a default ISO would immediately load achievements when starting up the Wii menu.
2026-02-24DiscIO: Only allow alphanumeric ASCII in game IDsJosJuice
We often use game IDs in paths, so we should try to make sure path traversal is impossible in game IDs. Admittedly, doing any kind of real attack using the six bytes available in game IDs is unrealistic, but no game ID should contain non-alphanumeric or non-ASCII characters anyway. Might also fix https://bugs.dolphin-emu.org/issues/13982 by skipping converting between encodings for game IDs.
2026-02-24DiscIO: Move DecodeString to Volume.cppJosJuice
This had to be in the header back when it was templated, but 083faa8b made it not templated.
2026-02-24Cheat codes: Make newly added codes start disabled.TryTwo
They don't have the call to be activated immediately after being added.
2026-02-23Merge pull request #14407 from jordan-woyak/mag-card-fixupJMC47
MagneticCardReader: Minor fixup to writing card data.
2026-02-23Jit: Use RangeSet for physical_addressesJosJuice
This makes JitBaseBlockCache::ErasePhysicalRange around 50% faster and PPCAnalyzer::Analyze around 40% faster. Rogue Squadron 2's notoriously laggy action of switching to and from cockpit view is made something like 20-30% faster by this, though this is a very rough measurement.
2026-02-23Move RangeSet from Externals to CommonJosJuice
This is a very small libary, and as I understand it, it was more or less developed for Dolphin. This moves the two relevant files from Externals to Common, changes the namespace to Common, reformats the code, and adds Dolphin copyright notices. The change in copyright notice and license was approved by AdmiralCurtiss.
2026-02-22AchievementManager: APPROVED_LIST_HASH quality of life improvementsMartino Fontana
APPROVED_LIST_HASH is moved to a separate file, making tests compilation faster after changing it. The error message prints the hash in a way that it can be directly copy-pasted (though it still needs clang-format).
2026-02-21Merge pull request #14212 from cscd98/cast-funcAdmiral H. Curtiss
mingw: use reinterpret_cast for function→void* conversion to satisfy C++ standard
2026-02-21Merge pull request #14209 from cscd98/static-cast-fixAdmiral H. Curtiss
mingw: replace static_cast with reinterpret_cast as not permitted between void* and function params
2026-02-21AMMediaboard: Check for EAGAIN in WSAGetLastErrorSepalani
2026-02-21AMMediaboard: Improve recv/send log messagesSepalani
2026-02-21MagneticCardReader: Minor fixup to writing card data.Jordan Woyak
Ensure the 3rd track is written even if the 2nd track isn't. Moved GetHexDump helper function to StringUtil.
2026-02-21AMMediaboard: extract TestHardware "TEST OK" magic numbers to named constantsnaari3
Replace raw hex literals with TEST_OK_WORD0/TEST_OK_WORD1 constexpr constants and consolidate the endianness explanation at the definition site.
2026-02-21AMMediaboard: fix TestHardware string endianness in legacy Execute pathnaari3
The legacy Execute1 path (offset=0, length=0) was using Write_U32 (big-endian) to write the "TEST OK" status string. However, the PPC display code in segaboot reads this buffer with lwz followed by manual bswap32, so the data must be stored in little-endian. Use Write_U32_Swap to match the other two TestHardware paths.
2026-02-21State: bump version to 178 for Triforce NETWORK TEST command handlingnaari3
2026-02-21AMMediaboard: add Triforce NETWORK TEST supportnaari3
Implement the MediaBoard commands and response protocol needed for the segaboot NETWORK TEST to pass: - TestHardware (0x0301) two-phase response via CoreTiming: phase 1 echoes test_type with 0x80 acknowledgment flag, phase 2 sends result with testStatus=2 and checkProgress=100 - GetNetworkConfig (0x0104) with trinetcfg.bin read intercept - Separate Execute1/Execute2 last-response buffers to prevent cross-clobber on the shared s_media_buffer - Generic 0x80xx cleanup command acknowledgment - Network config persistence for SET IP ADDRESS
2026-02-20CheatSearch: Add ability to breakpoint the selected lines.TryTwo
Adds three options, on read, on write, and both. Always Breaks and Logs.
2026-02-20Merge pull request #14387 from ↵Jordan Woyak
Dentomologist/cheatsmanager_update_tabs_on_creation CheatsManager: Update code tabs on creation
2026-02-20Merge pull request #14402 from sepalani/tri-osd-bindJordan Woyak
AMMediaboard: Replace bind PanicAlert with OSD message
2026-02-20Merge pull request #14395 from sepalani/tri-connectJordan Woyak
AMMediaboard: Add more connect log messages
2026-02-20Merge pull request #14394 from sepalani/tri-logJordan Woyak
AMMediaboard: Add more log messages
2026-02-20DolphinQt: Restore log font current index accurately.cristian64
The logic in the code was deliberately avoiding index `2` (**Selected Font**; the debug font) by using `std::min(index, 1)`. Presumably, the reason was that there was no debugger in Qt version of Dolphin at the time. Test plan: - Select a debug font via the **Options > Font...** action. - Show the **Log** tab via the **View > Log** action. - In the **Log** tab, choose the **Selected Font** item in the combobox. - Restart Dolphin. **Without** the patch, the **Monospaced Font** item is wrongly selected in the combobox. **With** the patch, the **Selected Font** item is now properly restored from the saved settings, and the selected debug font is correctly used in the log messages.
2026-02-20Merge pull request #14335 from TixoRebel/joycon-configJMC47
Core: Add SDL Hints settings
2026-02-20Add new window to configure SDL hints and store them in the main ini fileAndrew Strauss
Signed-off-by: Andrew Strauss <astrauss11@gmail.com>
2026-02-19Merge pull request #14343 from TryTwo/toggle_breakingDentomologist
BreakpointsWidget: Add option to toggle all breaking
2026-02-19Debugger/ BreakpointsWidget: Add option to disable/enable all breaking ↵TryTwo
without affecting individual breakpoint enabled states. Allows you to quickly stop breaking, play the game, then re-enable breaking. useful if you have many active breakpoints, but need to run the game.
2026-02-20AMMediaboard: Replace bind PanicAlert with OSD messageSepalani
2026-02-19Merge pull request #14344 from TryTwo/cheatsearch_work2Dentomologist
Cheat Search: Add ability to delete items and fix duplicate commands