Space Invaders arcade game emulator written in Rust for the web.
Complete Emulator of the Intel 8080, the app is implemented to run the Space Invaders Arcade game.
ππYou can try it online from your browser ππ
The demo source code is available here ππ
The game is implemented with all the 10 sounds of the original game and can be played in black and white or in color ( SV), normal screen mode (TV) or in colored mode (CV).
ππ The package is available on npm ππ
SV version | TV version | CV version |
---|---|---|
SV version | TV version | CV version |
---|---|---|
SV version | TV version | CV version |
---|---|---|
space_invaders-video.mp4
You can use the keyboard to play the game.
Arcade buttons | Emulator/Keyboard |
---|---|
Insert coin | C |
P1 start | Space |
P1 shoot | β |
P1 β | β |
P1 β | β |
P2 start | G |
P2 shoot | E |
P2 β | S |
P2 β | F |
The original game is mapped with some inputs that allow the constructor to choose the difficulty. This allows you to increase the numer of lives and change the extra ship necessity points. To change those settings check the checkboxes before starting the game.
The project is set with a set of different scripts:
- Rust : Build the project in native mode and run the unit tests.
- rust-clippy analyze : Evaluate the code quality (error, warnings, etc...).
- rustfmt check : Check the code good formatting
- Wasm CI : Build the project in wasm mode.
- Wasm NPM Publish : Build the project in wasm mode and publish it on npm.
emulator101:
http://www.emulator101.com
Computer Archeology:
https://www.computerarcheology.com/Arcade/SpaceInvaders/Hardware.html
Emudev.de:
https://emudev.de/q00-si/a-short-fun-project/
Rust:
https://doc.rust-lang.org/book
SDL2 Rust:
https://github.com/Rust-SDL2/rust-sdl2
SDL2 libs download:
https://www.libsdl.org/download-2.0.php
https://github.com/libsdl-org/SDL_mixer/releases
rust-clippy:
https://github.com/rust-lang/rust-clippy
rustfmt:
https://github.com/rust-lang/rustfmt
Intel 8080 documentations:
https://archive.org/details/8080Datasheet
https://altairclone.com/downloads/manuals/8080%20Programmers%20Manual.pdf
http://bitsavers.org/components/intel/MCS80/9800301D_8080_8085_Assembly_Language_Programming_Manual_May81.pdf
Intel 8080 opcodes table:
https://www.pastraiser.com/cpu/i8080/i8080_opcodes.html
Wikipedia:
https://en.wikipedia.org/wiki/Intel_8080
Test Roms for the Intel 8080:
https://github.com/superzazu/8080/
https://altairclone.com/downloads/cpu_tests/
http://www.emulator101.com/full-8080-emulation.html
Space Invaders Audio files:
https://samples.mameworld.info
https://www.classicgaming.cc/classics/space-invaders/sounds
Mozzila Rust to WebAssembly:
https://developer.mozilla.org/en-US/docs/WebAssembly/Rust_to_wasm
wasm-bindgen:
https://rustwasm.github.io/docs/wasm-bindgen/
js-sys:
https://docs.rs/js-sys/latest/js_sys/
web-sys:
https://docs.rs/web-sys/latest/web_sys/
trcf.net:
https://tcrf.net/Space_Invaders_(Arcade)
tobiasvl.github.io:
https://tobiasvl.github.io/blog/space-invaders/
trcf.net:
https://tcrf.net/Space_Invaders_(Arcade)
eab.abime.net:
https://eab.abime.net/showthread.php?t=105132&page=2
ArcadeArtwork:
https://www.arcadeartwork.org/index.php?%2Fcategory%2F57
codepen.io:
https://codepen.io/DanielWeiner/pen/naybVd
Quentin MOREL :
- @Im-Rises
- https://github.com/Im-Rises