Ticket #8938: scumm-fontdata.diff

File scumm-fontdata.diff, 37.1 KB (added by eriktorbjorn, 15 years ago)

Patch against current SVN

  • engines/scumm/charset.h

     
    165165};
    166166
    167167class CharsetRendererV2 : public CharsetRendererV3 {
     168protected:
     169        bool _deleteFontPtr;
     170
    168171public:
    169172        CharsetRendererV2(ScummEngine *vm, Common::Language language);
     173        ~CharsetRendererV2();
    170174
    171175        void setCurID(int32 id) {}
    172176        int getCharWidth(byte chr) { return 8; }
  • engines/scumm/charset-fontdata.cpp

     
    160160        0x08, 0x0C, 0x0E, 0xFF, 0xFF, 0x0E, 0x0C, 0x08,
    161161};
    162162
    163 // German Zak font
    164 static const byte germanCharsetDataV2[] = {
    165         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    166         0x01, 0x03, 0x06, 0x0c, 0x18, 0x3e, 0x03, 0x00,
    167         0x80, 0xc0, 0x60, 0x30, 0x18, 0x7c, 0xc0, 0x00,
    168         0x00, 0x03, 0x3e, 0x18, 0x0c, 0x06, 0x03, 0x01,
    169         0x00, 0xc0, 0x7c, 0x18, 0x30, 0x60, 0xc0, 0x80,
    170         0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
    171         0x03, 0x03, 0x03, 0x07, 0x07, 0x0f, 0x1f, 0x7f,
    172         0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0,
    173         0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07,
    174         0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x0c, 0x18,
    175         0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x18,
    176         0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00,
    177         0x18, 0x0c, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00,
    178         0x00, 0x00, 0x00, 0x1f, 0x1f, 0x18, 0x18, 0x18,
    179         0x00, 0x00, 0x00, 0xf8, 0xf8, 0x18, 0x18, 0x18,
    180         0x18, 0x18, 0x18, 0xf8, 0xf8, 0x00, 0x00, 0x00,
    181         0x18, 0x18, 0x18, 0x1f, 0x1f, 0x00, 0x00, 0x00,
    182         0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x18, 0x18,
    183         0x00, 0x00, 0x00, 0xc0, 0xe0, 0x30, 0x18, 0x18,
    184         0x18, 0x18, 0x30, 0xe0, 0xc0, 0x00, 0x00, 0x00,
    185         0x18, 0x18, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00,
    186         0x18, 0x18, 0x18, 0x1f, 0x1f, 0x18, 0x18, 0x18,
    187         0x18, 0x18, 0x18, 0xf8, 0xf8, 0x18, 0x18, 0x18,
    188         0x18, 0x18, 0x18, 0xff, 0xff, 0x00, 0x00, 0x00,
    189         0x00, 0x00, 0x00, 0xff, 0xff, 0x18, 0x18, 0x18,
    190         0x18, 0x18, 0x18, 0xff, 0xff, 0x18, 0x18, 0x18,
    191         0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
    192         0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
    193         0x18, 0x3c, 0x66, 0xc3, 0xc3, 0x66, 0x3c, 0x18,
    194         0x18, 0x3c, 0x7e, 0xff, 0xff, 0x7e, 0x3c, 0x18,
    195         0x18, 0x66, 0xc3, 0xdb, 0xdb, 0xc3, 0x66, 0x18,
    196         0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
    197         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    198         0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x00,
    199         0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00,
    200         0x66, 0x66, 0xff, 0x66, 0xff, 0x66, 0x66, 0x00,
    201         0x18, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x18, 0x00,
    202         0x62, 0x66, 0x0c, 0x18, 0x30, 0x66, 0x46, 0x00,
    203         0x3c, 0x66, 0x3c, 0x38, 0x67, 0x66, 0x3f, 0x00,
    204         0x30, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
    205         0x0c, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00,
    206         0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00,
    207         0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00,
    208         0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00,
    209         0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30,
    210         0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00,
    211         0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00,
    212         0x00, 0x03, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x00,
    213         0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00,
    214         0x18, 0x18, 0x38, 0x18, 0x18, 0x18, 0x7e, 0x00,
    215         0x3c, 0x66, 0x06, 0x0c, 0x30, 0x60, 0x7e, 0x00,
    216         0x3c, 0x66, 0x06, 0x1c, 0x06, 0x66, 0x3c, 0x00,
    217         0x06, 0x0e, 0x1e, 0x66, 0x7f, 0x06, 0x06, 0x00,
    218         0x7e, 0x60, 0x7c, 0x06, 0x06, 0x66, 0x3c, 0x00,
    219         0x3c, 0x66, 0x60, 0x7c, 0x66, 0x66, 0x3c, 0x00,
    220         0x7e, 0x66, 0x0c, 0x18, 0x18, 0x18, 0x18, 0x00,
    221         0x3c, 0x66, 0x66, 0x3c, 0x66, 0x66, 0x3c, 0x00,
    222         0x3c, 0x66, 0x66, 0x3e, 0x06, 0x66, 0x3c, 0x00,
    223         0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00,
    224         0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30,
    225         0x0e, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0e, 0x00,
    226         0x7c, 0x82, 0xba, 0xa2, 0xa2, 0xba, 0x82, 0x7c,
    227         0x70, 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x70, 0x00,
    228         0x3c, 0x66, 0x06, 0x0c, 0x18, 0x00, 0x18, 0x00,
    229         0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
    230         0x18, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00,
    231         0x7c, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x7c, 0x00,
    232         0x3c, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3c, 0x00,
    233         0x78, 0x6c, 0x66, 0x66, 0x66, 0x6c, 0x78, 0x00,
    234         0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x7e, 0x00,
    235         0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x60, 0x00,
    236         0x3c, 0x66, 0x60, 0x6e, 0x66, 0x66, 0x3c, 0x00,
    237         0x66, 0x66, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00,
    238         0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00,
    239         0x1e, 0x0c, 0x0c, 0x0c, 0x0c, 0x6c, 0x38, 0x00,
    240         0x66, 0x6c, 0x78, 0x70, 0x78, 0x6c, 0x66, 0x00,
    241         0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7e, 0x00,
    242         0x63, 0x77, 0x7f, 0x6b, 0x63, 0x63, 0x63, 0x00,
    243         0x66, 0x76, 0x7e, 0x7e, 0x6e, 0x66, 0x66, 0x00,
    244         0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00,
    245         0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x60, 0x00,
    246         0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x0e, 0x00,
    247         0x7c, 0x66, 0x66, 0x7c, 0x78, 0x6c, 0x66, 0x00,
    248         0x3c, 0x66, 0x60, 0x3c, 0x06, 0x66, 0x3c, 0x00,
    249         0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00,
    250         0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00,
    251         0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00,
    252         0x63, 0x63, 0x63, 0x6b, 0x7f, 0x77, 0x63, 0x00,
    253         0x66, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x66, 0x00,
    254         0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x00,
    255         0x7e, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x7e, 0x00,
    256         0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00,
    257         0x66, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00,
    258         0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00,
    259         0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0xdb, 0x00,
    260         0x00, 0x10, 0x30, 0x7f, 0x7f, 0x30, 0x10, 0x00,
    261         0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00,
    262         0x00, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00,
    263         0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x7c, 0x00,
    264         0x00, 0x00, 0x3c, 0x60, 0x60, 0x60, 0x3c, 0x00,
    265         0x00, 0x06, 0x06, 0x3e, 0x66, 0x66, 0x3e, 0x00,
    266         0x00, 0x00, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00,
    267         0x00, 0x0e, 0x18, 0x3e, 0x18, 0x18, 0x18, 0x00,
    268         0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x7c,
    269         0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x66, 0x00,
    270         0x00, 0x18, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00,
    271         0x00, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x3c,
    272         0x00, 0x60, 0x60, 0x6c, 0x78, 0x6c, 0x66, 0x00,
    273         0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00,
    274         0x00, 0x00, 0x66, 0x7f, 0x7f, 0x6b, 0x63, 0x00,
    275         0x00, 0x00, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x00,
    276         0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00,
    277         0x00, 0x00, 0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60,
    278         0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x06,
    279         0x00, 0x00, 0x7c, 0x66, 0x60, 0x60, 0x60, 0x00,
    280         0x00, 0x00, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x00,
    281         0x00, 0x18, 0x7e, 0x18, 0x18, 0x18, 0x0e, 0x00,
    282         0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00,
    283         0x00, 0x00, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00,
    284         0x00, 0x00, 0x63, 0x6b, 0x7f, 0x3e, 0x36, 0x00,
    285         0x00, 0x00, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x00,
    286         0x00, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x0c, 0x78,
    287         0x00, 0x00, 0x7e, 0x0c, 0x18, 0x30, 0x7e, 0x00,
    288         0x66, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00,
    289         0x66, 0x18, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x00,
    290         0x42, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00,
    291         0x1c, 0x36, 0x36, 0x7c, 0x66, 0x66, 0x7c, 0x40,
    292         0x08, 0x0c, 0x0e, 0xff, 0xff, 0x0e, 0x0c, 0x08,
    293 };
    294 
    295 // German C64 MM
    296 static const byte germanCharsetDataV0[] = {
    297         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    298         0x01, 0x03, 0x06, 0x0c, 0x18, 0x3e, 0x03, 0x00,
    299         0x80, 0xc0, 0x60, 0x30, 0x18, 0x7c, 0xc0, 0x00,
    300         0x00, 0x03, 0x3e, 0x18, 0x0c, 0x06, 0x03, 0x01,
    301         0x00, 0xc0, 0x7c, 0x18, 0x30, 0x60, 0xc0, 0x80,
    302         0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
    303         0x03, 0x03, 0x03, 0x07, 0x07, 0x0f, 0x1f, 0x7f,
    304         0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0,
    305         0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07,
    306         0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x0c, 0x18,
    307         0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x18,
    308         0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00,
    309         0x18, 0x0c, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00,
    310         0x00, 0x00, 0x00, 0x1f, 0x1f, 0x18, 0x18, 0x18,
    311         0x00, 0x00, 0x00, 0xf8, 0xf8, 0x18, 0x18, 0x18,
    312         0x18, 0x18, 0x18, 0xf8, 0xf8, 0x00, 0x00, 0x00,
    313         0x18, 0x18, 0x18, 0x1f, 0x1f, 0x00, 0x00, 0x00,
    314         0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x18, 0x18,
    315         0x00, 0x00, 0x00, 0xc0, 0xe0, 0x30, 0x18, 0x18,
    316         0x18, 0x18, 0x30, 0xe0, 0xc0, 0x00, 0x00, 0x00,
    317         0x18, 0x18, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00,
    318         0x18, 0x18, 0x18, 0x1f, 0x1f, 0x18, 0x18, 0x18,
    319         0x18, 0x18, 0x18, 0xf8, 0xf8, 0x18, 0x18, 0x18,
    320         0x18, 0x18, 0x18, 0xff, 0xff, 0x00, 0x00, 0x00,
    321         0x00, 0x00, 0x00, 0xff, 0xff, 0x18, 0x18, 0x18,
    322         0x18, 0x18, 0x18, 0xff, 0xff, 0x18, 0x18, 0x18,
    323         0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
    324         0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
    325         0x18, 0x3c, 0x66, 0xc3, 0xc3, 0x66, 0x3c, 0x18,
    326         0x18, 0x3c, 0x7e, 0xff, 0xff, 0x7e, 0x3c, 0x18,
    327         0x18, 0x66, 0xc3, 0xdb, 0xdb, 0xc3, 0x66, 0x18,
    328         0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
    329         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    330         0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x00,
    331         0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00,
    332         0x66, 0x66, 0xff, 0x66, 0xff, 0x66, 0x66, 0x00,
    333         0x66, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00,
    334         0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x49, 0x00,
    335         0x3c, 0x66, 0x3c, 0x38, 0x67, 0x66, 0x3f, 0x00,
    336         0x06, 0x0c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
    337         0x0c, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00,
    338         0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00,
    339         0x3c, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x6c, 0x60,
    340         0x66, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00,
    341         0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30,
    342         0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00,
    343         0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00,
    344         0x00, 0x03, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x00,
    345         0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00,
    346         0x18, 0x18, 0x38, 0x18, 0x18, 0x18, 0x7e, 0x00,
    347         0x3c, 0x66, 0x06, 0x0c, 0x30, 0x60, 0x7e, 0x00,
    348         0x3c, 0x66, 0x06, 0x1c, 0x06, 0x66, 0x3c, 0x00,
    349         0x06, 0x0e, 0x1e, 0x66, 0x7f, 0x06, 0x06, 0x00,
    350         0x7e, 0x60, 0x7c, 0x06, 0x06, 0x66, 0x3c, 0x00,
    351         0x3c, 0x66, 0x60, 0x7c, 0x66, 0x66, 0x3c, 0x00,
    352         0x7e, 0x66, 0x0c, 0x18, 0x18, 0x18, 0x18, 0x00,
    353         0x3c, 0x66, 0x66, 0x3c, 0x66, 0x66, 0x3c, 0x00,
    354         0x3c, 0x66, 0x66, 0x3e, 0x06, 0x66, 0x3c, 0x00,
    355         0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00,
    356         0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30,
    357         0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00,
    358         0x7c, 0x82, 0xba, 0xa2, 0xba, 0x82, 0x7c, 0x00,
    359         0x66, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00,
    360         0x3c, 0x66, 0x06, 0x0c, 0x18, 0x00, 0x18, 0x00,
    361         0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
    362         0x18, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00,
    363         0x7c, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x7c, 0x00,
    364         0x3c, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3c, 0x00,
    365         0x78, 0x6c, 0x66, 0x66, 0x66, 0x6c, 0x78, 0x00,
    366         0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x7e, 0x00,
    367         0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x60, 0x00,
    368         0x3c, 0x66, 0x60, 0x6e, 0x66, 0x66, 0x3c, 0x00,
    369         0x66, 0x66, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00,
    370         0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00,
    371         0x1e, 0x0c, 0x0c, 0x0c, 0x0c, 0x6c, 0x38, 0x00,
    372         0x66, 0x6c, 0x78, 0x70, 0x78, 0x6c, 0x66, 0x00,
    373         0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7e, 0x00,
    374         0x63, 0x77, 0x7f, 0x6b, 0x63, 0x63, 0x63, 0x00,
    375         0x66, 0x76, 0x7e, 0x7e, 0x6e, 0x66, 0x66, 0x00,
    376         0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00,
    377         0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x60, 0x00,
    378         0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x0e, 0x00,
    379         0x7c, 0x66, 0x66, 0x7c, 0x78, 0x6c, 0x66, 0x00,
    380         0x3c, 0x66, 0x60, 0x3c, 0x06, 0x66, 0x3c, 0x00,
    381         0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00,
    382         0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00,
    383         0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00,
    384         0x63, 0x63, 0x63, 0x6b, 0x7f, 0x77, 0x63, 0x00,
    385         0x66, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x66, 0x00,
    386         0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x00,
    387         0x7e, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x7e, 0x00,
    388         0x66, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00,
    389         0x0c, 0x12, 0x30, 0x7c, 0x30, 0x62, 0xfc, 0x00,
    390         0x66, 0x24, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00,
    391         0x00, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18,
    392         0x00, 0x10, 0x30, 0x7f, 0x7f, 0x30, 0x10, 0x00,
    393         0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00,
    394         0x00, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00,
    395         0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x7c, 0x00,
    396         0x00, 0x00, 0x3c, 0x60, 0x60, 0x60, 0x3c, 0x00,
    397         0x00, 0x06, 0x06, 0x3e, 0x66, 0x66, 0x3e, 0x00,
    398         0x00, 0x00, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00,
    399         0x00, 0x0e, 0x18, 0x3e, 0x18, 0x18, 0x18, 0x00,
    400         0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x7c,
    401         0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x66, 0x00,
    402         0x00, 0x18, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00,
    403         0x00, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x3c,
    404         0x00, 0x60, 0x60, 0x6c, 0x78, 0x6c, 0x66, 0x00,
    405         0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00,
    406         0x00, 0x00, 0x66, 0x7f, 0x7f, 0x6b, 0x63, 0x00,
    407         0x00, 0x00, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x00,
    408         0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00,
    409         0x00, 0x00, 0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60,
    410         0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x06,
    411         0x00, 0x00, 0x7c, 0x66, 0x60, 0x60, 0x60, 0x00,
    412         0x00, 0x00, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x00,
    413         0x00, 0x18, 0x7e, 0x18, 0x18, 0x18, 0x0e, 0x00,
    414         0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00,
    415         0x00, 0x00, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00,
    416         0x00, 0x00, 0x63, 0x6b, 0x7f, 0x3e, 0x36, 0x00,
    417         0x00, 0x00, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x00,
    418         0x00, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x0c, 0x78,
    419         0x00, 0x00, 0x7e, 0x0c, 0x18, 0x30, 0x7e, 0x00,
    420         0x01, 0x03, 0x06, 0x6c, 0x78, 0x70, 0x60, 0x00,
    421         0x18, 0x3c, 0x7e, 0xff, 0x18, 0x18, 0x18, 0x18,
    422         0x18, 0x18, 0x18, 0x18, 0xff, 0x7e, 0x3c, 0x18,
    423         0x10, 0x30, 0x70, 0xff, 0xff, 0x70, 0x30, 0x10,
    424         0x08, 0x0c, 0x0e, 0xff, 0xff, 0x0e, 0x0c, 0x08,
    425 };
    426 
    427 // French Zak font.
    428 static const byte frenchCharsetDataV2[] = {
    429         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    430         0x01, 0x03, 0x06, 0x0c, 0x18, 0x3e, 0x03, 0x00,
    431         0x80, 0xc0, 0x60, 0x30, 0x18, 0x7c, 0xc0, 0x00,
    432         0x00, 0x03, 0x3e, 0x18, 0x0c, 0x06, 0x03, 0x01,
    433         0x00, 0xc0, 0x7c, 0x18, 0x30, 0x60, 0xc0, 0x80,
    434         0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
    435         0x03, 0x03, 0x03, 0x07, 0x07, 0x0f, 0x1f, 0x7f,
    436         0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0,
    437         0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07,
    438         0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x0c, 0x18,
    439         0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x18,
    440         0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00,
    441         0x18, 0x0c, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00,
    442         0x00, 0x00, 0x00, 0x1f, 0x1f, 0x18, 0x18, 0x18,
    443         0x00, 0x00, 0x00, 0xf8, 0xf8, 0x18, 0x18, 0x18,
    444         0x18, 0x18, 0x18, 0xf8, 0xf8, 0x00, 0x00, 0x00,
    445         0x18, 0x18, 0x18, 0x1f, 0x1f, 0x00, 0x00, 0x00,
    446         0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x18, 0x18,
    447         0x00, 0x00, 0x00, 0xc0, 0xe0, 0x30, 0x18, 0x18,
    448         0x18, 0x18, 0x30, 0xe0, 0xc0, 0x00, 0x00, 0x00,
    449         0x18, 0x18, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00,
    450         0x18, 0x18, 0x18, 0x1f, 0x1f, 0x18, 0x18, 0x18,
    451         0x18, 0x18, 0x18, 0xf8, 0xf8, 0x18, 0x18, 0x18,
    452         0x18, 0x18, 0x18, 0xff, 0xff, 0x00, 0x00, 0x00,
    453         0x00, 0x00, 0x00, 0xff, 0xff, 0x18, 0x18, 0x18,
    454         0x18, 0x18, 0x18, 0xff, 0xff, 0x18, 0x18, 0x18,
    455         0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
    456         0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
    457         0x18, 0x3c, 0x66, 0xc3, 0xc3, 0x66, 0x3c, 0x18,
    458         0x18, 0x3c, 0x7e, 0xff, 0xff, 0x7e, 0x3c, 0x18,
    459         0x18, 0x66, 0xc3, 0xdb, 0xdb, 0xc3, 0x66, 0x18,
    460         0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
    461         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    462         0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x00,
    463         0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00,
    464         0x66, 0x66, 0xff, 0x66, 0xff, 0x66, 0x66, 0x00,
    465         0x18, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x18, 0x00,
    466         0x62, 0x66, 0x0c, 0x18, 0x30, 0x66, 0x46, 0x00,
    467         0x3c, 0x66, 0x3c, 0x38, 0x67, 0x66, 0x3f, 0x00,
    468         0x30, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
    469         0x0c, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00,
    470         0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00,
    471         0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00,
    472         0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00,
    473         0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30,
    474         0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00,
    475         0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00,
    476         0x00, 0x03, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x00,
    477         0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00,
    478         0x18, 0x18, 0x38, 0x18, 0x18, 0x18, 0x7e, 0x00,
    479         0x3c, 0x66, 0x06, 0x0c, 0x30, 0x60, 0x7e, 0x00,
    480         0x3c, 0x66, 0x06, 0x1c, 0x06, 0x66, 0x3c, 0x00,
    481         0x06, 0x0e, 0x1e, 0x66, 0x7f, 0x06, 0x06, 0x00,
    482         0x7e, 0x60, 0x7c, 0x06, 0x06, 0x66, 0x3c, 0x00,
    483         0x3c, 0x66, 0x60, 0x7c, 0x66, 0x66, 0x3c, 0x00,
    484         0x7e, 0x66, 0x0c, 0x18, 0x18, 0x18, 0x18, 0x00,
    485         0x3c, 0x66, 0x66, 0x3c, 0x66, 0x66, 0x3c, 0x00,
    486         0x3c, 0x66, 0x66, 0x3e, 0x06, 0x66, 0x3c, 0x00,
    487         0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00,
    488         0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30,
    489         0x10, 0x08, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00,
    490         0x18, 0x24, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00,
    491         0x00, 0x00, 0x3c, 0x60, 0x60, 0x3c, 0x18, 0x38,
    492         0x3c, 0x66, 0x06, 0x0c, 0x18, 0x00, 0x18, 0x00,
    493         0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
    494         0x18, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00,
    495         0x7c, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x7c, 0x00,
    496         0x3c, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3c, 0x00,
    497         0x78, 0x6c, 0x66, 0x66, 0x66, 0x6c, 0x78, 0x00,
    498         0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x7e, 0x00,
    499         0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x60, 0x00,
    500         0x3c, 0x66, 0x60, 0x6e, 0x66, 0x66, 0x3c, 0x00,
    501         0x66, 0x66, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00,
    502         0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00,
    503         0x1e, 0x0c, 0x0c, 0x0c, 0x0c, 0x6c, 0x38, 0x00,
    504         0x66, 0x6c, 0x78, 0x70, 0x78, 0x6c, 0x66, 0x00,
    505         0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7e, 0x00,
    506         0x63, 0x77, 0x7f, 0x6b, 0x63, 0x63, 0x63, 0x00,
    507         0x66, 0x76, 0x7e, 0x7e, 0x6e, 0x66, 0x66, 0x00,
    508         0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00,
    509         0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x60, 0x00,
    510         0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x0e, 0x00,
    511         0x7c, 0x66, 0x66, 0x7c, 0x78, 0x6c, 0x66, 0x00,
    512         0x3c, 0x66, 0x60, 0x3c, 0x06, 0x66, 0x3c, 0x00,
    513         0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00,
    514         0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00,
    515         0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00,
    516         0x63, 0x63, 0x63, 0x6b, 0x7f, 0x77, 0x63, 0x00,
    517         0x66, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x66, 0x00,
    518         0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x00,
    519         0x7e, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x7e, 0x00,
    520         0x08, 0x10, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00,
    521         0x10, 0x08, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00,
    522         0x18, 0x24, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00,
    523         0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0xdb, 0x00,
    524         0x00, 0x6c, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00,
    525         0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00,
    526         0x00, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00,
    527         0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x7c, 0x00,
    528         0x00, 0x00, 0x3c, 0x60, 0x60, 0x60, 0x3c, 0x00,
    529         0x00, 0x06, 0x06, 0x3e, 0x66, 0x66, 0x3e, 0x00,
    530         0x00, 0x00, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00,
    531         0x00, 0x0e, 0x18, 0x3e, 0x18, 0x18, 0x18, 0x00,
    532         0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x7c,
    533         0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x66, 0x00,
    534         0x00, 0x18, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00,
    535         0x00, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x3c,
    536         0x00, 0x60, 0x60, 0x6c, 0x78, 0x6c, 0x66, 0x00,
    537         0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00,
    538         0x00, 0x00, 0x66, 0x7f, 0x7f, 0x6b, 0x63, 0x00,
    539         0x00, 0x00, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x00,
    540         0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00,
    541         0x00, 0x00, 0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60,
    542         0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x06,
    543         0x00, 0x00, 0x7c, 0x66, 0x60, 0x60, 0x60, 0x00,
    544         0x00, 0x00, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x00,
    545         0x00, 0x18, 0x7e, 0x18, 0x18, 0x18, 0x0e, 0x00,
    546         0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00,
    547         0x00, 0x00, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00,
    548         0x00, 0x00, 0x63, 0x6b, 0x7f, 0x3e, 0x36, 0x00,
    549         0x00, 0x00, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x00,
    550         0x00, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x0c, 0x78,
    551         0x00, 0x00, 0x7e, 0x0c, 0x18, 0x30, 0x7e, 0x00,
    552         0x18, 0x24, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00,
    553         0x18, 0x24, 0x00, 0x3c, 0x66, 0x66, 0x3c, 0x00,
    554         0x10, 0x08, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x00,
    555         0x18, 0x24, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x00,
    556         0x08, 0x0c, 0x0e, 0xff, 0xff, 0x0e, 0x0c, 0x08,
    557 };
    558 
    559 // Italian Zak font.
    560 static const byte italianCharsetDataV2[] = {
    561         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    562         0x01, 0x03, 0x06, 0x0c, 0x18, 0x3e, 0x03, 0x00,
    563         0x80, 0xc0, 0x60, 0x30, 0x18, 0x7c, 0xc0, 0x00,
    564         0x00, 0x03, 0x3e, 0x18, 0x0c, 0x06, 0x03, 0x01,
    565         0x00, 0xc0, 0x7c, 0x18, 0x30, 0x60, 0xc0, 0x80,
    566         0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
    567         0x03, 0x03, 0x03, 0x07, 0x07, 0x0f, 0x1f, 0x7f,
    568         0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0,
    569         0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07,
    570         0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x0c, 0x18,
    571         0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x18,
    572         0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00,
    573         0x18, 0x0c, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00,
    574         0x00, 0x00, 0x00, 0x1f, 0x1f, 0x18, 0x18, 0x18,
    575         0x00, 0x00, 0x00, 0xf8, 0xf8, 0x18, 0x18, 0x18,
    576         0x18, 0x18, 0x18, 0xf8, 0xf8, 0x00, 0x00, 0x00,
    577         0x18, 0x18, 0x18, 0x1f, 0x1f, 0x00, 0x00, 0x00,
    578         0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x18, 0x18,
    579         0x00, 0x00, 0x00, 0xc0, 0xe0, 0x30, 0x18, 0x18,
    580         0x18, 0x18, 0x30, 0xe0, 0xc0, 0x00, 0x00, 0x00,
    581         0x18, 0x18, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00,
    582         0x18, 0x18, 0x18, 0x1f, 0x1f, 0x18, 0x18, 0x18,
    583         0x18, 0x18, 0x18, 0xf8, 0xf8, 0x18, 0x18, 0x18,
    584         0x18, 0x18, 0x18, 0xff, 0xff, 0x00, 0x00, 0x00,
    585         0x00, 0x00, 0x00, 0xff, 0xff, 0x18, 0x18, 0x18,
    586         0x18, 0x18, 0x18, 0xff, 0xff, 0x18, 0x18, 0x18,
    587         0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
    588         0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
    589         0x18, 0x3c, 0x66, 0xc3, 0xc3, 0x66, 0x3c, 0x18,
    590         0x18, 0x3c, 0x7e, 0xff, 0xff, 0x7e, 0x3c, 0x18,
    591         0x18, 0x66, 0xc3, 0xdb, 0xdb, 0xc3, 0x66, 0x18,
    592         0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
    593         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    594         0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x00,
    595         0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00,
    596         0x66, 0x66, 0xff, 0x66, 0xff, 0x66, 0x66, 0x00,
    597         0x18, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x18, 0x00,
    598         0x62, 0x66, 0x0c, 0x18, 0x30, 0x66, 0x46, 0x00,
    599         0x3c, 0x66, 0x3c, 0x38, 0x67, 0x66, 0x3f, 0x00,
    600         0x30, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
    601         0x0c, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00,
    602         0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00,
    603         0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00,
    604         0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00,
    605         0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30,
    606         0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00,
    607         0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00,
    608         0x00, 0x03, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x00,
    609         0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00,
    610         0x18, 0x18, 0x38, 0x18, 0x18, 0x18, 0x7e, 0x00,
    611         0x3c, 0x66, 0x06, 0x0c, 0x30, 0x60, 0x7e, 0x00,
    612         0x3c, 0x66, 0x06, 0x1c, 0x06, 0x66, 0x3c, 0x00,
    613         0x06, 0x0e, 0x1e, 0x66, 0x7f, 0x06, 0x06, 0x00,
    614         0x7e, 0x60, 0x7c, 0x06, 0x06, 0x66, 0x3c, 0x00,
    615         0x3c, 0x66, 0x60, 0x7c, 0x66, 0x66, 0x3c, 0x00,
    616         0x7e, 0x66, 0x0c, 0x18, 0x18, 0x18, 0x18, 0x00,
    617         0x3c, 0x66, 0x66, 0x3c, 0x66, 0x66, 0x3c, 0x00,
    618         0x3c, 0x66, 0x66, 0x3e, 0x06, 0x66, 0x3c, 0x00,
    619         0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00,
    620         0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30,
    621         0x10, 0x08, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00,
    622         0x08, 0x10, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00,
    623         0x10, 0x08, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00,
    624         0x3c, 0x66, 0x06, 0x0c, 0x18, 0x00, 0x18, 0x00,
    625         0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
    626         0x18, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00,
    627         0x7c, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x7c, 0x00,
    628         0x3c, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3c, 0x00,
    629         0x78, 0x6c, 0x66, 0x66, 0x66, 0x6c, 0x78, 0x00,
    630         0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x7e, 0x00,
    631         0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x60, 0x00,
    632         0x3c, 0x66, 0x60, 0x6e, 0x66, 0x66, 0x3c, 0x00,
    633         0x66, 0x66, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00,
    634         0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00,
    635         0x1e, 0x0c, 0x0c, 0x0c, 0x0c, 0x6c, 0x38, 0x00,
    636         0x66, 0x6c, 0x78, 0x70, 0x78, 0x6c, 0x66, 0x00,
    637         0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7e, 0x00,
    638         0x63, 0x77, 0x7f, 0x6b, 0x63, 0x63, 0x63, 0x00,
    639         0x66, 0x76, 0x7e, 0x7e, 0x6e, 0x66, 0x66, 0x00,
    640         0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00,
    641         0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x60, 0x00,
    642         0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x0e, 0x00,
    643         0x7c, 0x66, 0x66, 0x7c, 0x78, 0x6c, 0x66, 0x00,
    644         0x3c, 0x66, 0x60, 0x3c, 0x06, 0x66, 0x3c, 0x00,
    645         0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00,
    646         0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00,
    647         0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00,
    648         0x63, 0x63, 0x63, 0x6b, 0x7f, 0x77, 0x63, 0x00,
    649         0x66, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x66, 0x00,
    650         0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x00,
    651         0x7e, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x7e, 0x00,
    652         0x08, 0x10, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00,
    653         0x10, 0x08, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00,
    654         0x18, 0x24, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00,
    655         0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0xdb, 0x00,
    656         0x00, 0x6c, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00,
    657         0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00,
    658         0x00, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00,
    659         0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x7c, 0x00,
    660         0x00, 0x00, 0x3c, 0x60, 0x60, 0x60, 0x3c, 0x00,
    661         0x00, 0x06, 0x06, 0x3e, 0x66, 0x66, 0x3e, 0x00,
    662         0x00, 0x00, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00,
    663         0x00, 0x0e, 0x18, 0x3e, 0x18, 0x18, 0x18, 0x00,
    664         0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x7c,
    665         0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x66, 0x00,
    666         0x00, 0x18, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00,
    667         0x00, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x3c,
    668         0x00, 0x60, 0x60, 0x6c, 0x78, 0x6c, 0x66, 0x00,
    669         0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00,
    670         0x00, 0x00, 0x66, 0x7f, 0x7f, 0x6b, 0x63, 0x00,
    671         0x00, 0x00, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x00,
    672         0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00,
    673         0x00, 0x00, 0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60,
    674         0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x06,
    675         0x00, 0x00, 0x7c, 0x66, 0x60, 0x60, 0x60, 0x00,
    676         0x00, 0x00, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x00,
    677         0x00, 0x18, 0x7e, 0x18, 0x18, 0x18, 0x0e, 0x00,
    678         0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00,
    679         0x00, 0x00, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00,
    680         0x00, 0x00, 0x63, 0x6b, 0x7f, 0x3e, 0x36, 0x00,
    681         0x00, 0x00, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x00,
    682         0x00, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x0c, 0x78,
    683         0x00, 0x00, 0x7e, 0x0c, 0x18, 0x30, 0x7e, 0x00,
    684         0x10, 0x08, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00,
    685         0x10, 0x08, 0x00, 0x3c, 0x66, 0x66, 0x3c, 0x00,
    686         0x10, 0x08, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x00,
    687         0x18, 0x24, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x00,
    688         0x08, 0x0c, 0x0e, 0xff, 0xff, 0x0e, 0x0c, 0x08,
    689 };
    690 
    691 // Spanish Zak font.
    692 // FIXME: This is identical to germanCharsetDataV2 it seems?!
    693 static const byte spanishCharsetDataV2[] = {
    694         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    695         0x01, 0x03, 0x06, 0x0c, 0x18, 0x3e, 0x03, 0x00,
    696         0x80, 0xc0, 0x60, 0x30, 0x18, 0x7c, 0xc0, 0x00,
    697         0x00, 0x03, 0x3e, 0x18, 0x0c, 0x06, 0x03, 0x01,
    698         0x00, 0xc0, 0x7c, 0x18, 0x30, 0x60, 0xc0, 0x80,
    699         0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
    700         0x03, 0x03, 0x03, 0x07, 0x07, 0x0f, 0x1f, 0x7f,
    701         0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0,
    702         0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07,
    703         0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x0c, 0x18,
    704         0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x18,
    705         0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00,
    706         0x18, 0x0c, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00,
    707         0x00, 0x00, 0x00, 0x1f, 0x1f, 0x18, 0x18, 0x18,
    708         0x00, 0x00, 0x00, 0xf8, 0xf8, 0x18, 0x18, 0x18,
    709         0x18, 0x18, 0x18, 0xf8, 0xf8, 0x00, 0x00, 0x00,
    710         0x18, 0x18, 0x18, 0x1f, 0x1f, 0x00, 0x00, 0x00,
    711         0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x18, 0x18,
    712         0x00, 0x00, 0x00, 0xc0, 0xe0, 0x30, 0x18, 0x18,
    713         0x18, 0x18, 0x30, 0xe0, 0xc0, 0x00, 0x00, 0x00,
    714         0x18, 0x18, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00,
    715         0x18, 0x18, 0x18, 0x1f, 0x1f, 0x18, 0x18, 0x18,
    716         0x18, 0x18, 0x18, 0xf8, 0xf8, 0x18, 0x18, 0x18,
    717         0x18, 0x18, 0x18, 0xff, 0xff, 0x00, 0x00, 0x00,
    718         0x00, 0x00, 0x00, 0xff, 0xff, 0x18, 0x18, 0x18,
    719         0x18, 0x18, 0x18, 0xff, 0xff, 0x18, 0x18, 0x18,
    720         0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
    721         0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
    722         0x18, 0x3c, 0x66, 0xc3, 0xc3, 0x66, 0x3c, 0x18,
    723         0x18, 0x3c, 0x7e, 0xff, 0xff, 0x7e, 0x3c, 0x18,
    724         0x18, 0x66, 0xc3, 0xdb, 0xdb, 0xc3, 0x66, 0x18,
    725         0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
    726         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    727         0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x00,
    728         0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00,
    729         0x66, 0x66, 0xff, 0x66, 0xff, 0x66, 0x66, 0x00,
    730         0x18, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x18, 0x00,
    731         0x62, 0x66, 0x0c, 0x18, 0x30, 0x66, 0x46, 0x00,
    732         0x3c, 0x66, 0x3c, 0x38, 0x67, 0x66, 0x3f, 0x00,
    733         0x30, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
    734         0x0c, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00,
    735         0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00,
    736         0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00,
    737         0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00,
    738         0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30,
    739         0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00,
    740         0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00,
    741         0x00, 0x03, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x00,
    742         0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00,
    743         0x18, 0x18, 0x38, 0x18, 0x18, 0x18, 0x7e, 0x00,
    744         0x3c, 0x66, 0x06, 0x0c, 0x30, 0x60, 0x7e, 0x00,
    745         0x3c, 0x66, 0x06, 0x1c, 0x06, 0x66, 0x3c, 0x00,
    746         0x06, 0x0e, 0x1e, 0x66, 0x7f, 0x06, 0x06, 0x00,
    747         0x7e, 0x60, 0x7c, 0x06, 0x06, 0x66, 0x3c, 0x00,
    748         0x3c, 0x66, 0x60, 0x7c, 0x66, 0x66, 0x3c, 0x00,
    749         0x7e, 0x66, 0x0c, 0x18, 0x18, 0x18, 0x18, 0x00,
    750         0x3c, 0x66, 0x66, 0x3c, 0x66, 0x66, 0x3c, 0x00,
    751         0x3c, 0x66, 0x66, 0x3e, 0x06, 0x66, 0x3c, 0x00,
    752         0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00,
    753         0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30,
    754         0x0e, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0e, 0x00,
    755         0x7c, 0x82, 0xba, 0xa2, 0xa2, 0xba, 0x82, 0x7c,
    756         0x70, 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x70, 0x00,
    757         0x3c, 0x66, 0x06, 0x0c, 0x18, 0x00, 0x18, 0x00,
    758         0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
    759         0x18, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00,
    760         0x7c, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x7c, 0x00,
    761         0x3c, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3c, 0x00,
    762         0x78, 0x6c, 0x66, 0x66, 0x66, 0x6c, 0x78, 0x00,
    763         0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x7e, 0x00,
    764         0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x60, 0x00,
    765         0x3c, 0x66, 0x60, 0x6e, 0x66, 0x66, 0x3c, 0x00,
    766         0x66, 0x66, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00,
    767         0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00,
    768         0x1e, 0x0c, 0x0c, 0x0c, 0x0c, 0x6c, 0x38, 0x00,
    769         0x66, 0x6c, 0x78, 0x70, 0x78, 0x6c, 0x66, 0x00,
    770         0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7e, 0x00,
    771         0x63, 0x77, 0x7f, 0x6b, 0x63, 0x63, 0x63, 0x00,
    772         0x66, 0x76, 0x7e, 0x7e, 0x6e, 0x66, 0x66, 0x00,
    773         0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00,
    774         0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x60, 0x00,
    775         0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x0e, 0x00,
    776         0x7c, 0x66, 0x66, 0x7c, 0x78, 0x6c, 0x66, 0x00,
    777         0x3c, 0x66, 0x60, 0x3c, 0x06, 0x66, 0x3c, 0x00,
    778         0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00,
    779         0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00,
    780         0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00,
    781         0x63, 0x63, 0x63, 0x6b, 0x7f, 0x77, 0x63, 0x00,
    782         0x66, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x66, 0x00,
    783         0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x00,
    784         0x7e, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x7e, 0x00,
    785         0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00,
    786         0x66, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00,
    787         0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00,
    788         0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0xdb, 0x00,
    789         0x00, 0x10, 0x30, 0x7f, 0x7f, 0x30, 0x10, 0x00,
    790         0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00,
    791         0x00, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00,
    792         0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x7c, 0x00,
    793         0x00, 0x00, 0x3c, 0x60, 0x60, 0x60, 0x3c, 0x00,
    794         0x00, 0x06, 0x06, 0x3e, 0x66, 0x66, 0x3e, 0x00,
    795         0x00, 0x00, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00,
    796         0x00, 0x0e, 0x18, 0x3e, 0x18, 0x18, 0x18, 0x00,
    797         0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x7c,
    798         0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x66, 0x00,
    799         0x00, 0x18, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00,
    800         0x00, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x3c,
    801         0x00, 0x60, 0x60, 0x6c, 0x78, 0x6c, 0x66, 0x00,
    802         0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00,
    803         0x00, 0x00, 0x66, 0x7f, 0x7f, 0x6b, 0x63, 0x00,
    804         0x00, 0x00, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x00,
    805         0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00,
    806         0x00, 0x00, 0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60,
    807         0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x06,
    808         0x00, 0x00, 0x7c, 0x66, 0x60, 0x60, 0x60, 0x00,
    809         0x00, 0x00, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x00,
    810         0x00, 0x18, 0x7e, 0x18, 0x18, 0x18, 0x0e, 0x00,
    811         0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00,
    812         0x00, 0x00, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00,
    813         0x00, 0x00, 0x63, 0x6b, 0x7f, 0x3e, 0x36, 0x00,
    814         0x00, 0x00, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x00,
    815         0x00, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x0c, 0x78,
    816         0x00, 0x00, 0x7e, 0x0c, 0x18, 0x30, 0x7e, 0x00,
    817         0x66, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00,
    818         0x66, 0x18, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x00,
    819         0x42, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00,
    820         0x1c, 0x36, 0x36, 0x7c, 0x66, 0x66, 0x7c, 0x40,
    821         0x08, 0x0c, 0x0e, 0xff, 0xff, 0x0e, 0x0c, 0x08,
    822 };
    823 
    824163static const byte russianCharsetDataV2[] = {
    825164        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    826165        0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xc0, 0x80,
     
    1066405        0x48, 0x00, 0x78, 0xcc, 0xfc, 0xc0, 0x78, 0x00
    1067406};
    1068407
     408// These replacement character tables have been created using the
     409// make-charset-fontdata tool.
     410
     411// German Zak font.
     412static const byte germanCharsetDataV2[] = {
     413        36, 0,
     414        37, 1,
     415        39, 2,
     416        61, 3,
     417        91, 4,
     418        92, 5,
     419        93, 6,
     420        123, 7,
     421        124, 8,
     422        125, 9,
     423        126, 10,
     424};
     425
     426// German C64 MM.
     427static const byte germanCharsetDataV0[] = {
     428        36, 11,
     429        42, 12,
     430        43, 13,
     431        60, 4,
     432        62, 7,
     433        91, 5,
     434        93, 14,
     435        94, 15,
     436};
     437
     438// French Zak font.
     439static const byte frenchCharsetDataV2[] = {
     440        36, 0,
     441        37, 1,
     442        39, 2,
     443        60, 16,
     444        61, 17,
     445        62, 18,
     446        91, 19,
     447        92, 20,
     448        93, 21,
     449        95, 22,
     450        123, 23,
     451        124, 24,
     452        125, 25,
     453        126, 26,
     454};
     455
     456// Italian Zak font.
     457static const byte italianCharsetDataV2[] = {
     458        36, 0,
     459        37, 1,
     460        39, 2,
     461        60, 16,
     462        61, 27,
     463        62, 20,
     464        91, 19,
     465        92, 20,
     466        93, 21,
     467        95, 22,
     468        123, 28,
     469        124, 29,
     470        125, 25,
     471        126, 26,
     472};
     473
     474// Spanish Zak font.
     475static const byte spanishCharsetDataV2[] = {
     476        36, 0,
     477        37, 1,
     478        39, 2,
     479        61, 3,
     480        91, 4,
     481        92, 5,
     482        93, 6,
     483        123, 7,
     484        124, 8,
     485        125, 9,
     486        126, 10,
     487};
     488
     489// Special characters
     490static const byte specialCharsetData[] = {
     491        0x18, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x18, 0x00,
     492        0x62, 0x66, 0x0c, 0x18, 0x30, 0x66, 0x46, 0x00,
     493        0x30, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
     494        0x7c, 0x82, 0xba, 0xa2, 0xa2, 0xba, 0x82, 0x7c,
     495        0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00,
     496        0x66, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00,
     497        0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00,
     498        0x66, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00,
     499        0x66, 0x18, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x00,
     500        0x42, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00,
     501        0x1c, 0x36, 0x36, 0x7c, 0x66, 0x66, 0x7c, 0x40,
     502        0x66, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00,
     503        0x3c, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x6c, 0x60,
     504        0x66, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00,
     505        0x66, 0x24, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00,
     506        0x00, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18,
     507        0x10, 0x08, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00,
     508        0x18, 0x24, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00,
     509        0x00, 0x00, 0x3c, 0x60, 0x60, 0x3c, 0x18, 0x38,
     510        0x08, 0x10, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00,
     511        0x10, 0x08, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00,
     512        0x18, 0x24, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00,
     513        0x00, 0x6c, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00,
     514        0x18, 0x24, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00,
     515        0x18, 0x24, 0x00, 0x3c, 0x66, 0x66, 0x3c, 0x00,
     516        0x10, 0x08, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x00,
     517        0x18, 0x24, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x00,
     518        0x08, 0x10, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00,
     519        0x10, 0x08, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00,
     520        0x10, 0x08, 0x00, 0x3c, 0x66, 0x66, 0x3c, 0x00,
     521};
     522
    1069523CharsetRendererV2::CharsetRendererV2(ScummEngine *vm, Common::Language language)
    1070524        : CharsetRendererV3(vm) {
    1071525
    1072526        _fontHeight = 8;
    1073527        _curId = 0;
    1074528
     529        const byte *replacementData = NULL;
     530        int replacementChars = 0;
     531
    1075532        switch (language) {
    1076533        case Common::DE_DEU:
    1077                 if (_vm->_game.version == 0)
    1078                         _fontPtr = germanCharsetDataV0;
    1079                 else
    1080                         _fontPtr = germanCharsetDataV2;
     534                if (_vm->_game.version == 0) {
     535                        replacementData = germanCharsetDataV0;
     536                        replacementChars = sizeof(germanCharsetDataV0) / 2;
     537                } else {
     538                        replacementData = germanCharsetDataV2;
     539                        replacementChars = sizeof(germanCharsetDataV2) / 2;
     540                }
    1081541                break;
    1082542        case Common::FR_FRA:
    1083                 _fontPtr = frenchCharsetDataV2;
     543                replacementData = frenchCharsetDataV2;
     544                replacementChars = sizeof(frenchCharsetDataV2) / 2;
    1084545                break;
    1085546        case Common::IT_ITA:
    1086                 _fontPtr = italianCharsetDataV2;
     547                replacementData = italianCharsetDataV2;
     548                replacementChars = sizeof(italianCharsetDataV2) / 2;
    1087549                break;
    1088550        case Common::ES_ESP:
    1089                 _fontPtr = spanishCharsetDataV2;
     551                replacementData = spanishCharsetDataV2;
     552                replacementChars = sizeof(spanishCharsetDataV2) / 2;
    1090553                break;
    1091554        case Common::RU_RUS:
    1092555                _fontPtr = russianCharsetDataV2;
     
    1096559                break;
    1097560        }
    1098561
     562        if (replacementData) {
     563                _fontPtr = new byte[sizeof(englishCharsetDataV2)];
     564                _deleteFontPtr = true;
     565                memcpy(const_cast<byte *>(_fontPtr), englishCharsetDataV2, sizeof(englishCharsetDataV2));
     566
     567                for (int i = 0; i < replacementChars; i++) {
     568                        int ch1 = replacementData[2 * i];
     569                        int ch2 = replacementData[2 * i + 1];
     570
     571                        memcpy(const_cast<byte *>(_fontPtr) + 8 * ch1, specialCharsetData + 8 * ch2, 8);
     572                }
     573        } else
     574                _deleteFontPtr = false;
     575
    1099576#if 0
    1100577        // Decompress weird encoding in which the Zak executable contains the font.
    1101578        // I leave the code around in case we need to use it again (e.g. we might
     
    1130607#endif
    1131608}
    1132609
     610CharsetRendererV2::~CharsetRendererV2() {
     611        if (_deleteFontPtr)
     612                delete[] _fontPtr;
     613}
     614
    1133615} // End of namespace Scumm