The game output isn't always at 480p. For example, a game is 256 x 244 or something, then you choose whatever scaling, so if you choose 1:1 scaling, the game output is still 256 x 244. The GPU takes that 256 x 244 texture and fills the gamepad and TV screen with the 256 x 244 texture, based on the height of it. So if the height is 244, the width and height would be scaled at a factor of 480/244 for the gamepad and 720/244 for the TV. It isn't scaling the 480p texture of the gamepad to the size of the TV, it is scaling the size of the game output to fill both the gamepad and TV.
If you don't want it filling, then change the setting in the video driver.
Ok, I think I understand now. But the numbers referenced in the video settings are still treating 480 as the full height even if the texture is being separately mapped to the TV and gamepad. So if it's a SNES game with a vertical resolution of 224, 3x would be 672 which should fit my TV with black bars - however that setting crops the image off the top and bottom.
So what do I need to do to get an integer scaled picture on the TV? Because setting it to 1x gives me 1x pixels on the gamepad and 1.5x on the TV. 2x gives me 3x on the TV, so how do I get 2x?
p.s. Which setting in the video driver?