Commit Graph

228 Commits

Author SHA1 Message Date
LeandroLP23 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 <noreply@anthropic.com>
2026-10-06 09:23:44 +02:00
Dean 481c85e7c9
Merge pull request #778 from adriadam10/feat/ngs2-sampler-filter
feat(libSceNgs2.native): sampler voice low-pass filter
2026-10-06 18:36:28 +13:00
Adrià Franch 819c045327 feat(libSceNgs2.native): sampler voice low-pass filter
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-06 07:16:25 +02:00
raghav314 670ffb9da3 feat(libkernel): implement sceKernelGetAvailableCpumask
Returns the CPU mask threads get by default (DEFAULT_THREAD_AFFINITY,
0x1FFF), the value itself rather than an error code.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 09:41:52 +05:30
Dean aff8dfb3f3
Merge pull request #797 from ThisIsAkill/fix/libc-fiopen-export
feat(libc): export std::_Fiopen as unimplemented
2026-10-06 16:32:54 +13:00
Dean 4ee77fc5ac
Merge pull request #796 from CnRJay/feat/appcontent-addcont-mount
feat(libSceAppContent): answer add-content mounts without installed content
2026-10-06 16:32:12 +13:00
Dean dee8fa1855
Merge pull request #791 from CnRJay/feat/agc-driver-resource-queries
feat(libSceAgcDriver): answer the resource registration queries
2026-10-06 16:30:38 +13:00
Dean 77a8bf3370
Merge pull request #789 from Celegans12/feat/voiceqos-init-app-type
feat(voiceqos): accept app type 0x10000000 in sceVoiceQoSInit
2026-10-06 16:29:14 +13:00
Akhil Moola be6705e977 feat(libc): export std::_Fiopen as unimplemented
PPSA21564 and PPSA21567 import std::_Fiopen (NID vYWK2Pz8vGE), the only libc
NID the host libc lacks. Without it the executable fails to load against
the host libc when the title's own libc.prx is left out of the guest
conversion, which is how the Linux runs of PPSA21564 avoid the libc.prx
binding crash. The values of the open mode and the meaning of the
protection argument are unknown, so the export throws when called; it was
never called in a 300 s run of PPSA21567.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014A3UgWDUxE1EeHyVZm6tiN
2026-10-05 20:06:18 -06:00
Chad f2427b1a24 Merge remote-tracking branch 'upstream/main' into feat/agc-driver-resource-queries
# Conflicts:
#	docs/dev/TechnicalDebt.md
2026-10-05 20:22:12 -05:00
Chad ebe0515180 feat(libSceAppContent): answer add-content mounts without installed content
No additional content is installed, so sceAppContentAddcontMount returns
SCE_APP_CONTENT_ERROR_NOT_FOUND with the mount point untouched, and
sceAppContentAddcontUnmount finds no mount to release. A missing label
or mount point is a parameter error. The library gets its own
CMakeLists for the new guest_appcontent test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 20:19:09 -05:00
Dean 8235eda149
Merge pull request #769 from adriadam10/feat/font-writing-line
feat(font): implement writing lines
2026-10-06 14:13:27 +13:00
Dean b8a98c9502
Merge pull request #582 from CnRJay/feat/agc-predication
feat(agc): implement packet and range predication and the predication sizes
2026-10-06 14:12:46 +13:00
Dean 8afcf7203f
Merge pull request #653 from Celegans12/feat/audioout2-12-channel-ports
feat(audioout): implement 12-channel AudioOut2 ports
2026-10-06 14:12:36 +13:00
Chad 5d99f135d7 feat(libSceAgcDriver): answer the resource registration queries
Registration of owners and resources fails with
RESOURCE_REGISTRATION_UNAVAILABLE, so no handle is ever valid: the owner
and resource getters, sceAgcDriverSetResourceUserData,
sceAgcDriverRegisterGdsResource, sceAgcDriverFindResourcesPublic,
sceAgcDriverUnregisterAllResourcesForOwner and
sceAgcDriverGetDefaultOwner return the same error.
sceAgcDriverUnregisterWorkloadStream mirrors the accepting
RegisterWorkloadStream. No capture, trace or submit validation ever runs,
so their status queries report false.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 20:07:28 -05:00
Celegans12 4b0119426b feat(voiceqos): accept app type 0x10000000 in sceVoiceQoSInit
sceVoiceQoSInit accepted only app type 0x20000000 and threw for every
other value. PPSA26344 v1.008 passes 0x10000000 at both of its call
sites, so its initialization threw.

Accept 0x10000000 as a second known app type. Its meaning is unknown,
so the constant is named after the value, and it is handled like
0x20000000; the block stays unused. A null or empty block, a second
initialization and every other app type still throw.

guest_voice_qos_tests now takes the app type as its argument and runs
in ctest once per accepted value, because sceVoiceQoSEnd still throws
and one process can initialize only once.
2026-10-06 02:42:33 +02:00
Dean 021e4573ce
Merge pull request #668 from ThisIsAkill/fix/agc-emulated-color-compare-main
fix(agc): emulate comparison sampling of color textures in the shader
2026-10-06 13:27:39 +13:00
Dean 3e9bcee7b9
Merge pull request #756 from CnRJay/feat/amm-prt
feat(libs): implement the AMM PRT commands
2026-10-06 13:17:24 +13:00
Dean 5cc58621a9
Merge pull request #749 from CnRJay/feat/amm-remap-protect
feat(libs): implement the AMM remap, multimap and protection changes
2026-10-06 13:17:14 +13:00
Dean ece9990d89
Merge pull request #748 from CnRJay/feat/amm-core
feat(libs): implement the AMM map, map direct and unmap commands and the APR map region
2026-10-06 13:16:31 +13:00
Celegans12 799aaf5c2f feat(audioout): implement 12-channel AudioOut2 ports
sceAudioOut2PortCreate threw for 12-channel ports, which PPSA26344
creates as its two 7.1.4 float beds (data format 0xc00).

Each accepted layout (1, 2, 6, 8 or 12 channels, float or int16) now
folds into the stereo mix through a coefficient table: centre, side,
back and top front channels at -3 dB, top back channels at -6 dB into
the front, LFE dropped. Zero coefficients are skipped, so NaN or Inf on
a dropped channel does not reach the mix. Ports of 3, 4, 5 or 7
channels, which were mixed as L/R, now throw, as do other counts and
formats with any of bits 12-31 set. The assumed format fields,
channel order and coefficients are listed in TechnicalDebt.

The new audio_out2_port_layouts test checks each layout's fold, float
and int16, and the formats that throw.
2026-10-06 01:54:27 +02:00
Dean 03cc1bd925
Merge pull request #776 from adriadam10/feat/agc-gs-oversubscription
feat(agc): implement sceAgcGetGsOversubscription
2026-10-06 12:47:24 +13:00
Dean 65190976d9
Merge pull request #691 from NumberGuan/codex/implement-http-uri-unescape
feat(http): implement URI percent decoding
2026-10-06 12:46:41 +13:00
Dean 4987308034
Merge pull request #704 from adriadam10/feat/gameupdate-addcont-version
feat(libs): implement sceGameUpdateGetAddcontLatestVersion
2026-10-06 12:45:59 +13:00
Dean 7de111f98a
Merge pull request #773 from Raghav314/feat/kernel-sync-on-address-wait8-16
feat(libkernel): implement sceKernelSyncOnAddressWait8 and sceKernelSyncOnAddressWait16
2026-10-06 12:45:18 +13:00
Chad 73a751ac1f Merge remote-tracking branch 'upstream/main' into feat/agc-predication
# Conflicts:
#	docs/dev/TechnicalDebt.md
2026-10-05 18:45:17 -05:00
Dean 9516f035e7
Merge pull request #775 from adriadam10/feat/agc-context-state-op-size
feat(agc): implement sceAgcDcbContextStateOpGetSize
2026-10-06 12:44:25 +13:00
Dean 8cac9bc7fe
Merge pull request #774 from adriadam10/feat/agc-payload-range
feat(agc): implement sceAgcGetDataPacketPayloadRange
2026-10-06 12:43:43 +13:00
Dean 52ae2270fc
Merge pull request #768 from adriadam10/feat/ajm-mp3-parse-ofl
feat(ajm): parse the original file length in sceAjmDecMp3ParseFrame
2026-10-06 12:41:38 +13:00
Dean 5124951b05
Merge pull request #740 from adriadam10/feat/audio3d-port
feat(audio3d): implement the port queue
2026-10-06 12:40:56 +13:00
Dean cc785ffa93
Merge pull request #739 from adriadam10/feat/systemservice-powertick
feat(systemservice): implement PowerTick and ReportAbnormalTermination
2026-10-06 12:40:14 +13:00
Dean 2410130475
Merge pull request #738 from adriadam10/feat/ime-keyboard-info-mode
feat(libSceIme): implement keyboard info and mode queries
2026-10-06 12:39:32 +13:00
Dean 2127e1c6d0
Merge pull request #737 from adriadam10/feat/share-capture-status
feat(libSceShare): capture, open menu and current status calls
2026-10-06 12:38:49 +13:00
Dean bf4b7e3f6d
Merge pull request #714 from adriadam10/feat/contentexport-fromdata-name
fix(contentexport): name the AOWqIYsgVHs stub sceContentExportFromData
2026-10-06 12:37:25 +13:00
Adrià Franch 83442e1e40 feat(font): implement writing lines
Create, destroy, clear, write runs, step through them and read the
line metrics, following KytyPS5. Layouts from SharpProspero.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-06 01:30:16 +02:00
Dean c8c4621a17
Merge pull request #747 from CnRJay/feat/apr-gather-scatter
feat(libs): implement the APR gather and scatter reads
2026-10-06 12:25:06 +13:00
Dean ad881d539b
Merge pull request #730 from alfalfa-star/feat/voiceqos-init
feat(voiceqos): implement sceVoiceQoSInit
2026-10-06 12:19:38 +13:00
Dean 90f20b393d
Merge pull request #699 from merwie/feat/libs-ppsa12544-exports
feat(libs): add exports imported by PPSA12544
2026-10-06 12:18:11 +13:00
Adrià Franch 58fce8ab1c feat(libs): implement sceGameUpdateGetAddcontLatestVersion
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-06 01:17:29 +02:00
Adrià Franch cef269d129 feat(agc): implement sceAgcGetGsOversubscription
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-06 01:16:35 +02:00
Dean 398d03ed09
Merge pull request #705 from merwie/feat/userservice-age-level
feat(userservice): implement sceUserServiceGetAgeLevel
2026-10-06 12:16:25 +13:00
NumberGuan cda1d4b211 feat(http): implement URI percent decoding 2026-10-05 20:14:23 -03:00
Dean 7887d885b6
Merge pull request #742 from alfalfa-star/feat/agc-driver-predication
feat(agc-driver): execute boolean SET_PREDICATION
2026-10-06 12:14:16 +13:00
Dean 1438d99560
Merge pull request #752 from Celegans12/feat/agc-conservative-z-export
feat(agc): accept conservative Z export in DB_SHADER_CONTROL
2026-10-06 12:13:21 +13:00
Dean 82d1b129fa
Merge pull request #648 from Celegans12/feat/videoout-dcc-presentation
feat(agc): present DCC display buffers whose keys are uncompressed or fast-cleared
2026-10-06 12:11:15 +13:00
Dean 11c3e3e9f0
Merge pull request #680 from NumberGuan/codex/implement-http-response-header
feat(http): implement response header parsing
2026-10-06 12:09:48 +13:00
Dean 2474eee54e
Merge pull request #746 from CnRJay/feat/ampr-counter-04-00
feat(libs): implement the AMPR 04_00 counter commands and the construct helpers
2026-10-06 12:09:04 +13:00
Dean f5b548a876
Merge pull request #580 from CnRJay/feat/ampr-nop-04-writes
feat(libs): implement the AMPR nops and the 04_00 completion writes
2026-10-06 12:08:21 +13:00
raghav314 ce6d94793c feat(libkernel): implement sceKernelSyncOnAddressWait8 and sceKernelSyncOnAddressWait16
Wait8 and Wait16 compare the 1- or 2-byte value at the address with the
comparand and share the waiter queue of the other sizes.
sceKernelSyncOnAddressWake accepts any non-null address: libc's
__std_atomic_notify_one/all pass the atomic's own address, which for 8- and
16-bit atomics need not be 4-byte aligned.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 04:30:12 +05:30
Adrià Franch 8232a4c071 feat(agc): implement sceAgcDcbContextStateOpGetSize
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-06 00:58:50 +02:00