Commit Graph
8546 Commits
Author SHA1 Message Date
ChadandClaude Opus 5.5 cf0955f277 docs: keep the Http2 cookie box entry beside the other libSceHttp2 entries
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-06 15:13:58 -05:00
Chad 64f12cf39b Merge remote-tracking branch 'upstream/main' into feat/http2-cookie-box 2026-10-06 15:13:46 -05:00
Chad d2a0b0f7af Merge remote-tracking branch 'upstream/main' into feat/http2-cookie-box
# Conflicts:
#	docs/dev/TechnicalDebt.md
2026-10-06 13:42:48 -05:00
ChadandClaude Opus 5.5 cef560ecaf docs: record the FreeBSD 11.0 assumption for process-shared barrier attributes
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-06 13:41:05 -05:00
Fishybeing c6a91e15fd docs: describe the barycentric fallback in TechnicalDebt accurately 2026-10-06 19:14:41 +02:00
Alberto RuizandClaude Opus 5.5 bdeeb17326 fix(json2): throw on numbers that overflow a double
Whether the console's parser rejects 1e309 or stores an infinite real
is unknown, and RFC 8259 allows both. Following the exact-or-throw rule,
sce::Json::Parser::parse now throws with the number text and a note that
the behaviour is unverified, instead of returning JsonErrorParse. The
partially built tree is freed before the exception leaves the parser.
The case is listed under unknown function info in TechnicalDebt.md.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01R5WJS4ZdQynAJesCZKH5hb
2026-10-06 18:37:38 +02:00
Adrià FranchandClaude 05de11ac1e feat(libSceAjm.native): implement sceAjmBatchJobGetInfo
Co-Authored-By: Claude <[email protected]>
2026-10-06 18:01:46 +02:00
Claude 16e76301ab feat(libSceAgc): implement the WRITE_DATA destination and cache policy patches
sceAgcWriteDataPatchSetDst, sceAgcWriteDataPatchSetCachePolicy, their
Async forms and sceAgcAsyncWriteDataPatchSetAddressOrOffset threw. They
now rewrite a WRITE_DATA packet in place: the destination in the
graphics (sceAgcDcbWriteData) or compute (sceAgcAcbWriteData) encoding,
the cache policy in bits 25-26 and the address in dwords 2-3, so the
patched packet equals the one written with those values. A register
destination is rejected when the packet requests write confirmation,
as when the packet is written.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-06 14:51:07 +00:00
alfalfa-starandClaude Opus 5.5 98ed835123 feat(agc): run COND_INDIRECT_BUFFER branches whose comparison always passes
PPSA14632 (Unreal Engine) writes sceAgcCbBranch(mode 1, compare
function 0, mask 0, reference 0) with a then buffer and a null else
buffer of 0 dwords. It leaves the compare address uninitialised, so it
is sometimes only 4-byte aligned. The writer rejected the null else
buffer and the misaligned compare address, and the driver accepted
opcode 0x3f only as the 4-dword INDIRECT_BUFFER, so the 14-dword branch
would have failed at submission.

sceAgcCbBranch no longer checks the compare address of an always-pass
branch, which reads nothing, or the address of a buffer of 0 dwords.
The driver runs the first buffer of an always-pass COND_INDIRECT_BUFFER
in modes 1 and 2 (if-then and if-then-else) in place of the packet. A
comparison, a predicated branch and other modes throw.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-06 16:12:31 +02:00
Claude 8d7ff94689 feat(libSceKeyboard): translate the 106-key arrangement in sceKeyboardGetKey2Char
The 106-key (Japanese) arrangement threw. Its alphanumeric layer now
follows the JIS layout of the HID usages: the symbol keys right of the
digits and letters, the Ro key (0x87) and the Yen key (0x89). With the
Kana LED set it still throws, as the kana the console returns are
unknown.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-06 14:02:11 +00:00
Adrià FranchandClaude 04ed454f75 feat(libSceSystemService): implement Disable/ReenableMusicPlayer
Co-Authored-By: Claude <[email protected]>
2026-10-06 15:16:45 +02:00
Adrià FranchandClaude c7abfa89b2 feat(libSceRazorCpu): implement sceRazorCpuFlushOccurred
Co-Authored-By: Claude <[email protected]>
2026-10-06 15:12:53 +02:00
Adrià FranchandClaude 7389b2581f feat(libc): implement std::_Fiopen
Co-Authored-By: Claude <[email protected]>
2026-10-06 15:09:04 +02:00
Adrià FranchandClaude a546bbef93 feat(libc): implement collate<char>::_Getcat
Co-Authored-By: Claude <[email protected]>
2026-10-06 14:53:47 +02:00
Celegans12 5e18e84f33 feat(ajm): implement sceAjmBatchJobControl
sceAjmBatchJobControl threw. It now appends a control job that keeps
the sideband input pointer and runs at sceAjmBatchStart: RESET (bit 13)
clears the context as sceAjmBatchJobClearContext does, INITIALIZE
(bit 14) initializes the codec, and SIDEBAND_GAPLESS_DECODE (bit 45)
overwrites the gapless total and skip counts, in this order.

