Honestly, just seeing it for yourself is enough. I thought this whole conversation was a bit ridiculous until I tried it - now playing without integer scaling drives me absolutely mad. It looks like shit.
I spent a decade doing retro graphics programming, including writing a variety of scaling and interpolation algorithms, and I thoroughly enjoyed this video.
Fun fact. The >lowest< vertical resolution that allows for the most accommodation of integers of retro system, with the least effort from the hardware, and the least wasted screen space, is 960p. The worst case scenario of wasted space is, curiously enough, the PSP, which has an odd resolution that won't fit most common screen resolutions, but it still delivers a much bigger picture at 960p @ 3x, than 720p @ 2x, or 1080 @ 3x. In fact, the next integer for 4x would be at 1088, which is why 1080p is "useless" for PSP, and its overall terrible for most retro system integers, as barely anything (nothing AFAIK) will fill the screen using integers. It would take a considerable jump to 1440p, for most systems, to fill as much space as possible using integers, but at that point, you are using integers a bit too high for most hardware to handle, and using a lot more power on the system and screen to do so. However, despite me complaining about 1080p, in the specific case of PSP, you can use a small cheat to get a great 4x integer result, which is using Crop Overscan, which will cut a very (VERY) small portion of the image (a mere 1 pixel from each side (assuming the aspect ratio is 16:9)). Still, i defend that the perfect vertical screen resolution for the use of integers in handhelds is 960p PSP gets a 3x, which is already demanding for most hardware. Its fits the screen fairly well. Playstation, N64, Saturn, get a 4x, and are mostly a perfect fit. Dreamcast, PS2, and Gamecube, get a very comfortable 2X, and all are a perfect fit. The Switch is NOT a retro system, and given its native rather high resolution, it only displays perfectly on a 720p screen, a 1440p screen using a 2x integer, or it can fit a 1080p screen if used in docked mode, which is not done often in handhelds. P.S. There is a lot of confusion about integers, but by and large it can be explained like this: Integers don't necessarily improve image quality, what they do is provide a very accurate, pixel perfect image, without any blur or other visual aberrations or filtering. And they do this at the maximum image size the screen resolution will allow for the respective integer. For example, a 5in image, on a 480p screen, with a 2x integer, has precisely as much image clarity and sharpness as the same 5in image, on a 1440p screen with a 6x integer. Both images are 5 inches regardless, so the integer value beyond 2x is irrelevant. It won't display the image any better, and its using a heck of a lot more resources.
Very good job explaining integer scaling. This is precisely why I got a 1440p monitor; you'll get the most coverage for your buck with integer scaling instead of 1080p. (4k is a different story) With Streets of Rage at 240 lines, a x6 integer scalar would make that 1440 which would be full screen integer scaling. 240 is a common DOS game resolution which I do play a lot of DOS games. With the SNES at 224 lines, x6 = 1344. Centered that is only 50 lines of top and bottom black bars. PS5, XBOX Series X and a Switch w/ mClassic can all do 1440p natively. For 1080p gaming, do keep in mind 1080p on a 1440p monitor will look a bit fuzzy vs 4k so a GPU to drive 1440p will be a bit more than a cheap 1080p card (~$100) but you don't need to spend a small fortune on a GPU to drive 4K. Also 1440p at 32" is a good sweet spot. 1080p at 32" can be a bit pixelated depending on the monitor.
320x240 "mode X" on DOS was kind of a pain, because it's more than 64k of data so it didn't fit in one memory segment and had to be accessed one plane at a time. It was like interlacing, but vertical. Draw the screen in 4 passes, then flip the page to display it. The VGA 320x200 mode was much easier, aside from having non-square pixels.
I have a 32" IPS 1440p screen and a 27" Nano-IPS 1440p screen and honestly it looks best on the second one, it's way sharper, and not just because it is smaller.
@@chronology556I've been using a 1080p screen for retro games, and it definitely has some scaling issues at times, like when showing both NDS screens. A 1440p screen would help, but then it would have scaling issues with another very common size -- 1080. To make it sharp, I'd have to add borders around the screen or downsize to doubled 720p.
@@ToyKeeper I can only recall PS4 and Switch that really use 1080p, and they are not exactly retro. Anyways, I’d just game somewhere else on a 1080p screen for those, if possible.
while i became well aware of these concepts from years of watching my life in gaming, to the point where i notice a lot of this stuff more than most, i think simple guides like this are great for people who dont know about it. Also the video is just fun. your editing style and humor have really come a long way c:
This is a good video Tech Dweeb. I wouldn't mind watching more videos from you like this. This video is not only very informative but also very engaging at the same time.
The other rabbit hole is aspect ratio correction….the shaders can help remove the shimmer from that too (for example on pc I run SNES at 5x integer scaling but with the aspect correction enabled and a sharp-bilinear shader to reduce shimmer from horizontal scrolling.
O Dweeb, I am so thankful for these educational videos of yours. I feel like you are holding my hand, guiding me through the noob-phase of this new hobby.
Damn that was the best explanation of this topic I’ve ever seen! Now I understand what I’m doing when I’m trying different setting for scaling and shaders on retroarch! Thanks!
Great beginner friendly explanation of a complex subject. I was hoping you'd cover the pixel shimmering in motion with non integer scaling. I hear thats a big part of this conversation. Great video!🎉
Such a great video! So well explained and well thought out . Very cool. Thank you. I finally really understand what integer scaling and interpolation actually mean 😂
This may also be a reason why all those classic/mini consoles released in the last several years output 720p instead of 1080p; because the original systems scale better to 720p
Finally a video about this subject I understood from the beginning to the end. Thank you very very much! And now I got why the RGB30 is somehow better than the RG35XX H for playing SNES games (for Pixel Perfect purists haha)
In my many years of emulation, I always chose bilinear filters precisely because it reminded me the most of playing on a CRT, which always looked slightly blurred. There are shaders that can apparently do it better, but bilinear always did a good enough job for my eyes.
Congrats for the video. As always, very well produced and informative... that takes much more work than just random chat facing a camera. About interpolation, you should try bandlimlit-pixel with a low smoothness parameter (0.2 or 0.3) : very even Megaman bars yet very sharp on a VGA screen. Add a Normal2X filter and it becomes super sharp yet very even.
Thanks for the consistent uploads and sharing man. I can relate on so many levels. And it's just so refreshing to hear someone else going through similar. Wishing you the best dude!
My preferred non-integer scaling shader option is sharp-bilinear. It basically means applying integer scaling first, and then using bilinear filter to scale the image to the screen (If we use 2x prescale on NES graphics, it's 256x240 --> 512x480 --> 640x480. Overscans are not cropped.). The loss of sharpness is less glaring than regular bilinear filters (250x240 --> 640x480) and we can even use scanlines if we want. The RetroArch sharp-bilinear shader has a github page that explains all this.
Unless you were somehow playing "modern" (as in, post-PS3/X360) consoles on those old TVs, funnily enough you were playing the game as intended. At least, more like they were intended than the modern screens we use today. When people talk about pixel-perfect, they usually forget that most of the time the developers took the scanlines of CRTs into account when making the graphics of the games, especially for consoles of the 32 and 16 bit era.
If you play old 240p games on a fixed pixel panel (a LCD TV/monitor), there are visual artifacts when the image is not integer scaled, @blooch. Playing on a scanline based television -- your CRT via RF/composite like you said you play -- this does not apply. Again: integer scale problems is only relevant for those who plays on LCD TVs. You play on a CRT, so its not relevant for YOU.
@@EricFraga The point was the games were never meant to look crisp and pixel perfect in the first place. And I said I played like that growing up, not that I do now days. Relax.
@@bloocheez3 "Pixel-picking is a weird habit that I never understood" -- Its needed for those who plays on fixed pixel panels. That's why you don't understand -- because you play only on CRT. Its simple as that :) With RF/Composite directly connected on a LCD, the blurriness is NOT intended, its an artifact of the fact that you're upscaling a dirty signal to a pixel perfect panel (the "dirtyness" kind of dissapears when you play on a CRT). Then, if you upscale with a clean signal (SVideo or RGB for instance) making sure its integer scaling, then gone are the artifacts.
Thank you for explaining this! Videos like these can often filter out all that information out there into an easily digestible format. Googling just isn't the same anymore since they put ads before relevant results. 😅
Well done and I appreciate it! I particularly appreciate the information about shaders. A full video on shaders would also be great. In addition, when you review new handhelds or operating systems, it'd be great if you let us know your preferred shader and how to turn it on and off. Cheers.
This has nothing to do with the video, or integers, or Hermoine the cat but I really love just how cozy every video feels. The nice wooden desk with the soft lighting and talking about old video games with all these retro consoles scattered about. It feels so welcoming 🙂↕️
Thanks so much for saying this! I try hard to capture that exact vibe. It's the way my office is set up IRL, because I'm a cozy retro dweeb, and sometimes it takes some extra work to get that to come across in the video. Nice to hear it's sorta working :)
Great little video. Interger scaling in my opinion is the most important set up for playing any emulation. It will make your games look like how they are supposed to look. In the early days of emulation, scaling was an after thought and wasn't properly understood because getting emulation to be playable was of higher priority.
Developers made those games with old crts in mind, just go 4:3 and use a good crt filter and depending of your liking bilinear filtering (it's usually on by default in most emulators) and the game will look excellent, the way it should.
Exactly the reason why I bought a DSi XL and put cfw on it: guaranteed ips panels and almost *all* older Nintendo stuff up until 3DS looks more or less as ‘perfect’ as you can get it, using relatively modern day Nintendo original hardware.
Maybe I missed it, but integer scaling considerably better than described, since it can make a more desirable rectangular pixel shape again. 6x6, 5x5 etc, assume square pixels (like old handhelds w/ lcd screens). but for consoles, maybe a 5x4 or a 6x5 to make them a touch wide can help, or a touch narrow if the system was trying to cram additional horiz resolution in. Everybody's screen was set up a bit different, including the pixel artists which gets even more annoying.
As far as I know, this is my first RUclips comment ever… This video was super helpful as someone who’s a big dweeb-y myself, but new to emulation. Would love to see more videos like this to help me understand this new world.
If you divide any physical 4:3 screen by the framebuffer resolution of many retro systems, what you get is rectangular regions, not square ones. Thus, integer scaling onto a modern display where each pixel is an approximately square region, does not recreate the original image anyway. It creates a horizontal or vertically squashed image. This effect means you need a high resolution screen with many pixels per original pixel to recreate the original image on. There is no escape other than with machines that happened to use square pixel resolutions in the first place. E.g. PS1, N64, Gameboy Advance, some late arcade machines (but very few golden age ones, if any).
I pay a decent amount of attention to resolution, but didn't really know where to start with shaders. Thanks for the crash-course on how to "fix" non-interger scaled games! 💚
Great video! Any thoughts on the systems that didn't have perfectly square pixels natively? E.g. some modes had pixels that were 1.2x wider than high because they output a signal that was closer to square 1:1 than the 4:3 crt screen
1. This is one of the many things I've always wondered at the back of my mind since coming into this hobby, and this answers that completely. Thanks for that 2. I didn't know they made another Bomberman RPG besides GBA's Bomberman Tournament until I saw the little clip @2:00. (Which was my first ever GBA game as a kid.) Thanks for bringing that to my attention because I'm definitely giving that one a try :)
I’ve been emulating for literal decades and I just now learned the difference between bilinear and nearest neighbor. I’ve just always set it to nearest because it looks good to me.
I'm a uncultured pleb with bad eyes. so I honestly see no difference,. As long as I can see the screen and it isn't glitched to all hell, or the frame rate isn't a slideshow I will never be able to tell the difference..
I can usually tell the difference but, I just don't care as long as the FPS isn't PowerPoint. over like 80 fps in it's w.e. I've been getting computer monitors at Goodwill's for $10-20 bucks a piece and as long as they're displaying 1080p I really don't care.
Very cool video! I always try to use integer scaling whenever possible, but sometimes it's hard to do like when playing GBA on a 3.5 screen, it's just too small. However, for some reason I think a bezel goes a long way helping with that, idk, I think it just looks nice lol GBA and GBC have some really cool filters on the Miyoo Mini for example that really help both with integer scaling (as in borders and matrix simulated squares) and non-integer scaling (to smooth the image like the ones you mentioned).
The bandlimit-pixel shader works really well for this. I think it looks better than the ones mentioned in the video. They're all pretty similar, it's hard to tell.
If you look at the output resolution of a Sega Genesis you'll notice the ratio of horizontal to vertical pixels is not quite 4x3, yet it was designed to be seen on a 4x3 CRT, the discrepancy is even larger on some arcade hardware such as CPS 1,2, or 3 or the PGM. So for those rendering perfectly square pixels would not be recreating the original image intended by the gamemakers.
Maybe similar topic that should have been touched simultaneously is "aspect ratio". If your screen aspect ratio is not equal to the console aspect ratio (assuming square pixel and not TV non square pixel), and you want to maintain the original aspect (a circle being a circle, or a square being a square), they you will have a black border either vertical or horizontal. You then have to mix that topic with integer scaling. Having a few un-used pixel to reach perfection (perfect aspect ratio and/or integer scaling) is sometime not a big price to pay.
LOVE this subject! I may spend more time tinkering with shaders and filters (and overlays on the mini+) sometimes than with actually gaming hahah I would love a follow up of this with a video with some use cases of the main retroarch shaders/filters (I like to combine them but it would be so much easier if I understood what I'm actually doing). Please? 😁
Great idea! I've tested pretty much every shader in retroarch and have a good idea what each does, but ultimately there's only like 3 or 4 that I actually use in different cases. I'll add this vid to my 'to make someday' list :)
Awesome video, this gives us a lot of info in ways relevant to how games work in emulation. How do you get games to run in English instead of whatever the ROM has established as a language? That would be a good video to do, eh?
I don't care that much about integer scaling mist of the time, because even on integer scaling it's not how the artist intended the picture to be. The artist were designing those for crt displays, and we don't have those on handhelds nor on PCs. And no, I'm not talking about the scanlines. I'm talking about the way pixels were displayed back then. The picture looked a lot different compared to LCDs.
You can benefit from using integer Scaling on PC tho. A game you struggle with can easily be played in 4k with a full 60fps. You can keep your windows display on 3840x2160 and play your PC game in 1920x1080 windowed mode if you use the Integer Scaling application. If it's done using AMD version that's in the GPU. Play in 1080p but this time the only difference is you leave the game in 1080p full screen. Even if you game in 360p you will get full blown 4k 60fps. Is it the best, no. Low resolution like this is only good for fraymakers or super smash flash 2. Anything 2d pixelated. For modern PC gaming 1080p upscaled 4k is best quality with IntegerScaler. Same with nearest neighbor scaling.
I remember the first time I messed around with these options on my miyoo mini plus by pressing the menu button and start and getting my gameboy games to look not stretched and the fonts just looked right and gave me a feeling of nostalgia. The only system that is too small on my miyoo mini plus is gba so I play those games stretched out a bit.
… Super Mario Land on Gameboy without integer scaling sets off my OCD, look at how the diagonal lines look weird. Especially on my 👊🏻🐱V90, also, Hermoine YAY!!! Still forgot to show the 👊🏻🐱 pic.
To be honest 640x480 displays are great for the NTSC standard. Upscaling only really looks bad if you use bilinear filtering from 320x240 > 640x480... In that mode pixels become extremely blurry. You can solve it by integer upscaling, but in case you are a newbie to all of this the easiest solution to use a "2x" shader for 320x240 consoles, and a "3x"-shader for those that have weird pixel ratios (like the NES & SNES, GBA etc). This might add a bit of interpolation but since the image is so chunky and perfect before the downscale, the image will still look pixel perfect on a small screen.
Hi, I'm new to emulation handhelds. Some time ago I was thinking about buying the RG35XX, but I gave up due to lack of money. Suddenly I find out that there is a PLUS version out and I went back to searching and came across your channel and I see that there are a lot of versions of it, something with H, some mini ones, etc. And I don't know what to choose. I mainly care about gaming while traveling and I wanted to have access to PS1 games. Is there anything I can do to avoid overpaying? Or is this something else worth mentioning? Sorry for the translator's text, but it will be more convenient for me to write it this way ;D
Isn't it worth paying extra and getting the plus version? It wasn't that I didn't have money, it was that I dont want to buy any crap. But also THX for advice
Thanks for this! I spent all of yesterday researching this! I just got my first retro handheld (R36S) and was getting nauteous playing Pokemon Unbound. Every time I moved my character I'd feel almost carsick. I've been gaming for 30+ years and this was a first. Then I noticed the pixels looked "off" and just plain yucky. Turned on Integer Scaling not really knowing what it was and the only way I could get the pixels to look right made the image so tiny on my nice big screen. My OCD sent me on an internet spiral looking for the perfect screen to play GBA games on and it looks like I'll be getting an RGB30. It was between that and the 351P, but it's so pricey and the loud fan would drive me bonkers. Anyway, thanks again for the vid. Also, what's your great aunt's @? Asking for a friend.
FYI, GBA looks great on most screens if you can use the pixelate shader. My favorite cheap device for GBA is the Pow-Kitty x55 because it's a nice wide screen. Unfortunately we don't have very many options for pixel perfect GBA so shaders are really the only way to get close right now.
love it. So what's it *actually* mean on my pocket when display sizes are: Integer Integer+ Stretch CRT Width ### Also, thanks! would really really love more videos like this. I've been especially desperate to understand what *actually* are the differences between retroarch, batocera, emudeck, retrodeck, garlic, onion, minui, arcos… … … I feel like I am juggling multiple of these systems at once on some devices just because youtube videos tell me to (and it works great), but I have no idea *why* and how they actually differ.
Would appreciate you covering at what PPI integer scaling doesn’t matter as much. GBC on my Mm+ looks awful without integer scaling, imo. On my phone, it looks totally fine due to that much higher res. Where is that cross over point? I don’t have enough devices to test with.
Hard to say. It's probably when the pixels become at least 4x4 or 5x5, but it might be a bit lower or a bit higher. Lots of it also depends on the size of the display, and how physically big the image is that you're looking at in real life. Too many factors I think to give a one-size-fits-all answer.
The Sega Mega Drive, also known as the Sega Genesis in North America, has multiple resolutions, including: Progressive: 320 x 224, 256 x 224 (NTSC), or 320 x 240, 256 x 240 (PAL) pixels Interlaced: 320 x 448, 256 x 448 (NTSC), or 320 x 480, 256 x 480 (PAL)
So how did you end up configuring the super console X to work as an arcade machine for the arcade?? Did that video ever come out?? Currently modding arcade and following your lead!
Best of both worlds for me is going with integer scaling with overscale, I would rather sacrifice a few pixel from the top and bottom than having a smaller image
Everything up to 32-bit era deserves to be played in this way! I was trying to do so on GBA emulation on the RP2S, but it's a pain in the ass 🥲 I am forced to crop (which is usually inconvenient) or to play with huge empty black spaces... I still can't figure out why the KT-R1 is the only 3:2 handheld which can play smoothly up to PSP games: we need gorgeous 3:2 handheld!
My question is: does any of this affect input lag? I've noticed some of these settings on tv's will mess with the input lag causing an increase because of the image processing.
The only setting that I've mentioned here that would affect input lag is possibly the shader. In that case you can change the polling rate in the latency settings to "early' which will help compensate
TechDweeb is making me care about Integer Scaling and perfectly square pixels.
Honestly, just seeing it for yourself is enough. I thought this whole conversation was a bit ridiculous until I tried it - now playing without integer scaling drives me absolutely mad. It looks like shit.
It makes such a huge different…really everybody having a retro gaming handheld should know about it. Good video bro!
This is retro gaming gold I think I even play better when the visuals are integer scaled
I always cared. I just didnt know what was bothering me. Now I understand what was wrong and how to fix it. Lol
@@MashTecyep should be a manual explaning this with every retro hanheld
I spent a decade doing retro graphics programming, including writing a variety of scaling and interpolation algorithms, and I thoroughly enjoyed this video.
Glad it got your blessing then!
The writing in these videos is top notch. The camera pov, the voice... it's all *chef's kiss*
Appreciated!
I like the hands too. Very expressive
Fun fact.
The >lowest< vertical resolution that allows for the most accommodation of integers of retro system, with the least effort from the hardware, and the least wasted screen space, is 960p.
The worst case scenario of wasted space is, curiously enough, the PSP, which has an odd resolution that won't fit most common screen resolutions, but it still delivers a much bigger picture at 960p @ 3x, than 720p @ 2x, or 1080 @ 3x. In fact, the next integer for 4x would be at 1088, which is why 1080p is "useless" for PSP, and its overall terrible for most retro system integers, as barely anything (nothing AFAIK) will fill the screen using integers.
It would take a considerable jump to 1440p, for most systems, to fill as much space as possible using integers, but at that point, you are using integers a bit too high for most hardware to handle, and using a lot more power on the system and screen to do so.
However, despite me complaining about 1080p, in the specific case of PSP, you can use a small cheat to get a great 4x integer result, which is using Crop Overscan, which will cut a very (VERY) small portion of the image (a mere 1 pixel from each side (assuming the aspect ratio is 16:9)).
Still, i defend that the perfect vertical screen resolution for the use of integers in handhelds is 960p
PSP gets a 3x, which is already demanding for most hardware. Its fits the screen fairly well.
Playstation, N64, Saturn, get a 4x, and are mostly a perfect fit.
Dreamcast, PS2, and Gamecube, get a very comfortable 2X, and all are a perfect fit.
The Switch is NOT a retro system, and given its native rather high resolution, it only displays perfectly on a 720p screen, a 1440p screen using a 2x integer, or it can fit a 1080p screen if used in docked mode, which is not done often in handhelds.
P.S.
There is a lot of confusion about integers, but by and large it can be explained like this:
Integers don't necessarily improve image quality, what they do is provide a very accurate, pixel perfect image, without any blur or other visual aberrations or filtering. And they do this at the maximum image size the screen resolution will allow for the respective integer.
For example, a 5in image, on a 480p screen, with a 2x integer, has precisely as much image clarity and sharpness as the same 5in image, on a 1440p screen with a 6x integer.
Both images are 5 inches regardless, so the integer value beyond 2x is irrelevant. It won't display the image any better, and its using a heck of a lot more resources.
This is the absolute best explanation I could've hoped for, being so new to the whole thing. Thanks!
more of these type of vids pls! lots of us are clueless about most emulation specifics💀
came here to comment the same thing
Very good job explaining integer scaling. This is precisely why I got a 1440p monitor; you'll get the most coverage for your buck with integer scaling instead of 1080p. (4k is a different story) With Streets of Rage at 240 lines, a x6 integer scalar would make that 1440 which would be full screen integer scaling. 240 is a common DOS game resolution which I do play a lot of DOS games. With the SNES at 224 lines, x6 = 1344. Centered that is only 50 lines of top and bottom black bars. PS5, XBOX Series X and a Switch w/ mClassic can all do 1440p natively. For 1080p gaming, do keep in mind 1080p on a 1440p monitor will look a bit fuzzy vs 4k so a GPU to drive 1440p will be a bit more than a cheap 1080p card (~$100) but you don't need to spend a small fortune on a GPU to drive 4K. Also 1440p at 32" is a good sweet spot. 1080p at 32" can be a bit pixelated depending on the monitor.
320x240 "mode X" on DOS was kind of a pain, because it's more than 64k of data so it didn't fit in one memory segment and had to be accessed one plane at a time. It was like interlacing, but vertical. Draw the screen in 4 passes, then flip the page to display it. The VGA 320x200 mode was much easier, aside from having non-square pixels.
I have a 32" IPS 1440p screen and a 27" Nano-IPS 1440p screen and honestly it looks best on the second one, it's way sharper, and not just because it is smaller.
1440p is a game changer for emulation.
480p fits perfectly, too.
Also GBA looks great and it integer scales perfectly.
@@chronology556I've been using a 1080p screen for retro games, and it definitely has some scaling issues at times, like when showing both NDS screens. A 1440p screen would help, but then it would have scaling issues with another very common size -- 1080. To make it sharp, I'd have to add borders around the screen or downsize to doubled 720p.
@@ToyKeeper I can only recall PS4 and Switch that really use 1080p, and they are not exactly retro.
Anyways, I’d just game somewhere else on a 1080p screen for those, if possible.
while i became well aware of these concepts from years of watching my life in gaming, to the point where i notice a lot of this stuff more than most, i think simple guides like this are great for people who dont know about it. Also the video is just fun. your editing style and humor have really come a long way c:
I needed that. Thanks for explaining this clearly ❤
Damn. Your production and editing is on point. I don't even care about this topic but can't stop watching haha
This is a good video Tech Dweeb. I wouldn't mind watching more videos from you like this. This video is not only very informative but also very engaging at the same time.
Right? It's such an important subject to us hahah
More to come!
@@TechDweeb Yaaaaaaaaaayyy!!! 😁
The other rabbit hole is aspect ratio correction….the shaders can help remove the shimmer from that too (for example on pc I run SNES at 5x integer scaling but with the aspect correction enabled and a sharp-bilinear shader to reduce shimmer from horizontal scrolling.
You humor at @4:04 is the reason I subscribed
I really love the content I recently found the channel it was time to subscribe. Thank you for the reply
O Dweeb, I am so thankful for these educational videos of yours. I feel like you are holding my hand, guiding me through the noob-phase of this new hobby.
Thanks! More to come!
Yes. I would love to see the RG505 PSP video. It is glorious. I learned something today about integer scaling. Cool video. Like always.
Damn that was the best explanation of this topic I’ve ever seen! Now I understand what I’m doing when I’m trying different setting for scaling and shaders on retroarch! Thanks!
Great beginner friendly explanation of a complex subject. I was hoping you'd cover the pixel shimmering in motion with non integer scaling. I hear thats a big part of this conversation. Great video!🎉
Such a great video! So well explained and well thought out . Very cool. Thank you. I finally really understand what integer scaling and interpolation actually mean 😂
This may also be a reason why all those classic/mini consoles released in the last several years output 720p instead of 1080p; because the original systems scale better to 720p
Finally a video about this subject I understood from the beginning to the end. Thank you very very much! And now I got why the RGB30 is somehow better than the RG35XX H for playing SNES games (for Pixel Perfect purists haha)
In my many years of emulation, I always chose bilinear filters precisely because it reminded me the most of playing on a CRT, which always looked slightly blurred.
There are shaders that can apparently do it better, but bilinear always did a good enough job for my eyes.
Congrats for the video. As always, very well produced and informative... that takes much more work than just random chat facing a camera. About interpolation, you should try bandlimlit-pixel with a low smoothness parameter (0.2 or 0.3) : very even Megaman bars yet very sharp on a VGA screen. Add a Normal2X filter and it becomes super sharp yet very even.
I'd rather have extra black area than ugly scaling.
Having borders just means you can have a fun frame to take up the space
Thanks for the consistent uploads and sharing man. I can relate on so many levels. And it's just so refreshing to hear someone else going through similar. Wishing you the best dude!
So nice to hear!
Learned so much! This concept kinda baffled me a bit a first but you cleared it right up. Thanks TechDweeb!
Very cool video! Don't think I've ever worried about it, but happy to know how it works.
Sega Genesis is mostly 320x224p, only few games developed in Europe had 320x240p. PAL versions of NTSC games have black bars on top and bottom
My preferred non-integer scaling shader option is sharp-bilinear. It basically means applying integer scaling first, and then using bilinear filter to scale the image to the screen (If we use 2x prescale on NES graphics, it's 256x240 --> 512x480 --> 640x480. Overscans are not cropped.). The loss of sharpness is less glaring than regular bilinear filters (250x240 --> 640x480) and we can even use scanlines if we want. The RetroArch sharp-bilinear shader has a github page that explains all this.
Also, low-end handhelds like the Miyoo Mini have no GPU, which means no shaders. They apply "filters" instead.
Solid info!
Yes! The sharp- bilinear shaders are my choice too.
I grew up playing these games on a crappy old TV through RF or Composite. Pixel-picking is a weird habit that I never understood.
Great video.
Unless you were somehow playing "modern" (as in, post-PS3/X360) consoles on those old TVs, funnily enough you were playing the game as intended. At least, more like they were intended than the modern screens we use today. When people talk about pixel-perfect, they usually forget that most of the time the developers took the scanlines of CRTs into account when making the graphics of the games, especially for consoles of the 32 and 16 bit era.
@@batmabelYeah, exactly. Scanline bleed and blurriness is the way to go. The picture was never supposed to be perfect in the first place.
If you play old 240p games on a fixed pixel panel (a LCD TV/monitor), there are visual artifacts when the image is not integer scaled, @blooch. Playing on a scanline based television -- your CRT via RF/composite like you said you play -- this does not apply. Again: integer scale problems is only relevant for those who plays on LCD TVs. You play on a CRT, so its not relevant for YOU.
@@EricFraga The point was the games were never meant to look crisp and pixel perfect in the first place. And I said I played like that growing up, not that I do now days. Relax.
@@bloocheez3 "Pixel-picking is a weird habit that I never understood" -- Its needed for those who plays on fixed pixel panels. That's why you don't understand -- because you play only on CRT. Its simple as that :) With RF/Composite directly connected on a LCD, the blurriness is NOT intended, its an artifact of the fact that you're upscaling a dirty signal to a pixel perfect panel (the "dirtyness" kind of dissapears when you play on a CRT). Then, if you upscale with a clean signal (SVideo or RGB for instance) making sure its integer scaling, then gone are the artifacts.
Thank you for explaining this! Videos like these can often filter out all that information out there into an easily digestible format. Googling just isn't the same anymore since they put ads before relevant results. 😅
I think I understood it?
Any recommendations on what shaders to use on GBA?
Great video as always!
Go for the pixellate shader. It will work on most devices problem free :)
Great video, well explained. Almost makes me want to get a dedicated super-nintendo emulation system to match the pixels perfectly.
Thanks so much Bill! And I couldn't agree more. However I'd take a pixel-perfect GBA system myself. Clamshell, if we're making wishes :)
Well done and I appreciate it! I particularly appreciate the information about shaders. A full video on shaders would also be great. In addition, when you review new handhelds or operating systems, it'd be great if you let us know your preferred shader and how to turn it on and off. Cheers.
This has nothing to do with the video, or integers, or Hermoine the cat but I really love just how cozy every video feels. The nice wooden desk with the soft lighting and talking about old video games with all these retro consoles scattered about. It feels so welcoming 🙂↕️
Thanks so much for saying this! I try hard to capture that exact vibe. It's the way my office is set up IRL, because I'm a cozy retro dweeb, and sometimes it takes some extra work to get that to come across in the video. Nice to hear it's sorta working :)
Great little video. Interger scaling in my opinion is the most important set up for playing any emulation. It will make your games look like how they are supposed to look. In the early days of emulation, scaling was an after thought and wasn't properly understood because getting emulation to be playable was of higher priority.
Developers made those games with old crts in mind, just go 4:3 and use a good crt filter and depending of your liking bilinear filtering (it's usually on by default in most emulators) and the game will look excellent, the way it should.
Thanks!
This was really helpful 😁 yay!
ROOT BEER MONEY! I'm gonna be drinkin' good tonight!
@@TechDweeblol
Keep up the awesome videos, you're like the gamer version of Bob Villa this old tech dungeon 😂
That makes me proud
Amazing explanation, TD!
This video is very good for people who don't know much about how emulation works and how it deals with displaying the game.
Exactly the reason why I bought a DSi XL and put cfw on it: guaranteed ips panels and almost *all* older Nintendo stuff up until 3DS looks more or less as ‘perfect’ as you can get it, using relatively modern day Nintendo original hardware.
Maybe I missed it, but integer scaling considerably better than described, since it can make a more desirable rectangular pixel shape again. 6x6, 5x5 etc, assume square pixels (like old handhelds w/ lcd screens). but for consoles, maybe a 5x4 or a 6x5 to make them a touch wide can help, or a touch narrow if the system was trying to cram additional horiz resolution in. Everybody's screen was set up a bit different, including the pixel artists which gets even more annoying.
As far as I know, this is my first RUclips comment ever… This video was super helpful as someone who’s a big dweeb-y myself, but new to emulation. Would love to see more videos like this to help me understand this new world.
great informative content! Also you sound like Zach Hadel, I love that xD
Sensei Dweeb dropping some gems 👌
If you divide any physical 4:3 screen by the framebuffer resolution of many retro systems, what you get is rectangular regions, not square ones. Thus, integer scaling onto a modern display where each pixel is an approximately square region, does not recreate the original image anyway. It creates a horizontal or vertically squashed image. This effect means you need a high resolution screen with many pixels per original pixel to recreate the original image on. There is no escape other than with machines that happened to use square pixel resolutions in the first place. E.g. PS1, N64, Gameboy Advance, some late arcade machines (but very few golden age ones, if any).
I pay a decent amount of attention to resolution, but didn't really know where to start with shaders. Thanks for the crash-course on how to "fix" non-interger scaled games! 💚
I have a dedicated shader video outlined in my head. That'll be coming someday soon!
@@TechDweeb With how quickly you put out your awesome content, I imagine it'll be pretty dang soon indeed! ^_^
Great video! Any thoughts on the systems that didn't have perfectly square pixels natively? E.g. some modes had pixels that were 1.2x wider than high because they output a signal that was closer to square 1:1 than the 4:3 crt screen
bro, this was great to learn. never knew this before, and always wondered why stuff (like the megaman health bar) looked weird
This was super useful,I knew very little on the matter. Thanks Dweeb!
.... Something No Other Retro Handheld RUclipsr Has Done .
.... Now I'm Actually Learning Something .
.... Thx 4 Thee Edification.
Very nice review! Explained in a way most anyone can get it I think. 😊
1. This is one of the many things I've always wondered at the back of my mind since coming into this hobby, and this answers that completely. Thanks for that
2. I didn't know they made another Bomberman RPG besides GBA's Bomberman Tournament until I saw the little clip @2:00. (Which was my first ever GBA game as a kid.) Thanks for bringing that to my attention because I'm definitely giving that one a try :)
I’ve been emulating for literal decades and I just now learned the difference between bilinear and nearest neighbor. I’ve just always set it to nearest because it looks good to me.
Thanks man... finally someone explained this ❤
It's the best "basic" explanation I've seen. At last, I understand how this works. Thanks a lot! 😎
I want a Tech Dweeb shirt. Great video, thanks ! !
I'm a uncultured pleb with bad eyes. so I honestly see no difference,. As long as I can see the screen and it isn't glitched to all hell, or the frame rate isn't a slideshow I will never be able to tell the difference..
I can usually tell the difference but, I just don't care as long as the FPS isn't PowerPoint. over like 80 fps in it's w.e. I've been getting computer monitors at Goodwill's for $10-20 bucks a piece and as long as they're displaying 1080p I really don't care.
FIRST. I finally got all ports working on my Miyoo Mini!!! WHOHOOOO!!! I love my new yellow v4. I can't wait for the clamshells!
Niiiiiiiiiiice!
"No spaghetti tonight" cracks me up 😁
Very cool video! I always try to use integer scaling whenever possible, but sometimes it's hard to do like when playing GBA on a 3.5 screen, it's just too small. However, for some reason I think a bezel goes a long way helping with that, idk, I think it just looks nice lol
GBA and GBC have some really cool filters on the Miyoo Mini for example that really help both with integer scaling (as in borders and matrix simulated squares) and non-integer scaling (to smooth the image like the ones you mentioned).
Great video, thanks. I learned a lot from it
The bandlimit-pixel shader works really well for this. I think it looks better than the ones mentioned in the video. They're all pretty similar, it's hard to tell.
The Oldie Aunt Photo haunted me! i don't know if she is integer scaled but WOW! ❤
Scan line overlays can help reduce the impact of non integer scaling, too.
If you look at the output resolution of a Sega Genesis you'll notice the ratio of horizontal to vertical pixels is not quite 4x3, yet it was designed to be seen on a 4x3 CRT, the discrepancy is even larger on some arcade hardware such as CPS 1,2, or 3 or the PGM. So for those rendering perfectly square pixels would not be recreating the original image intended by the gamemakers.
Tech Dizzle I subscribed. Appreciate the break down, even though Im guilty of full screen scaling. 😂
I often prefer bilinear, because it's closer to blurred pixel edges on crt tvs.
Maybe similar topic that should have been touched simultaneously is "aspect ratio".
If your screen aspect ratio is not equal to the console aspect ratio (assuming square pixel and not TV non square pixel), and you want to maintain the original aspect (a circle being a circle, or a square being a square), they you will have a black border either vertical or horizontal.
You then have to mix that topic with integer scaling.
Having a few un-used pixel to reach perfection (perfect aspect ratio and/or integer scaling) is sometime not a big price to pay.
I have spent my entire adult life "sweeping things under the bed", it serves me well
LOVE this subject! I may spend more time tinkering with shaders and filters (and overlays on the mini+) sometimes than with actually gaming hahah
I would love a follow up of this with a video with some use cases of the main retroarch shaders/filters (I like to combine them but it would be so much easier if I understood what I'm actually doing). Please? 😁
Great idea! I've tested pretty much every shader in retroarch and have a good idea what each does, but ultimately there's only like 3 or 4 that I actually use in different cases. I'll add this vid to my 'to make someday' list :)
@@TechDweeb I'll be eagerly waiting 👏👏
Great video! Thanks
Awesome video, this gives us a lot of info in ways relevant to how games work in emulation.
How do you get games to run in English instead of whatever the ROM has established as a language?
That would be a good video to do, eh?
I loved this video, Super interesting and informative!
I don't care that much about integer scaling mist of the time, because even on integer scaling it's not how the artist intended the picture to be. The artist were designing those for crt displays, and we don't have those on handhelds nor on PCs. And no, I'm not talking about the scanlines. I'm talking about the way pixels were displayed back then. The picture looked a lot different compared to LCDs.
You can benefit from using integer Scaling on PC tho. A game you struggle with can easily be played in 4k with a full 60fps. You can keep your windows display on 3840x2160 and play your PC game in 1920x1080 windowed mode if you use the Integer Scaling application. If it's done using AMD version that's in the GPU. Play in 1080p but this time the only difference is you leave the game in 1080p full screen. Even if you game in 360p you will get full blown 4k 60fps. Is it the best, no. Low resolution like this is only good for fraymakers or super smash flash 2. Anything 2d pixelated. For modern PC gaming 1080p upscaled 4k is best quality with IntegerScaler. Same with nearest neighbor scaling.
@@100Bucks the talk here is mostly for retro gaming, not modern games
Chuckie Finster grew up to become a retro fanatic RUclipsr ❤
Damn!!! You just taught me some shit bro.
I remember the first time I messed around with these options on my miyoo mini plus by pressing the menu button and start and getting my gameboy games to look not stretched and the fonts just looked right and gave me a feeling of nostalgia. The only system that is too small on my miyoo mini plus is gba so I play those games stretched out a bit.
… Super Mario Land on Gameboy without integer scaling sets off my OCD, look at how the diagonal lines look weird. Especially on my 👊🏻🐱V90, also, Hermoine YAY!!! Still forgot to show the 👊🏻🐱 pic.
To be honest 640x480 displays are great for the NTSC standard. Upscaling only really looks bad if you use bilinear filtering from 320x240 > 640x480... In that mode pixels become extremely blurry. You can solve it by integer upscaling, but in case you are a newbie to all of this the easiest solution to use a "2x" shader for 320x240 consoles, and a "3x"-shader for those that have weird pixel ratios (like the NES & SNES, GBA etc). This might add a bit of interpolation but since the image is so chunky and perfect before the downscale, the image will still look pixel perfect on a small screen.
Good thing I’m in your discord so I know when you upload new videos!
One of the elite few 🕴️
Hi, I'm new to emulation handhelds. Some time ago I was thinking about buying the RG35XX, but I gave up due to lack of money. Suddenly I find out that there is a PLUS version out and I went back to searching and came across your channel and I see that there are a lot of versions of it, something with H, some mini ones, etc. And I don't know what to choose. I mainly care about gaming while traveling and I wanted to have access to PS1 games. Is there anything I can do to avoid overpaying? Or is this something else worth mentioning? Sorry for the translator's text, but it will be more convenient for me to write it this way ;D
In your case it sounds like the original RG35XX will do the job and save you some $. That's what I'd suggest for you 👍
Isn't it worth paying extra and getting the plus version? It wasn't that I didn't have money, it was that I dont want to buy any crap. But also THX for advice
Something that seems worth mentioning,: The Miyoo Mini V4 has an almost full screen GBA pixel perfect screen.
Brilliant explanation
Thanks for this! I spent all of yesterday researching this! I just got my first retro handheld (R36S) and was getting nauteous playing Pokemon Unbound. Every time I moved my character I'd feel almost carsick. I've been gaming for 30+ years and this was a first. Then I noticed the pixels looked "off" and just plain yucky. Turned on Integer Scaling not really knowing what it was and the only way I could get the pixels to look right made the image so tiny on my nice big screen. My OCD sent me on an internet spiral looking for the perfect screen to play GBA games on and it looks like I'll be getting an RGB30. It was between that and the 351P, but it's so pricey and the loud fan would drive me bonkers. Anyway, thanks again for the vid. Also, what's your great aunt's @? Asking for a friend.
FYI, GBA looks great on most screens if you can use the pixelate shader. My favorite cheap device for GBA is the Pow-Kitty x55 because it's a nice wide screen. Unfortunately we don't have very many options for pixel perfect GBA so shaders are really the only way to get close right now.
The issue are games with rectangular "pixels", like the Snes. You can usage integer scale, but the aspect ratio is wrong.
love it. So what's it *actually* mean on my pocket when display sizes are:
Integer
Integer+
Stretch CRT Width
###
Also, thanks! would really really love more videos like this. I've been especially desperate to understand what *actually* are the differences between retroarch, batocera, emudeck, retrodeck, garlic, onion, minui, arcos… … … I feel like I am juggling multiple of these systems at once on some devices just because youtube videos tell me to (and it works great), but I have no idea *why* and how they actually differ.
Would appreciate you covering at what PPI integer scaling doesn’t matter as much. GBC on my Mm+ looks awful without integer scaling, imo. On my phone, it looks totally fine due to that much higher res. Where is that cross over point? I don’t have enough devices to test with.
Hard to say. It's probably when the pixels become at least 4x4 or 5x5, but it might be a bit lower or a bit higher. Lots of it also depends on the size of the display, and how physically big the image is that you're looking at in real life. Too many factors I think to give a one-size-fits-all answer.
What 2:30 is the name or model of the handheld?? I want one
ruclips.net/video/2tqXodEjB8g/видео.html
@5:37 this is not a 24x16 image as written, but a 16x12 as spoken.
There is a mistake at 5:38. It's not 24*16 but 12*16. (if you want to correct it :) )
DOH!
What i love about this channel is that i get crazy Ed Edd and Eddy vibes.
Can't believe you didn't mention the Analogue Pocket. 100 pixels make up a single gameboy/colour pixel, which is pretty insane for a handheld.
The Sega Mega Drive, also known as the Sega Genesis in North America, has multiple resolutions, including:
Progressive: 320 x 224, 256 x 224 (NTSC), or 320 x 240, 256 x 240 (PAL) pixels
Interlaced: 320 x 448, 256 x 448 (NTSC), or 320 x 480, 256 x 480 (PAL)
Ty. You should do more technical videos. Shaders are like a ocean of wtf do I pick
So how did you end up configuring the super console X to work as an arcade machine for the arcade?? Did that video ever come out?? Currently modding arcade and following your lead!
Great explanation. I seriously didnt have a clue before I watched and now im confused. Thanks alot
😅
Best of both worlds for me is going with integer scaling with overscale, I would rather sacrifice a few pixel from the top and bottom than having a smaller image
Everything up to 32-bit era deserves to be played in this way! I was trying to do so on GBA emulation on the RP2S, but it's a pain in the ass 🥲 I am forced to crop (which is usually inconvenient) or to play with huge empty black spaces... I still can't figure out why the KT-R1 is the only 3:2 handheld which can play smoothly up to PSP games: we need gorgeous 3:2 handheld!
My question is: does any of this affect input lag? I've noticed some of these settings on tv's will mess with the input lag causing an increase because of the image processing.
The only setting that I've mentioned here that would affect input lag is possibly the shader. In that case you can change the polling rate in the latency settings to "early' which will help compensate