Skip to content

feat(libSceUlt): export missing firmware functions from database - #6838

Merged
oneandonlydean merged 1 commit into
boykopovar:mainfrom
al3w0f205:feat/ult-firmware-exports
Oct 20, 2026
Merged

oneandonlydean merged 1 commit into
boykopovar:mainfrom
al3w0f205:feat/ult-firmware-exports

Conversation

@al3w0f205

@al3w0f205 al3w0f205 commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

What

Adds missing libSceUlt functions identified from firmware export databases (aerolib.csv) as explicit throwing stubs (NotImplemented_nid_no_patch(__func__)). Also documents the unverified guest signatures under ### Unknown function info in docs/dev/debt/libSceUlt.md and verifies throwing behavior in guest tests.

Exported functions:

  • sceUltQueueCreate
  • sceUltQueueDestroy
  • sceUltQueuePop
  • sceUltQueueTryPush
  • sceUltQueueDataResourcePoolCreate
  • sceUltQueueDataResourcePoolDestroy
  • sceUltWaitingQueueResourcePoolDestroy
  • sceUltMutexDestroy
  • sceUltUlthreadRuntimeDestroy
  • sceUltUlthreadTryJoin

Tested

  • Windows 11, MinGW64 Ninja build
  • CTest test suite passed 100%
  • tools/check_conventions.py --base origin/main passed with 0 errors

Checklist

  • Based on current main; no other open PR implements the same functions
  • One topic per PR; follow-ups go in a new PR
  • No comments in code except technical debt
  • Unimplemented paths throw (NotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file
  • No notes, investigation .md files or images added to the repository (attach them to this PR)
  • New third-party code is a submodule built from source
  • Generic behaviour, not specific to one title
  • Depends on: none
  • Unblocks: none
  • GPUs tested: n/a
  • AI-assisted: yes

@github-actions

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

Progress report (c2b0159 → dba05da)

📉 System libraries: 71.07% (-0.55%, +45 declared functions)

🆕 45 declared as stubs
Library Name
libSceUlt sceUltAbstractThreadFactoryCreateThread
libSceUlt sceUltAbstractThreadFactoryGetNumMaxThreads
libSceUlt sceUltAbstractThreadFactoryJoinThread
libSceUlt sceUltConditionVariableCreate
libSceUlt sceUltConditionVariableDestroy
libSceUlt sceUltConditionVariableOptParamInitialize
libSceUlt sceUltConditionVariableSignal
libSceUlt sceUltConditionVariableSignalAll
libSceUlt sceUltConditionVariableWait
libSceUlt sceUltGetConditionVariableInfo
libSceUlt sceUltGetMutexInfo
libSceUlt sceUltGetQueueDataResourcePoolInfo
libSceUlt sceUltGetQueueInfo
libSceUlt sceUltGetReaderWriterLockInfo
libSceUlt sceUltGetSemaphoreInfo
libSceUlt sceUltGetUlthreadInfo
libSceUlt sceUltGetUlthreadRuntimeInfo
libSceUlt sceUltGetWaitingQueueResourcePoolInfo
libSceUlt sceUltKernelThreadFactoryFinalize
libSceUlt sceUltKernelThreadFactoryGetFactoryPointer
libSceUlt sceUltKernelThreadFactoryInitialize
libSceUlt sceUltModuleFinalize
libSceUlt sceUltModuleInitialize
libSceUlt sceUltMutexTryLock
libSceUlt sceUltQueueDataResourcePoolOptParamInitialize
libSceUlt sceUltQueueOptParamInitialize
libSceUlt sceUltReaderWriterLockCreate
libSceUlt sceUltReaderWriterLockDestroy
libSceUlt sceUltReaderWriterLockLockRead
libSceUlt sceUltReaderWriterLockLockWrite
libSceUlt sceUltReaderWriterLockOptParamInitialize
libSceUlt sceUltReaderWriterLockTryLockRead
libSceUlt sceUltReaderWriterLockTryLockWrite
libSceUlt sceUltReaderWriterLockUnlockRead
libSceUlt sceUltReaderWriterLockUnlockWrite
libSceUlt sceUltSemaphoreOptParamInitialize
libSceUlt sceUltUlthreadExit
libSceUlt sceUltUlthreadFactoryFinalize
libSceUlt sceUltUlthreadFactoryGetFactoryPointer
libSceUlt sceUltUlthreadFactoryGetWorkAreaSize
libSceUlt sceUltUlthreadFactoryInitialize
libSceUlt sceUltUlthreadGetSelf
libSceUlt sceUltUlthreadOptParamInitialize
libSceUlt sceUltUlthreadYield
libSceUlt sceUltWaitingQueueResourcePoolOptParamInitialize

@github-actions

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.

Pull request Shared files not compared
PR 6044 core/libs/tests/GuestUltThread.cpp

@github-actions github-actions Bot added the needs rebase Conflicts with main, rebase needed label Oct 16, 2026
@blawesom

Copy link
Copy Markdown
Contributor

Rebase handoff — rebased onto current main (authorship unchanged). One conflict in docs/dev/debt/libSceUlt.md: your throwing-stub entry and main's newer underscore-forwarding entry are both kept.

Verified on Linux (CachyOS, kernel 7.2.9, GCC 16.2.1, Ninja, Release, BUILD_TESTING=ON, AMD RX 9070 XT / RADV):

To pick it up:

git fetch https://github.com/blawesom/AnyPS5 rebase/6838
git checkout <your branch>
git merge --ff-only FETCH_HEAD

Head is b6b24766c.

@al3w0f205
al3w0f205 force-pushed the feat/ult-firmware-exports branch from 8ea4a62 to 56e1edc Compare October 17, 2026 18:45
@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Oct 17, 2026
@al3w0f205
al3w0f205 force-pushed the feat/ult-firmware-exports branch from 56e1edc to 5ccf926 Compare October 18, 2026 01:29
@al3w0f205

Copy link
Copy Markdown
Contributor Author

Picked up the rebase handoff onto current main. Verified with conventions passing cleanly and guest_ult_thread tests passing 100%.

@al3w0f205
al3w0f205 force-pushed the feat/ult-firmware-exports branch from 349f2bb to dba05da Compare October 20, 2026 02:35
@oneandonlydean oneandonlydean self-assigned this Oct 20, 2026
@oneandonlydean
oneandonlydean merged commit a212ddc into boykopovar:main Oct 20, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants