Project Nested

From Emulation General Wiki
Revision as of 22:41, 21 August 2020 by Childishbeat (talk | contribs) (Some of the information is in more detail, and some of the information from the sentence mentioning the JIT (Just-In-Time) and AOT (Ahead-of-Time) compiler has been moved to Compatibility due to being more suitable for that section.)
Jump to navigation Jump to search
Project Nested
Developer(s) Myself086
Latest version v1.0.2
Active Yes
Platform(s) Super Famicom (SNES)
Emulates NES
Website GitHub page
Programmed in C#
License MIT License
Source code Git

Project Nested is an open-source Famicom (NES) emulator for the Super Famicom (SNES) written in C#.

Development

The emulator was inspired by the SNES originally being designed to be backwards-compatible with the NES and Myself086 wanting to code a JIT (Just-In-Time) compiler. Work on the emulator began in 2015, when math would be done on its potential performance for three years until one day in 2018, when the design could theoretically run games at full speed. Development started in 2018.

A JIT (Just-In-Time) and AOT (Ahead-of-Time) compiler (available for Windows) is used to convert NES ROMs into SNES ROMs. This is used to allow software titles for the NES to run on SNES hardware.

The emulator does not use any enhancement chips, but requires the following to run on a flash cartridge or a reproduction cartridge:

  • Up to 8MB of fast HiROM (additional support for slow HiROM planned)
  • 16KB of SRAM (additional support for anywhere else from 0KB to 256KB of SRAM, depending on the software title and settings, planned)
  • A battery if the software title requires it

Download

Super Nintendo Official releases
GitHub releases

Compatibility

The emulator can emulate the NES at a full 60FPS (frames per second), with support for audio. Mappers 0 (NROM), 1 (SxROM/MMC1), 2 (UxROM) and 4 (TxROM/MMC3/MMC6) have playable support (however, mappers 1 and 4 have minor glitches, which may reduce compatibility levels with titles that use these mappers), with mappers 3 (a form of CNROM) and 5 (ExROM/MMC5) having unplayable support, and mappers 9 (PxROM/MMC2) and 10 (FxROM/MMC4) being unlikely to be supported due to it being declared impossible to accurately emulate CHR bank switching, which both mappers 9 and 10 perform, and there is no support for iNES 2.0.

Most of the 289 tested titles are either unplayable or crash in the intro or early in-game. The titles that are playable are Battle City, Crystalis, Donkey Kong, Mario Bros, Popeye no Eigo Asobi, Super Mario Bros., Tennis, The Legend of Zelda and Volleyball, some of which run with minor glitches, require a patch for idle loops, or require NMI mode "At vblank" to be turned off. A compatibility list is available here.