Difference between revisions of "Xtf"
From xboxdevwiki
(→Xbox.xtf) |
Teufelchen (talk | contribs) m (Fix 404 GitHub link) |
||
(14 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
− | + | XTF is a font file format used in the [[Dashboard]]. | |
− | |||
− | |||
It became famous for being [[Exploits#Font hacks|exploited]]. | It became famous for being [[Exploits#Font hacks|exploited]]. | ||
== Dashboard fonts == | == Dashboard fonts == | ||
− | The | + | The fonts were designed by [[Wikipedia:Steve Matteson|Steve Matteson]] for use in the Xbox [[Dashboard]] as well as for promotional materials. |
− | + | ||
+ | The XTF versions of these fonts contain 7365 glyphs each. | ||
=== Xbox.xtf === | === Xbox.xtf === | ||
+ | |||
+ | [[File:Xbox-dashboard-font-specimen.png|thumb|200px|Xbox Font Specimen]] | ||
A monospace font. | A monospace font. | ||
− | <div style="display: inline-block;">[[File:Xbox-xtf.png| | + | <div style="display: inline-block;">[[File:Xbox-xtf.png|800px|thumb|Xbox.xtf from [[Dashboard]].]]</div> |
=== XBox Book.xtf === | === XBox Book.xtf === | ||
− | <div style="display: inline-block;">[[File:XBox Book-xtf.png| | + | <div style="display: inline-block;">[[File:XBox Book-xtf.png|800px|thumb|XBox Book.xtf from [[Dashboard]].]]</div> |
== File format == | == File format == | ||
− | {{FIXME}} | + | * 4 byte (magic) |
+ | * 4 byte (length prefix for following string) | ||
+ | * zero-terminated string with given buffer length (font-name) | ||
+ | * [https://msdn.microsoft.com/en-us/library/dd144956%28v=vs.85%29.aspx GLYPHSET] (List of supported glyphs) | ||
+ | * For each cGlyphsSupported: | ||
+ | ** [https://msdn.microsoft.com/en-us/library/windows/desktop/dd374209(v=vs.85).aspx GLYPHMETRICSFLOAT] (Metrics for each glyph) | ||
+ | ** 4 byte (Offset of glyph in file) | ||
+ | * For each GLYPHSET range | ||
+ | ** For each glyph in this range | ||
+ | *** 2 byte (Index count) | ||
+ | *** 2 byte (Vertex count) | ||
+ | *** For each index: | ||
+ | **** 2 byte (Vertex index) | ||
+ | *** For each vertex: | ||
+ | **** 4 byte float (X-coordinate) | ||
+ | **** 4 byte float (Y-coordinate) | ||
+ | |||
+ | The mesh data is stored as triangle list. 3 indices per triangle. | ||
+ | |||
+ | {{FIXME|reason=Confirm these findings and format them better}} | ||
+ | |||
+ | == Links == | ||
+ | |||
+ | * [https://github.com/XboxDev/xtf-converter A tool to convert XTF fonts to SVG fonts] | ||
+ | [[Category:Fileformats]] |
Latest revision as of 09:12, 2 June 2020
XTF is a font file format used in the Dashboard. It became famous for being exploited.
Dashboard fonts
The fonts were designed by Steve Matteson for use in the Xbox Dashboard as well as for promotional materials.
The XTF versions of these fonts contain 7365 glyphs each.
Xbox.xtf
A monospace font.
XBox Book.xtf
File format
- 4 byte (magic)
- 4 byte (length prefix for following string)
- zero-terminated string with given buffer length (font-name)
- GLYPHSET (List of supported glyphs)
- For each cGlyphsSupported:
- GLYPHMETRICSFLOAT (Metrics for each glyph)
- 4 byte (Offset of glyph in file)
- For each GLYPHSET range
- For each glyph in this range
- 2 byte (Index count)
- 2 byte (Vertex count)
- For each index:
- 2 byte (Vertex index)
- For each vertex:
- 4 byte float (X-coordinate)
- 4 byte float (Y-coordinate)
- For each glyph in this range
The mesh data is stored as triangle list. 3 indices per triangle.
[FIXME]