Changes

Jump to navigation Jump to search

Project Nested

195 bytes added, 20:41, 31 August 2021
The article has been updated for 1.4.1.
|logo =
|logowidth =
|version = 1.34.1
|active = Yes
|platform = [[Emulators on SNES|Super Famicom (SNES)]]
}}
'''Project Nested''' is an open-source [[Nintendo Entertainment System emulators|Famicom (NES)]] emulator for the [[Super Nintendo emulators|Super Famicom (SNES)]] written 3/4 in 65C816 assembly and 1/4 C#.
==Download==
The project began in 2015 as a NES emulator on PC. The emulator was running at full speed, and development was going "pretty well", but was not considered challenging, so it was decided to move it to the SNES. After three years of casual development and thinking about how to achieve 100% performance (otherwise it would have been considered pointless) until summer 2018, the emulator began official development.
The current As of v1.3, the model has been improved since, but not by much. The speed was calculated by multiplying the average amount of times each instruction executed each frame and the overhead. However, the maths were 5 percent off on first implementation. Most implementations were made after approximately one month.
==Overview==
* [https://docs.google.com/spreadsheets/d/1xKZIyNz1DSI3ZBdMfaTEaa_9b6IEABx-ZPwOb6XqcLQ/edit?usp=sharing Compatibility List]
Emulation occurs at up to 60FPS (frames per second) with audio support, but occasional minor slowdown may occur. Software titles that use mappers 0-2 4 and 4 7 are playable, with mappers 1 and 4 having minor glitches, which may reduce compatibility levels with titles that use them, mappers 35, 6, 5-8, 11, 12, 16, 18, 21-26, 32-34, 36-38, 40, 42 and 66 unplayable and , mappers 9 and 10 unlikely to be supported due to it being declared impossible to accurately emulate CHR bank switching, performed by both and 14 and 17 due to being "copier mappers", and the rest, up to 255, being unknown. Additionally, iNES 2.0 is not supported.
Out of the 456 tested titles, 31 37 (67.8096%) are fully playable, 93 92 (2019.3978%) are playable but need a full playthrough to test, 29 47 (810.7311%) are mostly playable, 157 161 (34.4362%) crash in the intro or early in-game, 128 127 (2827.0731%) are unplayable and 1 (0.22%) is unlikely to be supported. For example:* Punch-Out!!! is unlikely to be supported due to using mapper 9/MMC2, as it hard due to emulate because memory banks can be changed difficulties in implementing mid-scanline memory bank changes when it draws drawing characters FE or FD, or sprites, the hardest to implement. This is not as problematic with the background, as the window can be used to draw and switch the characters.* One The graphics in Super Mario Bros. 2 displayed incorrectly and the American version reset after hitting a Shy Guy until v1.4. Some time before the [https://www.youtube.com/watch?v=TthFh27Mx5k Sharopolis interview] on July 10, 2021, the latter issue was reverse engineered and figured out, also fixing many other games that mistakenly reset.* Elite is being used as a model to "aggressively" optimize the EXE in AOT compilation, making emulation run at the same speed, or faster if possible. The game runs slowly with flicker and does not support shooting as of v1.3. Additionally, one fully playable title, Battle City, was mostly playable from v1.1 until v1.3, when it hung after the game over screen with visual glitchesin [[Mesen]].
Others run with minor glitches or require certain options, such as NMI at vblank or stack native return, to be disabled. Overall, at least 50% of games are expected to run in the future. The official compatibility list is available [https://docs.google.com/spreadsheets/d/1xKZIyNz1DSI3ZBdMfaTEaa_9b6IEABx-ZPwOb6XqcLQ/edit#gid=253005073 here].
 
=== Future ===
The following support is being worked on:
* The graphics in Super Mario Bros. 2 display incorrectly and the American version resets after hitting a Shy Guy. The latter issue has been reverse engineered and figured out. Fixing this would also fix many other games that mistakenly reset.
* Elite is being used as a model to "aggressively" optimize the EXE, specifically in AOT compilation, to make emulation run at the same speed, or faster if possible.
==See also==
46
edits

Navigation menu