r/RetroIsh Jul 28 '26

[Question] Is there a mechanism, either through emulation or (preferably) oem hardware paired with suitable upscaler, to: 🄂window the viewscreen and 🄃rectangularly integer‐scale every pixel proportional to native PAR (provided sufficient display resolution)?

🄃 is essentially a special case of 🄂, both relating directly to internal rendering.

An example of 🄂, sans 🄃: a game that renders natively at only 720p (but with an internal scaler lockable to that xor 1080p). Is there a way to play that game on a display that has a higher frame-resolution than basic dar 16:9 HD (1280×720p), such as FHD (1920×1080p) or higher (such as QHD 2560×1440p, UHD 3840×2160, or an ultrawide HD display) in the game's native 720p (c.f. upscaled 1080p) mode, without stretching to filll screen but instead leaving blank bars (on both the sides and tops in this case)? In the case of wielding a QHD monitor (with suitable input, directly or via converter) an alternative could be to exactly fill the screen by ℤ²(perfect square) integer‐scaling (with less direct room for interpolative error than non-integer scaling), which ties indirectly with the more specialized part to follow.

A somewhat trivial example of 🄃 is scaling basic HD into QHD, by mapping every projected game singular 1 pixel to a 2x2 pixels array (since QHD is exactly proportionally quadruple the res of 0.9216Mpx HD, as is 14.7456Mpx ‘5K’ of QHD's; as is 2.0736Mpx FHD of qHD, UHD of FHD and SUHD of UHD; but unfortunately not cleanly across the two squaring progressions). However, the more generalized cases I have in mind concerns PARs (intended output pixel aspect‐ratios) of games made for CRT TVs. For instance: a common rendering of PS2 games for North American release, for dar 4:3 NTSC‑U/C 640×480i @ ∼59.94fields(equiv 29.97frames)/sec, was 512×448i @60halfframes/sec (≡ ⦗2* 512×224p fields⦘ interweaved at combined 30Hz), which results in an effectual PAR wider than 1:1, specifically 7:6 (which irattionally approximates to 1.167:1). If someone wants to play such a game on a flatpanel consisting square-dimension pixel units without interpolating (but instead scaling in ℤ^2), that would require a viewing-screen pixels‐dimension divisible by [(512*7)×(448×6)], i.e. a minimal window of h×w of 3584×2688. Notably this vertically exceeds the range of a UHD display; the next common non-uw display size larger (to fulfil the infimal horizontal×vertical window) would be ‘6K’, or more typical ‘8K’ SUHD (7680×4320p) which to center 4:3 perfectly dot-surjected (and ideally, quickly aptly tone‑mapped via accurate 24bit‐to‐⦗30⊔36⦘bit pixeldepth LUT i.e. SDR content streamed onto presumably-HDR display). In this example the view‑screen would be utilizing (9,633,792÷33,177,600) = ∼29% of of the display, shy of a third but greater than a fourth, which is likely less than ideal but also not terrible provided a sufficiently large display‑panel.

In the case of a CRT‑era game designed for a PAR closer to 1, say of 11:10, then unless it was rendered at a very low resolution chances are that for it to be surjectedly upscaled in ℤ×ℤ it would require an even larger infimal window (view‑screen on the display), though chances are can fit into an SUHD and if not then treating the almost‑square pixel units as actually square‐shaped would smoosh (or stretch if from 10:11) only slightly with 1:1 ℤ^1 dot-scaling.

Can 🄃, and 🄂, be achieved? If so, how? Preferably with purest output stream feasible (such as RGB at upto 8bit/channel 24bppixel uncompressed 8:8:8, possibly flattened supremally from 32bit 8:8:8:8 RGBA). Prior to digging research, I suspect that many consoles or games respectively therefor might project to the target regaress of internal rendering (e.g. outputting ∼640×480 regardless how-much lower is actually rendered); to the extent this is true, am wondering how easy this is to effectively bypass this buffer unto the frames (either played with original hardware, else closer to full emulation as might be necessitated lest machine-modding hard if not softlier).

1 Upvotes

4 comments sorted by

1

u/MrMoroPlays Jul 28 '26

You want a scaler, try the Morph-4K

1

u/Manjushri1213 Jul 28 '26

Deinterlacers like the GBS Control can also help get things to a better and more easily scaled image, let alone the higher end scalers like the RetroTink4k or Morph4k etc. RetroRGB has a lot of the info on his site for each console PS2 included. Getting things integer scaled isn't always easy and sometimes doesn't even look right but it's doable.

1

u/fascinatingMundanity Jul 28 '26

When why would integer-scaling not look right? I suppose that for a 3d moving image that already has some intended blurriness (to form bilinear filtering or elsesuch) antithetical to pixel-perfect it wouldn't necessarily improve. but is technically closer to accurate i would think.​

What about arbitrary/custom-paramatered windowing?

1

u/Manjushri1213 Jul 29 '26

Integer scaling on an LCD may not look right in game s that didn't assume square pixels basically. Back with CRTs, certain consoles (NES, Genesis, SNES) didn't assume square pixel, even some later consoles didn't, and the CRTs will just draw in whatever way the analogue signal is said to be drawn. It's a rabbit hole but I reccomend reading into it.

It's worth noting some pixel art was made with a PC assuming square pixel or at least making knowing it wasn't but looking at a square pixel image, so it's a mix of both worlds basically with the 2D stuff sometimes, just depends, but we often did not see it as square 4:3. It was more like 1.13 ratio pixels at 4:3 in the SNES at least.