https://github.com/mattdrivendev/chip-8
A Chip-8 emulator written as a (not so functional) F# script
https://github.com/mattdrivendev/chip-8
Last synced: about 1 year ago
JSON representation
A Chip-8 emulator written as a (not so functional) F# script
- Host: GitHub
- URL: https://github.com/mattdrivendev/chip-8
- Owner: MattDrivenDev
- Created: 2016-08-25T21:07:05.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2025-02-03T13:58:40.000Z (over 1 year ago)
- Last Synced: 2025-02-03T14:45:06.114Z (over 1 year ago)
- Language: F#
- Homepage:
- Size: 15.6 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
```
███████╗ ██╗ ██╗ ██████╗██╗ ██╗██╗██████╗ █████╗
██╔════╝████████╗ ██╔════╝██║ ██║██║██╔══██╗ ██╔══██╗
█████╗ ╚██╔═██╔╝ ██║ ███████║██║██████╔╝█████╗╚█████╔╝
██╔══╝ ████████╗ ██║ ██╔══██║██║██╔═══╝ ╚════╝██╔══██╗
██║ ╚██╔═██╔╝ ╚██████╗██║ ██║██║██║ ╚█████╔╝
╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝╚═╝ ╚════╝
```
What it says on the tin.

## Update
I've started putting another version together with C on the [Raylib library](https://www.raylib.com/) which can be found here: [https://github.com/MattDrivenDev/raychip-8](https://github.com/MattDrivenDev/raychip-8).
### Suggestions of things to do:
* Make it (more) functional
* Encapsulate all of the stateful data as a `type` that can be filtered through each iteration/tick - meaning it can be immutable
* Make sound work
* The Sound Timer (`ST`) is implemented but isn't doing anything.
* Make more use of the `DOUBLEBUFFER`
* It's used only for performance at the moment to know which pixels/cells to draw each tick
* Could be used to draw when pixels/cells are redrawn (the flickering of sprites I think would be solved)
* Add DEBUG UI
* Add more UI where the game screen becomes just a small part of the emulator window
* Use additional space to give graphical representation of the Memory, Registers and where the PC is pointing in memory etc.