Skip to content

Latest commit

 

History

History
9 lines (5 loc) · 2.08 KB

libSceFreeTypeOptOl.md

File metadata and controls

9 lines (5 loc) · 2.08 KB

libSceFreeTypeOptOl technical debt

Unknown function info

  • FT_Get_PFR_Advance, FT_Get_PFR_Kerning and FT_Get_PFR_Metrics use the LP64 face adapter and bundled FreeType 2.13.3 through Pfr.cpp. A null face returns Invalid_Argument (6) without writing outputs or calling host imports, matching FreeType 2.4.11 and BunnyFl's firmware 13.42 Unicorn report. That report attributes a 2.4.11 version to Ol disassembly and finds these NIDs in OptOl and Ol under logical library libSceFreeType; it does not run real-face paths or establish all firmware versions. This implementation exports them only from OptOl; Ol remains missing. Sony prototypes, guest layouts, module/library versions and nonnull-face equivalence remain unverified. Signed positions, scales and vectors use 64-bit guest storage even on Windows. Invalid PFR advance indices write zero as the bundled service does; non-PFR advance errors leave output untouched, while non-PFR metrics write fallback values before returning the format error. Those nonnull rules still follow 2.13.3 and have not been measured in the console modules.

Functional

  • PFR faces share the existing libSceFreeType ownership and lifetime rules. The optional module forwards to native helpers in that library rather than constructing another FreeType runtime. Private face records, stale or arbitrary pointers, caller-replaced internal records and simultaneous operations on the same face are not made safe by these adapters; callers must obey FreeType's face lifetime and threading requirements. The synthetic PFR regression exercises metrics, signed advances, metric-space kerning and an empty outline; it does not test bitmap-only PFR faces or every format feature.