First post, by PoulpSquad

User metadata
Rank Member


I'm seeking help once again, this time to solve a problem with EF2000.


Motherboard: Super Micro X5DA8
Processor type and speed: Dual Pentium 4 Xeon 3.2 Ghz
Amount and type of RAM: 4x Kingston KVR266X72RC25L/2G (2GB DDR/266, registered ECC)
Video board w/ RAM amount and type: PNY NVIDIA GeForce 7800 GS AGP with 256 MB
Sound board: Realtek AC'97 Codec (on motherboard, ALC650 based)
Operating system: Windows Server 2003 Enterprise Edition SP2 x86
Game name: EF2000 Grpahics+ CD
Description of problem: display squished vertically
Reproducibility of problem: Always
Sound mode used: Sound Blaster 16 and General MIDI
Video mode: Glide
Version of emulator: DOSBox SVN Daum (Jan. 27. 2014)
Steps already attempted to solve the problem: Configuration reset. Altering cputype and core. Altering parameters related to display.
Gamepad model: Gamestop PC 1000GS USB gamepad detected as Generic USB Joystick with 4 axes, 12 buttons and 1 hat.

I 'm trying to get EF2000 with Graphics+ to run in DOSBox SVN Daum (Jan. 27. 2014).
I'm using the standard configuration, with those lines changed, as suggested in this thread EF2000 + 3dfx graphics .
So far, the game runs pretty well (for such an old computer anyway), but graphics are squeezed into the upper half of the screen, and fonts seem odd:


Accessing the menu with ~ works fine, resolution and aspect seem correct. Getting back to the game stretches display until it reaches ~ 640*1000:


After this point console continues to report a resolution change (always in 80 pixels increments), but display doesn't change:


Setting fullscreen=false leads to this:


DOSBox reports it's happily running at ~ 170000 fps... right.
I'm using drivers 256.10 from 03/03/2010 (I can't use the latest release because it freezes my computer when I use Firefox).
I've spent many days searching for clues/fixes, but all I can find are posts of people happilly running EF2000 graph+
Also, I've been able to run Shadow Warrior 3DFX successfuly, so at least I know I'm doing *something* right 😊

Thank you very much for your time!


  • Filename
    File size
    30.68 KiB
    File license
    Fair use/fair dealing exception

Reply 1 of 10, by truth_deleted

User metadata

Please try the dosbox build I uploaded to the web site in my signature. It is under a link named "DOSBox-SVN+3dfx_scaling"; there are also instructions above on that same web page, under the patches subheading. This would provide a test to help isolate the problem or perhaps provide a solution.

Reply 2 of 10, by PoulpSquad

User metadata
Rank Member

Hello truth5678

I'm terribly sorry for the delay. I just realized you had answered to my post and even took the time to compile a binary!

Here are my findings:

Using default settings, except for:



z:\mount.com c "D:\DOSbox\C\" -t dir
z:\mount.com d "F:\" -t cdrom

Game now is stretched to full height. Accessing menu changes resolution as expected, and returning to game works fine now - no more increase in y resolution!
There are a couple of things I noticed though. There is a rectangular box when I use afterburners - exhaust looks like a pyramid with a clearly visible rectangular base.


Although now screen is stretched vertically without visible artifacts (no broken fonts, no squished display, no dithering), it looks like aspect ratio is somewhat broken.
Gauges supposed to be discs (as in the captures I posted before) are now ellipses. Menu (accessed with ~) looks correct.

2lDzFbD.jpg EF2K

Plain VGA doesn't exhibit this behavior (drawing a disc in Deluxe Paint 2 in VGA 640*480 shows correct aspect).

dHyTw4w.jpg DP

Running CONFIG.EXE and doing a video test shows low-res in left inferior quarter of screen (should be centered and streched fullscreen if I recall correctly).

ssnIo5c.jpg CONFIG

I think you pretty much nailed it. I just need a way to change aspect ratio somewhat (I suspect 3dfxheight= and 3dfxwidth= are the switches I need to tinker with).

Thank you very much for your time, I sure appreciate it!


It occurred to me that DOSBox assumes 3DFX resolution to be 640*480, but EF2000 Graphics+ runs at 640*400.
3dfxheight=100 and 3dfxwidth=100 show 640*480 in console, so I tried to get as close as 640*400 as I could:

