mattmikolay / chip-8

A collection of CHIP-8 programs and documentation
MIT License
305 stars 10 forks source link

There are at least four chip 8 fonts #3

Open zZeck opened 5 years ago

zZeck commented 5 years ago

Cosmac VIP, ETI-660, Dream 6800, and Chip48 interpreters all have different font data. This can effect program behavior because of pixel based collision. Some programs have text that looks off center as well.

Tested in Cosmac VIP and ETI-660 in Emma 02, Dream 6800 in MESS/MAME, and Chip48 in Emu48 for hp48sx.

Used cosmac VIP chip8 ram sha1 8AA634C239004FF041C9ADBF9144BD315AB5FC77

Used eti rom sha1 C0C4951E02F873F15560BDC3F35CDF3F99653922

Used Dream 6800 with original CHIPOS ROM. sha1 60F26E57A058262B30BEFCECEAB4363A5D65D877

Used chip48 2.25 https://groups.google.com/forum/#!searchin/comp.sys.handhelds/2.25/comp.sys.handhelds/z8KoBcbCExQ/q4VsdUu-1ssJ which is sha1 16AB1BAC7D4861C26EFA4DF29E3AA3CE1BD8F7E5 after removing transfer dependent 13 byte hp header.

Images showing the fonts, and text with their binary representations are attached.

I suspect there are variants of the chip8 data used by the cosmac and telmac 1800. The author of chip48 had a telmac, but the font used by chip48 does not look exactly like the font seen in the chip8 ram used by Emma 02. (same chip8 ram data is used for cosmac and telmac) https://groups.google.com/d/msg/comp.sys.hp48/eKdWisxs-_Q/63e9bVZcOkgJ I intend to do more research into this.

chip48charTest chip48font.txt cosmacvipChartest cosmacvipfont.txt dream6800CharTest dream6800font.txt eti660chartest eti660font.txt

JohnEarnest commented 5 years ago

Good work on the research!

I'll have to do some thinking about how best to deal with this in Octo...

tobiasvl commented 4 years ago

I just realized that the Dream-6800 characters were only 3 pixels wide, which probably means that any games made specifically for it look really weird in other interpreters. Some screenshots of one such game in this article (not a CHIP-8 game, but uses the same built-in fontset, part of the "CHIPOS").

zZeck commented 4 years ago

I emailed Andreas Gustafsson, author of chip48 a few times in July. This is what he said about the chip48 font vs the telmac font

"telmac1800CharTest.png matches my recollection of what the games on my Telmac 1800 looked like, and chip48charTest.png matches CHIP48 2.25 running on my HP48SX. I may have designed a new font for CHIP48 from scratch so as not to infringe on the copyright of the original, but I can't really remember."

So the telmac and cosmac vip probably had the same font data. Which would make sense given the connections between the hardware.

tobiasvl commented 4 years ago

The high-resolution Super-CHIP font also has a couple of variants, found here. Left is Super-CHIP v1.1 (which only had digits 0–9), right is Octo:

Super-CHIP 1.0 was identical to 1.1, except that the inside of the 0 character was square.

zZeck commented 4 years ago

The Fish N Chips emulator has its own large and small fonts. These can be found in the font.h file of the source. Comment says: "made a screenshot of a dosbox in raster font, size 46 and 812 and 'redrawn' them" fishnchips The Vinegar TI-83 chip 8 interpreter says it uses the large font from fish n chips in the Thanks section of its site. The small font appears to be the same as chip48. The fonts are in Core.asm. Search for "Chip-8 font data"

JohnEarnest commented 4 years ago

Octo now allows using your choice from the above:

hamburgefontsiv

zZeck commented 4 years ago

That looks great! I love the preview box.