Skip to content

vlady-kotsev/CHIP8_emulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CHIP-8 Emulator

chip8-img
A CHIP-8 emulator implemented in Rust with both native SDL2 and WebAssembly frontends.
Created following An Introduction to Chip-8 Emulation using the Rust Programming Language

Features

  • Complete CHIP-8 instruction set implementation
  • Cross-platform support (Native and Web)
  • Configurable display colors (Native only)
  • Real-time keyboard input
  • Adjustable emulation speed
  • Support for all standard CHIP-8 ROMs

Prerequisites

  • Rust toolchain (cargo, rustc)
  • SDL2 development libraries: Download from here
    On MacOS extract and place the extracted folder in /Library/Frameworks/
  • wasm-pack
  • python3 (to run a server for the web version)

Running

Native

Run in desktop folder: cargo run <path_to_rom> <color>
Color options: red, blue, green, pink

Web

Run in wasm folder:
wasm-pack build --target web && mv pkg/wasm.js ../web/wasm.js && mv pkg/wasm_bg.wasm ../web/wasm_bg.wasm && cd ../web && python3 -m http.server

Technical Details

  • Written in Rust for performance and safety
  • Uses SDL2 for native graphics and input handling
  • WebAssembly support for browser-based emulation

About

Simple chip8 emulator

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published