What is the CHR file format?
.chr files store vector stroke font data for the Borland Graphics Interface (BGI) - the graphics library that shipped with Borland's Turbo C and Turbo Pascal compilers from the late 1980s. Unlike raster or outline fonts, .chr encodes each glyph as a series of stroke vectors (move-and-draw line segments) that the BGI runtime scales to any size on screen. Borland supplied ten built-in stroke fonts in this format: TRIP, LITT, SANS, GOTH, SCRI, SIMP, TSCR, LCOM, EURO, and BOLD, each a separate .chr file bundled with the compiler.
The .chr format is binary, little-endian, and proprietary, opening with the magic bytes 50 4B 08 08 and an ASCII Borland copyright header that names the font and provides offsets into the stroke table. Files are compact - typically 5-15 KB. DOS programs loaded them via BGI calls like registerfont() and settextstyle(). The format has since been superseded by scalable formats such as TrueType fonts; related legacy font types include .FON and .FNT (Windows bitmap fonts) and .BGI (the BGI graphics driver itself). Note that the .chr extension is also used by Autodesk 3ds Max for character model files storing geometry, textures, and animation - an unrelated format with no connection to the Borland stroke-font standard.
Security & safety
RISK: LOWA Borland .CHR stroke font is small, inert legacy data - it isn't executed and poses no real risk to open or inspect. The only practical issues are non-malicious: it's an obsolete format with no modern viewer, so a hex editor or a DOSBox/BGI demo is needed to do anything with it. As always, confirm an unidentified .chr's true type (Borland font vs 3ds Max character vs game data) before trusting whatever program you guess.
Format details
in a nutshell- Autodesk 3ds Max character file (.chr) - 3ds Max uses .chr to store a character (rigged figure) for the Character Assembly feature - a 3D asset opened in 3ds Max, unrelated to the Borland font. This is the meaning the legacy DB mistakenly paired with the Borland-font name.
- Generic 'character'/data files (.chr) - Various games and apps use .chr for character data, tilesets (e.g. NES CHR-ROM graphics) or settings - meaning depends on the creating program.
Programs that open CHR files
Technical details
deep spec| File type | Vector stroke font (glyphs encoded as move/draw line-segment commands) |
| Developer | Borland International |
| Encoding | Binary, proprietary Borland BGI font format |
| Byte order | Little-endian |
| Magic bytes | 50 4B 08 08 ("PK\x08\x08") at offset 0, followed by an ASCII Borland copyright string |
| Typical file size | 5-15 KB per font file |
| Glyph representation | Each character defined as a sequence of stroke vectors - line-segment drawing commands, not bitmaps or outlines |
| Scalability | Fully scalable; the BGI runtime sizes glyphs at draw time with no fixed pixel resolution |
| Built-in font set | Ten standard faces shipped with BGI: TRIP, LITT, SANS, GOTH, SCRI, SIMP, TSCR, LCOM, EURO, BOLD |
| BGI API functions | registerfont(), settextstyle(), settextjustify() |
| Associated platform | MS-DOS; also accessible in legacy Windows dev environments and DOSBox emulation |
| Compression | None - stroke data stored uncompressed |
| MIME type | application/octet-stream |
| Superseded by | TrueType (.ttf) and OpenType scalable outline fonts; BGI itself superseded by modern graphics APIs |
| Extension conflict | The .chr extension is also claimed by Autodesk 3ds Max for character model files - an entirely unrelated binary format |
| Released | Late 1980s, with Borland's Turbo C / Turbo Pascal and the BGI graphics library |
| Latest version | Frozen with the BGI era; no modern versioning |
| Specification | en.wikipedia.org |
CHR conversions
Community Q&A
asked by usersNo questions yet - be the first to ask about CHR files.