An Emulator for The Original 1978 Space Invaders Arcade Machine. Written in C using SDL2 for renderering and imgui for a GUI. The emulator is capable of runnning a few different arcade machines: Space Invaders, Lunar Rescue, Balloon Bomber, Space Invaders pt2, Space Laser and Space Chaser
Space Invaders - invaders.zip | Lunar Rescue - lrescue.zip | Balloon Bomber - ballbomb.zip |
---|---|---|
![]() |
![]() |
![]() |
Space Invaders Pt2 - invadpt2.zip | Space Laser - spclaser.zip | Space Chaser - schaser.zip |
---|---|---|
![]() |
![]() |
![]() |
Both player 1 and player 2 controls are mapped to the same keys.
Key | Desc |
---|---|
1 | Player one start |
2 | Player two start |
Space | Fire |
Left Arrow | Left |
Right Arrow | Right |
3 / C | Insert Coin |
Esc | Toggle Main Menu |
F11 | Full Screen |
P | Pause/Unpause |
I | Spawn Space Ship |
U | Kill Space Ship |
F5 | Save Machine State |
F9 | Load Machine State |
A Windows binary is available for download on the releases page. See: Releases
This project uses the same names for the roms as the MAME project. Roms are loaded from a directory named after their MAME name. eg.
Space-Invaders.exe
invaders\
| - invaders.e
| - invaders.f
| - invaders.g
| - invaders.h
lrescue\
| - lrescue.1
| - lrescue.2
| - lrescue.3
| - lrescue.4
| - lrescue.5
| - lrescue.6
1.) Open the menu using Esc
2.) Select the drop down menu and choose a romset.
The project is built in Visual Studio 2022
- IMGUI v1.91.6 - https://github.com/ocornut/imgui/releases/tag/v1.91.6
- SDL2 v2.30.10 - https://github.com/libsdl-org/SDL/releases/tag/release-2.30.10
- Clone the repo
git clone https://github.com/tommojphillips/Space-Invaders.git
- CD to
lib/
dir
cd Space-Invaders/lib
- Clone
imgui
intolib/
dir
git clone --depth 1 --branch v1.91.6 https://github.com/ocornut/imgui.git
- Clone
imgui-club
intolib/
dir
git clone https://github.com/ocornut/imgui_club.git
-
Download SDL2 VC package
SDL2-devel-X.X.X-VC.zip
(direct download link)- Extract and copy the
include
andlib
folders intoSpace-Invaders/lib/SDL2
you will have to create theSDL2
directory
- Extract and copy the
-
Open
vc\Space-Invaders.sln
in visual studio and build and run
The project directory structure should look like this:
Space-Invaders\
| -- lib\
| | -- i8080\
| | | -- i8080.h
| | | -- i8080.c
| | | -- i8080_mnem.h
| | | -- i8080_mnem.c
| |
| | -- imgui\
| | | -- backends\
| |
| | -- imgui-club\
| | | -- imgui_memory_editor\
| |
| | -- SDL2\
| | -- include\
| | -- lib\
| -- src\
|
| -- vc\
| | -- Space-Invaders.sln
| | -- Space-Invaders.vcxproj