Commit Graph
4391 Commits
Author SHA1 Message Date
rainmakerv2 8cd2ea8c41 Big picture: recursive folder scanning (#5223)
* add recursive scanning - force depth 2 for now, make configurable later

* make setting configurable

* match item widths

* correctly load language as specific, fix profile button naming with multiple same titleid entries

* catch fs errors, while ensuring all other items are scanned
2026-10-03 08:51:03 +03:00
junminlee2004 ead912cf95 cpu_patches: Apply comprehensive SSE4a CPU patches on macOS (#5216)
* cpu_patches: Apply CPU patches ahead of time on macOS

* module: Use one static patching flag for Windows and macOS

* cpu_patches: Patch SSE4a instructions between the functions of the EH frame table

* emulator: Log the red zone patching setting on macOS

* Revert "emulator: Log the red zone patching setting on macOS"

* module: Share one static patching block between Windows and macOS
2026-10-02 13:49:03 -07:00
Marcin Mitura 62653e388c kernel/time: Implement monotonic real-time network clock (#5217) 2026-10-02 13:19:15 -07:00
georgemoralis bf794b3fe7 started 0.19.1 WIP 2026-10-02 17:05:15 +03:00
georgemoralis c7e065d1b4 tagged 0.19.0 release v.0.19.0 2026-10-02 16:24:13 +03:00
squidbus 3912336fdf externals: Update mesa-kosmickrisp (#5214) 2026-10-01 19:42:03 -07:00
Marcin Mitura 4355d9eb73 kernel: Fix sceKernelReserveVirtualRange alignment and add ClearName (#5208)
- Fix alignment validation in sceKernelReserveVirtualRange to check both power-of-2 and 16KB page alignment per libkernel.sprx (0x1861e)
- Enforce 2GB maximum alignment bound per libkernel.sprx
- Implement sceKernelClearVirtualRangeName (NID mkgXxsoxWHg)
2026-10-01 17:15:43 -07:00
TheTurtle 0f6d1b870e common: Rework slot vector (#5212) 2026-10-01 16:39:47 -07:00
Kravickas ef08b1e1fd V_ALIGNBIT_B32 / V_ALIGNBYTE_B32 fixup (#5186) 2026-10-02 01:40:59 +03:00
Marcin Mitura d8548fc36b kernel: Implement sceKernelReleaseFlexibleMemory and POSIX mlock/munlock aliases (#5182)
- Match libkernel 16 KB page alignment and madvise/VirtualAlloc(MEM_RESET) page release semantics
- Return ORBIS_KERNEL_ERROR_EINVAL on failure or invalid parameters
- Add posix_mlock/munlock with parameter checks and wrap sceKernelMlock/munlock
- Register POSIX and SCE NID mappings in libkernel and libScePosix
2026-10-01 15:39:48 -07:00
nikmparis217-ux 7e77898756 video_core: Fix mip layout and detiling of tiled textures (#5196) 2026-10-02 01:16:18 +03:00
artemkaVGandClaude Opus 5.5 fecfbed092 texture_cache: Avoid associating color images with stencil (#5118)
* vk_rasterizer: Only redirect stencil reads for stencil-compatible formats

The stencil-to-depth association is keyed on the stencil plane address
alone, so it also lands on unrelated surfaces that reuse that memory.
Following it for a non-stencil format builds a view of the depth-stencil
image in another compatibility class with a Depth|Stencil aspect, and
storage writes through that view corrupt the depth buffer. Only redirect
when the request can actually be a stencil view.

Together with readbacks set to Precise this fixes the missing world
geometry in Uncharted: Drake's Fortune Remastered (CUSA03280).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* texture_cache: Only link stencil images with a stencil format

Don't associate a color image with the depth buffer in the first place,
as suggested in review, instead of skipping the redirect in BindTextures.
FindDepthTarget now only links the placeholder or an image with a stencil
compatible format at the stencil address, and doesn't create a
placeholder over a color image. The BindTextures check is reverted.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* texture_cache: Keep dummy stencil associations at reused addresses

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 17:08:11 +03:00
Kravickas dd43d1cac9 V_CVT_PK_U8_F32 fixup (#5194) 2026-10-01 14:45:59 +03:00
squidbus 5ae2caf310 shader_recompiler: Fix OpImageTexelPointer coords for 1D (#5203) 2026-10-01 14:38:35 +03:00
Stephen Miller d9cf41ba0a Allow InverseBallot folding to fail on unhandled immediate arguments (#5202)
InverseBallotEliminationPass is mainly an optimization. Makes no sense to crash the emulator when this wouldn't actually cause issues.
2026-09-30 21:12:52 -05:00
squidbus 12927c1b9a shader_recompiler: Remove unused IAddCarry32 (#5201) 2026-09-30 18:52:36 -07:00
TheTurtle 259e815af1 resource_patching: Patch thread id add instead of id itself (#5199)
* resource_patching: Patch thread id add instead of id itself

* constant_propagation: Fold ISub32 with zero right arg
2026-10-01 03:02:41 +03:00
TheTurtle d1cb90dbbe translate: Restore simplier ADDC implementation (#5200) 2026-10-01 03:02:36 +03:00
Marcin Mitura 2338a06f92 video_core: Fix sparse backing offsets, barriers, and memory budgeting (#5193)
- Fix sparse backing offset calculation in BufferCache (block shift)
- Enforce image memory barriers when previous state contains write flags
- Adjust dynamic GC pressure and staging buffer trim thresholds
- Track GDS buffer write access in Rasterizer buffer binding
- Ensure a minimum physical memory floor on integrated GPUs
2026-09-30 16:19:33 +03:00
artemkaVGandClaude Opus 5.5 3f21ee0bec shader_recompiler: Lower PackedAncillary from attribute loads (#5141)
* shader_recompiler: Zero PackedAncillary left over after lowering

LowerPackedAncillary replaces the raw ancillary VGPR value with zero once
it lowers a bitfield extract from it. Since #5116 moved
LowerHardwareIntrinsics after dead code elimination, a dead extract is
already gone at that point, so the raw value is never zeroed and reaches
the SPIR-V emitter, which cannot emit it. God of War III (CUSA01715)
crashes on fs 0xeb50917148e7d775, where the shader reuses VGPR4 and one
path still carries the ancillary value into a Phi.

Zero any GetAttributeU32 PackedAncillary still left after the lowering
loop. The pass order from #5116 is kept, and shaders that compiled
before are unaffected, since the emitter could not handle the raw value.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* shader_recompiler: Lower PackedAncillary from its load

Start from the GetAttributeU32 that loads PackedAncillary, lower the
bitfield extracts that use it and then always replace the load with
zero, as suggested in review. This no longer depends on an extract
surviving DCE, so the separate loop after lowering is removed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 13:07:00 +03:00
Kravickas 94e2177815 V_BFM_B32 fixup (#5185) 2026-09-29 16:36:55 -07:00
squidbus 81489374e5 memory_patcher: Support patching other executables (#5184) 2026-09-29 16:00:17 -07:00
squidbus e754ce62eb spirv: Fix gradient and offset for 1D images (#5171) 2026-09-29 13:57:11 -07:00
nikmparis217-uxandnikmparis217-ux 8c91be2b45 shader_recompiler: Read user data from the flat buffer (#5181)
Co-authored-by: nikmparis217-ux <295578344+nikmparis217-ux@users.noreply.github.com>
2026-09-29 23:36:59 +03:00
nikmparis217-uxandnikmparis217-ux 1a0f5be8df vk_rasterizer: Bind a default sampler for S# with undefined fields (#5137)
Co-authored-by: nikmparis217-ux <295578344+nikmparis217-ux@users.noreply.github.com>
2026-09-29 23:36:44 +03:00
Marcin Mitura eb2fb486ef kernel: Implement sceKernelGetProcessType (#5178)
- Handle calling process PID aliases (GLOBAL_PID, -1, 0)
- Return PTYPE_BIG_APP for emulated process
- Return ORBIS_KERNEL_ERROR_ESRCH for non-existent processes instead of ENOSYS
- Add OrbisKernelProcessType enum definition (PTYPE_BIG_APP, PTYPE_MINI_APP, PTYPE_SYSTEM, PTYPE_NONGAME_MINI_APP)
2026-09-29 13:04:19 -07:00
Marcin Mitura c810d6e14f core: Fix system_reserved_addr initialization typo (#5177) 2026-09-29 12:42:50 -07:00
georgemoralis cecd03b74a scePthreadRwlockTimedrdlock / scePthreadRwlockTimedwrlock fix (#5175)
* scePthreadRwlockTimedrdlock / scePthreadRwlockTimedwrlock take a relative timeout in  microseconds (SceKernelUseconds), not a pointer to an absolute timespec like the POSIX calls.

* changed naming to proper

* make rwlock happy
2026-09-29 08:01:53 -05:00
Stephen Miller 736b5ba8c2 Core: Fix recently added settings (#5172)
* Fix config annoyances

Removed a million "Windows static guest red-zone protection" logs, removed the excessively wordy logging for red-zone being enabled, made the red-zone patches setting a proper setting in our general category (with backwards-compat for the old setting behavior so users don't need to change anything and GUI doesn't need adjusting)

Also fixed implementation for the userfaultfd and inline_fetch_parsing config settings introduced in recent PRs. Due to oversights from those respective devs, neither setting was actually getting read from the config.

* Nuke the red-zone config tests

These were all dependent on the old behavior. There's no point in these now that red zone patches are a proper config setting.
2026-09-29 08:40:58 +03:00
squidbus e35735c2ed Revert "Do not turn off auto patching when IPC is enabled (#5164)" (#5170)
This reverts commit 197655f80e.
2026-09-28 16:40:30 -07:00
nikmparis217-uxandnikmparis217-ux c01ae7e6e8 page_manager: Keep the fault probe within the faulting page (#5150)
Co-authored-by: nikmparis217-ux <295578344+nikmparis217-ux@users.noreply.github.com>
2026-09-29 01:30:21 +03:00
Stephen Miller 359234bbb5 Perform bounds checking in is_allocated (#5158)
Garbage indexes could get marked as allocated, provided the oob index happens to point to a bit that's set to 1.
2026-09-29 01:29:06 +03:00
nikmparis217-uxandnikmparis217-ux 4c7b287f18 shader_recompiler: Eliminate readlanes before the tessellation and ring passes (#5169)
Co-authored-by: nikmparis217-ux <295578344+nikmparis217-ux@users.noreply.github.com>
2026-09-29 01:26:47 +03:00
nikmparis217-uxandnikmparis217-ux fb6367d290 shader_recompiler: Put 32-bit literals in the high dword of 64-bit floats (#5114)
Co-authored-by: nikmparis217-ux <295578344+nikmparis217-ux@users.noreply.github.com>
2026-09-28 14:46:53 -07:00
TheTurtle fca10b266d video_core: Remove batching (#5165) 2026-09-28 23:41:34 +03:00
kalaposfos13 197655f80e Do not turn off auto patching when IPC is enabled (#5164)
* Do not turn off auto patching when IPC is enabled

* Advertise the new patching behaviour to launchers via IPC
2026-09-28 10:47:43 -07:00
Vladislav Mikhalin 4d3853fe48 revert vdec2 to its original form (#5160) 2026-09-28 16:15:55 +03:00
squidbus 9fdaeb03ce vk_instance: Disable list restart on KosmicKrisp (#5161) 2026-09-28 01:07:35 -07:00
Stephen Miller e868daca08 Don't run FindLibrary before actually checking id size (#5157)
Ancient libSceFios2 versions have a module_stop export which falls into the `ids.size() == 1 && sym_type == Loader::SymbolType::NoType` branch. Because we were initializing library and module up here, the game was accessing oob indexes and causing debug asserts.
2026-09-27 23:24:31 -07:00
squidbus 4cbd23ef6d shader_recompiler: Add missing op result type (#5156) 2026-09-27 19:27:55 -07:00
squidbus f6cd16e85e shader_compiler: Improve image type compatibility (#5133)
* shader_recompiler: Handle 1D images as 2D for compatibility

* shader_recompiler: Restore Cube image type and move array lowering to backend

* shader_recompiler: Move cube calculations to SPIR-V
2026-09-27 18:17:28 -07:00
squidbus 20d3755866 big_picture: Allow launching games without update (#5136) 2026-09-27 16:31:09 -07:00
xop 282e5c792b shader_recompiler: Set SCC carry-out on S_ADDC_U32 (#5030) 2026-09-27 14:46:31 -07:00
nikmparis217-uxandnikmparis217-ux e0cd957ace shader_recompiler: Define SampleId for BaryCoordSmoothSample on the KHR path (#5131)
Co-authored-by: nikmparis217-ux <295578344+nikmparis217-ux@users.noreply.github.com>
2026-09-27 14:09:43 -07:00
Marcin Mitura 5ea46a6741 core: Prevent uninitialized start_time and race in UpdatePlayTime (#5142) 2026-09-28 00:07:14 +03:00
kalaposfos13 cc3d367ec7 Rewrite LIB_FUNCTION and LIB_OBJ macros to call a common function to optimize binary size (#5144)
* Rewrite LIB_FUNCTION and LIB_OBJ macros to call a common function to optimize binary size

* fix tests
2026-09-27 23:44:06 +03:00
kalaposfos13 2c3c12a078 We've improved system software performance and stability. (#5154) 2026-09-27 23:43:40 +03:00
Vladislav Mikhalin 883a887545 vdecsw: fix issues introduced by touching the AI code (#5153)
* Revert "touchups"

This reverts commit 9f78047db8.

* just the renames
2026-09-27 22:59:16 +03:00
squidbus 916dea4302 externals: Update mesa-kosmickrisp (#5152) 2026-09-27 21:58:59 +03:00
Marcin Mikołajczyk bcf083f044 Clamp end address for tracked pages to 40bit (#5151) 2026-09-27 21:23:50 +03:00