Investigating BFV no music problem
Posted: Sun Nov 06, 2016 12:46 am
Hi.
Battlefield Vietnam is missing some audio, like radio commands and vehicle music on Windows 10. And I think the problem goes back to Windows Vista (or even XP SP3).
So one of the workarounds is running BfVietnam.exe with Windows 98 compatibility mode (XP is not enough).
I digged deeper on this one and downloaded a tool called "Application Compatibility Toolkit" (ACD) to see what does that compatibility give exatly.
Using ACD I got another option: "Windows NT", which also worked (XP still did not). Then I filtered from all the options, that only one is needed: WinNT4SP5VersionLie, which basically modifies GetVersionExA to return Windows NT. Now simply lying about Windows version is pretty good fix, because there is no extra layer or virtualization.
Then I compared running the game with that version lying vs the normal one and checked with Process Explorer the two processes and found something interesting.
One the audio-missing process there were 2-3 file handles open for music.rfa and sound.rfa. For fun I tried swapping names of sound.rfa and sound_001.rfa, but that didn't really help as then I had two instances of sound_001.rfa.
Now I remembered from somewhere that in BF 1942 and Vietnam you could extract the files (to game root directory) and delete the .rfa.
And so I did just that for sound.rfa and music.rfa, launched the exe without the Windows version lying and voila! it worked.
Another thing I noticed when comparing the processes was that one process had only one thread, the other one two threads (one seemed to be audio related), but not very sure if that leads me anywhere, but one vague idea is that the .rfa files were approached by the game main thread + the other thread and that caused some issues. Not sure, as I'm not very knowledged about that stuff.
While having it working with either the windows version lie or extracting the two rfa files (I extracted sound_001.rfa as well just in case though) are pretty good solutions, it would be interesting to get the very root cause and perhaps fix it. I know there are some smart people on this forum, so maybe somebody got motivation to see what's up.
- amd
Battlefield Vietnam is missing some audio, like radio commands and vehicle music on Windows 10. And I think the problem goes back to Windows Vista (or even XP SP3).
So one of the workarounds is running BfVietnam.exe with Windows 98 compatibility mode (XP is not enough).
I digged deeper on this one and downloaded a tool called "Application Compatibility Toolkit" (ACD) to see what does that compatibility give exatly.
Using ACD I got another option: "Windows NT", which also worked (XP still did not). Then I filtered from all the options, that only one is needed: WinNT4SP5VersionLie, which basically modifies GetVersionExA to return Windows NT. Now simply lying about Windows version is pretty good fix, because there is no extra layer or virtualization.
Then I compared running the game with that version lying vs the normal one and checked with Process Explorer the two processes and found something interesting.
One the audio-missing process there were 2-3 file handles open for music.rfa and sound.rfa. For fun I tried swapping names of sound.rfa and sound_001.rfa, but that didn't really help as then I had two instances of sound_001.rfa.
Now I remembered from somewhere that in BF 1942 and Vietnam you could extract the files (to game root directory) and delete the .rfa.
And so I did just that for sound.rfa and music.rfa, launched the exe without the Windows version lying and voila! it worked.
Another thing I noticed when comparing the processes was that one process had only one thread, the other one two threads (one seemed to be audio related), but not very sure if that leads me anywhere, but one vague idea is that the .rfa files were approached by the game main thread + the other thread and that caused some issues. Not sure, as I'm not very knowledged about that stuff.
While having it working with either the windows version lie or extracting the two rfa files (I extracted sound_001.rfa as well just in case though) are pretty good solutions, it would be interesting to get the very root cause and perhaps fix it. I know there are some smart people on this forum, so maybe somebody got motivation to see what's up.
- amd