Commit Graph
12196 Commits
Author SHA1 Message Date
Yuri Olive 196e2e2ada feat(libSceNetCtl): export missing firmware interfaces 2026-10-19 14:55:22 -03:00
Adrià 8e0fde7d59 Merge pull request #7091 from Bl4ckk01/feat/ces-sjis-cp1250
feat(libSceCesCs): implement Shift-JIS CP932 and CP1250 encoding conversions
2026-10-19 19:49:48 +02:00
Adrià 76b836d365 Merge pull request #7087 from Aryansh1520/new-topic
feat(libSceRudp): implement sceRudpNetReceived and sceRudpEnableInternalIOThread2
2026-10-19 19:49:42 +02:00
Atharv Jairath 81cd06b8bb fix(http): make URI parsing independent of host locale 2026-10-19 23:17:34 +05:30
Ondra97 ce81a77d1a fix(libc): avoid premature scaled hyperbolic overflow 2026-10-19 19:47:19 +02:00
Adrià 8d5d4df966 Merge pull request #7181 from milescoviello/fix/videodec2-empty-parameter-sets
fix(libSceVideodec2): skip the parameter-set copy when there are none
2026-10-19 19:46:41 +02:00
Federico Marras 1537dff78b feat(libSceNet): accept sceNetClearDnsCache with no library DNS cache to drop 2026-10-19 19:41:49 +02:00
fma-rc f50326165e feat(shader): decode MIMG opcode 0xb8 as image_sample_c_o_a 2026-10-19 19:41:16 +02:00
Federico Marras 6dc7c9fbb2 feat(libSceRazorCpu): run the data tag and logical file access calls without a capture 2026-10-19 19:39:24 +02:00
Adrià 48790e0233 Merge pull request #7039 from nabil88/fix/windows-libkernel-and-tests
feat(libkernel): implement getdtablesize and fix Windows host-tree removal
2026-10-19 19:36:18 +02:00
Adrià a77e40f93f Merge pull request #7070 from milescoviello/feat/kern-proc-vmmap
feat(libkernel): report the guest address-space map through kern.proc.vmmap
2026-10-19 19:36:11 +02:00
Adrià ea3e930003 Merge pull request #6896 from milescoviello/perf/compute-pipeline-timer
perf(agc): time compute pipeline creation
2026-10-19 19:36:03 +02:00
HQasperandClaude Opus 5.5 612b41e4f3 perf(agc): resolve DISPATCH_INDIRECT thread dimensions on the GPU
An indirect dispatch with USE_THREAD_DIMENSIONS read its thread counts on the
CPU, which waits for the recorded work that stores them. The argument kernel now
turns them into group counts on the GPU and copies the counts into the
ShaderData thread limit, so the dispatch stays on the GPU path.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 19:36:01 +02:00
Adrià 68447804da Merge pull request #6975 from T3cm0/bionic/libc-addstd
feat(libc): implement ios_base::_Addstd
2026-10-19 19:35:57 +02:00
Nithishvelan M 64fa4c277d fix(libc): compute tgammaf in double to match FreeBSD msun and avoid host float rounding 2026-10-19 23:05:15 +05:30
Dean Galvin cda9264590 Merge main into pr-6479 via the rebased #6457
# Conflicts:
#	core/libs/prx/libSceAgcDriver/Graphics/src/GuestBufferMemory.cpp
2026-10-20 06:31:11 +13:00
Dean Galvin 258a62c1ea Merge main into pr-6730 via the rebased #6457
# Conflicts:
#	core/libs/prx/libSceAgcDriver/Graphics/src/GuestBufferMemory.cpp
2026-10-20 06:31:06 +13:00
Dean Galvin e42de06845 Merge main into pr-6457
# Conflicts:
#	core/libs/prx/libSceAgcDriver/Graphics/src/GuestBufferMemory.cpp
2026-10-20 06:30:38 +13:00
primesoul-web 8454677187 feat(libs): the sceImeOpen text and external-keyboard filters
The text filter follows KytyPS5's contract; the external keyboard filter is
stored on the session and is not called for the host input path, which delivers
no key data.
2026-10-19 17:29:10 +00:00
al3w0f205 173c827c65 feat(libSceBluetoothHid): export missing firmware functions from database 2026-10-19 12:27:32 -05:00
Adrià Franch 2ae47ba41f fix(agc): guard the Linux image span with __linux__ so macOS keeps the uncached path 2026-10-19 19:26:53 +02:00
ANONYMOUSZED-beep 25e700faba perf(agc): cache the main image's page states on Linux 2026-10-19 19:26:32 +02:00
Dean b6583dd868 Merge pull request #7902 from mopga/fix/relinker-null-symbol-index-zero
fix(relinker): accept relocations against symbol index 0 for Windows and macOS
2026-10-20 06:22:01 +13:00
Dean ca632b1eac Merge pull request #7843 from hypermoist/feat/libc-wide-case-mapping
feat(libc): implement wctrans, towctrans and the Dinkumware case-mapping helpers
2026-10-20 06:21:47 +13:00
pushkarreddyy 53617c5a6a feat(libSceAcm): validate context and batch parameters in batch wait and lifecycle exports 2026-10-19 22:51:32 +05:30
KernelPanicNTandClaude Opus 5.5 dcd9cf8053 fix(libSceLoginDialog): return the module's error codes and check the open param
Replace the 0x80B8xxxx common-dialog codes with the module's 0x8134xxxx
codes, validate the sceLoginDialogOpen param, and write the module's
result words from sceLoginDialogGetResult.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 17:11:29 +00:00
KernelPanicNTandClaude Opus 5.5 28d2d70150 fix(libSceVoice): return the module's initialization errors
A second sceVoiceInit returns 0x804E0802, and sceVoiceStart,
sceVoiceCreatePort and sceVoiceGetPortInfo return 0x804E0801 before
checking any argument while the library is not initialized, as the
shipped module does.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 17:10:05 +00:00
Akul Tyagi 2fa97c7db0 test(libc): cover integer builtins edge cases
Add edge case test rows in guest_integer_builtins for zero shifts, cross-word shift boundaries, zero bitcounts, comparison symmetry, arithmetic identities, division boundary and wrapping cases.
2026-10-19 22:38:38 +05:30
mopgobopotandClaude Opus 5.5 e3e05d9171 fix(relinker): do not take instructions another AMD-only stub moved as a short instruction's followers
A short AMD-only instruction takes the following instructions into its stub until its site fits a jump. The loop did not check which instructions an earlier 256-bit store island had already claimed, so with --to-rosetta two trampolines covered the same bytes: for je; jmp; vmovups [rdi],ymm0; rcpps xmm1,xmm2 followed by adds, the RCPPS site at +8 overlapped the island at +11, the patched code crashed, and the real patchers failed with 'AMD-only site bytes changed before patching'. A claimed follower now ends the attempt: an optional instruction such as RCPPS or RDPID is kept, and any other instruction fails with an error naming the moved follower.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 20:07:03 +03:00
mopgobopotandClaude Opus 5.5 d37221a00a fix(relinker): move in-place AMD-only replacements into a short instruction's stub
A short AMD-only instruction lowered through a stub takes the following instructions with it. When one of them is an AMD-only instruction that is replaced in place (MOVNTSS, MOVNTSD, MONITORX, MWAITX, and RDSEED and CLWB for Rosetta), MatchSequence found no out-of-line lowering for it and the conversion failed with 'AMD-only instruction sequence has no out-of-line lowering', for example on extrq xmm0,xmm1 followed by movntss [rdi],xmm0. A following instruction with an in-place replacement now has that replacement moved into the stub, with its RIP-relative displacement relocated. Out-of-line emission for 256-bit store windows is unchanged.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 20:01:41 +03:00
Federico Marras b336f0c4dc fix(relinker): validate Windows trampoline section placement and sites 2026-10-19 18:57:12 +02:00
Federico Marras d65c969df8 feat(libSceJpegDec): decode with a down scale of 2, 4 or 8
sceJpegDecParseHeader and sceJpegDecDecode threw for every down scale
other than 1. SharpProspero's JpegDec.cs documents the factors 1, 2, 4
and 8 and output dimensions that account for the down scale.

