Skip to content

Releases: stenzek/duckstation

Latest Rolling Release

Choose a tag to compare

@github-actions github-actions released this 12 Aug 02:17
5fd3668

Commits

  • 381ac7d MediaCapture: Fix incorrect samples on buffer wrap-around
  • b3d594a MediaCapture: Remove Flush() method
  • 4f72f40 MediaCapture: Fix possible corruption in audio-only capture
  • 049437e MediaCapture: Resample audio when encoder doesn't support 44.1KHz
  • 8b9aaf7 MediaCapture: Display OSD warning when resampling
  • d33d3b8 Qt: Rework media capture menu
  • 6e0fb1e FullscreenUI: Add InputTextWithSuffix()
  • e2e4bae Settings: Ensure overlays directory exists in user resources
  • 56fa9dc Qt: Add refresh button to border overlay list
  • 12f012c Spanish (Spain) translation update 2026/07/27 (#3777)
  • dc75335 Scripts: Translation tools experiments
  • 551aaa4 RegTest: Fix compile error
  • 8747aa1 Atualização Português do Brasil (#3778)
  • 4a04d31 SPU: Fix volume sweep termination conditions
  • f6c4fe9 Achievements: Rename softcore to casual (#3779)
  • 2246697 BIOS: Add version information and filenames to list
  • 1454743 Qt: Allow empty recommended value in settings help
  • 30d351e Qt: Add CollapsibleWidget
  • 8dbc476 Qt: Add BIOS Installer and improve BIOS setup page
  • 351778e Qt: Update machine translations
  • 406f325 Qt: Fix BIOS summary not updating on language change
  • 9c7c23f Qt: Fix main window language not updating after setup wizard
  • 57b952a Timers: Improve emulation accuracy
  • 7c93a61 Qt: Further simplify BIOS setup wizard page
  • 0740169 Qt: Fix crash opening game settings
  • 202923d Qt: Correct some clearly awful translations
  • 7111f4c Update duckstation-qt_es.ts (#3780)
  • b5a990b MemoryCard: Use constants for address and offset mask
  • c42082c StateWrapper: Avoid heap allocation in FIFOQueue read
  • f3d0e84 StateWrapper: Avoid possible integer overflow on 32-bit systems
  • 865fd9e StateWrapper: Save contiguous FIFOQueue bytes in one memcpy()
  • 97400d2 StateWrapper: Clamp enum values to max
  • b147f1f FIFOQueue: Zero out head/tail when size reaches zero
  • e95e5a0 FullscreenUI: Right-align achievement type badges
  • 18147a1 GPUBackend: Fix possible unflushed draws with runahead enabled
  • 4d700e4 MDEC: Ensure direct FIFO writes don't overflow
  • 26fa2ee MetalDevice: Fix a few leaky object retains
  • c07bf47 CDImageCue: Validate bits-per-sample for wave files
  • ecbe3c3 MemoryCardImage: Don't over-enumerate directory frames
  • 76f01d8 Misc: Fix under-allocation in sjis2utf8()
  • d6d8a7b CDImageCue: Fix implicit truncation warning
  • e86af51 Deps: Update bundled ffmpeg headers to 9.0
  • 6d0feff Deps: Update to 20260805
  • 3fed119 MediaCapture: Default to H264 on all platforms
  • 12a4a26 Util: Avoid intermediate memory allocation in Shift-JIS conversion
  • 8a2c05c Image: Avoid integer overflow for dimensions
  • 99fc655 Updater: Fix possible path traversal during preprocessing
  • ebd0903 Updater: Fix possible infinite loop
  • 1fbfbb5 System: Fix implicit 32-bit truncation of screenshot size
  • 2c8e998 Spanish (Spain) editing pass - 2026/08/05 (#3781)
  • 6e242f5 Bus: Flush line buffer after 512 characters
  • ca5cc73 GPU: Add missing serialization of polyline buffer
  • f92b1a8 GPU: Add some simple checks to the polyline buffer
  • cd5e48a StateWrapper: Add max size checks to vector/string data
  • 2688a1d Achievements: Fix possible read past end of memory in callback
  • e48b3e3 Cheats: Fix possible OOB reads in malformed instructions
  • d3ff0b3 PSFLoader: Add missing header size checks when loading
  • a8a098a Common: Valid BCD functions should return boolean
  • b9cf3bb CDImagePBP: Add missing validation of BCD digits
  • 467d097 CDImagePBP: Check SFO index table count before reading
  • e073438 CDImageMDS: Fix a bunch of possible buffer overreads
  • 6651f4d ISOReader: Fix possible integer overflow in GetSizeInSectors()
  • f1029b2 AnimatedImage: Fix possible integer overflow of dimensions
  • f11b432 System: Add option to install BIOS when missing
  • 8778034 RegTest: Fix compiling again
  • e175c84 Bus: Pack state in struct
  • 5245a58 Settings: Fix invalid memory card values after install
  • 213c5b4 VideoPresenter: Use transfer pitch for screenshots
  • b3b57a2 VulkanDevice: Bind initial compute pipelines correctly
  • bbac943 VulkanDevice: Expose shared UBO binding to compute shaders
  • fc3e117 VulkanDevice: Synchronize compute image accesses
  • 4b5edbb VulkanDevice: Preserve mapped texture upload pitch
  • 6584add VulkanDevice: Fix download buffer barrier ranges
  • 037ee47 VulkanDevice: Validate imported host buffer memory
  • 668f39f VulkanDevice: Wait for presentation before swapchain teardown
  • 8462365 VulkanDevice: Address texture array subresources
  • 5f40f0a VulkanDevice: Select advertised surface format pairs
  • 40e1787 VulkanDevice: Fix legacy render pass attachments
  • d1720c0 VulkanDevice: Respect fixed surface extents
  • a8de757 VulkanDevice: Store compute specialization values
  • 7b690ec VulkanDevice: Reset descriptor builder storage
  • 69c5051 D3D12Device: Restore state after mipmap rendering
  • a8c9324 D3D12Device: Transition cleared compute targets to UAV
  • 6e2f06a D3D12Device: Bound persistent descriptor allocation
  • 2273890 D3D12Device: Create texture arrays with all layers
  • b5f821b D3D12Device: Transition all uploaded subresources
  • 402f920 D3D12Device: Set render-pass clear formats
  • a4a03c4 D3D12Device: Assert alignment of download texture footprints
  • 685cf83 D3D12Device: Order dependent compute UAV accesses
  • 7b15961 D3D12Device: Fix incorrect push constant root parameter index
  • 41ee402 D3D12Device: Track readback source usage
  • 48a1a06 Qt: Don't try to load HTTP URLs as animated images in game list
  • 2f9c587 FullscreenUI: Fix shared memory card selection
  • 4431915 FullscreenUI: Expose multitap memory cards
  • 6f704d4 FullscreenUI: Fix shared card name not disabling if unused
  • ee21478 GPU/HW: Don't miss updating read texture for recursive draws
  • f7797b5 Controller: Add 'Disable Simultaneous Opposing Cardinal Directions' option
  • 0697597 Controller: Make mandatory functions pure virtual
  • d92fe3d Data: Move all PromptFont glyphs to unallocated range
  • f04e08b GDBServer: Fix stop reply acknowledgements
  • 1a9379b GDBServer: Support continue addresses
  • a36b757 GDBServer: Support single-step addresses
  • c7324e3 GDBServer: Preserve unchanged resume state
  • 05166d1 GDBServer: Track the last stop signal
  • 3885778 GDBServer: Reply to invalid command arguments
  • aea3746 GDBServer: Validate complete packet fields
  • 4e09405 GDBServer: Apply register writes atomically
  • 7c279dc GDBServer: Invalidate code after memory writes
  • 8d7046a GDBServer: Bound remote packet sizes
  • 60a4ec3 GDBServer: Queue complete protocol packets
  • 54d074f GDBServer: Retransmit rejected replies
  • cba8588 GDBServer: Reject oversized incoming packets
  • d176e31 GDBServer: Support signal resume packets
  • fe32554 GDBServer: Restore run state after disconnect
  • c241852 GDBServer: Notify host when first/last client connects/disconnects
  • 0a00cbc GDBServer: Send invalid instead of zero values for extra registers
  • ac6d899 GDBServer: Disable nagle buffering on connect
  • 71c8850 GDBServer: Track breakpoint ownership
  • e3bea19 GDBServer: Expand watchpoint ranges
  • b147ed6 CPU: Enumerate actions for callback breakpoints
  • 8636021 GDBServer: Report watchpoint stop details
  • fa5e111 GDBServer: Use indexing instead of range-based for
  • 30fa5b4 Qt: Rename background controller poll to idle update
  • c7f282f Core: Use multiplexer to idle sleep for GDB server
  • 3bb39f4 ELFFile: Skip embedded PS-X EXE header segments
  • 2cf1086 GDBServer: Fix unused capture warning
  • cf24957 Qt: Implement mouse capture using CoreGraphics
  • e2b78d4 Qt: Tie relative mouse state to the active window
  • 8c1a202 GDBServer: Expose target memory map and registers
  • c8abcf4 GDBServer: Expose GTE registers
  • 8a96948 GPUDevice: Use same buffer sizes across backends
  • 89fb3ad DMA: Hardwire reverse direction for OTC
  • d59fcfb ImGuiManager: Support rendering Hebrew text
  • 8ec85e3 Qt: Update machine translations
  • 232c9ad Achievements: Make password login asynchronous
  • 2c32612 Qt: Simplify logout callback
  • 9f9009d Achievements: Ensure callbacks run on core thread for RAIntegration
  • 04f4f1b Achievements: Respond to RAIntegration reset request
  • 1f925f8 Misc: Add a couple of missing fmt/format.h includes
  • b2f9c8f Misc: Fix deprecated implicit conversion of fstring->string_view
  • c130fc1 dep/fmt: Update to v12.2.0
  • 5ee1d25 GameDB: Disable PGXP/WS in Vanark
  • 5fd3668 Achievements: Don't double-free login callback on request failure

Latest Preview Build

Latest Preview Build Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 11 Aug 09:25
5fd3668

Commits

  • Don't double-free login callback on request failure (Stenzek)

v0.1-11609

Choose a tag to compare

@github-actions github-actions released this 25 Jul 03:32
a233ec1

Commits

  • 9c79341 CueParser: Handle rarely-used commands
  • b89e1bf CDImage: Support reading non-mode2/raw sectors
  • 94f11f9 CDImage: Rewrite memory image (preloading)
  • 2880f88 MMPX Enhanced/Advanced clamp-to-transparent out-of-bounds mapping (#3774)
  • 31ab18b SPU: Wraparound is unlikely in ReadADPCMBlock()
  • 2cdf99d MediaCapture: Improve MF setup robustness
  • f383c3f MediaCapture: Remove AV1/VP9 options from MF list
  • e04d890 MediaCapture: Improve ffmpeg hardware encoding
  • 8612996 MediaCapture: Drop ffmpeg pre-7.x fallback
  • 0275d6d MediaCapture: Clear state before deleting output file
  • d484403 Qt: Capture dialog improvements
  • 35bcff1 Achievements: Animate unlock progress bar
  • 31c6829 FullscreenUI: Fix another debug assertion in single-threaded mode
  • 8a98ed8 FullscreenUI: Relax condition for closing immediately on resume
  • a421b5b FullscreenUI: Add 'None' transition effect
  • ad7519d FullscreenUI: Add queued texture recyling
  • 8a1dbb1 CDROM: Refactor invalid command handling
  • f8c9301 MSBuild: Remove non-existant file
  • e39033c Qt: Remove unused scripts
  • 9c35fdc MMPX :fix a transparent pixel bug & Adjusted floating-point tolerance (#3776)
  • 39fe70c CI: Bump actions/checkout to v7 (#3775)
  • b42e1c9 System: Slightly reduce memory save state struct size
  • 09467d5 Qt: Add icon extraction to memory card editor
  • 4730d79 Qt: Add icons to memory card editor buttons
  • 4069271 Qt: Make SetWindowRoundedCornerState() take an optional boolean
  • 5f9e7f6 Qt: Work around Qt fullscreen border bug
  • 42bf523 Data: Update SDL Game Controller DB
  • eb4b87c Achievements: Fix inverted condition for new game additions
  • a233ec1 Qt: Fix deprecation warning

v0.1-11580

Choose a tag to compare

@github-actions github-actions released this 08 Jul 01:59
e7f2f10

Commits

  • abf946c Update ukrainian translation (#3762)
  • c80552f Ukrainian translation v2 (#3764)
  • ab30d1d FileSystem: Make CopyFilePath() atomic
  • acfd60e Deps: Update to 20260702
  • 7be44a4 FullscreenUI: Fix incorrect effect in save state selector
  • 4c39eac FullscreenUI: Fix incorrect layout in ProgressDialog
  • 3441574 CDImage: Add some more helper functions
  • c3af062 Qt: Move image verification logic to GameDatabase
  • c05726a FullscreenUI: Add image verification
  • 685b2f7 FullscreenUI: Add easing to ProgressDialog bar
  • 4bc8ace Qt: Add CardRadioButton
  • 866d230 Qt: Add interface and view types to setup wizard
  • f31d99e Qt: Add animation to setup wizard
  • 7316cce Qt: Fix path in update-and-edit-english.bat script
  • bb3fede Qt: Update English plural translations
  • 9c1500f Qt: Add pause menu hotkey to setup wizard
  • 6d7163c Qt: Remove note about renderer from setup wizard
  • d910657 Qt: Don't save window position when hidden
  • 5dd559c FullscreenUI: Fix transition glitch when loading with no states
  • fce1b1e Cheats: Use .org as insertion point in assembly codes
  • 7bed00d Cheats: Support branch labels in assembly codes
  • 36a85ff Cheats: Expand test coverage
  • 7c93512 Cheats: Fix incorrect nullopt return
  • e79eb42 Cheats: Fix incorrect bitmask for 32-bit option values
  • 46efde0 Qt: Respect SH_Widget_Animation_Duration style hint
  • bf1801c Qt: Add missing singular forms to English "translation"
  • f9cf0db FullscreenUI: Fix styling of input string dialogs
  • 4616c85 FullscreenUI: Add custom title/disc set title/serial editing
  • a6d2417 FullscreenUI: Make game summary more compact
  • a0a4159 FullscreenUI: Fix overlap in modal progress with empty status text
  • 3968606 GameDatabase: Don't leave verify status text empty
  • e2a6547 FullscreenUI: Switch to list page on settings open from game list
  • 4f51c2d Qt: Warn when upscaling is enabled without PGXP
  • 0c87b07 Cheats: Accept ".org 0x12345678" and "0x12345678:" to set pc
  • c8e6dc5 Qt: Add settings-window class to setup wizard
  • c0074b9 Qt: Use item view for game list directories
  • 82518c5 Scripts: Extend translation validation/linters
  • 0835924 Qt: Update ja and zh-CN translations
  • d794641 Qt: Slightly increase settings category size
  • 584999e Qt: Give proper names to widgets in setup wizard
  • 79c08b6 Qt: Remove multiple sources of truth for supported formats
  • 5d46613 Achievements: Centralize profile URL building
  • fb99467 Qt: Match achievements login between settings/setup wizard
  • 674af51 Scripts: Relax rich-text checks in the translation validator
  • 90c96dc Qt: Fix a decent number of strings missing from lupdate
  • c46a1dc CI: Only validate changed translation files on PR
  • 3d544d4 Qt: Fix upscaling warning always showing in setup wizard
  • 7d4b97d Qt: Fix missing translation of default update channel
  • 12df0cd Qt: Fix duplicate message context in debugger error
  • c2f8d32 MediaCapture: Mark missing translatable strings
  • dd63541 AudioStream: Fix backend name not translating
  • 2cf04c9 Qt: Remove duplicate translation strings
  • 982a35e Qt: Cancel search when pressing Esc (#3767)
  • 7dde479 Update Spain translation (#3768)
  • bc057d9 Qt: Restore focus frame on QLineEdit with macOS native theme (#3771)
  • fa19df3 Update qttranslations.inl (#3772)
  • 2b1de62 Qt: Fix empty gamesettings ini being saved on close
  • 7651d28 Qt: Use simpler text widgets in cover downloader and game summary (#3773)
  • 6194f08 Achievements: Always identify game on startup
  • 59247c8 Achievements: Move game hash calculation to system
  • eeda898 Achievements: Separate login and progress requests
  • 43294ac FullscreenUI: Avoid unnecessary mutex lock
  • aa6b377 GameDatabase: Make track hashes private
  • 6931f89 GameDatabase: Fix revision not showing after verification
  • e7f2f10 Qt: Fix inverted delayed show condition in QtAsyncTaskWithProgressDialog

v0.1-11515

Choose a tag to compare

@github-actions github-actions released this 29 Jun 04:03
f1e0893

Commits

  • 4989211 dep/rcheevos: Bump to 9ade739
  • 63caefb dep/rcheevos: Add game list functions to rc_client
  • 2f3067a CMake: Use C99 to build rcheevos
  • eae17a4 Util: Add SQLite helpers and dynamic loading
  • 1230c83 Achievements: Update seed hash database
  • 98ec055 Achievements: Swap to sqlite-backed storage
  • cfde5bf Achievements: Move achievement pinning to database
  • e9bd041 Achievements: Add missing DB load check in a couple of places
  • cd7d35c SQLiteHelpers: Fix load failure on Windows
  • 3260ba8 Deps: Update to 20260614
  • a05171d Achievements: Fix crash in database updates on unknown media change
  • 1cce275 Achievements: Don't update game database on disc change
  • cdce0f7 CI: Bump to LLVM 22
  • a3dbace Hotkeys: Display reason why rewind is unavailable
  • 4144c1e GPU: Eliminate redundant type comparions in FillDrawCommand()
  • 77fe659 GPU: Inline draw mode into state struct
  • 15ad002 TimingEvent: Use const char* for name instead of string_view
  • d22950c GPU: Add disable texture/vertex lighting debug options
  • 9fe36d9 Misc: Reduce unnecessary struct padding
  • 31c2183 Qt: Use atomic for auto close flag
  • 4c698e7 Qt: Add menu item to refresh achievement database
  • f7ce14e ZipHelpers: Move to util project and source file
  • 97ae013 Hotkeys: Add 'Select Next Slot and Save State'
  • 9d0eec7 Qt: Disable global save states by default
  • 64f0689 Qt: Remove unused signal in SettingsWindow
  • 0dd6e5c Qt: Disable tab key navigation on game list (#3752)
  • c712c7b Qt: Fix keyboard navigation in game list after searching (#3753)
  • 8f6b1b6 FullscreenUI: Add reset option to directory selector
  • ef8a1fc Core: Fix setting reset wiping out user preferences
  • c0a8d9d FullscreenUI: Fix global states always showing in menu
  • b19347e Add complete Ukrainian translation for Qt interface (#3754)
  • cd0c961 Qt: Add Ukrainian translation to list
  • a64851a HTTPDownloader: Remove redunadant request \casts
  • 6357732 feat(shader): add Scanline Modern 4x2 adaptive retro filter (#3755)
  • 39cb9af update spanish translation (#3756)
  • e6694d1 Fix scanline flicker caused by precision drift at boundaries (#3758)
  • 553b133 Spanish (Spain) translation update 2026/06/22
  • 5828adf Qt: Normalize x in es-ES translation
  • cd7b4e5 Qt: Remove placeholder text from a bunch of ui files
  • 5be86a0 Qt: Remove redundant translation strings in capture settings
  • 99498ad MSBuild: Flag ts files as correct type
  • ba6ae23 Qt: Rework speed controls to be less confusing
  • 6dd972a FullscreenUI: Add zoom/slide transition effects
  • 1ffee71 Qt: Fix unused variable warning
  • b43807a CPU: Add MIPS assembler
  • efed642 Qt: Add 'Patch Instruction' and 'Nop Instruction' to debugger
  • 34df972 Cheats: Add 'Assembly' code type
  • b110639 Qt: Use fixed-width font for cheat code editor
  • 17f54f1 Qt: Fix missing styling of QPlainTextEdit
  • b4834b9 CPU: Add targeted icache invalidation
  • 74fac97 Cheats: Invalidate icache when writing (likely) assembly codes
  • 91273f2 CPU: Eliminate default branch in icache fill
  • 487a161 FullscreenUI: Add a couple of missing transition effects
  • 7d002d3 FullscreenUI: Fix a couple of issues with modal progress
  • ef84883 Sockets: Fix incorrect WSAStartup() call
  • 90c7040 VideoThread: Fix debug assertion tripping in single-threaded mode
  • 032d894 Qt: Update redump hash lookup URL
  • c22c1cb Settings: Load config for all memory cards
  • 75be553 Qt: Add configuration of multitap memory cards
  • 352bb0d Qt: Move save state backup setting to memory card page
  • eccc1e0 FullscreenUI: Add start-in-big-picture-mode option
  • 4a97765 Qt: Tidy up main() function
  • 73967c5 InputManager: Fix cloning multitap profiles
  • 9e4ef8b System: Only use fast forward volume for >1 speed
  • e409f88 Settings: Remove unused function
  • 57a77b4 GameList: Force refresh when starting disc change
  • ad705e7 Qt: Fix saved geometry being lost in nogui mode
  • 92d3f8e Atualização Português do Brasil (#3760)
  • a9cc936 Qt: Minor UI consistency fixes (#3761)
  • ffd9d40 Qt: Add Register button for achievements
  • fa1b4b7 CMake: Silence resource copy messages
  • f1e0893 System: Fix mute volume

v0.1-11443

Choose a tag to compare

@stenzek stenzek released this 28 Jun 03:56
7d19968

Commits

  • 2b1a6cf Qt: More appropriate icon for "Search on Redump" button
  • a901824 Qt: Improve icon consistency
  • 15d8f68 Merge pull request #3747 from Pesa/overlap
  • 00149a5 Qt: Disable buttons if controller port is empty (#3748)
  • 2f0cd4d DiscDB: Remove duplicate entries for some multi-disc games
  • 8dd88aa Qt: Make verify serial mismatch message clearer
  • e21bf74 Qt: Replace most _L1 usage with _s
  • 22ee4c0 CMake: Build with immediate binding/full relro
  • e23bc84 Achievements: Always prefetch game badge before achievement badges
  • 02a41fa GameDB: Add metadata to King's Field 3 - Pilot Style (#3749)
  • 8ac294d CDROM: Fix DisableReadSpeed() never having any effect
  • 2c6ac7d CDROM: Add manual control of lid state
  • 1d71915 CDROM: Show effective read speed in debug window
  • 18f581e CPU: Use ternary in CPU::WriteRegDelayed()
  • 667e114 CPU: Add branch hints to interpreter dispatch
  • 2b5baa1 CPU: Add more branch hints to interpreter
  • 0b700d1 GTE: Eliminate bounds check in dispatcher
  • 2f8e9a8 MSBuild: Enable strict aliasing for clang
  • c660f85 CPU: Use table lookup for mfc0
  • 1f7fcb8 GameList: Fix race condition when refreshing from two sources
  • 134f172 Achievements: Don't tear down persistent state on enable toggle
  • 8bf9562 Achievements: Fix hardcore toggle not showing summary
  • 944beca Achievements: Populate saved credentials in ProcessStartup()
  • cae2596 Achievements: Move init functions to private header
  • 1e6a006 Controller: Make center a distinct value
  • 24fb22a Controller: Move helper functions into their own file
  • 0ec7d2b Misc: Remove redundant static qualifier from force-inline functions
  • 3787849 Qt: Disable labels for controller setting descriptions
  • 2a32d70 Qt: Fix white-on-light icon colours in Classic Windows theme
  • c1adcb5 Qt: Fix initial icon colours in native theme
  • a4e3afc Release MMPX Advanced v3.2: Optimize and Clean (#3750)
  • f228b00 CDROM: Hopefully fix rare case of command event loss with states
  • 0e0ef21 System: Clear memory save states on reset
  • 09008bb Qt: Round round texcoords only applies to 3D
  • ba08a6f Qt: Hide FSUI theme and font settings from game properties (#3751)
  • 770cc58 Settings: Don't copy advanced/hidden settings to game
  • a7a5fae Qt: Fix warning in graphicssettingswidget.cpp
  • 76ca9b1 Qt: Suffix unavailable audio and video devices
  • fa167ca FullscreenUI: Add InputTextWithIcon()
  • b3e8543 FullscreenUI: Make ResetFocusHere() return a boolean
  • 632aab3 FullscreenUI: Use InputTextWithIcon() for achievements login
  • 1c89c64 FullscreenUI: Add search to game list
  • ce14eef ObjectArchive: Swap to HTTPCache log channel
  • 3a98566 FullscreenUI: Fix input text text colour in light theme
  • 6efef5b GameDB: PGXP-CPU for Digimon World 2
  • c1a9d78 RegTest: Fix crash on startup
  • c20a5c7 CPU: Copy entire value for zero shift cases
  • c8064e7 CPU: Fix flipped operands on PGXP shifts in recompiler
  • 0b4dfcd Settings: Remove unused field
  • b7b31ef Qt: Use 'Global' instead of 'Default' for inherited spinners
  • 2c527f4 Qt: Add reset buttons for tolerance/depth threshold
  • 7d19968 Qt: Fix memory leaks in SVG helpers

v0.1-11391

Choose a tag to compare

@github-actions github-actions released this 30 May 02:49
e8938f0

Commits

  • b0c277b optimization scanline-modern-ex.fx (#3733)
  • 7174242 GameDB: Various fixes (#3734)
  • 8dad651 GameDB: Add disc set for Persona 2 - Eternal Punishment (USA) (#3735)
  • 023c082 Qt: Update French translation by Corrigo
  • ecc46d2 Qt: Don't draw OSD messages with zero opacity
  • 12450a1 CDImageCCD: Support loading ccd+img without sub
  • 6b50869 Atualização Português do Brasil (#3737)
  • c71fdd6 GameDB: Decrease cdromMaxReadSpeedupCycles for Resident Evil 2 (#3736)
  • ee25306 AudioStream: Reset staging buffer position (#3738)
  • faa37fd CI: Bump Xcode to 26.4 (#3713)
  • f6da960 CI: Bump dependencies to 20260512
  • 7e98f17 GameDB: Force Round Texture Coordinates for Lego Island 2
  • dfc894c AudioStream: Tidy up more state reset
  • 7b63161 FullscreenUI: Fix unused variable warning
  • 33663c5 Qt: Work around broken build in latest MSVC versions
  • e1d9414 Qt: Make binding tooltips/multi-window localisable
  • a2a12da GPUDevice: Pack local state in struct
  • 22a3302 DynamicLibrary: Add symbol resolution helpers
  • 7ee8fbc DiscordPresence: Use ResolveSymbols()
  • 16d1dcb GPUDevice: Use ResolveSymbols()
  • 4c89ddb VulkanDevice: Use ResolveSymbols()
  • ad70cff MediaCapture: Use ResolveSymbols()
  • 59a3e09 MediaCapture: Eliminate global load mutex
  • 2225d36 GPUDevice: Pack shaderc/spirv-cross function pointers together
  • 1758f43 ImGuiManager: Use 1/255 as opacity threshold
  • 32af828 optimization scanline-modern shader (#3742)
  • 74cca15 Atualização Português do Brasil (#3741)
  • 833dd2c Update Russian translation (#3740)
  • dc5c5b7 GameDB: A few more fixes (#3739)
  • 77ecf99 MSBuild: Enable segment heap via vsprops
  • 2307ad9 CMake: Drop Win32/MSVC specific paths. Use MSBuild.
  • 5e57ff5 CDROM: Fix incorrect stat response in test command
  • 1c936c4 DMA: Enforce read-only bits in OTC channel control
  • fc72f17 CI: Drop unused input (#3743)
  • 8f818af GPU/HW: Remove unnecessary reference to backend in texture cache
  • f484af5 GPU: Merge gpu.cpp and gpu_commands.cpp
  • b123c8e GPU: Convert frontend to namespace
  • 4e0374e GPU: Slightly faster path for DMA writes
  • 3dd7497 GPU: Use InlineFIFOQueue
  • d89476a GPU: Fix incorrect bitmask for command primitives
  • e6b938a CDROM: Fix incorrect date in comment
  • f2e629f Achievements: Fix game not loading after token-expired late login
  • cdb26ee ImGuiManager: Return wants_keyboard for all generic inputs
  • 590605b FullscreenUI: Don't override existing window in PauseAndOpenMenuFromCoreThread()
  • e903ff7 HTTPCache: Remove downloader mutex
  • cf62df5 HTTPCache: Notify host when downloader is active
  • 5b446d7 HTTPDownloader: Add owner tracking to requests
  • 2091cb1 HTTPDownloader: Don't poll requests when cancelling
  • 6e58776 Achievements: Use request owner for waiting for server calls
  • de8f427 Qt: Avoid double cancellation in updater
  • 8ae5c85 Qt: Add AsyncHTTPRequest class
  • fc8446d Qt: Use main HTTP downloader for updater
  • 29ba624 HTTPDownloader: Convert to namespace
  • d7464e2 Spanish (Spain) translation update (#3744)
  • 2467a7b Timers: Correctly handle sync mode 0/3 for timer 2
  • 8347d1d Bus: Add option for enabling PCSX expansion region
  • fab306c FullscreenUI: Fix adapter list not updating on renderer change
  • 83a1b0c Deps: Update to 20260526
  • 2f4aafd Qt: Expose debugger and exit in toolbar
  • d7c2e77 Qt: Minimize controller SVGs
  • 68da2ea Qt: Add monochrome icon theme
  • 4cf5f38 Qt: Add ThemeSVGIconEngine to replace use of Qt SVG
  • d58bfaa Qt: Add more monochrome icons
  • 6fccb18 Qt: Remove separate colour icon SVGs
  • 65394a2 Qt: Remove unused PNG icons
  • 49f5f38 Qt: Don't use QIcon::fromTheme()
  • 538a82a Qt: Set isMask property on menu bar action icons on MacOS
  • 891ae3d ImGuiOverlays: Don't draw outline on status indicators
  • 9e39295 Qt: Add icon to empty game list page
  • f0ee834 FullscreenUI: Optimize SVGs
  • e4147da Qt: Optimize checkbox SVGs that were previously missed
  • f352619 Qt: Move ReadFileToByteArray() to QtUtils
  • 51457c2 Qt: Add SVGWidget
  • 099f8bd Qt: Rename ThemeSVGIconEngine to SVGIconEngine
  • dddc091 FullscreenUI: Fix double scaling of some UI elements
  • ad676f7 FullscreenUI: Preserve aspect ratio of SVG images
  • 8fe9077 Qt: Store controller images in main data instead of qrc
  • de69bc4 FullscreenUI: Add images to controller settings
  • 5ad980b Qt: Fix incorrect icon path
  • 70ec9c4 SPU: show friendly reverb mode names in debug window
  • a3f4a08 SPU: increase volume display precision in debug window
  • ef76374 SPU: Use display fractional volume for voices as well
  • 5a21a6c Host: Add icon to ConfirmMessageAsync()
  • 61b31b3 Update Azerbaijani Translation (#3745)
  • b429993 Qt: Move most recent migration to updater
  • 21c6ab5 Qt: Use SVGWidget for empty game list icon
  • 15bfa50 Qt: Make SVGWidget respond to palette changes
  • c1165ab MediaCapture: Fix Media Foundation refusing to load
  • 0073371 CDImageCue: Remove unused variable
  • bbde5c6 CueParser: Switch to fmt for errors
  • e401050 Qt: Preserve aspect ratio in SVGIconEngine
  • f93965b Qt: Handle icon state in SVGIconEngine
  • 11216cc Qt: Tint non-coloured disabled icons in SVGIconEngine
  • 872d609 Qt: Use SVGWidget for icon in debugging settings
  • 86b3c0e Qt: Fix missing monochrome in controller settings
  • e8938f0 Qt: Remove more unused icons

v0.1-11295

Choose a tag to compare

@github-actions github-actions released this 10 May 03:21
3a10c16

Commits

  • 3f50257 GPU/TextureCache: Dump textures to first disc directory
  • 23d79f8 Qt: Fix themed slider disabled state
  • 45460b9 PostProcessing/Slang: Skip over C-style comments in preset files
  • ae44fa6 PostProcessing/Slang: Support parsing simple/reference presets
  • 495141a Qt: Fix postfx shader list with multiple nesting levels
  • 8bb8fdd Update gpu_hw_shadergen.cpp (#3728)
  • 558973f GPU/HW: Fix rare VRAM corruption after state load
  • 0d60433 GameDB: Otona no Asobi again
  • 4d95bb3 OpenGLDevice: Fix various issues in stream buffer
  • bbffe72 OpenGLDevice: Disable PBOs completely on NVIDIA
  • c7027a2 CDROM: Fix off-by-one error
  • c204170 FullscreenUI: Always reset transition before executing it
  • 650c60e FullscreenUI: Fix fade transition on game exit
  • 73a74b3 System: Remove unnecessary state function
  • a94a90f CPU: Fix some unlikely-to-be-triggered issues
  • 566ef44 DMA: Fix DICR register write mask
  • ac7aa0d GPU: Fix incorrect debug log message
  • 5823a01 MDEC: Fix incorrect halfword tracking for some commands
  • cfcfd8f CPU/Recompiler: Various minor error fixes
  • 4780bfa Pad: Fix incorrect log message
  • 50b545c Pad: Fix device_index with multitap 2 active
  • ba7b5cd SPU: Fix a couple of log and debug window fields
  • acb546b SPU: Fix inverted volume level in voice register read
  • 0c41d81 SPU: Fix incorrect DMA overread handling
  • 0b4b9a1 MemoryCard: Fix incorrect ACK at end of read
  • bde74c5 MemoryCard: Fix incorrect output byte at end of write
  • d85dcdb MemoryCard: Fix incorrect state/ack at end of ID read
  • 6bd6a8d Timers: Interrupt request should be cleared after mode write
  • 03a61b7 Timers: Fix repeated IRQs possibly scheduling late
  • 8601189 Bus: Fix incorrect logging of EXP1 memory timing
  • 0eb8db8 Bus: Fix incorrect region pointer for RAMMirror3
  • 077f234 Bus: Fix error propagation in InjectExecutable()
  • 2734a1b Bus: Fix incorrect write mask for EXP1/EXP2 base
  • ebe6af9 GTE: INTPL should be 8 cycles
  • d80c5b9 VideoPresenter: Fix incorrect UVs for Rotate180 case
  • 0016ef0 VideoPresenter: Fix incorrect changed flag when reloading overlay
  • cc662e6 VideoThread: Fix dead code in VideoThreadEntryPoint()
  • 2c18947 VideoThread: Fix incorrect command size
  • 3535455 ImGuiOverlays: Remove unused macro
  • fa38d4f ImGuiOverlays: Fix incorrect capture box height
  • 2d4259e ImGuiOverlays: Fix incorrect frame time calculation
  • da339e4 MemoryScanner: Set changed flag in RemoveEntryByDescription()
  • 63f5a6a SoundEffectManager: Fix buffer overallocation in upmix/shift path
  • 66ddcae Justifier: Remove unused function
  • 16ceae8 Justifier: Last byte shouldn't ACK
  • da7a2cc PlayStationMouse: Fix X sensitivity being used for Y
  • c9c7645 InterruptController: Fix incorrect branch hint
  • 17bea47 AudioStream: Fix backend names not being translated on lookup
  • 274d87e CubebAudioStream: Fix a few logging errors
  • f40a3c8 SDLAudioStream: Fix inconsistent start API usage
  • 692e7ce WAVReader: Fix non-s16 handling in SeekToFrame()
  • cac0eac GameList: Remove unused function
  • 7b802e6 GameList: Fix incorrect constants in played time parsing
  • 9a44065 GameDatabase: Fix incorrect log messages
  • 3d43cfa GameDatabase: Fix setting wrong settings object
  • 385ee9d GameDatabase: Add missing flush check for SaveToCache()
  • 40b6893 System: Fix video capture args being read incorrectly
  • 66702bc System: Fix some incorrect error messages
  • ccfa0f4 System: Remove a couple of redundant comparisons
  • 21f6835 CDImagePPF: Fix possible overpatching on spanning sectors
  • 08015f1 CDImagePPF: Fix possible integer underflow in short files
  • efc623c CDImagePBP: Fix error propagation in SwitchSubImage()
  • 32f8163 CDImageMDS: Fix use of 32-bit fseek()
  • 4a24d29 CDImageDevice: Fix incorrectly formatted log messages
  • 4e1cdd5 CDImageCue: Fix inconsistent size in ECMTrackFileInterface::Read()
  • 687059d CDImageM3u: Simplify whitespace trimming
  • 1494c6b PostProcessing: Fix OOB write in ParseVector()
  • d5c22fc PostProcessing/FX: Fix PingPong state not being written back
  • 1c9b0a9 PostProcessing/Slang: Fix include depth not being tracked
  • 3ce9753 PostProcessing/Slang: Add missing Original scale type handling
  • a9da0d8 Sockets: Fix various issues
  • bd6f998 ISOReader: Fix incorrect timestamp calculation
  • 29ca1cb GPUDevice: Fix incorrect log message
  • fc9ce7f GPUDevice: Fix incorrect RG16/RG16F pixel size
  • 4e963c1 System: Add capture file name format options
  • 86aabe3 D3DCommon: Fix a bunch of copy/paste errors
  • 730c44f D3D11Device: Fix a couple of incorrect log messages
  • 414f9f6 D3D12Device: Fix incorrect subresource calculation
  • 9706df0 D3D12Device: Use move in D3D12DownloadTexture destructor
  • 56f0756 MetalDevice: Fix various issues
  • 6f405d9 GPUDevice: Don't reserve unnecessary byte in stream buffer
  • 690fcb6 System: Log disc details when booting
  • cece522 OpenGLDevice: Fix incorrect mipmap step in upload
  • 49eb1ab OpenGLDevice: Fix off-by-one in Map() range check
  • d940fb3 OpenGLDevice: Fix incorrect DSB binding without binding layout
  • 2ac4816 OpenGLTexture: Fix a couple of incorrect format mappings
  • f0b6ea9 VulkanDevice: Fix incorrect pointer alignment check
  • a4904dd VulkanDevice: Add missing swap of m_allocation
  • 0f51249 Achievements: Fix null pointer check in BeginRefreshHashDatabase()
  • 2a85f67 FullscreenUI: Fix possible OOB on bad config
  • 0e3c471 FullscreenUI: Fix file dialog without filter set
  • 22378bd FullscreenUI: Add fade transition to file selector
  • 2b10062 FullscreenUI: Fix possible RemoveHook() call on wrong thread
  • d3edaf5 FullscreenUI: Use insert_or_assign() in SetCoverCacheEntry()
  • d2e9421 Qt: Fix config binding of audio capture extra args
  • 41a939f Qt: Fix resize-loading case for getCoverForEntry()
  • ecc1fe2 Qt: Fix a couple of incorrect config keys in reset path
  • d326c8b Qt: Fix incorrect signal block in game summary
  • 4ae89e2 Qt: Fix reading from UI thread in computeImageHash()
  • 30583b4 Qt: Fix incorrect read in texture replacement settings export
  • 00c956f Qt: Fix incorrect settings save after automap
  • 182c87d Qt: Add missing master enable update in cheat settings
  • 387d8b3 Qt: Remove redundant setNewBinding() in effect binding
  • 0995654 Qt: Add null pointer check to hotkey setFilter()
  • 5de2b77 CPU/CodeCache: Fix redundant begin/end code write
  • 2af1cd6 CPU/CodeCache: lwc2/swc2 should not read rt in backprop
  • 0a816b6 CPU/CodeCache: Fix blocks ending up perpetually in interpreter fallback
  • 23c94c5 TimingEvent: Add missing current_event check in SortEvent()
  • 89560f8 GDBServer: Fix incorrect shift in $G handler
  • dd25610 GDBServer: Fix incorrect hex decode in $M handler
  • 091d1b6 GDBServer: Fix double ack after single step
  • 59b4fb8 GDBServer: Send SIGTRAP on system pause
  • 6c63902 Fix translation errors (AZ) (#3730)
  • df64109 TimingEvents: Fix overzealous assertion
  • f9254e2 CPU/CodeCache: Pack state in struct
  • abf3b8c CPU/CodeCache: Move JIT write protect out of MemMap
  • 120d049 Modern Lossless Dynamic Quantization Scanline Shader (#3731)
  • 12989d2 VideoThread: Use thread instead of handle
  • 53c4176 CPU/CodeCache: Don't skip filling backprop for first instruction
  • 5d92da5 TimingEvents: Remove ticks_late parameter
  • dea0480 AudioStream: Reintroduce XAudio2 backend
  • c1d24b4 dep/cubeb: Bump to a37dadd
  • 242b4b8 FullscreenUI: Fix files showing in directory selector
  • 28297a3 VideoThread: Pass clamped dimensions to thread
  • 153fa1d Core: Get rid of base settings layer overrides
  • 85c0b4e System: Move gamescope screensaver hack to QtHost
  • 71dafa7 System: Move socket multiplexer into GDBServer
  • cc1775f System: Move Discord presence into its own file
  • 678b610 System: Move more core functionality out of file
  • 70c6d5a VideoThread: Move private functions into own file
  • 0b6d41e Achievements: Don't defer badge prefetch on game load
  • 56783ac Qt: Use delete icon for restoring custom titles
  • 348eaee TaskQueue: Support single-threaded operation
  • 735dc5b Core: Centralize the async task queue
  • b2d0fbd clang-format: Add lambda options
  • 54c6a9f Hotkeys: Make more formatting-friendly
  • 00908b1 Qt: Remove some unnecessary includes
  • 86fd693 Qt: Use better title for capture file name format
  • 122bd30 Qt: Move RAIntegration setting to advanced settings
  • 6513e47 Achievements: Add progress indicator mode option
  • d2e7701 dep/rcheevos: Increase the time the progress tracker is shown
  • d1f5975 FullscreenUI: Fix load/save state leaving system paused
  • 8ddaac3 Achievements: Add alpha to progress bars
  • 38bbc11 Data: Add additional fonts
  • bbe6521 ImGuiManager: Support multiple text fonts
  • 9950e22 SoundEffectManager: Fix low chance of deadlock on shutdown
  • f7d937c Qt: Fix debugger ignoring all messages
  • acbb76c Qt: Fix off-by-one in edit RAM callback
  • f080e79 Qt: Fix possible underflow in debugger wheelEvent()
  • 9a41041 Qt: Fix incorrect colour of bytes in debugger
  • 9f385b2 Qt: Fix last-data buffer management in MemoryViewWidget
  • 970e191 Qt: Improve debugger arrow drawing
  • 2f35493 scanline-modern-ex.fx Minor optimizations and adjustments (#3732)
  • 5731aa8 CI: Pass --fail to curl downloads
  • 3fb8948 GPU/HW: Fix MMPX Quality compilation in Metal
  • 730dcd9 VideoThread: Assert not on thread for async calls
  • 1200cd5 FullscreenUI: Rework pause menu opening
  • 75eddf1 Achievements: Adjust pause menu box padding
  • e4c55ad Achievements: Don't display indicators when in pause menu
  • 6f8f488 dep/imgui: Handle ClearTexData() for RendererHasTextures case
  • 9eeabd0 ImGuiManager: Destroy textures before recreating font atlas
  • bff1851 FullscreenUI: Fix double pause in Pa...
Read more

v0.1-11108

Choose a tag to compare

@github-actions github-actions released this 26 Apr 03:36
54feef2

Commits

  • 3f52ebe gitignore: Add CLion generated directory
  • 99acb8f ThirdParty/SmallVector: Add missing include
  • 9275e1a Achievements: Add RA SVG icon variant
  • a4c53a9 FullscreenUI: Add menu dropdown widgets
  • 911fe99 FullscreenUI: Use dropdown menus in settings
  • 121ae17 FullscreenUI: Remove duplicated string
  • aeeb592 FullscreenUI: Disable achievement icon download if unavailable
  • c4481f5 GameDB: Max speedup cycles for Monster Rancher 2 and some other fixes (#3712)
  • 7938775 ImGuiManager: Add icon type to OSD message
  • 513643a Common: Add LockedPtr
  • d731a65 Common: Add OptionalWithStatus
  • 79576be StringUtil: Add AppendUTF8ToWideString()
  • 821cab5 HTTPDownloader: Support sending additional headers
  • 7d24e64 HTTPDownloader: Support setting timeout per-request
  • 574be46 HTTPDownloader: Increase poll interval to 16ms
  • ee1fb35 FileSystem: Add OpenTemporaryCFile()
  • 331571b Util: Add ObjectArchive class
  • 1690c69 Util: Add HTTPCache module
  • 1c407c5 Achievements: Use HTTPCache's downloader
  • 80b93d3 GameList: Use HTTPCache downloader
  • 1260891 Qt: Use HTTPCache downloader for DownloadFile()
  • d618413 Qt: Add AsyncPixmapLoader class
  • 2f3e30e Core: Remove GetHTTPUserAgent()
  • 10a8f5e FullscreenUI: Support loading images from URLs with caching
  • 32ab1b7 Achievements: Use HTTP cache instead of loose files
  • df47c9f Qt: Move debug settings into its own category
  • e3423e1 Qt: Move save states directory to memory card page
  • d140fbf Qt: Move screenshot/capture directories to Capture Settings
  • 5d8bad2 Qt: Style textures directory selector same as others
  • 3b98973 Qt: Move remaining folders to advanced settings
  • b05e7ce Qt: Add web cache section to advanced
  • 3d6af6b GameDB: F1 games
  • 1e591ba FullscreenUI: Keep choice over dropdown for larger lists
  • e736177 FullscreenUI: Add missing settings
  • c8a56a9 Qt: Adjust touchpad tooltip text
  • 76cda31 Qt: Remove old achievement images directory on startup
  • 2c52ff0 Settings: Prefetch badges should default to on
  • 05efaae Atualização Português do Brasil (#3715)
  • 336f3b6 ImGuiOverlays: Fix oversized command allocation
  • 4c032c0 Common: Remove CancellableChanged() from ProgressCallback
  • 05d470b VideoThread: Add VideoThreadAsyncBufferCallCommand
  • 0033212 Qt: Don't read g_main_window on core thread
  • d8afa5b Host: Remove unused LoadSettings() callback
  • de57f47 System: Fix possible video thread corruption on rewind
  • 8b5e89f Qt: Clarify no data loss from cache cleanup
  • f5d8fbd VideoThread: Remove RunOnBackend()
  • 57a3dc4 FullscreenUI: Don't show fullscreen resolution when unsupported
  • ee13585 FullscreenUI: Fix menu scrolling with single choice dialog open
  • cfa62ca FullscreenUI: Fix start point in memory card settings
  • 2aa3606 FullscreenUI: Fix focus loss opening game properties
  • 5a60e37 FullscreenUI: Apply resolution change immediately
  • 423e5fd FullscreenUI: Always place summary under title
  • eb52ba3 FullscreenUI: Highlight menu item when dropdown open
  • c9a7bf7 FullscreenUI: Prefetch two rows of covers in grid view
  • fc01756 GameList: Only use lookup achievements icons if logged in
  • 8682b4f Qt: Add Azerbaijani translation
  • 7bcafb4 Qt: Fix tooltip
  • d8bfa41 MMPXEnhanced v3.0 (#3717)
  • f3220f1 GPU/HW: Rename MMPX Enhanced 3.0 to Quality
  • 50023dc FullscreenUI: Fix corrupted blur background on loading screen
  • e3f6b48 GameDB: Sol Divide does not support analog (#3716)
  • d3b174a FullscreenUI: Disable postfx in loading screen
  • b3157ff Qt: Fix path in create-update-and-edit-language.bat
  • 70589b1 VideoThread: Fix backend leak on creation failure
  • fa4a3ea Achievements: Cache whether we have saved credentials
  • 724c114 MMPX Enhanced Lite (#3718)
  • d8e11b5 Qt: Add manifest for binary
  • 0eed1d9 Qt: Improve icon consistency
  • a2cffcf Qt: Fix accidential QObject translation context
  • 45fb864 Qt: Add a bunch of missing _L1 suffixes
  • ec6599d MemoryCard: Fix open error not propagating
  • 7c6011e Qt: Unmark some error messages from translation
  • 993033e Change Azerbaijani translation entry to 'Azərbaycanca' (#3719)
  • b77af27 Update MMPXEnhanced v3.0.1 (#3724)
  • 2031ef7 Updating Spanish (Spain) translation with latest changes. (#3725)
  • a4054fc Update Azerbaijani translation and add contributor (#3726)
  • c28c558 Atualização Português do Brasil (#3727)
  • ec2101f Achievements: Rename game icon -> game badge
  • c7702bc Achievements: Make game badge cache internal
  • 420ce67 GameList: Remove ShouldLoadAchievementsProgress()
  • 0fcf4cc Achievements: Defer game list data update
  • 54feef2 CI: Use 7z for symbols archives

v0.1-11026

Choose a tag to compare

@github-actions github-actions released this 11 Apr 05:34
5e7be49

Commits

  • bdd796c FileSystem: Remove GetDisplayNameFromPath()
  • ed7261d Atualização Português do Brasil (#3708)
  • bbd3660 Cheats: Drop extern from declarations
  • cd539c0 Deps: Update to 20260404
  • 699922a Data: Update SDL Game Controller DB
  • 653b0e3 Achievements: Don't display empty pinned achievements without progress
  • 8161d65 Achievements: Allow unpinning of achievements with empty progress
  • 58b309f Achievements: Store pinned achievements sorted
  • 48a403b Achievements: Display a warning when spectator/encore mode is enabled
  • 89d7579 Achievements: Disable encore mode when spectator enabled
  • 41205d2 FullscreenUI: Fix invalid pause menu with external shutdown in achievements view
  • ce83fa5 FullscreenUI: Fix background blur drawn twice
  • bf3ae80 ImGuiManager: Remove redundant texture bind
  • aecd1a6 Cheats: Disable restorable cheats before saving state
  • 1d119ba Cheats: Reapply restorable codes after state load
  • ac06a86 Qt: Remove unnecessary startup semaphore
  • f1ae5b8 CI: update actions/upload-artifact (#3709)
  • 3004aa3 CI: Don't double-archive builds
  • 7659a70 Common: Get rid of multiple virtuals in ProgressCallback
  • a447846 Qt: Remove gamelistrefreshthread.cpp/h
  • 0cc6bde FullscreenUI: Don't blur empty background in loading screen
  • dff49fd dep/rcheevos: Fix runtime error on oversized log message
  • a6f7ff6 Achievements: Supply error message for non-HTTP client errors
  • 9f7c546 Common: Fix non-English descriptions in Error class
  • 69b10bb README: Update VC runtime link
  • d001c8f Qt: Fix InputBindingWidget tooltip (#3710)
  • 7f5d9c0 Qt: Fix conversion warning
  • 5e7be49 Util: Add missing includes to compress_helpers.h