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