Skip to content

minchopaskal/rusty_chip

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rusty_chip

Yet another CHIP-8 emulator.

demo

What

A binary for CHIP-8 emulation. Has:

  • Graphics and sound(beep).
  • Friendly UI
  • Debugging capabilities
    • inspect program counter, stack, RAM, etc.
    • Pause and step instruction by instruction
    • Reset to initial state.
  • Two modes of operation - Play only or Debug.
  • Configurations:
    • Choose between CHIP-8 or Super-CHIP instruction behaviour.
    • Set the CPU clock from 1 to 2000 Hz.
    • Square or circular pixels
    • Grid over square pixels
    • Two ways to reduce flickering - either remove it or fade erased pixels.

How

Written in rust using the bevy game engine which is a massive overkill for such project.

Why

To get my hands dirty with rust and bevy.

Usage

If you don't have rust get the latest version from here https://www.rust-lang.org/

In order to use the emulator just for playing simply:

cargo run --release

If you also want to use it for debuggin you can call it like this:

cargo run debug --release

NOTE for MacOS users:

Bevy uses the wgpu crate as a rendering backend and the current default backend API is Vulkan. This would most probably not work for you so you can change the WGPU_BACKEND environment variable to "metal" located inside .cargo/config.toml.

TODO

Possible improvements would be:

  • Better visuals
    • Reduced flickering - non at all or fading effect
    • Configurable pixel size, color and shape
  • Editable register, PC, RAM, etc. values
  • Integrated text editor for editing and testing chip-8 programs

Dependancies

  • bevy 0.9 - The overkill game engine.
  • bevy_egui - Bevy egui integration. Immidiate mode GUI in the likes of ImGui.
  • bevy_pixel_buffer - Pixel framebuffer with egui and rayon integration.
  • rfd - File dialogs library.

Thanks

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages