Difference between pages "Project Nested" and "Resolution"

From Emulation General Wiki
(Difference between pages)
Jump to navigation Jump to search
(Information from a Sharopolis video about the emulator, featuring an interview with the developer, has been added, and the information is presented more professionally.)
 
(Nope, I misread, reverted.)
 
Line 1: Line 1:
{{Infobox emulator
+
'''Resolution''' is the measure in which how many pixels are displayed on the screen.
|logo =
 
|logowidth =
 
|version = v1.3
 
|active = Yes
 
|platform = [[Super Nintendo emulators|Super Famicom (SNES)]]
 
|target = [[Nintendo Entertainment System emulators|NES]]
 
|developer = Myself086 (Lorraine Corville)
 
|prog-lang = 65C816 assembly, C#
 
|website = [https://github.com/Myself086/Project-Nested GitHub page]
 
|license = MIT License
 
|source = [https://github.com/Myself086/Project-Nested Git]
 
}}
 
'''Project Nested''' is an open-source [[Nintendo Entertainment System emulators|Famicom (NES)]] emulator for the [[Super Nintendo emulators|Super Famicom (SNES)]] written in 65C816 assembly and C#.
 
  
==Download==
+
For emulation of 2D systems, the resolution can only be upscaled, making the pixels more apparent. For emulation of 5th generation consoles and newer, the internal resolution can be increased to make the game look sharper.
{| cellpadding="4"
+
==Console Resolutions==
 +
{| class="wikitable"
 
|-
 
|-
|align=center|{{Icon|SNES-big}}
+
! scope="col"|System
|'''[https://github.com/Myself086/Project-Nested/releases Official releases]'''<br/><small>GitHub releases</small>
+
! scope="col"|Native Resolution
 +
|-
 +
|[[Atari 2600 emulators|Atari 2600]]
 +
|160×192*
 +
|-
 +
|[[Nintendo Entertainment System emulators|NES]]
 +
|256×224 (NTSC), 256×240 (PAL)
 +
|-
 +
|[[Master System emulators|Sega Master System]]
 +
|256×192, 256×224, 256x240 (some PAL games)
 +
|-
 +
|[[Super Nintendo emulators|SNES]]
 +
|256×224, 512×448 (NTSC), 256×240, 512×480 (PAL)
 +
|-
 +
|[[Virtual Boy emulators|Virtual Boy]]
 +
|384×224 (per screen)
 +
|-
 +
|[[Sega Genesis emulators|Sega Genesis]]
 +
|320×224, 256×224, 320x240 (some PAL games)
 +
|-
 +
|[[Game Boy/Game Boy Color emulators|Game Boy/Color]], [[Master System emulators|Sega Game Gear]]
 +
|160×144
 +
|-
 +
|[[Nintendo 64 emulators|Nintendo 64]]
 +
|640×240, 640×480**
 +
|-
 +
|[[PlayStation emulators|PlayStation]]
 +
|256×224p, 256x240p, 320x224p, 320×240p, 512x224p, 512×240p, 640x224p, 640x240p
 +
320x448i, 320x480i, 370x448i, 370x480i, 512x448i, 512x480i, 640x448i, 640×480i
 +
|-
 +
|[[WonderSwan emulators|WonderSwan]]
 +
|224×144
 +
|-
 +
|[[Game Boy Advance emulators|Game Boy Advance]]
 +
|240×160
 +
|-
 +
|[[Pokémon mini emulators|Pokémon Mini]]
 +
|96×64
 +
|-
 +
|[[PlayStation 2 emulators|PlayStation 2]]
 +
|512×224 512×448
 +
640x448?
 +
640×480
 +
|-
 +
|[[Sega Dreamcast emulators|Sega Dreamcast]]
 +
|640×480
 +
|-
 +
|[[GameCube emulators|GameCube]] and [[Wii emulators|Wii]]
 +
|596×448
 +
608×456
 +
640×480<nowiki>***</nowiki>
 +
etc
 +
|-
 +
|[[Nintendo DS emulators|Nintendo DS]]
 +
|256×192
 +
|-
 +
|[[PlayStation Portable emulators|PlayStation Portable]]
 +
|480×272
 +
|-
 +
|[[Nintendo 3DS emulators|Nintendo 3DS]]
 +
|800x240 top screen****
 +
320x240 bottom screen
 
|}
 
|}
  
==History==
+
<nowiki>*</nowiki>This is a rough figure given for simplicity's sake. In reality, the Atari 2600 doesn't really output pixels, and it has no limits on the number of lines it can display. However, it did have a hard limit on the number of horizontal color clocks for drawing the picture (160), and most games only output 192 lines, hence the commonly given resolution of 160x192.
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 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==
 
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.
 
 
 
Emulation works by converting NES ROMs into SNES ROMs using a JIT (Just-In-Time) and AOT (Ahead-of-Time) compiler (with various options) for Windows, allowing them to run on SNES hardware.
 
 
 
Save files are created after the software title runs for a while. These can then be added to the ROM, often improving performance, vastly with some titles, and not much with others.
 
 
 
The following are required:
 
* Up to 8MB of fast HiROM (slow HiROM support planned)
 
* 16KB of SRAM (support for anywhere up to 256KB of SRAM, depending on the software title and settings, planned)
 
* A battery if required by the software title
 
 
 
===Compatibility===
 
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 and 4 are playable, with mappers 1 and 4 having minor glitches, which may reduce compatibility levels with titles that use them, mappers 3, 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 mappers. Additionally, iNES 2.0 is not supported.
 
 
 
Out of the 456 tested titles, 31 (6.80%) are fully playable, 93 (20.39%) are playable but need a full playthrough to test, 29 (8.73%) are mostly playable, 157 (34.43%) crash in the intro or early in-game, 128 (28.07%) 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 to emulate because memory banks can be changed mid-scanline when it draws 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 fully playable title, Battle City, was mostly playable from v1.1 until v1.3, when it hung after the game over screen with visual glitches.
 
 
 
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 ===
+
<nowiki>**</nowiki>While N64 games ran at various resolutions internally, in practice the hardware's VI component always doubled the scale horizontally, and output in either 640x240p or 640x480i, though there is letterboxing at times.
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==
+
<nowiki>***</nowiki>Similar to N64, games ran at various resolutions internally[https://tcrf.net/Help:Contents/Taking_Screenshots#GameCube/Wii], though output is usually in 480p.
* [[NeMul]]
 
  
{{Nes}}
+
<nowiki>****</nowiki>This is the "true" resolution of the top screen and what games will be rendered at in full 3d mode, however, due to said 3d effect the horizontal resolution is effectively halved. Each eye will only see 400x240 and games run in 2d mode will (normally) be rendered at 400x240 [https://en.wikipedia.org/wiki/Nintendo_3DS#Hardware]
  
[[Category:Emulators]]
+
==Integer Scaling==
[[Category:Nintendo Entertainment System emulators]]
+
{{Main|Scaling}}
[[Category:Super Nintendo emulation software]]
+
Upscaling the resolution will only look good if you scale it by integers (2x, 3x, 4x, etc.). If you are scaling with non-integers, you can make the image look better using the [[Shaders_and_Filters#Pixellate|Pixellate]] shader.
 +
[[Category:FAQs]]

Revision as of 14:14, 11 July 2021

Resolution is the measure in which how many pixels are displayed on the screen.

For emulation of 2D systems, the resolution can only be upscaled, making the pixels more apparent. For emulation of 5th generation consoles and newer, the internal resolution can be increased to make the game look sharper.

Console Resolutions

System Native Resolution
Atari 2600 160×192*
NES 256×224 (NTSC), 256×240 (PAL)
Sega Master System 256×192, 256×224, 256x240 (some PAL games)
SNES 256×224, 512×448 (NTSC), 256×240, 512×480 (PAL)
Virtual Boy 384×224 (per screen)
Sega Genesis 320×224, 256×224, 320x240 (some PAL games)
Game Boy/Color, Sega Game Gear 160×144
Nintendo 64 640×240, 640×480**
PlayStation 256×224p, 256x240p, 320x224p, 320×240p, 512x224p, 512×240p, 640x224p, 640x240p

320x448i, 320x480i, 370x448i, 370x480i, 512x448i, 512x480i, 640x448i, 640×480i

WonderSwan 224×144
Game Boy Advance 240×160
Pokémon Mini 96×64
PlayStation 2 512×224 512×448

640x448? 640×480

Sega Dreamcast 640×480
GameCube and Wii 596×448

608×456 640×480*** etc

Nintendo DS 256×192
PlayStation Portable 480×272
Nintendo 3DS 800x240 top screen****

320x240 bottom screen

*This is a rough figure given for simplicity's sake. In reality, the Atari 2600 doesn't really output pixels, and it has no limits on the number of lines it can display. However, it did have a hard limit on the number of horizontal color clocks for drawing the picture (160), and most games only output 192 lines, hence the commonly given resolution of 160x192.

**While N64 games ran at various resolutions internally, in practice the hardware's VI component always doubled the scale horizontally, and output in either 640x240p or 640x480i, though there is letterboxing at times.

***Similar to N64, games ran at various resolutions internally[1], though output is usually in 480p.

****This is the "true" resolution of the top screen and what games will be rendered at in full 3d mode, however, due to said 3d effect the horizontal resolution is effectively halved. Each eye will only see 400x240 and games run in 2d mode will (normally) be rendered at 400x240 [2]

Integer Scaling

Main article: Scaling

Upscaling the resolution will only look good if you scale it by integers (2x, 3x, 4x, etc.). If you are scaling with non-integers, you can make the image look better using the Pixellate shader.