https://bugs.winehq.org/show_bug.cgi?id=41796
Bernhard Rosenkränzer bero@lindev.ch changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |msvcp Version|1.9.23 |2.5
--- Comment #1 from Bernhard Rosenkränzer bero@lindev.ch --- My nephew bugged me long enough to look into it a little closer. ;)
WINEDLLOVERRIDES="msvcp71=n"
"fixes" it, the game is perfectly playable after that.
It strikes me as a little odd that msvcp90/string.c has an assert() in place of a throw_exception() when at() goes beyond the end of the string -- but that may be odd behavior in the MS version of the DLL. Changing
assert(this->size >= pos);
to
if(this->size < pos) { static const char msg[] = "invalid string position"; throw_exception(EXCEPTION_OUT_OF_RANGE, msg) }
in msvcp90/string.c seems to make sense, but doesn't fix the problem with this game (it just changes the error message to an uncaught exception). Something else in wine's msvcp must be leading up to this.