Commit Graph

361 Commits

Author SHA1 Message Date
alfalfa-star e91fe0f063 feat(libs): declare the exports PPSA14632 imports that no library provides
LEGO Horizon Adventures imports 19 functions that no library exports
and no open pull request adds, so it fails eager binding. They are
declared as throwing stubs. The two libSceAjmWVorbis imports have no
known name and are exported by NID from libSceAjm.native.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 07:10:13 +02:00
Dean cb3405d037
Merge pull request #1037 from Raghav314/fix/agc-unwritten-user-data
fix(agc): read unwritten user data registers as zero
2026-10-07 18:00:41 +13:00
Dean b62e84c8ca
Merge pull request #1035 from hugodearaujo/feat/agc-register-defaults-internal
feat(libSceAgc): implement sceAgcGetRegisterDefaultsInternal
2026-10-07 18:00:00 +13:00
Dean ed8dda83ec
Merge pull request #1030 from hugodearaujo/feat/agc-dcb-clear-state
feat(libSceAgc): implement sceAgcDcbClearState
2026-10-07 17:59:18 +13:00
Dean b33ac687c9
Merge pull request #1029 from hugodearaujo/feat/agc-dcb-set-cf-register
feat(libSceAgc): implement sceAgcDcbSetCfRegisterDirect and RangeDirect
2026-10-07 17:58:36 +13:00
Dean 63e02557ef
Merge pull request #1026 from hugodearaujo/feat/agc-wait-reg-mem-patch-mask
feat(libSceAgc): implement sceAgcWaitRegMemPatchMask
2026-10-07 17:57:55 +13:00
Dean 1acbeefef9
Merge pull request #1032 from gjonn/feat/ngs2-stereo-surround-mix
feat(libSceNgs2.native): mix a stereo mastering voice into a 6 or 8 channel render buffer
2026-10-07 17:56:41 +13:00
hugodearaujo bdfd0287e1 feat(libSceAgc): implement sceAgcGetRegisterDefaultsInternal
Return the version 0 internal register defaults, the internal
counterpart of sceAgcGetRegisterDefaults.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 23:43:04 -03:00
raghav314 f5a6a31b61 fix(agc): read unwritten user data registers as zero
A stage's user data registers are read for the count in its RSRC2
(COMPUTE_PGM_RSRC2 for compute). A register the title never wrote no
longer refuses the draw or dispatch: it reads 0, as Kyty and SharpEmu
read it and as AMD PAL and Mesa initialize the user data registers.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 08:09:54 +05:30
Dean 9ec263cec0
Merge pull request #887 from adriadam10/feat/libc-fiopen
feat(libc): implement std::_Fiopen
2026-10-07 15:30:30 +13:00
Dean 18b9994c76
Merge pull request #885 from adriadam10/feat/libc-collate-getcat
feat(libc): implement collate<char>::_Getcat
2026-10-07 15:29:48 +13:00
Dean f6f47bf1de
Merge pull request #880 from adriadam10/feat/kernel-mtypeprotect-type
feat(kernel): apply the memory type in sceKernelMtypeprotect
2026-10-07 15:28:25 +13:00
Dean 1d773dad2e
Merge pull request #722 from alfalfa-star/feat/libkernel-rtld-thread-atexit
feat(libkernel): implement the rtld thread atexit reference count
2026-10-07 15:27:44 +13:00
Dean e50814c9e7
Merge pull request #860 from ebosido444-ai/feat/libc-std-execute-once
feat(libc): implement std_execute_once
2026-10-07 15:25:29 +13:00
Gjon Gojcevic 5bae4df0b6 feat(libSceNgs2.native): mix a stereo mastering voice into a 6 or 8 channel render buffer
The mixing stage threw when a mastering voice and its render buffer had different channel counts. A 2-channel voice is now mixed into the first two channels of a 6- or 8-channel buffer; other mismatches still throw.
2026-10-06 22:23:40 -04:00
Dean 6e2c1f8992
Merge pull request #965 from hugodearaujo/feat/agc-async-cond-exec-patch
feat(libSceAgc): implement the async COND_EXEC patches
2026-10-07 15:21:47 +13:00
Dean 8545f330f1
Merge pull request #963 from JAB-dev/feat/agc-registration-max-name-length
feat(libSceAgcDriver): implement sceAgcDriverGetResourceRegistrationMaxNameLength
2026-10-07 15:21:05 +13:00
Dean 990c69645d
Merge pull request #936 from CnRJay/feat/agc-write-data-patch
feat(libSceAgc): implement the WRITE_DATA destination and cache policy patches
2026-10-07 15:19:43 +13:00
Dean f8975a8ef8
Merge pull request #1015 from hugodearaujo/feat/agc-dcb-end-of-shader-action-size
feat(libSceAgc): implement sceAgcDcbQueueEndOfShaderActionGetSize
2026-10-07 15:18:50 +13:00
Dean f1efcc6786
Merge pull request #975 from hugodearaujo/feat/agc-cb-cond-write
feat(libSceAgc): implement sceAgcCbCondWrite
2026-10-07 15:17:27 +13:00
Dean e4048a0989
Merge pull request #709 from merwie/fix/videoout-unsupported-output-mode
fix(videoout): report unavailable output modes instead of throwing
2026-10-07 15:15:22 +13:00
hugodearaujo 425ed24795 feat(libSceAgc): implement sceAgcDcbClearState
Write the 2-dword CLEAR_STATE (0x12) packet with a 4-bit command, the
packet the driver already validates and executes by restoring the
initial context registers.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 23:06:15 -03:00
Dean 66e0a1e9c5
Merge pull request #1019 from fisherjoey/feat/agc-semaphore-memory-register-multiple
feat(agc): declare sceAgcSetSemaphoreMemory and sceAgcDriverRegisterMultipleResources
2026-10-07 15:04:53 +13:00
hugodearaujo 8ab5fab84a feat(libSceAgc): implement sceAgcDcbSetCfRegisterDirect and RangeDirect
Write SET_CONFIG_REG (0x68) packets like the context, shader and user
config register setters: one register from a ShaderRegister, or a range
of values at an offset.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 22:52:29 -03:00
hugodearaujo 54eeadb3a2 feat(libSceAgc): implement sceAgcWaitRegMemPatchMask
Patch the mask of a wait packet like sceAgcWaitRegMemPatchReference
patches its reference: a 32-bit value written to the low mask word of a
32- or 64-bit WAIT_REG_MEM, rejected above 32 bits.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 22:34:29 -03:00
raghav314 60e16537dc docs: record the AJM resample assumptions in technical debt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 05:41:46 +05:30
Joey Fisher 23a6859a51 feat(agc): declare sceAgcSetSemaphoreMemory and sceAgcDriverRegisterMultipleResources 2026-10-06 18:07:53 -06:00
Dean fde401d41f
Merge pull request #992 from CnRJay/feat/ppsa23566-missing-exports
feat(libs): declare the exports PPSA23566 imports that no library provides
2026-10-07 13:02:56 +13:00
hugodearaujo 26eec5bee6 feat(libSceAgc): implement sceAgcDcbQueueEndOfShaderActionGetSize
The end-of-shader action is written by an inline SDK builder as a
RELEASE_MEM packet, so the size is the 32 bytes that
sceAgcCbReleaseMem writes and that sceAgcAcbQueueEndOfShaderActionGetSize
already returns.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 20:38:14 -03:00
Adrià ab9437e34d
feat(libkernel): implement scePthreadTestcancel and pthread_testcancel (#834) 2026-10-07 11:43:32 +13:00
Dean 25f311fa00
Merge pull request #559 from Phi1ow/implement-login-dialog
feat(logindialog): implement the libSceLoginDialog state machine
2026-10-07 11:41:57 +13:00
Dean b5c1d08bd9
Merge pull request #553 from Phi1ow/implement-userservice-foreground-and-ids
feat(userservice): implement foreground user, registered list, user colour and NP account id
2026-10-07 11:41:16 +13:00
Chad df98b8899e feat(libs): name the PPSA23566 stubs from the shadPS4 NID list and implement sleep
20 of the 31 NIDs have names in shadPS4's aerolib list. They are declared
under those names; POSIX sleep is implemented. The NpPartner001 and Psml
MFSR2 exports stay unnamed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 17:28:39 -05:00
JAB e289b56e6f
feat(libSceNgs2.native): implement sceNgs2RackGetInfo, sceNgs2VoiceGetPortInfo and sceNgs2VoiceQueryInfo (#958)
RackGetInfo reports the rack's handles, buffer, id, uid, option limits,
render count and active voices. VoiceGetPortInfo reports a port's matrix,
volume and destination. VoiceQueryInfo answers info id 0x4001 with the
voice channel count and throws for other ids. Assumptions are recorded in
TechnicalDebt.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 11:10:30 +13:00
Dean ebad6db846
Merge pull request #923 from Fishybeing/docs/barycentric-fallback-entry
docs: describe the barycentric fallback in TechnicalDebt accurately
2026-10-07 11:07:12 +13:00
Dean 84c058756b
Merge pull request #870 from aryanrawatispro-ship-it/feat/player-invitation-dialog-result
feat(playerinvitationdialog): implement scePlayerInvitationDialogGetResult
2026-10-07 11:05:26 +13:00
Dean 762bab6f9a
Merge pull request #863 from LeandroLP23/feat/font-writing-line-ordering-space
feat(font): implement sceFontWritingLineGetOrderingSpace
2026-10-07 11:04:45 +13:00
Chad 7cbf45b660 feat(libs): declare the exports PPSA23566 imports that no library provides
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 17:04:05 -05:00
Dean edf90b169f
Merge pull request #824 from LeandroLP23/feat/font-get-font-resolution
feat(font): implement sceFontGetFontResolution
2026-10-07 11:04:01 +13:00
Dean b3c0365824
Merge pull request #823 from LeandroLP23/feat/font-glyphs-count-char-glyph-code
feat(font): implement sceFontGetFontGlyphsCount and sceFontGetCharGlyphCode
2026-10-07 11:03:19 +13:00
Phi1ow 0178b6530e fix(logindialog): report user-cancelled and write only the leading result int32
sceLoginDialogGetResult zeroed 8 bytes of a result struct of unknown size and reported result 0
with user id 0. It now writes only the leading int32 (USER_CANCELED), like
sceWebBrowserDialogGetResult and like the sign-in dialog, so a title takes its "no user chosen"
path instead of reading an invalid user id. Records the dialog in the silent-stubs list in
docs/dev/TechnicalDebt.md.
2026-10-06 23:46:00 +02:00
Phi1ow f467f5174f docs(userservice): record the assumed NP account id and default colour
Per review: sceUserServiceGetNpAccountId reports success with account id 0 and
sceUserServiceGetUserColor returns blue by default; both are assumptions. Records them under
"Unknown function info" in docs/dev/TechnicalDebt.md.
2026-10-06 23:42:46 +02:00
Dean 5fc8755f4c
Merge pull request #961 from JAB-dev/feat/ngs2-mastering-gain
feat(libSceNgs2.native): mastering voice gain parameter
2026-10-07 10:22:26 +13:00
Dean a1107d2adf
Merge pull request #939 from CnRJay/feat/keyboard-jis-key2char
feat(libSceKeyboard): translate the 106-key arrangement in sceKeyboardGetKey2Char
2026-10-07 10:20:49 +13:00
CnR 7e3dcbc27e
feat(libkernel): implement sceKernelReleaseFlexibleMemory (#952)
* feat(libkernel): implement sceKernelReleaseFlexibleMemory

Unmaps the range through sceKernelMunmap, which returns its pages to
the flexible memory budget, as fpPS4 and prosper do.

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

* test(libkernel): keep the flexible memory release check apart from the batch map checks

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 10:20:07 +13:00
Dean 957171aeb3
Merge pull request #795 from CnRJay/feat/http2-cookie-box
feat(libSceHttp2): implement cookie boxes and requests without a content length
2026-10-07 10:19:25 +13:00
Dean 0056fc5027
Merge pull request #793 from CnRJay/feat/barrierattr-process-shared
feat(libkernel): accept PTHREAD_PROCESS_SHARED barrier attributes
2026-10-07 10:18:43 +13:00
Dean a876f2392f
Merge pull request #892 from adriadam10/feat/systemservice-music-player
feat(libSceSystemService): implement Disable/ReenableMusicPlayer
2026-10-07 10:16:24 +13:00
Dean 1a211f4f5c
Merge pull request #891 from adriadam10/feat/razor-cpu-flush-occurred
feat(libSceRazorCpu): implement sceRazorCpuFlushOccurred
2026-10-07 10:15:42 +13:00
Dean 3acbb2e2d8
Merge pull request #889 from alfalfa-star/fix/audioout2-3d-latency-1
fix(audioout): accept a 3D latency of 1 in sceAudioOut2Set3DLatency
2026-10-07 10:14:18 +13:00