Skip to content

Phidelux/chip8emu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

 ______ _______ _______ ______ ______ _______ _______ _______
|      |   |   |_     _|   __ \  __  |    ___|   |   |   |   |
|   ---|       |_|   |_|    __/  __  |    ___|       |   |   |
|______|___|___|_______|___|  |______|_______|__|_|__|_______|


Chip8Emu is a simple chip8 emulator written in C++ and SDL2!

This is a work in progress project, so some features documented here, to be exact - all command line parameters - do not work yet. To get started, download the emulator

git clone https://github.com/Phidelux/chip8emu.git

and build it by running 'make'. You can now start the emulator with:

./bin/chip8emu <path-to-rom>

While playing a game, you can disable speed trottle with SPACE, safe the current state with F8, take snapshots by hitting F9, toggle fullscreen mode using F10 and close the window with ESC. If there are saved emulator states, the latest saved state will be loaded automatically. All other features will get implemented soon.

For hardware documentation, visit:
https://en.wikipedia.org/wiki/CHIP-8

For games, demos and programs, visit:
http://chip8.com

Latest version can be found in:
https://github.com/phidelux/chip8emu/

# Keys & Information:

Chip8            PC Keys
----------------------------
NUM-PAD 1        Keyboard 1
NUM-PAD 2        Keyboard 2
NUM-PAD 3        Keyboard 3
NUM-PAD 4        Keyboard Q
NUM-PAD 5        Keyboard W
NUM-PAD 6        Keyboard E
NUM-PAD 7        Keyboard A
NUM-PAD 8        Keyboard S
NUM-PAD 9        Keyboard D
NUM-PAD 0        Keyboard X
KEY A            Keyboard Y
KEY B            Keyboard C
KEY C            Keyboard 4
KEY D            Keyboard R
KEY E            Keyboard F
KEY F            Keyboard V
----------------------------

ESC    Closes the window and exits
F8     Saves the current gamestate as "chip8_<game>_<number>.bak"
F9     Saves a screenshot as "snap_<game>_<number>.bmp"
F10    Toggles between fullscreen and windowed mode.
SPACE  Disables speed throttle when hold.

# Command Line Interface

Usage:

  chip8emu [Options] <rom>

Options:

  -nostate               Discard state data (default)
  -state tetris.bak      Load/Save state file
  -nosound               Disable sound
  -colorlight 0xFFFFFF   Light Color
  -colordark 0x000000    Dark Color
  -windowed              Display in window (default)
  -fullscreen            Display in fullscreen
  -zoom n                Zoom display: 1 to 20 (def 10)
  -logmem                Dumps the memory state
  -loglcd                Logs the pixel buffer state

# Dependencies

 - SDL2
 - SDL2_image
 - SDL2_mixer

# Apache License v2.0

Copyright 2016 Phidelux <info@bornageek.com>

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

About

Chip8Emu is a simple chip8 emulator written in C++ and SDL2

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published