The sideband input holds the gapless decode first, then the codec's
initialize parameters: 8 bytes for ATRAC9, 12 for Opus, none for MP3.
The output is the 8-byte result. Other flags, INITIALIZE for other
codecs, and other sizes throw. SIDEBAND_GAPLESS_DECODE without RESET
throws too: RPCSX and shadPS4 keep zero counts there. The bits and the
order follow shadPS4 (PS4), the overwrite with RESET follows RPCSX, and
the sizes follow the one title seen.
2026-10-06 14:45:10 +02:00
alfalfa-starandClaude Opus 5.5 70864694d3 fix(audioout): accept a 3D latency of 1 in sceAudioOut2Set3DLatency
PPSA14632 calls sceAudioOut2Set3DLatency(0xFF, 1) during its audio
setup (eboot 0x5613e2c) and fails the setup on a nonzero return. Only
latency 2 from PPSA26344 was accepted, so the call threw. Latency 1 and
2 are now accepted for the system user; 0, 3 and other users still
throw.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-06 14:36:20 +02:00
Adrià FranchandClaude 109f120595 feat(kernel): apply the memory type in sceKernelMtypeprotect
Co-Authored-By: Claude <[email protected]>
2026-10-06 14:32:47 +02:00
Adrià FranchandClaude 263cb6626c feat(jpegenc): honor the encode restart interval
Co-Authored-By: Claude <[email protected]>
2026-10-06 14:16:07 +02:00
Adrià FranchandClaude 803f1b0e71 feat(videodec2): implement sceVideodec2GetAvcPictureInfo
Co-Authored-By: Claude <[email protected]>
2026-10-06 14:11:24 +02:00
Adrià FranchandClaude f617b40a45 feat(tools): add a hardware oracle for RDNA instruction semantics
Co-Authored-By: Claude <[email protected]>
2026-10-06 13:54:28 +02:00
Aryan RawatandClaude Opus 5.5 8ef51df303 feat(playerinvitationdialog): implement scePlayerInvitationDialogGetResult
scePlayerInvitationDialogGetResult makes the common dialog checks of
sceWebBrowserDialogGetResult: NOT_INITIALIZED before the dialog is
initialized, ARG_NULL for a null result and NOT_FINISHED until the
dialog finishes. The dialog shows no UI and sends no invitation, so the
finished dialog reports USER_CANCELED with error code 0. The 40-byte
result layout (error code, result, 32 reserved bytes) is taken from
SharpProspero.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-06 11:42:02 +00:00
LeandroLP23andClaude Opus 5.5 6b69c70a02 feat(font): implement sceFontWritingLineGetOrderingSpace
Report the spacing the writing line applies: the modelled line places
each run at the sum of the previous advances, so every space is 0.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-06 12:31:30 +02:00
ebosido444-ai e14184b915 feat(libc): implement std_execute_once
The plain-named twin of std::_Execute_once delegates to that symbol and inherits its call_once semantics; the name-equivalence assumption is recorded in TechnicalDebt. Registers guest_std_execute_once_tests.
2026-10-06 13:11:41 +03:00
Adrià FranchandClaude 7db0a80b19 libSceHttp: keep sceHttpUriSweepPath inside srcSize, cite shadPS4
Co-Authored-By: Claude <[email protected]>
2026-10-06 11:52:27 +02:00
Adrià FranchandClaude 92d79996c7 libSceNet: implement sceNetSendmsg and sceNetRecvmsg
Co-Authored-By: Claude <[email protected]>
2026-10-06 11:51:42 +02:00
Adrià FranchandClaude 16285b473f libSceHttp: classify the relative reference without host validation in sceHttpUriMerge
Co-Authored-By: Claude <[email protected]>
2026-10-06 11:51:34 +02:00
Adrià FranchandClaude 0207e28f88 feat(libSceHttp): implement sceHttpUriMerge
Co-Authored-By: Claude <[email protected]>
2026-10-06 11:51:34 +02:00
Merijn f98d73abc0 Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into fix/savedata-repeated-initialize
# Conflicts:
#	docs/dev/TechnicalDebt.md
2026-10-06 11:40:46 +02:00
Dean 5895ea721a Merge pull request #814 from adriadam10/feat/kernel-aio-batch
feat(libkernel): Aio batch submit, wait, cancel and delete
2026-10-06 22:34:58 +13:00
Dean 77b96c6c00 Merge pull request #813 from adriadam10/feat/http-offline-noops
feat(libSceHttp): add sceHttpSetResponseHeaderMaxSize, sceHttpRedirectCacheFlush, sceHttpsUnloadCert
2026-10-06 22:34:16 +13:00
Dean 2f7c9e5914 Merge pull request #812 from adriadam10/feat/ngs2-system-state
feat(ngs2): system sample rate, user data and lock
2026-10-06 22:33:34 +13:00
Dean 88ca57d7af Merge pull request #806 from adriadam10/feat/kernel-vectored-io
feat(libkernel): sceKernelReadv, Writev, Preadv and Pwritev
2026-10-06 22:32:09 +13:00
Dean 1e6b1cb7eb Merge pull request #804 from adriadam10/feat/rtc-format-rfc2822
feat(rtc): implement sceRtcFormatRFC2822 and the RFC 2822/3339 local-time formatters
2026-10-06 22:31:59 +13:00
Dean dd9b95790e Merge pull request #782 from adriadam10/feat/rtc-parse-datetime-rfc2822
feat(rtc): parse RFC 2822 and asctime strings in sceRtcParseDateTime
2026-10-06 22:31:17 +13:00
Dean 3365f98d1b Merge pull request #781 from adriadam10/feat/ngs2-custom-submixer-userfx
feat(ngs2): custom submixer rack with UserFx2 modules
2026-10-06 22:30:35 +13:00
Dean 25f76f27d9 Merge pull request #800 from Celegans12/docs/narrow-subgroup-exec
docs: record how EXEC written as a value is read on narrow subgroups
2026-10-06 22:29:53 +13:00
Dean fbcba205de Merge pull request #485 from RomainROCH/codex/fix-jpeg-formats
fix(jpegenc): honor chroma sampling and encode true grayscale JPEGs
2026-10-06 22:29:11 +13:00
Dean 6f3d485fca Merge pull request #723 from alfalfa-star/feat/libkernel-module-info-from-addr
feat(libkernel): implement sceKernelGetModuleInfoFromAddr
2026-10-06 22:29:00 +13:00
boykopovar e76c70f682 Merge pull request #676 from adriadam10/refactor/drop-bundled-middleware
refactor(libs): drop replacements of modules that titles ship themselves
2026-10-06 11:57:51 +03:00
MerijnandClaude Opus 5.5 d1d98a8261 fix(savedata): accept a repeated sceSaveDataInitialize3
A second sceSaveDataInitialize3 returned SAVE_DATA_ERROR_ALREADY_INITIALIZED.
PPSA12544's executable and its Unity SaveData plugin both initialize, and
the plugin raises Unity.SaveData.PS5.Core.SaveDataException on any error,
so the console must accept the second call. Initializations are now
counted; sceSaveDataTerminate ends the session at the last one and only
then checks for mounted slots.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-06 10:46:48 +02:00
MerijnandClaude Opus 5.5 f81425ec8e fix(audioout2): read grains at the next push and play them behind a cushion
A push mixed the ports' buffers at once and queued the mix on SDL, and
the queue level left out a 40 ms cushion that the SDL queue rarely
exceeded, so titles saw an empty queue. PPSA12544's FMOD output fills a
256-frame buffer after pushing it, reuses it two pushes later, and its
mixer thread can still be writing a buffer when the next push follows
within microseconds: a grain boundary broke about every 5 ms (an audible
crackle).

A push now records the buffers the ports point at and reads the previous
grain at the next push, 100 us after it. The mixed frames are played by
the SDL device callback, which waits for a 40 ms cushion before it plays
(again after running dry), and the queue level counts the unplayed
grains beyond that cushion. Recording the four buffers at every push
showed 27% of boundaries broken when read at the push, 59% when read two
pushes later and none when read at the next push; the title's output
went from 4-9% to none of its grain boundaries broken over 6,000 loud
grains.

AI-assisted: yes

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-06 10:45:27 +02:00
Merijn 44bfb9295d Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into feat/libs-ppsa12544-plugin-exports
# Conflicts:
#	docs/dev/TechnicalDebt.md
2026-10-06 09:54:07 +02:00
Merijn deddb1092e Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into feat/kernel-exception-handler-registration
# Conflicts:
#	docs/dev/TechnicalDebt.md
2026-10-06 09:54:05 +02:00
Merijn 4d47b3aac5 Merge branch 'main' of https://github.com/boykopovar/AnyPS5 into fix/videoout-unsupported-output-mode
# Conflicts:
#	docs/dev/TechnicalDebt.md
2026-10-06 09:54:03 +02:00
LeandroLP23andClaude Opus 5.5 025606ceb4 feat(font): implement sceFontGetFontResolution
Report the face's units per EM and the driver's face scale.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-06 09:34:56 +02:00
LeandroLP23andClaude Opus 5.5 27cb27dd67 docs(font): cite SharpProspero for the glyph count and glyph code signatures
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-06 09:34:04 +02:00
LeandroLP23andClaude Opus 5.5 34ba33faf7 feat(font): implement sceFontGetFontGlyphsCount and sceFontGetCharGlyphCode
Report the face's glyph count and the glyph index of a character through
the library's driver; the FreeType driver gains its glyphs_count entry.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-06 09:23:44 +02:00
alfalfa-starandClaude Opus 5.5 5e009d75ec feat(libkernel): implement the rtld thread atexit reference count
A title's libc.prx passes the dso address of __cxa_thread_atexit to
_sceKernelRtldThreadAtexitIncrement and fails the registration when it
returns nonzero. Increment takes a reference on the loaded image that
contains the address, so it stays mapped while thread_local destructors
are pending, and Decrement releases one. An address outside every
loaded image and a Decrement without a reference throw.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-06 08:36:23 +02:00
Adrià FranchandClaude 0f2699eef4 feat(libkernel): Aio batch submit, wait, cancel and delete
Co-Authored-By: Claude <[email protected]>
2026-10-06 08:11:07 +02:00
Adrià FranchandClaude bc7fdff9e5 feat(libSceHttp): add sceHttpSetResponseHeaderMaxSize, sceHttpRedirectCacheFlush, sceHttpsUnloadCert
Co-Authored-By: Claude <[email protected]>
2026-10-06 08:06:17 +02:00