How to achieve a pixel perfect aspect ratio for Beetle Saturn

Hey,

I have been trying for quite a long time to get pixel aspect ratio to work in Beetle Saturn. With the default core settings and the aspect ratio set to core provided, 1:1 PAR, 4:3 or whatever you use will always end up with non-square pixels that can look specifically ugly on the Saturn, since it uses checkerboard dithering so much.

I think I finally found settings that allow for proper pixel aspect ratio, although they have to be changed on a per-game basis (since Beetle Saturn apparently always outputs the same resolution to RetroArch, even though the Saturn obviously can output a variety of resolutions). Maybe this is useful for other people as well so I will post my (kind of clunky) “solution” here. Hopefully there will be a fix for Beetle Saturn in the future, but it looks like the core has been abandoned.

First, you need to put the “self-explanatory” (according to Libretro) horizontal overscan settings to 10. Core provided aspect ratio (4:3) will now work for most games, though I encountered some that need a different aspect ratio setting. Here are my test results so far:

  • Astal (USA): pixel-perfect with 4:3
  • Gokujou Parodius Da! Deluxe Pack (Japan) (Rev A): pixel-perfect with 4:3
  • Keiou Yuugekitai - Katsugeki-hen (Japan): pixel-perfect with 4:3
  • Magical Night Dreams - Cotton Boomerang (Japan): pixel perfect when switching to 1:1 (57:40 DAR)
  • Shinobi Legions (USA): pixel-perfect with 4:3

As you can see, cutting off the overscan by 10 pixels makes most games (at least from the small selection that I tested) work as intended. No content is cut either, just black borders. I think it would make sense to change the default core settings so the horizontal overscan is automatically set to 10 instead of 0 - it’s probably better to cut off some pixels in a handful of games, than to mess up the aspect ratio for all of them!

If you set the retroarch video scaling aspect ratio option to 1:1 PAR, I’m not sure how it’s even possible to get non-square pixels :thinking: Are you really sure it’s not working for you?

There are many resolutions like

* 320×224 (Lo‑Res)
* 320×240 (Lo‑Res)
* 320Ă—256 (Lo-Res, 
* 352×224 (Lo‑Res)
* 352×240 (Lo‑Res)
* 352Ă—256 (PAL)

If the emulator outputs the same resolution always, that could happen. Example a game runs 352 x 240, and emu outputs 320 x 240

2 Likes

If it changes on the fly during gameplay, it will be impossible. If it is just different for each game, you could try the Mega Bezel with aspect set to auto.

2 Likes

The core seems to always assume 352 pixel width per scaling settings (for low res games, haven’t checked high res or PAL) which is wrong in many cases. It adds a black border of 10 px to 320px games, so that they come out at 330. Hence you cut them to 320 with the suggested setting of 10. 352px games don’t have that border so it ends up at 342px with that setting. 1:1 PAR should be at least correct with 352 res games.

Actual internal resolution (with borders or not) can be verified by taking GPU screenshot set to “off”.

1 Like

Yeah. But the image has square pixels. Why do you care about a black border? You can crop it with the cores option. If retroarch AR is set to 1:1 PAR, then the core’s horizontal overscan option just crops the image. You can easily use different core options per game that way. Or… just let the black borders be. They’re black, you can’t see them :stuck_out_tongue: (Unless you’re playing on a 4:3 display.)

I was describing core behavior, not what I particulary care about.

The image has square pixels - true for the internal screenshots. Not true for the actual AR 1:1 PAR output.

Yeah, the pixels are definitely non-square with RetroArch’s PAR setting, except for a few outsiders like Cotton Boomerang. The issue can be reproduced when comparing Beetle Saturn to Kronos, which switches the resolution correctly and outputs 1:1 PAR with square pixels.

By the way this is also the case for Beetle PSX, at least the last time I tested it. RetroArch’s PAR setting will mostly output 4:3, although PlayStation resolutions vary wildly. However, for Beetle PSX it’s not as problematic because it has an internal core setting to use “uncorrected” resolution, so enabling that and then changing RetroArch’s aspect settings to “Core provided” will give you proper square pixels. Standalone Mednafen Saturn has this setting as well, but it has never been implemented into the Libretro core.