Skip to content
View in the app

A better way to browse. Learn more.

ResHax

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Help us keep the site running.
Zero Tolerance for Disrespect

Forza Horizon 2 vfont

Featured Replies

It might not be a texture file; I’m not entirely sure. It could also be a .ttf or .gfx file. I need to unpack the files, edit them, and then import them back in. Is there anyone who can help with this?

fh2fonts.zip

  • Supporter

It looks like 2D/3D font. Not easy imo.

Rough struct.

//------------------------------------------------
//--- 010 Editor v14.0 Binary Template
//
//      File: 
//   Authors: 
//   Version: 
//   Purpose: 
//  Category: 
// File Mask: 
//  ID Bytes: 
//   History: 
//------------------------------------------------
LittleEndian();OutputPaneClear();

local uint32 i,j,k,l;

string FontName;
//Skipped 128 bytes not sure what they are, could be an important

FSeek(128);
uint32 GlyphCount;
uint32 Unknown_0;
uint32 Unknown_1;
uint32 KernCount;
float Unknown_3;
float Unknown_4;
float Unknown_5;
uint32 Unknown_6;
uint32 Unknown_7;
uint32 Unknown_8;
uint32 Unknown_9;
uint32 Unknown_10;
uint32 Unknown_11;
uint32 Unknown_12;
uint32 Unknown_13;
uint32 Unknown_14;

struct
{
    wchar_t Character[2];
    float Unknown_0;
    uint32 Unknown_1;
    uint32 Unknown_2;
    uint32 Unknown_3;
    uint32 Unknown_4;
    uint32 Unknown_5;
}GlyphDefinition[GlyphCount]<optimize=false>;

if (KernCount != 0)
{
    struct
    {
        wchar_t Character[2];
        wchar_t CharacterKern[2];
        uint32 Unknown_0;
    }GlyphKernDefinition[KernCount]<optimize=false>;
}

uint32 Glyph2DCount;
struct
{
    wchar_t Character[2];
    uint32 VertexCount;
    uint32 IndexCount;
    
    if (VertexCount != 0)
    {
        struct
        {
            hfloat VPosX,VPosY,VPosZ,Opacity;
        }Glyph2DVector[VertexCount]<optimize=false>;
        
        struct
        {
            uint16 F1,F2,F3;
        }GlyphIndices[IndexCount / 3]<optimize=false>;
    }
}Glyph2DDefinition[Glyph2DCount]<optimize=false>;

Edited by h3x3r

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.