User-Defined Characters
-
- Posts: 143
- Joined: Sun Jul 05, 2020 3:27 pm
User-Defined Characters
I love PETSCII, and I know it's on the X16 because of its legacy and especially all the graphical characters it supplies to facilitate for character-based graphics. However, it'd be a shame if, in our increasingly connected, international culture of the 21st century, we couldn't somehow get at least Scandinavian or Eastern European characters on the X16 (let alone anything non-Roman).
However, my 'feature request' is not for the dev team to make an extended character ROM. Instead, I am suggesting that if the users can easily design their own characters somehow, then the user base will likely develop support for all sorts of languages, as needed, on its own. Someone in the community with enough time and inclination might even tackle Korean or Japanese characters - and yes, that comes with major input issues, but it would be easier to begin to address those issues if the system already easily allowed for user-defined characters.
I'm not sure how that would be implemented, though. I know on the C64, it's technically possible to copy the entire character ROM to RAM and then override whatever characters you need, but this is challenging and kind of hacky; it's not something the system is designed to allow you to do easily. I've also read that on a Spectrum there is a much easier built-in way to make 'user characters', but I have no experience with this, and no knowledge of how it's implemented in the Spectrum architecture. Maybe on the X16 it would be as simple as some built-in subroutines to allow this kind of thing more easily?
This would also have added advantages for people making games with character graphics.
Thanks for considering it.
- StephenHorn
- Posts: 565
- Joined: Tue Apr 28, 2020 12:00 am
- Contact:
User-Defined Characters
The team is way ahead of you, and the community is leading by a couple of steps, as well. ?
There are 3 character sets currently in the ROM, which can be switched with a kernal call. They get copied in VRAM, it's the only way the VERA can use them. This, of course, means you can modify them to your heart's content, or even replace them entirely. If you're using the default console settings, then the current character set is located at $0F800 in VRAM.
Actually, I just discussed this on a topic in the X16 Programming Support section. I'll quote the salient bit you might be interested in:
Quote
We know that the X16 uses the same tiles, in the same order, as the Commodore 64, so we can look up where, for example, X should be: At tile 24 (the first tile being 0). Since the tiles are 1bpp, 8 pixels wide, and 8 pixels tall, we can multiply this out and know that each tile is 8 bytes. Tile 24, then, starts at $0F800 + 8*24, or $0F8C0. Let's take a look with a little basic:
FORI=0TO7:PRINT VPEEK(0,$F8C0+I):NEXTI gives us:
102
102
60
24
60
102
102
In binary, this looks like:
%01100110
%01100110
%00111100
%00011000
%00111100
%01100110
%01100110
That looks like an X to me.
Meanwhile, on the community front, someone was working on a program that supported unicode text in a variety of European languages, at least, and I seem to recall they had enough success that it seems like Asian-region languages would be within reach. I don't know for sure how much magic they're bringing to bear, because I don't recall hearing any updates from them recently, but it was somewhere on the Facebook group at one point.
I also accept pull requests for x16emu, the official X16 emulator. (x16-emulator on GitHub)
User-Defined Characters
19 minutes ago, StephenHorn said:
Meanwhile, on the community front, someone was working on a program that supported unicode text in a variety of European languages
I think you are mentioning this: https://www.facebook.com/groups/CommanderX16/permalink/522380971846335/
- StephenHorn
- Posts: 565
- Joined: Tue Apr 28, 2020 12:00 am
- Contact:
User-Defined Characters
19 minutes ago, Cyber said:
I think you are mentioning this: https://www.facebook.com/groups/CommanderX16/permalink/522380971846335/
Pretty sure that's the guy. Wonder if they're still working on it.
I also accept pull requests for x16emu, the official X16 emulator. (x16-emulator on GitHub)
-
- Posts: 143
- Joined: Sun Jul 05, 2020 3:27 pm
User-Defined Characters
This is excellent news! Thank you for taking the time to educate us about this.
User-Defined Characters
I tell you, just having Latin-1 would be a relief.
I know that there wouldn't be room on Vera for Hanzi (I keep hearing that you need to know 3,000 characters to be able to read a Chinese newspaper comfortably, so I am about 2,975 to go) ... but with 16x16 character sets, drawing the characters that are on the screen from a pool on the SD card and buffered in High RAM seems like it could be in reach.