Nesbit is a toy NES Emulator built from scratch in Swift, running on iOS, iPadOS, and macOS.
Nesbit is open source under the MIT License. You can check out the source code on Worktree or install a build directly:
Once you've started up Nesbit, hit the Insert Cartridge button and select a .nes file to load a game.
Once a game is loaded, you can find and edit keyboard control mappings on the Settings screen, accessed from the gear button in the bottom toolbar. Clicking on the game picture hides and shows the toolbar.
Nesbit supports a small subset of NES games - only those using mapper 0 You can download the open source game Thwaite if you don't have any ROMs lying around!
Since Nesbit is an in-progress side project, it doesn't support the full library of NES games, and is missing a few features of the NES hardware. For example, it currently only supports ROMs using mapper 0, only emulates one controller, doesn't play sampled audio, and doesn't implement illegal CPU instructions that some software may use to achieve specific effects.
There is a known issue where audio may crackle or skip from time to time.
You can find the source code on Worktree, and I'm writing about my experience with Nesbit on my blog and on Mastodon.
I'm Jason, and I'm looking for work! I have 12+ years of experience writing software for Apple platforms, from line-of-business apps to consumer photo management. You can find out more about me, my portfolio, and my resume (PDF) on my website.