From b94a87a420f424d23317b8b82d7a3e77bb3f7865 Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Sat, 14 Mar 2020 21:04:21 +0100 Subject: [PATCH] fix for PI symbol in Mega65 cchargen --- doc/Development.md | 3 +-- tools/patch_chargen.cc | 5 +++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/doc/Development.md b/doc/Development.md index 27ab1690..bc4c8ad7 100644 --- a/doc/Development.md +++ b/doc/Development.md @@ -63,8 +63,7 @@ Bits 3 and 4 are extension to the original variable, compatible with the C128 RO Mega65 build starts in legacy mode, which is intended to be reasonably compatible with the C64 ROMs. However, a native Mega65 mode is planned too, to make it easier to utilise extra features of this machine. Soo far the following has been done: -- Slightly different chargen. On C64 machines prewssing C= + G or C= + M key combinations produces the same visual result as C= + H or C= + N, respectively - despite keycap printing suggests they should produce tinner bars. This was intentional change in the C64 ROMs (compared to VIC-20), to prevent colour problems on 80s era TVs. Screen font used in the legacy mode duplicates this change, but the font intended for native mode has this change reverted back. - +- Slightly different chargen. On C64 machines pressing C= + G or C= + M key combinations produces the same visual result as C= + H or C= + N, respectively - despite keycap printing suggests they should produce tinner bars. This was intentional change in the C64 ROMs (compared to VIC-20), to prevent colour problems on 80s era TVs. Screen font used in the legacy mode duplicates this change, but the font intended for native mode has this change reverted back. Additionally, the π sign is available for lower/upper case set too. ## Tinkering with OpenROMs diff --git a/tools/patch_chargen.cc b/tools/patch_chargen.cc index 425b813a..49bef286 100644 --- a/tools/patch_chargen.cc +++ b/tools/patch_chargen.cc @@ -101,6 +101,11 @@ void processFont() fileContent[0x65 * 8 + 2048 + idx] = 0b10000000; // upper/lower case fileContent[0xE5 * 8 + 0 + idx] = 0b01111111; // inversed fileContent[0xE5 * 8 + 2048 + idx] = 0b01111111; // upper/lower case, inversed + + // PI character restoration for upper/lower case set + + fileContent[0x5E * 8 + 2048 + idx] = fileContent[0x5E * 8 + idx]; + fileContent[0xDE * 8 + 2048 + idx] = fileContent[0xDE * 8 + idx]; } // Remove old file