# Intel 8080 CPU Emulator

A Go-powered application meant to emulate the Intel 8080 CPU and Space Invaders arcade cabinet architecture
Table of Contents

Highlights

  • Developed an Intel 8080 CPU emulator in Go with SDL-based rendering to recreate classic arcade hardware
  • Implemented complete 8080 instruction set and Space Invaders arcade cabinet architecture emulation
  • Achieved ROM compatibility enabling execution of original Space Invaders arcade binary

Gameplay

Space Invaders In Action!
Space Invaders In Action!

User Input

KeyDescription
CInsert coin
[Space]P1 Start
A/DP1 move Left/Right
WP1 shoot
TTilt machine (Game Over)

Requirements

Install the necessary dependencies based on your operating system:

🖥 MacOS
brew install sdl2{,_image,_mixer,_ttf,_gfx} pkg-config
🐧 Linux (Debian/Ubuntu)
sudo apt install -y libsdl2{,-image,-mixer,-ttf,-gfx}-dev

Build / Run

To build the project, run the make command:

Build
make # This produces the target binary in ./dist

Testing

Running Test ROMS
./build/space-invaders-darwin -test=roms/tests/TST8080.COM
Test Output
Launching...
Running a test ROM - roms/tests/TST8080.COM
loading roms/tests/TST8080.COM
1792 bytes loaded
MICROCOSM ASSOCIATES 8080/8085 CPU DIAGNOSTIC
VERSION 1.0 (C) 1980
CPU IS OPERATIONAL

TODO

  • Add sound
  • Add player 2 support

Resources

  1. https://pastraiser.com//cpu/i8080/i8080_opcodes.html
  2. http://www.classiccmp.org/dunfield/r/8080.txt
  3. http://www.nj7p.org/Manuals/PDFs/Intel/9800301C.pdf
  4. http://kazojc.com/elementy_czynne/IC/INTEL-8080A.pdf

Source Code

Source available at https://github.com/dustinbowers/intel8080emu

My avatar

Thanks for reading my post! Feel free to check out my other posts or contact me via the social links in the footer.


More Projects