From 4cbb038c28340bee7ff9ffeba83a6e373998c928 Mon Sep 17 00:00:00 2001 From: Hannes Schulze Date: Fri, 2 May 2025 18:13:19 +0200 Subject: add readme and license --- README.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 README.md (limited to 'README.md') 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. -- cgit v1.3.1