{"id":28675496,"url":"https://github.com/mattdrivendev/chip-8","last_synced_at":"2025-06-13T22:10:09.535Z","repository":{"id":148520841,"uuid":"66593345","full_name":"MattDrivenDev/Chip-8","owner":"MattDrivenDev","description":"A Chip-8 emulator written as a (not so functional) F# script","archived":false,"fork":false,"pushed_at":"2025-02-03T13:58:40.000Z","size":16,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-03T14:45:06.114Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"F#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MattDrivenDev.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-08-25T21:07:05.000Z","updated_at":"2025-02-03T13:58:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"f56e11ee-6e5d-4794-90c9-2333e8a00a3c","html_url":"https://github.com/MattDrivenDev/Chip-8","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MattDrivenDev/Chip-8","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MattDrivenDev%2FChip-8","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MattDrivenDev%2FChip-8/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MattDrivenDev%2FChip-8/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MattDrivenDev%2FChip-8/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MattDrivenDev","download_url":"https://codeload.github.com/MattDrivenDev/Chip-8/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MattDrivenDev%2FChip-8/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259727148,"owners_count":22902183,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-13T22:10:08.174Z","updated_at":"2025-06-13T22:10:09.468Z","avatar_url":"https://github.com/MattDrivenDev.png","language":"F#","funding_links":[],"categories":[],"sub_categories":[],"readme":"```\r\n███████╗ ██╗ ██╗      ██████╗██╗  ██╗██╗██████╗        █████╗ \r\n██╔════╝████████╗    ██╔════╝██║  ██║██║██╔══██╗      ██╔══██╗\r\n█████╗  ╚██╔═██╔╝    ██║     ███████║██║██████╔╝█████╗╚█████╔╝\r\n██╔══╝  ████████╗    ██║     ██╔══██║██║██╔═══╝ ╚════╝██╔══██╗\r\n██║     ╚██╔═██╔╝    ╚██████╗██║  ██║██║██║           ╚█████╔╝\r\n╚═╝      ╚═╝ ╚═╝      ╚═════╝╚═╝  ╚═╝╚═╝╚═╝            ╚════╝ \r\n```\r\n\r\nWhat it says on the tin.\r\n\r\n![Screenshot playing Tetris](https://github.com/MattDrivenDev/Chip-8/blob/master/tetris-screenshot.png)\r\n\r\n## Update\r\nI'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).\r\n\r\n### Suggestions of things to do:\r\n\r\n* Make it (more) functional \r\n  * Encapsulate all of the stateful data as a `type` that can be filtered through each iteration/tick - meaning it can be immutable\r\n* Make sound work\r\n  * The Sound Timer (`ST`) is implemented but isn't doing anything.\r\n* Make more use of the `DOUBLEBUFFER`\r\n  * It's used only for performance at the moment to know which pixels/cells to draw each tick\r\n  * Could be used to draw when pixels/cells are redrawn (the flickering of sprites I think would be solved)\r\n* Add DEBUG UI\r\n  * Add more UI where the game screen becomes just a small part of the emulator window\r\n  * Use additional space to give graphical representation of the Memory, Registers and where the PC is pointing in memory etc.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmattdrivendev%2Fchip-8","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmattdrivendev%2Fchip-8","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmattdrivendev%2Fchip-8/lists"}