Aller au contenu
PS5PCEM
PartielFirmware et HLE

Rendu des polices

libSceFont rastérise les faces TrueType et OpenType fournies par le titre avec FreeType. Les demandes de police système utilisent le substitut Noto Sans livré pour le latin, le grec et le cyrillique.

Notes du dépôt jusqu’au 10 octobre 2026

Faces, échelle et durée de vie

Un titre ouvre une bibliothèque de polices, crée une face à partir d'octets qu'il fournit ou d'une demande de police système, puis demande les métriques et la couverture des glyphes. Chaque face conserve sa propre échelle, son échelle de rendu, son inclinaison et sa durée de vie. Fermer la bibliothèque relâche ses faces, et le démontage du processus efface l'état des polices. Les octets de la police sont copiés à l'ouverture, de sorte qu'un démappage ultérieur du tampon source du titre ne peut pas invalider le rastériseur.

Noto Sans est un substitut, pas une copie identique octet pour octet de chaque police de micrologiciel. Il couvre le latin, le grec et le cyrillique. Une face fournie par le titre peut contenir d'autres glyphes, y compris le CJK, et ces contours sont utilisés. La demande de police système elle-même ne substitue pas une face CJK.

Glyphes, crénage et atlas

Le chemin des glyphes renvoie de vraies métriques, une mise en page horizontale, un crénage de paires élémentaire, une couverture anticrénelée, le découpage et des descripteurs de résultat de rendu. Un cache de glyphes borné évite de rastériser à nouveau le même caractère, et un cache de paires distinct réutilise le crénage d'une taille à l'autre. Les écritures vérifient les permissions CPU et invalident les surveillances de pages GPU avant de toucher un atlas de texture.

Un scalaire Unicode valide que la face ne contient pas utilise le contour .notdef de la face, y compris les codes de contrôle rencontrés pendant qu'un titre construit une plage d'atlas complète. Ce chemin de glyphe manquant est ce qui permet à Jurassic Park Classic Games Collection de finir de construire son atlas de police. Les scalaires Unicode invalides et les identifiants de glyphes explicites hors plage renvoient encore une erreur. La couverture est écrite dans des pixels d'un à quatre octets.

Ce que la mise en page du texte laisse au titre

Beaucoup de titres n'appellent jamais libSceFont. Ils dessinent le texte avec la police de leur propre moteur, et cette implémentation ne change pas ces pixels. Le chemin HLE est destiné aux titres qui demandent au micrologiciel de rastériser.

La mise en forme du texte, la mise en page bidirectionnelle, la graisse synthétique, la substitution de police système CJK, la sélection de face de collection et les API de plus haut niveau FontWriting et String ne sont pas implémentées. Les vérifications ciblées se trouvent derrière zig build test-hle avec le filtre font.

Ce qui est en place

  • Rastérisation FreeType des faces TrueType et OpenType fournies par le titre.
  • Repli Noto Sans pour les demandes de police système en latin, grec et cyrillique.
  • Métriques, mise en page horizontale, crénage de paires, inclinaison, découpage et cache de glyphes.
  • Repli .notdef pour les scalaires Unicode manquants, ce qui débloque l'atlas de Jurassic Park.

Ce qui manque encore

  • La mise en forme, la mise en page bidirectionnelle et les API FontWriting sont absentes.
  • Les demandes de police système ne substituent pas une face CJK.
  • Les titres qui dessinent le texte entièrement dans leur propre moteur n'utilisent pas ce chemin.

Mécanismes liés

Ce que ces pages décrivent

Le texte suit les notes d’architecture et les rapports d’octobre 2026 du dépôt PS5PCEM. Un test ciblé qui passe n’est ni une nouvelle cadence d’images ni une nouvelle partie terminée.

Toutes les technologies