Commit Graph
24 Commits
Author SHA1 Message Date
klosixgaming-arch 0e46a0c497 fix(libSceFont): resolve a default string direction at creation
A string created from a text source in the default horizontal form (0x10)
reported 0x10. TEKKEN: DARK RESURRECTION (PPSA31371) passes the reported form
to sceFontCreateWritingLine, which only accepts 0x11 and 0x12, so the call
failed and the layout width was 0.

On firmware 13.42 sceFontCreateString decides the direction for a default-form
source and sceFontStringGetWritingForm returns the stored form. The string
gets 0x12 when its first strong character is left to right, 0x11 when it is
right to left, and 0x12 when it has none. Left-to-right and right-to-left marks
count as strong, embeddings and overrides do not, and text between an isolate
initiator and its PDI is skipped. Explicit 0x11 and 0x12 sources keep their
form.

The test follows the table reported on the pull request. Which characters are
strong is decided by Unicode block ranges here, not by the full bidi class
tables.
2026-10-24 19:21:23 -05:00
xandClaude Sonnet 5.5 c0024158db fix(libSceFont): measure glyphs through a zero-extent render surface
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

Claude-Session: https://claude.ai/code/session_01QLz9JYSXCPssYHgRW1CxJH
2026-10-22 22:16:45 -05:00
boykopovar 350c6eb323 fix(font): restore typography validation and reject unsupported shaping 2026-10-21 21:56:03 +03:00
boykopovar 34123d4e29 fix(font): restore encoded glyph identifiers and validation 2026-10-21 21:54:23 +03:00
boykopovar 512ae7f80f fix(font): use 32-bit resolution in driver callbacks 2026-10-21 21:54:22 +03:00
boykopovar 5f980378c4 fix(font): restore device cache ownership and detach outputs 2026-10-21 21:54:22 +03:00
boykopovar 6d318d168a fix(font): restore graphics and word creation argument slots 2026-10-21 21:53:07 +03:00
boykopovar aca0f63647 fix(font): allocate writing lines through caller memory callbacks 2026-10-21 21:51:31 +03:00
boykopovar 2b4dc84099 docs(debt): condense remaining font and http2 gaps 2026-10-21 21:51:30 +03:00
boykopovar f60226dcf5 fix(font): restore writing order and metrics validation 2026-10-21 21:51:27 +03:00
boykopovar 10829db69f fix(font): validate script and language selection 2026-10-21 21:51:25 +03:00
boykopovar 86c1daddde fix(font): match pixel resolution validation and locking 2026-10-21 21:50:05 +03:00
boykopovar add513ee50 fix(font): restore glyph support and image fill arguments 2026-10-21 21:50:04 +03:00
boykopovar f775cecf37 fix(font): define fill descriptors and device usage layouts 2026-10-21 21:50:03 +03:00
boykopovar 12eb05361a fix(font): recover canvas and texture construction signatures 2026-10-21 21:50:03 +03:00
boykopovar 340328ed04 fix(font): recover glyph rendering and resource signatures 2026-10-21 21:50:02 +03:00
boykopovar 60281539f9 fix(font): restore drawing frame and fill argument types 2026-10-21 21:50:02 +03:00
boykopovar e2f8adca1b fix(font): restore region and graphics transform signatures 2026-10-21 21:50:01 +03:00
boykopovar 30736adb89 fix(font): restore graphics lifecycle and metric signatures 2026-10-21 21:50:00 +03:00
Dean 083a3be61c Merge pull request #8058 from HQasper/claude/project-thread-md0z38
feat(libSceFont): open the other script files of a system font set
2026-10-21 06:26:24 +13:00
Claude bff194647a feat(libSceFont): open the other script files of a system font set
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-19 18:31:56 +00:00
Thomas Abdelmalak ce4a1dc054 feat(libSceFont): implement handle and glyph attributes 2026-10-18 13:23:28 +03:00
KernelPanicNTandClaude Opus 5.5 cf762829d1 feat(libSceFont): implement sceFontCharactersRefersTextCodes and text code stepping
sceFontCharactersRefersTextCodes fills a 64-byte FontTextCodes with the
order and code of a text character and keeps the current, start and
term characters at +0x28, +0x30 and +0x38. The traversal follows the
PS4 11.00 libSceFont.sprx disassembly posted in the review of #4050,
which implemented the same rules: Refers never compares the character
with the term and returns null for a clustered or synthetic character,
sceFontTextCodesStepNext returns null at the term after visiting it,
sceFontTextCodesStepBack returns null at the start character, and both
steps skip synthetic characters. Null from StepNext at the end of the
chain and from StepBack at the head of the chain is assumed and not
covered by the report.

The signatures follow Orbital's IDA type database and SharpProspero. A
null cursor or output returns null as in KytyPS5; a null text character
throws. guest_font_tests gets configure_windows_unwind so the expected
exception reaches the test on Windows.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 18:44:41 +00:00
Adrià FranchandClaude 342a8c4590 docs(debt): move library entries to one file per library
Co-Authored-By: Claude <[email protected]>
2026-10-12 20:38:29 +02:00