summaryrefslogtreecommitdiff
path: root/README.md
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 /README.md
parent0c3bf1b81a9d0dc294aa2415a20303c1f567f340 (diff)
add readme and license
Diffstat (limited to 'README.md')
-rw-r--r--README.md46
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.