3572 Commits

Author SHA1 Message Date
Marcin Mikołajczyk
6ab7aa3b18 Open a dummy audio input device if none is present in the system (#3514) 2025-09-17 12:50:47 -07:00
Stephen Miller
775d27c0cd Core: Log error on MapMemory out of flexible memory case (#3614)
* Log error for out-of-flexible-memory error case in MapMemory

Should reduce confusion when looking as some logs.

* Clang
2025-09-17 21:58:48 +03:00
georgemoralis
0e8d350f8e New Crowdin updates (#3567)
* New translations en_us.ts (Turkish)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Romanian)

* New translations en_us.ts (French)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Catalan)

* New translations en_us.ts (Danish)

* New translations en_us.ts (German)

* New translations en_us.ts (Greek)

* New translations en_us.ts (Finnish)

* New translations en_us.ts (Hungarian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Japanese)

* New translations en_us.ts (Korean)

* New translations en_us.ts (Lithuanian)

* New translations en_us.ts (Dutch)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Slovenian)

* New translations en_us.ts (Albanian)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Ukrainian)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Urdu (Pakistan))

* New translations en_us.ts (Vietnamese)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Indonesian)

* New translations en_us.ts (Persian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Serbian (Latin))

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Catalan)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Japanese)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Russian)

* New translations en_us.ts (German)

* New translations en_us.ts (German)

* New translations en_us.ts (Romanian)

* New translations en_us.ts (French)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Catalan)

* New translations en_us.ts (Danish)

* New translations en_us.ts (German)

* New translations en_us.ts (Greek)

* New translations en_us.ts (Finnish)

* New translations en_us.ts (Hungarian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Japanese)

* New translations en_us.ts (Korean)

* New translations en_us.ts (Lithuanian)

* New translations en_us.ts (Dutch)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Slovenian)

* New translations en_us.ts (Albanian)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Ukrainian)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Urdu (Pakistan))

* New translations en_us.ts (Vietnamese)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Indonesian)

* New translations en_us.ts (Persian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Serbian (Latin))

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Catalan)

* New translations en_us.ts (German)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (German)

