Skip to content

Ox-Projects/Oxide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

130 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

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