{"id":19958380,"url":"https://github.com/binji/smolnes","last_synced_at":"2025-05-15T15:05:10.642Z","repository":{"id":62231324,"uuid":"558923202","full_name":"binji/smolnes","owner":"binji","description":"NES emulator in \u003c5000 bytes of C","archived":false,"fork":false,"pushed_at":"2024-10-11T08:55:55.000Z","size":13258,"stargazers_count":648,"open_issues_count":2,"forks_count":33,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-03-31T19:09:58.115Z","etag":null,"topics":["c","emulator","nes","nes-emu","nes-emulator","nintendo","obfuscated"],"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/binji.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-10-28T15:51:09.000Z","updated_at":"2025-03-23T15:19:58.000Z","dependencies_parsed_at":"2024-02-05T09:42:00.616Z","dependency_job_id":"86ce9332-85a6-47ea-aa1a-2b09e7838a03","html_url":"https://github.com/binji/smolnes","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binji%2Fsmolnes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binji%2Fsmolnes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binji%2Fsmolnes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binji%2Fsmolnes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/binji","download_url":"https://codeload.github.com/binji/smolnes/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247721898,"owners_count":20985084,"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":["c","emulator","nes","nes-emu","nes-emulator","nintendo","obfuscated"],"created_at":"2024-11-13T01:42:24.068Z","updated_at":"2025-04-07T20:10:06.945Z","avatar_url":"https://github.com/binji.png","language":"C","readme":"# smolnes\n\nA NES emulator in ~5000 significant bytes of c.\n\n## Features\n\nPlays some mapper 0/1/2/3/4/7 games.\n\n## Screenshots\n\n![Batman](img/batman.gif)\n![Kirby's Adventure](img/kirby.gif)\n![Mega Man 3](img/mm3.gif)\n![Little Nemo the Dream Master](img/nemo.gif)\n![River City Ransom](img/rcr.gif)\n![Super Mario Bros. 2](img/smb2.gif)\n![Super Mario Bros. 3](img/smb3.gif)\n![Teenage Mutant Ninja Turtles 2](img/tmnt2.gif)\n![Bionic Commando](img/bc.gif)\n![Donkey Kong](img/dk.gif)\n![Dragon Warrior](img/dw.gif)\n![Adventures of Lolo](img/lolo.gif)\n![Legend of Zelda](img/loz.gif)\n![Metroid](img/met.gif)\n![Mega Man 2](img/mm2.gif)\n![Ninja Gaiden](img/ng.gif)\n![Rad Racer](img/rr.gif)\n![Super Mario Bros.](img/smb.gif)\n![Teenage Mutant Ninja Turtle](img/tmnt.gif)\n![Contra](img/contra.gif)\n![Goonies 2](img/g2.gif)\n![Castlevania](img/cv.gif)\n![DuckTales](img/dt.gif)\n![Alwa's Awakening](img/alwa.gif)\n![Witch n' Wiz](img/wnw.gif)\n![Battletoads](img/bt.gif)\n![Wizard's and Warriors II](img/ww2.gif)\n![Gradius](img/grad.gif)\n\n![Source Code](img/smolnes.png)\n\n## Building\n\nProbably only builds on Linux and macOS. Try gcc or clang.\n\n```\n$ make\n```\n\n## Running\n\n```\n$ ./smolnes \u003crom.nes\u003e\n```\n\nKeys:\n\n| Action | Key |\n| --- | --- |\n| DPAD-UP | \u003ckbd\u003e↑\u003c/kbd\u003e |\n| DPAD-DOWN | \u003ckbd\u003e↓\u003c/kbd\u003e |\n| DPAD-LEFT | \u003ckbd\u003e←\u003c/kbd\u003e |\n| DPAD-RIGHT | \u003ckbd\u003e→\u003c/kbd\u003e |\n| B | \u003ckbd\u003eZ\u003c/kbd\u003e |\n| A | \u003ckbd\u003eX\u003c/kbd\u003e |\n| START | \u003ckbd\u003eEnter\u003c/kbd\u003e |\n| SELECT | \u003ckbd\u003eTab\u003c/kbd\u003e |\n\n## Updating keys\n\nLook for line 19 in the source code. The following table shows which\nnumbers map to which keyboard keys:\n\n| number | default key | NES button |\n| - | - | - |\n| 27 | X | A Button |\n| 29 | Z | B Button |\n| 43 | Tab | Select Button |\n| 40 | Return | Start Button |\n| 79 | Arrow Right | DPAD Right |\n| 80 | Arrow Left | DPAD Left |\n| 81 | Arrow Down | DPAD Down |\n| 82 | Arrow Up | DPAD Up |\n\nReplace the numbers on this line with one from the [SDL scancode list](https://github.com/libsdl-org/SDL/blob/SDL2/include/SDL_scancode.h).\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbinji%2Fsmolnes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbinji%2Fsmolnes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbinji%2Fsmolnes/lists"}