Warning: Unknown: Unable to allocate memory for pool. in Unknown on line 0

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/index.php on line 54

Warning: Cannot modify header information - headers already sent in /usr/local/www/mediawiki/includes/WebStart.php on line 63

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 94

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 97

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 100

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 103

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/Defines.php on line 187

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 115

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 134

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/LocalSettings.php on line 137

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/LocalSettings.php on line 139

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/LocalSettings.php on line 144

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/LocalSettings.php on line 145

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/LocalSettings.php on line 153

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 150

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 157

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/Setup.php on line 381

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/Setup.php on line 382

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/Setup.php on line 383

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/languages/Language.php on line 20

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: include_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/Skin.php on line 153

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/skins/Vector.deps.php on line 11

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/Skin.php on line 155

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: Cannot modify header information - headers already sent in /usr/local/www/mediawiki/includes/WebResponse.php on line 38

Warning: Cannot modify header information - headers already sent in /usr/local/www/mediawiki/includes/WebResponse.php on line 38

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007
GRASP font - Just Solve the File Format Problem

GRASP font

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
(Format details)
 
(2 intermediate revisions by one user not shown)
Line 15: Line 15:
  
 
=== New format ===
 
=== New format ===
A file possibly begins with 0x10, has a name at offset 1, and the file size at offset 25.
+
''This is a partial decoding of the format, based on reverse engineering and guesswork.''
 +
 
 +
{| class="wikitable"
 +
! Offset !! Type !! Description
 +
|-
 +
|0  || byte      || Always 0x10?
 +
|-
 +
|1  || byte[13]  || Font name / filename, terminated by a NUL byte
 +
|-
 +
|16  || byte      || Number of characters in the file. The maximum allowed might be 94.
 +
|-
 +
|19  || byte      || Glyph physical pixel width
 +
|-
 +
|20  || byte      || Glyph pixel height
 +
|-
 +
|21  || byte      || Number of bytes per row in a glyph bitmap (?)
 +
|-
 +
|25  || int16    || File size
 +
|-
 +
|59  || int16    || Unknown (''not'' a pointer to the bitmap for the space character, logical as that would be)
 +
|-
 +
|61  || int16[94] || Table of glyph bitmap offsets, relative to the beginning of the file
 +
|-
 +
|249 || byte      || Unknown; possibly the width of a space character
 +
|-
 +
|250 || byte[94]  || Table of glyph logical pixel widths
 +
|}
 +
 
 +
Character codes are approximately ASCII, with the first character in the tables being ASCII 33 ("!").
 +
 
 +
Each glyph's bitmap, as stored in the file, is the same size. The "widths table" tells how many columns are meaningful.
  
 
== Sample files ==
 
== Sample files ==
Line 26: Line 56:
 
* [http://cd.textfiles.com/vgaspectrum/animate/gl/duck.gl duck.gl] → rome25.set
 
* [http://cd.textfiles.com/vgaspectrum/animate/gl/duck.gl duck.gl] → rome25.set
 
* [http://cd.textfiles.com/vgaspectrum/animate/gl/v7vga.gl v7vga.gl] → book.set
 
* [http://cd.textfiles.com/vgaspectrum/animate/gl/v7vga.gl v7vga.gl] → book.set
 +
* [http://cd.textfiles.com/gamefest2/SOFT/ED/PRO10/AMULT.GL AMULT.GL] → gaston.set, helvet20.set, mysmall.set
 +
* [http://cd.textfiles.com/gamefest2/SOFT/ED/PRO12/ACLOCK.GL ACLOCK.GL] → lcd.set
  
 
== Links ==
 
== Links ==
 
* {{EGFF|grasp|GRASP File Format Summary}}, from the [[Encyclopedia of Graphics File Formats]] ("Font File" section)
 
* {{EGFF|grasp|GRASP File Format Summary}}, from the [[Encyclopedia of Graphics File Formats]] ("Font File" section)
 
* [http://www.textfiles.com/programming/FORMATS/glformat.txt glformat.txt] ("Font Files" section)
 
* [http://www.textfiles.com/programming/FORMATS/glformat.txt glformat.txt] ("Font Files" section)

Latest revision as of 17:02, 7 January 2017

File Format
Name GRASP font
Ontology
Extension(s) .set, .fnt

GRASP font is a bitmap font format associated with the GRASP animation software. Some GRASP GL archive files contain one or more GRASP font files.

See GRASP GL for more information about GRASP, and related formats.

It appears that there is a second GRASP font format, that is significantly different from the one that is documented. We'll call the documented format "original format", and the other format "new format".

Contents

[edit] Format details

[edit] Original format

Files have a 7-byte header with no identifying signature, followed by the glyph bitmap data. See the Links section for documentation.

[edit] New format

This is a partial decoding of the format, based on reverse engineering and guesswork.

Offset Type Description
0 byte Always 0x10?
1 byte[13] Font name / filename, terminated by a NUL byte
16 byte Number of characters in the file. The maximum allowed might be 94.
19 byte Glyph physical pixel width
20 byte Glyph pixel height
21 byte Number of bytes per row in a glyph bitmap (?)
25 int16 File size
59 int16 Unknown (not a pointer to the bitmap for the space character, logical as that would be)
61 int16[94] Table of glyph bitmap offsets, relative to the beginning of the file
249 byte Unknown; possibly the width of a space character
250 byte[94] Table of glyph logical pixel widths

Character codes are approximately ASCII, with the first character in the tables being ASCII 33 ("!").

Each glyph's bitmap, as stored in the file, is the same size. The "widths table" tells how many columns are meaningful.

[edit] Sample files

[edit] Original format

[edit] New format

[edit] Links

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox

Warning: Cannot modify header information - headers already sent in /usr/local/www/mediawiki/includes/WebResponse.php on line 38

Warning: Cannot modify header information - headers already sent in /usr/local/www/mediawiki/includes/WebResponse.php on line 38

Warning: Cannot modify header information - headers already sent in /usr/local/www/mediawiki/includes/WebResponse.php on line 38