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 | |
| parent | 0c3bf1b81a9d0dc294aa2415a20303c1f567f340 (diff) | |
add readme and license
| -rw-r--r-- | LICENSE | 21 | ||||
| -rw-r--r-- | README.md | 46 |
2 files changed, 67 insertions, 0 deletions
@@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025, the YAES developers + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. 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. |
