Scaling problems at 5x integer

I’m noticing scaling artifacts on several cores using 5x integer scale on the Y axis. I thought integer scale was supposed to take care of that. Is this normal?

No issues here. I have clean scaling up to 9x. Which cores, specifically?

It seems you’re doing something on your end that’s causing the many scaling issues you’re having, presumably the custom viewport thing, which is just further scaling your output.

[QUOTE=hunterk;22538]No issues here. I have clean scaling up to 9x. Which cores, specifically?

It seems you’re doing something on your end that’s causing the many scaling issues you’re having, presumably the custom viewport thing, which is just further scaling your output.[/QUOTE]

is “custom viewport” not the same thing as “custom resolution” under “video options?” I may have misspoke earlier.

I have my monitor’s output at 1080p and my retroarch render resolution matches this, 1920x1080. I have turned integer scale ON for all systems and set a “custom resolution” for each system to get perfect integer scaling.

Is there something amiss in my config? I’ve tried windowed fullscreen on/off and fullscreen on/off, that didn’t seem to matter though.

I am noticing scaling problems with 5x on several cores: NES, SNES, Genesis, N64 and Doom all exhibit the behavior. I provided several shots with the scanline overlay to make it easier to see. The weird garbage at the top/bottom gets cropped, but I get scaling artifacts toward the edges of the screen. Everything looks fine at scale 1-4x, but 5x looks off.

Explore Patrick_McCleery Explore Patrick_McCleery Explore Patrick_McCleery Explore Patrick_McCleery Explore Patrick_McCleery

Yeah, there’s no way to make the screen larger without scaling it. If you’re cutting off unused crap, it’s getting scaled to cut that stuff off.

In the cfg, there’s video_fullscreen_x/y, which tells it to render at that actual resolution when in fullscreen (your TV/monitor may not cooperate; it will generally only go to resolutions that your display says are valid). There’s video_windowed_fullscreen true/false, and you’ll generally want false (for exclusive fullscreen). There’s custom_viewport_width/height, which scales RA’s output to whatever you put but only when you have the aspect ratio index set to ‘custom’.

To cut stuff off and keep integer scaling, you could set a fullscreen_x/y res larger than your actual screen that’s still an integer multiple (e.g., 1600x1200 for 5x) and that will avoid the additional scaling of the custom viewport.

Oh, weird. Did not know that.

In the cfg, there’s video_fullscreen_x/y, which tells it to render at that actual resolution when in fullscreen (your TV/monitor may not cooperate; it will generally only go to resolutions that your display says are valid). There’s video_windowed_fullscreen true/false, and you’ll generally want false (for exclusive fullscreen). There’s custom_viewport_width/height, which scales RA’s output to whatever you put but only when you have the aspect ratio index set to ‘custom’.

To cut stuff off and keep integer scaling, you could set a fullscreen_x/y res larger than your actual screen that’s still an integer multiple (e.g., 1600x1200 for 5x) and that will avoid the additional scaling of the custom viewport.

awesome! I’ll try this when I get home.

[QUOTE=hunterk;22569] To cut stuff off and keep integer scaling, you could set a fullscreen_x/y res larger than your actual screen that’s still an integer multiple (e.g., 1600x1200 for 5x) and that will avoid the additional scaling of the custom viewport.[/QUOTE]

I set “use fullscreen mode” ON “Windowed fullscreen mode” OFF I entered 1536x1200 for fullscreen_x/ y I set aspect ratio to custom I have integer scale ON Custom viewport width/ height is at 1536x1200

But, when I launch RA, my fullscreen x/y is reset to 0. I can’t seem to get the fullscreen x/y to stick.

Fullscreen resolution is the resolution that RetroArch is going to run at, not the resolution it will scale games to. Unless you have created a custom resolution, I very much doubt that your video driver is accepting 1536x1200. 0 means that it will use the current desktop resolution.

In the Nightly builds, Options > Video Options > Custom Ratio is where you would set up custom scaling. In the older Stable builds, it’s in Settings > Video Options > Custom Ratio. Note: I use GLUI in Nightly, and RGUI in Stable. The menu options don’t move around, just the look.

Viewport adjustments are, I believe, if you are trying to crop the edges off to simulate overscan.

