Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(1 edit) (+1)

Hello! Thanks for sharing free fonts, they are really nice!

I program with PICO-8 (an emulator for a console that didn’t really exist with retro feeling and restrictions); custom fonts used to be costly (take much of the limited spritesheet + require custom code for drawing) but the latest version adds a simpler, cheaper way to define a custom font to use with the print function and built-in text effects. I ported Expression Pro to that system:

I had to adapt (height and width must be the same for all glyphs, no descenders, etc) and invent some glyphs for special characters (you can see arrow and action buttons for example). Had to sacrifice diacritics, but these could be done by drawing base character + superposition control char + accent or other; I saved thorn, dh and esszet :) I’m not 100% done yet and not satisfied with some of my spacing changes.

Would it be OK if I shared the code for this on the PICO-8 BBS (forum) with credit and link? Other people would be able to use the font and change it. I would also share here the commands that add the font to a PICO-8 game (it’s 3 lines of compressed pixel info, I generated them from sprites using a custom tool).

Absolutely! great job, I should look into adapting fonts to Pico-8 too! :D

Great! This is the code that can be pasted into a cart with PICO-8 2.2.2 to create the font:

--e𝘹𝘱𝘳𝘦𝘴𝘴𝘪𝘰𝘯 p𝘳𝘰 𝘧𝘰𝘯𝘵
--𝘣𝘺 𝘴𝘰𝘮𝘦𝘱𝘹 𝘢𝘯𝘥 𝘮𝘦𝘳𝘸𝘰𝘬
poke(0x5600,8,8,9)
poke4(0x5680,unpack(split"0x3630.182e,0x1e33.3333,0x633f.0303,0x0303.7b63,0x6363.633f,0x7b63.636f,0x6363.3f03,0x037b.6363,0x3363.633e,0x3b63.636b,0x0000.0000,0x0000.0000,0x555d.633e,0x3e63.5d45,0x755d.633e,0x3e63.755d,0x0000.0000,0x0000.0000,0x0000.0000,0x0000.0000,0x0f66.7c00,0x7c66.0f06,0x0666.7c00,0x7f66.061f,0x0b6b.7e08,0x7e6b.0b0b,0x0000.0000,0x0000.0000,0x0000.0000,0x0000.0000,0x1c36.361c,0x0000.0000,0x0000.0000,0x0000.0000,0x0c0c.0c0c,0x0c0c.000c,0x0036.366c,0x0000.0000,0x7f36.0000,0x367f.3636,0x0b6b.7e08,0x3f6b.687f,0x3034.0000,0x002c.0c18,0x3333.1e00,0x5e33.7b1e,0x0000.0c18,0x0000.0000,0x0c0c.1830,0x3018.0c0c,0x3030.180c,0x0c18.3030,0x3600.0000,0x0036.3e1c,0x0c00.0000,0x000c.3f3f,0x0000.0000,0x0c18.1800,0x0000.0000,0x0000.3f3f,0x0000.0000,0x0c0c.0000,0x1830.3000,0x000c.0c18,0x6666.3c00,0x3c66.6666,0x1818.1c00,0x7e18.1818,0x6066.3e00,0x7e66.067c,0x6066.3e00,0x3e66.603c,0x6666.6600,0x6060.607c,0x0666.7e00,0x3e66.603e,0x0606.3c00,0x3c66.663e,0x6066.7e00,0x1818.1830,0x6666.3c00,0x3c66.663c,0x6666.3c00,0x3860.7c66,0x0c0c.0000,0x000c.0c00,0x0c0c.0000,0x060c.0c00,0x3800.0000,0x0038.3c0c,0x3e00.0000,0x003e.3e00,0x1c00.0000,0x001c.3c30,0x1c30.361e,0x0c0c.000c,0x7943.7e00,0x5d4d.4d4d,0x3e00.0000,0x7733.3333,0x1b03.0303,0x3b33.3337,0x3e00.0000,0x3f03.0333,0x3e30.3030,0x7733.3333,0x3e00.0000,0x3f03.3b33,0x3e0c.0c38,0x060c.0c0c,0x6676.6c00,0x3c60.6e66,0x1b03.0303,0x7333.3337,0x1c00.1800,0x3c18.1818,0x3038.0030,0x1c38.3030,0x6666.0606,0x6666.6e36,0x0c0c.0c0c,0x380c.0c0c,0x5b00.0000,0x5b5b.5b7f,0x3b00.0000,0x7333.3337,0x1e00.0000,0x1e33.3333,0x3337.1b00,0x0303.3b33,0x3333.3e00,0x3030.3733,0x3b00.0000,0x0303.0337,0x1e00.0000,0x3f30.1f03,0x1e06.0000,0x1c06.0606,0x3300.0000,0x1e33.3333,0x7300.0000,0x3c32.3333,0x6d00.0000,0x7c6f.6d6d,0x3300.0000,0x3333.1e33,0x3333.0000,0x1e36.303e,0x1f00.0000,0x1f06.0c18,0x0c0c.0c3c,0x3c0c.0c0c,0x180c.0c00,0x0030.3018,0x3030.303c,0x3c30.3030,0x0036.1c08,0x0000.0000,0x0000.0000,0x3f3f.0000,0x0000.180c,0x0000.0000,0x7f63.633e,0x6363.6363,0x3f63.633f,0x3b63.6363,0x0303.637e,0x7e63.0303,0x6363.633f,0x7b63.6363,0x3f03.637e,0x7e63.0303,0x3f03.637e,0x0303.0303,0x7b03.637e,0x7e63.6363,0x7f63.6363,0x6363.6363,0x0c0c.0c3f,0x3f0c.0c0c,0x6060.6070,0x7f63.6060,0x1b33.6363,0x6363.672f,0x0303.0303,0x7f63.0303,0x6b7f.7763,0x6363.6363,0x7b6f.6763,0x6363.6373,0x6363.633e,0x3e63.6363,0x6363.633e,0x0303.033b,0x6363.633e,0x603e.7b6f,0x6363.633f,0x6363.633b,0x3f03.333e,0x7f63.6060,0x1818.5b7f,0x1818.1818,0x6363.6363,0x3e63.6363,0x6363.6363,0x1c36.6363,0x6363.6363,0x6377.7f6b,0x1c22.6363,0x6363.6336,0x3763.6363,0x0c0c.0c1e,0x1830.637f,0x7f63.060c,0x180c.0c38,0x380c.0c18,0x0c0c.0c0c,0x0c0c.0c0c,0x1830.301c,0x1c30.3018,0x6f06.0000,0x0000.307b,0x361c.0000,0x0000.1c36,0x7f7f.7f3e,0x3e7f.7f7f,0x552a.552a,0x142a.552a,0x6b7f.7763,0x3e36.7f6b,0x4141.7f3e,0x3e7f.7763,0x1144.1104,0x1044.1144,0x7f1c.0808,0x2236.1c3e,0x0000.0000,0x0000.0000,0x7f7f.3600,0x1c3e.3e7f,0x0000.0000,0x0000.0000,0x491c.1c08,0x3614.1c3e,0x6b3e.1c08,0x3636.3e6b,0x6367.6f3e,0x3e6f.6763,0x4949.7f3e,0x3e63.7f7f,0x1070.3010,0x0e1b.1b1e,0x4963.773e,0x3e77.6349,0x7f3e.1c08,0x081c.3e7f,0x0000.0000,0x0000.0000,0x6373.7b3e,0x3e7b.7363,0x0000.0000,0x0000.0000,0x0000.0000,0x0000.0000,0x6377.7f3e,0x3e7f.4141,0x0000.0000,0x0000.0000,0x0000.0000,0x0000.0000,0x776b.6b3e,0x3e6b.6b77"))


--demo
cls(2) color(7)
poke(0x5f58,0x81)
for i=15,180 do
 print(chr(i),i%16*8,i\16*10)
end