It would make sense but actually in older IL-2 Versions the full set of functions (SFS_open, SFS_openf, __SFS_openf) was __cdecl and TD simply decided to change that to __stdcall.
The latest selector tried to mitigate that change, however while it appeared to be working well, there was potentially a stack corruption going on under the hood which could lead to a game crash in the long run.
Never witnessed it myself, even not in sessions of 2+ hours, but in theory __stdcall would expect the library to clean the stack on returning from a method call, which in the forwarded calls to SFS_open / SFS_openf methods in old IL-2 versions simply didn't take place.
More drastically, IL-2 GE immediately bugs out on that calling convention change, which probably is the best thing to happen as it pointed out an underlying issue that would otherwise have been left unnoticed for years to come.
Blame it on TD.
It's a
very bad style to change the calling convention of an existing method "under the hood".
The right way would have been to give the new __stdcall methods a new name (preferably) or at least a different parameter set.
But I guess TD was well aware of the mess they created.
Long story short, the next selector will ship with different wrappers for "old" and "new" IL-2 versions as there's no way to overcome the calling convention issue in a single library.
![Cheers ]cheers[](https://www.sas1946.com/main/Smileys/akyhne/occasion14.gif)
Mike