* New translations en_us.ts (Catalan)
2025-09-16 12:23:41 +03:00
georgemoralis
58fc05a127 [ci skip] Qt GUI: Update Translation. (#3610)
Co-authored-by: georgemoralis <4313123+georgemoralis@users.noreply.github.com>
2025-09-16 12:23:25 +03:00
Randomuser8219
d555241e51 QT: Note Vulkan SDK requirement for validation tooltips (#3608) 2025-09-15 17:46:03 -07:00
rainmakerv2
c106a98bd6 Hotfix: fix creating new game config and loading experimental tab (#3600) 2025-09-14 16:31:29 +03:00
squidbus
fb090dc90f kernel: More thread code clean-up. (#3599) 2025-09-14 02:22:13 -07:00
georgemoralis
c42d0cff2e [ci skip] Qt GUI: Update Translation. (#3586)
Co-authored-by: georgemoralis <4313123+georgemoralis@users.noreply.github.com>
2025-09-14 09:06:32 +03:00
rainmakerv2
fd9f372a86 Qt: Group game-specific and non-game-specific items in the same tabs (#3574)
* Group game-specific and non-game-specific items in the same tabs

* Fix rebase

* Transfer default settings tab to general, rename some items

* Fix experimental tab contents not filling the tab

* prevent saving game specific value if no valid value provided

* Fix console language saving, add error message if trying to save nullopt
2025-09-14 09:04:17 +03:00
DanielSvoboda
260e0438a7 QT: Fix Patches 'Incompatibility Notice' (#3597) 2025-09-13 15:34:40 -07:00
squidbus
21a1888857 build: Fix a couple more warnings. (#3598) 2025-09-13 15:33:42 -07:00
squidbus
c51abe4e8b texture_cache: Make sure that readback images are downloaded in time (#3593) 2025-09-13 14:43:38 -07:00
squidbus
e402ea3de4 externals: Update MoltenVK and re-enable private API use (#3594) 2025-09-13 10:32:10 -07:00
squidbus
321fa34892 kernel: Improvements to condvars. (#3592) 2025-09-13 08:41:26 -07:00
squidbus
70d33be7b7 externals/MoltenVK: Disable MVK_USE_METAL_PRIVATE_API (#3591) 2025-09-13 05:06:29 -07:00
Stephen Miller
0bfde1fcde video_core: Check DB_SHADER_CONTROL register before performing depth exports (#3588)
The DB_SHADER_CONTROL register has several enable flags which must be set before certain depth exports are enabled.
This commit adds logic to respect the values in this register when performing depth exports, which fixes the regression in earlier versions of KNACK.
I've also renamed DepthBufferControl to DepthShaderControl, since that's closer to the official name for the register.
2025-09-13 04:32:24 -07:00
Missake212
c885b522db log copy gpu buffers (#3587) 2025-09-13 11:39:50 +03:00
rainmakerv2
fa543d3cc8 Qt: Add descriptions for new experimental settings in GUI (#3573)
* add descriptions for new experimental settings in GUI

* Change PS4 to neo in the GUI, add note on Neo instability
2025-09-13 11:39:10 +03:00
squidbus
9cdb6b1097 config: Fix typo saving logEnabled setting. (#3584) 2025-09-12 17:50:31 -07:00
UltraDaCat
698458061e Minimum Vblank Frequency of 60Hz (#3561) 2025-09-12 09:39:20 -07:00
squidbus
dc6bfbeb12 build: Fix a few warnings (#3581) 2025-09-12 09:31:59 -07:00
TheTurtle
374c2194d4 video_core: Address various UE bugs (#3559)
* vk_rasterizer: Reorder image query in fast clear elimination

Fixes missing clears when a texture is being cleared using this method but never actually used for rendering purposes by ensuring the texture cache has at least a chance to register cmask

* shader_recompiler: Partial support for ANCILLARY_ENA

* pixel_format: Add number conversion of BC6 srgb format

* texture_cache: Support aliases of 3D and 2D array images

Used be UE to render its post processing LUT

* pixel_format: Test BC6 srgb as unorm

Still not sure what is up with snorm/unorm can be useful to have both actions to compare for now

* video_core: Use attachment feedback layout instead of general if possible

UE games often do mipgen passes where the previous mip of the image being rendered to is bound for reading. This appears to cause corruption issues so use attachment feedback loop extension to ensure correct output

* renderer_vulkan: Improve feedback loop code

* Set proper usage flag for feedback loop usage
* Add dynamic state extension and enable it for color aspect when necessary
* Check if image is bound instead of force_general for better code consistency

* shader_recompiler: More proper depth export implementation

* shader_recompiler: Fix bug in output modifiers

* shader_recompiler: Fix sampling from MSAA images

This is not allowed by any graphics API but seems hardware supports it somehow and it can be encountered. To avoid glitched output translate to to a texelFetch call on sample 0

* clang format

* image: Add back missing code

* shader_recompiler: Better ancillary implementation

Now is implemented with a custom attribute that is constant propagated depending on which parts of it are extracted. It will assert if an unknown part is used or if the attribute itself is not removed by dead code elim

* copy_shader: Ignore not enabled export channels

* constant_propagation: Invalidate ancillary after successful elimination

* spirv: Fix f11/f10 conversion to f32

---------

Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2025-09-12 19:29:16 +03:00
squidbus
de7652384d video_core: Upload buffer memory around unmapped pages (#3580) 2025-09-12 18:23:00 +03:00
kalaposfos13
f3e344dfcf Add missing ioctl export (#3579) 2025-09-12 00:44:02 -07:00
Missake212
b132739014 sceVideoOutSetWindowModeMargins Stub (#3578) 2025-09-11 21:08:38 -07:00
squidbus
eb8a454089 vk_rasterizer: Only assert on primitive restart if performing indexed draw. (#3577) 2025-09-11 20:30:57 -07:00
squidbus
d4d179610d image: Do not set storage usage for block-encoded formats. (#3572) 2025-09-11 00:47:01 -07:00
georgemoralis
c13502d618 [ci skip] Qt GUI: Update Translation. (#3571)
Co-authored-by: georgemoralis <4313123+georgemoralis@users.noreply.github.com>
2025-09-11 09:58:36 +03:00
Stephen Miller
99d0f85739 libkernel: Reduce log spam (#3569)
* Fix address formatting for invalid address asserts

* Reduce event flag message to trace

This log effectively contributes nothing to debugging.

* Remove excess logging in sceKernelBatchMap

Every one of these opcodes will just log from their individual function calls anyway, and if there were issues with batch map logic, we would've known for a while now.

* Log error return during sceKernelBatchMap

May help with debugging some unstable UE games?
2025-09-10 17:38:56 -07:00
rainmakerv2
4b0069b296 fix fullscreen loading (#3570) 2025-09-10 17:38:00 -07:00
Stephen Miller
35d3d4f763 Core: Fix MXCSR and FPUCW registers on created threads (#3568)
* Use _mm_setcsr over assembly

Exists on all platforms, so might as well use it.

* Clang

* Missing include

* Unconditionally set FPUCW

As per review suggestions.

* Fix FPUCW and MXCSR registers on Windows

For some reason only Microsoft knows, settings these values in the context doesn't work.
Also their controlfp functions don't seem to work either, so I used assembly instead.

* Set MXCSR on all platforms

All three platforms use the same default MXCSR register value. Use an assembly instruction to set this for all platforms.
2025-09-10 14:32:05 -07:00
zf06gaius
2c4f573d3a Simple implementation of sceGnmUnmapComputeQueue in gnmdriver (#3565) 2025-09-10 11:03:49 -07:00
georgemoralis
98abb4e372 New Crowdin updates (#3537)
* New translations en_us.ts (Romanian)

* New translations en_us.ts (French)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Catalan)

* New translations en_us.ts (Danish)

* New translations en_us.ts (German)

* New translations en_us.ts (Greek)

* New translations en_us.ts (Finnish)

* New translations en_us.ts (Hungarian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Japanese)

* New translations en_us.ts (Korean)

* New translations en_us.ts (Lithuanian)

* New translations en_us.ts (Dutch)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Slovenian)

* New translations en_us.ts (Albanian)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Ukrainian)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Urdu (Pakistan))

* New translations en_us.ts (Vietnamese)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Indonesian)

* New translations en_us.ts (Persian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Serbian (Latin))

* New translations en_us.ts (Romanian)

* New translations en_us.ts (French)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Catalan)

* New translations en_us.ts (Danish)

* New translations en_us.ts (German)

* New translations en_us.ts (Greek)

* New translations en_us.ts (Finnish)

* New translations en_us.ts (Hungarian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Japanese)

* New translations en_us.ts (Korean)

* New translations en_us.ts (Lithuanian)

* New translations en_us.ts (Dutch)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Slovenian)

* New translations en_us.ts (Albanian)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Ukrainian)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Urdu (Pakistan))

* New translations en_us.ts (Vietnamese)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Indonesian)

* New translations en_us.ts (Persian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Serbian (Latin))

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Romanian)

* New translations en_us.ts (French)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Catalan)

* New translations en_us.ts (Danish)

* New translations en_us.ts (German)

* New translations en_us.ts (Greek)

* New translations en_us.ts (Finnish)

* New translations en_us.ts (Hungarian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Japanese)

* New translations en_us.ts (Korean)

* New translations en_us.ts (Lithuanian)

* New translations en_us.ts (Dutch)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Slovenian)

* New translations en_us.ts (Albanian)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Ukrainian)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Urdu (Pakistan))

* New translations en_us.ts (Vietnamese)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Indonesian)

* New translations en_us.ts (Persian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Serbian (Latin))

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Catalan)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Romanian)

* New translations en_us.ts (French)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Catalan)

* New translations en_us.ts (Danish)

* New translations en_us.ts (German)

* New translations en_us.ts (Greek)

* New translations en_us.ts (Finnish)

* New translations en_us.ts (Hungarian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Japanese)

* New translations en_us.ts (Korean)

* New translations en_us.ts (Lithuanian)

* New translations en_us.ts (Dutch)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Slovenian)

* New translations en_us.ts (Albanian)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Ukrainian)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Urdu (Pakistan))

* New translations en_us.ts (Vietnamese)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Indonesian)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Persian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Serbian (Latin))

* New translations en_us.ts (Catalan)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Japanese)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Swedish)
2025-09-10 12:19:22 +03:00
rainmakerv2
319db3bebe Qt: Add GUI for game-specific settings (#3533)
* Open settings dialog from context menu

* initial version complete

* add context menu item to delete game config if it exists

* Create game config from base value instead of default value

* Require confirmation before deleting game configs with menu item

* fix rebase

* Reset game specific values when creating a new game config

* Add icon for entries with game config

* clang format

* Add submenu for game-specific settings

* Log if game-specific config exists, remove hidden tab from tab selection

* Add other experimental options to game-specific GUI

* clang format

* Add flag to specify if game-specific file needs creation

* refactor: remove additional arguments, reset game-specific status on save instead

* Fix return

* cleanup - remove unneeded load

* Set tab to general if hidden tab is set as default

* Cleanup variable names and strings, default tab fix, volumeslider fix

* cleanup: missed a couple of variables to standardize

* More readable way to reset volume slider
2025-09-10 12:18:39 +03:00
kalaposfos13
4abc6b3010 Implement getargc and getargv (#3562)
* Implement getargc and getargv

* update copyright year

* the loathsome clang-formatter
2025-09-09 14:58:22 -07:00
Fire Cube
c05695fde5 extend IPC functionalities (#3545)
* extend IPC

* clang

* clang
2025-09-09 14:57:42 -07:00
squidbus
e885d52ad0 vk_pipeline_cache: Fix pipeline log class. (#3560) 2025-09-09 04:48:12 -07:00
squidbus
ac318b56ac equeue: Few fixes for sceKernelWaitEqueue (#3548) 2025-09-08 19:47:12 -07:00
Stephen Miller
f4531fd927 Core: Remove checks for symbol version_major and version_minor (#3540)
* Remove checks for module version_major and version_minor

Following this rule broke linking for some libraries, and introduced extra effort needed to get some homebrew running.

* Clang

* Fix rebase

* Disable libSceSsl HLE

Real hardware uses a title workaround to determine if base libSceSsl is needed. Currently, this title workaround applies to absolutely nothing.
2025-09-08 19:30:03 -07:00
Stephen Miller
707fe9faff Core: Improve memory address validation logic (#3556)
Somehow I missed that we already had a IsValidAddress function that could be used for ensuring addresses is inside vma map (for non Mac platforms at least). This PR swaps my Contains(addr) checks for calls to IsValidAddress.

This should help with some weird inconsistent memory asserts and exceptions caused by inconsistent iterator behavior on Windows devices.
2025-09-08 19:25:41 -07:00
squidbus
e38876b5b2 amdgpu: Report GPU perf counter in GPU cycles. (#3557) 2025-09-08 19:17:35 -07:00
georgemoralis
b5e2503418 [ci skip] Qt GUI: Update Translation. (#3554)
Co-authored-by: georgemoralis <4313123+georgemoralis@users.noreply.github.com>
2025-09-08 17:47:22 +03:00
Stephen Miller
133f4b9187 Core: ClampRangeSize fixes (#3555)
* Swap !IsFree() for IsMapped()

IsFree only checks if the VMAType == Free. As is, that means ClampRangeSize will include memory that is Reserved or PoolReserved, and neither of those types are GPU mapped.

This fixes this bug, may help with some non-GPU memory asserts.

* Apply ClampRangeSize to vertex buffers

Helps with some cases encountered by UE and Minecraft.
2025-09-07 20:27:40 -07:00
TheTurtle
eb9a7e8fbd liverpool: Write valid queries on PixelPipeStatDump (#3553)
* liverpool: Write valid queries on PixelPipeStatDump

* export: Small assert swap

* liverpool: Advance zpass counter on every dump request
2025-09-07 18:08:26 -07:00
Missake212
f6219e0382 Adjusting vblank frequency description (#3552) 2025-09-07 15:42:52 -07:00
squidbus
ce6681b991 externals: Update libusb to fix more ABI issues. (#3551) 2025-09-07 14:39:16 -07:00
Randomuser8219
582daef658 Remove PKG icon from PKG installer remains (#3549)
file_icon.png was a leftover from the PKG installer.
2025-09-07 14:19:13 -07:00
DanielSvoboda
0ee348622d QT: Add the Log tab to 'Default tab when opening settings' (#3550) 2025-09-07 14:18:58 -07:00
squidbus
d8e52c599b vk_pipeline_cache: Log pipeline creation. (#3544) 2025-09-07 23:13:26 +03:00
Stephen Miller
b5d8426db7 Libraries: Implement sceKernelIsInSandbox, update OrbisSysModule enum (#3546)
* Implement sceKernelIsInSandbox

libSceSysmodule uses this to determine if it should use sceKernelGetFsSandboxRandomWord or just hardcode "system" for retrieving modules.
Also changes some function types to use our types.

* Update OrbisSysModule enum

Adds missing values based on library testing.

* Clang
2025-09-07 13:11:15 -07:00