| |
almightyc64
Registered: Feb 2006 Posts: 8 |
C64 Font problem on Windows 7, any suggestions to fix?
Hi there, in my D64 Editor program that I wrote many years ago, I created a Bitmap font for display of the C64 Charset and on Windows 95/98/ME/2000/XP it displays correctly. However, on Windows 7 a handful of the characters don't display correctly.
Here's a link to a screenshot of the difference between Windows XP and Windows 7. The screenshot on the left-side is from Windows XP and the majority of the characters display with no problems. The screenshot on the right-side is from Windows 7 and a bunch of the characters (the entire second row for example) are broken.
http://almighty.c64.org/win7-bitmap-font-problem.gif
Anyone else run into a similar problem with Windows 7 and Bitmap fonts and know how to fix it?
Thanks!
Forrest |
|
... 1 post hidden. Click here to view all posts.... |
| |
soci
Registered: Sep 2003 Posts: 480 |
I get proper font on my machines if I initialize like this:
jsr $ff84 ; reset CIA bank (just in case)
jsr $ff81 ; reset VIC-II
|
| |
soci
Registered: Sep 2003 Posts: 480 |
You have problems in both. I think the original plan must have been something like this:
Use Unicode private mapping for characters, real bitmaps, or a platform where the font is built in ;) |
| |
Oswald
Registered: Apr 2002 Posts: 5094 |
thats the coolest arrangement of the rom font ever |
| |
aNdy
Registered: Jan 2004 Posts: 41 |
PETSCII release right there! ;) |
| |
soci
Registered: Sep 2003 Posts: 480 |
Oswald: It's not the whole ROM font, just the part you can use in directory lists.
I must admit I had to update the picture as it had two faults. It also had serious moire patterns. Now it has stripes instead... ;) |
| |
Dr.j
Registered: Feb 2003 Posts: 277 |
@almightyc64: Thanks for listing the bug that i got on win 7.
we already discussed about it.
idea for solving the bug is to use a picture you snapped
from XP and to show this on Win 7 but maybe you got elegant
ways to solve it. cheers my friend |
| |
almightyc64
Registered: Feb 2006 Posts: 8 |
Thanks for the replies guys. Soci's screenshot is exactly what I was going for anyway, and he's right that the Windows XP screenshot had a few issues as well, but it was definitely better than the result on Windows 7 anyway.
Looking at the font with a font editor, it looks like all of the "problem" characters either are assigned as Control Characters or as "unknown" characters in the standard windows font format. Specifically broken characters are 16-32, 141, 143, 144, 129, 157, etc..
But interestingly, the first row of characters also seem to be assigned as Control Characters yet they display correctly.
Fonts is definitely not my area of expertise, and I put this thing together 15 years ago so I don't remember much about it's creation. I was just hoping that maybe there was a compatibility setting I could flip somewhere in Windows 7 to get the font to display like it did on the older OS, but so far I've been unable to find anything about this while searching online. I'm guessing my next step will be to try to find a replacement font, probably a TTF instead of a bitmap font.
To answer Endurion's question about what I'm using to display the font. The program is written in old Visual Basic 5, and it's simply using the Textbox/Listbox/Label/etc... features with the bitmap c64 font assigned to it.
Unfortunately the fix isn't as simple as Dr.j is hoping. I could fix the display in the Filename Builder screen by replacing the problem areas with image files instead, but it would still be broken in every other area of the program that displays the directory.
Thanks!
Forrest |
| |
soci
Registered: Sep 2003 Posts: 480 |
This was just released:
http://style64.org/release/c64-truetype-v1.2-style
These mappings look interesting at first:
$e000 - Upper PETSCII
$e100 - Lower PETSCII
$e200 - Upper PETSCII inverse
$e300 - Lower PETSCII inverse
However it's not directly usable for displaying all directory lists as control codes ($00-$1f, $80-$9f) are simply blanks instead of the reverse characters displayed in quote mode.
There are of course the screen code areas containing everything:
$ee00 - Upper screen code
$ef00 - Lower screen code
And a lot of random mappings to make regular text readable with C64 characters, plus some extra 8x8 characters which do not exists on C64. (like ^ )
For easy implementation you could use the PETSCII area mostly, and the screen code area for the reverse control characters.
I don't know much about VB5, but you could try to copy-paste characters from the windows character map utility, it might work.
And in theory there's ChrW for accessing these high character mappings when you want to convert the filenames to a displayable string. |
| |
almightyc64
Registered: Feb 2006 Posts: 8 |
Thanks Soci, I took a look at the Style font package earlier and Elwix/Style was kind enough to give me some suggestions on how they make use of their fonts. They ran into the same problem that I'm now facing where if you use $00-FF, regardless of what glyph you might have drawn for a character some of the characters are special use and will never be displayed as a character on the screen. Which is why even on the older Windows XP machines some of the characters didn't display correctly in my screenshot.
I'm still puzzled on what changed between Windows XP and Windows 7 to cause additional characters to no longer be displayed properly, but perhaps it's a Visual Basic compatibility problem on the newer OS. VB is very old anyway.
So it definitely looks like if I want to resolve the problem for good I need to use a font like Style's font pack and do the memory conversion back and forth in my program between where they've mapped their charactersets and what Visual Basic is expecting. Bad thing about that is some Visual Basic components just aren't well suited for on-the-fly conversion, such as free-form text boxes.
This may end up being one of those things that works "well enough" as-is, which it does since the vast majority of characters display correctly. The Style fonts are also differently sized than the one I'm using, so I'd need to go through the program and resize pretty much everything to fit their smallest 8.5pt font (my bitmap font is 6pt).
All in all it probably isn't worth the effort, especially since there are better programs than my D64 Editor. It's still useful to me, but for anyone that cares about things like the extended characterset displaying correctly etc... I would assume a program like DirMaster from Style is a much better choice. |
| |
almightyc64
Registered: Feb 2006 Posts: 8 |
And to bring the idea of changing the font to a close, after experimenting with Style's font pack it appears that Visual Basic components do not support Unicode format characters (only ANSI). Searching around online I found other people with the same problem, and on the surface it appears that Visual Basic has components that support Unicode, but they don't work and were intended to be used with the Microsoft Office applications only.
So it looks like replacing the font isn't going to work with the old D64 Editor. Luckily the vast majority of the characters display correctly, so it hasn't been much of a problem. It specifically came up because the character that Koala Paint files begin with doesn't display correctly anymore, but did work correctly on Windows XP and prior OS versions. |
Previous - 1 | 2 - Next |