{"id":25168684,"url":"https://github.com/inunix3/nchip8","last_synced_at":"2025-04-03T19:18:01.260Z","repository":{"id":251567274,"uuid":"837789480","full_name":"inunix3/nchip8","owner":"inunix3","description":"CHIP-8/SCHIP interpreter powered by SDL2 \u0026 Dear ImGui.","archived":false,"fork":false,"pushed_at":"2024-09-14T09:12:18.000Z","size":96,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-09T07:18:42.110Z","etag":null,"topics":["chip-8","chip8-emulator","chip8-interpreter","cpp","imgui","schip","schip-emulator","sdl","sdl2"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/inunix3.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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-08-04T03:27:16.000Z","updated_at":"2025-02-07T13:56:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"c11f89f8-0a36-456e-8e53-8c084a4f24a3","html_url":"https://github.com/inunix3/nchip8","commit_stats":null,"previous_names":["inunix3/nchip8"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inunix3%2Fnchip8","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inunix3%2Fnchip8/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inunix3%2Fnchip8/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inunix3%2Fnchip8/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/inunix3","download_url":"https://codeload.github.com/inunix3/nchip8/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247061888,"owners_count":20877176,"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":["chip-8","chip8-emulator","chip8-interpreter","cpp","imgui","schip","schip-emulator","sdl","sdl2"],"created_at":"2025-02-09T07:18:39.259Z","updated_at":"2025-04-03T19:18:01.243Z","avatar_url":"https://github.com/inunix3.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nCHIP-8\nA CHIP-8/SCHIP interpreter, written in C++17 with the use of SDL2 and Dear ImGui for UI. It's customizable and has debug capabilities!\n\n[**Video**](https://drive.google.com/file/d/1VJpbM7gC9RqfsyXIdQ_G24tuiyJ7AvO9/view?usp=sharing)\n\n[**Screenshots**](screenshots/)\n\nWritten just for fun.\n\n## Features\n- Full SCHIP support\n- Sound support (Waveforms: sine, square and saw)\n    - Changeable frequency and dB level\n- Display colors are in RGB and they can be changed\n- Two keypad mappings: the original COSMAC VIP and the modern one (which is used by most other interpreters)\n- You can set custom CPU frequency value\n- You can change the RANDOM seed (useful for debugging)\n- If some games don't have mood to function properly, you can try to make them feel better by touching these quirks:\n    - `BNNN`: use V0 as the offset\n    - `DXYN`: horizontal wrapping\n    - `DXYN`: vertical wrapping\n    - `8XY6` \u0026 `8XYE`: set VX to VY\n    - `8XY1`, `8XY2` and `8XY3`: reset VF\n    - `FX55` \u0026 `FX65`: increment the I register\n    - `DXY0`: draw 8x16 sprite in lo-res mode\n- Debug capabilities:\n    - Disassembler\n    - Set, edit and remove breakpoints (they can also be named)\n    - View stack\n    - View and modify registers\n    - Instruction executor\n    - Keypad, in which buttons are held until they are released by second click (useful in the STEP mode)\n\n## Building\nYou can build simply by creating `build` directory, going to it and calling the cmake (e.g. `cmake ..`)\n\nOptionally, you can install nchip8 by typing `sudo cmake --install .`\n\n## Usage\nJust type `./nchip8` (or `nchip8` if you've installed it)!\n\nFor certain games you may like to change the amount of cycles per second, colors, etc.\n\n## Todo\n- ~~Ability to optionally disable flickering~~\n- [x] Add pixel fading to smooth out the flickering\n- [x] Support for SCHIP\n- [ ] Support for XO-CHIP\n- [ ] More debug features\n    - [ ] Watch window\n    - [ ] Memory view (and editor)\n    - [ ] Logger\n    - [ ] Add more controls to the existing tools\n- [ ] CLI options\n- [ ] Some kind of library that has a list of games, and for each game one can specify quirks and other options.\n\n## Used resources\n[**Tobias' guide**](https://tobiasvl.github.io/blog/write-a-chip-8-emulator/)\n\n[**Wikipedia article**](https://en.wikipedia.org/wiki/CHIP-8)\n\n[**CHIP-8 test suite**](https://github.com/Timendus/chip8-test-suite)\n\n[**Instruction set reference**](https://chip8.gulrak.net/)\n\n[**List of most known CHIP-8 extensions**](https://gist.github.com/tobiasvl/a0e43bdcd64d9ef6be35f5c67fcff0dd)\n\n[**Collections of ROMs for CHIP-8**](https://github.com/kripod/chip8-roms)\n\n[**CHIP-8 Archive**](https://johnearnest.github.io/chip8Archive/)\n\n[**Mastering SuperChip**](http://johnearnest.github.io/Octo/docs/SuperChip.html)\n\n[**SuperChip investigations**](https://github.com/Chromatophore/HP48-Superchip)\n\n[**Original SCHIP spec**](http://devernay.free.fr/hacks/chip8/schip.txt)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finunix3%2Fnchip8","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finunix3%2Fnchip8","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finunix3%2Fnchip8/lists"}