Skip to content

Ox-Projects/Oxide

Repository files navigation

Oxide
A modern CHIP-8 emulator written in Rust

Oxide is a modular CHIP-8 emulator written in Rust with an egui/eframe interface, multilingual support, debugging tools, configurable input/video/audio settings, and a polished desktop experience.

It is compatible with Windows, macOS, and Linux.

🎯 Project Goal :

This project aims to learn and practice the Rust programming language through a concrete use case: building a CHIP-8 emulator.

It helps to understand key Rust concepts (memory management, structs, ownership, etc.) while also introducing the fundamentals of emulator development, such as the instruction cycle, input/output handling, and graphics rendering.

Beyond simply recreating a basic emulator, the objective is also to design a modern CHIP-8 emulator that includes features and interfaces inspired by contemporary emulators. This includes a user-friendly interface, debugging tools, configurable controls, save states, multilingual support, theme customization, and a polished startup flow.

The goal is to provide a solid foundation for both mastering Rust and understanding how emulators work, making it easier to build similar projects for other systems in the future.

To view the project roadmap : ROADMAP.md

Compatibility :


Windows 11, Linux and macOS

Emulator :

Gallery :

Space Invaders Snake
Tetris Pong

Features :

  • 🎮 Full CHIP-8 CPU (35 opcodes) with configurable quirks (CHIP-8, CHIP-48, SUPER-CHIP)
  • 🖥️ 64×32 pixel display with 1x–5x scaling, fullscreen, and VSync support
  • 🔊 Audio buzzer with volume control
  • 🕹️ Keyboard, mouse and gamepad support (gilrs)
  • 💾 Save/Load states (3 slots per ROM)
  • 🌍 12 languages (EN, FR, ES, IT, DE, PT, RU, ZH, JA, KO, AR, HI)
  • 🎨 Three themes: Kiwano, Dark, and Light
  • ✨ Animated splash screen with logo and version display
  • 🔧 Configurable controls and keyboard shortcuts
  • 🖥️ Debug terminal with search, export and live diagnostics
  • 🪟 Detached Settings and Debug Terminal windows
  • 🔒 Windows single-instance protection
  • 📚 Technical documentation and GitHub wiki

Getting Started :

  1. Download the latest release for your OS
  2. Extract the zip
  3. Run Oxide.exe (or build from source)
  4. Click Game → Load game and select a .ch8, .rom, or .bin file

Run from source

cargo run

Build a release binary

cargo build --release

Controls :

The CHIP-8 uses a 16-key hexadecimal keypad mapped to your keyboard by default :

1 2 3 C
4 5 6 D
7 8 9 E
A 0 B F

All bindings are fully configurable in Settings → Controls.

Common defaults:

  • O: Load game
  • P: Pause / Resume
  • R: Reset ROM
  • Esc: Stop emulation
  • F11: Fullscreen
  • F1-F3: Save state slots 1-3
  • F5-F7: Load state slots 1-3

Documentation :

Built With :

License :

MIT