Skip to content

feat(libSceFreeTypeOl): declare 92 PS5 3.20 exports - #11765

Merged
oneandonlydean merged 7 commits into
boykopovar:mainfrom
oneandonlydean:salvage/freetypeol-9453
Oct 27, 2026
Merged

oneandonlydean merged 7 commits into
boykopovar:mainfrom
oneandonlydean:salvage/freetypeol-9453

Conversation

@oneandonlydean

@oneandonlydean oneandonlydean commented Oct 27, 2026 •

Copy link
Copy Markdown
Collaborator

What

Based on #9453 by @xdCloudy (closed by the author on 25 Oct).

Declares 92 exports from the PS5 3.20 export inventory in libSceFreeTypeOl as import-resolution stubs. Each stub takes no parameters and throws through NotImplemented_nid_no_patch, and the debt entries say that signature and behavior are unverified. 26 of the original exports are dropped because main already defines them: FT_Angle_Diff_nid_no_patch, FT_Bitmap_Convert_nid_no_patch, FT_Bitmap_Copy_nid_no_patch, FT_Bitmap_Done_nid_no_patch, FT_Bitmap_New_nid_no_patch, FT_Cos_nid_no_patch, FT_Get_CID_From_Glyph_Index_nid_no_patch, FT_Get_CID_Is_Internally_CID_Keyed_nid_no_patch, FT_Get_CID_Registry_Ordering_Supplement_nid_no_patch, FT_Get_CMap_Format_nid_no_patch, FT_Get_CMap_Language_ID_nid_no_patch, FT_Get_Charmap_Index_nid_no_patch, FT_Get_FSType_Flags_nid_no_patch, FT_Get_Gasp_nid_no_patch, FT_Get_Glyph_Name_nid_no_patch, FT_Get_Kerning_nid_no_patch, FT_Get_Name_Index_nid_no_patch, FT_Get_Postscript_Name_nid_no_patch, FT_Get_Sfnt_Name_Count_nid_no_patch, FT_Get_Sfnt_Name_nid_no_patch, FT_Get_X11_Font_Format_nid_no_patch, sceFreeTypeOlUnknown_EBvr2CZnjVo_nid_no_patch, sceFreeTypeOlUnknown_NVuvsPgTXto_nid_no_patch, sceFreeTypeOlUnknown_OqaxEkRhr_8_nid_no_patch, sceFreeTypeOlUnknown__2rnxRCeHMs_nid_no_patch, sceFreeTypeOlUnknown_qBohKqdkAqE_nid_no_patch. 32 more are dropped because other open pull requests implement them (FreeType functions in #9398, #9399, #9404, #9410, #9465, #9588, #9792, #9924, #9933, #10579, #10588, #10591, #10600, #10601, #10602, #10606, #10613, #10616 and #10897), in addition to the 26 that main already defines.

xdCloudy's commits are kept. On top of them this PR merges current main and removes the exports main already has with their debt entries. Existing debt entries are left as they are; the new ones are appended after them.

Tested

  • Linux, Intel i9-14900KF, NVIDIA GeForce RTX 4090, on head 1affd8f731 merged with main b7105f7: ninja libs finished rc=0. No existing test links these libraries, so the receipt is the build and the number of defined T symbols in each built .prx (nm -D --defined-only; it counts every exported name, so it is larger than the number of stubs): libSceFreeTypeOl 186. Receipt: bench/evidence/w118-9453.log in the ops workspace.
  • Every kept NID was checked against main by name and by NID with tools/nid_names.py, and against the added exports of every open PR (0 collisions on this head, scan of 27 Oct 07:41Z).
  • tools/check_conventions.py with this title and body passed; core/libs/tests/test_public_headers.py --audit-only reports no declaration problem for these exports.
  • Not tested: Windows and macOS (left to CI). The stubs only resolve imports; no title was run.

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 (none added)
  • No notes, investigation .md files or images added to the repository
  • New third-party code is a submodule built from source (none added)
  • Generic behaviour, not specific to one title
  • Depends on: none
  • Fixes: none
  • Unblocks: none
  • GPUs tested: n/a
  • AI-assisted: yes

@oneandonlydean oneandonlydean self-assigned this Oct 27, 2026
@github-actions

github-actions Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Progress report (dd6d71b → 1affd8f)

📉 System libraries: 49.12% (-0.34%, +92 declared functions)

🆕 92 declared as stubs
Library Name
libSceFreeTypeOl sceFreeTypeOlUnknown_0RSuGozMl9o_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_1GYsjUC_HLM_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_1gAJb1uKyGo_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_2D3H_1nhwqQ_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_3dTNNBoujn0_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_4TJ1qJGXAV8_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_4to3tThESn0_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_50HTRXvbW_k_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_5NYsP564wwY_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_5_z1quqcDYo_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_6z2P2V2XCiI_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_6zDeyzjWz_8_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_83qtpn8_XnA_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_B7Sw_iUs7e4_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_C0nVvG6_x_s_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_CIrV8Sq2Uic_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_DIIRFBxRfMQ_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_E9y7_AmuziU_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_EveUtaCYQgk_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_Ic8JMhUFe88_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_IewcaRR3F8I_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_IjquEAbfizc_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_J3HnvW8FJV8_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_JSi_hWkA9pI_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_JuzrPZClLew_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_KIKL0rz6o_A_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_KLaWCpRxYWo_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_KuJkc0qDvOQ_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_L_qInx9Dldk_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_LonHHN98tMI_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_M5dtVv0ln5Q_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_M94SjXo_UVA_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_MJVrwM6aTTk_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_NLA7bmDS1jc_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_Ns9a_LjOcDw_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_OmxJF0FvwWc_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_OutzOzZp6_w_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_QPh_yb2Y8AQ_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_RM21Fgm0ZvQ_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_SDPzjFN7y4E_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_SKUldaN3e2A_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_Tzm_z36UYKg_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_UTumVjeIQtg_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_Uw_BZJpflxk_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_VVfxa65sWF0_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_XpA3dnvjl8w_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_YpxR8CqGMIM_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_Yu7mmGCjSYM_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_ZHsmiChQLTk_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_ZYpIYZg3Jf4_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_ZhVdSRyrpUI_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_ZqvTX8u1bEc_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown__bRRhPeBqZI_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown__qwk1RxUuDA_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown__v66TBg7tzA_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown__whG27_m_C0_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_aX8PI_h3_dE_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_b7S96aD8dkE_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_bAbUJvsiVdI_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_bZYqFlUVPCY_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_eS_4GhL28gs_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_fHMsRluEMfI_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_g2p7fkJpuC0_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_h0n4Fb9j2R8_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_jqMurvieLBk_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_mCIXittfvrw_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_mQYQAi8B0Yo_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_mhK_E1i3VuE_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_oJm1lThZ3iQ_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_oKG_LjaBzzs_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_oM0zMNCfXKM_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_phi4au_2t04_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_q2ESpjCIk7w_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_q7kTOFaQrW4_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_qC_tiGwcW7E_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_qodr9TJuFds_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_r2C1PcTDYxk_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_rl7aW17qQb8_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_s3qCnsS3ATE_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_sylevnx_fqk_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_u36SHyuWQCA_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_upeKra1FaQk_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_vuuFugcw5ss_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_wGGhfabJAbs_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_wLqQQWyOdpc_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_wbyY8kfNfaI_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_xaswa_ndZS0_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_xcJCXHqBrjE_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_xqjAbn8VNGo_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_xtb9fOR6ilA_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_z9YQIyuTMV4_nid_no_patch
libSceFreeTypeOl sceFreeTypeOlUnknown_zxsyxyiLthM_nid_no_patch

Changed libraries (implemented exports)

Library Before After Change
libSceFreeTypeOl No exports 0/92 (0.00%) n/a

@oneandonlydean oneandonlydean changed the title feat(libSceFreeTypeOl): declare 124 PS5 3.20 exports feat(libSceFreeTypeOl): declare 92 PS5 3.20 exports Oct 27, 2026
@oneandonlydean
oneandonlydean merged commit ecc950f into boykopovar:main Oct 27, 2026
14 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.

2 participants