http://bugs.winehq.org/show_bug.cgi?id=24406
Jeremy Chin winehq@rekless.fastmail.fm changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |winehq@rekless.fastmail.fm
--- Comment #3 from Jeremy Chin winehq@rekless.fastmail.fm 2010-11-22 05:01:44 CST --- I've done some poking around with this bug, but haven't yet found a fix.
First, there's a minor bug in the wine d3dxof implementation, where IDirectXFileDataImpl_GetName fails if pstrNameBuf is NULL. Fixing this causes the errors to match regardless of whether the native or builtin version of the file is used.
In the demo there are a bunch of message boxes when you attempt to load the dungeon. The first is "5", then "6 2", then "6 8" a few times, then a message in Japanese ("データを読み込んで、フレームにがんがん発録していく"). The full version doesn't display these messages, but has the same symptoms
The message and bug appear to be caused when Recettear tries to load an animated .x model. The non-animated models are clearly fine, as the dungeon floors and walls render fine. It tries to do something, recurses too deeply (the "5" message for 5 levels, the message is something about frames while loading the model) before giving up. As the bug occurs with both native and builtin d3dxof.dll I'm guessing the bug is in a related d3d call, but I haven't been able to determine what.
The problematic models for the demo are xfiles/tree/takarabako.x and xfiles/tree/obj_door.x - the invisible treasure chests and exit door.
I've tried various workaround fixes: -Simplifying the model to cut down the number of frames. Reduces the "6 8" errors, but the "5" still appears. -Cutting the animation out of the models. No effect. This seems to indicate the animated and non-animated models have different loaders. -Patching out the recursion check. I got one of them, but there's a second one I can't track down that spits out more of the same errors.