Theory: What is Pixel-Perfect Display and Why It’s Important

For retro games, such as those on NES and GBA platforms, the resolution settings and the physical resolution of the gaming device are crucial. These games were designed to strictly adhere to their original resolutions, unlike modern games that accommodate various display resolutions.

To achieve the original visual experience of the games, we need pixel-perfect display, where each pixel in the original game corresponds to one or more pixels on the screen. For example, displaying the game at twice its original resolution means one pixel in the game corresponds to four pixels on the screen. This prevents pixel blurring and distortion while maintaining the aspect ratio of the original game, ensuring the image is not stretched or compressed disproportionately. If your gaming device has a sufficiently high resolution, such as 1080P or higher, maintaining the aspect ratio is even more important. This ensures the image is not disproportionately stretched or compressed, and the high resolution means that even if the pixels are not displayed pixel-perfectly, the visual impact is limited or even minimal. This is similar to how a high enough resolution can make jagged edges unnoticeable, but incorrect aspect ratio can make the image look awkward.

Let’s take a practical example. The image below shows the resolutions of some retro gaming platforms and handhelds. If we want to play NES games on the RG35XXP, we can run NES games at the maximum integer multiple resolution, which in this case is 2x resolution. To get a more authentic gaming experience, we shouldn’t run the NES game in full screen on the RG35XXP because the NES game’s aspect ratio is 16:15, while the RG35XXP’s aspect ratio is 4:3. If we run the game in full screen, the game image will be disproportionately stretched to 4:3. Running the game at 2x resolution while maintaining the aspect ratio will leave black bars on the left and right sides of the RG35XXP screen but will provide a better display effect.

The image is in SVG format. Open the image in a new tab and zoom in for a better display effect.
Resolutions of Retro Gaming Platforms and Handhelds

Therefore, the choice of gaming device is also crucial. It’s generally better to choose a device based on the platform you want to play on. For instance, if you use a 16:9 device to play a 16:15 game, large black bars will appear on both sides of the screen. This example only considers aspect ratio, but choosing a gaming device also requires considering the pixel-perfect display issue.

Practice: Using RetroArch on RG35XXP to Set NES Games for Pixel-Perfect Display

When you start the game, it defaults to full-screen display, which stretches the image to some extent and is not pixel-perfect. Although the default shader sharpens the image, it can’t match the clarity of pixel-perfect display. Below are three images we will use as typical examples for comparison. We can observe the text on the right side of the game screen to see the differences more easily:

  • Comparison of the first and second images: The sharpening has some effect. The text “谋略” in the second image appears more smudged, while the first image is clearer, and the text thickness is more uniform
  • Comparison of the first, second, and third images: The text in the first and second images looks squished, while the text in the third image has a more normal proportion. This is due to the disproportionate stretching of the image
  • Comparison of the first and third images: Even with sharpening enabled, the clarity and cleanliness of the image are better with pixel-perfect display, even though it wastes some screen space. This is why we mentioned in the theory section that it’s better to choose the gaming device based on the games you want to play, or a lot of screen space might be wasted

First image: Full screen display with shader sharpening enabled

Second image: Full-screen display with the shader disabled

Third image: 2x original game resolution with pixel-perfect display and shader disabled

Now, let’s see how to configure pixel-perfect display on RetroArch. After starting the game, press “Menu + X” to enter RetroArch’s configuration menu. The initial menu you enter is the Quick Menu. Press “B” to go back to the previous menu, which is the Main Menu.

  • Disable shaders: Main Menu → Quick Menu → Shaders → Video Shaders → Turn it off

    retroarch-config-screen-with-video-shaders-on retroarch-config-screen-with-video-shaders-off

  • Set integer scale: Main Menu → Settings → Video → Scaling → Integer Scale → Turn it on

    retroarch-config-screen-with-integer-scale-off retroarch-config-screen-with-integer-scale-on

  • Set aspect ratio: Main Menu → Settings → Video → Scaling → Aspect Ratio → Choose the corresponding ratio, such as 16:15 for NES games

    retroarch-config-screen-with-aspect-ratio-full retroarch-config-screen-with-aspect-ratio-16-to-15

  • Save configuration: Main Menu → Quick Menu → Overrides → Save Core Overrides → Click to save, a success message will appear, and the “Active Override File” will indicate the loaded configuration file. I saved it as a core configuration, so loading this core will load the current configuration. You can also save it as other configurations, such as “Save Game Overrides”, so that the configuration will be loaded only when the current game is loaded. If you don’t save the configuration, the changes will only be effective for the current session and will be lost after exiting RetroArch

    retroarch-config-screen-with-save-core-overrides retroarch-config-screen-with-save-core-overrides-saved-successfully

Happy reading and happy gaming!