Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ocfbnj/nesemulator
A cross-platform NES emulator in C++.
https://github.com/ocfbnj/nesemulator
cpp emulator nes
Last synced: about 1 month ago
JSON representation
A cross-platform NES emulator in C++.
- Host: GitHub
- URL: https://github.com/ocfbnj/nesemulator
- Owner: ocfbnj
- Created: 2021-05-19T07:34:49.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-06-17T15:57:46.000Z (6 months ago)
- Last Synced: 2024-06-18T16:04:10.288Z (6 months ago)
- Topics: cpp, emulator, nes
- Language: C++
- Homepage:
- Size: 2.63 MB
- Stars: 13
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# NesEmulator
[![CI](https://github.com/ocfbnj/NesEmulator/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/ocfbnj/NesEmulator/actions/workflows/ci.yml)
This is an NES emulator. It implements Mapper0-4, which cover about 80% of iNes rom. The following games have been
tested, other games may or may not work:- Super Mario Bros.
- Battle City
- Contra
- Teenage Mutant Ninja Turtles
- Double Dragon
- Zelda## Usage
~~~bash
./NesEmulator
~~~### Controller
#### Player1
| Button | Mapped to |
| :----: | :-------: |
| A | J |
| B | K |
| Select | Space |
| Start | Enter |
| Up | W |
| Down | S |
| Left | A |
| Right | D |#### Player2
| Button | Mapped to |
| :----: | :---------: |
| A | Num1 |
| B | Num2 |
| Select | Right Shift |
| Start | Num0 |
| Up | Up |
| Down | Down |
| Left | Left |
| Right | Right |#### Other
| Button | Effect |
| :----: | :-----------: |
| R | Reset |
| I | Quick Save |
| L | Quick Restore |## How to build
### Prerequisites
- A compiler supporting C++20.
- Python3 installed.
- CMake installed.### Building with Conan Package Manager
1. Install Conan
~~~bash
pip install conan -U
conan profile detect --force
~~~2. Clone and Build
**Windows**
~~~bash
git clone https://github.com/ocfbnj/NesEmulator.git
cd NesEmulator
conan install . --build=missing
cmake --preset=conan-default
cmake --build --preset=conan-release
~~~**Linux, macOS**
~~~bash
git clone https://github.com/ocfbnj/NesEmulator.git
cd NesEmulator
conan install . --build=missing
cmake --preset=conan-release
cmake --build --preset=conan-release
~~~Now, you can find the binary in `build` directory.
## Screenshots
![Super Mario Bros](./images/Super%20Mario%20Bros.png)
![Battle City](images/Battle%20City.png)
![Contra](./images/Contra.png)
![Teenage Mutant Ninja Turtles III](./images/Teenage%20Mutant%20Ninja%20Turtles%20III.png)
![Double Dragon II](./images/Double%20Dragon%20II.png)## References
Developing an NES emulator is exciting and interesting 😀. If you also want to develop your own one, you can refer to the following tutorials and references. ❤️
### Nesdev Wiki
-
### Tutorials
-
-
-### Other NES implementations
-
-
-
-### CPU
-
-
- (This page was closed.)### Graphic
-
-
-### Audio
-
-
-
-