{"id":13998648,"url":"https://github.com/jakehffn/zig-nes","last_synced_at":"2025-07-23T06:32:38.848Z","repository":{"id":174058164,"uuid":"651710438","full_name":"jakehffn/zig-nes","owner":"jakehffn","description":"NES emulator written in Zig⚡","archived":false,"fork":false,"pushed_at":"2024-09-21T17:45:25.000Z","size":437,"stargazers_count":34,"open_issues_count":3,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-11-30T01:34:36.613Z","etag":null,"topics":["6502","6502-emulation","emulation","emulator","imgui","nes","zig"],"latest_commit_sha":null,"homepage":"","language":"Zig","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/jakehffn.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":"2023-06-09T21:59:40.000Z","updated_at":"2024-09-21T17:45:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"fb0550f6-39b3-4e91-b309-36784f8298fb","html_url":"https://github.com/jakehffn/zig-nes","commit_stats":null,"previous_names":["jakehffn/zignes","jakehffn/zig-nes"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/jakehffn/zig-nes","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakehffn%2Fzig-nes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakehffn%2Fzig-nes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakehffn%2Fzig-nes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakehffn%2Fzig-nes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jakehffn","download_url":"https://codeload.github.com/jakehffn/zig-nes/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakehffn%2Fzig-nes/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266631358,"owners_count":23959419,"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","status":"online","status_checked_at":"2025-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"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":["6502","6502-emulation","emulation","emulator","imgui","nes","zig"],"created_at":"2024-08-09T19:01:53.003Z","updated_at":"2025-07-23T06:32:38.554Z","avatar_url":"https://github.com/jakehffn.png","language":"Zig","funding_links":[],"categories":["Zig"],"sub_categories":[],"readme":"\u003cdiv align=center\u003e\n    \u003ch1\u003e\n        ZigNES 🕹️\n    \u003c/h1\u003e  \n    \u003ch4\u003e\n        NES emulator written in Zig with GUI using imgui.\n    \u003c/h4\u003e\n    \u003cimg src=\"media/example-games.png\" alt-text=\"ZigNES Examples\"\u003e\n\u003c/div\u003e\n\n\nCurrently, only mappers 0 and 1 are supported.\n\n## Build\n\nClone this repository somewhere on your machine with the following:\n\n`git clone --recurse-submodules https://github.com/jakehffn/zig-nes.git \u0026\u0026 cd zig-nes`\n\nIf environment variables for `SDL2_PATH` and `GLEW_PATH` are set, ZigNES can be built with,\n\n`zig build`\n\nThe build file also expects the `SDL2` shared libary to have the extension, `.dll`, so other distributions of `SDL2` may require a little tweaking to `build.zig`.\n\n\n## Usage\n### Controls\n| Key | Action |\n|-----|---------|\n| \u003ckbd\u003eW\u003c/kbd\u003e,\u003ckbd\u003eA\u003c/kbd\u003e,\u003ckbd\u003eS\u003c/kbd\u003e,\u003ckbd\u003eD\u003c/kbd\u003e | D-Pad |\n| \u003ckbd\u003eJ\u003c/kbd\u003e | A Button |\n| \u003ckbd\u003eK\u003c/kbd\u003e | B Button |\n| \u003ckbd\u003eSpace\u003c/kbd\u003e | Select |\n| \u003ckbd\u003eReturn\u003c/kbd\u003e | Start |\n\n## CPU tests\nTo test the CPU, Tom Harte's [nes6502 tests](https://github.com/TomHarte/ProcessorTests/tree/main/nes6502) are used. This is a suite of 10,000 tests for each of the 256 opcodes, both legal and illegal, which describes the initial and final state of the CPU after running one instruction.\n\nCurrently, the `ZigNES` CPU passes all 1.5 million test cases for the set of legal opcodes, excluding cycle timings.\n\nThe test set itself is not included in this repository due to the size of download. If you would like to run the tests yourself, the test runner expects the test cases to exist at the path `.\\test-files\\tom_harte_nes6502\\v1` relative to the root of this project. ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakehffn%2Fzig-nes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjakehffn%2Fzig-nes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakehffn%2Fzig-nes/lists"}