mmsh1 / ch8

simple emulation project

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ch8

This is yet another Chip-8 interpreter with SuperChip instructions support.

Building on Linux

TODO

  • Add XO-Chip support
  • Add debugger
  • Check on Windows

Technical specifications

  • 4 KiB RAM
  • 128x64 pixels in SuperChip8 mode / 64x32 pixels in Chip8 mode
  • 16 8-bit registers
  • 16 keys on keyboard
  • 16 level stack
  • 1 16-bit address register

ROMs

I have a small collection of ROMs that I like. You can download more ROMs here:

http://devernay.free.fr/hacks/chip8/GAMES.zip

http://devernay.free.fr/hacks/chip8/SGAMES.zip

Many real cool games also available here. Note that some of them could be written according to XO-Chip specification that currenly not supported.

https://github.com/JohnEarnest/chip8Archive/tree/master/roms

Keyboard

Original Chip8 had hexadecimal keyboard

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

ch8 maps this keyboard on following layout

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

Screenshots

You can use any pair of colors you want. Just set them in RGB format in sdl_layer_draw function. It located in sdl_layer.c.

Outlaw

CAR

DVN8

Space Invaders

Sources used

[1] Cowgod's Chip-8 Technical Reference v.1.0

http://devernay.free.fr/hacks/chip8/C8TECH10.HTM

[2] How to write an emulator (CHIP-8 interpreter)

http://www.multigesture.net/articles/how-to-write-an-emulator-chip-8-interpreter/

[3] r/EmuDev

https://www.reddit.com/r/EmuDev/

[4] Notes on Chip-8 and SuperChip implementation

http://devernay.free.fr/hacks/chip8/schip.txt

[5] Some useful information about SuperChip

https://courses.ece.cornell.edu/ece5990/ECE5725_Fall2016_Projects/Lab_group_bcp39_rk534/cpu.html

[6] Useful information about all possible quirks

https://github.com/Chromatophore/HP48-Superchip

[7] Cowgod's opcode list

http://devernay.free.fr/hacks/chip8/chip8.html

About

simple emulation project


Languages

Language:C 98.5%Language:Makefile 1.5%