0.1.2 • Published 9 months ago

space-invaders-arcade-emulator v0.1.2

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

space-invaders-arcade-emulator

Description

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 🚀🚀

Images

Without background

SV versionTV versionCV version
NOBG_BWNOBG_ColorNOBG_Geeen

Using background 1

SV versionTV versionCV version
BG2_GreenBG2_BWBG2_Color

Using background 2

SV versionTV versionCV version
BG1_BWBG1_GreenBG1_Color

Videos

https://user-images.githubusercontent.com/59691442/183045566-0a3df947-06e7-4c46-9fc6-9d2b8f7d9a46.mp4

Controls

You can use the keyboard to play the game.

Arcade buttonsEmulator/Keyboard
Insert coinC
P1 startSpace
P1 shoot
P1 ←
P1 →
P2 startG
P2 shootE
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.

GitHub Actions

rust rust-clippy analyze rustfmt check Wasm CI Wasm NPM Publish

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.

Documentation

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

Contributors

Quentin MOREL :

GitHub contributors

0.1.2

9 months ago

0.1.1

9 months ago

0.1.0

9 months ago