HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
fdivitto
FabGL
C++2019–2025
fdivitto / FabGL

FabGL

ESP32 Display Controller (VGA, PAL/NTSC Color Composite, SSD1306, ST7789, ILI9341), PS/2 Mouse and Keyboard Controller, Graphics Library, Sound Engine, Game Engine and ANSI/VT Terminal

7Distinct people
14Mentions
0Explicit recommenders
1.7KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

ESP32 Display Controller (VGA, PAL/NTSC Color Composite, SSD1306, ST7789, ILI9341), PS/2 Mouse and Keyboard Controller, Graphics Library, Sound Engine, Game Engine and ANSI/VT Terminal

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 12:45:45 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year14 dated mentions

Observed mentions: 2019-04-23 08:31:05 UTC to 2025-01-22 19:30:49 UTC.

0123452019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 5 mentions; 2 submissions, 3 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC523
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC312
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC202
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC101
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC000
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC202
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC101

What Hacker News says

2 sources
So did the other member of the "trinity", the TRS-80 model I. My mental picture is that the kind of display controller I'd like to build is about two large breadboards stuffed with 54xx chips. Such a thing is a bit simpler than a minimal CPU but not that much simpler because you need the stuff to interface with memory. I'd probably want to buy an oscilloscope and/or logic analyzer but maybe I could run it slow and use an AVR-8 Arduino to run test sequences. Almost everybody who builds throwback computers today uses either an FPGA or a microcontroller for the display controller. For instance https://github.com/fdivitto/FabGL is a highly flexible controller implemented for the ESP32 which can do tile-based graphics and sprites for games but also emulate an ANSI terminal. This is used in this SBC https://www.olimex.com/Products/Retro-Com
Read the rest
puters/AgonLight2/o... which I am going to highly recommend because this machine is compatible with the old Z80 machines but has a real 24 bit mode with 24 bit registers and also performs an order of magnitude better than any Z80 machine did back in the day. Modern systems usually avoid the unified memory model that was popular back in the day but that also usually held back the performance of the CPU because one way or another the VDC was stealing cycles. The AgonLight board communicates with the display controller through a serial port, for instance. This thing http://www.commanderx16.com/ has a memory mapped register for the address in video RAM the CPU wants to read/write and another for the data. The address register will auto-increment when access the data register so you can read or write video RAM at high speed just by repeatedly accessing the data register. The CX-16 uses an FPGA as a display controller https://github.com/X16Community/x16-docs/blob/master/X16%20R...
In Apple II graphics: More than you wanted to know

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.