The example in the post is not strictly linked to the functions in the HT1632 code you/we are using here. Just showing the principle.
I couldn't find this code you are referring to:
unsigned char PROGMEM font_8x16[95][14] = {
{0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000}, //
{0x0000,0x0000,0x7e02,0x7fe7,0x7e02,0x0000,0x0000,0x0000}, // !
But, at a glance, this is what I take from it:
- it is an attempt to define each character as an array of 8 values (as you correctly noticed, should be font_8x16[95][8]);
- this means that each character is defined as a sequence of columns (one character is 8 columns x 16 rows);
- to define a column, you need 16 bits; this is more than a char (8 bits), so you would need an unsigned int; therefore, "unsigned char PROGMEM font_8x16" is wrong, it should be "unsigned int PROGMEM font_8x16";
And I did not have an in-depth look at the function "scrolltextsizexcolor", which looks pretty hard-to-understand to me (I did not write that).
You give it a few more tries and if you don't get it working, I will make an effort to dive into that function.