diff options
-rw-r--r-- | engines/saga/animation.h | 8 | ||||
-rw-r--r-- | engines/scumm/charset-fontdata.cpp | 818 | ||||
-rw-r--r-- | engines/scumm/charset.h | 4 | ||||
-rw-r--r-- | tools/make-scumm-fontdata.c | 889 | ||||
-rw-r--r-- | tools/module.mk | 7 |
5 files changed, 1052 insertions, 674 deletions
diff --git a/engines/saga/animation.h b/engines/saga/animation.h index a88d743af1..d688b0f0a7 100644 --- a/engines/saga/animation.h +++ b/engines/saga/animation.h @@ -166,11 +166,9 @@ private: if (animId >= MAX_ANIMATIONS) { if (animId >= MAX_ANIMATIONS + ARRAYSIZE(_cutawayAnimations)) error("validateAnimationId: animId out of range"); - if (_cutawayAnimations[animId - MAX_ANIMATIONS] == NULL) { + if (_cutawayAnimations[animId - MAX_ANIMATIONS] == NULL) error("validateAnimationId: animId=%i unassigned", animId); - } - } - if (_animations[animId] == NULL) { + } else if (_animations[animId] == NULL) { error("validateAnimationId: animId=%i unassigned.", animId); } } @@ -184,7 +182,7 @@ private: AnimationData* getAnimation(uint16 animId) { validateAnimationId(animId); - if (animId > MAX_ANIMATIONS) + if (animId >= MAX_ANIMATIONS) return _cutawayAnimations[animId - MAX_ANIMATIONS]; return _animations[animId]; } diff --git a/engines/scumm/charset-fontdata.cpp b/engines/scumm/charset-fontdata.cpp index e9a496f6ed..904e40d9ea 100644 --- a/engines/scumm/charset-fontdata.cpp +++ b/engines/scumm/charset-fontdata.cpp @@ -160,667 +160,6 @@ static const byte englishCharsetDataV2[] = { 0x08, 0x0C, 0x0E, 0xFF, 0xFF, 0x0E, 0x0C, 0x08, }; -// German Zak font -static const byte germanCharsetDataV2[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x03, 0x06, 0x0c, 0x18, 0x3e, 0x03, 0x00, - 0x80, 0xc0, 0x60, 0x30, 0x18, 0x7c, 0xc0, 0x00, - 0x00, 0x03, 0x3e, 0x18, 0x0c, 0x06, 0x03, 0x01, - 0x00, 0xc0, 0x7c, 0x18, 0x30, 0x60, 0xc0, 0x80, - 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, - 0x03, 0x03, 0x03, 0x07, 0x07, 0x0f, 0x1f, 0x7f, - 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, - 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, - 0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x0c, 0x18, - 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x18, - 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, - 0x18, 0x0c, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x18, 0x18, 0x18, - 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0xf8, 0xf8, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x18, 0x1f, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x18, 0x18, - 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x30, 0x18, 0x18, - 0x18, 0x18, 0x30, 0xe0, 0xc0, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x18, 0x1f, 0x1f, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0xf8, 0xf8, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0xff, 0xff, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0xff, 0xff, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, - 0x18, 0x3c, 0x66, 0xc3, 0xc3, 0x66, 0x3c, 0x18, - 0x18, 0x3c, 0x7e, 0xff, 0xff, 0x7e, 0x3c, 0x18, - 0x18, 0x66, 0xc3, 0xdb, 0xdb, 0xc3, 0x66, 0x18, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x00, - 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x66, 0x66, 0xff, 0x66, 0xff, 0x66, 0x66, 0x00, - 0x18, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x18, 0x00, - 0x62, 0x66, 0x0c, 0x18, 0x30, 0x66, 0x46, 0x00, - 0x3c, 0x66, 0x3c, 0x38, 0x67, 0x66, 0x3f, 0x00, - 0x30, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0c, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00, - 0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00, - 0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00, - 0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, - 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, - 0x00, 0x03, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x00, - 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x18, 0x18, 0x38, 0x18, 0x18, 0x18, 0x7e, 0x00, - 0x3c, 0x66, 0x06, 0x0c, 0x30, 0x60, 0x7e, 0x00, - 0x3c, 0x66, 0x06, 0x1c, 0x06, 0x66, 0x3c, 0x00, - 0x06, 0x0e, 0x1e, 0x66, 0x7f, 0x06, 0x06, 0x00, - 0x7e, 0x60, 0x7c, 0x06, 0x06, 0x66, 0x3c, 0x00, - 0x3c, 0x66, 0x60, 0x7c, 0x66, 0x66, 0x3c, 0x00, - 0x7e, 0x66, 0x0c, 0x18, 0x18, 0x18, 0x18, 0x00, - 0x3c, 0x66, 0x66, 0x3c, 0x66, 0x66, 0x3c, 0x00, - 0x3c, 0x66, 0x66, 0x3e, 0x06, 0x66, 0x3c, 0x00, - 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30, - 0x0e, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0e, 0x00, - 0x7c, 0x82, 0xba, 0xa2, 0xa2, 0xba, 0x82, 0x7c, - 0x70, 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x70, 0x00, - 0x3c, 0x66, 0x06, 0x0c, 0x18, 0x00, 0x18, 0x00, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, - 0x18, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, - 0x7c, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x7c, 0x00, - 0x3c, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3c, 0x00, - 0x78, 0x6c, 0x66, 0x66, 0x66, 0x6c, 0x78, 0x00, - 0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x7e, 0x00, - 0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x60, 0x00, - 0x3c, 0x66, 0x60, 0x6e, 0x66, 0x66, 0x3c, 0x00, - 0x66, 0x66, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, - 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, - 0x1e, 0x0c, 0x0c, 0x0c, 0x0c, 0x6c, 0x38, 0x00, - 0x66, 0x6c, 0x78, 0x70, 0x78, 0x6c, 0x66, 0x00, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7e, 0x00, - 0x63, 0x77, 0x7f, 0x6b, 0x63, 0x63, 0x63, 0x00, - 0x66, 0x76, 0x7e, 0x7e, 0x6e, 0x66, 0x66, 0x00, - 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x60, 0x00, - 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x0e, 0x00, - 0x7c, 0x66, 0x66, 0x7c, 0x78, 0x6c, 0x66, 0x00, - 0x3c, 0x66, 0x60, 0x3c, 0x06, 0x66, 0x3c, 0x00, - 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, - 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00, - 0x63, 0x63, 0x63, 0x6b, 0x7f, 0x77, 0x63, 0x00, - 0x66, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x66, 0x00, - 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x00, - 0x7e, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x7e, 0x00, - 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00, - 0x66, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, - 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0xdb, 0x00, - 0x00, 0x10, 0x30, 0x7f, 0x7f, 0x30, 0x10, 0x00, - 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, - 0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x7c, 0x00, - 0x00, 0x00, 0x3c, 0x60, 0x60, 0x60, 0x3c, 0x00, - 0x00, 0x06, 0x06, 0x3e, 0x66, 0x66, 0x3e, 0x00, - 0x00, 0x00, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, - 0x00, 0x0e, 0x18, 0x3e, 0x18, 0x18, 0x18, 0x00, - 0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x7c, - 0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x66, 0x00, - 0x00, 0x18, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00, - 0x00, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x3c, - 0x00, 0x60, 0x60, 0x6c, 0x78, 0x6c, 0x66, 0x00, - 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, - 0x00, 0x00, 0x66, 0x7f, 0x7f, 0x6b, 0x63, 0x00, - 0x00, 0x00, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x00, - 0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x00, 0x00, 0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60, - 0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x06, - 0x00, 0x00, 0x7c, 0x66, 0x60, 0x60, 0x60, 0x00, - 0x00, 0x00, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x00, - 0x00, 0x18, 0x7e, 0x18, 0x18, 0x18, 0x0e, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00, - 0x00, 0x00, 0x63, 0x6b, 0x7f, 0x3e, 0x36, 0x00, - 0x00, 0x00, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x0c, 0x78, - 0x00, 0x00, 0x7e, 0x0c, 0x18, 0x30, 0x7e, 0x00, - 0x66, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x66, 0x18, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x00, - 0x42, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x1c, 0x36, 0x36, 0x7c, 0x66, 0x66, 0x7c, 0x40, - 0x08, 0x0c, 0x0e, 0xff, 0xff, 0x0e, 0x0c, 0x08, -}; - -// German C64 MM -static const byte germanCharsetDataV0[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x03, 0x06, 0x0c, 0x18, 0x3e, 0x03, 0x00, - 0x80, 0xc0, 0x60, 0x30, 0x18, 0x7c, 0xc0, 0x00, - 0x00, 0x03, 0x3e, 0x18, 0x0c, 0x06, 0x03, 0x01, - 0x00, 0xc0, 0x7c, 0x18, 0x30, 0x60, 0xc0, 0x80, - 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, - 0x03, 0x03, 0x03, 0x07, 0x07, 0x0f, 0x1f, 0x7f, - 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, - 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, - 0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x0c, 0x18, - 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x18, - 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, - 0x18, 0x0c, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x18, 0x18, 0x18, - 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0xf8, 0xf8, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x18, 0x1f, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x18, 0x18, - 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x30, 0x18, 0x18, - 0x18, 0x18, 0x30, 0xe0, 0xc0, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x18, 0x1f, 0x1f, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0xf8, 0xf8, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0xff, 0xff, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0xff, 0xff, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, - 0x18, 0x3c, 0x66, 0xc3, 0xc3, 0x66, 0x3c, 0x18, - 0x18, 0x3c, 0x7e, 0xff, 0xff, 0x7e, 0x3c, 0x18, - 0x18, 0x66, 0xc3, 0xdb, 0xdb, 0xc3, 0x66, 0x18, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x00, - 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x66, 0x66, 0xff, 0x66, 0xff, 0x66, 0x66, 0x00, - 0x66, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x49, 0x00, - 0x3c, 0x66, 0x3c, 0x38, 0x67, 0x66, 0x3f, 0x00, - 0x06, 0x0c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0c, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00, - 0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00, - 0x3c, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x6c, 0x60, - 0x66, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, - 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, - 0x00, 0x03, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x00, - 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x18, 0x18, 0x38, 0x18, 0x18, 0x18, 0x7e, 0x00, - 0x3c, 0x66, 0x06, 0x0c, 0x30, 0x60, 0x7e, 0x00, - 0x3c, 0x66, 0x06, 0x1c, 0x06, 0x66, 0x3c, 0x00, - 0x06, 0x0e, 0x1e, 0x66, 0x7f, 0x06, 0x06, 0x00, - 0x7e, 0x60, 0x7c, 0x06, 0x06, 0x66, 0x3c, 0x00, - 0x3c, 0x66, 0x60, 0x7c, 0x66, 0x66, 0x3c, 0x00, - 0x7e, 0x66, 0x0c, 0x18, 0x18, 0x18, 0x18, 0x00, - 0x3c, 0x66, 0x66, 0x3c, 0x66, 0x66, 0x3c, 0x00, - 0x3c, 0x66, 0x66, 0x3e, 0x06, 0x66, 0x3c, 0x00, - 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30, - 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00, - 0x7c, 0x82, 0xba, 0xa2, 0xba, 0x82, 0x7c, 0x00, - 0x66, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x3c, 0x66, 0x06, 0x0c, 0x18, 0x00, 0x18, 0x00, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, - 0x18, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, - 0x7c, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x7c, 0x00, - 0x3c, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3c, 0x00, - 0x78, 0x6c, 0x66, 0x66, 0x66, 0x6c, 0x78, 0x00, - 0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x7e, 0x00, - 0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x60, 0x00, - 0x3c, 0x66, 0x60, 0x6e, 0x66, 0x66, 0x3c, 0x00, - 0x66, 0x66, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, - 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, - 0x1e, 0x0c, 0x0c, 0x0c, 0x0c, 0x6c, 0x38, 0x00, - 0x66, 0x6c, 0x78, 0x70, 0x78, 0x6c, 0x66, 0x00, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7e, 0x00, - 0x63, 0x77, 0x7f, 0x6b, 0x63, 0x63, 0x63, 0x00, - 0x66, 0x76, 0x7e, 0x7e, 0x6e, 0x66, 0x66, 0x00, - 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x60, 0x00, - 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x0e, 0x00, - 0x7c, 0x66, 0x66, 0x7c, 0x78, 0x6c, 0x66, 0x00, - 0x3c, 0x66, 0x60, 0x3c, 0x06, 0x66, 0x3c, 0x00, - 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, - 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00, - 0x63, 0x63, 0x63, 0x6b, 0x7f, 0x77, 0x63, 0x00, - 0x66, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x66, 0x00, - 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x00, - 0x7e, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x7e, 0x00, - 0x66, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, - 0x0c, 0x12, 0x30, 0x7c, 0x30, 0x62, 0xfc, 0x00, - 0x66, 0x24, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x00, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18, - 0x00, 0x10, 0x30, 0x7f, 0x7f, 0x30, 0x10, 0x00, - 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, - 0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x7c, 0x00, - 0x00, 0x00, 0x3c, 0x60, 0x60, 0x60, 0x3c, 0x00, - 0x00, 0x06, 0x06, 0x3e, 0x66, 0x66, 0x3e, 0x00, - 0x00, 0x00, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, - 0x00, 0x0e, 0x18, 0x3e, 0x18, 0x18, 0x18, 0x00, - 0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x7c, - 0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x66, 0x00, - 0x00, 0x18, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00, - 0x00, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x3c, - 0x00, 0x60, 0x60, 0x6c, 0x78, 0x6c, 0x66, 0x00, - 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, - 0x00, 0x00, 0x66, 0x7f, 0x7f, 0x6b, 0x63, 0x00, - 0x00, 0x00, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x00, - 0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x00, 0x00, 0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60, - 0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x06, - 0x00, 0x00, 0x7c, 0x66, 0x60, 0x60, 0x60, 0x00, - 0x00, 0x00, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x00, - 0x00, 0x18, 0x7e, 0x18, 0x18, 0x18, 0x0e, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00, - 0x00, 0x00, 0x63, 0x6b, 0x7f, 0x3e, 0x36, 0x00, - 0x00, 0x00, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x0c, 0x78, - 0x00, 0x00, 0x7e, 0x0c, 0x18, 0x30, 0x7e, 0x00, - 0x01, 0x03, 0x06, 0x6c, 0x78, 0x70, 0x60, 0x00, - 0x18, 0x3c, 0x7e, 0xff, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0xff, 0x7e, 0x3c, 0x18, - 0x10, 0x30, 0x70, 0xff, 0xff, 0x70, 0x30, 0x10, - 0x08, 0x0c, 0x0e, 0xff, 0xff, 0x0e, 0x0c, 0x08, -}; - -// French Zak font. -static const byte frenchCharsetDataV2[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x03, 0x06, 0x0c, 0x18, 0x3e, 0x03, 0x00, - 0x80, 0xc0, 0x60, 0x30, 0x18, 0x7c, 0xc0, 0x00, - 0x00, 0x03, 0x3e, 0x18, 0x0c, 0x06, 0x03, 0x01, - 0x00, 0xc0, 0x7c, 0x18, 0x30, 0x60, 0xc0, 0x80, - 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, - 0x03, 0x03, 0x03, 0x07, 0x07, 0x0f, 0x1f, 0x7f, - 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, - 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, - 0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x0c, 0x18, - 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x18, - 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, - 0x18, 0x0c, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x18, 0x18, 0x18, - 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0xf8, 0xf8, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x18, 0x1f, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x18, 0x18, - 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x30, 0x18, 0x18, - 0x18, 0x18, 0x30, 0xe0, 0xc0, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x18, 0x1f, 0x1f, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0xf8, 0xf8, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0xff, 0xff, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0xff, 0xff, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, - 0x18, 0x3c, 0x66, 0xc3, 0xc3, 0x66, 0x3c, 0x18, - 0x18, 0x3c, 0x7e, 0xff, 0xff, 0x7e, 0x3c, 0x18, - 0x18, 0x66, 0xc3, 0xdb, 0xdb, 0xc3, 0x66, 0x18, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x00, - 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x66, 0x66, 0xff, 0x66, 0xff, 0x66, 0x66, 0x00, - 0x18, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x18, 0x00, - 0x62, 0x66, 0x0c, 0x18, 0x30, 0x66, 0x46, 0x00, - 0x3c, 0x66, 0x3c, 0x38, 0x67, 0x66, 0x3f, 0x00, - 0x30, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0c, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00, - 0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00, - 0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00, - 0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, - 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, - 0x00, 0x03, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x00, - 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x18, 0x18, 0x38, 0x18, 0x18, 0x18, 0x7e, 0x00, - 0x3c, 0x66, 0x06, 0x0c, 0x30, 0x60, 0x7e, 0x00, - 0x3c, 0x66, 0x06, 0x1c, 0x06, 0x66, 0x3c, 0x00, - 0x06, 0x0e, 0x1e, 0x66, 0x7f, 0x06, 0x06, 0x00, - 0x7e, 0x60, 0x7c, 0x06, 0x06, 0x66, 0x3c, 0x00, - 0x3c, 0x66, 0x60, 0x7c, 0x66, 0x66, 0x3c, 0x00, - 0x7e, 0x66, 0x0c, 0x18, 0x18, 0x18, 0x18, 0x00, - 0x3c, 0x66, 0x66, 0x3c, 0x66, 0x66, 0x3c, 0x00, - 0x3c, 0x66, 0x66, 0x3e, 0x06, 0x66, 0x3c, 0x00, - 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30, - 0x10, 0x08, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, - 0x18, 0x24, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, - 0x00, 0x00, 0x3c, 0x60, 0x60, 0x3c, 0x18, 0x38, - 0x3c, 0x66, 0x06, 0x0c, 0x18, 0x00, 0x18, 0x00, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, - 0x18, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, - 0x7c, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x7c, 0x00, - 0x3c, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3c, 0x00, - 0x78, 0x6c, 0x66, 0x66, 0x66, 0x6c, 0x78, 0x00, - 0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x7e, 0x00, - 0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x60, 0x00, - 0x3c, 0x66, 0x60, 0x6e, 0x66, 0x66, 0x3c, 0x00, - 0x66, 0x66, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, - 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, - 0x1e, 0x0c, 0x0c, 0x0c, 0x0c, 0x6c, 0x38, 0x00, - 0x66, 0x6c, 0x78, 0x70, 0x78, 0x6c, 0x66, 0x00, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7e, 0x00, - 0x63, 0x77, 0x7f, 0x6b, 0x63, 0x63, 0x63, 0x00, - 0x66, 0x76, 0x7e, 0x7e, 0x6e, 0x66, 0x66, 0x00, - 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x60, 0x00, - 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x0e, 0x00, - 0x7c, 0x66, 0x66, 0x7c, 0x78, 0x6c, 0x66, 0x00, - 0x3c, 0x66, 0x60, 0x3c, 0x06, 0x66, 0x3c, 0x00, - 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, - 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00, - 0x63, 0x63, 0x63, 0x6b, 0x7f, 0x77, 0x63, 0x00, - 0x66, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x66, 0x00, - 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x00, - 0x7e, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x7e, 0x00, - 0x08, 0x10, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, - 0x10, 0x08, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, - 0x18, 0x24, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0xdb, 0x00, - 0x00, 0x6c, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00, - 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, - 0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x7c, 0x00, - 0x00, 0x00, 0x3c, 0x60, 0x60, 0x60, 0x3c, 0x00, - 0x00, 0x06, 0x06, 0x3e, 0x66, 0x66, 0x3e, 0x00, - 0x00, 0x00, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, - 0x00, 0x0e, 0x18, 0x3e, 0x18, 0x18, 0x18, 0x00, - 0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x7c, - 0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x66, 0x00, - 0x00, 0x18, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00, - 0x00, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x3c, - 0x00, 0x60, 0x60, 0x6c, 0x78, 0x6c, 0x66, 0x00, - 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, - 0x00, 0x00, 0x66, 0x7f, 0x7f, 0x6b, 0x63, 0x00, - 0x00, 0x00, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x00, - 0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x00, 0x00, 0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60, - 0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x06, - 0x00, 0x00, 0x7c, 0x66, 0x60, 0x60, 0x60, 0x00, - 0x00, 0x00, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x00, - 0x00, 0x18, 0x7e, 0x18, 0x18, 0x18, 0x0e, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00, - 0x00, 0x00, 0x63, 0x6b, 0x7f, 0x3e, 0x36, 0x00, - 0x00, 0x00, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x0c, 0x78, - 0x00, 0x00, 0x7e, 0x0c, 0x18, 0x30, 0x7e, 0x00, - 0x18, 0x24, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00, - 0x18, 0x24, 0x00, 0x3c, 0x66, 0x66, 0x3c, 0x00, - 0x10, 0x08, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x00, - 0x18, 0x24, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x00, - 0x08, 0x0c, 0x0e, 0xff, 0xff, 0x0e, 0x0c, 0x08, -}; - -// Italian Zak font. -static const byte italianCharsetDataV2[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x03, 0x06, 0x0c, 0x18, 0x3e, 0x03, 0x00, - 0x80, 0xc0, 0x60, 0x30, 0x18, 0x7c, 0xc0, 0x00, - 0x00, 0x03, 0x3e, 0x18, 0x0c, 0x06, 0x03, 0x01, - 0x00, 0xc0, 0x7c, 0x18, 0x30, 0x60, 0xc0, 0x80, - 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, - 0x03, 0x03, 0x03, 0x07, 0x07, 0x0f, 0x1f, 0x7f, - 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, - 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, - 0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x0c, 0x18, - 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x18, - 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, - 0x18, 0x0c, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x18, 0x18, 0x18, - 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0xf8, 0xf8, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x18, 0x1f, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x18, 0x18, - 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x30, 0x18, 0x18, - 0x18, 0x18, 0x30, 0xe0, 0xc0, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x18, 0x1f, 0x1f, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0xf8, 0xf8, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0xff, 0xff, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0xff, 0xff, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, - 0x18, 0x3c, 0x66, 0xc3, 0xc3, 0x66, 0x3c, 0x18, - 0x18, 0x3c, 0x7e, 0xff, 0xff, 0x7e, 0x3c, 0x18, - 0x18, 0x66, 0xc3, 0xdb, 0xdb, 0xc3, 0x66, 0x18, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x00, - 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x66, 0x66, 0xff, 0x66, 0xff, 0x66, 0x66, 0x00, - 0x18, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x18, 0x00, - 0x62, 0x66, 0x0c, 0x18, 0x30, 0x66, 0x46, 0x00, - 0x3c, 0x66, 0x3c, 0x38, 0x67, 0x66, 0x3f, 0x00, - 0x30, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0c, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00, - 0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00, - 0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00, - 0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, - 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, - 0x00, 0x03, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x00, - 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x18, 0x18, 0x38, 0x18, 0x18, 0x18, 0x7e, 0x00, - 0x3c, 0x66, 0x06, 0x0c, 0x30, 0x60, 0x7e, 0x00, - 0x3c, 0x66, 0x06, 0x1c, 0x06, 0x66, 0x3c, 0x00, - 0x06, 0x0e, 0x1e, 0x66, 0x7f, 0x06, 0x06, 0x00, - 0x7e, 0x60, 0x7c, 0x06, 0x06, 0x66, 0x3c, 0x00, - 0x3c, 0x66, 0x60, 0x7c, 0x66, 0x66, 0x3c, 0x00, - 0x7e, 0x66, 0x0c, 0x18, 0x18, 0x18, 0x18, 0x00, - 0x3c, 0x66, 0x66, 0x3c, 0x66, 0x66, 0x3c, 0x00, - 0x3c, 0x66, 0x66, 0x3e, 0x06, 0x66, 0x3c, 0x00, - 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30, - 0x10, 0x08, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, - 0x08, 0x10, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, - 0x10, 0x08, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, - 0x3c, 0x66, 0x06, 0x0c, 0x18, 0x00, 0x18, 0x00, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, - 0x18, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, - 0x7c, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x7c, 0x00, - 0x3c, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3c, 0x00, - 0x78, 0x6c, 0x66, 0x66, 0x66, 0x6c, 0x78, 0x00, - 0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x7e, 0x00, - 0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x60, 0x00, - 0x3c, 0x66, 0x60, 0x6e, 0x66, 0x66, 0x3c, 0x00, - 0x66, 0x66, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, - 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, - 0x1e, 0x0c, 0x0c, 0x0c, 0x0c, 0x6c, 0x38, 0x00, - 0x66, 0x6c, 0x78, 0x70, 0x78, 0x6c, 0x66, 0x00, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7e, 0x00, - 0x63, 0x77, 0x7f, 0x6b, 0x63, 0x63, 0x63, 0x00, - 0x66, 0x76, 0x7e, 0x7e, 0x6e, 0x66, 0x66, 0x00, - 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x60, 0x00, - 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x0e, 0x00, - 0x7c, 0x66, 0x66, 0x7c, 0x78, 0x6c, 0x66, 0x00, - 0x3c, 0x66, 0x60, 0x3c, 0x06, 0x66, 0x3c, 0x00, - 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, - 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00, - 0x63, 0x63, 0x63, 0x6b, 0x7f, 0x77, 0x63, 0x00, - 0x66, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x66, 0x00, - 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x00, - 0x7e, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x7e, 0x00, - 0x08, 0x10, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, - 0x10, 0x08, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, - 0x18, 0x24, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0xdb, 0x00, - 0x00, 0x6c, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00, - 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, - 0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x7c, 0x00, - 0x00, 0x00, 0x3c, 0x60, 0x60, 0x60, 0x3c, 0x00, - 0x00, 0x06, 0x06, 0x3e, 0x66, 0x66, 0x3e, 0x00, - 0x00, 0x00, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, - 0x00, 0x0e, 0x18, 0x3e, 0x18, 0x18, 0x18, 0x00, - 0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x7c, - 0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x66, 0x00, - 0x00, 0x18, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00, - 0x00, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x3c, - 0x00, 0x60, 0x60, 0x6c, 0x78, 0x6c, 0x66, 0x00, - 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, - 0x00, 0x00, 0x66, 0x7f, 0x7f, 0x6b, 0x63, 0x00, - 0x00, 0x00, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x00, - 0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x00, 0x00, 0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60, - 0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x06, - 0x00, 0x00, 0x7c, 0x66, 0x60, 0x60, 0x60, 0x00, - 0x00, 0x00, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x00, - 0x00, 0x18, 0x7e, 0x18, 0x18, 0x18, 0x0e, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00, - 0x00, 0x00, 0x63, 0x6b, 0x7f, 0x3e, 0x36, 0x00, - 0x00, 0x00, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x0c, 0x78, - 0x00, 0x00, 0x7e, 0x0c, 0x18, 0x30, 0x7e, 0x00, - 0x10, 0x08, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00, - 0x10, 0x08, 0x00, 0x3c, 0x66, 0x66, 0x3c, 0x00, - 0x10, 0x08, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x00, - 0x18, 0x24, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x00, - 0x08, 0x0c, 0x0e, 0xff, 0xff, 0x0e, 0x0c, 0x08, -}; - -// Spanish Zak font. -// FIXME: This is identical to germanCharsetDataV2 it seems?! -static const byte spanishCharsetDataV2[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x03, 0x06, 0x0c, 0x18, 0x3e, 0x03, 0x00, - 0x80, 0xc0, 0x60, 0x30, 0x18, 0x7c, 0xc0, 0x00, - 0x00, 0x03, 0x3e, 0x18, 0x0c, 0x06, 0x03, 0x01, - 0x00, 0xc0, 0x7c, 0x18, 0x30, 0x60, 0xc0, 0x80, - 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, - 0x03, 0x03, 0x03, 0x07, 0x07, 0x0f, 0x1f, 0x7f, - 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, - 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, - 0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x0c, 0x18, - 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x18, - 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, - 0x18, 0x0c, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x18, 0x18, 0x18, - 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0xf8, 0xf8, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x18, 0x1f, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x18, 0x18, - 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x30, 0x18, 0x18, - 0x18, 0x18, 0x30, 0xe0, 0xc0, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x18, 0x1f, 0x1f, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0xf8, 0xf8, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0xff, 0xff, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0xff, 0xff, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, - 0x18, 0x3c, 0x66, 0xc3, 0xc3, 0x66, 0x3c, 0x18, - 0x18, 0x3c, 0x7e, 0xff, 0xff, 0x7e, 0x3c, 0x18, - 0x18, 0x66, 0xc3, 0xdb, 0xdb, 0xc3, 0x66, 0x18, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x00, - 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x66, 0x66, 0xff, 0x66, 0xff, 0x66, 0x66, 0x00, - 0x18, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x18, 0x00, - 0x62, 0x66, 0x0c, 0x18, 0x30, 0x66, 0x46, 0x00, - 0x3c, 0x66, 0x3c, 0x38, 0x67, 0x66, 0x3f, 0x00, - 0x30, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0c, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00, - 0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00, - 0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00, - 0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, - 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, - 0x00, 0x03, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x00, - 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x18, 0x18, 0x38, 0x18, 0x18, 0x18, 0x7e, 0x00, - 0x3c, 0x66, 0x06, 0x0c, 0x30, 0x60, 0x7e, 0x00, - 0x3c, 0x66, 0x06, 0x1c, 0x06, 0x66, 0x3c, 0x00, - 0x06, 0x0e, 0x1e, 0x66, 0x7f, 0x06, 0x06, 0x00, - 0x7e, 0x60, 0x7c, 0x06, 0x06, 0x66, 0x3c, 0x00, - 0x3c, 0x66, 0x60, 0x7c, 0x66, 0x66, 0x3c, 0x00, - 0x7e, 0x66, 0x0c, 0x18, 0x18, 0x18, 0x18, 0x00, - 0x3c, 0x66, 0x66, 0x3c, 0x66, 0x66, 0x3c, 0x00, - 0x3c, 0x66, 0x66, 0x3e, 0x06, 0x66, 0x3c, 0x00, - 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30, - 0x0e, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0e, 0x00, - 0x7c, 0x82, 0xba, 0xa2, 0xa2, 0xba, 0x82, 0x7c, - 0x70, 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x70, 0x00, - 0x3c, 0x66, 0x06, 0x0c, 0x18, 0x00, 0x18, 0x00, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, - 0x18, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, - 0x7c, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x7c, 0x00, - 0x3c, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3c, 0x00, - 0x78, 0x6c, 0x66, 0x66, 0x66, 0x6c, 0x78, 0x00, - 0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x7e, 0x00, - 0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x60, 0x00, - 0x3c, 0x66, 0x60, 0x6e, 0x66, 0x66, 0x3c, 0x00, - 0x66, 0x66, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, - 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, - 0x1e, 0x0c, 0x0c, 0x0c, 0x0c, 0x6c, 0x38, 0x00, - 0x66, 0x6c, 0x78, 0x70, 0x78, 0x6c, 0x66, 0x00, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7e, 0x00, - 0x63, 0x77, 0x7f, 0x6b, 0x63, 0x63, 0x63, 0x00, - 0x66, 0x76, 0x7e, 0x7e, 0x6e, 0x66, 0x66, 0x00, - 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x60, 0x00, - 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x0e, 0x00, - 0x7c, 0x66, 0x66, 0x7c, 0x78, 0x6c, 0x66, 0x00, - 0x3c, 0x66, 0x60, 0x3c, 0x06, 0x66, 0x3c, 0x00, - 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, - 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00, - 0x63, 0x63, 0x63, 0x6b, 0x7f, 0x77, 0x63, 0x00, - 0x66, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x66, 0x00, - 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x00, - 0x7e, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x7e, 0x00, - 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00, - 0x66, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, - 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0xdb, 0x00, - 0x00, 0x10, 0x30, 0x7f, 0x7f, 0x30, 0x10, 0x00, - 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, - 0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x7c, 0x00, - 0x00, 0x00, 0x3c, 0x60, 0x60, 0x60, 0x3c, 0x00, - 0x00, 0x06, 0x06, 0x3e, 0x66, 0x66, 0x3e, 0x00, - 0x00, 0x00, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, - 0x00, 0x0e, 0x18, 0x3e, 0x18, 0x18, 0x18, 0x00, - 0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x7c, - 0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x66, 0x00, - 0x00, 0x18, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00, - 0x00, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x3c, - 0x00, 0x60, 0x60, 0x6c, 0x78, 0x6c, 0x66, 0x00, - 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, - 0x00, 0x00, 0x66, 0x7f, 0x7f, 0x6b, 0x63, 0x00, - 0x00, 0x00, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x00, - 0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x00, 0x00, 0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60, - 0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x06, - 0x00, 0x00, 0x7c, 0x66, 0x60, 0x60, 0x60, 0x00, - 0x00, 0x00, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x00, - 0x00, 0x18, 0x7e, 0x18, 0x18, 0x18, 0x0e, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00, - 0x00, 0x00, 0x63, 0x6b, 0x7f, 0x3e, 0x36, 0x00, - 0x00, 0x00, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x0c, 0x78, - 0x00, 0x00, 0x7e, 0x0c, 0x18, 0x30, 0x7e, 0x00, - 0x66, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x66, 0x18, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x00, - 0x42, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, - 0x1c, 0x36, 0x36, 0x7c, 0x66, 0x66, 0x7c, 0x40, - 0x08, 0x0c, 0x0e, 0xff, 0xff, 0x0e, 0x0c, 0x08, -}; - static const byte russianCharsetDataV2[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xc0, 0x80, @@ -1066,27 +405,151 @@ static const byte russianCharsetDataV2[] = { 0x48, 0x00, 0x78, 0xcc, 0xfc, 0xc0, 0x78, 0x00 }; +// These replacement character tables have been created using the +// make-charset-fontdata tool. + +// German Zak font. +static const byte germanCharsetDataV2[] = { + 36, 0, + 37, 1, + 39, 2, + 61, 3, + 91, 4, + 92, 5, + 93, 6, + 123, 7, + 124, 8, + 125, 9, + 126, 10, +}; + +// German C64 MM. +static const byte germanCharsetDataV0[] = { + 36, 11, + 42, 12, + 43, 13, + 60, 4, + 62, 7, + 91, 5, + 93, 14, + 94, 15, +}; + +// French Zak font. +static const byte frenchCharsetDataV2[] = { + 36, 0, + 37, 1, + 39, 2, + 60, 16, + 61, 17, + 62, 18, + 91, 19, + 92, 20, + 93, 21, + 95, 22, + 123, 23, + 124, 24, + 125, 25, + 126, 26, +}; + +// Italian Zak font. +static const byte italianCharsetDataV2[] = { + 36, 0, + 37, 1, + 39, 2, + 60, 16, + 61, 27, + 62, 20, + 91, 19, + 92, 20, + 93, 21, + 95, 22, + 123, 28, + 124, 29, + 125, 25, + 126, 26, +}; + +// Spanish Zak font. +static const byte spanishCharsetDataV2[] = { + 36, 0, + 37, 1, + 39, 2, + 61, 3, + 91, 4, + 92, 5, + 93, 6, + 123, 7, + 124, 8, + 125, 9, + 126, 10, +}; + +// Special characters +static const byte specialCharsetData[] = { + 0x18, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x18, 0x00, + 0x62, 0x66, 0x0c, 0x18, 0x30, 0x66, 0x46, 0x00, + 0x30, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7c, 0x82, 0xba, 0xa2, 0xa2, 0xba, 0x82, 0x7c, + 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00, + 0x66, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, + 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x66, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x66, 0x18, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x00, + 0x42, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x1c, 0x36, 0x36, 0x7c, 0x66, 0x66, 0x7c, 0x40, + 0x66, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x3c, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x6c, 0x60, + 0x66, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, + 0x66, 0x24, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x00, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18, + 0x10, 0x08, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, + 0x18, 0x24, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, + 0x00, 0x00, 0x3c, 0x60, 0x60, 0x3c, 0x18, 0x38, + 0x08, 0x10, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, + 0x10, 0x08, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, + 0x18, 0x24, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, + 0x00, 0x6c, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00, + 0x18, 0x24, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00, + 0x18, 0x24, 0x00, 0x3c, 0x66, 0x66, 0x3c, 0x00, + 0x10, 0x08, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x00, + 0x18, 0x24, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x00, + 0x08, 0x10, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, + 0x10, 0x08, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00, + 0x10, 0x08, 0x00, 0x3c, 0x66, 0x66, 0x3c, 0x00, +}; + CharsetRendererV2::CharsetRendererV2(ScummEngine *vm, Common::Language language) : CharsetRendererV3(vm) { _fontHeight = 8; _curId = 0; + const byte *replacementData = NULL; + int replacementChars = 0; + switch (language) { case Common::DE_DEU: - if (_vm->_game.version == 0) - _fontPtr = germanCharsetDataV0; - else - _fontPtr = germanCharsetDataV2; + if (_vm->_game.version == 0) { + replacementData = germanCharsetDataV0; + replacementChars = sizeof(germanCharsetDataV0) / 2; + } else { + replacementData = germanCharsetDataV2; + replacementChars = sizeof(germanCharsetDataV2) / 2; + } break; case Common::FR_FRA: - _fontPtr = frenchCharsetDataV2; + replacementData = frenchCharsetDataV2; + replacementChars = sizeof(frenchCharsetDataV2) / 2; break; case Common::IT_ITA: - _fontPtr = italianCharsetDataV2; + replacementData = italianCharsetDataV2; + replacementChars = sizeof(italianCharsetDataV2) / 2; break; case Common::ES_ESP: - _fontPtr = spanishCharsetDataV2; + replacementData = spanishCharsetDataV2; + replacementChars = sizeof(spanishCharsetDataV2) / 2; break; case Common::RU_RUS: _fontPtr = russianCharsetDataV2; @@ -1096,6 +559,20 @@ CharsetRendererV2::CharsetRendererV2(ScummEngine *vm, Common::Language language) break; } + if (replacementData) { + _fontPtr = new byte[sizeof(englishCharsetDataV2)]; + _deleteFontPtr = true; + memcpy(const_cast<byte *>(_fontPtr), englishCharsetDataV2, sizeof(englishCharsetDataV2)); + + for (int i = 0; i < replacementChars; i++) { + int ch1 = replacementData[2 * i]; + int ch2 = replacementData[2 * i + 1]; + + memcpy(const_cast<byte *>(_fontPtr) + 8 * ch1, specialCharsetData + 8 * ch2, 8); + } + } else + _deleteFontPtr = false; + #if 0 // Decompress weird encoding in which the Zak executable contains the font. // I leave the code around in case we need to use it again (e.g. we might @@ -1130,4 +607,9 @@ CharsetRendererV2::CharsetRendererV2(ScummEngine *vm, Common::Language language) #endif } +CharsetRendererV2::~CharsetRendererV2() { + if (_deleteFontPtr) + delete[] _fontPtr; +} + } // End of namespace Scumm diff --git a/engines/scumm/charset.h b/engines/scumm/charset.h index dbe02fc8fc..905849a977 100644 --- a/engines/scumm/charset.h +++ b/engines/scumm/charset.h @@ -165,8 +165,12 @@ public: }; class CharsetRendererV2 : public CharsetRendererV3 { +protected: + bool _deleteFontPtr; + public: CharsetRendererV2(ScummEngine *vm, Common::Language language); + ~CharsetRendererV2(); void setCurID(int32 id) {} int getCharWidth(byte chr) { return 8; } diff --git a/tools/make-scumm-fontdata.c b/tools/make-scumm-fontdata.c new file mode 100644 index 0000000000..f251a22b80 --- /dev/null +++ b/tools/make-scumm-fontdata.c @@ -0,0 +1,889 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $URL$ + * $Id$ + */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +/* English Zak font. */ +static const unsigned char englishCharsetDataV2[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x03, 0x06, 0x0C, 0x18, 0x3E, 0x03, 0x00, + 0x80, 0xC0, 0x60, 0x30, 0x18, 0x7C, 0xC0, 0x00, + 0x00, 0x03, 0x3E, 0x18, 0x0C, 0x06, 0x03, 0x01, + 0x00, 0xC0, 0x7C, 0x18, 0x30, 0x60, 0xC0, 0x80, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x07, 0x07, 0x0F, 0x1F, 0x7F, + 0xE0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, + 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, + 0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x0C, 0x18, + 0x00, 0x00, 0x00, 0x80, 0xC0, 0x60, 0x30, 0x18, + 0x18, 0x30, 0x60, 0xC0, 0x80, 0x00, 0x00, 0x00, + 0x18, 0x0C, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x18, 0x18, 0x18, + 0x00, 0x00, 0x00, 0xF8, 0xF8, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0xF8, 0xF8, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x1F, 0x1F, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x07, 0x0C, 0x18, 0x18, + 0x00, 0x00, 0x00, 0xC0, 0xE0, 0x30, 0x18, 0x18, + 0x18, 0x18, 0x30, 0xE0, 0xC0, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x0C, 0x07, 0x03, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x1F, 0x1F, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0xF8, 0xF8, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0xFF, 0xFF, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0xFF, 0xFF, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, + 0x18, 0x3C, 0x66, 0xC3, 0xC3, 0x66, 0x3C, 0x18, + 0x18, 0x3C, 0x7E, 0xFF, 0xFF, 0x7E, 0x3C, 0x18, + 0x18, 0x66, 0xC3, 0xDB, 0xDB, 0xC3, 0x66, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x00, + 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x66, 0x66, 0xFF, 0x66, 0xFF, 0x66, 0x66, 0x00, + 0x18, 0x3E, 0x58, 0x3C, 0x1A, 0x7C, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x49, 0x00, + 0x3C, 0x66, 0x3C, 0x38, 0x67, 0x66, 0x3F, 0x00, + 0x06, 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0C, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0C, 0x00, + 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x18, 0x30, 0x00, + 0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00, + 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, + 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, + 0x00, 0x03, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x00, + 0x3C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00, + 0x18, 0x18, 0x38, 0x18, 0x18, 0x18, 0x7E, 0x00, + 0x3C, 0x66, 0x06, 0x0C, 0x30, 0x60, 0x7E, 0x00, + 0x3C, 0x66, 0x06, 0x1C, 0x06, 0x66, 0x3C, 0x00, + 0x06, 0x0E, 0x1E, 0x66, 0x7F, 0x06, 0x06, 0x00, + 0x7E, 0x60, 0x7C, 0x06, 0x06, 0x66, 0x3C, 0x00, + 0x3C, 0x66, 0x60, 0x7C, 0x66, 0x66, 0x3C, 0x00, + 0x7E, 0x66, 0x0C, 0x18, 0x18, 0x18, 0x18, 0x00, + 0x3C, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x3C, 0x00, + 0x3C, 0x66, 0x66, 0x3E, 0x06, 0x66, 0x3C, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30, + 0x0E, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0E, 0x00, + 0x7C, 0x82, 0xBA, 0xA2, 0xBA, 0x82, 0x7C, 0x00, + 0x70, 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x70, 0x00, + 0x3C, 0x66, 0x06, 0x0C, 0x18, 0x00, 0x18, 0x00, + 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, + 0x18, 0x3C, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00, + 0x7C, 0x66, 0x66, 0x7C, 0x66, 0x66, 0x7C, 0x00, + 0x3C, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3C, 0x00, + 0x78, 0x6C, 0x66, 0x66, 0x66, 0x6C, 0x78, 0x00, + 0x7E, 0x60, 0x60, 0x78, 0x60, 0x60, 0x7E, 0x00, + 0x7E, 0x60, 0x60, 0x78, 0x60, 0x60, 0x60, 0x00, + 0x3C, 0x66, 0x60, 0x6E, 0x66, 0x66, 0x3C, 0x00, + 0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00, + 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, + 0x1E, 0x0C, 0x0C, 0x0C, 0x0C, 0x6C, 0x38, 0x00, + 0x66, 0x6C, 0x78, 0x70, 0x78, 0x6C, 0x66, 0x00, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x00, + 0x63, 0x77, 0x7F, 0x6B, 0x63, 0x63, 0x63, 0x00, + 0x66, 0x76, 0x7E, 0x7E, 0x6E, 0x66, 0x66, 0x00, + 0x3C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00, + 0x7C, 0x66, 0x66, 0x7C, 0x60, 0x60, 0x60, 0x00, + 0x3C, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x0E, 0x00, + 0x7C, 0x66, 0x66, 0x7C, 0x78, 0x6C, 0x66, 0x00, + 0x3C, 0x66, 0x60, 0x3C, 0x06, 0x66, 0x3C, 0x00, + 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00, + 0x63, 0x63, 0x63, 0x6B, 0x7F, 0x77, 0x63, 0x00, + 0x66, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x66, 0x00, + 0x66, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x18, 0x00, + 0x7E, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x7E, 0x00, + 0x3C, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3C, 0x00, + 0x0C, 0x12, 0x30, 0x7C, 0x30, 0x62, 0xFC, 0x00, + 0x3C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x3C, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xDB, 0xDB, 0x00, + 0x00, 0x10, 0x30, 0x7F, 0x7F, 0x30, 0x10, 0x00, + 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00, + 0x00, 0x60, 0x60, 0x7C, 0x66, 0x66, 0x7C, 0x00, + 0x00, 0x00, 0x3C, 0x60, 0x60, 0x60, 0x3C, 0x00, + 0x00, 0x06, 0x06, 0x3E, 0x66, 0x66, 0x3E, 0x00, + 0x00, 0x00, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00, + 0x00, 0x0E, 0x18, 0x3E, 0x18, 0x18, 0x18, 0x00, + 0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x7C, + 0x00, 0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x00, + 0x00, 0x18, 0x00, 0x38, 0x18, 0x18, 0x3C, 0x00, + 0x00, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x3C, + 0x00, 0x60, 0x60, 0x6C, 0x78, 0x6C, 0x66, 0x00, + 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00, + 0x00, 0x00, 0x66, 0x7F, 0x7F, 0x6B, 0x63, 0x00, + 0x00, 0x00, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x00, + 0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00, + 0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0x60, + 0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x06, + 0x00, 0x00, 0x7C, 0x66, 0x60, 0x60, 0x60, 0x00, + 0x00, 0x00, 0x3E, 0x60, 0x3C, 0x06, 0x7C, 0x00, + 0x00, 0x18, 0x7E, 0x18, 0x18, 0x18, 0x0E, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00, + 0x00, 0x00, 0x63, 0x6B, 0x7F, 0x3E, 0x36, 0x00, + 0x00, 0x00, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x0C, 0x78, + 0x00, 0x00, 0x7E, 0x0C, 0x18, 0x30, 0x7E, 0x00, + 0x01, 0x03, 0x06, 0x6C, 0x78, 0x70, 0x60, 0x00, + 0x18, 0x3C, 0x7E, 0xFF, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0xFF, 0x7E, 0x3C, 0x18, + 0x10, 0x30, 0x70, 0xFF, 0xFF, 0x70, 0x30, 0x10, + 0x08, 0x0C, 0x0E, 0xFF, 0xFF, 0x0E, 0x0C, 0x08, +}; + +/* German Zak font */ +static const unsigned char germanCharsetDataV2[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x03, 0x06, 0x0c, 0x18, 0x3e, 0x03, 0x00, + 0x80, 0xc0, 0x60, 0x30, 0x18, 0x7c, 0xc0, 0x00, + 0x00, 0x03, 0x3e, 0x18, 0x0c, 0x06, 0x03, 0x01, + 0x00, 0xc0, 0x7c, 0x18, 0x30, 0x60, 0xc0, 0x80, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x07, 0x07, 0x0f, 0x1f, 0x7f, + 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, + 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, + 0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x0c, 0x18, + 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x18, + 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, + 0x18, 0x0c, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x18, 0x18, 0x18, + 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0xf8, 0xf8, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x1f, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x18, 0x18, + 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x30, 0x18, 0x18, + 0x18, 0x18, 0x30, 0xe0, 0xc0, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x1f, 0x1f, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0xf8, 0xf8, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0xff, 0xff, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x18, 0x3c, 0x66, 0xc3, 0xc3, 0x66, 0x3c, 0x18, + 0x18, 0x3c, 0x7e, 0xff, 0xff, 0x7e, 0x3c, 0x18, + 0x18, 0x66, 0xc3, 0xdb, 0xdb, 0xc3, 0x66, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x00, + 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x66, 0x66, 0xff, 0x66, 0xff, 0x66, 0x66, 0x00, + 0x18, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x18, 0x00, + 0x62, 0x66, 0x0c, 0x18, 0x30, 0x66, 0x46, 0x00, + 0x3c, 0x66, 0x3c, 0x38, 0x67, 0x66, 0x3f, 0x00, + 0x30, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00, + 0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00, + 0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00, + 0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, + 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, + 0x00, 0x03, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x00, + 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x18, 0x18, 0x38, 0x18, 0x18, 0x18, 0x7e, 0x00, + 0x3c, 0x66, 0x06, 0x0c, 0x30, 0x60, 0x7e, 0x00, + 0x3c, 0x66, 0x06, 0x1c, 0x06, 0x66, 0x3c, 0x00, + 0x06, 0x0e, 0x1e, 0x66, 0x7f, 0x06, 0x06, 0x00, + 0x7e, 0x60, 0x7c, 0x06, 0x06, 0x66, 0x3c, 0x00, + 0x3c, 0x66, 0x60, 0x7c, 0x66, 0x66, 0x3c, 0x00, + 0x7e, 0x66, 0x0c, 0x18, 0x18, 0x18, 0x18, 0x00, + 0x3c, 0x66, 0x66, 0x3c, 0x66, 0x66, 0x3c, 0x00, + 0x3c, 0x66, 0x66, 0x3e, 0x06, 0x66, 0x3c, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30, + 0x0e, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0e, 0x00, + 0x7c, 0x82, 0xba, 0xa2, 0xa2, 0xba, 0x82, 0x7c, + 0x70, 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x70, 0x00, + 0x3c, 0x66, 0x06, 0x0c, 0x18, 0x00, 0x18, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x18, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, + 0x7c, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x7c, 0x00, + 0x3c, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3c, 0x00, + 0x78, 0x6c, 0x66, 0x66, 0x66, 0x6c, 0x78, 0x00, + 0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x7e, 0x00, + 0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x60, 0x00, + 0x3c, 0x66, 0x60, 0x6e, 0x66, 0x66, 0x3c, 0x00, + 0x66, 0x66, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, + 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, + 0x1e, 0x0c, 0x0c, 0x0c, 0x0c, 0x6c, 0x38, 0x00, + 0x66, 0x6c, 0x78, 0x70, 0x78, 0x6c, 0x66, 0x00, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7e, 0x00, + 0x63, 0x77, 0x7f, 0x6b, 0x63, 0x63, 0x63, 0x00, + 0x66, 0x76, 0x7e, 0x7e, 0x6e, 0x66, 0x66, 0x00, + 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x60, 0x00, + 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x0e, 0x00, + 0x7c, 0x66, 0x66, 0x7c, 0x78, 0x6c, 0x66, 0x00, + 0x3c, 0x66, 0x60, 0x3c, 0x06, 0x66, 0x3c, 0x00, + 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00, + 0x63, 0x63, 0x63, 0x6b, 0x7f, 0x77, 0x63, 0x00, + 0x66, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x66, 0x00, + 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x00, + 0x7e, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x7e, 0x00, + 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00, + 0x66, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, + 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0xdb, 0x00, + 0x00, 0x10, 0x30, 0x7f, 0x7f, 0x30, 0x10, 0x00, + 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, + 0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x7c, 0x00, + 0x00, 0x00, 0x3c, 0x60, 0x60, 0x60, 0x3c, 0x00, + 0x00, 0x06, 0x06, 0x3e, 0x66, 0x66, 0x3e, 0x00, + 0x00, 0x00, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, + 0x00, 0x0e, 0x18, 0x3e, 0x18, 0x18, 0x18, 0x00, + 0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x7c, + 0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x66, 0x00, + 0x00, 0x18, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00, + 0x00, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x3c, + 0x00, 0x60, 0x60, 0x6c, 0x78, 0x6c, 0x66, 0x00, + 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, + 0x00, 0x00, 0x66, 0x7f, 0x7f, 0x6b, 0x63, 0x00, + 0x00, 0x00, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x00, + 0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x00, 0x00, 0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60, + 0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x06, + 0x00, 0x00, 0x7c, 0x66, 0x60, 0x60, 0x60, 0x00, + 0x00, 0x00, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x00, + 0x00, 0x18, 0x7e, 0x18, 0x18, 0x18, 0x0e, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00, + 0x00, 0x00, 0x63, 0x6b, 0x7f, 0x3e, 0x36, 0x00, + 0x00, 0x00, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x0c, 0x78, + 0x00, 0x00, 0x7e, 0x0c, 0x18, 0x30, 0x7e, 0x00, + 0x66, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x66, 0x18, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x00, + 0x42, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x1c, 0x36, 0x36, 0x7c, 0x66, 0x66, 0x7c, 0x40, + 0x08, 0x0c, 0x0e, 0xff, 0xff, 0x0e, 0x0c, 0x08, +}; + +/* German C64 MM */ +static const unsigned char germanCharsetDataV0[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x03, 0x06, 0x0c, 0x18, 0x3e, 0x03, 0x00, + 0x80, 0xc0, 0x60, 0x30, 0x18, 0x7c, 0xc0, 0x00, + 0x00, 0x03, 0x3e, 0x18, 0x0c, 0x06, 0x03, 0x01, + 0x00, 0xc0, 0x7c, 0x18, 0x30, 0x60, 0xc0, 0x80, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x07, 0x07, 0x0f, 0x1f, 0x7f, + 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, + 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, + 0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x0c, 0x18, + 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x18, + 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, + 0x18, 0x0c, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x18, 0x18, 0x18, + 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0xf8, 0xf8, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x1f, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x18, 0x18, + 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x30, 0x18, 0x18, + 0x18, 0x18, 0x30, 0xe0, 0xc0, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x1f, 0x1f, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0xf8, 0xf8, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0xff, 0xff, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x18, 0x3c, 0x66, 0xc3, 0xc3, 0x66, 0x3c, 0x18, + 0x18, 0x3c, 0x7e, 0xff, 0xff, 0x7e, 0x3c, 0x18, + 0x18, 0x66, 0xc3, 0xdb, 0xdb, 0xc3, 0x66, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x00, + 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x66, 0x66, 0xff, 0x66, 0xff, 0x66, 0x66, 0x00, + 0x66, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x49, 0x00, + 0x3c, 0x66, 0x3c, 0x38, 0x67, 0x66, 0x3f, 0x00, + 0x06, 0x0c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00, + 0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00, + 0x3c, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x6c, 0x60, + 0x66, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, + 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, + 0x00, 0x03, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x00, + 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x18, 0x18, 0x38, 0x18, 0x18, 0x18, 0x7e, 0x00, + 0x3c, 0x66, 0x06, 0x0c, 0x30, 0x60, 0x7e, 0x00, + 0x3c, 0x66, 0x06, 0x1c, 0x06, 0x66, 0x3c, 0x00, + 0x06, 0x0e, 0x1e, 0x66, 0x7f, 0x06, 0x06, 0x00, + 0x7e, 0x60, 0x7c, 0x06, 0x06, 0x66, 0x3c, 0x00, + 0x3c, 0x66, 0x60, 0x7c, 0x66, 0x66, 0x3c, 0x00, + 0x7e, 0x66, 0x0c, 0x18, 0x18, 0x18, 0x18, 0x00, + 0x3c, 0x66, 0x66, 0x3c, 0x66, 0x66, 0x3c, 0x00, + 0x3c, 0x66, 0x66, 0x3e, 0x06, 0x66, 0x3c, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30, + 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00, + 0x7c, 0x82, 0xba, 0xa2, 0xba, 0x82, 0x7c, 0x00, + 0x66, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x3c, 0x66, 0x06, 0x0c, 0x18, 0x00, 0x18, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x18, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, + 0x7c, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x7c, 0x00, + 0x3c, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3c, 0x00, + 0x78, 0x6c, 0x66, 0x66, 0x66, 0x6c, 0x78, 0x00, + 0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x7e, 0x00, + 0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x60, 0x00, + 0x3c, 0x66, 0x60, 0x6e, 0x66, 0x66, 0x3c, 0x00, + 0x66, 0x66, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, + 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, + 0x1e, 0x0c, 0x0c, 0x0c, 0x0c, 0x6c, 0x38, 0x00, + 0x66, 0x6c, 0x78, 0x70, 0x78, 0x6c, 0x66, 0x00, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7e, 0x00, + 0x63, 0x77, 0x7f, 0x6b, 0x63, 0x63, 0x63, 0x00, + 0x66, 0x76, 0x7e, 0x7e, 0x6e, 0x66, 0x66, 0x00, + 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x60, 0x00, + 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x0e, 0x00, + 0x7c, 0x66, 0x66, 0x7c, 0x78, 0x6c, 0x66, 0x00, + 0x3c, 0x66, 0x60, 0x3c, 0x06, 0x66, 0x3c, 0x00, + 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00, + 0x63, 0x63, 0x63, 0x6b, 0x7f, 0x77, 0x63, 0x00, + 0x66, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x66, 0x00, + 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x00, + 0x7e, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x7e, 0x00, + 0x66, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, + 0x0c, 0x12, 0x30, 0x7c, 0x30, 0x62, 0xfc, 0x00, + 0x66, 0x24, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x00, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18, + 0x00, 0x10, 0x30, 0x7f, 0x7f, 0x30, 0x10, 0x00, + 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, + 0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x7c, 0x00, + 0x00, 0x00, 0x3c, 0x60, 0x60, 0x60, 0x3c, 0x00, + 0x00, 0x06, 0x06, 0x3e, 0x66, 0x66, 0x3e, 0x00, + 0x00, 0x00, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, + 0x00, 0x0e, 0x18, 0x3e, 0x18, 0x18, 0x18, 0x00, + 0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x7c, + 0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x66, 0x00, + 0x00, 0x18, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00, + 0x00, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x3c, + 0x00, 0x60, 0x60, 0x6c, 0x78, 0x6c, 0x66, 0x00, + 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, + 0x00, 0x00, 0x66, 0x7f, 0x7f, 0x6b, 0x63, 0x00, + 0x00, 0x00, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x00, + 0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x00, 0x00, 0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60, + 0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x06, + 0x00, 0x00, 0x7c, 0x66, 0x60, 0x60, 0x60, 0x00, + 0x00, 0x00, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x00, + 0x00, 0x18, 0x7e, 0x18, 0x18, 0x18, 0x0e, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00, + 0x00, 0x00, 0x63, 0x6b, 0x7f, 0x3e, 0x36, 0x00, + 0x00, 0x00, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x0c, 0x78, + 0x00, 0x00, 0x7e, 0x0c, 0x18, 0x30, 0x7e, 0x00, + 0x01, 0x03, 0x06, 0x6c, 0x78, 0x70, 0x60, 0x00, + 0x18, 0x3c, 0x7e, 0xff, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0xff, 0x7e, 0x3c, 0x18, + 0x10, 0x30, 0x70, 0xff, 0xff, 0x70, 0x30, 0x10, + 0x08, 0x0c, 0x0e, 0xff, 0xff, 0x0e, 0x0c, 0x08, +}; + +/* French Zak font. */ +static const unsigned char frenchCharsetDataV2[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x03, 0x06, 0x0c, 0x18, 0x3e, 0x03, 0x00, + 0x80, 0xc0, 0x60, 0x30, 0x18, 0x7c, 0xc0, 0x00, + 0x00, 0x03, 0x3e, 0x18, 0x0c, 0x06, 0x03, 0x01, + 0x00, 0xc0, 0x7c, 0x18, 0x30, 0x60, 0xc0, 0x80, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x07, 0x07, 0x0f, 0x1f, 0x7f, + 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, + 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, + 0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x0c, 0x18, + 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x18, + 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, + 0x18, 0x0c, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x18, 0x18, 0x18, + 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0xf8, 0xf8, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x1f, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x18, 0x18, + 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x30, 0x18, 0x18, + 0x18, 0x18, 0x30, 0xe0, 0xc0, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x1f, 0x1f, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0xf8, 0xf8, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0xff, 0xff, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x18, 0x3c, 0x66, 0xc3, 0xc3, 0x66, 0x3c, 0x18, + 0x18, 0x3c, 0x7e, 0xff, 0xff, 0x7e, 0x3c, 0x18, + 0x18, 0x66, 0xc3, 0xdb, 0xdb, 0xc3, 0x66, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x00, + 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x66, 0x66, 0xff, 0x66, 0xff, 0x66, 0x66, 0x00, + 0x18, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x18, 0x00, + 0x62, 0x66, 0x0c, 0x18, 0x30, 0x66, 0x46, 0x00, + 0x3c, 0x66, 0x3c, 0x38, 0x67, 0x66, 0x3f, 0x00, + 0x30, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00, + 0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00, + 0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00, + 0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, + 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, + 0x00, 0x03, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x00, + 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x18, 0x18, 0x38, 0x18, 0x18, 0x18, 0x7e, 0x00, + 0x3c, 0x66, 0x06, 0x0c, 0x30, 0x60, 0x7e, 0x00, + 0x3c, 0x66, 0x06, 0x1c, 0x06, 0x66, 0x3c, 0x00, + 0x06, 0x0e, 0x1e, 0x66, 0x7f, 0x06, 0x06, 0x00, + 0x7e, 0x60, 0x7c, 0x06, 0x06, 0x66, 0x3c, 0x00, + 0x3c, 0x66, 0x60, 0x7c, 0x66, 0x66, 0x3c, 0x00, + 0x7e, 0x66, 0x0c, 0x18, 0x18, 0x18, 0x18, 0x00, + 0x3c, 0x66, 0x66, 0x3c, 0x66, 0x66, 0x3c, 0x00, + 0x3c, 0x66, 0x66, 0x3e, 0x06, 0x66, 0x3c, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30, + 0x10, 0x08, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, + 0x18, 0x24, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, + 0x00, 0x00, 0x3c, 0x60, 0x60, 0x3c, 0x18, 0x38, + 0x3c, 0x66, 0x06, 0x0c, 0x18, 0x00, 0x18, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x18, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, + 0x7c, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x7c, 0x00, + 0x3c, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3c, 0x00, + 0x78, 0x6c, 0x66, 0x66, 0x66, 0x6c, 0x78, 0x00, + 0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x7e, 0x00, + 0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x60, 0x00, + 0x3c, 0x66, 0x60, 0x6e, 0x66, 0x66, 0x3c, 0x00, + 0x66, 0x66, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, + 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, + 0x1e, 0x0c, 0x0c, 0x0c, 0x0c, 0x6c, 0x38, 0x00, + 0x66, 0x6c, 0x78, 0x70, 0x78, 0x6c, 0x66, 0x00, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7e, 0x00, + 0x63, 0x77, 0x7f, 0x6b, 0x63, 0x63, 0x63, 0x00, + 0x66, 0x76, 0x7e, 0x7e, 0x6e, 0x66, 0x66, 0x00, + 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x60, 0x00, + 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x0e, 0x00, + 0x7c, 0x66, 0x66, 0x7c, 0x78, 0x6c, 0x66, 0x00, + 0x3c, 0x66, 0x60, 0x3c, 0x06, 0x66, 0x3c, 0x00, + 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00, + 0x63, 0x63, 0x63, 0x6b, 0x7f, 0x77, 0x63, 0x00, + 0x66, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x66, 0x00, + 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x00, + 0x7e, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x7e, 0x00, + 0x08, 0x10, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, + 0x10, 0x08, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, + 0x18, 0x24, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0xdb, 0x00, + 0x00, 0x6c, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00, + 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, + 0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x7c, 0x00, + 0x00, 0x00, 0x3c, 0x60, 0x60, 0x60, 0x3c, 0x00, + 0x00, 0x06, 0x06, 0x3e, 0x66, 0x66, 0x3e, 0x00, + 0x00, 0x00, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, + 0x00, 0x0e, 0x18, 0x3e, 0x18, 0x18, 0x18, 0x00, + 0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x7c, + 0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x66, 0x00, + 0x00, 0x18, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00, + 0x00, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x3c, + 0x00, 0x60, 0x60, 0x6c, 0x78, 0x6c, 0x66, 0x00, + 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, + 0x00, 0x00, 0x66, 0x7f, 0x7f, 0x6b, 0x63, 0x00, + 0x00, 0x00, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x00, + 0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x00, 0x00, 0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60, + 0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x06, + 0x00, 0x00, 0x7c, 0x66, 0x60, 0x60, 0x60, 0x00, + 0x00, 0x00, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x00, + 0x00, 0x18, 0x7e, 0x18, 0x18, 0x18, 0x0e, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00, + 0x00, 0x00, 0x63, 0x6b, 0x7f, 0x3e, 0x36, 0x00, + 0x00, 0x00, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x0c, 0x78, + 0x00, 0x00, 0x7e, 0x0c, 0x18, 0x30, 0x7e, 0x00, + 0x18, 0x24, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00, + 0x18, 0x24, 0x00, 0x3c, 0x66, 0x66, 0x3c, 0x00, + 0x10, 0x08, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x00, + 0x18, 0x24, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x00, + 0x08, 0x0c, 0x0e, 0xff, 0xff, 0x0e, 0x0c, 0x08, +}; + +/* Italian Zak font. */ +static const unsigned char italianCharsetDataV2[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x03, 0x06, 0x0c, 0x18, 0x3e, 0x03, 0x00, + 0x80, 0xc0, 0x60, 0x30, 0x18, 0x7c, 0xc0, 0x00, + 0x00, 0x03, 0x3e, 0x18, 0x0c, 0x06, 0x03, 0x01, + 0x00, 0xc0, 0x7c, 0x18, 0x30, 0x60, 0xc0, 0x80, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x07, 0x07, 0x0f, 0x1f, 0x7f, + 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, + 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, + 0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x0c, 0x18, + 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x18, + 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, + 0x18, 0x0c, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x18, 0x18, 0x18, + 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0xf8, 0xf8, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x1f, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x18, 0x18, + 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x30, 0x18, 0x18, + 0x18, 0x18, 0x30, 0xe0, 0xc0, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x1f, 0x1f, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0xf8, 0xf8, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0xff, 0xff, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x18, 0x3c, 0x66, 0xc3, 0xc3, 0x66, 0x3c, 0x18, + 0x18, 0x3c, 0x7e, 0xff, 0xff, 0x7e, 0x3c, 0x18, + 0x18, 0x66, 0xc3, 0xdb, 0xdb, 0xc3, 0x66, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x00, + 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x66, 0x66, 0xff, 0x66, 0xff, 0x66, 0x66, 0x00, + 0x18, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x18, 0x00, + 0x62, 0x66, 0x0c, 0x18, 0x30, 0x66, 0x46, 0x00, + 0x3c, 0x66, 0x3c, 0x38, 0x67, 0x66, 0x3f, 0x00, + 0x30, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00, + 0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00, + 0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00, + 0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, + 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, + 0x00, 0x03, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x00, + 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x18, 0x18, 0x38, 0x18, 0x18, 0x18, 0x7e, 0x00, + 0x3c, 0x66, 0x06, 0x0c, 0x30, 0x60, 0x7e, 0x00, + 0x3c, 0x66, 0x06, 0x1c, 0x06, 0x66, 0x3c, 0x00, + 0x06, 0x0e, 0x1e, 0x66, 0x7f, 0x06, 0x06, 0x00, + 0x7e, 0x60, 0x7c, 0x06, 0x06, 0x66, 0x3c, 0x00, + 0x3c, 0x66, 0x60, 0x7c, 0x66, 0x66, 0x3c, 0x00, + 0x7e, 0x66, 0x0c, 0x18, 0x18, 0x18, 0x18, 0x00, + 0x3c, 0x66, 0x66, 0x3c, 0x66, 0x66, 0x3c, 0x00, + 0x3c, 0x66, 0x66, 0x3e, 0x06, 0x66, 0x3c, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30, + 0x10, 0x08, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, + 0x08, 0x10, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, + 0x10, 0x08, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, + 0x3c, 0x66, 0x06, 0x0c, 0x18, 0x00, 0x18, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x18, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, + 0x7c, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x7c, 0x00, + 0x3c, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3c, 0x00, + 0x78, 0x6c, 0x66, 0x66, 0x66, 0x6c, 0x78, 0x00, + 0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x7e, 0x00, + 0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x60, 0x00, + 0x3c, 0x66, 0x60, 0x6e, 0x66, 0x66, 0x3c, 0x00, + 0x66, 0x66, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, + 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, + 0x1e, 0x0c, 0x0c, 0x0c, 0x0c, 0x6c, 0x38, 0x00, + 0x66, 0x6c, 0x78, 0x70, 0x78, 0x6c, 0x66, 0x00, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7e, 0x00, + 0x63, 0x77, 0x7f, 0x6b, 0x63, 0x63, 0x63, 0x00, + 0x66, 0x76, 0x7e, 0x7e, 0x6e, 0x66, 0x66, 0x00, + 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x60, 0x00, + 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x0e, 0x00, + 0x7c, 0x66, 0x66, 0x7c, 0x78, 0x6c, 0x66, 0x00, + 0x3c, 0x66, 0x60, 0x3c, 0x06, 0x66, 0x3c, 0x00, + 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00, + 0x63, 0x63, 0x63, 0x6b, 0x7f, 0x77, 0x63, 0x00, + 0x66, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x66, 0x00, + 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x00, + 0x7e, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x7e, 0x00, + 0x08, 0x10, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, + 0x10, 0x08, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, + 0x18, 0x24, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0xdb, 0x00, + 0x00, 0x6c, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00, + 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, + 0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x7c, 0x00, + 0x00, 0x00, 0x3c, 0x60, 0x60, 0x60, 0x3c, 0x00, + 0x00, 0x06, 0x06, 0x3e, 0x66, 0x66, 0x3e, 0x00, + 0x00, 0x00, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, + 0x00, 0x0e, 0x18, 0x3e, 0x18, 0x18, 0x18, 0x00, + 0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x7c, + 0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x66, 0x00, + 0x00, 0x18, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00, + 0x00, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x3c, + 0x00, 0x60, 0x60, 0x6c, 0x78, 0x6c, 0x66, 0x00, + 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, + 0x00, 0x00, 0x66, 0x7f, 0x7f, 0x6b, 0x63, 0x00, + 0x00, 0x00, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x00, + 0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x00, 0x00, 0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60, + 0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x06, + 0x00, 0x00, 0x7c, 0x66, 0x60, 0x60, 0x60, 0x00, + 0x00, 0x00, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x00, + 0x00, 0x18, 0x7e, 0x18, 0x18, 0x18, 0x0e, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00, + 0x00, 0x00, 0x63, 0x6b, 0x7f, 0x3e, 0x36, 0x00, + 0x00, 0x00, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x0c, 0x78, + 0x00, 0x00, 0x7e, 0x0c, 0x18, 0x30, 0x7e, 0x00, + 0x10, 0x08, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00, + 0x10, 0x08, 0x00, 0x3c, 0x66, 0x66, 0x3c, 0x00, + 0x10, 0x08, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x00, + 0x18, 0x24, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x00, + 0x08, 0x0c, 0x0e, 0xff, 0xff, 0x0e, 0x0c, 0x08, +}; + +/* Spanish Zak font. */ +static const unsigned char spanishCharsetDataV2[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x03, 0x06, 0x0c, 0x18, 0x3e, 0x03, 0x00, + 0x80, 0xc0, 0x60, 0x30, 0x18, 0x7c, 0xc0, 0x00, + 0x00, 0x03, 0x3e, 0x18, 0x0c, 0x06, 0x03, 0x01, + 0x00, 0xc0, 0x7c, 0x18, 0x30, 0x60, 0xc0, 0x80, + 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x07, 0x07, 0x0f, 0x1f, 0x7f, + 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, + 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, + 0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x0c, 0x18, + 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x18, + 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, + 0x18, 0x0c, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x18, 0x18, 0x18, + 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0xf8, 0xf8, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x1f, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x18, 0x18, + 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x30, 0x18, 0x18, + 0x18, 0x18, 0x30, 0xe0, 0xc0, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x1f, 0x1f, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0xf8, 0xf8, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0xff, 0xff, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x18, 0x3c, 0x66, 0xc3, 0xc3, 0x66, 0x3c, 0x18, + 0x18, 0x3c, 0x7e, 0xff, 0xff, 0x7e, 0x3c, 0x18, + 0x18, 0x66, 0xc3, 0xdb, 0xdb, 0xc3, 0x66, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x00, + 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x66, 0x66, 0xff, 0x66, 0xff, 0x66, 0x66, 0x00, + 0x18, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x18, 0x00, + 0x62, 0x66, 0x0c, 0x18, 0x30, 0x66, 0x46, 0x00, + 0x3c, 0x66, 0x3c, 0x38, 0x67, 0x66, 0x3f, 0x00, + 0x30, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00, + 0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00, + 0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00, + 0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, + 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, + 0x00, 0x03, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x00, + 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x18, 0x18, 0x38, 0x18, 0x18, 0x18, 0x7e, 0x00, + 0x3c, 0x66, 0x06, 0x0c, 0x30, 0x60, 0x7e, 0x00, + 0x3c, 0x66, 0x06, 0x1c, 0x06, 0x66, 0x3c, 0x00, + 0x06, 0x0e, 0x1e, 0x66, 0x7f, 0x06, 0x06, 0x00, + 0x7e, 0x60, 0x7c, 0x06, 0x06, 0x66, 0x3c, 0x00, + 0x3c, 0x66, 0x60, 0x7c, 0x66, 0x66, 0x3c, 0x00, + 0x7e, 0x66, 0x0c, 0x18, 0x18, 0x18, 0x18, 0x00, + 0x3c, 0x66, 0x66, 0x3c, 0x66, 0x66, 0x3c, 0x00, + 0x3c, 0x66, 0x66, 0x3e, 0x06, 0x66, 0x3c, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30, + 0x0e, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0e, 0x00, + 0x7c, 0x82, 0xba, 0xa2, 0xa2, 0xba, 0x82, 0x7c, + 0x70, 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x70, 0x00, + 0x3c, 0x66, 0x06, 0x0c, 0x18, 0x00, 0x18, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x18, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, + 0x7c, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x7c, 0x00, + 0x3c, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3c, 0x00, + 0x78, 0x6c, 0x66, 0x66, 0x66, 0x6c, 0x78, 0x00, + 0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x7e, 0x00, + 0x7e, 0x60, 0x60, 0x78, 0x60, 0x60, 0x60, 0x00, + 0x3c, 0x66, 0x60, 0x6e, 0x66, 0x66, 0x3c, 0x00, + 0x66, 0x66, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00, + 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, + 0x1e, 0x0c, 0x0c, 0x0c, 0x0c, 0x6c, 0x38, 0x00, + 0x66, 0x6c, 0x78, 0x70, 0x78, 0x6c, 0x66, 0x00, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7e, 0x00, + 0x63, 0x77, 0x7f, 0x6b, 0x63, 0x63, 0x63, 0x00, + 0x66, 0x76, 0x7e, 0x7e, 0x6e, 0x66, 0x66, 0x00, + 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x60, 0x00, + 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x0e, 0x00, + 0x7c, 0x66, 0x66, 0x7c, 0x78, 0x6c, 0x66, 0x00, + 0x3c, 0x66, 0x60, 0x3c, 0x06, 0x66, 0x3c, 0x00, + 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00, + 0x63, 0x63, 0x63, 0x6b, 0x7f, 0x77, 0x63, 0x00, + 0x66, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x66, 0x00, + 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x00, + 0x7e, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x7e, 0x00, + 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00, + 0x66, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, + 0x66, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0xdb, 0x00, + 0x00, 0x10, 0x30, 0x7f, 0x7f, 0x30, 0x10, 0x00, + 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x06, 0x3e, 0x66, 0x3e, 0x00, + 0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x7c, 0x00, + 0x00, 0x00, 0x3c, 0x60, 0x60, 0x60, 0x3c, 0x00, + 0x00, 0x06, 0x06, 0x3e, 0x66, 0x66, 0x3e, 0x00, + 0x00, 0x00, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00, + 0x00, 0x0e, 0x18, 0x3e, 0x18, 0x18, 0x18, 0x00, + 0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x7c, + 0x00, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x66, 0x00, + 0x00, 0x18, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00, + 0x00, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x3c, + 0x00, 0x60, 0x60, 0x6c, 0x78, 0x6c, 0x66, 0x00, + 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, + 0x00, 0x00, 0x66, 0x7f, 0x7f, 0x6b, 0x63, 0x00, + 0x00, 0x00, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x00, + 0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x00, 0x00, 0x7c, 0x66, 0x66, 0x7c, 0x60, 0x60, + 0x00, 0x00, 0x3e, 0x66, 0x66, 0x3e, 0x06, 0x06, + 0x00, 0x00, 0x7c, 0x66, 0x60, 0x60, 0x60, 0x00, + 0x00, 0x00, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x00, + 0x00, 0x18, 0x7e, 0x18, 0x18, 0x18, 0x0e, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x00, + 0x00, 0x00, 0x63, 0x6b, 0x7f, 0x3e, 0x36, 0x00, + 0x00, 0x00, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x66, 0x3e, 0x0c, 0x78, + 0x00, 0x00, 0x7e, 0x0c, 0x18, 0x30, 0x7e, 0x00, + 0x66, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x66, 0x18, 0x3c, 0x66, 0x7e, 0x66, 0x66, 0x00, + 0x42, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, + 0x1c, 0x36, 0x36, 0x7c, 0x66, 0x66, 0x7c, 0x40, + 0x08, 0x0c, 0x0e, 0xff, 0xff, 0x0e, 0x0c, 0x08, +}; + +unsigned char *specialCharsetData = NULL; +int numSpecialChars = 0; + +void compressCharset(const unsigned char *data, char *var, char *name) { + int i; + + printf("// %s\n", name); + printf("static const byte %s[] = {\n", var); + + for (i = 0; i < 128; i++) { + if (memcmp(data + 8 * i, englishCharsetDataV2 + 8 * i, 8) != 0) { + /* The character is different from our baseline font. + * Look in the list of special characters. + */ + int j; + + for (j = 0; j < numSpecialChars; j++) { + if (memcmp(data + 8 * i, specialCharsetData + 8 * j, 8) == 0) + break; + } + + if (j >= numSpecialChars) { + specialCharsetData = (unsigned char *)realloc(specialCharsetData, 8 * (numSpecialChars + 1)); + memcpy(specialCharsetData + 8 * numSpecialChars, data + 8 * i, 8); + numSpecialChars++; + } + + printf("\t%d, %d,\n", i, j); + } + } + + printf("};\n\n"); +} + +int main() { + int i, j; + + printf("// These replacement character tables have been created using the\n"); + printf("// make-scumm-fontdata tool.\n\n"); + + /* + * Create an array of replacement characters for each font data set. + * Each replacement character consists of a character code and an + * offset into the specialCharsetData[] array. + */ + + compressCharset(germanCharsetDataV2, "germanCharsetDataV2", "German Zak font."); + compressCharset(germanCharsetDataV0, "germanCharsetDataV0", "German C64 MM."); + compressCharset(frenchCharsetDataV2, "frenchCharsetDataV2", "French Zak font."); + compressCharset(italianCharsetDataV2, "italianCharsetDataV2", "Italian Zak font."); + compressCharset(spanishCharsetDataV2, "spanishCharsetDataV2", "Spanish Zak font."); + + printf("// Special characters\n"); + printf("static const byte specialCharsetData[] = {\n"); + + for (i = 0; i < numSpecialChars; i++) { + printf("\t"); + for (j = 0; j < 8; j++) { + printf("0x%02x,", specialCharsetData[8 * i + j]); + if (j < 7) + printf(" "); + } + printf("\n"); + } + + printf("};\n"); + + return 0; +} diff --git a/tools/module.mk b/tools/module.mk index 34d8dc771a..01ad99588b 100644 --- a/tools/module.mk +++ b/tools/module.mk @@ -13,7 +13,8 @@ MODULE_DIRS += \ TOOLS := \ tools/convbdf$(EXEEXT) \ - tools/md5table$(EXEEXT) + tools/md5table$(EXEEXT) \ + tools/make-scumm-fontdata$(EXEEXT) include $(srcdir)/tools/*/module.mk @@ -39,6 +40,10 @@ tools/md5table$(EXEEXT): $(srcdir)/tools/md5table.c $(MKDIR) tools/$(DEPDIR) $(CC) $(CFLAGS) -Wall -o $@ $< +tools/make-scumm-fontdata$(EXEEXT): $(srcdir)/tools/make-scumm-fontdata.c + $(MKDIR) tools/$(DEPDIR) + $(CC) $(CFLAGS) -Wall -o $@ $< + # # Rules to explicitly rebuild the credits / MD5 tables. # The rules for the files in the "web" resp. "docs" modules |