Skip to content

kush1jpeg/NOT_chip8

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

M"""""""`YM MMP"""""YMM M""""""""M    MM'""""'YMM M""MMMMM""MM M""M MM"""""""`YM .d888b. 
M  mmmm.  M M' .mmm. `M Mmmm  mmmM    M' .mmm. `M M  MMMMM  MM M  M MM  mmmmm  M Y8' `8P 
M  MMMMM  M M  MMMMM  M MMMM  MMMM    M  MMMMMooM M         `M M  M M'        .M d8bad8b 
M  MMMMM  M M  MMMMM  M MMMM  MMMM    M  MMMMMMMM M  MMMMM  MM M  M MM  MMMMMMMM 88` `88 
M  MMMMM  M M. `MMM' .M MMMM  MMMM    M. `MMM' .M M  MMMMM  MM M  M MM  MMMMMMMM 8b. .88 
M  MMMMM  M MMb     dMM MMMM  MMMM    MM.     .dM M  MMMMM  MM M  M MM  MMMMMMMM Y88888P 
MMMMMMMMMMM MMMMMMMMMMM MMMMMMMMMM oo MMMMMMMMMMM MMMMMMMMMMMM MMMM MMMMMMMMMMMM         

πŸ“Ό What is CHIP-8 ?

Forget pixels in HD. Forget shaders.

CHIP-8 is a virtual 8-bit machine developed in the late 1970s to run simple games on tiny computers like the COSMAC VIP and HP-48. It’s not real hardware - it’s an interpreter that emulates a machine with:

  • 64Γ—32 monochrome display
  • 16-key hexadecimal keypad
  • 35 opcodes for graphics, math, timers, and input
  • Sound & delay timers ticking at 60Hz

Later on, clever hackers discovered that CHIP-8’s tiny virtual machine could fit inside pocket calculators and minimalistic microcomputers, including some models from HP. Enthusiasts ported interpreters to these devices, running classic CHIP-8 games on calculators

It’s a machine with a legacy, acting as the first project of many computer/emulator enthusiasts,.


βš™οΈ Features

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚          β–‘β–‘β–‘ CHIP-8 CORE FUNCTIONS β–‘β–‘β–‘        β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
  ⚑ OPCODES          : 35 instructions of pure 
β”‚                      8-bit power              β”‚
  ⏱ TIMERS           : 60Hz heartbeat, synced   
β”‚                      like a metronome         β”‚
  ⌨ HEX KEYPAD       : Map your keys to the     
β”‚                      ancient 0x0 β†’ 0xF        β”‚
  🎨 GRAPHICS + SOUND : SDL2 renders, beeps     
β”‚                      at your command          β”‚
  πŸ’Ύ ROM LOADER       : Load classic games and  
β”‚                      relive the 70s           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

DEMO

Pong in action


πŸš€ Running the Emulator

Build

Dependencies:

  • gcc or clang
  • SDL2
git clone https://github.com/kush1jpeg/NOT_chip8.git
cd NOT_chip8
cd chip8
make run

Acknowledgements -

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

https://chip8.gulrak.net/reference/opcodes/

https://slack-files.com/T3CH37TNX-F3RKEUKL4-b05ab4930d

http://mattmik.com/files/chip8/mastering/chip8.html

About

an implementation of the chip8 emulator from scratch in c

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors