aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClyne <clyne@bitgloo.com>2025-01-11 19:56:26 -0500
committerClyne <clyne@bitgloo.com>2025-01-11 19:56:26 -0500
commitc8bdf4d0383111dda3fe32a4581ce8fb403d4130 (patch)
treeadffbad4fe5644f682702cc2837426758084ec9a
parenta80dce67fd15af1afc640d5290dd3478fadac188 (diff)
Update 'README.md'
-rw-r--r--README.md28
1 files changed, 27 insertions, 1 deletions
diff --git a/README.md b/README.md
index 591dbf7..af49e84 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,29 @@
# ada-chip
-CHIP-8 emulator written in Ada \ No newline at end of file
+A CHIP-8 emulator written in Ada (as an exercise for learning Ada). Supports (*I believe*) the entire instruction set from the ["SUPER-CHIP specification from 1991 (but without the additional opcodes that provide extended functionality)"](https://en.wikipedia.org/wiki/CHIP-8#Opcode_table).
+
+## Building
+
+Use [Alire](https://alire.ada.dev/) to build ada-chip: `alr build`.
+
+## Running
+
+Just pass the CHIP-8 ROM that you would like to run as an argument: `ada_chip game.ch8`.
+
+## Configuration
+
+*(TODO: allow command line settings)*
+
+In `src/ada_chip.adb`, `Steps_Per_Frame` can be configured for the number of CPU cycles to run between render updates. Different ROMs seem to benefit from faster (e.g. 16) to slower (e.g. 8) settings.
+
+Input controls follow the CHIP-8 spec which are keys A through F and 0 through 9.
+
+## Issues
+
+Some ROMs do not work well, particularly with rendering; however, other emulators appear to have the same problems. Please only report an issue if you can prove that this emulator is doing something incorrectly.
+
+## Useful links
+
+* [kripod/chip8-roms](https://github.com/kripod/chip8-roms): ROMs to try out.
+* [CHIP-8 Technical Reference](http://devernay.free.fr/hacks/chip8/C8TECH10.HTM)
+* [CHIP-8 Wikipedia entry](https://en.wikipedia.org/wiki/CHIP-8) \ No newline at end of file