Playdate DOS Fonts Initial Release
So the other night, after drawing yet another font in Playdate CAPS I figured there has to be a better way. Bitmapped fonts have been around for more than 40 years at this point, why am I reinventing the wheel over and over again. So I dug into the world of bitmapped fonts. Holy poop that's a deep well of domain knowledge I didn't need.
For those who don't know, the Playdate FNT format is relatively straightforward. Basically there's a sprite sheet PNG of your characters and then an index of the order of the characters on the sprite sheet and each character's width. I wrote up detailed documentation for the playdate-reverse-engineering project on Github if you wanna know more.
I had found farsil/ibmfonts which had converted/organized the set of VileR's Old School Font Pack, which are the original ROM files, into the BDF format. All I needed to do was find a tool that could read BDF files. I tried a few, with limited success, but then found bdfparser on pypi. This was exactly what I needed. Almost. With a few modifications to that tool I was able to extract the font details extract the 1bit bitmap character by character. After a bit of fighting with PIL I had a pipeline that would generate the necessary sprite sheet and accompanying FNT file.
For release, I pulled the nicely formatted PNGs back out of the FNT file with my fnt2png.py script, wrote a 100 line mini-app to demo the fonts and bob's your uncle on-sale for $4.99.
Any other retro fonts worth releasing as a Font Pack for the Playdate. Apple II? Macintosh? Windows 3.1? Let me in the comments.
P.S. Be sure to check out my other Playdate stuff on my Itch store. This week I released Parachute 22, a clone of Parachute for the iPod Nano that works great with the Playdate Crank and a Tribute to my favorite game of all time Gimme Friction Baby. Plenty more coming soon, follow me here on Itch for updates @notpeter on Twitter/Reddit and @notnotpeter on Twitch.
Get IBM DOS Fonts (Playdate Font Pack)
Leave a comment
Log in with itch.io to leave a comment.