/Ace-chip8-Emulator

Another Chip8 Emulator(ACE) made using Rust

Primary LanguageRust

ACE(Another Chip8 Emulator)


ace ace
ACE(Another Chip8 Emulator)

This is a chip8 emulator created using Rust programming Language. It's purpose is to learn Rust at the same time, graphic API's and GUI libraries. I am planning to add JIT, Vulkan support and WEBGPU support in the future.

Setup Emulator

  1. Download the emulator
  2. Unzip it
  3. Edit config/config.ini
  4. Launch the emulator from the folder with arguments ./ace_cli [GAME LOC]
    You can also change the config file location and execute it using ./ace-cli [GAME LOC] [CONFIG LOC]

Config.ini

It handles basic settings in code. It handles basic settings in code. Run the emulator once to create it.(In config folder in project repo)

[Theme]
bg = 3 //Sets background Colour
fg = 4 //Sets Foreground Colour

[Hack]
delay = 100 //Sets delay
clock = 700 //Sets clock speed(700 is the optimal. Recommended range 500 - 1000)

[Screen]
scale = 10 //Sets scaling

[Audio]
enable = true //Sets Audio

[Shader] //To Specify Shader Location
v_shader = config/shader/triangle.vert
f_shader = config/shader/triangle.frag
  1. Red 1. Green 2. Blue 3. Black 4. White 5. Light Pink 6. Light Blue 7. Blue Violet 8. Yellow 9. Lawn Green

Things to be Done

  • Boot Games
  • Add OpenGL Backend
  • Add Audio Support
  • Add Keyboard Support
  • Emulate VM
  • Add Vulkan Backend
  • Add wgpu Backend
  • Add dynamic(jit) recompiler
  • Add a intermediate GUI library

Imperfections in Code

  • Find the bad or missing instruction(causing troubles in INVADERS)
  • Hunt the bug that causes stack overflow in Invaders