3949 Commits

Author SHA1 Message Date
squidbus 0f094cb6c8 build: Explicitly turn off AVX512 (#4478) Pre-release-shadPS4-2026-05-25-0f094cb6c8ccb960af14c44e9a1fd5d4956a7f7f 2026-05-25 19:21:42 +03:00
squidbus 8a08bb46ee cpu_patches: Log full instruction on JIT patch failure. (#4477) 2026-05-25 08:31:31 -07:00
squidbus a57b3f3b74 Revert quad/rect list parameter forwarding changes (#4476)
* Revert "shader_recompiler: Pad number of TES passthrough outputs to fragment inputs if needed"

This reverts commit 6436063025.

* Revert "shader_recompiler: Only forward declared number of vertex inputs. (#4293)"

This reverts commit 47f5cc1437.
2026-05-25 06:55:20 -07:00
squidbus 19381b30e8 shader_recompiler: Pad number of TES passthrough outputs to fragment inputs if needed (#4471) 2026-05-25 05:13:30 -07:00
Stephen Miller 86a64fb980 Lib.Kernel: Various (mostly signal-related) fixes (#4463)
* sigaddset, sigdelset, sigismember

* Some define fixups

Based on decomp, PS4 sigset is defined as a u32[4]. This doesn't change any behavior, but makes my decomp-based sigaddset and sigdelset implementations function appropriately.
Additionally, define handler and sigaction functions as PS4_SYSV_ABI.

* Fix returns

* Implement signal, export _sigintr

In libkernel, signal just uses sigaction. No harm in implementing it, since we've got our own implementations for everything except sigaction (and sigaction is implemented for Unix platforms).

* Fix and cleanup posix_select defines

Swaps use of defines for just having static functions, and fixes the pd_set_posix struct to match FreeBSD/Orbis properly (sizeof(long) == 4 on Windows, which does not match Orbis).

* Fix siginfo struct

Again, sizeof(long) differs on different platforms. Need to use our proper typedef to ensure accuracy.

* Clang, the bane of my existance.

* Oops
2026-05-25 10:27:55 +03:00
georgemoralis 9dada49956 np score initial (#4472)
* move np_score to /np_score folder

* added more logging to np functions

* using common np_error file

* moved web_api to dedicated folder

* implemented some context creations for np_score so logging would be more productive
2026-05-25 09:38:43 +03:00
TheTurtle 5be4fb8584 vk_rasterizer: Fully initialize clear value of depth attachment (#4473)
Prevents redundant renderpass breaks from render state mismatching due to stale values being left in the array
2026-05-24 16:24:48 -07:00
Xupie c0d35332af Lib.Audio3d: implement sceAudio3dPortCreate and update sceAudio3dPortOpen (#4457)
* implement sceAudio3dPortCreate and closer implementation to sceAudio3dPortOpen

* clang format and forgot to remove some lines

* refactor port creation, small cleanups and openal

* rename parameter arguments

* idk might be correct

* floor size_this to closest multiple of 8
2026-05-24 20:07:04 +03:00
Stephen Miller e5c406d809 Upstreaming valid changes from others (#4469)
* Fix nids for strcmp vs strncmp

Co-Authored-By: m33ts4k0z <3597723+m33ts4k0z@users.noreply.github.com>

* Fix sign_bit_set logic

Co-Authored-By: m33ts4k0z <3597723+m33ts4k0z@users.noreply.github.com>

* Fix IterateDirectory on mounts

IterateDirectory would just retrieve the base path when trying to iterate /app0, since GetHostPath for the other path types would still return the base path.

Co-Authored-By: m33ts4k0z <3597723+m33ts4k0z@users.noreply.github.com>

* Fix function resolves

If multiple modules export the same library and module, then we would only check the first one we find for the symbol. This can end up breaking the font library stack

Co-Authored-By: m33ts4k0z <3597723+m33ts4k0z@users.noreply.github.com>

* Update fs.cpp

Co-Authored-By: m33ts4k0z <3597723+m33ts4k0z@users.noreply.github.com>

* Oops

---------

Co-authored-by: m33ts4k0z <3597723+m33ts4k0z@users.noreply.github.com>
2026-05-24 09:42:31 +03:00
Marcin Mikołajczyk 19f299714a Handle abs and clamp modifiers only for VOP3A instructions (#4467) 2026-05-23 14:40:58 -07:00
Marcin Mikołajczyk 65ab88dd11 Fix v_mad_u64_u32 (#4466) 2026-05-23 11:41:18 -07:00
Marcin Mikołajczyk d7eacc8a17 Set AccessFlagBits::eNone for PresentSrcKHR image layout (#4465) 2026-05-23 11:38:43 -07:00
georgemoralis 00339cf010 http part6 (#4460)
* added http* epolls

* changed info to debug

* one more info to debug

* helper function
2026-05-21 20:57:55 +03:00
georgemoralis 82beca2bbf http part5 (#4453)
* added async state sending support

* typo

* implemented blocking

* clang is not my friend

* fixed stephen's review

* code organize / nothing changed
2026-05-21 17:14:03 +03:00
Stephen Miller 03ebac577b Lib.VideoOut: Properly remove events on close (#4456)
* Fix flip status on close

* Store equeues by handle instead of pointer

As is, a game could call sceKernelDeleteEqueue on the equeue registered for flip/vblank events, and terminate the equeue while our VideoOut driver retains a valid pointer to it.
Changing to storing the equeue handle means we can check if the equeue still exists and prevent this.

* Remove flip and vblank events on sceVideoOutClose

* Don't forget to clear vectors

* Oops

Intended to erase the memset on FlipStatus, not VblankStatus.
2026-05-20 14:31:37 -07:00
kalaposfos13 f95edd27e0 major skill issue (#4451) 2026-05-20 09:31:23 +03:00
georgemoralis 6b5adca8a5 added some libScePosix functions (#4452) 2026-05-19 13:08:31 -05:00
Stephen Miller 7572c51c0e Lib.Audio3d: Implement sceAudio3dPortGetAttributesSupported based on currently handled attributes (#4450)
* Stub sceAudio3dPortGetAttributesSupported to return no supported attributes

* Report supported attributes

* Slight fix
2026-05-19 08:25:33 +03:00
georgemoralis 112a4561cf Http part4 (#4449)
* fix validation sequence in sceHttpCreateRequestWithURL2 as well

* Added timeout settings functions

* added redirect functions settings

* connection should snapshot the template's settings at creation

* sceHttpSetInflateGZIPEnabled,sceHttpSetRequestContentLength

* Https- enable/disable options functions
2026-05-18 23:43:23 +03:00
georgemoralis 88e562f63d http_part3 (#4443)
* verified sceHttpGetLastErrno with decompile

* sceHttpCreateRequest2 fixed validation order
2026-05-18 08:28:17 +03:00
Stephen Miller caec23154c Lib.SystemService: Add SDK checks for console language (#4444)
* Add proper SDK checks for language values

Fixes some crashes caused by otherwise valid languages in older titles.

* Rename firmware constants

Makes more sense this way, and works better in case we find an SDK check added in a more minor update.
Instead of 1.00 being 10, 1.50 being 15, and so on, this commit changes 1.00 to 100, 1.50 to 150, and so on.

* Claaaaang
2026-05-17 18:35:36 -07:00
georgemoralis 94786d70ca Http part2 (#4441)
* more uri work based on decompile and tests

* fix includes

* fix loader stubs

* cleanups

* sceHttpParseStatusLine matches decompile and tests

* sceHttpParseResponseHeader implemenation and tests

* try fixing no-internet path in sendrequest

* minimal state machine to support proper erroring of no-internet available

* more improvements

* more implementation based on stephen's comments

* some more fixes based on decompile
2026-05-17 22:54:34 +03:00
Stephen Miller c7686e33a8 Core: Fix file position after read-only file mmaps (#4442)
* Fix file position after file mmaps

* Oops
2026-05-17 22:29:13 +03:00
Connor Harrison 482d17c6e1 Load custom modules stored in custom_modules/<gameid> (#4440)
* Load custom modules stored in custom_modules/<gameid>

* Fix formatting
2026-05-17 21:11:21 +03:00
Ultra e9cbc02c01 Update Debugging.md (#4438) 2026-05-17 19:12:40 +03:00
squidbus f4b787f264 externals: Update MoltenVK (#4436) 2026-05-16 04:44:03 -07:00
georgemoralis 7337364f4c Http part1 (#4431)
* add parameters and logging

* added sceHttpUriBuild , fixes to sceHttpUriEscape ,sceHttpUriParse

* return an error to statuscode , this should be enough for no-connection
2026-05-15 23:35:31 +03:00
Niram7777 5b23711d04 Revert sdl3 bad rebase (#4433) 2026-05-15 21:29:40 +02:00
Stephen Miller 425f26c749 Let guest override argv[0] (#4432) 2026-05-15 20:46:12 +03:00
kalaposfos13 4fae53f791 Quadruple stub array capacity and rewrite generation logic to C++ templates (#4424)
* Quadruple stub array capacity and rewrite generation logic to C++ templates

* remove apple ifdef
2026-05-15 19:10:44 +03:00
Niram7777 b7a85c13b2 Flush log on terminate (#4429)
* Flush log on terminate

* Flush on unhandeld signal

* hexa code

Co-authored-by: kalaposfos13 <153381648+kalaposfos13@users.noreply.github.com>

---------

Co-authored-by: kalaposfos13 <153381648+kalaposfos13@users.noreply.github.com>
2026-05-15 18:36:27 +03:00
¥IGA 70f98ee85b [CI] Use VS 2026 (#4209) 2026-05-15 17:47:42 +03:00
georgemoralis 6b932bd6a6 Submodules updates (libusb,libressl,cpp-http,CLI11,openal) (#4428)
* update libusb

* libressl

* updated cpp-httplib

* update CLI11

* updated openal
2026-05-15 17:06:33 +03:00
kalaposfos13 e36dff45f4 Add setting to toggle Enter button from cross to circle (#4427)
* Add setting to toggle Enter button from cross to circle

* clang is not my friend :(
2026-05-15 14:05:00 +03:00
squidbus b89e356cfa videoout: Implement sceVideoOutSubmitChangeBufferAttribute (#4408) 2026-05-15 13:11:38 +03:00
kalaposfos13 50d33b4dbf Assert on attempting to login the same user for two different slots (#4421) 2026-05-15 12:50:28 +03:00
kalaposfos13 40237afd1d Update SDL3 submodule (#4422)
* Update SDL3 submodule

* new steam controller keybinds
2026-05-15 11:19:01 +03:00
kalaposfos13 1e58af0cc2 Revert "Assert on attempting to login the same user more than once (#4416)" (#4420)
This reverts commit a5885435d6.
2026-05-15 06:58:12 +02:00
Kravickas 44692090d2 handle DingDong (#4418)
When the rptr and wptr are equal, the ring is idle
2026-05-15 07:29:34 +03:00
Stephen Miller 85b6f5f505 Proper check for double init (#4419) 2026-05-14 18:18:16 -07:00
kalaposfos13 a5885435d6 Assert on attempting to login the same user more than once (#4416) 2026-05-14 23:00:42 +03:00
Valdis Bogdāns b39d529324 np-legacy-state-callback (#4410)
* Core: Add user state callback management and improve user login/logout handling

* Core: Implement handle key lookup and special handle checks in pad library

---------

Co-authored-by: w1naenator <valdis.bogdans@hotmail.com>
2026-05-14 22:22:43 +03:00
oltolm 9559468c2e core: simplify sysv_abi wrappers for MinGW-w64 GCC (#4402)
Use template <auto f> for HostCallWrapperImpl and OrbisWrapperImpl instead of passing the function type and value separately.

This keeps the wrapper behavior the same while matching the form MinGW-w64 GCC accepts.
2026-05-13 21:10:37 -07:00
Stephen Miller 622cfffaf2 Lib.Kernel: Export empty environment (#4409)
* Export empty environment

Media Player tries to read from environ before doing some rather freaky stuff, without anything exported it will just crash from dereferencing an invalid pointer.

* Set program name

Wasn't sure what the best way would be to do this

* Just stub to eboot.bin

Accurate enough, hopefully.
2026-05-13 20:50:45 -07:00
Stephen Miller 65986d8a8a Kernel.Pthread: Various fixes (#4406)
* Fix for SignalTo behavior

Should run FindThread to make sure thread input is valid.

* Missing mutex-related exports

* Oops

* All missing cond exports

We have these implemented, so we might as well export them.
I also organized them a bit.

* Implement pthread_attr_getscope, pthread_attr_setcreatesuspend_np, pthread_attr_setscope

Also export all of our pthread_attr functions.

* Oops

* Fix SchedPolicy::Fifo definition

Some tricks FreeBSD source performs breaks with this incorrectly set.
Specifically, stuff like setting priorities breaks because we do array accesses with priority - 1 like FreeBSD, but Fifo being 0 makes that an oob read.

* Fix error checks in pthread_attr_setschedparam

* Fix and run thread destructors

_sceKernelSetThreadDtors receives the function itself, not a pointer to the function.

* Oops

* Rewrite pthread_rename_np for accuracy

There's a couple details the initial implementation missed that decomp shows. We weren't locking, we weren't doing the reference add or delete ops, and we were erroneously skipping null names when real hardware actually seems to allow it (the only thing real hardware skips for null name is naming the thread stack).

* Avoid changing common code by using the converted thread name instead

Slightly cleaner code

* Oops

* Flip priority defines

This better matches with FreeBSD's defines, and fixes the returns of sched_get_priority_min and sched_get_priority_max

* Fix args and return for sched_get_priority_max and sched_get_priority_min

Behavior is based on my own kernel decomp (though what I'm seeing matches what red_prig's done for fpPS4 too).

* Better comment

why not

* Fix error behavior of scePthreadGetPrio

Can error from invalid thread input, which the function hardcodes as an ORBIS_KERNEL_ERROR_ESRCH.

* Fix pthread_setprio

This should use the RefAdd and RefDelete functions on non-curthread threads, not FindThread.

* Remove pthread_set_name_np

Decomp shows it's identical to pthread_rename_np.

* Bring back pthread_set_name_np

What I didn't realize was that it was a void method. Behavior is the same as pthread_rename_np though, so call it instead of doing the direct common setname call.

* Move pthread_set_name_np

Needs to be under pthread_rename_np so I can actually call it.

* Better implementation of pthread_getname_np

* rwlock types

Some Sony extension to rwlocks, paired with a proper SDK check specific to rwlock init. I've implemented both pthread_rwlockattr_gettype_np and pthread_rwlockattr_settype_np, and added the relevant SDK check for rwlockattr type.

* Missing thread unlock in SignalTo

SignalTo specifically runs FindThread, then unlocks before running pretty much the same code as Signal.

* Fix comment
2026-05-13 20:50:37 -07:00
Marcin Mikołajczyk 0add6b8c1f Neo: packed math for unsigned/signed integers (#4407) 2026-05-13 20:33:50 -07:00
Hog fb6502b8f1 fix: Swapped the ResolvedOverlaps Variables (#4405) 2026-05-13 20:33:39 -07:00
kalaposfos13 0c78ea9bba Swap Update and Defaults button order in settings migration popup (#4399) 2026-05-12 17:17:06 +03:00
Stephen Miller f510f9aef2 Core: Various new stubs (#4398)
* sceKernelGetProcessType

* sceCoredumpRegisterCoredumpHandler stub

* Better stub for sceCoredumpRegisterCoredumpHandler, stub sceCoredumpUnregisterCoredumpHandler

* sceNpSetNpTitleId stub

* sceNpSetContentRestriction stub

* sceKernelMlock stub

* posix_sigfillset

* posix_sigprocmask stub

Just logs the how parameter

* posix_msync stub

Just logging for now

* libSceContentExport stubs

* Clang

* sceVideoRecordingSetInfo stub

* sceKernelTitleWorkaroundIsEnabled

* Provide title workaround bits

Just grabbed them from fpPS4 code, I have a feeling actually applying these is gonna be a bit of a pain though.

* fpPS4 has a 0x39 bit, I guess that was probably added after 12.52 though.

* Bump to error

It's not going to work without proper sceKernelGetAppInfo workaround data

* Clang

* Clang2
2026-05-11 20:14:57 -07:00
Marcin Mikołajczyk b3bb383982 Enable VK_EXT_image_2d_view_of_3d and create 2D view compatible images if supported (#4397) 2026-05-11 20:13:08 -07:00