diff options
| author | Hannes Schulze <hannes.hs.schulze@fau.de> | 2025-05-02 18:13:19 +0200 |
|---|---|---|
| committer | Hannes Schulze <hannes.hs.schulze@fau.de> | 2025-05-02 18:13:19 +0200 |
| commit | 4cbb038c28340bee7ff9ffeba83a6e373998c928 (patch) | |
| tree | 7cf36bc40346b801fc75b1c3405da6a0b0e5999c /README.md | |
| parent | 0c3bf1b81a9d0dc294aa2415a20303c1f567f340 (diff) | |
add readme and license
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..e14b976 --- /dev/null +++ b/README.md @@ -0,0 +1,46 @@ +# Yet Another Entertainment System + +> A simple portable NES emulator written in C++. + +The emulator currently supports the following mapper types: +- NROM +- (TODO) + +It was mainly targeted for a simple custom operating system to run on the bare-metal. Because of this, it does not use +any standard libraries and it does not do dynamic memory allocations. It also supports using a modified NES controller +via serial port. + +## Using the Emulator + +The emulator comes with its own GUI allowing the user to change some settings and select a ROM using its built-in file +browser. There is only some platform-specific functionality which needs to be implemented. Some frontends can be found +in the [app](app) directory: +- A macOS port using `GameController.framework` and `SpriteKit.framework`. +- A (WIP) SDL port using SDL 3. + +In addition, you can find two more helper applications: +- `controller` for testing a controller connected using serial port (see below). +- `encrypt` for encrypting ROMs using AES (might one day be useful in some cases) + +You can build all of the applications using CMake: +``` +mkdir build +cd build +cmake .. +make +``` + +Dependencies on Linux can also be installed using Nix, by running a development shell: +``` +nix develop . +``` + +## Using the Controller + +It is also possible to modify an original NES controller to work with this emulator using an Arduino. + +You can find the Arduino sketch for it in [controller](controller). + +## License + +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. |
