Jump to content

ghost recon Font ?


Recommended Posts

Sorry, no. I only changed the color of it for use in GR.

But you can copy the alpha layer and past it on a normal layer. Then simply inverse it and you have teh characters..... Then you'll need to set it up as a font. to use it or simply cut and past if it's for only 1 thing your doing.

Link to comment
Share on other sites

  • 1 year later...

I've got two different font families on hand that are both freeware and rather hard to find online. I'd be glad to send a copy to you.

If you'd prefer searching for them, look for Microstile and MicrogrammaD font families. The bold versions are very similar to the Eurostile_JS font used for Ghost Recon.

Link to comment
Share on other sites

  • 8 months later...

Ahoi comrades....

Hey dudes,

id like to know if anyone have the font used in ghost recon (ghost recon font) or a link to where i can get it from...ive looked in the web but i can only find a patch to some ''font problem'' GR has for certain graphics card users.

thx BYE!! :)

Link to comment
Share on other sites

  • 4 months later...

Editor’s Notes

The results of this reverse engineering process are not 100% accurate. While my best guess of the positional structures work for simple font modifications, it is not thorough enough to build a font resource file from scratch. There are still more questions about the file structure than I have real answers. Any assistance in de-ciphering the resource file format would be appreciated. I am publishing this currently available information hoping others in the community may help in this process.

-- 9MS MFisto --

Table of Contents

1. Introduction

2. Font Resource File Format

3. Editing Font Resource File

4. Editing Font Bitmap File

5. (Appendix A): Coordinate Diagram

Section 1: Introduction

This tutorial represents my attempts to reverse engineer the default font resources which come with Ghost Recon. My motivation was twofold. First, the default GR font had capital i, number one and lowercase L all showing as a single vertical bar (l). I don’t like possible confusion this can cause. Second, I wanted to build a mod with a look and feel like no other clan has been able to accomplish. Everyone seems to have accepted the GR default font. This presented a challenge I couldn’t pass.

After extensive internet research and trolling through GR forum posts, I have come to realize the difficulty of the task. While the .rsb bitmap file is easily explainable, no pertinent information about the font resource file is available. This file does not conform to standard Microsoft or C++ resource formats, making a de-compilation by this means impossible. Without access to the GR source code, deciphering the format based on coding structures had no direct method. My only remaining option was attempt manual pattern recognition in the HEX-based resource file.

I assumed the Alpha channel in the bitmap file had a positional relationship between printable characters and the graphical representation. After many tries with character height, width, x and y offsets, etc…, I was able to determine a 10-byte repeating pattern in the resource file. (See following sections for details)

This partial decryption of the file format has allowed me to correct the first problem. It gives the 9MS mod a slightly different look, but does not completely achieve my second goal of a complete font replacement. Further work is needed to develop a complete resource file decryption.

Section 2: Font Resource File Format

This section explains my current knowledge of the font resource file. A file named font.res in the specified mod /Shell directory will over-ride the font file(s) located in the GR default directories. A corresponding bitmap file must appear in the /Shell/Art sub-directory, else the game will crash at startup.

Example: /Mods/9MS/Shell/font.res

1. The first sections of the HEX file have not been de-crypted, though ASCII representation of the bitmap filename appears here followed by a <LF> character (x0A Line Feed). Another reference to “ike” appears in readable text, but I have not been able to figure out the other entries.

2. The repeating pattern is shown here. Here is an example of how this structure appears to work.

| | | |

00 00 | 00 06 | 00 10 | 00 00 | 01 06

Y1 offset X1 offset Y2 offset ???? | closeout or X-entry closeout? Must match the X1 offset in my experience

character width in pixels

3. Known items:

a. X1 and Y1 positions start the bitmap interpretation of the character.

b. Character width is what is displayed on the game screens

c. Y2 represent the bottom row of pixels displayed by the character bitmap

