A Chip-8 Emulator written in Rust & SDL2

Overview

Crab-8

A fully featured Chip-8 Emulator written in Rust.

This project was written as a learning & development project in rust, and as such the code may not be the most idiomatic rust. PR's with improvements welcome :).

All opcodes, sound, delay and keyboard are implemented.

Usage

Usage: crab-8 [OPTIONS] <PATH>

Arguments:
  <PATH>  Path to the chip-8 rom that you want to run

Options:
  -d, --debug     Display debug output when running a chip-8 rom
  -f, --fg <FG>   Set the color in hex (e.g #FF0000) for pixels that are on
  -b, --bg <BG>   Set the color in hex (e.g #00FF00) for pixels that are off
  -e, --eti-mode  Start the emulator in ETI 660 Mode
  -h, --help      Print help information
  -V, --version   Print version information

Keyboard

Original

1 2 3 C
4 5 6 D
7 8 9 E
A 0 B F

Keyboard Mapping

1 2 3 4
Q W E R
A S D F
Z X C V

Reference Material

You might also like...
A CHIP-8 emulator/interpreter in Rust
A CHIP-8 emulator/interpreter in Rust

rchip8 A CHIP-8 emulator/interpreter in Rust To run the emulator just type "cargo run -- -d". It will run a simple inline program in main. Commandlin

My attempt at making a chip-8 emulator

ate-chip My attempt at making a chip-8 emulator Credits Here are some of the things that I used for reference while building this http://devernay.free

Emulator of CHIP-8

CHIP-8-Emulator This emulator supports CHIP-8 and SUPERCHIP games. Installation Since Sdl2 is used, you'll need the Sdl2 runtime library for you syste

A CHIP-8 emulator

Ruschip - A CHIP-8 Emulator written in Rust Features Supports multiple CHIP-8 variants (planned not added) Supports most--if not all--of the quirks, a

SDL2 bindings for Rust

Rust-SDL2 Bindings for SDL2 in Rust Changelog for 0.35.0 Overview Rust-SDL2 is a library for talking to the new SDL2.0 libraries from Rust. Low-level

Nes-emulator - A NES emulator made to learn the Rust programming language

nes-emulator Building $ rustc --version rustc 1.32.0 (9fda7c223 2019-01-16) $ cargo --version cargo 1.32.0 (8610973aa 2019-01-02) $ cargo build --rel

Rust library for handling CHIP-8 configuration options

octopt octopt is a library for handling CHIP-8 configuration settings. It contains Rust data structures that aim to represent all possible CHIP-8 opti

CHIP-8 implementation in Rust targeting AVR microcontrollers
CHIP-8 implementation in Rust targeting AVR microcontrollers

CHIP-8 implementation for a very simple breadboard toy This is a CHIP-8 virtual machine implementation running on AVR. Its big party trick is that it

NES emulator written in Rust to learn Rust

OxideNES A NES emulator in Rust. CPU should be accurate, PPU is mostly accurate, timing between the 2 is off for some corner cases and hardware qui

Owner
Harry Smith
Hey, I'm Harry! I'm a new developer learning full stack development and making exciting projects along the way.
Harry Smith
CHIP-8 emulator written in Rust

CHIP-8 emulator written in Rust. This is intended to be a project for gaining experience writing emulators and practice Rust.

Pedro Rodrigues 4 May 21, 2021
A CHIP-8 emulator written in Rust

damn8 A CHIP-8 emulator written in Rust To run, pass a path to a rom in the command line. TODO: Use function pointers to handle opcodes instead of a l

null 1 Jan 11, 2022
CHIP-8 emulator written in Rust as a side project.

marisa-rs a CHIP-8 emulator, with learning purposes in mind, written in Rust. this is mainly a learning project of mine for deeper knowledge in emulat

Lumine 0 Jul 26, 2022
A CHIP-8 emulator written in Rust

chip8 A CHIP-8 emulator written in Rust Goal The goal of this project is to build a fully functional emulator (but I should name it an interpreter) of

Fabian Vilers 2 Jun 30, 2022
A CHIP-8 emulator written in Rust 🦀

A Rusty CHIP-8 Emulator CHIP-8 is an interpreted programming language, developed by Joseph Weisbecker. It was initially used on the COSMAC VIP and Tel

Varun Shenoy 2 Aug 15, 2022
A simple CHIP-8 emulator written in Rust.

CHIP-8 emulator This is a small learning project to get familiar with emulator development, the Rust programming language and the SDL2 library. Discla

null 3 Aug 31, 2022
CHIP-8 emulator written in Rust 🦀!

CHIP-Ahoyto ?? CHIP-8 emulator written in Rust ?? . The goal of this project is purely experimental and a learning tool for rust. The work of this emu

João Magalhães 3 Dec 15, 2022
A CHIP-8 emulator for Rust in ~350 LOC

chip8 An implementation of the CHIP-8 for Rust in ~350 lines of code. What is CHIP-8? CHIP-8 is a virtual machine (along with a supporting programming

Daniel Gatis 8 Apr 23, 2022
A CHIP-8 emulator in Rust with iced-powered GUI

CHIP-8 Emulator in Rust A CHIP-8 emulator written in Rust and iced-powered GUI. All 34 CHIP-8 instructions (SUPER CHIP instructions are not supported)

Yuto Takahashi 6 Dec 27, 2022
CHIP-8 emulator/interpreter in Rust

rCHIP-8 A CHIP-8 interpreter/emulator written in Rust. Currently the interpreter only runs on UNIX terminals because of the method used to control the

Ian Knight 4 Feb 13, 2023