Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/floooh/chips
8-bit chip and system emulators in standalone C headers
https://github.com/floooh/chips
Last synced: 1 day ago
JSON representation
8-bit chip and system emulators in standalone C headers
- Host: GitHub
- URL: https://github.com/floooh/chips
- Owner: floooh
- License: zlib
- Created: 2017-11-15T14:34:12.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2025-01-13T11:19:19.000Z (13 days ago)
- Last Synced: 2025-01-17T06:04:01.924Z (9 days ago)
- Language: C
- Homepage:
- Size: 15.2 MB
- Stars: 1,029
- Watchers: 36
- Forks: 79
- Open Issues: 37
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- AwesomeCppGameDev - chips - bit chip and system emulators in standalone C headers (Engines)
README
# chips
[![Build Status](https://github.com/floooh/chips/workflows/build_and_test/badge.svg)](https://github.com/floooh/chips/actions)
A toolbox of 8-bit chip-emulators, helper code and complete embeddable
system emulators in dependency-free C headers (a subset of C99 that
compiles on gcc, clang and cl.exe).Tests and example code is in a separate repo: https://github.com/floooh/chips-test
The example emulators, compiled to WebAssembly: https://floooh.github.io/tiny8bit/
For schematics, manuals and research material, see: https://github.com/floooh/emu-info
The USP of the chip emulators is that they communicate with the outside world through
a 'pin bit mask': A 'tick' function takes an uint64_t as input where the bits
represent the chip's in/out pins, the tick function inspects the pin
bits, computes one tick, and returns a (potentially modified) pin bit mask.A complete emulated computer then more or less just wires those chip emulators
together just like on a breadboard.In reality, most emulators are not quite as 'pure' (as this would affect performance
too much or complicate the emulation): some chip emulators have a small number
of callback functions and the adress decoding in the system emulators often
take shortcuts instead of simulating the actual address decoding chips
(with one exception: the lc80 emulator).