{"id":16252988,"url":"https://github.com/digitsensitive/chip8-wasm","last_synced_at":"2025-06-20T04:04:56.663Z","repository":{"id":85849606,"uuid":"431994926","full_name":"digitsensitive/chip8-wasm","owner":"digitsensitive","description":":video_game: A CHIP-8 interpreter (and virtual machine) written in C++ with SDL2 and WebAssembly","archived":false,"fork":false,"pushed_at":"2022-03-05T18:55:56.000Z","size":3408,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-20T04:02:44.574Z","etag":null,"topics":["chip-8","chip8","cplusplus","emulator","sdl2","virtual-machine","webassembly"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/digitsensitive.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":"2021-11-25T22:46:14.000Z","updated_at":"2023-03-10T04:02:52.000Z","dependencies_parsed_at":"2023-03-06T20:45:40.900Z","dependency_job_id":null,"html_url":"https://github.com/digitsensitive/chip8-wasm","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/digitsensitive/chip8-wasm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitsensitive%2Fchip8-wasm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitsensitive%2Fchip8-wasm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitsensitive%2Fchip8-wasm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitsensitive%2Fchip8-wasm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/digitsensitive","download_url":"https://codeload.github.com/digitsensitive/chip8-wasm/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitsensitive%2Fchip8-wasm/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260878242,"owners_count":23075955,"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","cplusplus","emulator","sdl2","virtual-machine","webassembly"],"created_at":"2024-10-10T15:15:36.833Z","updated_at":"2025-06-20T04:04:51.652Z","avatar_url":"https://github.com/digitsensitive.png","language":"JavaScript","readme":"# A CHIP-8 interpreter (and virtual machine) written in C++17 with SDL2 and WebAssembly\n\nThis project was created to deal with the creation of an interpreter in more detail\nand to use [WebAssembly](https://webassembly.org) for the first time.\n\nI have documented and described the development of the project in detail on the\nfollowing [article on Medium](https://medium.com/@digit.sensitivee/how-i-created-my-first-interpreter-2e7c8749031d).\n\nHave fun reading through and coding!\n\n# Prerequisites\n\n- Install [Visual Studio Code](https://code.visualstudio.com)\n- Install the [C++ extension for VS Code](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools)\n- Install the [Clang-Format extension for VS Code](https://marketplace.visualstudio.com/items?itemName=xaver.clang-format)\n- Install [Clang](https://clang.llvm.org) and ensure it is installed `clang --version`\n- Get the [Emscripten SDK](https://emscripten.org/docs/getting_started/downloads.html)\n- In the root directory set the CMAKE Toolchain file by running: `CMAKE_TOOLCHAIN_FILE=/**/Emscripten.cmake` Ensure you update your path with the location of your emsdk installation location\n\n# Installation\n\n- Download the submodules with `git submodule update --init`\n- Create the build folder with `mkdir build`\n- Navigate to the build folder with `cd build`\n- Run `emcmake cmake ..` and `make`\n- Start the localhost in the root folder with `yarn http`\n\n# Code formatter\n\nUse of [ClangFormat](https://clang.llvm.org/docs/ClangFormat.html). The style options are defined in the `.clang-format` file. For more details have a look at the official [Style Options](https://clang.llvm.org/docs/ClangFormatStyleOptions.html).\n\n# Emscripten Compiler\n\nThe Emscripten Compiler Frontend (em++ für C++) is used to call the\nEmscripten compiler from the command line.\nFor more details about the arguments look at the official\n[Emscripten Compiler Frontend Reference](https://emscripten.org/docs/tools_reference/emcc.html#emcc-o2)\n\n## To do list\n\n- [x] Setup basic repository (C++, WebAssembly)\n- [x] Setup basic VSCode configuration (C++, Clang)\n- [x] Medium: Write history section\n- [x] CHIP-8: Add memory\n- [x] CHIP-8: Add registers\n- [x] CHIP-8: Add stack\n- [x] Medium: Write references section\n- [x] CHIP-8: Add delay and sound registers\n- [x] CHIP-8: Add program counter (PC)\n- [x] CHIP-8: Add input (keypad)\n- [x] CHIP-8: Add display\n- [x] CHIP-8: Add fontset\n- [x] CHIP-8: Add instructions\n- [x] Public Folder: Add roms\n- [x] Medium: Write instructions section\n- [x] Add Prettier to package.json with prettier configuration file\n- [] Write disassembler (https://aimechanics.tech/2020/09/03/chip8-emulation-rom-disassembler)\n- [] Read the following ressource: http://vanbeveren.byethost13.com/stuff/CHIP8.pdf?i=1\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitsensitive%2Fchip8-wasm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdigitsensitive%2Fchip8-wasm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitsensitive%2Fchip8-wasm/lists"}