{"id":15790683,"url":"https://github.com/basokant/chip-8-emulator","last_synced_at":"2026-03-18T17:01:17.840Z","repository":{"id":179997651,"uuid":"573032435","full_name":"basokant/chip-8-emulator","owner":"basokant","description":"A CHIP-8 emulator written in C++.","archived":false,"fork":false,"pushed_at":"2022-11-30T03:23:22.000Z","size":2194,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2024-10-11T22:19:17.857Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":false,"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/basokant.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":"2022-12-01T14:55:18.000Z","updated_at":"2023-07-09T13:59:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"90f2efd4-19c4-4168-bdf3-bf19135dc1d9","html_url":"https://github.com/basokant/chip-8-emulator","commit_stats":{"total_commits":99,"total_committers":6,"mean_commits":16.5,"dds":0.4242424242424242,"last_synced_commit":"b37e424111cfe99c246b9fbbfae90b7822857711"},"previous_names":["basokant/chip-8-emulator"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basokant%2Fchip-8-emulator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basokant%2Fchip-8-emulator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basokant%2Fchip-8-emulator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basokant%2Fchip-8-emulator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/basokant","download_url":"https://codeload.github.com/basokant/chip-8-emulator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246522096,"owners_count":20791247,"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-04T22:22:19.261Z","updated_at":"2026-01-08T18:42:00.642Z","avatar_url":"https://github.com/basokant.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# CHIP OFF THE BLOCK\r\nA CHIP-8 emulator written in C++.\r\n\r\n## Build\r\n\r\n### Dependencies\r\n* SDL2\r\n* SDL2-mixer\r\n\r\nThe default SDL2 include path is under `/usr/include` on Linux. The proper lib path is also included by default.\r\nIf yours differs, add the paths to a `config.mk` file in the root directory as follows:\r\n\r\n```makefile\r\n# in /config.mk\r\nSDL_INCLUDE_DIR := \u003cyour_path_here\u003e\r\nSDL_LIB_DIR := \u003cyour_path_here\u003e\r\n```\r\n\r\nUsing a UNIX environment, run `make` in the root directory to build the executable and the docs. Run `make chip8` or `make docs` to build just the executable or just the docs. Then, run `./chip8 \u003cpath_to_rom_file\u003e` to run a specified .ch8 file.\r\n\r\nCustom ROMs are found in `roms`. 3rd party ROMs are found in `roms/3rdparty`.\r\n\r\n\r\n* run `make clean` to clean up the intermediate build files in the build directory `build/`.\r\n\r\n## Building Assembly Files\r\n\r\nDependencies:\r\n* cargo\r\n\r\nTo build all assembly files in the `roms` directory, add the source file to `roms/Makefile` and run `make`.\r\n\r\n(Make sure to pull git submodules as well).\r\n\r\n## Configuration\r\n\r\nKeyboard mapping and emulation speed can be controlled from `chip8.config.json`.\r\n\r\n```json\r\n{\r\n    \"custom_keymap\" : {\r\n        \u003cSDL_key_name\u003e: \u003cchip8_key\u003e\r\n    },\r\n    \"emulation_speed\" : 1.0, // factor: 2.0 runs twice as fast\r\n    \"screen_width\": 960 // screen height is half the screen width\r\n}\r\n```\r\n\r\nThe SDL key names can be found [here](https://wiki.libsdl.org/SDL2/SDL_Keycode) under \"Key Name\".\r\n\r\nThere are 16 CHIP-8 keys to map: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15\r\n\r\n## Controls\r\n\r\nThe default key mapping is as follows (to match the original hardware):\r\n\r\nKeyboard\r\n|||||\r\n|---|---|---|---|\r\n|1|2|3|4|\r\n|Q|W|E|R|\r\n|A|S|D|F|\r\n|Z|X|C|V|\r\n\r\nCHIP-8 Mapping\r\n|||||\r\n|---|---|---|---|\r\n|1|2|3|C\r\n|4|5|6|D|\r\n|7|8|9|E|\r\n|A|0|B|F|\r\n\r\nNote: A-F are referenced by their hex values (e.g. 10 = A, 11 = B, etc.)\r\n\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbasokant%2Fchip-8-emulator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbasokant%2Fchip-8-emulator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbasokant%2Fchip-8-emulator/lists"}