10BC0 GitHub - alpine-algo/c8emu: CHIP-8 Emulator Written in Rust · GitHub
[go: up one dir, main page]

Skip to content

alpine-algo/c8emu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CHIP-8 Emulator (Rust + Iced)

A robust, high-performance CHIP-8 emulator written in Rust using the Iced GUI library. This project implements the full CHIP-8 specification, including all 35 standard opcodes, 60Hz timers, and a 64x32 monochrome display.

CHIP-8 Emulator Screenshot

Features

  • Full Instruction Set: Complete implementation of all CHIP-8 opcodes.
  • Accurate Timing: 60Hz timer ticks and ~600Hz CPU cycle speed.
  • Modern GUI: Clean interface for loading ROMs and viewing the display.
  • Keyboard Mapping: Intuitive mapping for the original 16-key hex keypad.

Getting Started

Prerequisites

  • Rust (latest stable version)
  • A graphics driver supporting Vulkan or OpenGL.

Installation & Execution

  1. Clone the repository:

    git clone https://github.com/your-username/c8emu.git
    cd c8emu
  2. Run the emulator:

    cargo run --release
  3. Enter the path to a ROM file (e.g., roms/test_opcode.ch8) and click Load.

Keypad Mapping

The original CHIP-8 hex keypad is mapped to your keyboard as follows:

CHIP-8 Keypad Computer Keyboard
1 2 3 C 1 2 3 4
4 5 6 D Q W E R
7 8 9 E A S D F
A 0 B F Z X C V

Troubleshooting

Vulkan Validation Errors (Linux)

If you see wgpu_hal::vulkan validation errors in your terminal on Linux, you can force the OpenGL backend, which is typically more stable for simple 2D applications:

WGPU_BACKEND=gl cargo run

References

License

This project is licensed under the MIT License.

About

CHIP-8 Emulator Written in Rust

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

0