Commit Graph
17207 Commits
Author SHA1 Message Date
xXPBSXxandClaude Sonnet 5.5 02027f0f8d docs(debt): note how titles call sceNetResolverStartNtoaMultipleRecords
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-25 20:29:33 +01:00
Adrià aeff26bd97 Merge pull request #9573 from zaryabzip/feat/pthread-create-suspended
feat(libkernel_sys): create threads suspended and resume them
2026-10-25 20:21:07 +01:00
Adrià 3a83687929 Merge pull request #9582 from UnhealthyKraken/fix/libkernel-variant-timedjoin
test(libkernel): cover sys and web timed join imports
2026-10-25 20:20:02 +01:00
Adrià 1a7a3dfd4f Merge pull request #9572 from JJenkx/windows/symbolize-sampler-stacks
feat(tools): symbolize the Windows samplers' stacks
2026-10-25 20:18:58 +01:00
Adrià ae7d59258e Merge pull request #9637 from ntamas94/feat/libSceAjm-ps4-batch-buffer
feat(libSceAjm): run PS4 batch buffer jobs in the console's chunk layout
2026-10-25 19:58:19 +01:00
Dean 8a29e08834 Merge pull request #9949 from wrocketdev/feat/libressl-ocsp-strings
feat(libSceLibreSsl): implement the OCSP status and reason strings
2026-10-26 07:49:27 +13:00
Adrià e1ef22e888 Merge pull request #9461 from milescoviello/fix/tsc-calibration-one-cpu
fix(libkernel): measure the TSC frequency on one CPU
2026-10-25 19:48:55 +01:00
Adrià 58c9977e3b Merge pull request #9562 from milescoviello/feat/uds-trophy-progress
feat(libSceNpTrophy2,libSceNpUniversalDataSystem): unlock progressive trophies through _UpdateTrophyProgress
2026-10-25 19:45:49 +01:00
Adrià a7a2eece49 Merge pull request #9437 from Ondra97/codex/fix-freetype-face-reference-lifetime
fix(libSceFreeType): preserve referenced face lifetimes
2026-10-25 19:35:22 +01:00
Adrià 2cd69d689a Merge pull request #9667 from xXPBSXx/docs/np-sns-debt-undeclared-names
docs(debt): make the NpSns entry and its note agree on three names
2026-10-25 19:35:10 +01:00
Adrià efe89d49c9 Merge pull request #9651 from xXPBSXx/docs/sce-net-connect-unspec-windows-bound-address
docs(debt): record what a Windows datagram socket keeps after sceNetConnect to AF_UNSPEC
2026-10-25 19:31:54 +01:00
Adrià b1f023dda3 Merge pull request #9486 from harisibrar1/fix/relinker-dlltool-temp-prefix
build(relinker): give dlltool a short temporary prefix for the msvcrt import library
2026-10-25 19:29:55 +01:00
Adrià d17785dba8 Merge pull request #9551 from JJenkx/perf/agc-sparse-mirror-range-run
perf(agc): mirror a sparse heap whose committed span crosses adjacent ranges
2026-10-25 19:26:00 +01:00
Adrià baabfbc204 Merge pull request #9474 from Gruzzberry/fix/access-symbolic-link
fix(libc): follow a Windows symbolic link in access
2026-10-25 19:14:11 +01:00
Adrià 5d48c6233e Merge pull request #9401 from tibzejoker/perf/grow-pipeline-store
perf(agc): size the pipeline store to the title's working set
2026-10-25 19:07:59 +01:00
Adrià dbeacda420 Merge pull request #9548 from jotitadev/fix/libatrac9-bitreverse-shift-by-32
fix(libSceAjm.native): guard LibAtrac9 BitReverse32/SignExtend32 against undefined shifts in the ATRAC9 decoder
2026-10-25 19:04:00 +01:00
Adrià 7a25f87620 Merge pull request #9500 from GitamarT045T3R/fix/libkernel-condattr-setclock
fix(libkernel): reject clocks libthr does not accept in pthread_condattr_setclock
2026-10-25 18:42:46 +01:00
Adrià 19fe176ddc Merge pull request #9456 from mazen320/feat/libc-time-get-vtable
feat(libc): export the time_get facet vtable as data
2026-10-25 18:38:52 +01:00
Adrià ac65cf490e Merge pull request #9613 from JJenkx/windows/libc-debt-bundled-readings
docs(debt): cite the bundled libc.prx for _Mtx_trylock, strdup and strndup
2026-10-25 18:36:43 +01:00
Adrià 506991994d Merge pull request #9496 from Gruzzberry/fix/open-excl-symbolic-link
fix(libkernel): fail open with O_CREAT and O_EXCL on a Windows symbolic link
2026-10-25 18:35:57 +01:00
Adrià 30bef4b0c1 Merge pull request #9501 from GitamarT045T3R/fix/libkernel-process-cpu-clock
fix(libkernel): answer process CPU clocks like FreeBSD instead of throwing
2026-10-25 18:34:57 +01:00
Adrià 2e1c72239b Merge pull request #9487 from Gruzzberry/fix/chmod-symbolic-link
fix(libkernel): follow a Windows symbolic link in chmod
2026-10-25 18:25:24 +01:00
Adrià f50caac5c2 Merge pull request #9494 from EagleBearerYS/fix/libscenet-inet-text-rules
fix(libSceNet): follow FreeBSD inet text rules for IPv6
2026-10-25 18:23:21 +01:00
Adrià 0c1563e357 Merge pull request #9493 from EagleBearerYS/fix/libscenet-closed-stream-readable
fix(libSceNet): report a stream whose peer closed as readable on Windows
2026-10-25 18:22:51 +01:00
Adrià 7e4f6e0440 Merge pull request #9482 from valenciana-nc/fix/pthread-attr-ended-thread
fix(libkernel): reject ended threads in pthread_attr_get_np
2026-10-25 18:14:22 +01:00
Dean 63fa26aa68 Merge pull request #10067 from kiansaeidnia/fix/web-change-selection
fix(web): reset batch selection when changing apps
2026-10-26 06:14:10 +13:00
Dean 68cc9d4e75 Merge pull request #10369 from krishalivaibhav/fix/import-watched-write-opt-in
fix(agc): let imports that cannot write guest memory keep the watch armed
2026-10-26 06:14:06 +13:00
Dean 59bf9480f7 Merge pull request #10432 from JAB-dev/fix/ngs2-pan-ps5
fix(libSceNgs2): return the PS5 pan codes and accept NaN pan inputs
2026-10-26 06:14:03 +13:00
Adrià FranchandClaude Haiku 5.5 8065d65f01 fix(libSceAjm): declare each batch export in one header
The public header audit found the three PS4 batch exports declared in libSceAjm's Api.hpp and in libSceAjm.native's, and the libSceAjmi run stub under its plain name. Keep them in libSceAjm.native and declare the libSceAjmi stub as sceAjmBatchJobRunBufferRa_nid_disambig1, as its definition is.

Co-Authored-By: Claude Haiku 5.5 <[email protected]>
2026-10-25 18:13:38 +01:00
ntamas94andClaude Opus 5.5 43c82acb0f docs(libSceAjm): say the empty PS4 batch contract needs a non-null address
A null batch address is refused whatever the size, so the accepted batch
of zero bytes is one at a real address, which is what TestConsoleEmptyBatch
starts.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 18:10:39 +01:00
ntamas94andClaude Opus 5.5 8c9c50b0b2 fix(libSceAjm): decode one ATRAC9 frame per PS4 run job without RUN_MULTIPLE_FRAMES
A probe on a PS4 decoded exactly one frame and reported 0 for an ATRAC9
run job without RUN_MULTIPLE_FRAMES. Jobs read from a PS4 batch buffer
now do the same. Jobs from the PS5 builders keep decoding their whole
input, which FMOD in PPSA29141 relies on.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 18:10:39 +01:00
ntamas94andClaude Fable 5.1 414985e073 docs(libSceAjm): say the null batch probe froze the console
Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-25 18:10:39 +01:00
ntamas94andClaude Fable 5.1 46f0e90b92 fix(libSceAjm): reject a null PS4 batch address
sceAjmBatchStartBuffer let a null batch of zero bytes through its
parameter check and formed the end pointer from it. A null batch now
returns INVALID_PARAMETER whatever the size, as the PS5 builders'
sceAjmBatchInitialize does; a batch of zero bytes still starts, runs
nothing and completes at once. A test covers both; neither was measured
on a console, which the debt entry says.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-25 18:10:39 +01:00
ntamas94andClaude Fable 5.1 e3917fa218 docs(libSceAjm): align the gapless and libSceAjmi debt entries with the PS4 probe
The gapless entry no longer says the one-frame behaviour is unverified,
since the probe measured it, and the libSceAjmi entry names the two
exports its file declares.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-25 18:10:39 +01:00
ntamas94andClaude Fable 5.1 6559a413b0 fix(libSceAjm): keep the libSceAjmi stub and refuse null batch buffers as a PS4 does
Review of the PS4 batch buffer change. The libSceAjmi stub of
sceAjmBatchJobRunBufferRa stays, declared with the _nid_disambig1 suffix
so that both libraries export the NID without defining one name.

sceAjmBatchStartBuffer reads the whole batch before running any job, as
probe batches on a PS4 showed: a buffer chunk of size zero is dropped
whatever its address, and a null address with a nonzero size refuses
the batch with INVALID_ADDRESS in the error record together with the job
chunk, the chunk's offset in the job and the job's return address, with
nothing of the batch run. Inputs and outputs share that rule. The
console-measured result flags move from test comments to the debt
entries.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-25 18:10:25 +01:00
ntamas94andClaude Opus 5.5 e2096fa49a feat(libSceAjm): run PS4 batch buffer jobs in the console's chunk layout
PS4 titles build AJM batches with the SDK's inline helpers, which call
sceAjmBatchJobControlBufferRa, sceAjmBatchJobRunBufferRa and
sceAjmBatchJobRunSplitBufferRa and start the buffer with
sceAjmBatchStartBuffer. The buffer belongs to the title, so it has to use
the console's chunk layout rather than this library's private records.

The builders write console jobs (job, return address, buffer and flags
chunks) and return the position after them. StartBuffer checks the
context, walks the chunks, skips inline data and runs each job as the
library's existing control, run or statistics job. Chunk headers are read
as the console's builders write them: bits 0-3 the kind, bit 4 a buffer's
output direction, bits 6-25 the payload; the other bits keep a reused
buffer's old bytes on a PS4. Malformed batches return MALFORMED_BATCH,
unknown chunk kinds and unimplemented control flags throw.

An ATRAC9 run with RUN_MULTIPLE_FRAMES reports which side ran out as a
PS4 does (0x8 input, 0x10 room, 0x18 both), and the ATRAC9 format reports
the frame's bitrate; both were measured on a PS4 with Knowledge is Power:
Decades (Wwise) batch dumps and probe runs. The vibration test's exact-fit
run expects 0x18 accordingly.

The throwing stubs in libSceAjm and the libSceAjmi copy of
sceAjmBatchJobRunBufferRa are dropped.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-25 18:10:24 +01:00
Adrià b4d8e8bb3b Merge pull request #9569 from dantdmdarealguy/docs/debt-video-recording-init-term
docs(debt): remove the sceVideoRecordingInit and sceVideoRecordingTerm entry now that they return 0 as the firmware does
2026-10-25 18:09:30 +01:00
Adrià 4051878f8c Merge pull request #9483 from JJenkx/fix/ajm-batch-bounds
fix(ajm): bound private batch job reads before execution
2026-10-25 18:08:45 +01:00
Adrià 4da123784e Merge pull request #9478 from EagleBearerYS/fix/libkernel-lstat-relinked-prx
fix(libkernel): resolve original .prx names to relinked .guest.prx in lstat
2026-10-25 18:06:42 +01:00
Adrià f55190f7e3 Merge pull request #9477 from EagleBearerYS/fix/libkernel-udp-unreachable-port
fix(libkernel): stop Winsock failing an unconnected datagram receive after an unreachable port
2026-10-25 18:04:34 +01:00
Dean 4718dedcf8 Merge pull request #10605 from harisibrar1/fix/rtti-ambiguous-private-base
fix(libc): reject a catch or upcast to a base that a private path repeats
2026-10-26 05:59:40 +13:00
Dean 309912635e Merge pull request #10732 from roboterspinne/fix/relinker-guest-tls-export-references
fix(relinker): reject non-TLS guest relocations bound to a guest TLS export
2026-10-26 05:58:59 +13:00
Dean 6b1f419fef Merge pull request #10731 from roboterspinne/fix/relinker-guest-tls-special-sections
fix(relinker): reject guest TLS symbols in special sections
2026-10-26 05:57:35 +13:00
Dean d7493d7226 Merge pull request #10713 from Filip722/fix/reject-lock-movnts-20261024
fix(relinker): reject LOCK-prefixed MOVNTSS and MOVNTSD
2026-10-26 05:57:30 +13:00
Adrià c9db3821d5 Merge pull request #9460 from dantdmdarealguy/build/windows-nominmax-fopen-test
build(windows): guard NOMINMAX in the long host path fopen test
2026-10-25 17:54:21 +01:00
Adrià 08f2d02a56 Merge pull request #9171 from DavidSamir/feat/libkernel-sys-getlogin-futimesat
feat(libkernel): implement getlogin
2026-10-25 17:54:15 +01:00
Adrià 5949d8bf92 Merge pull request #9173 from hypermoist/fix/libs-firmware-constants-4
fix(libs): return what the firmware returns from 29 more calls it does not implement
2026-10-25 17:52:10 +01:00
zaryabzip 0b60e97834 feat(libkernel_sys): create threads suspended and resume them
Implement pthread_attr_setcreatesuspend_np, pthread_resume_np,
pthread_resume_all_np and pthread_multi_np with the sce forms
scePthreadAttrSetcreatesuspend, scePthreadResume, scePthreadResumeAll
and scePthreadMulti, following FreeBSD 11.4 libthr and the firmware
13.42 libkernel_sys module. A thread created suspended waits before its
start routine, outside any cancellation point, until it is resumed.
sceKernelRaiseException throws on Windows for a thread still suspended
at creation.
2026-10-25 21:51:02 +05:00
Dean fe7e460568 Merge pull request #10752 from roboterspinne/fix/relinker-conflicting-dynamic-tags
fix(relinker): reject conflicting duplicates of the dynamic tags the pipeline reads
2026-10-26 05:49:08 +13:00
Dean Galvin 00843ba7d2 Merge branch 'main' into pr9949 2026-10-26 05:48:30 +13:00