From c8bdf4d0383111dda3fe32a4581ce8fb403d4130 Mon Sep 17 00:00:00 2001 From: Clyne Date: Sat, 11 Jan 2025 19:56:26 -0500 Subject: [PATCH] Update 'README.md' --- README.md | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) 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