Space Invaders arcade emulator implemented using C# / .NET 6.
Core Intel 8080 CPU emulation has been built in NET8080 class libary.
- Git
- .NET 6 SDK
- .NET 7 SDK
- dotnet wasm-tools workload
- NET8080 (included as submodule)
- Space Invaders ROM files (not provided in repo):
- invaders.h
- invaders.g
- invaders.f
- invaders.e
- Space Invaders sound files (not provided in repo)
git clone https://github.com/sfitz42/SpaceInvaders.NET.git --recurse-submodules
dotnet workload install wasm-tools
cd SpaceInvaders.NET
dotnet buildROM and sound files in the WASM port are selected by the user at runtime via upload dialog.
The following ROM files need to be placed inside SpaceInvaders.OpenTK/Roms:
- invaders.h
- invaders.g
- invaders.f
- invaders.e
The following sound files need to be placed inside SpaceInvaders.OpenTK/Sounds:
| File name | Sound Type |
|---|---|
| 0.wav | UFO (looping) |
| 1.wav | Fire |
| 2.wav | Death |
| 3.wav | Hit |
| 4.wav | Fleet Movement 1 |
| 5.wav | Fleet Movement 2 |
| 6.wav | Fleet Movement 3 |
| 7.wav | Fleet Movement 4 |
| 8.wav | UFO Hit |
The OpenTK frontend (OpenGL / OpenAL) can be ran on Windows / MacOS / Linux using the following commands:
cd SpaceInvaders.OpenTK
dotnet runChange display scale (default 1x) by providing the scale argument:
dotnet run -s 2
dotnet run --displayScale 2
Users on Windows will also need to install OpenAL.
The web assembly port has been deployed to Netlify. This can be accessed on the following URL:
https://space-invaders-net.netlify.app
The port can also be ran on a local server by executing the following commands:
cd SpaceInvaders.Web
dotnet run- Computer Archeology - Space Invaders
- superzazu/invaders - Useful for colour mappings
- OpenTK (OpenGL Examples)
- OpenTK (OpenAL Example) - Useful WAV file method