{"id":16379873,"url":"https://github.com/justdoom/8chocchip","last_synced_at":"2025-09-06T12:32:25.669Z","repository":{"id":229144786,"uuid":"775878381","full_name":"JustDoom/8ChocChip","owner":"JustDoom","description":"A basic Chip8 C++ Emulator","archived":false,"fork":false,"pushed_at":"2024-12-16T02:06:08.000Z","size":8597,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-16T02:20:43.516Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JustDoom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2024-03-22T08:19:38.000Z","updated_at":"2024-12-11T03:41:22.000Z","dependencies_parsed_at":"2024-12-16T02:20:34.607Z","dependency_job_id":"491669a7-1bff-44ce-b980-e84d2f77b24c","html_url":"https://github.com/JustDoom/8ChocChip","commit_stats":null,"previous_names":["justdoom/8chocchip"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustDoom%2F8ChocChip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustDoom%2F8ChocChip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustDoom%2F8ChocChip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustDoom%2F8ChocChip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JustDoom","download_url":"https://codeload.github.com/JustDoom/8ChocChip/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":232122315,"owners_count":18475696,"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":"2024-10-11T03:49:51.329Z","updated_at":"2025-09-06T12:32:25.612Z","avatar_url":"https://github.com/JustDoom.png","language":"C++","funding_links":["https://ko-fi.com/justdoom"],"categories":[],"sub_categories":[],"readme":"\u003cdiv style=\"display: flex; align-items: center;\"\u003e\n  \u003cimg src=\"assets/icon.png\" alt=\"Chip\" style=\"width: 64px; height: 64px; margin-right: 10px;\"\u003e\n  \u003ch1 style=\"margin: 0;\"\u003e8ChocChip\u003c/h1\u003e\n\u003c/div\u003e\n\n[![Discord](https://img.shields.io/discord/810752039470235688?style=for-the-badge\u0026logo=discord\u0026label=Discord\u0026labelColor=grey\u0026color=green)](https://discord.imjustdoom.com)\n[![X (formerly Twitter) Follow](https://img.shields.io/twitter/follow/ImJustDoom?style=for-the-badge\u0026logo=x\u0026label=Follow!\u0026color=gray)](https://twitter.com/ImJustDoom)\n[![Static Badge](https://img.shields.io/badge/Backers-%20?style=for-the-badge\u0026logo=ko-fi\u0026color=gray)](https://ko-fi.com/justdoom) [![GitHub](https://img.shields.io/github/stars/JustDoom/8ChocChip?style=for-the-badge\u0026logo=github)](https://github.com/JustDoom/8ChocChip)\n\n8ChocChip is a [Chip8](https://en.wikipedia.org/wiki/CHIP-8) emulator. It was created to help me learn and understand how emulators work.\nI plan to support other Chip8 variants in the future with many other features like save states, per program configs, etc.\n\n## Features\n\nThere are a couple of things left to do until I would say it works well enough\n- [x] Proper flag/feature compatibility unlike many out there\n- [x] Get emulator to run at a decent speed\n- [x] Windows Support\n- [ ] MacOS Support\n- [x] Switch to SDL from SFML\n- [ ] Save state\n- [ ] Configurable keys\n- [ ] Database for auto setting selector\n- [ ] Other Chip8 variants\n- [ ] Per program settings (Keybindings, graphics, sounds, etc)\n- [ ] Discord Rich Presence support\n- [ ] JIT mode\n- [ ] Proper installation method\n\n### Supported Platforms\n\n- [x] GNU/Linux - Should work on any distro that will let you run plain executable files from the last few years at least\n- [x] Windows 7 - ~~Make sure to install [Visual Studio 2017](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170#visual-studio-2015-2017-2019-and-2022)~~ Needs testing since I changed some compiler stuff\n- [x] Windows 8(.1), 10, 11\n- [ ] Windows 95\n- [ ] Windows 98\n- [ ] Windows XP\n- [ ] Windows Vista\n- [ ] MacOS 9\n- [ ] MacOS X\n- [ ] MacOS\n- [ ] [Nokia N-Gage](https://github.com/libsdl-org/SDL/pull/12148)\n\n## Usage\n\nJust launch the downloaded executable and you are good to go. Some programs/games can be found [here](https://github.com/dmatlack/chip8/tree/master/roms/games).\n\nFor a proper test suite you can check out https://github.com/Timendus/chip8-test-suite\n\n### Commands\n\n`--speedtest` - Enabled speedtest mode. Can slightly increase performance by disabling some features that stop it from running at full speed.\n\n`--rom \u003cpath to rom\u003e` - Immediately launches into the specified ROM instead of the menu.\n\n`--instructions \u003cinstruction count\u003e` - The amount of instructions to run per frame (60fps).\n\n`--debug` - Enabled printing extra debug information to the console\n\n## Building\n\n### Debian/Ubuntu\n\nInstall dependencies\n```\nsudo apt-get install build-essential git make \\\n        pkg-config cmake ninja-build gnome-desktop-testing libasound2-dev libpulse-dev \\\n        libaudio-dev libjack-dev libsndio-dev libx11-dev libxext-dev \\\n        libxrandr-dev libxcursor-dev libxfixes-dev libxi-dev libxss-dev libxtst-dev \\\n        libxkbcommon-dev libdrm-dev libgbm-dev libgl1-mesa-dev libgles2-mesa-dev \\\n        libegl1-mesa-dev libdbus-1-dev libibus-1.0-dev libudev-dev \\\n        libpipewire-0.3-dev libwayland-dev libdecor-0-dev liburing-dev\n```\n\nClone the repository through the command line, or another option you may have\n```\ngit clone https://github.com/JustDoom/8ChocChip.git\n```\n\nDownload and project dependencies\n```\ngit submodule update --init --recursive\n```\n\nConfigure CMake\n```\nmkdir -p build\ncd build\ncmake .. -DCMAKE_BUILD_TYPE=Release\n```\n\nBuild\n```\ncmake --build . --config Release\n```\n\nThe generated files will be inside the `build/bin` directory\n\n### Windows\n\nI don't have a Windows machine set up to test so for now just follow the [workflow](https://github.com/JustDoom/8ChocChip/blob/master/.github/workflows/build.yml)\n\n# Credits\n\nThanks to these two blogs that helped me through creating this emulator.\n- [Timendus Chip8 Test Suite](https://github.com/Timendus/chip8-test-suite) - An incredible test suite for Chip8\n- [Guide to making a CHIP-8 emulator ](https://tobiasvl.github.io/blog/write-a-chip-8-emulator/) - This one is a great resource on creating a proper emulator\n- [Emulator Development Discord](https://discord.gg/dkmJAes) - A really nice discord about emulator development\n\n## Libraries\n\n- [SDL](https://github.com/libsdl-org/SDL) - UI, graphics, input and sounds\n- [SDL-ttf](https://github.com/libsdl-org/SDL_ttf) - Text fonts\n- [SDL-image](https://github.com/libsdl-org/SDL_image) - Images\n- [nlohmann/json](https://github.com/nlohmann/json) - Library to manage save data (like directories that hold ROMs) and possible future config files\n- [nicbarker/clay](https://github.com/nicbarker/clay) - UI layout library\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustdoom%2F8chocchip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjustdoom%2F8chocchip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustdoom%2F8chocchip/lists"}