{"id":15060287,"url":"https://github.com/gregkrsak/first_nes","last_synced_at":"2025-04-10T05:50:47.255Z","repository":{"id":144963443,"uuid":"84363574","full_name":"gregkrsak/first_nes","owner":"gregkrsak","description":"Create your own games for the Nintendo Entertainment System! This \"starter\" game is easily extensible for your own projects. Includes references.","archived":false,"fork":false,"pushed_at":"2023-04-24T22:34:56.000Z","size":163,"stargazers_count":158,"open_issues_count":10,"forks_count":17,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-04T16:13:44.174Z","etag":null,"topics":["asm","assembler","assembly","assembly-6502","assembly-language","assembly-language-game","assembly-language-programming","cc65","emulator","nes","nintendo","nintendo-entertainment","nintendo-nes","rom","romhacking"],"latest_commit_sha":null,"homepage":"","language":"Assembly","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gregkrsak.png","metadata":{"files":{"readme":"docs/README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"docs/CODE_OF_CONDUCT.md","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":"2017-03-08T20:33:26.000Z","updated_at":"2025-03-22T12:25:54.000Z","dependencies_parsed_at":"2023-11-14T08:15:07.876Z","dependency_job_id":null,"html_url":"https://github.com/gregkrsak/first_nes","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/gregkrsak%2Ffirst_nes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregkrsak%2Ffirst_nes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregkrsak%2Ffirst_nes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregkrsak%2Ffirst_nes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gregkrsak","download_url":"https://codeload.github.com/gregkrsak/first_nes/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248166926,"owners_count":21058480,"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":["asm","assembler","assembly","assembly-6502","assembly-language","assembly-language-game","assembly-language-programming","cc65","emulator","nes","nintendo","nintendo-entertainment","nintendo-nes","rom","romhacking"],"created_at":"2024-09-24T22:55:58.052Z","updated_at":"2025-04-10T05:50:47.243Z","avatar_url":"https://github.com/gregkrsak.png","language":"Assembly","funding_links":[],"categories":[],"sub_categories":[],"readme":"first_nes project - Your first NES game!\n=================\n\n\n\u003c!---\n[![GitHub issues](https://img.shields.io/github/issues/gregkrsak/first_nes.svg)](https://github.com/gregkrsak/first_nes/issues)\n[![GitHub last commit](https://img.shields.io/github/last-commit/gregkrsak/first_nes.svg)](https://github.com/gregkrsak/first_nes/commits/)\n--\u003e\n[![Assembly language](https://img.shields.io/badge/language-assembly%20language-blue.svg)](https://github.com/gregkrsak/first_nes/blob/master/first_nes.s)\n[![Makefile CI](https://github.com/gregkrsak/first_nes/actions/workflows/makefile.yml/badge.svg)](https://github.com/gregkrsak/first_nes/actions/workflows/makefile.yml)\n\n\nCreate your own games for the Nintendo Entertainment System with this \"starter\" project!\n\nIf you'd like to contribute, [click here](https://github.com/gregkrsak/first_nes/blob/master/docs/CONTRIBUTING.md) so we can synchronize our expectations!\n\n\nBoilerplate code is provided!       |  Instantly get up and playing!\n------------------------------------|-----------------------------------\n![Image: Editing](https://i.imgur.com/EabWh01.png \"Boilerplate code is provided! Just add custom libraries, and graphics if you'd like.\")  |  ![Image: Running](https://i.imgur.com/GcwC0tR.png \"Instantly get up and playing!\")\n\n\nQuick Start\n===========\n\nLinux:\n------\n\nFirst, assuming you have Git installed, get the cc65 binutils:\n\n```\ngit clone https://github.com/cc65/cc65.git\ncd cc65\nmake\nsudo make avail\n```\n\n\nNext, if you don't already have an NES emulator, install Nestopia using your package manager. Instructions\non how to do that aren't covered here, but the following distros *should* be supported:\n\n- Arch Linux\n- Debian\n- OpenBSD\n- Rosa Desktop Fresh\n- Slackware (Slackbuilds)\n- Ubuntu\n- Void Linux\n\n\nNow grab the first_nes project:\n\n```\ngit clone https://github.com/gregkrsak/first_nes\ncd first_nes\nmake\n```\n\n\nFinally, start Nestopia and load the generated ```first_nes.nes``` file. You can move the Luigi-like character back and forth with the A and B controller buttons, which may be mapped to the ```.``` and ```,``` keys initially.\n\n\nMac OS:\n-------\n\nFirst, get the cc65 binutils by following [these instructions](http://macappstore.org/cc65/) (alternatively, if you have ```brew``` installed, type ```brew install cc65```).\n\n\nNext, if you don't already have an NES emulator, install the [Nestopia .app](http://www.bannister.org/cgi-bin/download.cgi?nestopia) on your system.\n\n\nNow, assuming you have Git installed, and the ability to ```make```, grab the first_nes project using the Terminal:\n\n```\ngit clone https://github.com/gregkrsak/first_nes\ncd first_nes\nmake\n```\n\n\nFinally, start Nestopia and load the generated ```first_nes.nes``` file. You can move the Luigi-like character back and forth with the A and B controller buttons, which may be mapped to the ```.``` and ```,``` keys initially.\n\n\nWindows:\n--------\n\nFirst, make sure you have Git and Git Bash. If you don't, click [this link](https://git-scm.com/download/win) to download the latest .EXE installer; make sure you install the Git Bash terminal.\n\n\nAfter Git is installed, open Git Bash and type:\n\n```\ngit clone https://github.com/gregkrsak/first_nes.git\n```\n\n\nNext download the cc65 binutils. Click [this link](https://sourceforge.net/projects/cc65/files/latest/download) to download the .ZIP file.\n\n\nCreate a folder named \"cc65\" and extract the .ZIP file into it.\n\n\nA \"bin\" subfolder will be created; add it to your system path.\n\n\nNext, if you don't already have an NES emulator, click [this link](http://sourceforge.net/projects/nestopiaue/files/1.48/nestopia_1.48-win32.zip/download) to download the .ZIP archive of Nestopia.\n\n\nTo make sure Nestopia installs correctly, create a \"nestopia\" folder and extract the .ZIP file to it; make sure you add this \"nestopia\" folder to your system path.\n\n\nNestopia needs the Microsoft Direct X End User Runtime, which you can install using [this link](https://www.microsoft.com/en-us/download/details.aspx?id=35).\n\n\nNow, install the Make utility using [this link](https://sourceforge.net/projects/gnuwin32/files/make/3.81/make-3.81.exe/download?use_mirror=iweb\u0026download=).\n\n\nFollowing the installation of Make, add its \"bin\" subfolder to your system path.\n\n\nNavigate to the \"first_nes\" folder using Git Bash and type ```make```.\n\n\nFinally, start Nestopia and load the generated ```first_nes.nes``` file. You can move the Luigi-like character back and forth with the A and B controller buttons, which may be mapped to the ```.``` and ```,``` keys initially.\n\n\nCredits\n=======\n\nAuthors:\n--------\n\n- Written by Greg M. Krsak ([email](mailto:greg.krsak@gmail.com)), 2018\n\nStanding on the shoulders of giants:\n------------------------------------\n\n- Based on the [NintendoAge \"Nerdy Nights\" tutorials](http://nintendoage.com/forum/messageview.cfm?catid=22\u0026threadid=7155), by bunnyboy\n\n- Based on [\"Nintendo Entertainment System Architecture\"](http://fms.komkon.org/EMUL8/NES.html), by Marat Fayzullin\n \n- Based on [\"Nintendo Entertainment System Documentation\"](https://emu-docs.org/NES/nestech.txt), by Jeremy Chadwick\n\nAdditional thanks to:\n---------------------\n\n- [@elennick](https://github.com/elennick) for testing the Mac OS quick start instructions (Issue [#22](https://github.com/gregkrsak/first_nes/issues/22)).\n\n- [@hxlnt](https://github.com/hxlnt) for expanding the credits (PR [#33](https://github.com/gregkrsak/first_nes/pull/33)).\n\n- Reddit user u/Rocky99433 for prompting me to fix the Windows quick start instructions (Issue [#21](https://github.com/gregkrsak/first_nes/issues/21)).\n\n- [@ericandrewlewis](https://github.com/ericandrewlewis) for correcting some bad comments (PR [#53](https://github.com/gregkrsak/first_nes/pull/53)).\n\n- [@nortti](https://github.com/nortti) for correcting my iNES header (PR [#55](https://github.com/gregkrsak/first_nes/pull/55)).\n\n\nAbout my Development Environment\n================================\n\nTested with:\n------------\n\n```\nmake\nnestopia first_nes.nes\n```\n\n- **Editor:** [Sublime Text 3](https://www.sublimetext.com/3), 2-space tabs, tabs-to-spaces, 100-column ruler\n\n- **Target CPU:** 8-bit, [Ricoh RP2A03](https://en.wikipedia.org/wiki/Ricoh_2A03) (6502), 1.789773 MHz (NTSC)\n\n- **Assembler:** ca65 (cc65 binutils)\n\n\nTested on:\n----------\n\n- Linux with Nestopia UE 1.47\n\n- Windows with Nestopia UE 1.48\n\n\nAdditional Resources\n====================\n\nGit and GitHub:\n---------------\n\n- [What is Git](https://en.wikipedia.org/wiki/Git) and [how do I use it?](https://git-scm.com/doc)\n\n- Download [GitHub Desktop for Windows and Mac OS](https://desktop.github.com/) or [Git for Linux](https://git-scm.com/download/linux)\n\nNES programming in general:\n---------------------------\n\n- [Wikibooks: NES Programming](https://en.wikibooks.org/wiki/NES_Programming)\n\n- [NesDev](http://nesdev.com/)\n\nThe ca65 assembler:\n-------------------\n\n- [ca65 Documentation](http://cc65.github.io/doc/ca65.html)\n\n- [cc65 GitHub repository](https://github.com/cc65/cc65)\n\nBuilding this project:\n----------------------\n\n- This project's [Makefile](https://github.com/gregkrsak/first_nes/blob/master/Makefile)\n\n- [Makefiles: A Tutorial by Example](http://mrbook.org/blog/tutorials/make/)\n\n\nfirst_nes was written by [Greg M. Krsak](https://github.com/gregkrsak/), 2018. You may send me email using [this address](mailto:greg.krsak@gmail.com). If you'd like to contribute, [click here](https://github.com/gregkrsak/first_nes/blob/master/docs/CONTRIBUTING.md) so we can synchronize our expectations!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgregkrsak%2Ffirst_nes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgregkrsak%2Ffirst_nes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgregkrsak%2Ffirst_nes/lists"}