As someone who is a casual user of emulation (I didn't even know what bilinear filtering was until I went through multiple games) could someone please explain integer scaling a bit better to me? From my understanding it stays to multiples of the original resolution and simply increases the amount of pixels in a way that upscales games seamlessly so they look fine at higher resolutions and otherwise changes nothing about them.

I've been playing Mario and Luigi on my RG34XX and noticed at 3x scaling it seems to be less sharp than native resolution. I've played other GBA games on this thing and never noticed this problem at all, but with Mario and Luigi if I downscale my integer scaled screenshots to the native resolution it looks blurrier than actual native resolution screenshots. The top is native, the middle is integer scaled 3x and then manually downscaled to 160p, and the bottom is integer scaled 3x with sharp-shimmerless and then manually downscaled to 160p. Sharp-shimmerless seems to have made it slightly less blurry than just 3x on its own but it's still nothing close to native. Just look at the text.

Is this just what happens with integer scaling or am I messing something up?