A Space Invaders emulator written in C++ that emulates the original Intel 8080 arcade hardware. The emulator supports full gameplay including both one-player and two-player modes, accurate CPU behavior, correct video memory decoding, and real-time input through SDL3. Audio has not yet been implemented.
- Full Intel 8080 CPU emulation
- Compatible with the original Space Invaders ROM layout
- SDL3-based rendering and input handling
- One-player and two-player gameplay support
- Correct interrupt and timing behavior
- Authentic monochrome display output
| Action | Key |
|---|---|
| Insert Coin | C |
| Player 1 Start | Enter |
| Player 2 Start | 2 |
| Player 1 Fire | Space |
| Player 1 Move Left | Left Arrow |
| Player 1 Move Right | Right Arrow |
| Player 2 Fire | Left Shift |
| Player 2 Move Left | A |
| Player 2 Move Right | D |
| Tilt | T |
- Visual Studio Code
- C++ compiler supporting C++20
- SDL3
- Space Invaders ROM files
- This project was built and run directly through Visual Studio Code using its built-in Run and Debug functionality, without CMake or external build systems.
- If you get an error, move everything from the dependencies folder into the build folder
Steps:
- Open the project folder in Visual Studio Code
- Ensure the C++ extension and build tools are installed (MSVC or equivalent)
- Configure SDL3 include and library paths in the build configuration
- Press Run or Start Debugging inside VS Code
- Place the ROM files in the expected ROM directory and start the game
- Intel 8080 architectural documentation
- Community Test Roms