Scaling is a very important thing for emulation.
Nearest neighbour scaling
Nearest neighbour scaling scales the image without using any filters. When scaling up, this has the effect of duplicating making columns and rows of pixels at regular intervals. If the image is scaled to a multiple of the original resolution, this is called integer scaling. For instance, a 256x192 image scaled to 384x288 will double every other line of pixels. A 256x192 image scaled to 768x576 will have every line tripled. On the other hand, scaling the image down will skip lines, so a 256x192 image scaled to 128x96 will have every other line missing.
Integer scaling is scaling by a factor of a whole number, so 2x, 3x, 4x, etc. In RetroArch, the option scales the image up to the greatest integer scale below the set resolution. So for instance, if you set your fullscreen resolution to 1920x1080 and enable integer scaling, it will only scale a 320x240 image up to 1280x960, and leave black borders all around.
Because not all systems use the same resolution, if you want them to be native resolution on your CRT Monitor you either have to make a different custom resolution for each game, or you can make one resolution that has a really high horizontal res, scale games to fit that resolution, and send that to your CRT which gets squished to 4:3. The latter is the better option since you don't have to change resolutions for every game you play, and bonus points if the horizontal res is an integer scale of several common console resolutions (3840 is a common multiple of 240, 256, and 384).