Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/novara754/space-invaders-emu
A from-scratch emulator for the original Space Invaders arcade game based on the 8080 CPU.
https://github.com/novara754/space-invaders-emu
emulator game rust
Last synced: 24 days ago
JSON representation
A from-scratch emulator for the original Space Invaders arcade game based on the 8080 CPU.
- Host: GitHub
- URL: https://github.com/novara754/space-invaders-emu
- Owner: novara754
- License: mit
- Created: 2022-03-11T17:13:33.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-03-12T18:19:58.000Z (over 2 years ago)
- Last Synced: 2024-01-14T23:13:16.639Z (10 months ago)
- Topics: emulator, game, rust
- Language: Rust
- Homepage:
- Size: 27.3 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Space Invaders
An emulator for the original [Space Invaders](https://en.wikipedia.org/wiki/Space_Invaders) cabinet
based on the [8080 CPU](https://en.wikipedia.org/wiki/Intel_8080).
## Instructions
### Compiling the project
You will need to install [Rust] and [SDL2] in order to compile the emulator.
The GitHub repo for the [SDL2 Rust bindings] details the installation
process.[Rust]: https://www.rust-lang.org/
[SDL2]: https://www.libsdl.org/index.php/
[SDL2 Rust Bindings]: https://github.com/Rust-SDL2/rust-sdl2#sdl20-development-libraries/Once these requirements are fulfilled, the project can be compiled by running
the following command in the project's root directory:
```
$ cargo build --release
```### Running the emulator
This emulator does not ship with the Space Invaders ROM, this will need to be
sourced separately. Typically, this ROM is distributed as a collection of
*.e, *.f, *.g and *.h files. These files will need to be concatenated as
as follows to be used with this emulator (filenames may vary):
```
$ cat invaders.{h,g,f,e} > invaders.rom
```Once the emulator has been compiled and the ROM file has been generated, the
emulator can be invoked as follows:
```
$ ./target/release/emu /path/to/invaders.rom
```### Controls
Once the emulator starts, the game will go into "demo mode". To start the
actual game you need to insert a coin by pressing the C key. This
will start player 1's turn. Player 1 can begin their turn by pressing the
left Ctrl key. Once in the game, the player character can be moved
left and right with A and D respectively. Shooting can
be done with the Space key.## Missing features
- Player 2 controls
- Sound
- Game configuration## License
Licensed under the [MIT License](./LICENSE).