mainspring
chip8-book
mainspring | chip8-book | |
---|---|---|
1 | 5 | |
12 | 148 | |
- | - | |
6.4 | 3.9 | |
3 months ago | 9 months ago | |
Rust | Rust | |
Apache License 2.0 | Creative Commons Zero v1.0 Universal |
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.
mainspring
-
Interpreter in Rust
First off, awesome, interpreters and emulators are really fun projects. I've written a very similar project which might be useful for reference https://github.com/ncatelli/mainspring. As for parsing to your enum representation KerfuffleV2 gave a great example for nom. That being said, if you'd like to peek behind the curtain a bit for combinators and the principles behind nom, Bodil Stokke has a WONDERFUL tutorial on the topic https://bodil.lol/parser-combinators/ which will be directly applicable to what you are trying to do. Additionally, while targetted at using java, https://craftinginterpreters.com/ by Bob Nystrom is available for free online and covers the topic of writing really simple recursive decent parsers.
chip8-book
-
Could you suggest an open or a public domain platform that is suitable for publishing a book on emulation?
Not to discourage you, but there's already a CHIP-8 book in progress: https://github.com/aquova/chip8-book
-
feboy (DMG GB emulator) now has full audio support! Special thanks to /u/KingWallmo for working on it the last couple months. Suggestions on what feature to add next?
WASM support would be so cool. There are lots of guides online which could help you out. I saw a guide for the chip8 and it didn't even look too difficult, you can check it out here https://github.com/aquova/chip8-book
-
[Rust] Getting into low level programming. How and why does this pattern matching work?
Recently I've decided to learn low level programming with Rust. I asked for some projects to practice and got recommened to make a Chip8 emulator. That sounded fun so I searched a bit and found this guide that walks you step by step.
-
Show HN: How to compile C/C++ for WASM, pure Clang, no libs, no framework
I made some emulators in Rust as a learning project during the start of the pandemic, and ran into the exact same issue when I wanted to make a wasm version to run in a browser. Eventually, I was able to figure out how to do it, although I do use the 'wasm-pack' Cargo package to assist with it (I think you can get away without it if you're really motivated, you just need to set up the targets and other elements yourself). Basically you define some Rust API to expose whatever you need from your project, then that and the project get compiled into one .wasm binary and some (surprisingly readable) JavaScript "glue" gets generated which allows for easy inclusion into a web page. It works well for code in the std, but I've had issues with 3rd party packages.
It's focused on emulation development, but I wrote a document that describes the process I followed: https://github.com/aquova/chip8-book/blob/master/src/wasm.md
-
Advanced programming exercises/apps recommendations to code
I followed [this](https://github.com/aquova/chip8-book) book which uses Rust.
What are some alternatives?
madsim - Magical Deterministic Simulator for distributed systems in Rust.
three-layer - :three: :cake: Architecture of the Haskell web applications
visual-system-simulator - Framework for simulating deficiencies and other aspects of the human visual system
wefx - Basic WASM graphics package to draw to an HTML Canvas using C. In the style of the gfx library
chumsky - Write expressive, high-performance parsers with ease.
Essentials-of-Compilation - A book about compiling Racket and Python to x86-64 assembly
abn6502 - Solving the global IC shortage by reusing old stuff!
cib - clang running in browser (wasm)
wasm-fizzbuzz - WebAssembly from Scratch: From FizzBuzz to DooM.
llvm-project - This is the canonical git mirror of the LLVM subversion repository. The repository does not accept github pull requests at this moment. Please submit your patches at http://reviews.llvm.org.
IronBoy - A Gameboy emulator written in Rust as both a learning exercise and a love letter to the console that got me into gaming.
riscv-rust - RISC-V processor emulator written in Rust+WASM