Success!
I had assumed that Dosbox, when set to a 2x scale, would scale everything by 2x. That isn't true. It looks like it only scales low resolution outputs like 320x200, while keeping high res outputs like text modes or high res graphics 1-1!
What's more, although DOS VGA standards includes a whole mess of different resolutions, with some exceptions, most of them end up 720x400 or 640x400 at the end of the day. There a few games and applications that run with 350 lines instead, but they end up using the same total number of vertical lines as 640x400 or 720x400, just centered to the screen.
For example, the title screen in Lemmings VGA mode.
In DOS on my Voodoo 3
With Dosbox at 640x400
Now gameplay, which is 320x200 doubled to 640x400
Voodoo 3
Dosbox
The voodoo 3 is stretching the horizontal axis on the title screen a bit more. I spent over an hour trying to add a 640x350 res mode to match it (which Dosbox will use if available ), but I finally gave up. The screenshot is 640x350 centered to 640x400 in software, and I think it looks good enough.
I went looking for some kind of authoritative source on VGA timings that I could use, and what I learned is that every graphics vendor would implement their own timings a bit differently. An ATI card for example might have a slightly higher pixel clock than an S3 running the same display modes. I think you can measure the VGA timings of a computer with an oscilliscope, and it would be pretty cool to document some reference display modes and timings for reference hardware (like IBM computers and S3 cards, ect) but I lack the equipment and know how to do it myself.
Using CRU, I got this from a VGA micro controller website and it works really well for 13h and 640x400 text modes compared to my voodoo 3 in DOS:
When using the default S3 graphics in DOSBox this is all I needed, but when using VGAonly mode I had to add a 720x400 resolution as well. I couldn't find a set of reference timings for that resolution, so I just increased the active pixels to 720 and called it a day.
I also needed to add some 640x480 display modes (60hz, 72hz, 75hz) because some graphics use 480 line display modes with various refresh rates. Fortunately, I don't think the resolutions eat up your limited detail display slots in CRU. I have attached a CRU export from my computer incase anybody else is trying to do what I am doing.
If anyone knows of more common display modes and some games that use them I would like to test it.
I found this really interesting reference for oddball DOS resolutions. I am going through a process of trying them out on my two computers and seeing what I end up with.
https://nerdlypleasures.blogspot.com/2014/09/ … tions-when.html