fullresolution=1920x1200 (native monitor resolution, fixes low resolution graphics using bottom left 1/4 of screen)
3dfxheight=84 ((100/480)*400=83.3333...)
3dfxwidth=100 (100%=640 pixels)

Now display has a better aspect ratio, but is pushed towards the bottom of screen:


Console reports 640*408, so it's not yet perfect and I suspect I'm doing this the wrong way.
Setting 3dfxheight=83 is more precise (console reports 640*398), but aspect ratio is messed again.

I'm not sure if this is the intended behavior. Having to set 3dfxheight= and 3dfxwidth= manually for every game that uses a different resolution than 640*480 seems odd...

Reply 3 of 10, by truth_deleted

User metadata

Windowed mode can preserve the aspect ratio whereas the full screen mode is affected by the video driver and SDL library, resulting in an imprecise result. The reason for the additional parameters, such as 3dfxheight, is to allow the user to predictably adjust the image size. At least you now have a functional 3dfx mode.

An alternative is to test the output=openglhq mode with Ykhwong's build. Set the full screen resolution to "desktop". It also produces a good result, although in software mode (non-3dfx).

Reply 4 of 10, by PoulpSquad

User metadata
Rank Member

Thank you very much for the clarifications!

I just tried to run EF2000 in windowed mode, and I noticed these things:

- Non-accelerated parts of the game (menus and external configuration programs) have correct aspect ratio and are stretched all over my monitor. DOS prompt displays all its glorious blockyness at 1920x1200 and all is well with text and graphic modes.

- Once the accelerated part kicks in, window changes resolution (console reports VOODOO: mode set, resolution 640:480). It is now a tiny window, as I'd expect, but aspect ratio is broken again, DOSBox insists in displaying EF2000 in 640x480 when in fact it should be 640x400, either in full screen or windowed mode!

None of those things are detrimental to running the game in any way. As you pointed out, EF2000 remains functional, even with a slightly incorrect aspect ratio, and amazingly enough, it is capable of running on my old P4 from 2003, albeit a bit slow!

I do have questions though:

-Is it possible to have some kind of "full screen windowed mode"? Some programs manage to remove the window's borders and title bar and center themselves on screen, thus looking like they are running full screen. Is there a way to do that?

-Is there a way to explicitly tell DOSBox to display 3DFX stuff at an arbitrary resolution? I'm curious to see what would happen if we could force display at 640x400 in full screen... I bet aspect ratio would be correct then!

Reply 5 of 10, by bored

User metadata
Rank Newbie

I'd suggest you try 'EF2000 Reloaded', which is based on a DosBox build with a EF2000 focus.

This can produce a full screen window, as you suggest. It also provides a Fromt End to help with the setup.

Reply 6 of 10, by PoulpSquad

User metadata
Rank Member

Thank you very much for your suggestion, I'll make sure to give it a try!

I want to point out I'm not such a fan of EF2000. I'm trying to solve this issue because I think it might affect other Glide games that use 640*400 (or even 512*384, I have to try this).
Also I'd like to avoid using one of the many hacked/customized/unofficial/game-specific builds out there and keep it as simple and vanilla as possible, if that even has a meaning when dealing with emulation...

I'll give it a whirl nevertheless, and actually *play* something for a change, instead of tinkering endlessly :p

Reply 8 of 10, by bored

User metadata
Rank Newbie

I've seen something similar where DosBox sometimes overrides my resolution settings for a full screen window...but only for certain screen sizes.

To get around this, I made the following changes for the EF2000 build in the file sdlmain.cpp.

	if (fixedWidth && fixedHeight) {
double ratio_w=(double)fixedWidth/(sdl.draw.width*sdl.draw.scalex);
double ratio_h=(double)fixedHeight/(sdl.draw.height*sdl.draw.scaley);
if ( ratio_w < ratio_h) {
} else {
//EF2000---this is to force the 2D screen to our window resolution hence undoing all the good work above.

I'm sure there's a config file setting to do this properly though.....

Reply 10 of 10, by PoulpSquad

User metadata
Rank Member

Thank you very much for looking into this a and provide a solution! May I request a knowledgeable user to compile binaries with those modifications please? I have no idea how to do that...