Releases: stenzek/duckstation
Releases · stenzek/duckstation
Latest Preview Build
Latest Rolling Release
Commits
- 060056e CPU/RISCV64: Fix gte_completion_tick store in EndAndLinkBlock (#3702)
- 26fda0b CPU/Recompiler: Don't clobber downcount in GTE blocks
- 242182d System: Use achievements game icon for loading screen
- c5fdea1 ImGuiManager: Remove redundant cast
- 401a0ba GPUTexture: Don't assemble vector in GetSizeVec()
- a9a5d20 FullscreenUI: Free up more bytes in locals
- 6f6fe97 FullscreenUI: Add debug destructor
- 26d7e39 Achievements: Fix indicator scale not applying to text
- d6dca9c Achievements: Increase indicator horizontal padding
- c82f4b8 Achievements: Add missing coordinate floor() in a couple of places
- 088f057 FullscreenUI: Add background blur to notifications/menus
- 8d01053 Achievements: Add pinning of measured achievements
- 7deb99c FullscreenUI: Fix crash when changing range cheats
- db809fa FullscreenUI: Fix range cheats not being completely removed
- 3066a38 PostProcessing: Fix inconsistent unscaled input during reload
- 78a69cd PostProcessing: Set unscaled input based on first enabled shader
- 98a9aaa SettingsInterface: Replace simpleini with built-in parser
- ab1fd51 dep: Remove simpleini
- bc3b6fc Common: Add missing functions for SSE2 vector implementation
- 49219b7 GPU/HW: Fix bogus 'resolution set to 0x0' message
- 0398090 Installer: Fix incorrect executable name on ARM64
- 3ec7a4f CMake: Core link to vixl/biscuit should be private
- cbc6a16 VideoPresenter: Reuse blur target for transitions
- f7f93cc InputManager: Support localizing device names
- b20f114 SDLInputSource: Make button/axis labels controller type aware
- 7b2fb0f Achievements: Clear OSD state before rc_client_unload_game()
- 20dd675 FullscreenUI: Fix previous window not cleared on shutdown
- 7603a5a FullscreenUI: Fix concurrent achievement+leaderboard hotkeys
- 2067b5a Qt: Zero a few spacer size hints
- 70d655a FullscreenUI: Reset focus when switching to same main window
- 05240c5 SDLInputSource: Use constants for motor indices
- 3d1f479 XInputSource: Use constants for motor indices
- 5bd747b SettingsInterface: Make strings the only virtual type
- a697ab9 Settings: Use string_view for parsing types
- cc7e03c Settings: Use case-sensitive comparison when loading
- 6991e61 INISettingsInterface: Use case-sensitive sections/keys
- 5d898f8 FullscreenUI: Avoid calling EnumerateDeviceEffects() on video thread
- 23d2060 Qt: Avoid InputManager calls for binding widgets
- bf292dd FullscreenUI: Avoid calling EnumerateDevices() on video thread
- 818476f InputManager: Add thread assertions to public functions
- 2f211dd Qt: Remove HasAnyBindingsForKey() call on double click
- c728108 InputManager: Remove main mutex
- 607cc7e ShaderGen: Fix compile error with OpenGL ES
- 1cb2ad5 GameDB: ICache for Resident Evil 1+2
- 19a165a GPU/HW: Fix draw rect not updating in FF8 truncation workaround
- 14ff42c GPU: Fix gsvector_nosimd -Wnontrivial-memcall warnings (#3704)
- 8a7db2a dep/imgui: Fix LoongArch64 compile
- db0de91 dep/rapidyaml: Fix LoongArch compile
- 9ca9930 dep: Add lagoon
- c41cd79 GPU: Fix blend32() template for non-SIMD path
- f6d5267 Common: Add LoongArch support
- c1ae04a CPU/LoongArch64: Add recompiler
- 87ce392 CPU/LoongArch64: Don't clobber downcount in GTE blocks
- 1c643d7 Achievements: Add toast when achievement is pinned/unpinned
- d83dc3f Qt: Add 'Dark Ocean' theme
- 78f2867 Scripts: Fix regtest runner
- 684d24b FullscreenUI: Display PS/Xbox button icons based on current device
- 8764857 FullscreenUI: Use BackgroundHighlight for button hover in choice dialog
- cad17e8 FullscreenUI: Show 'Scroll Page' in footer legend
- 3c3f9e3 CI: Drop libc injection hack
- 4acd4a0 CI: Remove AppRun hook from cross AppImage
- ec5e676 CI: Update to latest AppImage utilities
- fedd294 CI: Only build Qt frontend for cross jobs
- 7b50681 CMake: Always build Qt interface
- 98e9db7 GPUDevice: Drop SDL window type
- dbfe921 OpenGLDevice: Remove prerotation hacks
- 1dacb13 FullscreenUI: Fix achievements hotkey hang with VSync on
- 47dc3ce CI: Verify hashes of dependencies
- c38b99a VulkanDevice: Fix duplicate check for VK_KHR_get_surface_capabilities2
- 06708e0 GPUDevice: Fix false error logged with OpenGL
- 335f6b6 Settings: Ensure INI gets saved in logical section order
- 770bebf Settings: Remove empty sections before saving
v0.1-10903
Commits
- add30da GPUDevice: Move present result to global namespace
- be8f38b ImGuiManager: Transition texture layout after font update
- 92b7cb9 Achievements: Prefetch next achievement badge on unlock/start
- 156837e Scripts: Remove redundant packaging subdirectory
- 3072e65 CI: Don't compress already-compressed artifacts
- dcb3e36 CDImage: Support loading CloneCD images
- fdd724f CDImage: Make MDS class name consistent with others
- 6464faf XInputSource: Fix icons not displaying
- 5d46cca XInputSource: Add missing break in GetCurrentValue()
- 5707977 XInputSource: Fix inverted motors in ConvertKeyToString()
- 3248d94 XInputSource: Support SCP XInput Bridge
- af5ec7f FullscreenUI: Prefetch 3 scrolls worth of badges in list
- 0494848 FullscreenUI: Remove redundant is_initialized variable
- dc31d7d HTTPDownloader: Log time for each request
- 2bccb29 Achievements: Add option to prefetch badges
- 5b23956 README: Add mention of CCD images
- dda54ad FullscreenUI: Immediately pause on core thread on menu open
- 2a4daa7 Achievements: Default badge prefetch to enabled
- 19b618d FullscreenUI: Fix incorrect background rect bounds
- cdf6d5b CI: Use prebuilt dependencies
- 9834234 README: Update build instructions
- 89bcb51 Qt: Fix hardcore disable popup not showing when loading from menu
- 0eadf14 CMake: Report CFLAGS in summary
- 18e1d11 CMake: Remove unused files
- e1f824a CMake: Remove unnecessary warning disables
- 3929e58 CDROM: MotorOn should fail if motor already on
- fd7d4a3 CDROM: Set motor on bit immediately on MotorOn
- 5991721 Common: Return rvalue reference from Error::TakeDescription()
- 939d02c System: Handle corrupted save states when resuming
- 1f9122c Common: Add BumpUniqueStringPool
- 96864e1 ImGuiManager: Fix empty slot message in save state selector
- 116bfa9 Qt: Use custom style sheet for all themes
- 18962a2 Qt: Support loading custom themes
- 51dcde7 Qt: Remove some unused setting binders
- 700467f Qt: Disable 'Disable Style Sheets' button when unavailable
- 762d96c Misc: Set more text formats in gitattributes
- a10d7f6 Qt: Add missing active text color for menu/tabs
- e62de23 CPU/PGXP: Allocate storage based on active RAM size
- a013b7c Qt: Add note to enable mouse mapping for lightguns/mouse
- fba9913 Qt: Tidy up mouse controller view
- 4ebd181 Spanish (Spain) translation update (#3700)
- 395dc07 Atualização - Português do Brasil (#3701)
v0.1-10861
- 1feea43 Achievements: Make GameHashToString() public
- 72561b5 FullscreenUI: Add missing error parameter to RasterizeSVG()
- f0709ae Qt: Use _L1 string literal where appropriate
- ce83fb8 Qt: Hook resume state button up to confirm dialog
- ca59d79 VideoThread: Fix mismatch between fullscreen_state and real state
- 740998b Settings: Don't write OSDPersistentDuration to ini
- 24c43ab FullscreenUI: Fix scroll not resetting in split window
- 7bcc0a7 Qt: Remove redundant lambda
- 0f81e59 GameDB: Add sortName for NBA Live games
- e50acca Qt: Annotate missing BIOS images
- 2d72792 Qt: Allow game to override state media path when resuming
- 0cf818e Qt: Combine a couple of summary page fields
- 14d49a4 Qt: Display content and RA hash in summary page
- 913aaf6 Settings: Remove persistent OSD message type duration
- 7962b9f Achievements: Don't read g_settings on video thread
- d1e14af FullscreenUI: Update translation strings
- 6bb397a FullscreenUI: Adjust achievements pause menu overlay margins
- 8d359a6 Achievements: Add scale options for notifications/indicators
- 1b2bcfd Common: Move BCD helpers into separate file
- e6238da Settings: Add and use saturated int retrieval helpers
- 82f36ad SettingsInterface: Move functions to .cpp file
- a52dcc7 Data: Update SDL game controller database
- 9edc3c5 Qt: Set widget enable on achievement groups
- 71e0e61 Qt: Order Automatic achievement scale option before OSD
- 41708de FullscreenUI: Add vertical padding to split windows
- 234f263 FullscreenUI: Fix one-frame flicker when changing settings pages
- dd3d7d3 Threading: Backport thread ID not getting set
- 890cde0 Achievements: Add "Unlocked in Softcore" bucket
- f91e996 Achievements: Fix spectator mode not applying while game active
- da2fb9a Achievements: Fix only core subset showing in leaderboard view
- 2339b23 FullscreenUI: ResetFocusHere() doesn't need to return boolean
- 10b96b9 Achievements: Reset bucket collapse on window open
- 4f6c42e Data: Add additional PromptFont glyphs
- 0d0bd69 Mini: Set fullscreen display mode on "windows" on kmsdrm
- d5eb3e1 GPUDevice: Enumerate fullscreen modes if using SDL
- 7a0fee0 FullscreenUI: Fix mode list not populating on default adapter
- 91ba5ab GameDB: Add NeGconRumble to a bunch of supported games
- 5add36e GameDB: Add sort names for NFS/NASCAR games
- 3b17273 CMake: Ensure resources directory exists before rcc
- 6a4ae21 VulkanDevice: Destroy context on zero refs with SDL window type
- 9f94d6b OpenGLDevice: Fix incorrect SDL MakeCurrent()/DoneCurrent() usage
- 5a7c855 FullscreenUI: Use command/option key icons on MacOS
v0.1-10819
- 66956de GPUPresenter: Avoid empty viewport on blank deinterlace
- 0614262 GPU/HW: Fix inconsistent device state after blank deinterlace
- 4b30147 D3D12Device: Avoid render pass end when setting same target
- af305d3 D3D12Device: Avoid second fence wait for infrequent readback
- 5e6a18a VulkanDevice: Wait before starting next command buffer
- d67b9b9 OpenGLDevice: Don't use glGetTextureSubImage() on NVIDIA
- 1a81adb GPUThread: Fix crash concurrently changing renderer and deinterlacing
- 6f9752a VulkanDevice: Simplify EndAndSubmitCommandBuffer() a bit
- c76ee85 VulkanDevice: Don't submit during image acquire
- d3bff97 Settings: Default optimal frame pacing to enabled
- 4281de3 Qt: Make settings update check ignore skipped updates
- ba180d6 Qt: Add option to edit game list serials
- 1379d3a Qt: Fix recommended value for Optimal Frame Pacing
- 60ab6a9 Qt: Reflect new defaults in settings help (#3687)
- 81bee31 ImGuiManager: Fix possible memory leak on shutdown
- dedc590 ImGuiManager: Allow renderer switch without destroying context
- 65bb5bc ImGuiManager: Adjust fixed-width font weight based on DPI
- ac8502c ImGuiManager: Swap fixed-width font to Google Sans Code
- 91b0ed9 ImGuiManager: Use text font for frame time overlay
- 2ac1d89 Spanish (Spain) translation update. (#3688)
- 4d6932e GameDB: Tighten timing in Wing Commander III
- 6c013db ImGuiManager: Increase font weight for OSD settings
- 1608a6f FullscreenUI: Adjust footer item spacing
- 3a53a89 Qt: Fix double save of custom serials
- ac1e6b5 GameList: Fix some interactions with custom serials
- 21dfa47 GameDB: Disable auto analog in
Mizzurna Falls(#3689) - dcebea1 GameDB: Adjust cropping in FF8 and FF9
- 83b3a2e GameDB: Adjust cropping in Threads of Fate
- 0a9a77c Qt: Move OSD and Capture settings to their own sections
- 0f35e4e Qt: Drop workaround for Classic Windows theme change bug
- a0fbffe Qt: Don't store unneeded references to settings pages
- 1f672d3 ImGuiManager: Fix spacing for media capture timer overlay
- 38c6c3e Qt: Improve grouping of OSD options
- dc69e3f Qt: Fix conflicting accelerators in Settings menu
- 2da35d2 dep/rcheevos: Prioritize unsynchronized bucket over recently unlocked
- 8643068 Achievements: Fix unsynchronized achievements missing from list
- ddcc2e0 Achievements: Add missing lock to GetPauseThrottleFrames()
- 499c08a Achievements: Warn on shutdown when unlocks are unconfirmed
- fb682a9 Qt: Fix incorrect tab indices in graphics settings
- 6be96f6 GameDB: PGXP CPU for World's Scariest Police Chases
- 5c0a227 Qt: Ensure fields in MemoryViewWidget are initialized
- 27afb31 Achievements: Fix overlap when >1 leaderboard tracker active
- 7e48486 Achievements: Reduce the size of challenge notifications
- df75737 WindowInfo: Move prerotation enum to global scope
- 9b299fe GPUPresenter: Convert to namespace
- 370df62 Qt: Add option to use the system font on Linux
- 63102e9 Qt: Avoid locals symbol name clash in qtthemes.cpp
- a04a312 GPUThread: Rename to VideoThread
- 208a8a5 GPUPresenter: Rename to VideoPresenter
- 219ee20 PostProcessing: Fix depth buffer always being requested
- 31f9be1 VideoPresenter: Simplify post-processing settings update
- 0bbb5b7 Qt: Fix tab order in OSD settings again
- 7c4bcef Atualização Português do Brasil (#3691)
- 4c523a6 VideoThread: Rename some missed references
- 92b888f VideoThread: Fix overreserve in command allocator
- 5516f7a Misc: Use 'Render Window' consistently instead of 'Display Window'
- 335145b VideoThread: Avoid possible null presentation in PresentFrameAndRestoreContext()
- 25211c6 VideoPresenter: Move present throttling from VideoThread
- 36788b8 Misc: Eliminate unnecessary atomic thread fences
- c28282c Qt: Always use FullscreenUI for confirm message if system valid
- a875254 Controller: Add option to use right analog as trigger buttons (#3692)
- d45e121 Qt: Remove QtUtils::GetRootWidget()
- 8e5ec64 Qt: Adjust window bring-up order
- 6f39b2f Qt: Fix fixed-width font not loading
- 2fd81f5 ImGuiManager: Make margins consistent across OSD/achievements
- f4b3d1c FileSystem: Add SetPathExecutable()
- 0aa6e1e Qt: Add popup to create desktop file on Linux
- 1330184 Qt: Fix log window appearing in front of main window on KDE
- f245357 Qt: Move state into QtHost namespace
- a87d2ae Qt: Fix application name in task switcher on GNOME
- 130494f Qt: Allow changing executable with drag/drop
- 7235494 VideoPresenter: Ensure skipped_present_count is zeroed
- 467f2fa StateWrapper: Avoid unnecessary include
- e509092 Common: Fix string tests building
- 5cf8d08 GameDB: Max speedup cycles for Disruptor and Rescue Shot (#3693)
- 511058d Qt: Fix crash on Linux when opening game properties (#3694)
- 0aca150 Common: Fix incorrect float rvalid()
- 1cfde39 Deps: Version updates
- 44e055b Misc: Use delta from initial value for input binding
- c13d04e InputManager: Remove Sensor source
- 668a930 SDLInputSource: Add sensor (accelerometer) support
- d66db16 Qt: Add controller sensor mapping
- 0f280ac InputManager: Remove padding from struct
- 2924126 Qt: Avoid rich text in message boxes (#3695)
- b330b3e CMake: Simplify Metal shader build
- fa4d084 CMake: Simplify resource copy
- 566681f D3D11Device: Add missing push constant buffer destroy
- d6915fb D3D11Device: Fix assigning integer to boolean
- b20c2b2 Common: Add additional unit tests
- 7db0555 CMake: Bump version requirement
- 9630464 CMake: Remove pointless flags change
- a64272b PostProcessing/FX: Fix incorrect min_point_mag_linear_mip_point translation
- 87c4b66 OpenGLDevice: Fix error reporting in CreateFramebuffer()
- 6685668 OpenGLDevice: Fix error reporting in SetSwapInterval() and SetVSyncMode()
- ca49dd1 HTTPDownloader: Fix error description for WinHttpOpenRequest()
- 84ff25e HTTPDownloader: Fix return value of curl write callback
- e81fa84 HTTPDownloader: Add missing error status assignment
- c60e3aa VideoThread: Fix core thread view missing surface format
- fbf4cdd dep/rcheevos: Bump to dedfe2d
- 7df574c Achievements: Fix notification icon opacity
- 86dcbc6 Achievements: Remove hidden leaderboard check
- 2bd0a6a VulkanDevice: Fix incorrect stage bits for compute PushUniformBuffer()
- 3a54524 VulkanDevice: Add missing scissor clamp in SetInitialPipelineState()
- 59aeb1e VulkanDevice: Fix query index in WaitForCommandBufferCompletion()
- d8b8897 Qt: Reverse window open order on all Wayland platforms
- fcd3f97 README: Update resource overrides section
- 186d558 FileSystem: Check fclose() for WriteBinaryFile()/WriteStringToFile()
- 22c8d91 Installer: Add windows installer program
- 4756b17 Installer: Add Windows uninstaller program
- 7e4efbf CI: Generate Windows installers
- 5bf65fe Installer: Calculate estimated size for uninstaller entry
- 43cf1d9 Installer: Share progress callback with updater
- dc78763 Spanish (Spain) translation update (#3696)
- faf988b System: Match console region to BIOS region when starting BIOS
- bcd7a43 InputManager: Fix typo in variable name
- ab959a5 InputManager: Always call SetHook()/RemoveHook() on core thread
- 653d04c InputManager: HasAnyBindingsForSource() shouldn't check subtype
- 682c9c6 InputManager: Only enable sensor polling if there are bindings
- 372e1f3 InputManager: Fix needing double press for button binding
- 0094344 README: Add links/instructions to Windows installer
- 016c08b GPU/HW: Use clamped rect for sprites-as-fills
- 0b7d3ce PostProcessing: Correctly update stage count when removing/clearing stages (#3698)
- 14decb1 Atualização Português do Brasil (#3697)
- 1a60725 System: Fix game settings not deloading after shutdown
- 8c669e3 VideoThread: Simplify reconfiguration
- eda65a6 PostProcessing: Fix texture hazard when stages disabled
v0.1-10693
Commits
- e41ca32 AudioStream: Fix changing stretch mode without buffer change
- a7d29da System: Clamp typical time to frame period on MacOS
- abed81d GPUDevice: Use present instead of current time for skip logic
- 71f46cf GPUThread: Update core thread window size on core thread
- 7c0e4d3 Qt: Forward mouse events through core thread
- 4ec6ff7 InputManager: Remove second source of truth for window size
- ff0ad1b System: Rewrite present skipping
- 9eb092c Qt: Detect refresh rate change when screen changed
- 0058441 Updated Swedish translation (#3685)
- c425511 MediaCapture: Remove stream ID check in ProcessVideoEvents()
- 525dba5 GPUDevice: Use sorted array for storing shader cache entries
- 39634b3 FSUI: More consistent icons (#3686)
- 808d111 GunCon: Don't read ImGuiManager state
- a44f202 ImGuiManager: Remove another source of truth for window size
- 0c1f61f FullscreenUI: Add option to swap gamepad confirm/cancel buttons
- 962454b Qt: Fix double invoking of mouse wheel/button events
- 4800a4e PostProcessing: Avoid creating zero-sized intermediate targets
- 7f7d827 GPUPresenter: Avoid NaN sized target during loading
- ec22863 CocoaTools: Add display link fallback for refresh rate query
- a57851f Qt: Fall back to QScreen if WindowInfo refresh rate query fails
- 322320f FileSystem: Backport 3-arg Path::Combine()
- 06897cd Qt: Move windows data location from Documents to AppData
- e851c66 Common: Remove MemorySettingsInterface
- 2969226 Qt: Allow parenting updater to settings dialog
- f18aaee Qt: Use QPlatformTheme for Cancel
- fb474e8 Qt: Relabel 'Reset Game' as 'Restart Game'
- ce5b358 README: Update Mac installation instructions
- c1ff163 Misc: Replace more 'reset' strings with 'restart'
- 9a24913 FullscreenUI: Remove now-unused host file selector functions
- 07f2fa8 Achievements: Reload game when resetting after disc swap
- 75aba0d GPUThread: Fix core thread window info not updating on fullscreen
- 424a8e7 Cheats: Fix aspect ratio not updating on change
- d9e442e GPUDevice: Don't duplicate fullscreen modes
- c41eeda Achievements: Fix almost there/active challenge showing in all subsets
- e26ad17 dep/rcheevos: Fix silent URL truncation in new functions
- bd1b660 dep/rcheevos: Destroy parse state in rc_find_next_classification()
- 66bfc4b Achievements: Increase padding for leaderboard loading indicator
- fa84d9e Qt: Default MacOS fractional window scale to disabled
v0.1-10655
Commits
- c126ee7 FullscreenUI: Fix EndFullscreenWindow() inside conditional
- cd68847 FullscreenUI: Settings changed fields don't need to be atomic
- 23e57f8 FullscreenUI: Add 'Split Windows'
- 3952477 FullscreenUI: Use split window for controller settings
- cb1e545 FullscreenUI: Wrap navigation in split windows
- a188633 FullscreenUI: Don't clear transition when preserving state
- beaf01c Qt: Fix ReportFatalError() returning
- 723fb02 Qt: Fix reshade shader icon in light themes
- d9fa8d1 FullscreenUI: Use dummy for menu headings
- c5ce2f9 dep/imgui: Add ImGuiChildFlags_NoNavCancel
- 6c9277d FullscreenUI: Improve split window UX
- 9dcef86 FullscreenUI: Use appropriate icon for console settings
- bc2a2ba FullscreenUI: Fix background alpha for achievements user heading
- db46413 FullscreenUI: Use channels for background/highlight/foreground
- d54de02 FullscreenUI: Don't show ports in game settings by default
- 454d332 FullscreenUI: Hook up L2/R2 to page up/down
- a83ccdc FullscreenUI: Fix focusing when pressing west face button
- 8f94a56 System: Add GetProcessUptime()
- 82ab3e8 Host: Add ReportStatusMessage()
- 5154ea9 Qt: Route status messages to OSD if fullscreen
- 56cbbb1 InputManager: Don't display controller connected for initial 3 seconds
- 5637fc7 ImGuiManager: Run idle when OSD messages are present
- f5ebe1c FullscreenUI: Use horizontal buttons for resuming state
- 1431d5c FullscreenUI: Use horizontal buttons for message dialogs
- 896395b FullscreenUI: Tweak message dialog widths
- 249f9d0 InputManager: Avoid redundant core thread invocation
- a011b78 FullscreenUI: Fix per-game post processing settings
- 0813130 FullscreenUI: Reorder settings pages to match Qt
- f9bf0cb Qt: Make 'Clear Settings' in Game Properties clear ini
- 7d2377b GameDB: Max speedup cycles for Inuyasha and Monster, Inc. (#3679)
- 671751f Qt: Define Q_OBJECT for TextureReplacementSettingsDialog
- f7083f9 Qt: Fix singular form in a few translatable strings (#3681)
- 8048c05 InputManager: Fix raw input not registering
- 2cb7bac InputManager: Fix raw input device disconnect events not triggering on disable
- 991db9e InputManager: Remove default Pointer-0 device on raw input startup
- f901d71 InputManager: Don't use relative mode in raw input without bindings
- e52b7dd InputManager: Add 'Disable Background Input' option
- 2d8b7c8 FullscreenUI: Halve menu animation time
- 9cc8b0e InputManager: Apply 'Disable Background Input' to ImGui too
- 0c84baf Qt: Use portal file picker on KDE/GNOME
- d02382d GameList: Log image open errors on file scan failure
- 09926a3 GPUDevice: Update last presented time after present
- 3bff452 Qt: Add custom titles for disc sets
- 0912783 System: Add taint for memory card time travelling
- 1ec2801 Qt: Fix incorrect row for compatibility comments
- 8dc07e5 Qt: Use splitter in macro editor (#3680)
- 2db018b Qt: Convert text in analog/digital pad SVGs to paths
- 82947f0 Qt: Don't double-create the controller settings widgets
- 0c29d4e Qt: Remove empty rows/columns in controller settings
- 56fc9af InputManager: Default to using global sources in profiles/games
- 80993e9 FullscreenUI: Fix crash when hovering floating buttons
- a108fcf Hotkeys: Fix power off hotkey in achievements hardcore mode
- f222c50 Achievements: Raise leaderboard fetch size to 15/50
- 93a5663 Achievements: Make leaderboard notifications a little nicer
- f372a92 Achievements: Add active leaderboard trackers to pause menu
- d02df7c Achievements: Don't use visibility for leaderboard paging
- 18768bc Achievements: Use note area in more notifications
- bd44e36 Achievements: Use OSD messages for errors instead of notifications
- 98596dd GameDB: Set PGXP tolerance for
Vagrant Story - 0edd6e6 GameDB: PGXP CPU mode and max speedup cycles for
The Guardian of Darkness - a9bea9a Atualização Português do Brasil (#3682)
- ff889fc Qt: Fix overlapping group boxes in controller global settings (#3683)
- 6d61c54 Qt: Adjust Darker Fusion highlight colour
- 4c92dc1 Qt: Fix tab order in a couple of places
- 9882ef4 GPU: Fix ConvertDisplayCoordinatesToBeamTicksAndLines() with forced-progressive
- 3a0c489 GunCon: Add line/tick offset for position fine-tuning
- 2c8647d Achievements: Use rc_client_create_leaderboard_list() for hidden test
- e2266cd dep/rcheevos: Bumpt a4b9156 + #492
- ffe7ca9 Host: Move screensaver inhibit to host
- 8135aef Qt: Move window corner rounding out of PlatformMisc
- 9c07d9b CocoaTools: Move util functions to common
- 2463a5f Misc: Remove platform_misc.h completely
- 1c02bf0 Achievements: Fix progress bar being too short
- 3b57f43 Achievements: Don't duplicate subset title in list view
- ebb604e Achievements: Use secondary colour for active subset
- 1715143 Qt: Fix incorrect fractional window size in MacOS
- 54692a8 Qt: Only override with real/fractional scale on Metal renderer
- 70d2865 Qt: Fix auto updater half complete state on missing asset
- 8863c53 System: Fix inhibit state if option changed while paused
- 9c9bd21 Qt: Remove RemoveEmptyRowsAndColumns() helper
- 2c77eab Qt: Use nested layouts in controller settings dialog
- 2a82566 GPUDevice: Use separate variables for last/next present time
- 53e7cf5 System: Disable screensaver inhibit on Gamescope
- 4f37bc6 dep/rcheevos: Update rcheevos to v12.2.1
- c8abdcc FullscreenUI: Remove content start sound effect
v0.1-10570
Commits
- b805c43 Atualização Português do Brasil (#3675)
- 283478a Updated Swedish translation (#3676)
- 9e0e07f FullscreenUI: Update idle state after transition finishes
- 4ab3669 Qt: Set QT_NO_SIGNALS_SLOTS_KEYWORDS
- fa39e63 Achievements: Show leaderboard times as relative
- f2adc39 CoreAudioStream: Handle parameter changes without restarting
- 6c09ba4 Qt: Move time stretch settings into audio widget
- 64d7075 ImGuiManager: Use default icons when unspecified
- 5a32d19 CPU: Fix cop0 breakpoints triggering too late
- 2e659d8 CPU: Pack local state in struct
- 4522449 SoundEffectManager: Support converting bit depth
- cd9e3ff SoundEffectManager: Support converting float wave files too
- c02bcdc Qt: Add link to wiki page for changing sounds
- f9c2aea CPU: Fix incorrect EPC after cop0 breakpoint
- b1d1c76 CPU: Don't set cop bits on DBE
- bff1f47 CPU: Add cop0 breakpoint checks for coprocessor loadstores
- ace6cd2 Qt: Use temporary game list entry for properties of playlists
- a2f3d03 dep/imgui: Update to 69a501d
- 74a8e66 FullscreenUI: Fix incorrect state with per-game renderer setting
- 5428597 CPU: Add Host::ReportDebuggerEvent()
- f989a80 Qt: Fix initial state of debugger if opened while paused
- 5b5b6bb FullscreenUI: Avoid redundant transition
- 11331eb Deps: Bump to SDL3 3.4.0
- 3dcb73f Deps: Cherry-pick SDL3 f369e80
- f7e8349 Qt: Remove game info from settings
- 212b0e6 Qt: Display profile icon in achievement settings
- 4e0c421 Achievements: Allow changing position of overlays
- bb8179f ImGuiManager: Allow repositioning OSD messages
- 79f9bbe Qt: Hide size for directories in ISO browser
- 0c1cdd3 Qt: Fix notification/indicator location enable state
- d908b92 VideoPresenter: Textures should be uploaded before any draws
- 626d511 Qt: Fix help text for a couple of OSD settings (#3677)
- 0b3c2c3 Qt: Fix enable syncing of notification/indicator locations
- ad01f99 Qt: Polish sliders
- 2afc6cf Qt: Fix initial state of output latency slider
- 7d95949 README: Update deps list
- a8776a3 DynamicHeapArray: Don't resize if size is the same
- b287f00 ZipHelpers: Don't call zip_error_fini() on zip_get_error() object
- e0f97a8 CompressHelpers: Fix incorrect function call
- 1ef7ce0 Qt: Don't open dialog on shift-click for effect bindings
v0.1-10530
Commits
- 02a36c7 Qt: Prefer size from native OS over Qt
- 5cd5853 Achievements: Add type badges to list and wrap long titles
- 3f1ab1c SoundEffectManager: Upmix and resample sound effects when needed
- bca82e1 Achievements: Improve consistency of log messages (#3671)
- 1b9ef2c StringUtil: Backport helper functions
- fb932eb FullscreenUI: Don't use SmallString for URL templates
- 4b02270 Qt: Apply Wayland workarounds before creating QApplication
- f226581 Qt: Include time stretch latency in displayed maximum
- 83f5fdc Qt: Order volume controls before audio backend configuration
- 3ff1ea3 ImGuiManager: Extract out gradient rect function
- a725890 Achievements: Add easing to progress indicators
- 604b7ce Misc: Fix building with GCC
- 8db7cff InputManager: Remove hotkey list indirection
- a42df97 StringUtil: Use C++20 requires clauses instead of enable_if
- dea9ce3 StringUtil: Move most non-template functions to source file
- 091517a StringUtil: Move FromChars()ToChars() instantiation to source file
- 84e4aed dep/fmt: Update to v12.1.0
- 4c79ee8 CMake: Adjust fmt build macros
- d4c4ec5 CMake: Prefer private over public include dirs
- 170d4b9 Build: Don't make fast_float a public link for libraries
- f03bb5b Qt: Defer initial layout of game grid
- a584a5a CI: Set MacOS deployment target to 13.3
- 0a9bf5a StringUtil: Use to_chars() for floating point types
- 14625af Common: Remove fallback for missing heterogeneous lookup
- 67bb752 Cheats: Search local cheats/patches for multi-disc games
- 45dd500 Qt: Restore disassembly register previews in debugger
- 0ad425f GameList: Fix reporting of 'Yesterday' on Jan 1st
- 65de509 Qt: Fix spurious WinId change error on debug widget close
- 2258463 CDImagePPF: Implement parsing of undo data
- d7b2f2d README: Update minimum macOS version (#3673)
- c015893 CPU: Add COP0 register names to disassembly
- 632aa18 CPU: Don't raise #RI on write to read-only COP0 registers
- 43a4054 PlatformMisc: Fix screensaver inhibition on macOS (#3674)
- ae1bd27 Data: Update SDL game controller database
- 5c53fba Qt: Fix Wayland workarounds not applying
v0.1-10495
Commits
- 854edd5 Achievements: Save/restore state on setting changes
- a7637c5 Qt: Split log window into LogWidget and LogWindow
- 0aff702 Qt: Reduce indirect includes in mainwindow.h
- 962137f Qt: Move some settings around
- b6cd37c Qt: Add option to show log in main window
- 63d352b Misc: Fix move of constant values
- 52bd6e7 Qt: Clamp max upscale multiplier to 32x
- 4810b1c Log: Fix empty output with only main window logs enabled
- 4c97bad CMake: Fix Windows build
- 26b8fe0 MSBuild: Remove _CRT_INTERNAL_NONSTDC_NAMES
- a43e054 Host: Split into multiple files
- 57adcdd Host: Rename CPUThread/EmuThread to CoreThread
- f4ff36b Host: Move async tasks to host namespace
- bfb9ba1 Qt: Backport noreturn ReportFatalError()
- 461aaed ProgressCallback: Add message logging
- 22d8b6d GPUBackend: Fix infinite loop on state allocation failure
- d7c015a MSBuild: Fix non-reproducible path sneaking into binary
- 2935a3d Common: Add additional ryml helpers
- 471fba1 FullscreenUI: Fix stack use-after-free
- abcacee AudioStream: Split into source and backend streams
- 02384ac AudioStream: Move all streams to same log channel
- 132ca44 CubebAudioStream: Use a single shared context
- c0277db WAVReader: Make ReadFrames() return optional
- cf103e9 Core: Set correct log channel
- 8a7dd16 SoundEffectManager: Add system for playing short sound effects
- 7a85841 Achievements: Use SoundEffectManager instead of PlaySoundAsync()
- b1d5c42 PlatformMisc: Remove PlaySoundAsync()
- 0897dfc Data: Add navigation sound effects
- 3fe319d FullscreenUI: Add navigation sound effects
- b8e9385 WAVReader: Fix reading into non-data chunks after data
- c7c29d4 WAVReader: Add in-memory parsing
- a494477 SoundEffectManager: Add caching and async reading
- edd3df8 Qt: Fix noreturn warning in Host::ReportFatalError()
- fbdd268 Qt: Populate audio devices asynchronously
- 5a7acfe Qt: Populate graphics adapters asynchronously
- c3415c4 VulkanDevice: Rearrange fields for locality
- 5b789be GPUDevice: Extract texture format to global namespace
- f4c752a Qt: Extract window info functions to own file
- e13b9a0 WindowInfo: Extract type into global namespace
- 69458bd VulkanDevice: Persist instance throughout launches
- 41a000c Deps: Update Vulkan-Headers to v1.4.337
- a1aa038 VulkanDevice: Use KHR variants of surface/swapchain maintenance
- 9bcf23f GameDB: Set PGXP-CPU for Vagrant Story
- 822d756 CubebAudioStream: Add missing layout mapping
- 7bc32cd VulkanDevice: Swap EXT for KHR in structure type
- 9370642 Deps: Update rcheevos to v12.2.0
- 095fef5 GPUDevice: Extract enums to own file
- 56d79c7 GPU: Extract heavier helper functions to own header
- ad0312e Settings: Free up space in GPUSettings struct
- b55f404 GPU: Add option to crop vertex colours before modulation
- 88ca6cf README: Add instructions for resource overrides
- 4b9154b Hotkeys: Add hotkey to toggle texture modulation cropping
- 3253cc5 Atualização Português do Brasil (#3667)
- 3176473 InputSource: Remove before calling OnInputDeviceDisconnected()
- 25790d7 InputManager: Register for device notifications with XInput
- 1bc30de CI: Update actions
- ff747dd CI: Use ubuntu-slim runner for lint jobs
- 9aaaf14 CI: Stricter yamllint config
- 1820756 CI: Minimize workflow permissions
- e2aa1ae Qt: Fix handling of mouse double-click events
- e70ae0b Spanish (Spain) translation update 2025/12/25 (#3669)
- 6146769 Settings: Restore a few missing defaults in Safe Mode
- 5933489 ImGuiManager: Reduce possible false sharing when adding events
- 682a3b3 FullscreenUI: Only delete sound stream on full shutdown
- ef2cf6e System: Fix missing subchannel not blocking startup
- c20f8d1 Deps: Version updates
- 7c40177 Deps: Build Brotli
- 9904c5f FullscreenUI: Fix macro pressure/deadzone dialogs
- d2c8df9 FullscreenUI: Fix sound on mouse click for some popups
- c206bd6 FullscreenUI: Fix incorrect icon for macro buttons
- 21abd24 Deps: Ensure PDBs get generated for Qt plugins
- 739b073 CodeCache: Don't try to handle page faults when shutting down
- 213d3ef GPUDevice: Unload persistent libraries on shutdown
- 570a704 OpenGLContextAGL: Compile fix
- a4657fb Qt: Catch show events for resize too
- f07b726 Qt: Sync after creating widget on Linux
- 84ff881 Deps: Remove version number from FontAwesome header
- 6c46b0c Deps: Update FontAwesome to 7.1.0
- a2d95a1 FullscreenUI: Change a few icons
- fa23d16 Qt: Cache window handle for size updates
- bfa7085 Qt: Fix missing borders in separate render window
- c4ee79b CoreAudioStream: Ensure stream is destroyed before buffer