Decoder::Jpeg gains DecodeScaled, which decodes through libjpeg-turbo's
scaled inverse DCT, and ScaledDimension, its rounded-up output size.
sceJpegDecParseHeader reports the scaled output size; sceJpegDecDecode
checks the pitch and image buffer against it, writes the scaled image
and packs the output size into its result. A down scale of 1 still
decodes as before. Decode modes other than 0, other down scales and a
down-scaled CMYK or YCCK image still throw.
2026-10-19 18:57:12 +02:00
Federico Marras 792fb27631 feat(libc): list each interface's AF_LINK entry in getifaddrs on Linux
getifaddrs listed only the host's IPv4 and IPv6 addresses, so the
per-interface AF_LINK entries FreeBSD's getifaddrs puts first were
missing, and with them the interface index, hardware address, MTU and
counters and every interface without an address.

On Linux each interface now starts with an AF_LINK entry, followed by
its addresses, as FreeBSD 11.4's getifaddrs orders them. Its address is
a sockaddr_dl with the host index, type, name and hardware address
(none for a loopback), sized as FreeBSD's if_attach sizes it. Its
ifa_data is a 152-byte FreeBSD if_data filled as if_data_copy fills it:
type, address and header length, link state, MTU, speed and the host's
packet, byte, error, drop and multicast counters from sysfs, or the
host list's 32-bit counters when sysfs cannot be read. Fields with no
host equivalent are 0 and listed in the debt entry. Windows is
unchanged.
2026-10-19 18:57:12 +02:00
Federico Marras 87bd71d64c feat(libSceNet): reverse-resolve IPv6 addresses in sceNetResolverStartAton6 2026-10-19 18:57:12 +02:00
Federico Marras 323deb832a feat(audioin): implement sceAudioInGetGain and sceAudioInGetRerouteCount
Write the unattenuated linear gain 1.0f into *gain before checking the port handle in sceAudioInGetGain, and return 0 for open ports or SCE_AUDIO_IN_ERROR_INVALID_HANDLE (0x80260101) for closed or out-of-range handles in both sceAudioInGetGain and sceAudioInGetRerouteCount.
2026-10-19 18:57:12 +02:00
Federico Marras 4877716673 test(libSceNet): accept every unusable IPv6 loopback error in guest_sce_net
guest_sce_net skips its IPv6 checks when sending to ::1 fails and
HostIpv6LoopbackUnavailable confirms the host cannot reach it. The host
probe accepts EADDRNOTAVAIL, ENETUNREACH and EHOSTUNREACH, but the guest
check accepted only ENETUNREACH (51). On a Linux host without ::1 the
send can fail with EADDRNOTAVAIL instead, which the guest sees as 49,
and the test aborted in CheckUnspecifiedIpv6 instead of skipping.

