{"id":48798032,"url":"https://github.com/oyetanishq/chip8_emu","last_synced_at":"2026-04-14T00:14:23.167Z","repository":{"id":342438356,"uuid":"1173018050","full_name":"oyetanishq/chip8_emu","owner":"oyetanishq","description":"Chip8 Emulator written in cpp for desktop and web. ","archived":false,"fork":false,"pushed_at":"2026-03-06T00:03:35.000Z","size":3039,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-06T04:22:35.977Z","etag":null,"topics":["chip8","cpp"],"latest_commit_sha":null,"homepage":"https://chip8-emu-three.vercel.app","language":"C++","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/oyetanishq.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-04T23:35:13.000Z","updated_at":"2026-03-06T00:03:38.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/oyetanishq/chip8_emu","commit_stats":null,"previous_names":["oyetanishq/chip8_emu"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/oyetanishq/chip8_emu","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oyetanishq%2Fchip8_emu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oyetanishq%2Fchip8_emu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oyetanishq%2Fchip8_emu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oyetanishq%2Fchip8_emu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oyetanishq","download_url":"https://codeload.github.com/oyetanishq/chip8_emu/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oyetanishq%2Fchip8_emu/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31776102,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T00:11:49.126Z","status":"ssl_error","status_checked_at":"2026-04-14T00:10:29.837Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["chip8","cpp"],"created_at":"2026-04-14T00:14:20.720Z","updated_at":"2026-04-14T00:14:23.162Z","avatar_url":"https://github.com/oyetanishq.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CHIP-8 Emulator - NeonCore\n\nA high-performance CHIP-8 emulator built with **C++** backend compiled to WebAssembly (WASM) and a modern **React** frontend with a retro-themed UI.\n\n## Project Showcase\n\n![CHIP-8 Emulator Interface](./docs/image.png)\n[chip8-emu-three.vercel.app](https://chip8-emu-three.vercel.app)\n\n---\n\n## About CHIP-8\n\nCHIP-8 is an interpreted programming language from the mid-1970s. It's a simple 8-bit virtual machine that became popular for retro gaming and is still used today as a great introduction to emulation.\n\n### CHIP-8 Specifications\n\n-   **16 (8-bit) General Purpose Registers** (V0-VF, each 8-bit)\n-   **4KB Memory** (0x200 - 0xFFF for programs)\n-   **64x32 Pixel Display** (monochrome)\n-   **16-Key Hexadecimal Keypad** (0x0-0xF)\n-   **16-Level Stack** (for subroutine calls)\n-   **8-bit Timers** (Delay and Sound timers)\n-   **16-bit Program Counter**\n-   **35 Instructions** (all 2 bytes)\n\n### Classic CHIP-8 Games Included\n\nThe emulator comes pre-loaded with 23 classic games including:\n\n-   **PONG** - The iconic arcade game\n-   **TETRIS** - Block stacking puzzle game\n-   **INVADERS** - Space shooter\n-   **BREAKOUT** - Brick breaker game\n-   **MAZE** - Maze navigation\n-   And many more!\n\n---\n\n## Installation \u0026 Setup\n\n### Quick Start\n\n#### 1. Clone the Repository\n\n```bash\ngit clone https://github.com/oyetanishq/chip8_emu.git\ncd chip8_emu\n```\n\n#### 2. Install Website Dependencies\n\n```bash\ncd website\nyarn install\n```\n\n#### 3. Run the Development Server\n\n```bash\nyarn run dev\n```\n\nThe emulator will be available at `http://localhost:5173` (or the port shown in your terminal).\n\n#### 4. Build for Production\n\n```bash\nyarn run build\n```\n\n### Building the WASM Core\n\nIf you want to rebuild the C++ core:\n\n#### Prerequisites\n\n-   Install [Emscripten](https://emscripten.org)\n-   Ensure CMake is installed\n\n#### Build Steps\n\n```bash\ncd chip8_core\nmkdir -p build/wasm\ncd build/wasm\n\nemcmake cmake ../..\nmake\n\n# The compiled WASM module will be generated in `build/wasm/chip8_wasm.js`.\n```\n\n### Building the chip8 core (desktop)\n\nIf you want to rebuild the C++ core:\n\n#### Prerequisites\n\n-   Ensure SDL2 is installed\n\n#### Build Steps\n\n```bash\ncd chip8_core\nmkdir -p build/core\ncd build/core\n\ncmake ../..\nmake\n\n./chip8_core ../../roms/TANK\n```\n\n---\n\n## Project Structure\n\n```\nchip8_emu/\n├── chip8_core/                 # C++ emulator core\n│   ├── src/\n│   │   ├── chip8.cpp           # Main emulator implementation\n│   │   ├── instructions.cpp    # Instruction set\n│   │   ├── wasm_bindings.cpp   # WebAssembly bindings\n│   │   └── main.cpp            # CLI entry point\n│   ├── include/\n│   │   └── chip8.hpp           # Public interface\n│   ├── roms/                   # ROM files\n│   └── CMakeLists.txt          # Build configuration\n│\n├── website/                    # React frontend\n│   ├── src/\n│   │   ├── pages/\n│   │   │   └── home.tsx        # Main emulator interface\n│   │   ├── lib/\n│   │   │   └── chip8_wasm.js   # Compiled WASM module\n│   │   └── global.css          # Theme and styles\n│   ├── public/\n│   │   └── roms/               # Game ROMs\n│   └── package.json\n│\n└── docs/                       # Documentation\n    └── image.png               # Project screenshot\n```\n\n---\n\n## Usage\n\n### Loading a Game\n\n1. Open the emulator in your browser\n2. Select a ROM from the **ROM Library** on the left panel\n3. Click the **Run** button to start emulation\n4. Use your keyboard or the on-screen keypad to play\n\n### Keyboard Controls\n\nThe CHIP-8 hexadecimal keypad maps to your keyboard:\n\n```\n1 2 3 4  →  1 2 3 C\nQ W E R  →  4 5 6 D\nA S D F  →  7 8 9 E\nZ X C V  →  A 0 B F\n```\n\n### Adjusting Game Speed\n\nUse the **Speed** slider in the controls bar to adjust emulation speed:\n\n-   Lower values = slower emulation (easier for slower games)\n-   Higher values = faster emulation (up to 1800Hz)\n\n---\n\n## For Developers\n\n### Building a Custom Version\n\n1. Modify the C++ source in `chip8_core/src/`\n2. Rebuild the WASM module using the steps above\n3. Copy the generated `.js` files to `website/src/lib/`\n4. Run `yarn build` to create the production bundle\n\n### Adding New ROMs\n\n1. Place ROM files in `website/public/roms/`\n2. Add the ROM name to the `AVAILABLE_ROMS` array in `website/src/pages/home.tsx`\n3. The emulator will automatically detect and list the ROM\n\n---\n\n**Enjoy the nostalgia! 🎮✨**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foyetanishq%2Fchip8_emu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foyetanishq%2Fchip8_emu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foyetanishq%2Fchip8_emu/lists"}