github stenzek/duckstation latest
Latest Rolling Release

latest release: preview
9 days ago

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 PauseAndOpenMenuFromCoreThread()
  • 8056dc7 FullscreenUI: Fix change disc hotkey again
  • 5dc2899 Qt: Fix tab order in Achievement Settings
  • 01ae8e5 Qt: Fix incorrect key for video capture arguments
  • 1f1182f Qt: Don't delete empty achievement images directory
  • 2bc4a95 Qt: Remove redundant doBackgroundControllerPoll()
  • aa5e2d7 Qt: Screenshot/video directory shouldn't be changable per-game
  • 614d24c FullscreenUI: Fix pause icon not re-displaying on menu close
  • d6a7f90 FullscreenUI: Tweak fade transition times
  • 015bfed FullscreenUI: Align fade transition times to frame rate
  • 414b0b3 CDImage: Fix OpenCHD() opening non-chd files
  • 9251991 ImGuiOverlays: Use PopupHighlight for save state selector
  • 3836986 Qt: Expose VRAM and SPU VRAM in memory editor/debugger
  • f0fdd06 FullscreenUI: Fix most_recent_progress_update not resetting
  • 1e570ed FullscreenUI: Fix first achievement notification not triggering run-idle
  • 1917421 FullscreenUI: Use correct active state for timed indicator removal
  • f685648 FullscreenUI: Fix leaderboard ID/format not caching in pause menu
  • 7120a4a FullscreenUI: Fix possible divide by zero in achievement summary
  • adff8db FullscreenUI: Improve sort operator consistency
  • ccce159 FullscreenUI: Fix game grid titles drawing even when disabled
  • 69b3958 FullscreenUI: Use icon in both AlertPrompt() and ConfirmPrompt()
  • 9e82d21 FullscreenUI: Fix typo in MenuImageButton()
  • 678c2ec FullscreenUI: Fix InputStringDialog not clearing text
  • 2ca8307 FullscreenUI: Fix loading screen drawing with non-zero minimum
  • 0861840 FullscreenUI: Fix temporary challenge icons missing in pause menu
  • 3a10c16 Qt: Slight tweak to OSD settings panel widths

Don't miss a new duckstation release

NewReleases is sending notifications on new releases.