Skip to content

feat(font): accept sceFontGlyphDefineAttribute as a silent stub - #1160

Merged
oneandonlydean merged 1 commit into
boykopovar:mainfrom
orbz22:feat/font-glyph-define-attribute
Oct 8, 2026
Merged

oneandonlydean merged 1 commit into
boykopovar:mainfrom
orbz22:feat/font-glyph-define-attribute

Conversation

@orbz22

@orbz22 orbz22 commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

What

Astro's Playroom (PPSA01325) terminates on sceFontGlyphDefineAttribute not implemented during start-up. Its only call site (0x1877e92) is:

sceFontGenerateCharGlyph(handle, code, &detail, &glyph)
sceFontGlyphDefineAttribute(glyph, 0x11, 0)
sceFontRenderCharGlyphImageHorizontal(handle, code, ...)   (retried with '_' on failure)
sceFontDeleteGlyph(nullptr, &glyph)

The glyph is deleted without being used, and the character is drawn from the font handle and code, not from the glyph. The title does not import sceFontGlyphGetAttribute. What the attributes mean is unknown (shadPS4 stubs the function too), so this is a silent stub under the rule in CONTRIBUTING (it unblocks a title and only affects the UI): it returns SCE_FONT_ERROR_INVALID_GLYPH for a null glyph or one without the glyph magic, and SCE_FONT_OK otherwise, ignoring the attribute and its value. The value is taken as 64 bits because the call site zeroes all of rdx. TechnicalDebt lists it under silent stubs. sceFontGlyphGetAttribute still throws.

Tested

Windows 11, MinGW-w64 GCC 15.2.0 (WinLibs r7), CMake 4.4.4, Ninja 1.13.2, on 1e5bb88.

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 in TechnicalDebt
  • 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
  • AI-assisted: yes

🤖 Generated with Claude Code

https://claude.ai/code/session_01UTjpbMX7BUFMZZaxJE98zV

PPSA01325 stops on sceFontGlyphDefineAttribute right after generating a character glyph: it sets attribute 0x11 to 0 on that glyph, deletes it without using it, and draws the character with sceFontRenderCharGlyphImageHorizontal. The meaning of the attributes is unknown, so the call checks the glyph and ignores the rest; TechnicalDebt lists it under silent stubs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UTjpbMX7BUFMZZaxJE98zV
@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown

Progress report (4e74283 → 0a6a8a7)

📈 System libraries: 86.17% (+0.04%, +1 implemented functions)

✅ 1 implemented
Library Name
libSceFont sceFontGlyphDefineAttribute

@oneandonlydean
oneandonlydean merged commit e0924e2 into boykopovar:main Oct 8, 2026
3 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