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.
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.
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.
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:
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!🎉
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.
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.
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!
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 😂
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.
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.
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.
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
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.
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!
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. 😅
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.
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! 💚
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.
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
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.
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.
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.
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).
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)
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 :)
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.
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.
… 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.
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.
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 :)
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).
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 :)
When i have interger scaling on my miyoo mini plus it shrinks psx and i have to manually shut it off each time i play to get full display as the override wont let me save it
That sounds like a bug. I play lots of PS1 on my MM+ with Onion and it doesn't have issues. I'd suggest you do a fresh install of Onion and just bring over your old games and save game files and start fresh.
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!
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?
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
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.
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
It may not be there. Check in your quick menu. If it's not there then check in the 'menu item visibility' in the interface settings to see if you can turn it on. If not then you might be stuck with using the 'filters' in the video menu instead of shaders.
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.
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.
I wondered about this, but I thought as long as frame ratio are same It didn't matter since image don't get stretched but ig screen resolution need to be mutiples for perfect scaling?
Probably a bit too late but my absolute favourite game is Chrono Trigger, and i just saw in this video that you put out that example, saying you want to play that how creators intended. is it possible for you to show your settings for chrono trigger on a RGB30 as close as possible to what the creators wanted us to see?
@@TechDweeb thank you! I thought the main sprite looked like a Bomberman but I didn’t know there was an adventurey Bomberman for Gameboy, I’ll have to check it out
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.
Thanks you! Unfortunately people doing reviews of handheld systems don't talk much about this... I would like to find a system with a screen that can do pixel perfect gba games fullscreen or almost full
Does anyone know if ArkOS has the option to fill the black spaces of the screen with something like a thumbnail? Kinda like the game boy and game boy color fillers
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.
How do I set this up on the miyoo mini plus which has Onion v4.3? I'd like to use the best option that you recommended for this process, however I'm a tad confused. I've installed Onion v4.3 with Tiny Best romset on a new Samsung 128G card. All options have been altered, and I'm confused how to get this shader. Can anyone help, I thought myself techie, but perhaps not 🤷🏼♂️ Thanks in advance 👍👍
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.
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
more of these type of vids pls! lots of us are clueless about most emulation specifics💀
came here to comment the same thing
This is the absolute best explanation I could've hoped for, being so new to the whole thing. Thanks!
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.
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.
I needed that. Thanks for explaining this clearly ❤
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:
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!🎉
Thanks!
This was really helpful 😁 yay!
ROOT BEER MONEY! I'm gonna be drinkin' good tonight!
@@TechDweeblol
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!!! 😁
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.
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!
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 😂
Damn. Your production and editing is on point. I don't even care about this topic but can't stop watching haha
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.
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.
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.
Yes. I would love to see the RG505 PSP video. It is glorious. I learned something today about integer scaling. Cool video. Like always.
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
Very cool video! Don't think I've ever worried about it, but happy to know how it works.
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.
Learned so much! This concept kinda baffled me a bit a first but you cleared it right up. Thanks TechDweeb!
I'd rather have extra black area than ugly scaling.
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!
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 :)
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
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. 😅
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.
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! ^_^
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!
This video is very good for people who don't know much about how emulation works and how it deals with displaying the game.
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
@5:37 this is not a 24x16 image as written, but a 16x12 as spoken.
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 was super useful,I knew very little on the matter. Thanks Dweeb!
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.
bro, this was great to learn. never knew this before, and always wondered why stuff (like the megaman health bar) looked weird
Amazing explanation, TD!
Very nice review! Explained in a way most anyone can get it I think. 😊
Sensei Dweeb dropping some gems 👌
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.
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 :)
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.
There is a mistake at 5:38. It's not 24*16 but 12*16. (if you want to correct it :) )
DOH!
Keep up the awesome videos, you're like the gamer version of Bob Villa this old tech dungeon 😂
That makes me proud
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).
.... Something No Other Retro Handheld RUclipsr Has Done .
.... Now I'm Actually Learning Something .
.... Thx 4 Thee Edification.
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)
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 👏👏
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!
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.
Great video! Thanks
"No spaghetti tonight" cracks me up 😁
Great video, thanks. I learned a lot from it
It's the best "basic" explanation I've seen. At last, I understand how this works. Thanks a lot! 😎
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
What about pixel ratio for NTSC TV? A pixel is not square (1:1) on a CRT TV...
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.
… 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.
What 2:30 is the name or model of the handheld?? I want one
ruclips.net/video/2tqXodEjB8g/видео.html
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.
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 :)
Thanks man... finally someone explained this ❤
Great video thanks!
The Oldie Aunt Photo haunted me! i don't know if she is integer scaled but WOW! ❤
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).
I have spent my entire adult life "sweeping things under the bed", it serves me well
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 :)
When i have interger scaling on my miyoo mini plus it shrinks psx and i have to manually shut it off each time i play to get full display as the override wont let me save it
That sounds like a bug. I play lots of PS1 on my MM+ with Onion and it doesn't have issues. I'd suggest you do a fresh install of Onion and just bring over your old games and save game files and start fresh.
Your the man! Love the content, thanks for the help!!
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!
Brilliant explanation
Could you please explain "crop overscan"? What is that and when to use it?
Great explanation. I seriously didnt have a clue before I watched and now im confused. Thanks alot
😅
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?
Scan line overlays can help reduce the impact of non integer scaling, too.
I want a Tech Dweeb shirt. Great video, thanks ! !
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
great informative content! Also you sound like Zach Hadel, I love that xD
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.
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
Tech Dizzle I subscribed. Appreciate the break down, even though Im guilty of full screen scaling. 😂
Really fantastic video! I've been playing a lot on the Anbernic RG35XX with Garlic. I am not seeing "Shaders" as a menu item in RetroArch. Any ideas?
It may not be there. Check in your quick menu. If it's not there then check in the 'menu item visibility' in the interface settings to see if you can turn it on. If not then you might be stuck with using the 'filters' in the video menu instead of shaders.
@@TechDweeb great, I’ll follow these steps. Thanks for the quick reply and keep up the amazing work!
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.
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.
I often prefer bilinear, because it's closer to blurred pixel edges on crt tvs.
I wondered about this, but I thought as long as frame ratio are same It didn't matter since image don't get stretched but ig screen resolution need to be mutiples for perfect scaling?
Probably a bit too late but my absolute favourite game is Chrono Trigger, and i just saw in this video that you put out that example, saying you want to play that how creators intended. is it possible for you to show your settings for chrono trigger on a RGB30 as close as possible to what the creators wanted us to see?
thanks for the vids.. but can u make some vids what device retro handhelds can use this integer scaling and shaders..
What’s the game shown around the 1:54 mark?
Either Streets of Rage 2 or Bomberman Quest for GBC
@@TechDweeb thank you! I thought the main sprite looked like a Bomberman but I didn’t know there was an adventurey Bomberman for Gameboy, I’ll have to check it out
The issue are games with rectangular "pixels", like the Snes. You can usage integer scale, but the aspect ratio is wrong.
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.
Thanks you! Unfortunately people doing reviews of handheld systems don't talk much about this... I would like to find a system with a screen that can do pixel perfect gba games fullscreen or almost full
Does anyone know if ArkOS has the option to fill the black spaces of the screen with something like a thumbnail? Kinda like the game boy and game boy color fillers
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.
I loved this video, Super interesting and informative!
How do I set this up on the miyoo mini plus which has Onion v4.3?
I'd like to use the best option that you recommended for this process, however I'm a tad confused. I've installed Onion v4.3 with Tiny Best romset on a new Samsung 128G card. All options have been altered, and I'm confused how to get this shader. Can anyone help, I thought myself techie, but perhaps not 🤷🏼♂️ Thanks in advance 👍👍
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.