Slow Load Times With V-Sync Disabled? [Nvidia GeForce GTX 560 SE][Windows XP 32-bit]

Issue #191 closed
Ryan Paul Spidell created an issue

I know that V-Sync is mentioned as a reason for slow load times, but I have it disabled both in Nvidia's drivers and by the game, and the load times still seem slow, slower than I remember v1.2 load times to be.

Comments (35)

  1. Frank Sapone

    Considering the game doesn't parse the configstrings in chunks for single player any more I don't know how this could be for you.

    Is it a mobile chipset? If so, make sure maximum power/performance modes are enabled. On my machine with V-Sync disabled with a GTX 960 the game loads a map quite literally in less than a second, almost instantaneously.

  2. Ryan Paul Spidell reporter

    It's not a mobile chipset. The driver is set for max performance.

    AMD Phenom II X4 955 8 GB RAM GeForce GTX 560 SE

    Not new by any means but considering how more advanced games have shorter load times (Quake 2 takes maybe a second or two to load a map versus about 15 seconds for Daikatana?) I don't have a SSD but still, the game is not fragmented on the disk. Weird.

    What if I replaced the sound the game uses for loading (it's disabled but maybe it still waits on it) with a sound with 0 length? That's all I can think of if the original v1.2 bug involved playing the sound all the way through.

    Are there any files in \data\ that I can add to a new PAK file to reduce the number of files?

  3. Daniel Gibson

    Quake2 might be a better game, but it's not more advanced - it's older, has smaller data and better code (in the parts where Daikatana and Quake2 are different). If I remember correctly, Daikatana was known for slow loading times when it was new, while Quake2 wasn't.

    There are more reasons why Daikatana might be slower:

    • Daikatana .pak format allows compressing files, so they need to be decompressed first which is slower than just reading them
    • Daikatana has lots of files that are not in paks (mainly mp3 sound files). Loading lots of files from a .pak tends to be faster than loading them from the filesystem
    • Maybe the small mp3s (not music) are even decompressed on load? Not sure about that though..

    At least the .mp3 files can not be put in a .pak, the code relies on reading them directly from a real path on the hard disk

  4. Frank Sapone

    15 seconds is just plain wrong. The game should literally take like no more than 5 seconds on any computer made in the past 10 years. I mean I can load a map in 5 seconds on an SSD on a Pentium 3 with a Voodoo 5.

    Does the game have erratic frame rate? Nvidia has this newer mode of trying to be clever with speed throttling for games that run too fast and personally I don't think it works very well. You can use nvidia inspector to force the "low power" modes to have the same frequency as the "turbo" modes. I had problems with very weird frame rate dips in Quake 1, 2 and DK and sometimes slow loading until I disabled that.

  5. Ryan Paul Spidell reporter

    I haven't noticed any framerate craziness. I have the base profile set to cap everything at 60 FPS to fix problems with some older games that run faster than that and behave strangely as a result but I don't think all games even follow it. The game does start up almost instantly but map loads are always slow. I thought maybe DEP might have been slowing it down as sometimes older games don't work right with it but it acts the same even when added as an exception. Turning the load sound on it does clearly play each 'tick' noise perfectly spaced out every single time, which is fun because if you die or backtrack or reach the next map (which happens pretty quick since the map segments are so small) you get to sit through it again. It's like Half-Life, except Half-Life can load each piece in an instant. Even Unreal, which had some rather long single player maps by comparison, can beat it handily. I'm not aware what all Daikatana has to do on each map load, so it makes me wonder if the bot pathing for the sidekicks is part of it.

  6. Frank Sapone

    No, this is very very wrong. Start the game, drop to console and type snd_shutdown. Then hit escape to get back to the main menu and try to load a map. If it is still slow then you have some frame limiting going on somewhere.

    You said you have the base profile to cap everything at 60fps? This sounds like you're forcing the card to do some sort of vsync, maybe adaptive? Disable that and do this instead: in console do cl_async 1; r_maxfps 60. That will limit the gameplay to 60fps, but loading and downloads won't be restricted.

    Daikatana isn't as complex with BSP loading as you think it is. It's basically loading the same things Quake 2 does: textures, models, sounds, etc. Again, on a modern machine it should sound like a ripping noise instead of the ticks that's how fast it loads. There is a console command to disable the loading screen sound but you'll have to check the Readme.pdf as I don't know it offhand.

  7. Frank Sapone

    Also, this is the second time now someone has mentioned DEP and old games. Can you name a specific game this is a problem with? I'm pretty sure the Quake-engine games do not have this problem. All my engine projects are compiled with VS2005 these days and typically cross-compiled with GCC4 so any serious warnings have been cleaned up. Daikatana doesn't have this luxury of having all warnings cleaned up, yet (there's a lot!) but Linux builds run fine.

  8. Ryan Paul Spidell reporter

    The original Half-Life (Steam release) will either take a long time to load or will crash as a result of DEP. With DEP set to AlwaysOn it starts spreading to other programs like the 1964 emulator that do memory injections.

    Went through these steps and it still does it. Do you know what sound gets used for the progress bar? I figured I'd swap it for null.wav just as a test. What if there was an option to eliminate the progress bar and simply display "loading"?

    Also, I noticed that when you first encounter Mikiko, there is a warning about one of her MP3s not being found.

  9. Frank Sapone

    I've never heard of this DEP issue before, but anyways... If you did these steps and it's still doing it it indicates frame throttling coming from YOU. It has nothing to do with the sound ticks or the sound file itself.

    You have vsync or some kind of throttling enabled somewhere. You have to find out where.

    Load a map, and type /timerefresh a few times in the console. Is the resulting number always the same? If so, or mostly the same, what is the number?

  10. Frank Sapone

    Other things to think about:

    #Is your machine or video card overclocked? #Are you running antivirus? If yes, what kind? #What OS? 32-bit or 64-bit? #Are you loading the game from an external drive? If yes, is it an IDE to USB controller? Is it a thumb drive? Is it from a network share? Are they old drives? #Are you literally using an old 5200 RPM IDE drive?

    When you do /timerefresh just moving around to various spots and try it. If the result is always the same/close to it no matter where you are in the map then you have some sort of speed throttling enabled.

  11. Ryan Paul Spidell reporter
    1. No
    2. Yes, but on-access scan is disabled.
    3. XP 32-bit
    4. No/No/No/No/No
    5. No

    I noticed another interesting tidbit: the HUD weapons along the right side. They normally rotate at a certain speed but at certain times the rotation slows way down. Also I've noticed times when the mouse sensitivity will jump up temporarily. Will test /timerefresh now.

  12. Frank Sapone

    The fact you mention XP makes me think that you need to use the nvidia inspector utility to disable the speed throttling. When I built a new PC last year and upgraded from a 7800 GTX 512 (yeah it's been a long time!) to a GTX 960 I found I had these kinds of weird issues with old games.

    It was only resolved after I used Nvidia Inspector to set the power modes to have the same clock frequencies for all of them. Otherwise, you could watch the hardware monitor in nvidia inspector and see the drivers being unable to make it up its mind if it wanted like 200mhz or 2000mhz (making up a number here but you get the idea).

    For some reason the XP drivers don't have the ability to set the power modes properly from the driver control panel. I had to use nvidia inspector.

    The fact you're seeing the HUD spinning icons slowing down/speeding up is almost confirming what I'm suggesting. You can also set /show_fps 1 in the console to show an in game FPS counter above the bottom HUD to see if the frame rate is unable to maintain a consistent framerate.

    Again, these are all problems I had after upgrading to a newer nvidia card. Enable that, and let me know what you seem to average as well as the timerefresh averages. You should be able to get at least 100fps in this game as long as you don't have AA enabled. I don't know what penalty you'll get with AA enabled as I don't bother to play with AA personally.

  13. Ryan Paul Spidell reporter

    I don't use AA. I have Nvidia inspector installed. What do I need to do in it exactly?

  14. Frank Sapone

    I'm on a business trip so I don't have any of this in front of me. But basically you want to click the overclocking button, note the highest performance level (I believe it's P0) from the overclocking pulldown menu. Note the frequencies and voltage ranges. Write it down.

    From the overclocking pulldown menu select the other power levels. Click the two buttons next to it to unlock the min/max clocks. For each power level make them the same as the P0/highest performance level.

    Hit apply. Leave nvidia inspector open, and open up the game. See if it works properly. If it does you can click Create clocks shortcut in Nvidia inspector and it should make an icon on your desktop for this power profile. If so, then close out of nvidia inspector.

    There is a way to make a batch file that will automatically apply these clocks at startup. Again, I'm out of town and I won't be home until Thursday evening so if this is your problem I won't be able to clarify and simplify the solution until then. But, I'm pretty sure this is the problem.

    Also, just for good measure please give me the frame rate.

  15. Frank Sapone

    Asynchronous rendering. This allows network frames and render frames to happen independently.

    Basically the 125hz jumping bug will be erradicated because the network frames are limited to 60fps (can be changed with net_maxfps, usually 30 or 40fps is enough, but sometimes jumping can get a bit stuttery at this rate so we default to 60fps).

    This also has an extra benefit, since the network frames are separated from the renderer the code doesn't have to wait as long during connect sequences. This allows you to get into the game slightly faster, but HTTP downloading benefits a lot from this. You can see this effect in R1Q2 as well.

    If you don't like async, turn it off and just use cl_maxfps to control the framerate. Otherwise, if async is on then framerate is controlled wtih r_maxfps.

  16. Ryan Paul Spidell reporter

    Does the game have a quicksave ability? Since it uses a modified Quake 2 engine I would think that it would have it, even if there is no mention of it.

  17. Frank Sapone

    If nvidia inspector worked for you here is my batch file I have it load at startup:

    start nvidiaInspector.exe -setGPUClock:0,1,1240 -setGPUClock:0,2,1240 -setMemoryClock:0,1,3004 -setMemoryClock:0,2,3004 -setFanSpeed:0,100
    start nvidiaInspector.exe -setGPUClock:0,1,1240 -setGPUClock:0,2,1240 -setMemoryClock:0,1,3004 -setMemoryClock:0,2,3004 -setFanSpeed:0,100
    start nvidiaInspector.exe -setGPUClock:0,1,1240 -setGPUClock:0,2,1240 -setMemoryClock:0,1,3004 -setMemoryClock:0,2,3004 -setFanSpeed:0,100
    

    GPU clock for my card is 1240mhz and Memory clock is 3004Mhz. It will obviously be different for yours.

    I set fan speed to 100% all the time because it doesn't bother me, but it does bother me hearing it go off and on at various times. So you can remove that line if you don't want that ability.

    I have it load nvidia inspector 3 times in the batch file because under Windows XP (for me personally) the first time around it wouldn't always automatically change the settings. You don't see anything popup beyond the batch file for a split second so it's doing no harm.

  18. Frank Sapone

    Hello? I'd like to get this issue resolved. If it requires nvidia inspector then I'd like to note this in the readme.pdf for other people who may run into this problem.

  19. Ryan Paul Spidell reporter

    Sorry for the wait, unfortunately it doesn't seem to work. Additionally, using the latest version of Nvidia Inspector simply crashes for me. Also, the framerate can only be capped by the driver, because using r_maxfps 60 and cl_maxfps 60 produce another bug where certain random events in the game, such as switching weapons, cause certain game actions to occur too quickly or too slowly, one of which is a sudden increase in mouse sensitivity. It can be observed by watching the weapons on the HUD along the right side as they will spin at different speeds so it's like different parts of the game are running on different clocks so I might switch weapons and for 15 seconds Hiro's run speed might be increased while the weapons on the HUD rotate slower than normal. Unreal was a game that I managed to get to behave normally by capping framerate, as the game would speed up and slow down, but it was the whole game and not certain components. Figured out binding save quick and load quick act just like other id-engine games. Load times I can deal with even if they're longer than they should be, but the other problem from capping framerate at the game level creates a problem that messes with gameplay. I don't want to take time away from other problems that you're working on. I've watched plenty of other people playing the game with similar load times and other than that the game works without any obvious quirks, where I have other old games that just flat-out refuse to start.

  20. Frank Sapone

    Also, I don't know where you have watched other people playing the game with asinine load times on a modern machine. If you were complaining about a long load time on a Pentium 2, then this would be a non-issue as I would expect it to load slow on a 5200RPM IDE drive from the 90s.

    The sudden ramp up in speed is definitely not right. You also still have not given me a single frame rate measure. This is very important. We need to know if you're even maintaining real frame rates, which you're obviously not, but I want to know what you're averaging.

    Just do me a favor, set r_maxfps 240 and cl_maxfps 240. Do show_fps 1. What is the framerate typically averaging on e1m1a. Go to a few spots, do timerefresh a couple of times. What does it usually say? When the game ramps up in speed what is the framerate?

    Again, just so we're clear here, something is wrong with your setup. This has never been reported before. I've literally played the game to hell and back on a variety of laptops, "antique" hardware, and modern machines. We have our fellow bug resident, Milkey-wilkey, who would have definitely reported an issue like this a long time ago.

  21. Ryan Paul Spidell reporter

    I put it on a different computer. It's a trivial issue anyway. You were sounding angry and there could very well be stuff wrong with my main system so I feel like I started an issue that isn't really an issue when your bug resident didn't have it.

  22. Frank Sapone

    I was getting a bit agitated that I asked you to just run a few framerate tests so we can make sure. We can still fix this, as it sounds like you're unable to play other things as well.

    If you run the framerate tests I can still help you. There is a new build that actually does fix slow loading with vsync enabled so you should see very fast map loads regardless if it is on or off.

  23. Ryan Paul Spidell reporter

    New build fixes it. It's about instant now.

    Was there ever a startup video for Daikatana? It has a bink DLL and I always thought it strange that the game just goes straight to the single player menu.

  24. Frank Sapone

    Yes, but its basically just the ion storm logo and a prerendered quick intro. It was never officially part of the game binary itself though. There's no plans to add it back since bink is proprietary and it really adds nothing special to the game to have it.

  25. Ryan Paul Spidell reporter

    How do I view it? Someone on the Steam forums mentioned being able to point bink at the game folder to play it and being able to create a batch file to play it?

    Also, you could play it without the use of bink by substituting in FFmpeg, which is how the RBDOOM3BFG port did it.

  26. Ryan Paul Spidell reporter

    When a centered message is displayed, why does it also display it a second time as a regular message behind it?

  27. Log in to comment