ACE(Another Chip8 Emulator)
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
- Download the emulator
- Unzip it
- Edit config/config.ini
- 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
- 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