{"id":19469794,"url":"https://github.com/plugyawn/pineapple-emulator","last_synced_at":"2026-06-12T06:03:06.338Z","repository":{"id":68271787,"uuid":"547766674","full_name":"plugyawn/pineapple-emulator","owner":"plugyawn","description":"A C++ based emulator for the CPU of the Nintendo Entertainment System that ran on the Ricoh 2A03, with limited PPU capabilities.","archived":false,"fork":false,"pushed_at":"2022-10-08T11:04:09.000Z","size":143,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-25T14:41:09.284Z","etag":null,"topics":["architecture","cpu-emulation","emulation","emulator","nes","ppu-emulation","systems"],"latest_commit_sha":null,"homepage":"","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/plugyawn.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":"2022-10-08T08:49:26.000Z","updated_at":"2023-07-04T21:50:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"c2db4be2-e6eb-47f0-98e5-b6d87b9457ca","html_url":"https://github.com/plugyawn/pineapple-emulator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/plugyawn/pineapple-emulator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plugyawn%2Fpineapple-emulator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plugyawn%2Fpineapple-emulator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plugyawn%2Fpineapple-emulator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plugyawn%2Fpineapple-emulator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/plugyawn","download_url":"https://codeload.github.com/plugyawn/pineapple-emulator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plugyawn%2Fpineapple-emulator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34231212,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-12T02:00:06.859Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","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":["architecture","cpu-emulation","emulation","emulator","nes","ppu-emulation","systems"],"created_at":"2024-11-10T18:54:07.853Z","updated_at":"2026-06-12T06:03:06.320Z","avatar_url":"https://github.com/plugyawn.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![forthebadge made-with-python](https://forthebadge.com/images/badges/built-with-love.svg)](https://www.python.org/)\n[![forthebadge](https://forthebadge.com/images/badges/made-with-c-plus-plus.svg)](https://forthebadge.com)\n\n\u003cdiv align = center\u003e\n\u003ca href = \"github.com/plugyawn\"\u003e\u003cimg width=\"400px\" src= \"https://user-images.githubusercontent.com/76529011/194703131-31f83e29-e1cc-4877-ab12-e358750ab697.png\"\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n## ```pineapple-EMU``` is a test ```MOS 6502``` processor emulator for NES ROMs.\n\nWe wanted to play Mario on the NES but couldn't, so we wrote an emulator for the NES on our own -- or tried to, anyway. This is an abridged version of ```OneLoneCoder```'s tutorial on a complete NES emulation, implemented and tested for the ```MOS 6502``` chip aboard the original NES.\n\nThe snapshot below captures our emulator using the ```OLCPixelEngine``` to blit a live-feed of the emulation process.\n\n![Our NES Emulator](https://user-images.githubusercontent.com/76529011/194702025-4a96385f-1cfb-4b26-83f1-acc92824bba5.png)\n\n## Aside: A little note from the devs.\n\nNote that While we have a functioning Picture Processing Unit too, we were not able (yet) to connect the PPU\nto the cartridge, which is how sprites are blitted onto the screen.\n \nIn essence, each peripheral of the NES is to be thought of as an object connected to the Bus, which\nas most online resources rightly call, is the heart of the architecture of the NES.\n\nWe have emulated the processor (the ’6502), the PPU (the ’2C02), as well as the general functioning\nof the cartridges and the different kinds of RAM accessed by the bus during the working of the NES.\nRight now, our emulator can output to some degree of accuracy the functioning of the processor when\ngiven a .NES file, which is essentially a dump from a physical NES cartridge. We have tested it out with\nthe NES testing suite, and our results corroborate well with the sources that we referred to. We believe our\nemulation is acccurate.\n\nPaired with a disassembler function, our project is a good way to look at actual programs from the\n1980s and see how they were written and structured.\n\nThe project would not have been possible without OneLoneCoder’s PixelGameEngine, which is an\nopen-source tool that we used to display our emulated data on the screen.\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplugyawn%2Fpineapple-emulator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplugyawn%2Fpineapple-emulator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplugyawn%2Fpineapple-emulator/lists"}