Hello,
I'm hoping you all can help me with this plugin. I downloaded
Quake Sounds v3 and
Gun Game 4.4 to play in DoD:S. However, only a couple sounds from Gun Game will work, and none of the Quake sounds will play. I had this issue a couple years ago, asked about it on the Quake Sounds v3 thread (let's ignore Gun Game for now), and never got a response. I abandoned it at the time but I'm looking at it again.
Looking at the console I get a lot of errors that look like this:
Code:
BlockingGetDataPointer: Async I/O Force quake\standard\headshot.mp3
The sound files are in the correct place and the plugins work fine otherwise. I tried deleting sound.cache and setting async_mode 1 in the console, but it hasn't helped.
I did find
this information on it:
Quote:
If I understand this correctly, then what the message is saying is that the normally asynchronously executed Input/Output operation to load the sound files was instead forced to execute using a blocking I/O operation.
This means that, instead of loading the sounds in parallel to the game running, the game's execution was halted to make sure the files would be properly loaded into memory. The time measurements you're seeing afterwards describe for how long the game was halted, so if the program does nothing but try and do more synchronous I/O operations, it's obvious that the framerate would go down to 0. The execution of the game has come to a complete stop.
|
The next thing I tried was creating a pure_server_whitelist.txt file, adding "sound\... any" to it, and then adding "+sv_pure 1" to the launch properties. No change there.
Finally, I decided to start messing around in the source code. Disclaimer: I do have a background in programming, but I'm completely new to scripting for SourceMod. First I removed "sound/" from the paths set for each file. For instance, removing it from this line for the "headshot" file:
Code:
Format(bufferString,PLATFORM_MAX_PATH,"sound/%s",firstbloodSound[setNum])
Then I set the paths in the configs/quake/standard.cfg file to include "sound/" instead. This wouldn't get the sounds to play either. Instead I would get this kind of error:
Code:
Failed to load sound "sound\quake\standard\firstblood.mp3", file probably missing from disk/repository
Eventually, when it would go to play a file, it would spit out this kind of error:
Code:
MP3 initialized with no sound cache, this may cause janking. [ sound\quake\standard\firstblood.mp3 ]
Failed to create decoder for MP3 [ sound\quake\standard\firstblood.mp3 ]
MP3 initialized with no sound cache, this may cause janking. [ sound\quake\standard\firstblood.mp3 ]
Failed to create decoder for MP3 [ sound\quake\standard\firstblood.mp3 ]
*** Invalid sample rate (0) for sound 'sound\quake\standard\firstblood.mp3
However, if I entered "play sound\quake\standard\firstblood.mp3", it would play the file, but it would then repeat the "may cause janking" error.
My guess is whatever is causing this issue has something to do with caching, but I'm really at a loss at this point. Looking at the Gun Game code now, it seems their caching is set up slightly differently, but ultimately follows the same linear path of precaching before adding to the download table. I'm hoping one of you experts can take a look at the original source code or
Xeogin's version, spot the problem, and let me know what I'm doing wrong.
This thread with a similar problem suggested that the caching should be moved to OnConfigsExecuted, but I haven't figured out how to set that up yet.
(Also, I'm hoping this shows I tried to do due diligence in figuring it out on my own. I know what a pain it is for a n00b to ask questions that have been solved before. I have been trying to Google this as much as possible. I should also note that the search feature here doesn't seem to work for me, it only refreshes the search page rather than taking me to any results.)