d. Resource file positions roughly approximate the ASCII character order in HEX representation (blank=x20, exclamation mark=x21). This does not hold for the last characters in the bitmap row. I believe the order of characters expected in the bitmap is hard-coded in the program source code. The basis for this assertion is no discernible identification of the character being expressed in the positional structure shown above.

e. Coordinates are expressed in pixels.

4. Unknowns

a. Initial file headers/structures.

b. The structures needed to close-out the small font and begin the large font

c. Exact relationship between bitmap starting position, character width, and initial position of the next character

d. Font descriptor sections

e. File termination sequences.

f. Whether HEX values are bytes or combined into words

Section 3: Editing Font Resource File

A HEX editor is needed to make adjustments to the font resource file. I downloaded a freeware version of HHD HEX Editor 3.12, you can use your tools of choice. As good practice dictates before making any file changes, copy the original versions of GhostRecon files to a safe location for later restoration if needed.

My first step was to identify the characters to modify in the bitmap file. In this example, I wanted to put a slight left accent on the number one in the small font area to distinguish it from similar characters. I also want to make the zero smaller for a visual difference to a capital O. Since these two are adjacent, the file changes were relatively easy.

For my number one example, I want to widen the character from 2 to 3 pixels wide and add the accent hook to the newly added column of the character. Not all steps in compressing the zero will be explained here, but the result will be a three pixel opening for the new ONE character.

1. Copy the GR original font resource and bitmap graphic files to the appropriate mod sub-directories.

2. Open the bitmap file with Photoshop with the RSB plug-in activated. (/Mods/9MS/Shell/Art/new_font_revised.rsb)

3. Activate the Photoshop Information window and make sure the X/Y coordinate indicator is set to show pixels.

4. Open the Photoshop Channels window and highlight the Alpha channel.

5. Use the Photoshop Select or Pencil Tools to locate the top left corner of the number one. The X1 and Y1 positions in decimal notation can be seen in the Information window.

6. Count the pixel width of the original character.

7. Convert all three numbers to Hexi-decimal. You now have three numbers which can be used to locate the appropriate location in the resource file. (If you do not need to move or widen a character, the resource font file need not be changed. Proceed to the bitmap file editing section.)

8. The old positional numbers were X1 = x4B, Y1 = x00, and width = x02. The HEX pattern in the resource file should look like this:

00 00 00 4B 00 10 00 00 02 4B

9. Using the Photoshop Pencil tool, make the desired pixel changes to the Alpha layer of bitmap file. Black pixels will not be displayed in the game window. White pixels will display at 100%, grey shades will display at varying degrees of opacity.

10. Use the Photoshop Select or Pencil Tools to obtain the new positional numbers.

11. When changes to the bitmap file are complete, save the bitmap file to the appropriate sub-directory.

12. Close the Photoshop session.

13. Open up the font resource file with the HEX editor. (/Mods/9MS/Shell/font.res)

14. Locate the 10-byte structure relatively early in the file which matches the old positional numbers.

15. Adjust the individual HEX entries for X1 position and character width as needed to match the new number one bitmap:

00 00 00 4A 00 10 00 00 03 4A

16. Save the font resource file and close the HEX editor session.

The game should now display the modified “1” character with the accent hook. I think this modification process could be used to completely replace all characters, though the order of character appearance in the bitmap file should continue to match the original. Again, any help you can provide on additional resource file structures would be appreciated.

Section 4: Editing Font Bitmap File

This tutorial does not explain many of the details in Photoshop to make bitmap changes. I use the Pencil tool with width set to one to change individual pixels in the Alpha layer. The Eyedropper tool can be used to set the varying degrees of opacity. The RGB channels in the normal display layer determine the color of font. The GR default is white. The 9MS mod has a slight yellow shade.

Appendix A – Coordinate Diagram

This diagram shows the bitmap pattern in the Alpha channel for individual characters and the relationship to the 10-byte entry in the font resource file.


Any help on this topic would be greatly appreciated.



Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Create New...