Code Monkey home page Code Monkey logo

chip-8-emulator's Introduction

CHIP-8-Emulator

This emulator supports CHIP-8 and SUPERCHIP games with the option to use an Arduino Keypad as an input.

Installation

Since Sdl2 is used, you'll need the Sdl2 runtime library next to your executable file.

You can find the executable file either in the releases or can build it with cargo. Make sure to install the dependencies for if using Linux.

Binaries

You can find many binaries here.

Emulate a game

In a terminal, run chip8-emulator path/to/binary.

As of version 2.0 you can just run chip8-emulator and a popup to pick a file will appear.

Before the first run starts, it might take some time for the antivirus-software to check everything. Before the first run, a saves folder is created for quicksaves.

Keyboard Layout

Since all input is in hex, the following keyboard layout is used with (Scancodes for the US keyboard):

1 2 3 4
Q W E R
A S D F
Z X C V

which is interpreted as:

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

Arduino

As an alternative, you can use an Arduino's Keypad as an input. To use one, you have to load the program onto the arduino board. Once it is connected to your PC, the key mapping is the same as shown above.

Keyboard-Shortucts

For the emulator, there are the following Keyboard-Shortcuts:

Shortcut Description
Esc Pauses/Unpauses the game.
F1 Resets speed to 100%.
F2 Increases the emulation speed by 20%.
F3 Decreases the emulation speed by 20%.
F4 Enter/Leaves the cheat mode.
F5 Quicksaves the emulation state (to the saves folder).
F6 Quickloads the newest quicksave (from the saves folder).
F7 Restarts the currently selected game.
F8 Loads a game.
F9 Saves the emulation state.
F10 Loads an emulation state.
F11 Toggles fullscreen.

Cheat Mode

Some games depend on collision detection (like breakout), so in the cheat mode, drawing onto the screen is possible.

The left mouse button turns a pixel on, while the right mouse button turns it off. While drawing the game is paused.

Bugs

If you think you encountered a bug, you can open an issue. Make sure to include a bin/savegame and the OS.

chip-8-emulator's People

Contributors

m1ngxu avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.