No, that is not how it's done, you are over complicating it.
The command is :
So your code should be :
Now forget about scalewidths and scaleheights, you don't need them. Just think of the screen as always being 1600x1200 the projection matrix will make it fit to the current resolution.
The command is :
'Proj_Width = Base Resolution Width 'Proj_Height = Base Resolution Height 'Depth = Leave this alone since the current version BMAX does not need it. SetMatrix(Proj_Width,Proj_Height, Depth)
So your code should be :
SetMatrix(1600,1200)
Now forget about scalewidths and scaleheights, you don't need them. Just think of the screen as always being 1600x1200 the projection matrix will make it fit to the current resolution.