Most (cores) have different resolutions so really you just need to set the custom x/y resolution (integer scaling, in my experience the first time you set integer scaling for a core if it’s already on you have to shut it off and then back on for it to properly let you set scale… You only have to do this once per system though.) per system (core).
I personally let the y resolution (whichever’s vertical, lol), to the highest I can without the image hitting the edge of my screen then I raise it one more time so I’m loosing some image at the bottom and top, then just match whatever (#x) that’s giving me to the x resolution.
Some people up the custom y resolution as high as they can without touching the top/bottom then match the x resolution(#x). Which leaves you with black borders all around your game. They tend to fill that blackness with an overlay, lol.
Also some people for systems like the nes, and snes do either of the above then make x resolution (#x) one higher than the y resolution. So the image seems less skinny.
Others run no integer scaling, but that’s another issue all together, mainly because alot of the CRT shaders are picky and want an integer scale or things won’t look right.