Accept the guest numbers of the same three errors (49, 51 and 65).
2026-10-19 18:57:12 +02:00
mpratsakiandClaude Opus 5.5 c9731df4c9 fix(relinker): compare Windows file identities by handle
MinGW's std::filesystem::equivalent returns false for hard links whose
names give different permissions, such as .elf and .exe. The temporary
hard-link probe that worked around it failed on read-only files and on
directories that refuse the link. Compare the volume serial number and
file index from GetFileInformationByHandle instead.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 19:54:53 +03:00
Dean 7a015c0946 Merge pull request #7904 from mopga/fix/relinker-sort-guest-module-loads
fix(relinker): sort PT_LOAD entries of Linux guest modules by address
2026-10-20 05:54:46 +13:00
davidamsellemandClaude Opus 5.5 3440a1756f test(agc): skip vouched lookups where host imports report GPU reads as writes
On RADV, importing host memory and reading it from the GPU marks the
pages as written in the write watch. The test forces
APS5_WRITE_WATCH_IMPORTS=watch, so the vouch refuses the table and
supplyWords is never called. Probe host-import write protection on
Linux, as the Windows path already does, and skip when a GPU read
reports writes or the probe fails.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-19 18:54:37 +02:00
Dean f250687e23 Merge pull request #7903 from mopga/fix/relinker-unused-filter-non-got-imports
fix(relinker): keep non-GOT imports in unused-filter=1
2026-10-20 05:54:32 +13:00
Dean 245733e9ee Merge pull request #7847 from MarrasFederico/fix/datagram-receive-ipv6-unavailable
test(libSceNet): skip IPv6 datagram receive cases without an IPv6 loopback
2026-10-20 05:54:18 +13:00
Dean 738d884102 Merge pull request #7878 from xxLnolan/fix/libc-paf-mspace-memalign
fix(libc): implement PAF mspace memalign
2026-10-20 05:54:04 +13:00
Dean c66a207ddd Merge pull request #7842 from ionut27001/fix/libkernel-umtx-op1-eopnotsupp
fix(libkernel): fail _umtx_op operation 1 with EOPNOTSUPP as measured on a PS5
2026-10-20 05:53:50 +13:00
Dean c96dd980fd Merge pull request #7887 from thuanquang/test/file-lock-child-wait
test(libkernel): wait up to 30 s for the file lock test's child process
2026-10-20 05:53:28 +13:00
Dean 240255fcf8 Merge pull request #7924 from realshinmalphur/feat/net-process-time
feat(net): implement process-relative system time
2026-10-20 05:53:14 +13:00
Dean a4c04c75d6 Merge pull request #7921 from ntamas94/fix/sce-net-inet-pton-whitespace
fix(libSceNet): end IPv4 sceNetInetPton text at whitespace as the PS4 does
2026-10-20 05:52:50 +13:00
Dean a39411c67a Merge pull request #7906 from Rajkamalcode/fix/libc-bessel-zero
fix(libc): return -inf from y0f, y1f and ynf at zero
2026-10-20 05:52:35 +13:00
Dean b00edd174e Merge pull request #7892 from valenciana-nc/test/getdirentries-readonly-fresh-descriptor
test(libkernel): exercise read-only getdirentries buffers before EOF
2026-10-20 05:52:20 +13:00
Dean 0b6486704b Merge pull request #7915 from root-over/fix/libkernel-open-flags-before-path-v2
fix(libkernel): check open flags before the path in open, _open and openat
2026-10-20 05:52:06 +13:00
emirplus e229e3bd47 fix(libc): validate time ranges and null-terminate in asctime_s and ctime_s 2026-10-19 19:52:03 +03:00