Best General Purpose Character Set?

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Best General Purpose Character Set?
by on (#94035)
I'd like to make games using character graphics akin to the Aquarius. I can't find the current rights holder to Aquarius so maybe a different character set is in order.
http://www.vdsteenoven.com/aquarius/

The set used in LogoNES is donationware which is OK but is suited mostly to making full screen art.

What character graphic sets have people seen? What would be the ideal set?

by on (#94048)
At least in the US, it is held that bitmap fonts are not protected by copyright or patent. They could be protected under trademark or servicemark, but then only when with specific text. (Pure vector fonts are also not, but the kerning program inside the font is copyrighted). I do not know the status of bitmap fonts in europe, but vector fonts are covered there.

Also, we just discuessed this in another post- http://nesdev.com/bbs/viewtopi ... 3802#93802

Note that fonts with single-pixel-wide strokes may have unacceptable color fringing on the NES's NTSC output.

by on (#94049)
I believe slobu was referring to the areas outside $20-$7F, which can contain building blocks useful for making art. It's called text semigraphics, and it consists of extensions to ASCII art. I can think of "PETSCII art" (on the Commodore 64), so-called "ANSI art" (really IBM code page 437), "Shift JIS art" (incorporating Chinese characters, Japanese characters, and various geometric characters), and "Unicode art" (using box drawing, block elements, and likewise inherited from CP437 and other old standards).

As for single-wide strokes, I don't see a problem with them in one of my projects, at least when only grays are involved ($0F $00 $10 $20).

by on (#94106)
If one is interested in the PETSCII set, here are several variations. PET, VIC20, C64, C128, CBM2 machines (including regional variants and system-specific differences). The linked site supplies the fonts as TTF, which have been held to be copyrightable in the US, but the actual bitmap images are not. The fonts are also displayed as bitmaps which if nothing else could be re-pixeled (a few of them toward the right hand of each example image seem to be slightly blurred horizontally so not feasible to just copy/paste).

Especially with the PET/VIC20 vs the C64/128, there are a few characters that became ambiguous with the shift to two-pixel-wide charsets.

by on (#94110)
You might want to look into Code Page 437, which was basically the de facto standard for PCs once IBM rolled around.

I remember reading about how the original designer of CP437 threw in card suits because someone mentioned that the computer should be able to play simple card games, and things like that.

The smiley faces were useful for roguelikes and derivatives, like ZZT, because it could represent the player. Various other symbols served other purposes, like the male symbol representing bombs, female symbols representing keys, and other things like that. Most of the greek symbols at the bottom row served as enemies, and they're pretty distinct looking too.

I think this'd be a good place to start. You probably don't need as many box-drawing characters though, so you could replace them with other things, such as chess pieces. Same with the greek symbols and the multitudes of accented letters.

Keep in mind, people had very good imaginations back then, if an entire character set of accented letters and greek symbols could be used for gaming objects. However, if your character set is focused on gaming (instead of it just being a bonus), then I'd take into account several popular genres.

Namely, I'd think of Space Invaders, Gradius (and any other one-way-scrolling shmup), Lode Runner / Donkey Kong, and Roguelikes. So, that'd probably be a ship (optionally additional ship characters for facing in more than one direction), some kind of humanoid (so maybe a smiley, or a figure), and a set of "invaders" that could continually be reused in other games to provide a varied amount of enemies (or just "actors" in general). You'd need some collectibles and effects, so coins, jewels, rings, keys, bombs, explosions, bullets, things like that.

In addition, you'd need your standard ASCII set, box drawing, arrows, and maybe tiles dedicated to semigraphics (like in PETSCII), and I don't think it'd be a bad idea to include parlor game pieces, so card suits, chess pieces (which could also double as actors in other games), things like that.

by on (#94119)
Drag wrote:
The smiley faces were useful for roguelikes and derivatives, like ZZT, because it could represent the player. Various other symbols served other purposes, like the male symbol representing bombs, female symbols representing keys, and other things like that. Most of the greek symbols at the bottom row served as enemies, and they're pretty distinct looking too.


ZZT, SuperZZT, Kroz, Megazeux, and Insane Maze Game gives a retro feel as to using that Charset, using ANSI Style art and using it to maximum potential,

Note that Kroz is ZZT's precursor, because the design is based off of ANSI design.

Megazeux is in C++, and Kroz, ZZT, and SuperZZT were written in Turbo Pascal 7.x, but Megazeux and Kroz are the only games with it's source availible under GPL.

ZZT and SuperZZT sources are lost in a HDD crash

by on (#94129)
I get a kick out of the ad for ZZT that appears on the loading screen whenever my cousin starts playing Zombies in Call of Duty: Black Ops for Xbox 360.

by on (#94130)
tepples wrote:
I get a kick out of the ad for ZZT that appears on the loading screen whenever my cousin starts playing Zombies in Call of Duty: Black Ops for Xbox 360.


ZZT is a EPIC (Mega)games game only in DOS, and had it's source erased, maybe you're talking about ''ZZT - VULKAN ALARM'' (Zombie Nation and Tiga)

Back on Topic: the top half of ASCII standard font format is useful anywhere even on the NES.
Re:
by on (#97855)
I myself use CP437 for these purposes.

Hamtaro126 wrote:
ZZT and SuperZZT sources are lost in a HDD crash
Myself and other "ZZTologists" figure out near to exactly how it works and why it does certain strange things and so on.

Yes, MegaZeux is available under GPL and I have made some corrections to it as well; MegaZeux is not limited to CP437 however, it can use any custom charset, but I usually use the CP437 set for my own MegaZeux games.

Also, MegaZeux is now in C, not C++.
Re: Best General Purpose Character Set?
by on (#98037)
Also, here are a large number of C64 charsets, with varying amounts of character coverage. There are 8x8, 8x16, 16x8, and even a few 16x16 sets included. They're not directly usable on the NES as they're in GIF as well as zipped raw C64 binary (1bpp) so you'll have to re-pixel (or convert from raw binary to NES pattern format) any that you may want to use. Some of the sets also include graphic characters.
Re: Best General Purpose Character Set?
by on (#98041)
LocalH wrote:
Also, here are a large number of C64 charsets, with varying amounts of character coverage. There are 8x8, 8x16, 16x8, and even a few 16x16 sets included. They're not directly usable on the NES as they're in GIF as well as zipped raw C64 binary (1bpp) so you'll have to re-pixel (or convert from raw binary to NES pattern format) any that you may want to use. Some of the sets also include graphic characters.

Free tip:

You can use YY-CHR to open the 1 bpp images, just make sure to strip out the first two bytes (loading address for C64) with a hex editor first. Then in YY-CHR copy the whole tileset (Ctrl+A, Ctrl+C), change the graphic format to "2BPP NES", and paste it back (Ctrl+V).