chips VS sokol

Compare chips vs sokol and see what are their differences.

chips

8-bit chip and system emulators in standalone C headers (by floooh)

sokol

minimal cross-platform standalone C headers (by floooh)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
chips sokol
9 38
925 6,355
- -
7.5 9.7
about 1 month ago 5 days ago
C C
zlib License zlib License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

chips

Posts with mentions or reviews of chips. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-28.
  • Zilog Z80 CPU – Modern, free and open source silicon clone
    7 projects | news.ycombinator.com | 28 Apr 2024
    Because it's a software implementation in Verilog which is much closer to a software emulator and has nothing to do with the original Z80 "transistor structure".

    For instance here's the LD A,(DE) "payload":

    https://github.com/rejunity/z80-open-silicon/blob/974c7711b2...

    And here's the equivalent in my software emulator:

    https://github.com/floooh/chips/blob/bd1ecff58337574bb46eba5...

    What's interesting though is that the Verilog implementation doesn't seem to update the internal WZ register, even though there are references to WZ in other places.

    But in the end, if it looks and feels like a Z80 from the outside (e.g. the right pins are active at the right time) the internal implementation doesn't matter all that much.

  • Getting into way too much detail with the Z80 netlist simulation (2021)
    2 projects | news.ycombinator.com | 14 Apr 2024
    Author here, interesting to see this posted since it's more like a reference manual for Z80 instructions with 'unusual' timings. The followup blog post about the cycle-stepped Z80 emulator is probably more interesting:

    https://floooh.github.io/2021/12/17/cycle-stepped-z80.html

    One important note: at the start of the post I'm speculating about why I was seeing some minor differences to a 'real' Z80, it turned out that this speculation was wrong and instead the differences were caused by 'incomplete' netlist simulation code which worked fine for the 6502 but required some tweaks for the Z80, see the comments of this GH issue for details: https://github.com/floooh/v6502r/issues/2.

    As far as I'm aware the netlist simulation now behaves correctly like a Zilog Z80 (but note that reverse engineered Z80 clones like the East German U880 are known to have slightly different undocumented behaviour), and the Z80 emulator in https://github.com/floooh/chips is tested against the netlist simulation for correct behaviour and timing.

  • A world to win: WebAssembly for the rest of us
    4 projects | news.ycombinator.com | 17 Aug 2023
    I simply don't see that there's a big enough difference between traditional garbage collection, refcounting and manual memory management. Each of those can already be implemented in pure WASM, just more or less awkwardly.

    As for "just another ISA", there have been CPUs which had separate call- and data-stacks, with the call-stack living on the CPU and not accessible as regular data. In that sense WASM isn't much different then those esoteric CPUs.

    And even though WASM might not allow free jumps, I yet have to see a noticeable performance difference between WASM and native for this type of "worst case code":

    https://github.com/floooh/chips/blob/f5b6684ff6e899429544b21...

  • Appler: Apple ][ emulator for IBM PC, written in 8088 assembly
    5 projects | news.ycombinator.com | 8 Mar 2023
    Oh my, the 6502 emulation [1] has fewer lines of assembly code than my (code-generated) implementation has lines of C code [2] :D

    Very nice use of a macro assembler though [3], makes the code feel very high level.

    To my defense, the generated code has a lot of redundancies (such as assert(false) which were meant to catch any 'stray cycles' but which are removed in release mode.

    [1] https://github.com/zajo/appler/blob/develop/src/65C02.ASM

    [2] https://github.com/floooh/chips/blob/master/chips/m6502.h

    [3] https://github.com/zajo/appler/blob/52aaa0f768cdf303438cd2c7...

  • Ask HN: What's the best source code you've read?
    46 projects | news.ycombinator.com | 10 Sep 2022
    I don't know if it's the best code I've ever read but this emulation library [0] of 8 bits computers is pretty well written, documented and designed: https://github.com/floooh/chips.

    It's a good way to document old hardware with emulation code.

  • A new cycle-stepped Z80 emulator
    1 project | /r/C_Programming | 23 Dec 2021
  • Tiny Emulators
    1 project | news.ycombinator.com | 23 Nov 2021
    Looks like here's the source code of the emulators:

    8-bit chip and system emulators in standalone C headers - https://github.com/floooh/chips

  • Emulating a Parallel Memory chip at the circuit level:
    2 projects | /r/EmuDev | 17 Oct 2021
    There's a project on GitHub of similar nature -- it has include-able .h files emulating 8-bit computer chips on the pin level, and bus state is also held in a 64-bit value: https://github.com/floooh/chips/blob/master/chips/m6502.h
  • Yet Another Eater Sap1 Is Finished
    2 projects | /r/beneater | 28 Dec 2020
    I wrote also a library of components for some complex chips (like 6502 simulation using https://github.com/floooh/chips)

sokol

Posts with mentions or reviews of sokol. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-06.
  • STB: Single-file public domain libraries for C/C++
    4 projects | news.ycombinator.com | 6 Jan 2024
  • Container2wasm: Convert Containers to WASM Blobs
    16 projects | news.ycombinator.com | 3 Jan 2024
    I'm using Dear ImGui for my cross-platform code (which includes running in browsers):

    - https://floooh.github.io/visual6502remix/

    - https://floooh.github.io/tiny8bit/c64-ui.html

    - (start these samples by clicking on the little "UI" icon) https://floooh.github.io/sokol-html5/

    Platform abstraction is handled through the sokol headers: https://github.com/floooh/sokol

  • New Vulkan Documentation Website
    10 projects | news.ycombinator.com | 11 Oct 2023
    I wonder if using your library (https://github.com/floooh/sokol) instead of OpenGL will alleviate some of these issues for newcomers! There's already a sokol port of the learnopengl.com code (https://github.com/GeertArien/learnopengl-examples), so it shouldn't be too hard to match between the tutorial articles and these.
  • Meta Releases Intermediate Graphics Library
    12 projects | news.ycombinator.com | 7 Jul 2023
    If you're looking for something like this, Sokol is a much simpler alternative:

    https://github.com/floooh/sokol

    It doesn't support vulkan though, but if that's important to you you're probably much better off just using vulkan directly since it's supported on all the major platforms.

  • Why glibc 2.34 removed libpthread
    3 projects | news.ycombinator.com | 2 Jul 2023
    All I can do is give you a couple of Github ticket links where users of my libraries stumbled over the issue (and with different symptoms):

    - https://github.com/floooh/sokol/issues/376

    - https://github.com/floooh/sokol/issues/404

    - https://github.com/floooh/cimgui-sokol-starterkit/issues/6

    We then added a dummy call to a no-op pthread function, so that users can better figure out that they need to use -pthread because now they get a linker error instead of a runtime crash or hang. This has since reduced the 'support overhead' quite a bit:

    - https://github.com/floooh/sokol/pull/456

  • File for Divorce from LLVM
    9 projects | news.ycombinator.com | 29 Jun 2023
    My stuff for instance:

    https://github.com/floooh/sokol

    ...inspired by:

    https://github.com/nothings/stb

    But it's not so much about the build system, but requiring a separate C/C++ compiler toolchain (Rust needs this, Zig currently does not - unless the proposal is implemented).

  • Minimal cross-platform standalone C headers
    1 project | news.ycombinator.com | 12 Jun 2023
  • How can i play .wav file with C ?
    1 project | /r/C_Programming | 1 Jun 2023
    I have never personally used it but I'm pretty sure sokol has an audio library that might be what you are after.
  • Website with Godot?
    3 projects | /r/godot | 11 May 2023
    And I asked floooh for similar thoughts on making a website with sokol here: https://github.com/floooh/sokol/issues/825
  • I want to talk about WebGPU
    15 projects | news.ycombinator.com | 3 May 2023
    It's not Rust and TS, instead C and JS, but Emscripten has a very nice way of integrating C/C++ and JS (you can just embed snippets of Javascript inside C/C++ source files), e.g. starting at this line, there's a couple of embedded Javascript functions which can be called like C functions directly from the "C side":

    https://github.com/floooh/sokol/blob/4535a3b4be59eb912e77e04...

What are some alternatives?

When comparing chips and sokol you can also consider the following projects:

wasm.cljc - Spec compliant WebAssembly compiler, decompiler, and generator

bgfx - Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.

s7-wasm - Example of using s7 Scheme with web assembly and emscripten

raylib - A simple and easy-to-use library to enjoy videogames programming

makaronLab - CPU simulation experiments

tinyrenderer - A brief computer graphics / rendering course

8086tiny - 8086tiny interpreter by Adrian Cable, taken from http://www.megalith.co.uk/8086tiny/

LearnOpenGL - Code repository of all OpenGL chapters from the book and its accompanying website https://learnopengl.com

TypeScript - TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

v - Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation. https://vlang.io

appler - Apple ][ emulator for MS-DOS, written in 8088 assembly

nanovg - Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations.