HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
floooh
chips-test
C2018–2026
floooh / chips-test

chips-test

Tests and sample code for https://github.com/floooh/chips

2Distinct people
8Mentions
0Explicit recommenders
547GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Tests and sample code for https://github.com/floooh/chips

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

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:03:16 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 year8 dated mentions

Observed mentions: 2018-06-28 07:49:02 UTC to 2026-07-13 09:10:00 UTC.

01232018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 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): 0 mentions; 0 submissions, 0 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

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
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC202
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC000
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC000
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC303
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC000
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 UTC000
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC101
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC202

What Hacker News says

8 sources
The actual emulator code lives here (all in STB-style headers): https://github.com/floooh/chips The chips-test repo has the 'integration' code which assembles the headers into executables: https://github.com/floooh/chips-test There's also a similar project in Zig (but less complete, it's more like an experiment what the same implementation ideas would look like in Zig) that might be a bit more readable and with everything in one place: https://github.com/floooh/chipz E.g. start reading the top-level emulator executables: https://github.com/floooh/chipz/tree/main/emus ...and then move your way down to the system implementations: https://github.com/floooh/chipz/tree/main/src/systems ...and finally to the chip emulators: https://github.com/floooh/chipz/tree/main/src/chips
In Tiny Emulators
Browsing the repo linked on the page: https://github.com/floooh/chips-test I see references to files in a "chips" directory. For example "chips/m6502.h". But those are missing? Where can they be found? Like the concept! Reminds me somewhat of simulating a design in a hardware description language (eg. Verilator). Or the concept of 'drivers' in MAME (dunno if those emulate cycle-by-cycle btw). So I'd welcome the opportunity to dive into how it's done on a code level.
In Tiny Emulators
Unless it's an arcade machine like Bombjack which has two Z80s and three AY sound chips ;) It's still possible to wrap all that as nested state in a single global, and it works just fine: https://github.com/floooh/chips-test/blob/613dbfe907104f4110... That's a single mutable global with all application state, but inside that global are nested structs and the code working on those structs takes essentially a 'this' pointer. This approach works well since it enforces a strictly hierarchical code and data structure with a single root-struct (and also a single root-source-file) at the top.
In I Like and Use Global Variables
I tinkered a bit with sixel support for my "C64 emulator in the terminal" (https://github.com/floooh/docker-c64), but unfortunately it's way too slow to get anywhere near 'realtime' output (30fps or better). Here's the (abandondend) sixel-version source code, only with two colors, more color planes would drastically reduce the performance. https://github.com/floooh/chips-test/blob/master/examples/as... I really wish there was a decent pixel-framebuffer standard for terminals (with at least the same performance as ncurses). This would allow a lot of fun "terminal applications" (e.g. everything that used to run in VGA Mode 13h).
In Show HN: Sixel-tmux displays graphics even if your terminal has no Sixel support
As far as I know not in a central place, but almost every popular home computer has extensive test suites which test emulator behaviour down to the clock cycle against how the real hardware behaves. For instance the Wolfgang Lorenz test suite for the C64 is almost legendary and quite hard to completely pass (this reproduces the behaviour of Wolfgang Lorenz's C64, but not necessarily of other C64s with different chip revisions): https://github.com/floooh/chips-test/tree/master/tests/tests... Most of those tests have been written in the 90's, so they are now historic artefacts themselves which need to be carefully preserved.
In Miniretro: Testing Emulators at Scale
I was hoping this would provide framebuffer-like functionality in the terminal window instead of "just" a way to apply image posteffects. A proper pixel framebuffer terminal standard fast enough to be updated at refresh rate would allow a lot of interesting terminal applications which would live somewhere between Curses UIs and "proper" UI applications which require a whole window system! Current "render pixels to the terminal" standards like iTerm2's ability to display images, or the "Sixels" standard are unfortunately too slow to render colored images at display refresh rate (Sixels is just barely fast enough to render two colors). I've been playing around with running home computer emulators in terminal windows (for instance here's a "C64 in Docker" limited to rendering characters: https://github.com/floooh/docker-c64), imagine if this
Read the rest
could run with actual pixel graphics in terminal windows :) PS: here's an abondend attempt to render the C64 framebuffer via Sixels (too slow unfortunately to be practical): https://github.com/floooh/chips-test/blob/master/examples/as...
In Pixel Shaders in Windows Terminal
Huh? Weird, it works on Windows and Mac for me (Alt-Tab on both, and Ctrl PageUp/Down on Windows, no such keys on my Mac keyboard to test though). I had to consume the browser key events in order to catch the function keys for the emulator (e.g. Chrome uses F1 on Windows for showing the help, but F1 is also needed in the emulators), maybe you're seeing a side-effect of this. Feel free to write a ticket here with reproduction steps: https://github.com/floooh/chips-test/issues
In Colour Clash: The Engineering Miracle of the Sinclair ZX Spectrum

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.