[QUOTE=larch1991;22601]Fullscreen resolution is the resolution that RetroArch is going to run at, not the resolution it will scale games to. Unless you have created a custom resolution, I very much doubt that your video driver is accepting 1536x1200. 0 means that it will use the current desktop resolution.

In the Nightly builds, Options > Video Options > Custom Ratio is where you would set up custom scaling. In the older Stable builds, it’s in Settings > Video Options > Custom Ratio. Note: I use GLUI in Nightly, and RGUI in Stable. The menu options don’t move around, just the look.

Viewport adjustments are, I believe, if you are trying to crop the edges off to simulate overscan.[/QUOTE]

Yep, I’m trying to crop overscan because I don’t want to dedicate half of my display to black bars and useless information.

So, are you saying that this is a video driver problem? I’m on a raspberry pi 2; I don’t know what it’s limitations are, really.

There’s nothing wrong with the video driver, there’s just no way to get perfect integer scaling with no letterboxing on a 1080p (i.e., 4.5x scale) screen. You will always either cut some off (using 5x integer as your fullscreen_x/y) or have some ugly scaling if you use a custom viewport. However, you could do 3x integer with a fullscreen_x/y of 1280x720, which most monitors will accept as a valid resolution without looking like complete garbage (TVs usually handle it better than PC monitors).

That’s what I want to do; for example: I want to scale NES to 1536x1200. I want to integer scale the the 240 to 1200 (5x), cutting off 120 pixels on my 1080p display. Basically, I want to play NES with the entire overscan area cropped off, taking full advantage of my display area. But I want to maintain integer scaling while I do this.

What’s strange is that I set my video fullscreen x/y to 1536x1200, but it says “0” in the Retroarch GUI.

Okay, sorry for the sometimes contradictory advice on my part. Custom viewport is indeed what you’ll need to go larger than your maximum screen resolution, and as long as you give it an integer scale, it should avoid getting ugly. I just tested this on my linux laptop to make sure it should be applicable to your system:

video_windowed_fullscreen = "false"
video_crop_overscan = "false"
video_scale_integer = "true"
video_fullscreen_x = "0"
video_fullscreen_y = "0"
custom_viewport_width = "1536"
custom_viewport_height = "1200"

then set the aspect ratio to ‘custom’

[QUOTE=hunterk;22642]Okay, sorry for the sometimes contradictory advice on my part. Custom viewport is indeed what you’ll need to go larger than your maximum screen resolution, and as long as you give it an integer scale, it should avoid getting ugly. I just tested this on my linux laptop to make sure it should be applicable to your system:

video_windowed_fullscreen = "false"
video_crop_overscan = "false"
video_scale_integer = "true"
video_fullscreen_x = "0"
video_fullscreen_y = "0"
custom_viewport_width = "1536"
custom_viewport_height = "1200"

then set the aspect ratio to ‘custom’[/QUOTE]

Okay, I got this to work (yay!) by fiddling around with the settings some more. What I actually needed to do was the following:

(this is for NES):

custom_viewport_width = “1536” custom_viewport_height = “1200” custom_viewport_x = “1536” custom_viewport_y = “1080”

Although I’m not sure the viewport x/y is necessary .

No more overscan! :smiley:

Although, now my scanline overlay doesn’t work right, I’m guessing because I need to make it for 1536x1200? But won’t that get scaled to 1080 and look wrong?

I think the overlays are scaled to the viewport, so it should still match up. At least, that was part of how I ensured that everything was still scaling correctly on my system.

I had to make a new overlay with slightly thinner scanlines, but now everything looks awesome :smiley:

This is perfect to me. It’s close to a 4:3 aspect ratio, the pixels are in a 6x5 ratio, which is very aesthetic. The scaling is perfect, and I think the scanlines, full black, also look perfect. I’m using the dotmask shader, which probably isn’t apparent in the shot, but it adds a little bit of extra filtering. There’s no ugly and pointless overscan, and I’m taking maximum advantage of my display area.

It seems like it has taken me days (weeks?) of toying with this off and on, but it was worth it.

Thanks again for being a tremendous help in figuring all this out :slight_smile:

Edit: that pic sucked and didn’t do this thing justice, so here’s the direct link (enlarge for proper viewing): Explore Patrick_McCleery

ah yeah, looks great :slight_smile:

glad you’re all set