Well, I'm quite sure that baseline MAME can do integer scaling on the DX side too, but only with the DirectDraw interface. In ddraw.c, compute_blit_surface_size function, you can see how xscale and yscale are defined as integers.
This is definitely not the case with Direct3D, which on this regard behaves much like DirectDraw does when the -hwstretch option is enabled.
So for instance, for a 320x224 game, when rendered on a 320x240 resolution, DirectDraw will leave the proper black borders up and down, while Direct3D will stretch the height to 240 lines.
Anyway, the scale factors are calculated internally, so there's no way to force specific factors as suggested some posts above.
|