Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nukeop/mr-cool-nes
đšī¸ NES emulator
https://github.com/nukeop/mr-cool-nes
emulator nes rust
Last synced: 8 days ago
JSON representation
đšī¸ NES emulator
- Host: GitHub
- URL: https://github.com/nukeop/mr-cool-nes
- Owner: nukeop
- License: agpl-3.0
- Created: 2018-07-12T22:25:20.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-03-20T05:59:15.000Z (over 1 year ago)
- Last Synced: 2024-05-02T02:12:18.064Z (6 months ago)
- Topics: emulator, nes, rust
- Language: Rust
- Homepage:
- Size: 160 KB
- Stars: 10
- Watchers: 3
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# mr-cool-nes ![Travis (.org)](https://img.shields.io/travis/nukeop/mr-cool-nes.svg?style=for-the-badge) [![Codecov](https://img.shields.io/codecov/c/github/codecov/example-python.svg?style=for-the-badge)](https://codecov.io/gh/nukeop/mr-cool-nes)
NES emulator (in development)## Getting started
### Prerequisites
You need Rust and libsdl2-dev. To install it on a Debian-derivative:```bash
$ sudo apt update
$ #Optional dependency that you might or might not have to install
$ sudo apt install libegl1-mesa-dev libgles2-mesa-dev
$ sudo apt install libsdl2-dev
```### Installing
To build the dev version:```bash
$ cargo build
```To run:
```bash
$ RUST_LOG=nes=info,mr_cool_nes=info cargo run
```To build the release version:
```bash
$ cargo build --release --target-x86_64-unknown-linux-gnu
```Replace the target with your platform if you're not on Linux.
## Running the tests
Rust makes this very easy.
```bash
$ cargo test
```## Running roms
You can either use a headless renderer (for tests) or an SDL renderer.
The headless renderer doesn't create a window and emulates the NES without a visible output.To run with the SDL renderer:
```bash
$ RUST_LOG=nes=info,mr_cool_nes=info cargo run -- --rom tests/roms/cpu_exec_space/test_cpu_exec_space_ppuio.nes
```To run with the headless renderer, use the `--headless` flag.
## Contributing
All contributions are welcome. I'm not very good at Rust so if there's something I should be doing better, let me know.
## About
### License
Copyright Š 2018, [nukeop](https://github.com/nukeop).
Released under [Affero GPL License](LICENSE).