Resolution of screen and game

Resolution f many monitors is 1920x1080. But resolution of my game is 256x256 (yes, retro!).
How to properly and right scale sprites on screen (their size 8x8)?
My solution:

// init func
screenSize = new Vector2(256, 256);
screenScale = Matrix.CreateScale(graphics.PreferredBackBufferWidth / screenSize.X, graphics.PreferredBackBufferHeight / screenSize.Y, 1.0f);
// draw func
spriteBatch.Begin(SpriteSortMode.Deferred, null, null, null, null, null, screenScale);

Assuming you’re wanting upscaled hard-pixel style: use SamplerState.PointClamp in your spriteBatch.Begin call.

Many pixel art style games also offer a “perfect scaling” option. I.e. for your 256x256 game it would only scale up to what the nearest resolution is that can be evenly divided by 256 then render that size in the middle of the screen, guaranteeing that each “pixel” is perfectly square. For a 1920x1080 screen this would result in the game rendering to a 1024x1024 area in the middle of the screen.

As far as actually drawing things bigger, I actually haven’t tested the transformMatrix method in a long time. If for some reason that gives you guff, I’d recommend drawing your game to a 256x256 render target, then drawing that to the screen. You could also consider adding shader options for various effects like retro CRT monitor warping and such.