Skip to content
/ emu8 Public

[MIRROR] Emulator/Interpreter For CHIP8 written in C and SDL2

License

Notifications You must be signed in to change notification settings

skinatro/emu8

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Emu8

An Emulator/Interpreter for CHIP-8 written in C using SDL2
Github repo is the mirror of Codeberg

Screenshot

Keyboard Mapping

Keyboard CHIP-8
Esc Stop
1 2 3 4 1 2 3 C
Q W E R 4 5 6 D
A S D F 7 8 9 E
Z X C V A 0 B F

Usage

emu8 /path/to/rom.ch8 You can acquire test roms on Timendus's Test Suite

NOTE : The wav file must be named 440.wav and must be in the same directory as the executable/

Building

Dependencies

*Nix

  • make
  • SDL2
  • gcc / clang

Windows

On Windows you have two options, you can either use WSL or Mingw

WSL

Refer the *Nix instructions above

Mingw
  • mingw
  • make
  • SDL2
  • gcc / clang

Compiling

Just run make all to compile, make clean to remove the binaries and make rebuild to clean and compile everything

Note 1: You can pass -j$(nproc) to speed the build process.
Note 2: The binary produced does not has the debug information stripped and is compiled with the -g and -ggdb flags.

Resources

ToDo

Near Future

  • Add Windows Build Instructions
  • Clean Up The Codebase &
    • Also Use SDL_Log Instead Of Printf
    • Use SDL_Open Instead Of fopen() ?
  • Generate The Sound Using SDL (Without Needing to Rely On A WAV)
  • Add OOB Checks
  • Add Config File Support

Future

  • Add Keyboard Re-Mapping
  • Add Debugger
  • Add Support For XO-CHIP, SCHIP, ETC
  • UI Support
  • Pause State

Thanks To

  • Janitor Raus
  • Gulrak
  • cortexauth

License

This software is licensed under the BSD 2-Clause "Simplified" or "FreeBSD" License. You can find the full license text here.

In short, this license allows you to freely use, modify, and redistribute the code for any purpose, commercial or non-commercial, as long as you retain the copyright notices and the license disclaimer in the original source files and any derivative works. You are also obligated to provide a copy of the license text along with the code when redistributing it.

Releases

No releases published

Packages

No packages published