timwario: Wait, the game is not supposed to look like it's 30 fps? It says the game is running at 60 fps when I type in the framerate command but everything other than the weapon model looks like it's at 30. I thought that's just how this engine renders things, and that it can't be fixed.
Yup, it's built into the engine, unfortunately.
My theory is that the framerate cap was intended for the HUD weapon layer, but the devs put it on the wrong layer (game world) instead. Computers back then probably weren't fast enough to play above 30ps to catch this. It is clear to tell the weapon animations were intended for 30fps, when capping the game to that, the lightsaber's altfire swings match the third person animations. Unfortunately, without the game's source code, it is almost impossible to fix this.
Also, the framerate cap is a bit strange: at 60 fps or higher, the game world is capped to half of your current framerate. This also means the HUD weapon animations playback way too fast. This is why software mode appears to actually be 60fps, because it is totally uncapped (and the weapon animations playback much much higher, at your actual framerate - probably closer to the 200s). So if your software framerate is, say, 300, the game world is capped to 150, which still appears smooth on a 60Hz monitor.
If you disable vsync for hardware mode or in dgVoodoo's settings you should get the same smooth result, but the weapon animations will be too fast.