Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/im-rises/space-invaders-arcade-emulator
Space Invaders Arcade Game Emulator made in Rust 🦀 ported to WebAssembly WebGL and WebAudio
https://github.com/im-rises/space-invaders-arcade-emulator
arcade-game emulator game npm package rust webassembly webgl website
Last synced: about 2 months ago
JSON representation
Space Invaders Arcade Game Emulator made in Rust 🦀 ported to WebAssembly WebGL and WebAudio
- Host: GitHub
- URL: https://github.com/im-rises/space-invaders-arcade-emulator
- Owner: Im-Rises
- License: mit
- Created: 2023-04-16T02:00:16.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-08-26T15:50:58.000Z (over 1 year ago)
- Last Synced: 2024-10-11T22:55:15.954Z (2 months ago)
- Topics: arcade-game, emulator, game, npm, package, rust, webassembly, webgl, website
- Language: Rust
- Homepage: https://im-rises.github.io/space-invaders-arcade-emulator-website/
- Size: 37.1 MB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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](https://im-rises.github.io/space-invaders-arcade-emulator-website/) 🚀🚀
The demo source code is available [here](https://github.com/Im-Rises/space-invaders-arcade-emulator-website) 🚀🚀
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](https://www.npmjs.com/package/space-invaders-arcade-emulator) 🚀🚀
## Images
### Without background
| SV version | TV version | CV version |
|:---------------------------------------------------------------------------------------------------------------------------:|:------------------------------------------------------------------------------------------------------------------------------:|:------------------------------------------------------------------------------------------------------------------------------:|
| ![NOBG_BW](https://github.com/Im-Rises/space-invaders-arcade-emulator/assets/59691442/96276b2a-d75c-4eef-ae76-74624960ba19) | ![NOBG_Color](https://github.com/Im-Rises/space-invaders-arcade-emulator/assets/59691442/32bc3e25-7883-4229-bab3-7bbfae745e9e) | ![NOBG_Geeen](https://github.com/Im-Rises/space-invaders-arcade-emulator/assets/59691442/4ec1df0d-98e5-4327-b25c-da80e6a44470) |### Using background 1
| SV version | TV version | CV version |
|-------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|
| ![BG2_Green](https://github.com/Im-Rises/space-invaders-arcade-emulator/assets/59691442/433a9da2-cdb8-48f8-85b8-9e615766bdf9) | ![BG2_BW](https://github.com/Im-Rises/space-invaders-arcade-emulator/assets/59691442/7a5c9618-9fd6-48a5-81eb-81d5964aa98e) | ![BG2_Color](https://github.com/Im-Rises/space-invaders-arcade-emulator/assets/59691442/39adf0b0-2fe9-488d-a10f-b390c4c1141a) |### Using background 2
| SV version | TV version | CV version |
|----------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|
| ![BG1_BW](https://github.com/Im-Rises/space-invaders-arcade-emulator/assets/59691442/d0a903f4-b92f-48a2-b4d2-f4173be2ce3d) | ![BG1_Green](https://github.com/Im-Rises/space-invaders-arcade-emulator/assets/59691442/7a31f2f5-38ba-4881-894c-bfacc2faf659) | ![BG1_Color](https://github.com/Im-Rises/space-invaders-arcade-emulator/assets/59691442/563ab206-1382-4311-b0b5-76d34b41a0aa) |## 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 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.## GitHub Actions
[![rust](https://github.com/Im-Rises/space_invaders_arcade_emulator/actions/workflows/rust.yml/badge.svg?branch=main)](https://github.com/Im-Rises/space_invaders_arcade_emulator/actions/workflows/rust.yml)
[![rust-clippy analyze](https://github.com/Im-Rises/space_invaders_arcade_emulator/actions/workflows/rust-clippy.yml/badge.svg?branch=main)](https://github.com/Im-Rises/space_invaders_arcade_emulator/actions/workflows/rust-clippy.yml)
[![rustfmt check](https://github.com/Im-Rises/space_invaders_arcade_emulator/actions/workflows/rustfmt.yml/badge.svg?branch=main)](https://github.com/Im-Rises/space_invaders_arcade_emulator/actions/workflows/rustfmt.yml)
[![Wasm CI](https://github.com/Im-Rises/space-invaders-arcade-emulator/actions/workflows/wasm.yml/badge.svg)](https://github.com/Im-Rises/space-invaders-arcade-emulator/actions/workflows/wasm.yml)
[![Wasm NPM Publish](https://github.com/Im-Rises/space-invaders-arcade-emulator/actions/workflows/wasm-npm-publish.yml/badge.svg)](https://github.com/Im-Rises/space-invaders-arcade-emulator/actions/workflows/wasm-npm-publish.yml)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:
Computer Archeology:
Emudev.de:
Rust:
SDL2 Rust:
SDL2 libs download:
rust-clippy:
rustfmt:
Intel 8080 documentations:
Intel 8080 opcodes table:
Wikipedia:
Test Roms for the Intel 8080:
Space Invaders Audio files:
Mozzila Rust to WebAssembly:
wasm-bindgen:
js-sys:
web-sys:
trcf.net:
tobiasvl.github.io:
trcf.net:
eab.abime.net:
ArcadeArtwork:
codepen.io:
## Contributors
Quentin MOREL :
- @Im-Rises
-[![GitHub contributors](https://contrib.rocks/image?repo=Im-Rises/GameBoyEmulator)](https://github.com/Im-Rises/GameBoyEmulator/graphs/contributors)