Function for rendering custom fonts
I'm not going to comment on the algorithm or functionality, however, there are several aspects in this code that make it very hard to read and understand.

Strange variable naming:

Most programmers associate names in ALL_CAPS with macros and constants (Windows programmers might also like that notation for typedefs), which makes them very unsuited for variable and parameter names. X_OFFSET, STRING, and the others would be much better as x_offset, string, and so on.

Unused parameter:

BYTE CLRSPACE[][3] is not used by the function. Should be removed or at least referenced with a (void) to suppress compiler warnings:

{
    (void)CLRSPACE;
    ...


Too many things in a line:

You have no idea how these lines combining several statements can hurt readability. A few instances:

char *buffer = STRING, *font; int xo = X_OFFSET, yo = Y_OFFSET;
...
fseek(fp, EOF, SEEK_END); fontsize = ftell(fp); font = malloc(fontsize); rewind(fp);


A much clearer layout:

char *buffer = STRING, *font; 
int xo = X_OFFSET, yo = Y_OFFSET;
...
fseek(fp, EOF, SEEK_END); 
fontsize = ftell(fp); 
font = malloc(fontsize); 
rewind(fp);


Inconsistent statement layout:

You have different ways of indenting and positioning your control statements.
This one in particular is very awkward:

if
(font[chrOffset+linep] == '#') { colp++; line = 0; }
else if
(font[chrOffset+(linep+1)] != '#')  // if not NL and w/o ending supplement:
{
    ...
}


Re-arrange that to a more natural way an be consistent with all your code:

if (font[chrOffset+linep] == '#') 
{ 
    colp++; 
    line = 0; 
}
else if (font[chrOffset+(linep+1)] != '#')  // if not NL and w/o ending supplement:
{
    ...
}


Here, at the end of the function, another strange arrangement:

    } free(font);
    return;
}


free(font) should be in its own line. The return is not necessary, as this is a void function.

Mysterious statement:

It seems that in here:

int chrOffset, chr = 32; _ = chrOffset;


You have declared (or re-assigned) a variable named _. I have no idea what that is supposed to mean, as there are no further references to _. A variable named _ is already pretty bad by itself. This code here, I'm not even sure if it would compile...

There are probably more aspects to consider, but that's all I can tell you for now. Hope the advices are useful.