summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHannes Schulze <hannes.hs.schulze@fau.de>2025-05-02 18:13:19 +0200
committerHannes Schulze <hannes.hs.schulze@fau.de>2025-05-02 18:13:19 +0200
commit4cbb038c28340bee7ff9ffeba83a6e373998c928 (patch)
tree7cf36bc40346b801fc75b1c3405da6a0b0e5999c
parent0c3bf1b81a9d0dc294aa2415a20303c1f567f340 (diff)
add readme and license
-rw-r--r--LICENSE21
-rw-r--r--README.md46
2 files changed, 67 insertions, 0 deletions
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..1de477d
--- /dev/null
+++ b/LICENSE
@@ -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.