binjgb
sokol
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.
binjgb
-
McDonald's Just Dropped a Brand New Game Boy Game in 2023
This is using my gameboy emulator, binjgb[0], on the website! (well one of my gameboy emulators, heh [1][2]) It's been used as the emulator for GB Studio for a little while now, but I don't know how often people embed it in their websites, so it's really cool to see.
[0] https://github.com/binji/binjgb
-
I added a "rewind mode" to my emulator (gem)
Nice work, looks great! I wrote a blog post about the way I did mine a few years back: https://binji.github.io/posts/binjgb-rewind/. You can play with the web version at https://binji.github.io/binjgb/. Reading it back, I was pretty concerned about keeping the size down, but also on reducing dependencies, so I spent a lot of time trying to have a fancy circular buffer.
-
Smolnes: A NES Emulator In
Big fan of this author's work.
They have a Gameboy emulator written in C, which can be compiled to WASM and run in the browser.
https://github.com/binji/binjgb
I learned a lot from the code.
Also I love this project with a bunch of demos in hand-written WebAssembly Text (WAT) format, which is like low-level Lisp that works only with raw memory, numbers, and minimal syntax.
https://github.com/binji/raw-wasm
Then I discovered the same author is quite active in the WebAssembly ecosystem, including specs and tooling. Fascinating stuff!
https://github.com/WebAssembly/spec
https://github.com/WebAssembly/wabt
- Ask HN: What's the best source code you've read?
-
Infinite Mac: An Instant-Booting Quadra in the Browser
Recently I fell into a wormhole, or rather time sink, playing with a Gameboy emulator that runs in the browser.
https://github.com/binji/binjgb
There's something so satisfying about a virtual machine that fits in a ~106K WASM file, that can play hundreds of classic games like Teris and Super Mario Bros (via ROM collections on Internet Archive). I don't usually play games, but this emulator is so cute and fun, I keep coming back to waste time on it.
Actually, PICO-8 was the last time I felt this kind of child-like joy about a computer.
I get a similar feeling from this Infinite Mac project.
https://github.com/mihaip/infinite-mac
It's so pleasing to see a running Macintosh in the browser. That interface feels like an old friend. The underlying VM, BasiliskII, is a little less than 1MB WASM file. Amazing!
From the entertaining article, I learned about "retrocomputing". OK, so that's what I'm into, haha.
-
Hello World - gameboy music cartridge
Want to create Your own music cartridge (no problem :) You can use our lsdpack-kit constructor. Multiple rom support. But keep in mind that this is still in development.Custom styled HTML emulator based on binjgb could be found here.
sokol
- STB: Single-file public domain libraries for C/C++
-
Container2wasm: Convert Containers to WASM Blobs
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
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
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
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
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
-
How can i play .wav file with C ?
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?
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
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?
Peanut-GB - A Game Boy (DMG) emulator single header library written in C99. Performance is prioritised over accuracy.
bgfx - Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
SkyEmu - Game Boy Advance, Game Boy, Game Boy Color, and DS Emulator
raylib - A simple and easy-to-use library to enjoy videogames programming
jitboy - A Game Boy emulator with dynamic recompilation (JIT)
tinyrenderer - A brief computer graphics / rendering course
lsdpack-kit
LearnOpenGL - Code repository of all OpenGL chapters from the book and its accompanying website https://learnopengl.com
helloworld - Custom binjgb Game Boy emulator with music rom
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
8086tiny - Official repository for 8086tiny: a tiny PC emulator/virtual machine
nanovg - Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations.