RG351P Screen Configuration Guide

Last updated: 25OCT2020 (see Changelog for details)

Let’s face it: the RG351P’s 3:2 aspect ratio (and 480×320 resolution) doesn’t look good out of the box. As you can see from my initial impressions, plus my “day three” impressions, I was not impressed with how the games looked. It took me several weeks of research and tweaking, but I’m happy to report that there are adequate settings in this device to tweak the screen so that everything looks great. There are some slight compromises that you have to make, but overall I’m very happy with how this turned out.

Be sure to watch the video embedded below so you can see some of these settings in action!

Table of contents:
Six ways to save graphics settings
Aspect ratio (handheld systems)
Aspect ratio (home console systems)
Adjusting aspect ratio
Integer scaling
Default image vs shaders vs bilinear filtering vs RGA scaling
Shaders

Changelog

Six ways to save graphics settings

Before we dive into screen configuration, I think it’s important to note that for the most part, there are SIX different ways to save settings on the RG351P when using its stock version of the EmuELEC operating system. I want to break them down now, since I will refer to them later in this guide. Note that this specifically applies to the systems that run on the RetroArch backend (which is basically everything but Nintendo DS, PSP, MAME [by default], or Amiga).

The three settings in EmuELEC:

  1. “Games Settings” (EmuELEC): Press START on the RG351P while in the main operating system, and the Main Menu will appear. The second setting is “Games Settings”. Here you can change overall settings across the entire RG351P: desired aspect ratio, graphics effects, and more.
  2. “Per System Advanced Configuration” (EmuELEC). This setting is found in the “Games Settings” menu. This allows you to make the same changes as found in the “Games Settings” menu but by SYSTEM (NES, SNES, etc), as well as to choose which emulator (core) . This is helpful if you want to tweak most of your system’s settings, but it doesn’t cover everything (see #4 below). You can also get to this settings menu by hovering over a game and then pressing SELECT and selecting “Advance System Options”.
  3. “Advanced Game Options” (EmuELEC): You can also adjust settings by game. To do so, navigate to the game you want to adjust, then press SELECT and go into the “Advanced Games Options” menu and make your adjustments there — they will save only for that game.

The other three settings are done in RetroArch, which is the backend system that runs most of the emulators (called “cores”) on the RG351P. This is done via the “override” settings. These are kind of confusing, but essential if you want the best settings, so let’s discuss for a moment.

To override core settings means you can set up settings for an entire core (say, FCEUMM for the NES) and those settings will be persistent for every game that launches with that core, no matter how the EmuELEC settings are configured. You can also override content directories, which is handy if you have a core (like Picodrive) that emulates multiple systems, but you only want one system to have specific settings — this option will save a whole directory (like “Sega Genesis”) and not touch the other directories that use the same core (Sega 32X, Game Gear, etc). Finally, you can also override game settings, so that specific games have their own settings. For example, Star Fox plays best on the SNES 9x 2010 core, but you probably don’t want to use that core for every SNES game. For more information on override hierarchy, check out this guide from RetroArch themselves. Long story short: RetroArch’s “override” settings are more robust than what you’ll find in EmuELEC, and will override your EmuELEC settings anyway. But in order to make EmuELEC more simple, it appears the developer hid the override settings on the device, so we need to set that up.

Go into RetroArch without a core loaded. You can do this by pressing START while in EmuELEC to get to the EmuELEC main menu , then select Quit > Start RetroArch. Or you can select “Close Content” in the Quick Menu when you have a game loaded in RetroArch. Once you’re in RetroArch, go to Settings > User Interface > Menu Item Visibility > Quick Menu. Scroll down until you find “Show Save Core Overrides”, then turn that ON, as well as “Save Game Overrides”. Back out to the Main Menu (on the far left) and select Configuration File > Save Current Configuration. Now, you will have the option to save overrides that are specific to that core or game (and the content directory option also works).

The three settings in RetroArch:

  1. “Save core overrides” (RetroArch): First, before you load any game or core, go to RetroArch Settings > Video and make sure that Bilinear Filtering and RGA Scaling is set to off. Next, load a game either through RetroArch itself, or through the EmuELEC menu. Press your hotkey to get back to the RetroArch menu (L3 + R3 is default), then go into the settings and configure it how you’d like. For example, back out of the quick menu, then go to Settings > Video and turn RGA scaling to ON. Once you have the game settings the way you’d like, go back to the game’s quick menu (on the far left of the RetroArch menu bar) and scroll down until you find Overrides > Save Core Override. Choose that and you should get a confirmation that the core override was saved. At this point, every time you open a game from that particular core/system, you will have those settings.
  2. “Save content directory overrides” (RetroArch): Follow the instructions above, but select Save Content Directory Overrides. This will save the settings for every ROM in that same folder as the ROM you’ve just adjusted.
  3. “Save game overrides” (RetroArch): Follow the instructions above, but select Save Game Overrides. This will save the settings for this specific ROM, and no others.

Okay, now that we know all the ways to save settings, let’s actually look at the settings themselves.

Aspect ratio (handheld systems)

Let’s define aspect ratio. A square screen aspect ratio would be defined as 1:1 (or 1.0), and very few game systems ran at this aspect ratio (the only one I know of is the Watara Supervision). At the other end of the spectrum, a standard widescreen TV aspect ratio would be 16:9, or 1.76. Modern consoles look good at that aspect ratio, but the only system that runs at a ratio close to that is the Sony PSP. Arcade system aspect ratio is all over the place, because each cabinet was different.

The RG351P screen has a resolution of “480×320” pixels — it’s 320×480 rotated 90 degrees, but that’s not really helpful for the purposes of this guide. It’s best to think of it as simply 480×320 pixels, which equates to an aspect ratio of 3:2, or 1.5. This makes the screen ideal for scaling certain devices, but not others. To start, let’s take a look at the pixel dimensions and aspect ratios of common handheld systems:

As you can see from this chart above, the Game Boy Advance, Wonderswan, and Atari Lynx have aspect ratios most similar to the RG351P’s aspect ratio; they’re the closest to 1.50. These systems look best on this device (and in the case of the GBA, scale perfectly). Game Boy/Color and Game Gear games are pretty far from 1.50, so their images will appear squished at fullscreen, or with significant black bars when displaying their native resolution. The Supervision screen is a 1:1 square, so it will have the largest black bars.

Aspect ratio (home console systems)

Home consoles were generally designed for NTSC TVs (which had a 4:3 aspect ratio). Some notes on that:

  • Aspect ratios for some systems are not set in stone. Atari 2600 games didn’t technically have pixels, so they are at a different standard.
  • Some systems introduced scaling for certain games. For example, the PS1 mostly played games at 320×240, but some scenes could scale up to 640×480. Similarly, N64 games could scale from 320×240 up to 640×480.
  • The NES had an aspect ratio of 256×240, but only showed 256×224 on NSTC screens (which were limited to 224 vertical pixels); the 256×240 aspect ratio can still be displayed on emulators. So while the NTSC TV showed an aspect ratio of 8:7 (1.14), most emulators show NES at 16:15 (1.07).
  • Some games actually had different native resolutions on the same system. Most NTSC SNES games had a native resolution of 256×224 pixels, while Star Fox had 224×190, and Yoshi’s Island had 256×208. So for the chart below I stuck with the general NTSC aspect ratios.
  • PAL TVs output a 240-pixel height, so PAL ROMs may have different resolutions than shown below.

Okay, let’s look at home console specs. Again, we’re looking at anything close to 1.50 as being scalable to the RG351P screen.

In the chart above you see that no home console system quite matches the RG351P resolution, but Sega Genesis, Sega CD, and Neo Geo come pretty close.

So what does all this mean, in practical terms? By default, all of the emulators (other than for the PSP and Nintendo DS) are configured to 1.50 (3:2) aspect ratio, to take up the full screen. Certain systems (GBA, Wonderswan, Lynx) look very nice, while others will appear squished at full screen. How squished they look will depend on their native resolution: the further the native resolution is from 1.50, the more squished the image will appear (e.g. a very fat/wide Mario in Super Mario Bros. 3).

Conversely, if you choose to display the games at their native resolution, the further away they get from 1.50, the wider the black bars will be on the sides of the screen. For something like Sega Genesis, the bars will be barely noticeable, while on the NES they will be fairly prominent.

Adjusting aspect ratio

To adjust the aspect ratio to a more accurate ratio, you can either set a global configuration, or adjust the ratio by system.

Global configuration: If you want to make sure you have your entire screen filled no matter what system is playing, then it is very easy to set the default aspect ratio to the screen dimensions (3:2). In EmuELEC, simply press START, then select Games Settings > Game Ratio, and choose “3/2”. This is actually the default setting on the device.

Per system configuration: If you want to have a true aspect ratio for each system, you’ll have to go in and set it for each system. It’s pretty easy. In EmuELEC, press START to bring up the main menu, then select Game Settings > Per System Advanced Configuration. In this menu you will see a listing of all the systems that are currently running on your device (i.e. those that have ROMs in the “Games” partition on your SD card). From there, you can choose a system and adjust the settings specific to that system, including its aspect ratio. Additionally, you can set the aspect ratio to “core provided”, which will use the aspect ratio that the emulator itself recommends.

In general, I have been choosing “core provided” for most systems, or 4:3 for home console systems. For systems with an aspect ratio that’s pretty close to 1.50, I have been leaving them at 3:2 since the squished screen isn’t very noticeable. Note that some cores implement differing aspect ratios for the same system; Genesis Plus GX’s “core provided” will set 4:3 (1.33) for Genesis games, while Picodrive will set 10:7 (1.43) for the same games.

Integer scaling

Because many handheld systems had a much lower pixel density than the RG3151P’s 480×320 resolution, some of these systems will benefit from integer scaling. Integer scaling is defined as scaling by a factor of a whole number (2x, 3x, etc), as opposed to non-integer scaling (1.5x, etc). This is an option in EmuELEC’s game settings menu, which will trigger the same effect in RetroArch. When turned on, RetroArch will scale up to the greatest integer scale below 480×320 resolution. So for Game Boy games, which have a native resolution of 160×144, it will scale up to 2x, or 320×288, with black borders around the rest of the screen. This will keep a 1:1 pixel ratio and everything will look nice and crisp, so long as you don’t mind the black bars around the image.

Of course, the grandaddy of all when it comes to integer scaling is Game Boy Advance, which has a 240×160 native resolution. A 2x integer scale will result in a perfect 480×320 image that will look perfect. Integer scaling is not recommended for home console systems, because their native resolution is so large that you wouldn’t be able to get to 2x scaling anyway.

To set integer scaling, you can set it in EmuELEC using the “Per System Advanced Settings” option that is detailed at the start of this guide.

Default image vs shaders vs bilinear filtering vs RGA scaling

Now that we’ve figured out the aspect ratio for each system, as well as integer scaling for handheld systems, there is another screen issue we must address. The 480×320 (3:2) screen dimension on the RG351P results in poor pixel accuracy for home console systems, which were designed for 4:3 NTSC televisions. The end result is that your horizontal pixel rows will appear squished, resulting in a strange, uneven look in your games. It’s really apparent in on-screen text. I don’t know how else to explain it, so I’m just going to call it “weird pixel effect” for the rest of this section.

pictured above: default image (left) and RGA scaling (right)

There are four ways to manipulate the image. Let’s cover them now:

  • Default image (image above, on the left). Self-explanatory, just live with the weird pixels. This will result in the SHARPEST picture, but a distorted gaming experience. If the distortion doesn’t bother you, then you’re good to go.
  • Shaders. Shaders are like overlays that can either cover the picture in some way (like a CRT filter), or alter the picture itself. Some of these shaders will fix the weird pixel issue, but will also soften the image. Shaders cannot be used at the same time as RGA scaling (see below). I have an entire Shaders section below which includes information on filters, which are similar to shaders.
  • Bilinear filtering. Bilinear filtering is a form of texture filtering that will smooth out hard pixels. This will eliminate the weird pixel effect on most home console systems, but will make the image very soft looking. You can enable this feature by pressing START to bring up the EmuELEC main menu, then select Game Settings > Smooth Games. I recommend you set this up on a per-system configuration (see the first section of this guide on how to do that).
  • RGA scaling (image above, on the right). This setting performs subpixel scaling and bicubic filtering, which fixes the weird pixel effect as well as any shimmering or artifacts in the image. This setting is not found in the EmuELEC settings, but it is found in RetroArch settings.

To me, RGA scaling (with bilinear filtering and shaders off) is the best display for home console systems. It gives the best pixel scaling and has a sharper picture than using bilinear filter. The problem is that RGA scaling will look terrible on handheld systems, so you will want to set RGA scaling up on a per-system basis. There is no way to set per-system RGA scaling in the EmuELEC settings, you have to use RetroArch’s “override” settings (detailed in the first section of this guide).

image courtesy of RetroArch

Shaders

There are dozens of shaders that are packed into EmuELEC, and you can access them by pressing START to get to the main menu, then Game Settings > Shaders Set. Some shaders will look great on handheld systems, like the lcd3x.glsl shader, which provides a dox matrix feel to the devices. I also like the RPI/2xScaleHQ filter for NES games, which smoothes out the rough edges for a bit of a watercolor finish. These shaders can also be accessed in RetroArch via the Quick Menu > Shaders section.

Note that shaders will only work when RGA scaling is turned OFF. But most of the shaders will fix the weird pixel effect on home console devices, too. So you’ll want to make a decision: if you find a shader that works really well with a specific system or game, you could turn on that shader, turn off RGA scaling, and then save the appropriate core/game override.

For more in-depth information on shaders, as well as some examples, check out this guide from RetroArch (check the lefthand menu bar for the examples). But your best bet is to play around with them until you find one that you like per system, and then save them on a per-system basis.

If you have a particular shader that you really like that isn’t pre-loaded onto the system, then go to this GitHub page and download them (click on the green “Get Code” icon, then “download zip”). Place the glsp files in the storage/shaders folder (check out my transfer guide if you don’t know how to do this), and place the glsl files in the storage/shaders/shaders folder. Personally, I recently found the xbrz shaders and I really like them.

Similar to shaders, video filters will alter the image but are powered by the CPU, so they may affect the emulator performance. In other words, they will work fine with NES games, but may cause performance issues for N64 games. Like shaders, filters can only be used when RGA scaling is turned OFF. But given that shaders work so well on this device, you can probably just ignore filters.


Changelog

25OCT2020
– Added instructions on how to load additional shaders
– Added wording about 320×480 rotated 90 degrees for RG351P resolution

24OCT2020
– Published guide

12 thoughts on “RG351P Screen Configuration Guide

  1. Hi Russ

    Thanks for this. It is excellent! And mostly fixes the issue I had with Dreamcast games (aspect ratio plus RGA scaling. Wipeout on PS1 suddenly looks gorgeous! I’ll have to make the same changes in Retroarch on RP2. Oh, there are a couple of minor typos near the start ([ instead of ] to close out [by default], and ration instead of ratio).

    I’ll take a look at the arcade guide for RG351P tomorrow.

    Thanks, I never knew about these screen settings and they make such a difference! Any other per-system shaders that you recommend?

    Cheers Robin

    On Sun, 25 Oct 2020 at 12:01 AM, Retro Game Corps wrote:

    > Russ Crandall posted: ” Last updated: 24OCT2020 (see Changelog for > details) Let’s face it: the RG351P’s 3:2 aspect ratio (and 480×320 > resolution) doesn’t look good out of the box. As you can see from my > initial impressions, plus my “day three” impressions, I was not impress” >

    Like

    1. Thanks for the catches, just fixed the typos! You’d never believe how many times I type “aspect ration” before I catch it 🙂

      I haven’t messed around with shaders much, but I will say the xbrz shader I just added to the guide is really nice.

      Like

  2. Great in-depth article! I tried RGA scaling on my OGA and indeed it looks great! What do you recommend for PSX? I can’t get rid of black bars on the top and bottom of the screen…

    Like

  3. Another excellent guide, Russ! I’m now able to be satisfied with the video on the RG351P. This guide, along with your others, are invaluable to the retro handheld community. Thank you for being the hero we don’t deserve! Keep up the great work, m’friend!

    Like

  4. Have you had any luck saving shaders per content directory? It seems like Emuelec’s settings are always taking precedence and its not loading the override. I like having the color shader enabled with the LCD one for GBA games as an example. The system just doesn’t seem to care/load the shaders after exiting the game.

    Like

    1. Hi, I just played around with it and you’re right, enabling multiple shaders cannot be saved. I tried messing with the EmuELEC settings to make sure they weren’t overriding the RA settings, and then tried various saving methods with the shaders and no luck. It looks like you may have to enable the lcd3x shader as the default and then do the coloring manually. Sorry there isn’t an easier method!

      Like

      1. I was playing around with settings this weekend, and I got it to work with GBA, although I haven’t tested other systems yet. What I did was press start in EmuELEC and select Game Settings. There I set Shaders Set to Auto. After that was set, I loaded a game and set up the shaders the way I liked them, but instead of selecting Apply Changes, I selected Save and then Save Content Directory Preset. That option set up a preset for that content directory and auto-applied it to the current game. I’m not sure if the next step is necessary, but I did it any way, I went back and updated my content directory overrides with the new shaders saved. I have opened up dozens of games with these settings and the all retain the shaders I had set. Thank you for the wonderful guides you continue to make for us and happy gaming!

        Like

  5. Hi;
    I’m curious about what is the best settings for Gameboy and Gameboy Color.

    From what I see in the post, I concluded that I should at least have the following settings:
    1) Scaling: Core provided
    2) Integer scaling

    What are other settings I should be changing to make my GB and GBC looks perfect?

    Like

  6. This was incredibly helpful! You are doing some amazing work and making these portable device much more accessible to people by laying out step-by-step guides. Thank you and I look forward to more of your videos/guides.

    Liked by 1 person

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s