http://en.wikipedia.org/wiki/Protected_mode
In short : A way to offer more features to the game, like more memory and so on...
If DOSBox wouldn't have supported protected mode for some part then protected mode games wouldn't even run on DOSBox.
Speed and protected mode have no relation what so ever. Well, ... the only relation is : Protected mode is slower then all real mode games. The reason for this is that protected mode offers more overhead to games.
Now the part why Strike base is slower then Quake. First, Strike base is a Voxel game.
Voxel games are more or less 3D. They resemble 3D but they are not. They are a trick that was used to simulate large environments. These graphics engines where actually integer based and optimised that way. These engines don't do anything actually that is wastefull, I mean every pixel is only looked at and drawn once. This is what makes it a pixel based look. Or better said, a strawfield look. In these engines there are parts that get a real 3D handling and these are always small things like houses and things. But I'll handle that later on.
Games using such engines are easy to spot, but here are a couple :
Outcast
Swift 3D
...
Next we have Quake. This one got even the E3 anouncement as the first real 3D engine.
These engines are really nice to look at but if you know what is going on then you really know that your driving a Hummer ( 1 on 10 mileage) in stead of an Audi A2 ( 4 on 100 mileage ).
Ok now the real science. A real 3D engine actually does nothing else then execute for every frame, for every corner ( point ) in the game three blocks of calculations. These are the basic ones, every real 3D game performes these no matter what the looks.
Block A (round X axes):
x'=x
y'=y*cos(ang)-z*sin(ang)
z'=y*sin(ang)+z*cos(ang)
Block B (round Y axes):
y'=y
x'=x*cos(ang)+z*sin(ang)
z'=-z*sin(ang)+z*cos(ang)
Block C (round Z axes):
z'=z
x'=x*cos(ang)-y*sin(ang)
y'=x*sin(ang)+y*cos(ang)
Ok thats that, with these functions you can rotate a single point round a center point. These functions are not integer based but floating point based. There are even gradations in persision for these, single, double and extended, each being slower then the other. For quake these are with a single point persision and maybe even double.
If we would only make an engine using these functions you get wireframe games, like there are out there ( Elite ). But with Quake there are actually more things to add like texturemapping, there are even speed/percision gradations in these, for the textures.
If you look a the screen then you might be able to count the number of corners in a game, but you need to remember that a square isn't actually a square but a combination of triangles. So for a square you might have four to an unmentionable number of triangles forming together a square. Most viewable in Tombraider while rotating round looking at the textures edges in low res mode.
Every triangle in the loaded game is rotated every drawn frame and every triangle in the field of view is drawn, even the ones not visible and behind other drawn triangles.
So,
* A real 3D game is a hog on CPU/FPU power, graphics power and memory. Uses real floating point and isn't really very optimised and does wastefull things like drawing things that don't need to be drawn.
* Strike base is doing nothing wastefull and uses an integer based engine every frame a few values get calculated and based on these the frame is drawn.
The requirements for Real 3D games are much heavier then Voxel games. If the game box says that both games would need the same CPU power then they said it for a pentium based class CPU. But with DOSBox this flies out the window completely. DOSBox has a software CPU and therefore doesn't really do everything as fast or comparible fast as it was on a pentium.
So looking at the requirements of a game isn't enough for DOSBox, as was in the "real" pentium times. You need to look at what type of game it is, Voxel based, RayCasting based, 2D based or 3D based, and ofcourse the needed CPU power in real life.
The explenation for Strike base being so fast and Quake being so slow is because of the following factors :
Strike base : Voxel engine (integer based), not wastefull.
Quake : Real 3D engine (float based), wastefull.
Hope this solves the "mistery" around the slowness...
Erik.